Beowulf Cluster構築ガイド (ハードウェア編)
クラスタを導入するには、いくつかの選択肢から使用目的に適した選択を行う必要が
あります。お金に余裕があるから最高のスペックで揃えればいいと思っている方も
いるかもしれませんが、それも正しい選択とはいえません。例えば、MyrinetやSCIは確かに
高速かもしれませんがノード数が4程度では100BaseTと性能差はほとんどありません。
また、PVMやMPIも使う予定がなくLSFやPBSで主に負荷分散のために導入するのなら
迷わず100BaseTか1000BaseTにすべきです。
ネットワーク
ネットワーク選択上のポイントはEthernet系かそれ以外を敢えて使うかということでしょう。
EthernetはGigabitがすでに手ごろな価格になりつつあり、その帯域はすでに最新のハードディスク
とかわらないかそれ以上のレベルにあります。最近のNAS(Network Attached Storage)が
Gigabit Ethernetのポートを備えているのを見てもこの意味での速さは十分速いといえます。
では、なぜMyrinetやSCIが必要な場合があるかというとlatencyという言葉で示される
応答の速さがPVMやMPIで短いメッセージをやりとりするようなアプリケーションでは
帯域の広さよりも実際の速さとして効いてくるからです。
では、MyrinetやSCIが良いのかというと、少なくとも2つ問題があります。
まず価格ですが、ネットワーク1ポート分の価格がノードに使うマシンの価格とかわらない
ぐらい高価です。もう1点は使えるカーネルが限られることです。
どちらも一般的なハードウェアではないことに起因していますが、Linux上で特殊な
ハードウェアを使う苦労を考えてみてください。バグがあっても、そのバグの存在が
発見されるまでに要する時間はユーザ数に反比例します。カーネルそのものに問題が
あっても簡単にアップデートもできません。ディスクアクセスに問題があったとして
簡単にアップデートできないならば、システム全体の性能と信頼性を高く保つのは
至難の技でしょう。
最初からMyrinetやSCIを買うのは止めましょう。そのデメリットを知り、他に方法が無く
、それらがあれば改善できると分かっている場合に覚悟を決めて導入してください。
こういった問題は実はEthernetでも同じで一見性能が良くても高価過ぎてユーザが
少なすぎるような場合は、やはり起こり得ます。
latency に関してはEthernetカードでも改善する方法はあります。TCP/IPより軽い
プロトコルを実装すれば良いわけでM-VIAやGAMMAを試してみてください。
ただし”特殊”なドライバではあります。
あなたのアプリケーションで本当にネットワークがボトルネックなのでしょうか。
100BaseTのネットワークで十分な場合にまで余計な苦労と無駄なお金を使わないでください。
お勧め:Gigabit Ethernet: Natsemi, Broadcom, Intel
ノード数
ノード数は最終的には必要な台数ということになりますが、Dual CPUやQuad CPUの
SMPシステムを使った場合はシングルCPUシステムを使った場合よりノード数を減らせます。
ただしSMPのシステムはそのオーバヘッドによりCPU1個あたりの性能はシングルCPUシステム
より若干低下します。またCPU以外のリソースを複数のCPUでシェアするため最近のGigaHz級の
システムではCPUの性能を使い切る以前に他にボトルネックが発生しないか検討した方が
いいでしょう。
仮に16ノードでの性能を倍増したいとすると当然ですが少なくとも16ノード以上追加
しなければなりません。更に2倍の性能を得たいなら次は32ノード以上の追加となり、
ノード数は急激に増加していきます。通常ノード数を倍にしても性能は2倍以下にしかならず、
ノード数が増えるに従い性能向上の効率は下がります。場合によってはノード数の
追加が性能低下をもたらすこともあります。アプリケーションにもよりますが、ノード数は
多ければ多いほど良いわけではありません。
小グループでの使用はあまり台数を増やして面倒をみきれなくならないように注意しましょう。
16ノード以下程度で1セットと考えるといいかもしれません。
故障率は当然ノード数に比例します。ノード数が多ければそれだけメンテナンス性や耐故障性
も重視してください。また電源や空調も規模に応じて工事費や維持費が発生することを
考慮してください。
コンピュータは同時に熱源でもあり、どんなにすばらしいシャーシを使っても周辺温度が
上昇し続ければ必ずクラッシュするだけでなく、寿命も短くなってしまいます。空調の無い
部屋で無制限に大きなクラスタを運用することはできません。
シャーシ
ここでいうシャーシはコンピュータの筐体のことです。シャーシはコンピュータの中身に
よって左右される部分もありますが、クラスタとして使うのであれば次のようなシャーシ
があります。
- 通常のパソコンシャーシ
タワー型、デスクトップ型、ブック型等があります。種類が豊富で、価格が安い
ことが最大の利点です。少数の使用には適しています。
- ラックマウントシャーシ
幅19インチのEIA規格のラックにマウントできるタイプのシャーシで高さ約44mmを1Uとし、
1Uから4Uのシャーシがよく使われます。大きい方が高価なわけではなく、実際には、むしろ
逆です。主流は1U、2Uで多くのベンダからシステムとしても販売されています。
- ブレード/IPC ボード用
このタイプは実際にはラックマウントできるものが多いのですが、ひとつのシャーシに
複数の小型のマザーボードを搭載するという仕組みから分類を分けました。
シャーシのサイズは3U以上の大きさのものが多いようです。
自作にしろ完成品にしろ最も安価にクラスタを構築するのであれば、一般的なパソコン
シャーシということになります。市販のWindowsパソコンでもLinuxをインストールして
使えるものがあるかもしれませんがお勧めしません。Linuxが動作することが確実で
マザーボード他の部品が簡単に他の市販部品と交換できるものをお勧めします。
一流メーカのホームユーザ用パソコンよりむしろ自作した方がいいでしょう。
自作でシャーシを選ぶ際は電源を第一に選択します。箱は無くてもPCは動きます。
電源はスペックだけで選択してはいけません。最近の状況をみるとブランドを信用しろ
とは言い難いのですが、こと電源に関してはブランドを選べば、選ばないより後悔する
確率は確実に低くなります。どのブランドが良いかはここでは言及しませんが、シャーシ
の価格が一定だとすると高価な電源を使ったシャーシは外見が見劣りしてもおかしく
ないのは容易に理解できるでしょう。
ラックマウントシャーシは元来、工業用コンピュータのシャーシとして使われていたため
耐久性や耐環境性、堅牢性が重視されてきました。最近はインターネットのサーバ用と
しての需要が大きくなったことで参入が相次ぎ工業用としての特性は薄れつつありますが、
電源やスイッチにはパソコン用より信用できるものが通常使われています。
しかし、1U,2Uサイズに限っていえば、1台の高さ2mのラックで20台から40台収納できる
スペース効率の高さが最大の利点でしょう。ブック型のPCなら安くてスペース効率もいい
といえなくもありませんが、ブック型はシャーシに搭載できるマザーボードが通常の
ATXサイズの半分程度の大きさで、マザーボードの選択の自由もまずありません。
ラックマウントシャーシは1Uであっても奥行きが60cm程度のものであれば
通常のATXサイズより大きいサーバ用マザーボードが使えます。
RAID構成でホットスワップ可能なタイプも選択できメンテナンス性も高いといえます。
最近のブレードや従来からあるCompactPCI、SBCといったIPC(Industrial PC)
と呼ばれる小型のボードを使ってクラスタを組もうと考えるのは、スペースファクタで
考えればごく当然のことで、バックプレーンからの一括電源供給、CPUボードのホットスワップ
等、魅力的なシステムが作れそうです。実際にはCompactPCIなどは結構古くからある規格で
これでClusterを組んだ例は国内でも20世紀中にあります。
ATXマザーの2分の1以下のサイズでDual Xeon、VGA、LAN等フル実装のボードやClusoe他
多様なCPUのボードがあり一般に市販されているマザーボードよりもバラエティに富んで
います。ただし、かなり高価であること、性能はあまり期待できないこと、情報量の少なさ
等PentiumIIIのようなある程度枯れたCPU以外ではお勧めできません。
どちらかといえばWebサーバのクラスタのように低消費電力で、あまりCPU性能は要求されな
いが状況に応じた能力が常に必要なシステムに向くのではないでしょうか。
ノードあたりのCPU数
最近のデスクトップ用CPUにおけるSMP非対応化によってマルチプロセッサシステムには
すべてプレミアムがついたSMP対応CPUを使用しなければならなくなったため、それ以前
のDual CPUシステムで得られたような高いコストパフォーマンスはもはや得られない。
しかも、Pentium4においてはDual対応のXeon、4way以上にも対応するXeonMPと3系列
となり、困ったことにデスクトップ用のPentium4のクロック上昇をXeon系が追いかける
状況のため、Dual CPUシステムを選択する理由は相対的に低くなっている。
元来CPU1個あたりの性能で見ればシングルCPUシステムが、SMPのオーバヘッドが
ないだけ最も高速である。SMPシステムを選択する理由はというと、
1.ノード単位で見れば、スレッド対応アプリケーションであればシングルCPUシステムより高速な演算が可能。
2.マシンの台数を減らせ、管理コストが下がる。
3.CPU負荷に対する容量が増加する。。
4.システムに搭載されているCPUに対する負荷分散が自動的に行われる。
があげられるが、3,4に関してはBeowulf Clusterとして使用する場合にはほとんど意味をもたない。
この他、ごくわずかではあるがシングルCPUであってもマルチCPUであっても料金が変わらない
有料ソフトを使用する場合はトータルコストで考えて有効な場合がある。この逆にマルチCPUの場合に
割高な料金設定の有料ソフトもあるので注意する。
マルチCPUといってもDual CPUと4CPU以上では明確な差異があることも考慮したい。
キャッシュ容量の違いはあるが、同一周波数のXeonとXeonMPを比較するとXeonMPの価格が10倍以上する
という点でも垣間見得るが、4Way以上のシステムは現状、専用シャーシが当たり前の特殊なシステムと
みなしてかまわない。導入には明確な使用目的がないとクラスタを導入する意味が薄れる。
場合によってはクラスタ化する必要もないかもしれない。
CPU
CPUだけで性能が決まる訳ではないが、演算速度を求めるユーザが速いCPUを求めるのは当然だろう。
速いCPUといっても速さにも個性がある。アーキテクチャが同じであれば基本的に周波数が高いCPU
の方が速い。しかしアーキテクチャが異なる場合には周波数での比較はあまり意味をもたない。
CPUには様々な機能があり、例えば整数演算は速いが浮動小数点演算は遅いとか、キャッシュのサイズが
違うとか、AとBを比較したとしてベンチマークやアプリケーションさらに処理するデータサイズによっても
Aが速かったりBが速かったりして簡単には優劣をつけられない。目的のアプリケーションと実際のデータ
でテストするべきで、ベンチマークに全面的な信頼を寄せると間違いをおかすこともある。
速さだけを基準にするのもまた怪しいかもしれない。
CPUを将来アップグレードするのであればCPUソケットの継続性やアーキテクチャの将来性も判断材料で
あるし、消費電力あたりの性能という見方もある。ベンチマークにあまり神経質になっても無駄、
1、2割の差などベンチマークをとっている間に発売された新製品で逆転してしまうという見方もある。
ボトルネックがCPU以外にあれば1GHzのCPUを1.5GHzにしたからといって速くならないこともある。
要はバランスのよいシステムを心がけ意味の無いところにコストをかけないことを考えたほうがBeowulf
の王道を行くのではないだろうか。
1年毎にCPU交換、2年毎にマザーボード交換という手もある。ただし必ずできるという保証はない。
どんなCPUを選んだらいいかさっぱりわからないと不評を買いそうなので少し私見を述べさせていただくと、
自作するならインテル製が失敗しにくい。Webサーバなどインターネットサーバであれば消費電力の少ない
PentiumIIIや370ソケット用Celeron、ゲノム解析などの一部のアプリケーションでもPentiumIII-SがPentium4
と周波数の大きな差にもかかわらず性能的にかわらないことがあるので要チェック。消費電力が約半分。
ただしCPUアップグレードの将来性はほとんどない。
コストパフォーマンス優先であればAthlon系の割安価格帯から選択。ただし発熱と消費電力はかなり高い。
オーソドックスな選択は0.13ミクロンのPentium4かXeon2発。0.18ミクロンの旧型はアプリケーションに
よっては極端に遅い場合があるので今や間違って選択しないように注意する。
AthlonMP Dualは現状ギャンブルのような気がする。
Itanium はClusterとして使用している例を知らない。
メモリ
Linuxで32bitCPUを使う場合は物理メモリ4GB以上の条件でも1プロセスでは3GBまでのメモリ
しか使えないという制約がある。メモリを8GB積んだとしても目的のアプリケーションを
1プロセスでしか使わない場合は8GBの意味は薄い。またシステムで4GBを越すメモリアクセスには
PAEが必要で通常はカーネルを再構築する。これで64GBまでのメモリを使える訳だが、性能は
4GBまでの場合より劣るようだ。
Registerdかunbefferd、ECCかnonECCかという選択は最近ではRegisterdが必須、あるいは
unbefferdでは最大メモリ搭載量を制限しているマザーボードが多いのでメモリをたくさん積もう
と考えているような場合はRegisteredを選択しておく。
ECCに関しては最近のパソコンでは使わない場合が多いが、ビットエラーが起きなくなっているわけでは
なくコストが理由でECCを使わなくなっているようだ。経験的にはECC無しのシステムでインターネット
サーバを長期に渡って運用できている例は多いが、長時間を要する演算を行う場合やメモリアクセスの
多いアプリケーションではECCを選択すべきだろう。512MB以上メモリを搭載する場合にはECCを使用した方が
いいという意見もある。
DDR SDRAMかSDRAMかRDRAMかはマザーボードに依存する。DDRのシステムにRDRAMを挿せないのはご存知の
通り。どんなメモリを使うのかでシステムを選択するのだがDDRかRDRAMの2者択一は結構悩む。
現状RDRAMの方が高速だがlatencyがあまりよくなく、価格は高い。将来を約束されているのはDDRの方であり、
より大容量のメモリを使える。しかし、メモリのスペックはそれだけではあてにならない。
同じメモリでもシステムの出来不出来で実際のスピードに2倍程度は差があることはよくあること。
やたら速くても現実のアプリケーションではたいして違いがでないことも多い。
システム次第としておいた方が良さそう。となると選択肢の多いDDRのシステム有利となってしまうが。
ストレージ
ハードディスクはインターフェースからIDEとSCSI,サイズでは3.5インチと2.5インチ、
回転数で5400rpm,7200rpm,10000rpm以上などと分類でき、IDEやSCSIにはさらに細かい規格が
あるのですが現在ポピュラーなのは3.5インチのIDEディスクで5400rpmか7200rpmです。
最近では5400rpmと7200rpmの価格差がわずかなのでより性能がいい7200rpmを選択するのが
普通ですが5400rpmを選んだ方がいい場合もあります。ハードディスクはコンピュータの
部品で最も壊れやすい部品だといえます。むしろ消耗品とみなしてもいいかもしれません。
ハードディスクの寿命は一般的にはSCSIディスクの方が長いのですが、価格はIDEの数倍
と高価であり、SCSIコントローラが必要です。
SCSIコントローラではAdaptecがよく使われますが、Linuxでは問題が発生することが
時々あります。チャネルあたりで接続できるドライブ数はSCSIの方が多いので多数の
ドライブを接続するにはSCSIが有利です。
性能でも規格にもよりますが、最高速を出そうとすればやはりSCSIとなるでしょう。
しかし、それほど差がある訳ではありません。
ディスクアクセスの負荷が高いアプリケーションを常用するような場合はSCSIを選択
しておいた方が安心ですが壊れないわけではないということを忘れてはいけません。
ホストノードにRAIDを使用しておくといいでしょう。冗長的なRAIDであれば思わぬドライブ
の故障からデータを守ることができます。システムもRAID上に置いてしまえばドライブの
故障によるシステムダウンも防止できます。
他のノードは通常IDEで構わないでしょう。ただし、貴重なデータを保管しないようにし
RAID等で保護したホストのディスクをNFSで使うか、ネットワークの負荷を考慮するような際は、
テンポラリ的にノードにコピーして使うといいかもしれません。
RAIDに使うドライブのユニットをSCSIにするかIDEにするかという選択は微妙です。
あるディスク販売会社はIDE RAIDに使うドライブはスクリーニングした方がいいといっています。
確かにIDEは安価であるため品質管理のコストを削っていることは十分考えられます。
SCSI RAIDもIDE RAIDも共に製造している会社に耐久性の違いを尋ねたところ、違いは無い
との意見でした。はずれのドライブを引かなければ耐久性に大差はないが、IDEは、はずれを引きやすい
と考えたらいいかもしれません。また、某社のハードディスクが耐久性の問題で昨年から騒がれており
ついに新型ではスペックに月間の通電時間(POH)が333時間と表記された問題があります。その会社のエンジニア
へのインタビューで”サーバに使用すべきではないという意味か”という質問に対し、肯定していた
のを覚えています(記事も333時間のスペックも今は見つかりません)。この系列のディスクが使われた
IDE RAIDでは不信感を募らせたかもしれません。
価格的には圧倒的にIDEが優位にあり、危なそうなドライブを避ければ良さそうですが、
心配な場合はSCSIにしておきましょう。
その他(KVMスイッチ、UPS、ラック)
KVMスイッチ(Keyboard,Video,Mouse切り替えスイッチ)は無くても構いませんが、あれば便利です。
UPSはクラスタ全体をバックアップするには規模にもよりますが、かなりのコストがかかります。
システムの自動シャットダウンができるようなUPSを選択し、場合によってはホストだけをバックアップ
すればいいでしょう。ノードのファイルシステムをジャーナリングファイルシステムとしておけば
ファイルシステムが壊れる可能性が減らせるだけでなく電源復旧後の再起動にfsckの時間がかかりません。
ラックには積載する機器の重量を計算し耐荷重が十分なものを選択してください。
また、地震等でラックが転倒しないような対策も場合により必要です。特に引き出しレールで機器を
取り付けた場合、低めのラックでも上段から引き出していくとバランスをくずし危険です。同時に複数の
機器を引き出さないように注意してください。
クローズドタイプのラックは搭載するノード数にもよりますがそれなりの設備を施さないと放熱が困難です。
オープンラックが比較的安価で放熱が簡単です。ただし高密度でノードを搭載したような場合など
オープンラックであっても気流が無いような場所では周辺温度が上がり問題が発生します。
もちろん何の空調も無い部屋では部屋自体の室温が上昇し問題が発生しやすくなるでしょう。
HOME