ひょんなことから、HPC 向けのプロビジョニングツールをまた新しく探すことになりました。
プロビジョニングツールとは、HPC クラスターを構築するツールであり、Bright Cluster Manager であったり、Trinity X と複数ありますが、大人の事情で、BCMは使いにくくなってしまいました。
プロビジョニングツールという言葉だけだと、Foreman や Cobbler のようなものでいいのですが(Ansibleはそのあとから使うようなもの)、HPC クラスターを構築の補助をするとなるとそれだけ(インストールイメージを構築し、計算ノードに展開する)ではなく、運用に入れるように整備し( ユーザー認証システム: LDAP サーバーの準備)共有ファイルシステムの構築:NFS, Lustre, GPFS, BeeGFS を構築できる統合したパッケージのことを意味します。
筆者はWindows CCS でそれらに初めて触りましたが、Linux 系は独自にそれらの仕組みを作って展開してました。x86_64 とかはまだいいのですが、その当時は、Itanimu2の自動インストールシステムを作る必要があり、汎用品ではうまくいかなかったぐらいの昔からの付き合いです。きちんと作り込んでおけば製品にはなったのでしょうが、うまくいきませんね。
ということでほかの人が作ったものを取り扱ってみようと思います。
1.HPCクラスターの設計
どんなプロビジョニングツールでも(まぁ、DHCP サーバーと TFTP サーバーを建てて自動OS構築環境を作るという根幹はかわらんけど)最初に考えなければならないのは、どのような HPC クラスターを構築しなければならないのか?がスタートになります。
要するに運用するネットワーク構成をまずは想定しろということで
Pre-installation - TrinityX Documentation
これを見てみると大体5つぐらいの構成になってることがわかります。
その中の基本中の基本はこれ、

(Trinity X から参照、ただこの図は大体どこの提供先でも似たような図がある。)
HeadNode (この名前は各社によって変わり、TrinityX は Controller, Qlustar なら cl-head ) がすべての始まりとなり、Publick Network つまり外側へのネットワーク接続が必要になる。外側とっても、WAN に直結しろと言ってるわけではなく、OS イメージやらを作るやリモートで管理をするための接続用途であり、社内LANでもいいが社内 LAN でも隔離された場所に追いやられる場合が多く、表にさらされるということはある程度セキュリティの知識がないとここから侵入され大変なことになるポイントとなります。
(だからと言って市販のセキュリティ対策ソフトを入れろと言ってるわけではなく、入れるのであれば、それなりの問題:つまり入れるセキュリティソフトとこのツール群が何を使っているのかを理解していかないとダメということ、を覚悟する必要が出てきます。何でもかんでも、対策ソフトに任せておけばいいってわけじゃないのよ、自動っていう意味をほんと理解してない。何かを自動化するのであって、何でも自動的に動いてるわけがない、ひとがつくったもの)
HeadNode の役割は
- DHCPサーバーとなり、クライアントホストのIPアドレスとホスト名を決定する
- TFPTサーバーとなり、計算実行ホストのOS イメージを配布する
- ディレクトリサービス(LDAPとかNISのこと)を展開し、ユーザー管理を行う
- NFSサーバーとなるか並列ファイルシステムの接続関係を行う。
- 外部と内部を接続するためにIP Router (MASQUERADEかもしれない)的な役割を果たす
など、クラスターを構築する中核となります。この前提のもとに、各構築ツールの動作を見てみることになります。
(前置きなので、無償公開はここまでです。ちなみにこの手のツールを使う時の心得は、マニュアルに書いている通りにやりましょう。あと、できると書いてあってもそれに過剰な期待をしないこと、カスタム化とかは沼にはまります。
無償公開とか言っているところは、なぜ無償なのかよく考えて使ってください。それなりにみんな考えてるのに、無償でやるというのはどこか間違った観念に支配されているのですよ。Free =無償ではなく、自由に使えますという、言葉を日本語に変に誤訳した誰かのせいでしょう。自由は無償ではなく、これを見たあなたも頭で汗をかく必要があります。)