学術・教育環境での利用に適したRocksクラスタ
Rocksディストリビューションは、カリフォルニア大学サンディエゴ校(UCSD:University of California, San Diego)が米国科学財団(National Science Foundation)から助成金の支援を受けて開発したものだ。Rocksの開発者たちが掲げた目標の1つは「クラスタを簡単に扱えるようにする」ことだった。もともとRed Hat LinuxベースだったRocksだが、現在はオープンソースのCentOSをベースにRed Hat Enterprise Linuxをも利用したものになっている。
Rocksクラスタは2種類の要素で構成される。クラスタ上のソフトウェアパッケージや投入されたジョブを管理するフロントエンドノードと、ジョブを実行する能力を備えたコンピュートノードである。
Rocksの最大の利点は、クラスタのインストールが簡単なことだ。Rocksクラスタは、非常に制限されたハードウェアでも構築できる。フロントエンドノードもコンピュートノードも、1ノードにつき最低16GBのハードディスクと512MBのメモリがあれば足りる。そのほか、フロントエンドノードには物理的なイーサネットポートが2つ、コンピュートノードには自動インストール用にPXEブートの機能が必要になる。
RocksクラスタのフロントエンドサーバはCDまたはDVDを使ってインストールできる。フロントエンドノードのインストールが済んだら、PXEによるブートとフロントエンドノードで構築されたイメージのダウンロードによって、コンピュートノードのインストールを行う。この方法により、クラスタ内のすべてのコンピュートノードでソフトウェアを標準化できる。
RocksとRoll
インストールの途中では、クラスタにインストールするRollの指定が求められる。Rollとは、クラスタが計算処理中やサーバ管理のために使うソフトウェアコンポーネントである。新規クラスタには、少なくともベース、カーネル、OSの各Rollが必要になる。Rocksディストリビューションには、こうした最低限必要なもの以外にも多くのRollが付属している。
Rocksの目標の1つに、管理タスクの最小化がある。そのため、効率化のためのさまざまなツールが用意されている。たとえば、管理者やユーザが各Rollを介してクラスタの状態(インストールしたツールに依存)を監視できる便利なWebページなどがある。
Rocksディストリビューションに含まれる最も重要なRollが、クラスタ全域のユーザジョブのスケジューリング、ディスパッチング、管理を担当するSUN Grid Engine(SGE)だ。SGEは、コンピューティンググリッドまたはクラスタで非常によく使われているスケジューラの1つであり、手間をかけなくてもクラスタによるリソースの消費を均一化してグリッド内の処理能力を最大化することができる。SGEによる管理はすべてコマンドラインから行い、キューの監視にはWebインタフェースやGangliaというRollが使える。
Gangliaを使うことで、システム管理者やユーザはフロントエンドノードのWebインタフェースからクラスタのパフォーマンスを監視できる。Gangliaが生成するレポートには、起動中および実行中の各ノード数のほか、過去1時間のCPU使用率、負荷、メモリ使用量が表示される。また、クラスタのジョブキューやユーザに関する指標の確認にも使える。
Area51というRollでは、管理者がTripwireやルートキット検出を使ってクラスタのファイルおよびカーネルの整合性を監視できる。Tripwireレポートは、フロントエンドノードのcronジョブによって自動的に生成され、クラスタのWebサイトに公開される。ルートキット検出の方は、「chkrootkit
」コマンドを使ってコマンドラインから実行する必要がある。
Rocksには、研究者による計算処理を支援するRollもたくさん用意されている。Rocksを利用する研究者の多くは生物科学を専門にしており、Bio-infomaticsというRollを使っている (Biowww.netでは、バイオインフォマティクス(bioinformatics)を「応用数学、情報科学、統計学、コンピュータサイエンス[など]の手法によって生物学上の問題を解決すること」と定義している)。
PGIやIntelのものなど、多くのRollにはC、C++、Fortranのコンパイラが含まれている。コンパイラがパッケージングされていることで、管理者やユーザは簡単にクラスタの能力を引き出すことができる。
デフォルトのRocksに付属するRollだけではニーズを満たせない場合は、RocksのWebサイトで公開されている新規Rollを開発するためのドキュメントを参照するとよい。
Rocksの制約
便利で有用なRollが用意されてはいるが、Rocksディストリビューションには、クラスタリングソリューションとしての利用に二の足を踏ませるような制約がある。
Rocksの認証には、411 Secure Information Serviceが使われている。これは、クラスタ内でNetwork Information Service(NIS)と同様の役割を果たす。ところが、現行のNISの設定にはRocksクラスタを含められないのだ。対処方法としては411を使って認証データをNISサーバから引き出すことになるが、このやり方では最新のマッピング状況に対応できない。
ほかのオープンソースソリューションと同様、サポートに関する質問をして回答を得るのに煩わしさを感じるかもしれない。大規模なコミュニティによってRocksディストリビューションへの貢献とサポートが行われているとはいえ、解決が困難な問題にぶつかることもあるだろう。また、UCSDの開発陣は「定時内」の限られたサポートしか行っていない。
おそらくRocksクラスタに潜む最大の問題は、パッチのインストールに関するものだろう。ユーザおよび開発者の間では、yumまたはup2date(パッケージ管理ツールはクラスタのインストール時に使われていたOSに依存)によるクラスタへのパッチ適用が安全かどうか、という議論が続いている。クラスタにパッチを当てたことで予期しない動作が起こったという例もある。慎重を期すなら、まずはテスト環境でパッチを適用することにより、クラスタによる予期せぬ動作や不安定な動作が起こる可能性を最小限に抑える必要があるだろう。
まとめ
学術・教育環境においてクラスタリングソリューションを評価するなら、その対象からRocksクラスタディストリビューションを外すわけにはいかない。このスケーラブルなコンピューティングソリューションを使えば、限られたハードウェアリソースしかない状況でも、大規模なサーバファームを有する環境でも、研究ニーズを満たすことができる。クラスタのインストールは簡単で必要なリソースも限られており、管理にとられる時間も少なくて済む。Rocksサーバのインストール環境には多くのRollソフトウェアパッケージが用意されているため、必要に応じて独自のクラスタを構築できる。いくつか制限はあるものの、Rocksは学術・教育環境において高い演算能力が求められる処理を行うどんなグループにとっても利用価値の高いツールだ。