クラスタの世話をする
Deepak Khosla

以前のクラスタライフサイクル管理のコラムでは、私は新しいクラスタを展開し、検証するために注意すべき重要なステップを説明した。今回は、運用を長期的にスムーズに効率的に行うために、システムを運用、環境設定、そして保守に移行する最善の方法について述べることとする。
新しいクラスタの展開と検証が完了したら、HPCシステム管理の仕事を開始する時だ。前回のコラムのアドバイスが踏襲され、主要なHPCシステム管理者が選任されて、展開段階にすでに配置されていると仮定する。今は自分のスタッフやゴミ箱の中にHPCの専門家がいないことを発見する時ではないのだ。ハードウェアやソフトウェアがうなっているかと言って、それが動いている事を意味しているのではないのだ。他の複雑なシステムのように、HPCクラスタは効率的に動かすために、継続的に監視され、分析され、保守される必要があるのだ。
特に大組織によって私がよく犯す過ちは、今いるITスタッフの誰かが恐らくマイナーなトレーニングを受けてHPCシステムを把握しているという仮定だ。残念な事にこれは滅多にうまくいかない。HPCは広義の情報技術分野においてはニッチではあるが、最高のITゼネラリストでもスーパーコンピューティングに関して殆どまたは全く経験を持っていない。HPCは単にLinuxもしくはWindowsサーバを一緒に積み上げただけのものではない。HPCはそれ自体が専門分野なのだ。
新しいシステムを期待通りに動かしたいなら、HPCの専門知識を持っている必要がある。2つのオプションがある – 1名以上のフルタイムのHPC管理者を雇用するか、もしくはこのHPCシステムのサポートのために契約することだ。恐らく組織に最適な予算が決まるだろう。いくつかのシナリオでは、激しい市場需要のために、もしくはフルタイムの人間が必要ないかもしれないので、スタッフとしてHPC専門家を見つけたり維持したりすることを考えると、サポート契約の方が良い場合がある。システムベンダーもしくはインテグレーターに契約している運用管理サービスがあるかどうか聞いてみよう。
さて、あなたのクラスタは準備が整い、スタッフとしてもしくは契約で熟練したHPC管理者がいるので、最初の仕事は運用として正常に動作するようにクラスタを設定することだ。この責務には2つの主な側面があり、エンドユーザの使い勝手の観点とシステム運用の観点の両方において最適に動作するように設定しなければならないことだ。
管理者は最初にエンドユーザに対する適切なセキュリティアクセスを設定しなければならない。成功するセキュリティ設計においては2つの主要な部分があり。ひとつめは、ユーザが安全にログインできるように適切な認証システムへの接続への対処だ。
クラスタでは、LDAP、Windows等のような既に確立されているエンタープライズシステムに結合するように設定されなければならないことが多い。この認証はスピードと信頼性があることが重要だ。並列で実行しているHPCのジョブは、認証システムが不安定だと失敗してしまう。成功への2番目の部分は許諾要件への対処だ。管理者はファイルシステムとディレクトリのパーミッションが許諾方針に沿っているか検証する必要がある。ユーザがジョブのサブミットから自分のワークステーションから結果をレビューするまでのすべての工程においてスムーズに動く事ができるようにすることが重要だ。これらが特有のユーザグルームにおいて演算およびストレージの両方に渡って設定され、構築され、そして試験されなければならないのだ。
さらに、様々なユーザグループやアプリケーションプロファイルに割り当てるスケジューラならびに容量の要件を満たすためにストレージについてポリシーを設定する必要がある。セキュリティ、コンピューターおよびストレージが設定されれば、ユーザはシステムに安全に炉群することができ、どこにデータを安全に保管できるか分かるのだ。
もし全く新しいクラスタであれば、ユーザのほとんどがHPC技術が最初のユーザの可能性が高い。これは、システムでどのようにアプリケーションを実行するのかトレーニングと教育が必要であることを意味している。デスクトップやメインフレームで彼らが動かしているアプリケーションはクラスタにおいては同じようには動かない。ユーザはアプリケーション固有のトレーニングを必要とするだろう。スケジューラによっては、様々なアプリケーション毎に異なるジョブ投入方法があるだろう。
クラスタと各アプリケーションに関係する記述された知識ベースを構築し始めるのは管理者の責任だ。このハードコピーもしくはWebベースのドキュメントは、ジョブの投入や追跡の方法や問題が起こった場合の対処法をユーザが理解するためのガイドとして利用されることだろう。ユーザベースのレベルやサイズによっては、エンドユーザがジョブの管理を簡単にすることができる何かのポータルをみることも意味がある。
クラスタ自体については、システムが運用に入ったら直ぐに、管理者は監視とアラームツールを設定する必要がある。継続的もしくは周期的ベースでのストレージ、ネットワークおよび計算サービスの監視、レポートおよび警告は、重大な故障に変わる前のトラブルの兆しを認識するのに重要だ。マイナーな問題はディスク・スペースが埋まってくるような単純な意味だったりするが、ソフトメモリエラーは差し迫るノード障害の兆候であるかもしれないのだ。
このような監視と分析ツールは容易に入手可能だ。多くのHPCクラスタはシステム固有のツールが付いてくる一方で、他のもっと強固で技術的でビジネス的な分析パッケージも販売されている。元が何であれ、これらのツールはディスククリーンアップやエラーログレビューばかりでなく修復が必要な実際の故障のようなルーチン的な保守の問題を特定し、予測するように設定される必要がある。
しかし私の経験では、HPC分野における問題の原因を特定することは、複数の箇所において手掛かりを探す必要がある。HPCクラスタで何かが起きると、一度に数カ所でアラームが鳴ることがある。熟練した管理者は全てのフラグがたった性能の問題を見直し、根本的な原因が実際にどこにあるか把握する。この点において、人間に取って代わるソフトウェアツールは無い。
クラスタの適切なケアもまた管理者が積極的に行う必要がある。クラスタに何かシステム的な問題がないか、もしくは展開で確立したベースラインより落ちる事がないか確認するために、3ヶ月から6ヶ月毎に診断とベンチマークの標準セットを実行することを推奨している。もしそうであれば、さらなる精査が必要だ。最後ではないが、すべてのアプリケーションがクラスタでうまく機能し続けるように、HPC管理者は変更を加える正しい方法を見つけなくてはならない。アプリケーションもしくはライブラリやOS/ハードウェア用のパッチや変更は適用する前に、できるだけ注意深く検討されなければならない。アプリケーションに対するシンプルな変更が他の既存アプリケーションで障害を引き起こすことによる重大なシステム停止を私はいくつも見てきた。
最後に、システムが障害が発生した場合にも迅速にオンラインに戻す事ができるように、実行可能なバックアップ計画を策定しなくてはならない。
バックアップすべき最も重要なものは、スケジューラの設定、ヘッドノード、主要ソフトウェア、アプリケーションおよびユーザデータだ。中間データはほとんどバックアップする必要はないが、ユーザの入力および出力データは特に結果の再生成に時間が掛る場合にはバックアップとるべきだ。組織はまた、いつデータをクラスタからオフサイトのストレージにバックアップするか決定するデータ保持ポリシーを持つべきだ。
新しいクラスタの世話に関する次のトピックは「キャパシティ・プラニングとレポート」で、次のカラムでカバーする。
Deepak Khoslaは、X-ISS社の社長兼最高経営責任者(CEO)である。