メインサーバにFolding@homeを導入して新型コロナウィルスなどの解析に協力してみた

さすがに新型コロナウィルスの影響がしゃれになっていない状態になってきています。自分の身にも転職や請負の仕事などで降りかかっていますし…。ということでちょっとある動画でやっていた、いわゆる余っているPCの能力を組み合わせていろいろなものを調べる系(分散コンピューティング)のプロジェクト、今回は特に新型コロナウィルスなどの構造解析をやっているFolding@homeを導入してみたいと思います。

 

今回はLinux版(Redhat系)でやってみる

メインマシンに入れるとファンの音の問題や消費電力の問題も大きそうですので、サーバー機に入れてやってみようと思います。さすがに世界的なプロジェクトだけあってWin版以外にもmac版、Linux版(Debian系、Redhat系)などがありますので自分に適したものを導入すればOKです。手順としてはこんな感じ。

 

1. ホームページ(https://foldingathome.org/)から上のメニューより「Start folding」をクリックする

2.ダウンロードページの中程にある「alternative downloads」のリンクをクリックする

3.各OSにインストールするときのインストールプログラムおよびパッケージへのリンクがあるので必要なファイルをダウンロードする

このとき、GUIからの監視や設定プログラムがなくてもよい場合はfahclientのみでOK。監視プログラムを入れる場合は特に別PCから監視する場合はいくつかのポートを開いたりするなどファイアウォールの処理が必要になるので注意。

4.root権限を使ってパッケージをインストールする。

DNFが使えるFedora系ならば(3/29現在だと)

$ sudo dnf install fahclient-7.5.1-1.x86_64.rpm

でOKです。openssl系のパッケージが必要になるのでそこだけ注意。

5.インストールが完了すると勝手に動作を開始するので一度停止させる

いくつか設定をちゃんとする必要があるので動作を停止させましょう。本当をいうならreloadができるはずなので止めなくてもよいかもしれませんが、初期設定の場合は一度完全に止めた方が確実でしょう。

$ sudo /etc/init.d/FAHClient stop

6. 必要な設定を作成する

初期設定だけならFAHClientからファイルを作ることができますのでそれを使いましょう。

$ sudo FAHClient --configure
User name [Anonymous]:(自分を示すユーザ名を入力する。空欄ならAnonymous)
Team number [0]:(参加したいチームの番号を入力する)
Passkey:(パスキーを入力する)
Enable SMP [true]: (複数CPUへの分散を行うときはtrueを指定する)
Enable GPU [true]: (GPU[OpenCLやCUDA]を使用するときはtrueを指定する。認識されていなければ動作しない)
Name of configuration file [config.xml]:(空欄でOK)

7. /etc/fahclient/config.xmlを編集してCPU使用率に関する指定をする。

エディタで設定ファイルを開いてもう少し細かく設定します。特にCPUやGPUの使用率に関してもっと使ってほしい場合にはこの設定項目を変更します。

 <power v='light'/> (ここをmediamやfullにすると使用率が上がる)

8. サービスを再起動する

$ sudo /etc/init.d/FAHClient start

 

実行に必要になるものは勝手にダウンロードされるので後は放置でOK

解析させたいタンパク質のデータもそうですが、対象のPCにあう解析プログラムがダウンロードされるので、それが実行されるまでしばらくかかるようです。実行されるとCPU使用率が大幅に上がるはずです。なお、実行で使われるデータ、プログラムおよびログは/var/lib/fahclient以下にありますので解析ログを見てみたい人は直接見てみるとよいと思います。そんなにこまめに見るものでもないと思いますが。

 

昔はSETI@homeがあったな…

こちらは「宇宙から来た電波などを解析して宇宙人の痕跡を探す」でしたが、すでに終了しています。こういう分散コンピューティングの先駆けともなっているものを知っているのでこういうときに協力してみようという気になるわけですね・・・。

 

RAID6を使った48TBファイルサーバを構築するなら何が必要?

1年契約をしていた非常勤の仕事が契約満了となり、さらには予定していた請負の仕事は全く入ってこないというフリーランスにありがちなまともな収入がないやばい状態となっています。4月からマジでどうしようか…

それはとりあえず置いておいて、久しぶりのまともな記事として、前にちょっとだけ考えていたファイルサーバの件ですが、もし組み立てたらどんなパーツがいるのか、どんなOSがいるのかを考えてみたいと思います。どうせなら組み立ての過程をYouTubeなどで公開できれば面白いのですが、いろいろと機材やらソフトやらを用意する…前にまず組み立て対象のファイルサーバにどれくらいかかるのか?を考えるのが先ですので。

 

とりあえず構成を考えてみる

今回の目的は「48TBのファイルサーバ」ですので、問題になるのは

  • ストレージの構成をどうするか
  • ストレージを接続するインターフェイスをどうするか
  • ケースをどうするか

が主になります。CPUやマザーボード、メモリについては3万円台のPCレベルのものでも問題ないと思います。一応気になっているのはRAID6のパフォーマンスがCPUやメモリによってどの程度変わるのか?ということですが、YouTubeでその手の組み立てをしているほかの動画を見ている限りは「よほど悪いCPUを使わない限り+ファイルサーバ以外の用途でCPUを使うのでなければ問題はない」というところだと思います。まあ、10GbEを持ってきたとしてもこれはあまり変わらないかな~というところです。

 

一応ストレージの想定としてはOS用に4TB HDDx2でRAID1、ファイルサーバ領域として8TB HDDx8でRAID6(RAID Z2)」となっています。ファイルサーバ領域をRAIDで保護しているのにOS領域をRAIDで保護しないのは運用上どうなのか?と思い始めたいましたので、次の構成はこれが予定です。

そしてストレージを接続するインターフェイスについて。今回の構成予定だとSATA端子が10個はほしいのですが、通常SATAの端子はよほど高級なマザーボードでもない限り10個なんてあるわけないのでそれを拡張するためにSATAのインターフェイスカードをつける必要があります。

最後にケースについて。そもそも家庭用に使うPCで3.5inchのHDDが10個もつけられるケースというのがまずありません。一応kakaku.comで調べてみたのですが、5万円以下までではたった1つしか見つかりませんでした。こうなってくるとさすがに本当のブレードサーバで使えるものを探すしかなくなってくるのでそれはさすがに範囲外ということにして、今回はこの条件で考えてみたいと思います。

おまけとしてこのレベルのファイルサーバであれば10GbEのカードもつけたサーバの方がよいかもしれません。私が今現在使っている32TBのファイルサーバですら家庭用というには大分すごい状態なのに、上記の構成だと家庭用の領域を超えているのでは?と思えなくもないですよね。

 

実際どんなパーツが必要?

ということで、今回は「CPU、マザーボード、メモリを抜いて」「20万円以内で」を目標に考えてみたいと思います。

ストレージ

4TB HDDの方は適当にNAS用のHDDでもつけておけばよいでしょう。例えばこんな感じ。

Seagate IronWolf 3.5″ 4TB 内蔵ハードディスク HDD 3年保証 6Gb/s 64MB 5900rpm 24時間稼動 PC NAS向け ST4000VN008

ちなみにSeagateにしているのは信者とかではなく次の8TB HDDの影響です。この記事を書いている段階では13,700円ほど。

 

問題は8TBの方です。「20万円以内で」の条件の関係で、こちらにNAS HDDを使うと値段が跳ね上がってしまうのが最大の問題点。ちなみにこの記事を書いている段階では8TBを超えると常時使用のHDDのタイプしか残らず、費用がかなり高くついてしまうので8TBx8の構成にする、という理由もあります。値段重視にするとNASを構築しようとしているにNAS HDDが使えないんですよね…。この条件に最も適しているストレージがおそらくこれ。

Seagate BarraCuda 3.5″ 8TB 内蔵ハードディスク HDD 2年保証 6Gb/s 256MB 5400rpm 正規代理店品 ST8000DM004

これならば1台あたり14,500円ほどとOS用のHDDとまとめて10台買ったとしてもなんとか16万円で収まるため、残りのものを買っても目標金額内で購入できます。ちなみに上にも書きましたが、GB単価が一番安いのがこの付近で、10TB以上になると台数は少なくできるのですが値段が跳ね上がってしまいますし、NAS用だと8台も買うとそれだけで20万円を突破してしまうのでNAS用ではないことを考えてもこの選択となります。まあ、家に置く用であれば必要なときだけ電源を入れて不必要なら消す、壊れる可能性についてはRAID6(RAID Z2)に保障してもらうというところですね。

 

ストレージインターフェイス

マザーボードに何個SATA端子がついているかにもよりますが、とりあえずはこのくらいでしょうかね。

玄人志向 キワモノシリーズ SATA3 10ポート増設インターフェースボード SATA3I10-PCIE

画像がないのはAmazon経由だと引き出せなかったからです。1つのカードに複数のポートがついていると負荷がかかった場合に速度が遅くなるという問題はありますが、今回はインターフェイスの数を優先して考えてみました。こちらにストレージの8台をつないで、マザーボード側にOS用のHDDをつないでRAID1構成とすれば問題ないと思います。値段も7,000円くらいとほどほど。

 

PCケース

Fractal Design Node 804 black MicroATX PCケース 日本正規代理店品 CS4710 FD-CA-NODE-804-BL-W

HDD10台のケースというのがまともにないのが問題点。そんなPCを作る人がほとんどいないから当たり前か…。これなら13,000円レベルで3.5inchを10台搭載可能らしいのでこれくらいしか選択肢はありません。ちなみに大半のドライブは吊り下げ方式になるとのこと。一応今現在使っているファイルサーバの一代前にNode304というこれの小さいやつを使っていたのでどういうことかはわかっているのでまあ問題ないかな、と思います。なお、ケースの制約によりマザーボードはMicroATX以下のサイズでなければならないようです。MicroATX以下のサイズでSATAが10個もついているマザーボードなんぞ見たことがないような気が…。

 

資金を集めて組み立てないと…

とりあえず今年の目標になるかな、というところです。定職に就くなり大きいプロジェクトに参加するなり細かく仕事を請け負うなり、株なり為替なり宝くじなりで夢をつかむなり、という感じで資金を集めて…というところですね。コロナの影響で経済の状態がおかしい上に貿易も…となってくると値段の変動が心配にはなりますが、そこはそれ、ですね。

 

OSはどうするのか?

Unix系を使うのは確定なのですが、問題はRAID6の方。上にも書いてあるのですが、書き込みの保障のためにZFSを使ったRAID Z2で組みたいかな、とは思っているのですが、そうするといつも使っているCentOS系だとライセンスの問題などでZFSの構築がかなり面倒になったり、更新が行われるとそのたびに領域が見えなくなる、といった問題が発生しそうな気がしていて…。zfsの更新がちゃんとできるようにしてCentOSを使うか、逆にFreeBSD系を使ってみるのか、いろいろと選択肢はありそうですね。

 

FPSゲームがそれなりにできる本体が小型のPCって…

二連続でPC本体に関する話題です。ちょっととあるところからPCが遅すぎて困るのでなんとかならないか?という話を受けましていろいろと調べてみた結果を自分の考察とともに書きたいと思います。まあ、結論が悲しいですが…。

 

FPSゲームをやりたいけれどもPCが…

特にゲーム機(SwitchやらPS4やら)で展開しているFPSゲームの場合、PCを持っている場合PCでもできるようにならないか?と考えるのはまああることなのでしょう。ただ、PCに詳しい人ならばすぐにわかりますがFPSゲームはよほどのことがない限りグラフィック性能を大幅に要求するので古いPCやGPUがない場合まともに動かないです。しかも購入当時にホビーでの利用や事務利用を目的としている場合はグラフィック性能なんていうものはどうでもいいことが多いのでさらに悲惨です。ちなみに、10年~6年位前のPCだとちょうどIntelのCore iシリーズが大幅にシェアをとっていた上CPUにグラフィック処理が内蔵されてしかも最低限の3Dも動かせるようになっていたため高価格帯や性能特化でもない限り大半のメーカー製PCではGPUを別に導入してもコストが高くなりかつほとんど使われないので省かれる対象となっていたわけですね。というわけでまともに動かない、という結論に至ります。まあ、そこまで古いとHDDなんかは耐用年数の問題もあるので機械的に更新の時期でもあります。

 

とある条件を加えるとFPSができるPCが大幅に限定される

というわけでどういうものがあるか調べてほしい、という依頼を受けまして調べてみたのですが、その条件がこれ。

  • 1年間の間にPCを数回動かすこと、また常時置いておく場所にスペースがほとんどないので(ノートPCである必要はないが)PC本体のサイズは小さく持ち運びがしやすいこと。(この「持ち運びがしやすい」はLANやキーボード等が無線化されているなどケーブル類がほとんどないことも含む)
  • メインとなるモニタにはある程度のサイズがあること(20inch以上)
  • FPSゲーム(指定されたのはFortnite)がそれなりの速度で動かせること
  • 自作のようにサポートが個人に依存する・複数メーカーに渡るような状態は不可。(つまりメーカー製)
  • 予算は10万円~15万円を目安。ただしMicrosoftOfficeを含むこと

 

実は「小型PCのように動かしやすい」と「FPSゲームが動かせるGPUがある」は条件として相反に近い状態

理由は単純でFPSゲームが動かせるレベルのGPUは性能故に消費電力が大きく、発熱がかなりあるため小型化がしづらいということがあります。そして「持ち運びのため、ケーブル類がほとんどない」の条件に当てはまるのはこの場合ノートPCやモニタ一体型PCといった発熱をかなり気にするPCばかり、ということになってしまうからです。

そうでなくてもメーカー製PCでグラフィック性能がある程度あるGPUを積んでいるものはミドルタワー以上となり、設置場所の関係でミニタワーレベルすら使えないという条件が厳しいのでグラフィックカードは別積みしづらく、ノートPCもメインとなるモニタのサイズを求めると別モニタを買わざるを得なくなり上記の条件を満たしづらくなる、というものだったりします。

ちなみに自作が許されるのであればモニタの後ろにVESAマウンタで本体を止められる位の小型PCで組み立てて、PC本体にGPUを追加でくっつける、という手法が使えないか、とも考えましたが…。まあちょっと厳しいですか。そこまで小型のものだとほとんどのものはグラフィックカードを載せるスロットがないですからね。

 

そうなるとモニタ一体型PCに活路を求めるしかないのでは…

こんな条件に当てはまるのはモニタ一体型PC位しかない、という結論になってしまうわけです。ちなみに別のサイトでモニタ一体型PC全体についての考察として書かれていたこととして要約すると「モニタ一体型PCはデスクトップPCの悪いところとノートPCの悪いところを併せ持つようなもので、せいぜい家のリビングにおいて置くようなPCくらいの用途になるだろう」だったのですが、今回の条件からモニタ一体型PCから探すしかないのでは?というところでした。

 

FPSゲームを動かせるレベルのGPUを積んでいるものはあるのか?

最終問題はこれ。当たり前ですがIntelのUHDGraphics630(CPU内蔵グラフィクス)ではかなり性能が不足します。それを考慮に入れると、性能が低い方から

  • AMDのRyzenに内蔵されているGPUを利用する
  • AMD/NVIDIAのモバイル向けGPUが搭載されているものを利用する
  • AMD/NVIDIAのデスクトップ向けGPUが搭載されているものを利用する

となります。一応ベンチマークサイトなどを見る限りではRyzen内蔵GPUだとIntelよりはかなりましですがそれでもかなりきついのでできれば専用GPUがほしいところです。ちなみにこの時点で日本国内の大手メーカーのモニタ一体型PCはすべてアウト。そうなるとDellかHPか…というところになります。なお、ノートPCでもこの価格帯で専用GPUがあるものは数が少ないです。まあ、この価格帯でノートPCにグラフィック性能を求める人がどれだけいるか怪しいですからね。

ちなみに、簡単に検索するとこのあたりになります。

Dell デスクトップパソコン Inspiron 5490 Core i7 ブラック 20Q32/Win10/23.8FHD/8GB/512GB SSD+1TB HDD/MX110

ASUS 液晶一体型 デスクトップPC ZenAiO【日本正規代理店品】超狭額ベゼル/23.8型/1TB+128GB/GTX1050/第8世代Core i5/8GB/ZN242GDK-BA050T

HP 液晶一体型 デスクトップパソコン インテルCore i7 16GB 256GB SSD+2TB ハードドライブ 23.8 インチ タッチ対応 フルHD ディスプレイ NVIDIA GeForce GTX 1050 グラフィックス搭載 Windows10 HP Pavilion All-in-One 24 Microsoft Office付き (型番:6DU74AA-AABB)

 

自作とは違うマニアックさが求められるPC考察でした

あとFPSゲームに関してですが、PCに詳しくない人の場合はPCの性能について知らずにFPSゲームをプレイする場合があり、そもそもロードすらまともにできず固まって動かない、なんてことがよくあるように思われます。このあたり、ゲームを始めるときに「PCにゲームを動かせるだけの力がないよ」みたいな警告を出す機能があればいいのかも、と思いました。

 

DeskMini A300を使ってPCを移行してみた

TwitterでしばらくつぶやいていたPCのアップグレード計画を実行に移してみたものです。今回の計画にはちょうどよいタイミングでいろいろなことをやっていたので思い切ってやってみました。

 

とりあえずPCの強化を行いたい

自分が使うメインPCではない(親のもの)なので放置していたのですが、ちょっと気になったので見てみるとCPUがCore i3 530という多分10年くらい前に発表されたCPUで動いていました。物持ちよすぎるというべきでしょうか。なお、ストレージはさすがに遅すぎるので途中でSSDに切り替えてはいます。そのため、今回はいくつかの目的および条件を設定して強化を行うことにしました。それは、

  • PCを置く場所を変えたいのである程度小型(MiniITXレベルまでは下げたい)のPCであること
  • メインメモリが4GBしかないとWin10を動かすときにもっさりする場面があるのでメインメモリは最低でも8GBを用意したい
  • OSの移行が面倒なのでストレージ+OSは旧パーツを流用したい(つまりストレージやOSはなくてもよい)

というものです。これらの条件をすべて兼ね備えていたのが…

 

今回の主役はこれ

そう、いらないものを極力減らす+サイズを下げることを目的としてベアボーンにしてみました。今回使うのはASRockのDeskMini A300というもので、発売自体はこの記事を書いている時から見ると1年くらい前なのですが、サイズがMini-STXなのでかなり小さく(ちなみに公式でのサイズは155x155x80)、かつグラフィックもCPU内蔵ですがRadeonになるのでIntelCPUより強力になる、何よりずっとIntelばっかりだったので機会があればAMD系のCPUで組みたいな~と思っていたので今回はこれにしています。

まあ、実はというともう一つうますぎる条件があり、それが(この記事を書いている前後の期間だけだと思いますが)パソコン工房でちょうどこれを使ったセールをやっていて、このベアボーン(DeskMini A300)+Ryzen5 3400G+16GBメモリで税抜き32000円という今回の強化にもってこいなくらいのものがあった、というのが真相だったりします。値段的には16GBのメモリの分がそっくりそのままサービスで入っているような感じです。8GB位を目指していたのに一気に16GBとはこれはありがたいです。

 

つまりCPUはこれ

というわけでRyzen5 3400Gです。ちなみに個人的には少し残念なこととして、このCPUは3000番台で3000番台はグラフィクス内蔵でない通常のCPUのコアはZen2ですが、3400Gはグラフィクス内蔵なのでCPUコアは一世代前のZen+になっているようです。Zen2を搭載したグラフィクス内蔵CPUはこの記事を書いている少し前に発表されたばかり…。少しさみしいです。

 

組み付けそのものは簡単

このあたりはほかのYouTuberの方が組み立て動画をあげているので詳しい説明はしません。一応ベアボーンに電源(ACアダプタ)とCPUクーラー(Ryzen5の場合はCPU付属のものは大きすぎて入らない)のでそれを使えば問題はありません。ただ、組み立て動画での紹介ではベアボーン付属のCPUクーラーは騒音が気になるレベルとあったので私は別にCPUクーラーを買うことにしました。一度分解してサクサクと組み立てれば完成です。

 

移行作業は要注意

これはベアボーンだろうが何だろうが関係なく注意です。今回私が行ったストレージ(+OS)だけが旧PCからの引き継ぎとなる場合は必ず旧PC上で関係するすべてのドライバを削除しドライバを自動的に当てないようにして最低限の環境にすること、OSの整合性をとる(今回の場合はRyzenがWin10 64bitのみサポートなのでそれになっているかどうか)こと、そして今回私がはまったのがデバイスのUEFI対応を確認すること、になります。

特に古いストレージ(しかもパーティションがMBR形式)の場合UEFIに対応していないことがあるらしく、初期設定のままではデバイスは認識できてもブートデバイスとして認識できないためそのまま起動させることができません。この場合はM/Bの設定でCSM(Compatibility Supported Module)を有効にしてブートデバイスとして認識させましょう。ちなみにこの場合はSecureBootやFastBootが使えなくなりますのでこれはまあ仕方がないと思ってもらうのがよいかと思います。

 

移行作業で出てきたネズミにかじられたLANケーブルにびっくり

旧PCを解体したり掃除をしたりケーブル類も取り替えて…と見ているとびっくりしたのがこれ。たしかにネズミがそれなりの数走り回っていたのは聞いていましたし、設置してから9年前後たっているのでそうなっていても仕方がないのかもしれませんが…。LANケーブルがこんな感じになっていました。

かじられたLANケーブル

かじられたLANケーブル

外側だけではなく配線の被覆までかじられて一部の導線が露出している状態になっていました。導通チェックをしたくもない状態ですね。こうならないように状態のチェックやら配線の交換をしておきましょう。

2020お伊勢参りの旅+α

ということで、昨年もお伊勢参りに行きお参りをしてきたわけですが、今年も新年ということでお参りしてきました。

 

今年は二見興玉神社から・・・

今年は順番を少し考えてお伊勢参りする前には二見興玉神社に行くべし、ということを守りまして日が昇るタイミングで二見興玉神社を参拝してきました。日が出る前の夫婦岩や、日が昇り明るくなっていくときの様子などがなかなかよかったです。ちなみに1月では夫婦岩から日の出は拝めません。それが見られるのは夏至の前後1ヶ月ほどということを考慮に入れないといけません。

 

昨年より1時間前後早く移動してきたので

1月上旬の日の出の時間帯に二見興玉神社から出ると、自家用車の場合は大体7時30分までには外宮もしくは内宮へと着けると思います。この時間であれば正月三が日でもない限りは近くの駐車場に止められると思います。公共交通機関はあまり走っていない時間ですし、パーク&バスライドのバスは9時にならないと動き出さないので朝が早いとこのあたりをどう考えるか、で少し悩むところです。

 

内宮周辺・外宮周辺も合わせて午前中でなんとか参拝できた

午前8時より前に伊勢神宮への参拝ができれば別宮も合わせても参拝は可能ですね。一応神社は午前中に参拝した方がよいとどこかに書いてあったと思いますのでそれを守ろうとすると気になるところですが、今回それはOKだった、ということで。

 

関係する剣祓などを集めてくると・・・

こんな感じになりました。順番は適当です。

伊勢神宮内宮・外宮剣祓

なお、別宮のうち離れた場所にあるもの(伊雑宮、瀧原宮、瀧原竝宮)は今回含まれていません。計画を立てたときに失念していたので・・・。今年はこれらを神棚におまつりして一年を過ごしていきたいと思います。なお、これらをすべておまつりしようとしたので神棚がえらいことになりましたが・・・。

また、この写真から何か感じ取れる人がいたらぜひコメントを。神棚におまつりする前に並べると妙に神々しかったのでこれを紹介したかった、というのもあります。