仮想クラスタ管理システムの設計と実装 中 田 秀 基 谷 村 勇 輔 † † 横 井 威 小 川 宏 高 † † 江 原 忠 士 関 口 智 嗣 †,†† † 計算機資源の効率的な運用の方法として仮想化が注目されており,仮想的なクラスタを管理するシ ステムが提案されている.しかしこれらのシステムは,クラスタを単なるノード の集合と考えてお り,クラスタとしての統合的な運用に必要となるさまざ まな機能を実現していない.また,計算機資 源を仮想化しているが,ストレージ,ネットワークを含めた仮想化環境を提供していない.われわれ は,これらの問題点を解決した仮想クラスタ管理システムを提案する.本システムは,クラスタ構築 システム Rocks を用いることで,クラスタ運用に必要なソフトウェアを整合して配置する.また,ス トレージ資源を IP SAN 技術のひとつである iSCSI を用いて仮想化,ネットワーク資源をタグ付き VLAN を用いて仮想化することで,管理コストが低く,安全な仮想クラスタ環境を実現する. The Design and implementation of a Virtual Cluster Management System Hidemoto Nakada ,† Takeshi Yokoi ,† Tadashi Ebara,†,†† Yusuke Tanimura ,† Hirotaka Ogawa † and Satoshi Sekiguchi † To fully utilize resources in computer center, virtualization techniques are getting popular and several systems are proposed for this purpose. However, they just provide set of virtualized nodes, not the ’virtual clusters’; i.e., they are not able to install and configure middlewares and tools that makes ’set of nodes’ into ’cluster’. Another problem is that they just virtualize nodes, leaving storage resources and networks, which are equivalently essential for clusters, un-virtualized. we propose a virtual cluster management system which virtualizes compute resouces, as well as disk storage and network, and install and setup softwares that are essential for cluster operation, using Rocks, a cluster provisioning system. We vitualize storage with iSCSI and network with tagged VLAN. ンされていなければならない. もうひとつの重要な点として,ストレージとネット ワークの仮想化が挙げられる.ストレージ資源は計 算機資源と同様に重要なクラスタの要素であり,スト レージ資源も含めて仮想化しなければ,仮想クラスタ のメリットである運用の自由度を得ることはできない. また,物理ネットワークを共有する複数の仮想クラス タを安全に分離するためには,ネットワークの仮想化 も必要である. われわれは,上記の点に留意し,ソフトウェアが整 合性をもって設定され,仮想化されたストレージと ネットワークを持つ仮想クラスタを構築するシステム を提案する1) .本システムは,クラスタ利用者からの 依頼に応じて予約ベースで仮想クラスタを構築,提供 する.VMware Server2) を用いて計算機を仮想化し, IP SAN(Storage Area Network) 技術の一つである iSCSI3) を用いてストレージ資源を仮想化,タグ付き VLAN を用いてネットワークを仮想化する.このよう にして構成された仮想計算機群をクラスタインストー ルシステム Rocks を用いてインストールすることで, 1. は じ め に 計算機センタやデータセンタなどの計算機資源を集 中管理する組織において,資源の効率的運用を実現す る方法として仮想化が注目されている.計算機資源や ストレージ資源を仮想化して提供することによって, 運用自由度と管理の容易性をともに向上させることが できる.これによって資源を有効に活用し,ひいては コストの低減につなげることが可能となる. 仮想クラスタを構築する際に注意すべき点のひとつ は, 「 仮想クラスタ」が単なる「仮想ノード 」の集合で はないことである.クラスタがクラスタとして運用可 能であるためには,名前空間やファイルシステム,ソ フトウェアの共有が必要なだけでなく,モニタリング やバッチスケジューリングシステムなどの運用ソフト ウェアが適切にインストール,コンフィギュレーショ † 産業技術総合研究所/National Institute of Advanced Industrial Science and Technology (AIST) †† 数理技研/SURIGIKEN Co., Ltd. 1 運用ミドルウェアが整合してインストールされた,仮 想クラスタを構成することができる. アンスを指定して計算ノード をネットワークブート する.するとフロントエンドがインストールサーバと なり,計算ノードに自動的に OS とソフトウェアがイ ンストールされる. 2. NPACI Rocks 本節では,本システムで使用するクラスタインス トールシステム NPACI Rocks4),5) についてのべる. 2.1 概 要 Rocks は,NPACI(National Partnership for Advanced Computational Infrastructure) の一環とし て SDSC(San Diego Supercomputer Center) を中 心に開発されたクラスタ管理ツールである.クラス タのノード 群に対して一括で同じ ソフトウェアパッ ケージをインストールすることができる.OS として は,Red Hat Enterprise Linux をベースとした CentOS(Community ENTerprise Operating System) を 使用する. Rocks の対象となるクラスタはフロントエンド と 計算ノード 群で構成される.フロントエンド と 計算 ノード 群はプライベートなローカルネットワークを共 有する.フロントエンド は このローカルネットワーク 向けと,グローバルネットワーク向けの 2 つのネット ワークインターフェイスを持ち,計算ノード 群のルー タとしても機能する. Rocks は,個々のノードにソフトウェアをインストー ルするだけでなく,クラスタ運用ソフトウェアのイン ストール,設定も行う.代表的なものとして,NIS と 類似した Rocks 独自のユーザ名空間管理サービスであ る 4116) ,クラスタのモニタリングを行う Ganglia7) が設定される. 2.2 Roll とアプライアンス Rocks では Roll と呼ばれるメタパッケージによっ てアプリケーションを管理することができる.Roll に は,RPM 形式のパッケージと,パッケージ間の依存 関係,パッケージインストール後のデプロイ処理を記 述することができる.クラスタ管理者は Roll を新た に追加することで,クラスタに新たな機能を追加する ことができる.現在,HPC 関連,グリッド 関連のさ まざ まな Roll が Rocks チームやベンダから提供され ている. また,クラスタ内の個々のノードに対して,異なる構 成でのインストールを行うことができる.個々のノー ド 構成をアプライアンスタイプと呼ぶ.アプライアン スは Roll と直交する概念で,あるアプライアンスが 複数の Roll によって規定されることもありうる.ま た,ひとつの Roll が複数のアプライアンスの定義に 寄与することもある. 2.3 Rocks によるクラスタのインスト ール Rocks によるクラスタのインストールは下記のよう に行われる.まずクラスタ管理者は,フロントエンド を CD-ROM からインストールする.次に,アプライ 3. 設 計 3.1 仮想クラスタ利用シナリオ 本システムには,クラスタプロバイダ,サービスプ ロバイダ,ユーザの三者が関与する.クラスタプロバ イダは,本システムを使用して,所有する実クラスタ を管理する主体である.クラスタプロバイダは,ユー ザに対して直接サービスを提供することはない.クラ スタプロバイダに対する顧客はサービスプロバイダで ある.サービスプロバイダは,ユーザに対してサービ スを提供する主体である.サービスプロバイダは,計 算資源を持たず,クラスタプロバイダと契約して仮想 クラスタの提供を受け,その上に展開したサービスを ユーザに提供する. 仮想クラスタはフロントエンド ノードと 1 つ以上の 計算ノードから構成される.フロントエンド ノードと 計算ノードはプライベートアドレスのローカルネット ワークで接続されている.クラスタプロバイダは,フ ロントエンド ノードのグローバルネットワークへのイ ンターフェイスの IP アドレスをサービスプロバイダ に提供する. 以下に,本システムを利用したクラスタ提供のシナ リオを示す. ( 1 ) まず,クラスタプロバイダは本システムを利用 し,実クラスタをインストールする. ( 2 ) 次にサービスプロバイダがクラスタプロバイダ に対して仮想クラスタ構築を依頼する.その際 にサービスプロバイダは,使用開始/終了時刻, 使用計算機台数,必要メモリ量,ストレージ量, 提供するサービスを構成するためのアプリケー ションプログラムなどの情報を提供する.アプ リケーションプログラムは,サービスプロバイ ダが用意する. ( 3 ) クラスタプロバイダは本システムを用いて仮想 クラスタを実クラスタ上に構築し,サービスプ ロバイダが用意したアプリケーションプログラ ムをインストールして,サービスをデプロイし, サービスプロバイダに提供する. ( 4 ) サービスプロバイダはアプリケーションプログ ラムを利用したサービスを,ユーザに対して提 供する. 想定される使用法の一つとして,計算ファームが挙 げられる.短期的に膨大な量の計算をしなければなら ない会社があると仮定する.この会社はサービスプロ バイダとして,1 月の間 100 台の計算機の使用する契 約をクラスタプロバイダとかわす.予約した時刻には, 2 通常,仮想計算機のファイルシステムは,ホスト計 算機のファイルシステム上のファイル,もしくはパー ティションを用いて実現する.しかし,この方法では ファイルシステムが,ホスト計算機に強く束縛されて しまい,容量設定の自由度が低い.また,仮想計算機 のマイグレーションを行うことが難しい.さらに,ス トレージ資源の管理という側面から考えても,すべて のホスト計算機にストレージが分散してしまい,管理 が困難になることから好ましくない.ストレージは専 用のストレージノードに集約できることが望ましい. 3.2.5 ネット ワークの仮想化 複数の仮想クラスタが実クラスタ上で共存する場合, ネットワークのセキュリティを考慮する必要がある. 標準的な仮想計算機構成では,仮想計算機はブリッジ 接続を用いて,ホストとなる実計算機の所属するネッ トワークを共有する.この延長として仮想クラスタを 構築すると仮想クラスタと実クラスタがネットワーク を共有することになる.これは,実クラスタ上に複数 の仮想クラスタを構成した場合,すべての仮想クラス タがネットワークを共有してしまうことを意味する. しかし,多くのクラスタ管理者は,クラスタの属す るローカルネットワークに対して,外部ネットワーク よりも安全な環境を期待している.この期待にこたえ るためには,仮想クラスタ間のネットワークを分離す る必要がある. 3.3 設計の概要 3.3.1 ソフト ウェアのインスト ールと設定 本システムでは,ソフトウェアのインストールと設 定に NPACI Rocks を用いる.これは,Rocks がすで に幅広く利用されており,安定性に定評があることと, 多くの Roll が各所から提供されているため,ユーザ にとっての利便性が高いと思われるためである. 3.3.2 計算機の仮想化 計算機の仮想化には VMware Server2) を用いた. VMware Server は VMware, Inc. が開発した仮想化 ソフトウェアで,ライセンスの範囲で無償で使用でき る.VMware Server は 有償の VMware Workstation からいくつかの機能を省き,コンソール機能を切り離 したものである.BIOS を含んだ完全な仮想化を提供 するため,ゲストとして動かす仮想計算機の変更を要 求しない点が特徴である. VMware Server では,仮想計算機間の CPU 割り当 てなどを指定することはできないが,プロセスの nice 値を制御することである程度の優先制御をすることが できる. 3.3.3 ストレージの仮想化 ストレージの仮想化技術として,Fibre Channel や Infiniband などの高速ネットワーク技術を用いた SAN (Storage Area Network) を利用することができる.こ れらの技術を用いると,ストレージを集中管理するこ とで運用コストの低減を実現することができるが,一 仮想的なクラスタで Condor8) などのジョブスケジュー リングシステムが準備され,フロントエンド ノードが 引き渡される.これで,会社内の研究者がユーザとな り,計算をサブミットすることができるようになる. Condor のフロッキング機構を利用すれば,個々の研 究者はなんら設定を変更することなく増大した計算パ ワーを享受することができる. また,教育用の計算機システムとして,科学技術計 算用のクラスタと,授業用の環境を共存させることも 考えられる.授業時間にあわせて毎週定時に仮想クラ スタを構築し提供する. 3.2 仮想クラスタへの要請 本項では,仮想クラスタへの要請を整理する. 3.2.1 ノード 構成 仮想クラスタは,それを利用するサービスプロバイ ダにとって,通常の物理的実体を持つクラスタと同じ ように見えていなければならない.クラスタの典型 的な構成は,ひとつのフロントエンド ノードに対して 複数の計算ノードが接続された構成となる.多くの場 合,フロントエンド ノードのみが外部ネットワークに アクセス可能であり,計算ノードは内部のプライベー トネットワークのみに接続される.計算ノードは,フ ロントエンド ノードを経由して外部ネットワークへの アクセスを行う. 3.2.2 クラスタ運用ソフト ウェアのインスト ール クラスタを単なるノードの集合以上のものにするに は,クラスタ運用のためのソフトウェアがインストー ルされていなければならない.このようなソフトウェ アとしては,ユーザ名空間を管理する NIS や,クラ スタをモニタする Ganglia7) ,ジョブスケジューリン グシステムの Grid Engine,TORQUE, Condor など が挙げられる. これらのソフトウェアは,フロントエンド ノード お よび計算ノードに,個別にインストールするだけでは 意味がない.たとえば Grid Engine では,フロント エンド ノードには計算ノードのリストが登録されてい なければならず,計算ノードにはフロントエンド ノー ドが登録されていなければならない. 3.2.3 計算機の仮想化 クラスタを仮想化するにはまず計算資源を仮想化 しなければならない.この際,単一の実計算機上に複 数の仮想計算機が起動でき,さらに,それらの間での CPU 使用率の割り当てが制御できることが望ましい. 3.2.4 ストレージの仮想化 クラスタが使用するストレージには,各ノードが利 用するローカルストレージと,クラスタ全体として 利用する共有ストレージがある.いずれの場合にも, サービスプロバイダの要請に応じて容量を自由に設定 できることが望ましい.また,仮想クラスタ管理シス テム全体に対して,ストレージの管理が容易で,動的 な追加が可能でなければならない. 3 !"! !"! !"!# $%& 図2 図 1 iSCSI の構成 6+0/* '.(-)+*/+*,0-)< 6+0/* '.(-)+*/+*,0-)1 27839:45 7892:3;45 VLAN を用いたネットワークのセパレーション VLAN に分けられる.タグ VLAN はパケットにタグ をつけ,スイッチでこれを認識することでルーティン グを制限する手法,ポート VLAN はスイッチのポート ごとにネットワークを固定的に割り当てる方法である. VPN は,主に広域ネットワークをまたがって LAN を 構成することを目的とした技術で,パケットを暗号化 カプセル化して,再度パケットを構成してルーティン グを行う.VPN によるネットワークの仮想化は安全 性が高いが,カプセル化によるオーバヘッドが非常に 大きい. 我々はタグ VLAN を用いて,ネットワークの仮想 化を実現する.個々の仮想クラスタに対してユニーク な VLAN ID を割り当てる.ホスト計算機上ではゲス トが属する仮想クラスタの VLAN ID を持つインター フェイスを動的に作成し,そのインターフェイスに対 してブリッジ接続を行う.この様子を図 2 に示す.3 つのホスト上に,それぞれ 2 つの仮想ノードを持つ仮 想クラスタ 1,2 が構築されている.仮想クラスタ 1 に 対して タグ 10 が,2 に対して 11 が割り当てられて いる.左端のホストは,2 つの仮想クラスタノード を ホストしているため,2 つのタグ付きネットワークを インターフェイスを持つ.この手法の特筆すべき点は, タグ付けがホスト内部で生じるため,ゲスト上での設 定がなんら必要ないことである. 般に非常に高価で,利用者が限定される. われわれは,低価格な実装が可能な IP SAN として 普及が期待されている iSCSI3) を用いる.iSCSI は, 古くから外部デバイスのインターフェイスに用いられ てきた SCSI プロトコルを IP 経由で実現するもので ある.iSCSI を用いたクラスタでは,計算に使用する ネットワークとストレージアクセスに使用するネット ワークを共有することになるため性能低下が懸念され るが,文献9) によれば問題ない範囲である. iSCSI においては,ストレージを使用する計算機を initiator,提供する装置を target と呼ぶ.一般に仮想 計算機上のゲスト OS のファイルシステムを iSCSI を 用いて構築するには,仮想計算機機構もしくはゲスト OS が initiator 機能をサポートしていなければならな い.しかし,VMware Server はこの機能をサポート していない.☆ .ゲスト OS で initiator 機能をサポー トすることは不可能では無いが,ゲスト OS はサービ スプロバイダの管理下にあるため,ゲスト OS の設定 に依存する方法は好ましくない.我々は,これを次の ような方法で解決した.まずホスト計算機が initiator となって,target に接続する.するとそのストレージ はデバイス名 (/dev/sdc など ) が与えられる.このデ バイスを物理ディスクとして指定し,仮想計算機を起 動する.つまり,仮想計算機としては通常の物理的な デバイスをマウントしている場合と同じ動作をしてい るにもかかわらず,ホスト計算機が仲介することで, 実際には iSCSI 経由で target 上のストレージを使用 できるのである. 図 1 にこの様子を示す.左図が,仮想計算機システ ムが iSCSI を直接サポートしている場合を示してい る.ゲスト OS のディスクアクセスは仮想計算機シス テムによって iSCSI プロトコルに変換される.これに 対し,右図が今回とった構造である.ゲスト OS のディ スクアクセスは,仮想計算機によってホスト計算機に アタッチされたディスクへのアクセスに変換される. これが,ホスト計算機にインストールされた initiator によって, さらに iSCSI プロトコルに変換される. 3.3.4 ネット ワークの仮想化 ネットワークの仮想化手法としては,VLAN と VPN が挙げられる.前者は,さらにタグ VLAN とポート ☆ 6+0/* 6+0/* 789:; 27839:45 4. 実 装 4.1 システムの動作の概要 本システムのユーザであるサービ スプロバイダは, 本システムに対して,Web インターフェイス,もしく は Web Service インターフェイスを通じて仮想クラ スタの予約を行う.この際に,サービスプロバイダは 利用する計算ノードの数,メモリ量,各ノードのスト レージ量,インストールするべきソフトウェア (Roll), ログ インに使用する ssh の公開鍵などを指定する. 予約のポリシは first-come, first-served となってい る.先行するリクエストによって資源が予約された結 果,後続するリクエストの予約時間帯に予約条件を満 たすだけの資源が確保できない場合,後続するリクエ ストは拒否される. 本システムは予約時間が到来した時点で,仮想クラ スタを起動する.仮想クラスタは,Rocks で インス VMware ESX Server ではこの機能がサポートされている. 4 にはバージョン 1.0.1 を用いた. 4.2 クラスタマネージャの実装 クラスタマネージャは クラスタマネージャノード 上 で稼動するデータベースにアクセスする一連の python スクリプトで構成されている.本システムの持つ状態 は,すべてこのデータベースで管理されており,ファイ ルやメモリ上で管理している情報はない.データベー ス上には大別して,2 つの情報が納められている.資 源タイムテーブルと仮想クラスタ予約テーブルである. 資源タイムテーブルには,物理クラスタ上のすべて の資源の時間軸に沿った使用予定が納められる. 仮想クラスタ予約テーブルには,仮想クラスタのリ クエストの情報が納められる.予約の入力動作は http サーバの CGI として機能するスクリプトとして記述 されており,このスクリプトが仮想クラスタ予約テー ブルを更新する.予約リクエストを処理するスクリプ トは,データベースを検索して,リクエストされた時 間帯にリクエストを満たすだけの資源があるかど うか を調べる.ある場合には資源タイムテーブルをアップ デートして,資源を確保すると同時に,仮想クラスタ の構築に必要な情報を仮想クラスタ予約テーブルに書 き込む. 仮想クラスタのインストールを実行するするスクリ プトは,cron によって定期的に起動されるウォッチス クリプトから起動される.ウォッチスクリプトは,デー タベースの仮想クラスタ予約テーブルを監視し,現在 の時刻においてなされていなければならないことを検 出する.予約開始時刻が過ぎているにもかかわらず, インストールが開始されていない仮想クラスタがテー ブル上にあれば,インストールを開始する. このように,独自のデーモンプロセスを持たず,複 数のスクリプトがデータベースを中心に連携する構造 をとることによって,頑健性を得ている.同様に,ゲ イトウェイノード , 物理計算ノード , ストレージノード 上でも独自のデーモンは使用していない.各ノード 上 には,仮想計算機や iSCSI ターゲットを制御,監視す るためのスクリプトが容易されており,これをクラス タマネージャから ssh 経由で起動することですべての 動作が実現されている. 4.3 仮想クラスタインスト ールのステップ 仮想クラスタのインストールは,1) プライベート ネットワーク上に VLAN を設定し,仮想クラスタの ネットワークを切り分ける.2) 仮想フロントエンド をゲ イトウェイノード 上に インストール,3) 仮想計 算ノードを起動,仮想フロントエンドからインストー ル,の 3 つの段階で行われる. 4.3.1 VLAN の設定 まずクラスタマネージャは,仮想クラスタで利用す る仮想計算ノードの実計算ノードへの配置,およびス トレージボリュームのストレージノードへの配置を決 定する.つぎに,各仮想クラスタごとに VLAN タグ トールするため,Rocks のインストールシーケンスを 仮想クラスタ上で実現することになる.具体的には, 仮想的なフロントエンドを構築し,その後仮想的な計 算ノードを起動することで,仮想フロントエンドから 仮想計算ノード へのインストールが行われる. また,本システム全体も Rocks で管理されており, 物理ノード 群はすべて Rocks でインストールされる. したがって,本システムを利用する管理者は,物理ク ラスタの管理においても Rocks の恩恵を受けること ができる. 次に,システムの構成を詳しく見る.本システムは 4 種類の物理ノードから構成される (図 3A). • クラスタマネージャノード 実クラスタ,仮想クラスタ全体を統括するクラス タマネージャが稼動するノード.外部ネットワー クと内部ネットワークの双方に接続を持つ.サー ビスプロバイダがアクセスする Web インターフェ イス,Web Service インターフェイスはこのノー ド 上に実装される. クラスタマネージャは物理クラスタをインストー ルする際の Rocks フロントエンド として機能す る.すなわち以降の 3 種類のノードは,クラスタ マネージャをフロントエンドとして Rocks によっ て初期インストールが行われる. • ゲイト ウェイノード 仮想フロントエンドを実行するためのノード クラ スタマネージャノード 同様に,外部ネットワーク と内部ネットワークの双方に接続を持つ 機能としては仮想計算ノードの起動とネットワー クの設定しか持たない. • 物理計算ノード 仮想計算ノードを実行するためのノード 内部ネッ トワークにのみ接続を持つ.機能としては仮想計 算ノードの起動とネットワークの設定しか持たな い.ゲイトウェイノードとの違いはネットワーク インターフェイスの数のみである. • ストレージノード iSCSI によってストレージを提供するノード.大 容量のディスクを持ち,仮想クラスタに提供する 機能を持つ.内部ネットワークに対してのみ接続 を持つ. ストレージ領域の管理には,LVM (Logical Volume Manager) を用いる.ストレージ割り当ての リクエストに対して,LV を新たに生成し iSCSI のボリュームとして公開する.LVM を用いるこ とで,物理ディスクのサイズや境界にとらわれず に任意のサイズのストレージを割り当てることが 可能になる. Rocks は,バージョン 4.2.1 をベースに,Rocks チー ムが改変し,4.3.2 で述べる自動フロントエンド インス トール機能を追加したものを用いた.VMware Server 5 HIJKLMNOP EGEBD FC=?@AB>C QRQRSTZU[VWXYSTZU[VWXYSTZU[VWXY \ZXT][^Y_\H̀ZXT][^LaY_bPO\ZXTN][^OY_P ~} p q r v n s t u o kmkhj licefghdi z ~ ~ z z y ~ y ~ y ~ wxwx z{|} z{|} z{|} nrvu~zt uv ªÉÊ«Ë̬®¯ÇÈ°ÉÊ˱̲ ¾ ¿ º  ¾ ¿ º  ¾ ¿ º  À Á À Á À Á ¹ ¹ ¹ Ç É Ç È Ê Ë Ì È Ã ½ ¼ ½ ¼ ½ ¶ Ä » Ä ¶ » ¶ » ¨¥¡¢£¤ ¥ ÐÑÒÓÔÕ Õ Ø ×ÙÚÔÓÚ ©§§¤¦ ³´³´µ¶¼·Ô½¸¹Öº»Ñµ×¶¼·½¸¹º»µ¶¼·½¸¹º» żº¶À½ÁƻŪ¼º¶ÍÀ½Á®Îƻϲ±Å¼º¶°À½Á±Æ»² è é ê î æ ë ì í ç ú û ö þ ú û ö þ ú û ö þ ü ý ü ý ü ý õ õ õ ãåãàâ äáÛÝÞßàÜá ÿò÷ù ÿúòûüöõ÷ýþù øòù÷ úøøûüòòöùùõ÷÷ýþ úøûüòöùõ÷ýþ ïðïðñòøóùôõö÷ñòøóùôõö÷ñòøóùôõö÷ øöòüùý÷æøöòüùýê÷îíøöòìüùýí÷î る.この際,仮想フロントエンドのファイルシステム は ストレージノード 上の iSCSI ボリュームを用いる (図 3B).この際の動作は次項で詳述する. インストールする Roll はクラスタマネージャ上に 配置しておく.仮想フロントエンドは,これをネット ワーク経由でダウンロードし,インストールする.こ の際,ネットワークとしては,パブリックネットワー クが使用される. 仮想フロントエンドの構築時には,仮想クラスタ固 有の設定も行わなければならない.すなわち,仮想計 算ノード の MAC アドレ スと IP アドレ スの対応や, アプライアンスタイプの指定などである.これらの情 報は,状態設定用の Roll として予約時にパッケージン グしておき,Roll 名を仮想フロントエンド インストー ルに用いる ISO ファイルに組み込まれる設定ファイル に記述しておく.こうすることによって,これらの情 報がインストール時に仮想フロントエンド 内の Rocks データベースに取り込まれ,仮想計算ノードのインス トール時に用いられるようになる. 4.3.3 仮想ノード の起動とインスト ール 仮想計算ノード は物理計算ノード 上に構築される (図 3C).この際,ネットワークとして仮想クラスタに 割り当てられた VLAN が指定される.起動のシーケ ンスは Rocks が提供する機能を利用した PXE による ブートとなる.プライベートネットワーク上にはクラ スタマネージャと仮想フロントエンドの双方が Rocks のフロントエンド 機能を提供する形となるが,仮想計 算ノードは仮想クラスタに割り当てられたタグつきの ネットワークにしかアクセスができないため,唯一ア クセスできる仮想フロントエンドをフロントエンドと してインストールが行われることになる. 仮想計算ノードは仮想フロントエンドと同様に,ス トレージノード 上の iSCSI ボリュームをファイルシス テムとして利用する.この機能は,3.3.3 で述べたよう に,物理計算ノードがアタッチした iSCSI ボリューム を,VMware Server が物理的なボリュームとみなす ことによって実現されている.仮想計算ノードの起動 の際には,まずクラスタマネージャはストレージノー ド に対して,iSCSI ボリュームの割り当てを依頼し , 続いて物理計算ノードに対して,iSCSI ボリュームの ID を渡して仮想計算ノード の起動を依頼する.物理 計算ノードは指定されたボリュームをアタッチし,そ のデバイスを指定して,VMware のコンフィギュレー ションファイルを生成,仮想計算ノード を起動する. 4.3.4 複数の仮想クラスタ 単一の物理クラスタの上に複数の仮想クラスタを配 備することもできる.図 3D にこの様子を示す.上段 と下段に 2 つのクラスタが構成されている.この図で は,それぞれの仮想クラスタに対して ゲ イトウェイ ノードが割り当てられているが,ひとつのゲイトウェ イノード が複数の仮想フロントエンド をホストとす A. 初期状態 B. 仮想フロントエンド のインストール C. 仮想計算ノード のインストール D. 複数の仮想クラスタの実装 図 3 仮想クラスタのインストール Fig. 3 Virtual Cluster Installation. を割り当てる.VLAN タグとして使用できる値は有限 であるため,資源として管理して再利用する必要があ る.割り当てた VLAN タグを用いて,利用する実計 算ノード,ストレージノード 上にタグつきのインター フェイスを作成する. 4.3.2 仮想フロント エンド 起動とインスト ール 仮想フロントエンドはゲイトウェイノード 上に構築 する.仮想フロントエンド のインストールは,Rocks の自動フロントエンド インストール機能を用いて行う. これは,サイトの状態と必要な Roll とそのダウンロー ド 元を記述したファイルを用意して ISO イメージに組 み込むことで,ユーザの手を煩わせることなくフロン トエンド ノード をインストールする機能である.ISO には,クラスタの名前,IP アドレス,ルートパスワー ド などを含めることができる. クラスタマネージャは,各仮想クラスタに対して個 別の ISO イメージを生成し,その ISO イメージをブー トディスクとして用いてゲイトウェイノード 上で仮想 計算機を起動することで仮想フロントエンドを構築す 6 . . / 5 0 1 2 34 9 : &;> = ) ) % < < ' ) ( * + , ! ! " # & " # & $ % $ % " ' " ' ) ) ( ( . . . / 0 1 2 34 I EDD ^]I [ DDD \S [ ZHDD WY DD G R X WT U FDD VT U S EDD QR D D 9 :! &> ) ) % ? @ B C ' )A ( 6 7 8 ! " # & $ % " ' ) ( 図 4 測定環境 表 1 仮想フロントエンド 構築 (秒) 動作 所要時間 ISO イメージ作成 リストア Roll 作成 Rocks 再構成 インストール 計 42 2 155 1632 1822 _`abc de`f ghijkabc de`f E 図5 F JK LM NOP K G 仮想ノード インストール時間 して,仮想フロントエンドのディスクアクセスバンド 幅が小さいため,同時にインストールする台数の影響 を受けやすいためである. ることも,ネットワークとメモリの許す限り,可能で ある. 4.3.5 仮想クラスタの破棄 予約終了時刻がくると,クラスタマネージャは構築 した仮想クラスタを破棄し,使用していた資源を解放 する.すなわち,仮想計算機プロセスを停止し,ロジ カルボリュームを解放する. 4.4 仮想クラスタインスト ール時間の計測 仮想クラスタの構成にかかる時間を計測した.測定 に用いた環境を図 4 に示す. まず,仮想フロントエンドの構築時間とその内訳を 表 1 に示す.表中の「 Rocks 再構成」は,クラスタマ ネージャ内で,仮想フロントエンド に必要な Roll を 整理し,配布用のファイルを生成するために要した時 間である.もっとも時間を要したのはインストールで, 27 分程度の時間を要した.この理由のひとつは,仮 想フロントエンドのインストールが,1000 base-T の プライベートネットワークではなく,100 base-TX の パブリックネットワークで行われているために,パッ ケージのダウンロードが低速であったためである. この仮想フロントエンドから,仮想計算ノードをイ ンストールした際の経過時間を図 5 に示す.なお,こ の際ストレージはローカルファイルシステム上に構築 した.横軸に同時にインストールした台数,縦軸に経 過時間を秒で示している.参考のため,物理ノードの インストールの時間も同じグラフに示している. 図 5 から,物理ノードのインストール時間と,仮想 計算ノードのインストール時間は同程度であることが わかる.1 台のみインストールする場合で比較すると, 実計算ノードのインストールのほうが若干遅い.これ は,実計算ノード は仮想ノード よりも多くの Roll を 必要とするため,ダウンロードにかかる時間が大きく なるためである. 一方,台数を増やした際の,インストール時間の増 加傾向は,仮想計算ノード のほうが大きい.これは, 実フロントエンドのディスクアクセスバンド 幅と比較 5. 関 連 研 究 5.1 ORE Grid ORE Grid10) は,Globus Toolkit のジョブ起動機 構である GRAM と連動したシステムで,ユーザに指 定された環境を仮想計算機上に構築し,ユーザの指定 したジョブを実行するシステムである.仮想計算機の 動的構成には,クラスタインストールツール Lucie11) を用いている.また,文献12) では,ゴールデンイメー ジのキャッシュを用いることによってクラスタインス トールの高速化を行っている.我々のシステムがクラ スタを数日-数週間の単位でリースすることを前提と しているのに対し ,ORE Grid では比較的細粒度の ジョブを対象としている点が異なる. 5.2 Virtual Workspace Virtual Workspace13),14) は,Globus Project15) の 一環として行われているプロジェクトで,ジョブの実 行環境を仮想計算機上に構築することを目的としてい る.WSRF を用いたインターフェイスで仮想計算機 が構成する仮想的なワークスペースを作成し,そこで ユーザのジョブを実行する. Virtual Workspace も,基本的に個々のジョブの実 行を指向している点がわれわれのシステムと異なる. 5.3 OSCAR による Xen クラスタインスト ール 文献16) では,複数の Linux ディストリビューショ ンに対応している点を特徴とするクラスタインストー ラ OSCAR17) を用いて,仮想計算機システム Xen を 用いた仮想的なクラスタを構築している.しかし,こ の研究では単に OSCAR を用いたインストールの実 現を示しているだけであり,本システムのように予約 機構と連動した自動インストールを実現してはいな い.また,ストレージとネットワークの仮想化の実現 も行っていない. 7 5.4 Infiniband を用いたネットワークとストレー ジの仮想化 Cisco 社の VFrame18) は Infiniband ネットワーク と SAN を用いてネットワークとストレージの仮想化 を実現する.このシステムは非常に高機能で,I/O バ ンド 幅の制限なども可能であるが,反面非常に高価で 小規模な計算機センターが導入できるものではない. 2) VMware. http://www.vmware.com. 3) iSCSI Specification. http://www.ietf.org/rfc/rfc3720.txt. 4) Papadopoulos, P. M., Katz, M. J. and Bruno, G.: NPACI Rocks: Tools and Techniques for Easily Deploying Manageable Linux Clusters, Cluster 2001: IEEE International Conference on Cluster Computing (2001). 5) Rocks. http://www.rocksclusters.org/. 6) Sacerdoti, F. D., Katz, M. J. and Papadopoulos, P. M.: 411 on Scalable Password Service, IEEE High Performance Distributed Computing Conference (2005). 7) Ganglia. http://ganglia.sourceforge.net/. 8) Condor. http://www.cs.wisc.edu/condor/. 9) 神坂紀久子, 山口実靖, 小口正人, 喜連川優: iSCSI を用いた PC クラスタにおけるバックエンド ネッ トワーク統合による性能への影響評価, 電子情報 通信学会 技術研究報告 コンピュータシステム研 究会 (2006). 10) 高宮安仁, 山形育平, 青木孝文, 中田秀基, 松岡聡: ORE Grid: 仮想計算機を用いたグリッド 実行環 境の高速な配置ツール , 先進的計算基盤システム シンポジウム SACSIS2006 論文集, pp. 351–358 (2006). 11) 高宮安仁, 真鍋篤, 松岡聡: Lucie: 大規模クラス タに適した高速セットアップ・管理ツール , 先進的 計算基盤システムシンポジウム SACSIS2003 論 文集, pp. 365–372 (2003). 12) 西村豪生, 中田秀基, 松岡聡: 仮想計算機と仮想 ネットワークを用いた仮想クラスタの構築, 情報 処理学会研究報告 2006-HPC-107, pp. 73–78 (2006). 13) Virtual WorkSpace. http://workspace.globus.org/. 14) Keahey, K., Foster, I., Freeman, T. and Zhang, X.: Virtual Workspaces: Achieving Quality of Service and Quality of Life in the Grid, Scientific Programming Journal (2006). 15) Globus Project. http://www.globus.org. 16) Vallée, G. and Scott, S.: Xen-OSCAR for Cluster Virtualization, Workshop on XEN in HPC Cluster and Grid Computing Environments (XHPC ’06) (2006). 17) OSCAR: open source cluster application resources. http://oscar.openclustergroup.org/. 18) Cisco VFrame Server Fabric Virtualization Software. http://cisco.com/en/US/products/ps6429/ products data sheet0900aecd8029fc58.html. 19) Barham, P., Dragovic, B., Fraser, K., Hand, S., Harris, T., Ho, A., Neugebauery, R., Pratt, I. and Warfield, A.: Xen and the Art of Virtualization, SOSP 2003 (2003). 6. お わ り に クラスタインストールシステム Rocks を用いた仮 想クラスタ管理システムを提案した.本システムは, VMware Server による計算機資源の仮想化,iSCSI を 用いたストレージ資源の仮想化,VLAN を用いたネッ トワーク資源の仮想化により,効率的で安全な仮想ク ラスタの運用を実現する. 本システムはいまだプロトタイプ実装の段階であり, 多くの課題を抱えている. • インストール所要時間のより詳細な内訳の解析を 行い,高速化をはかるとともに,仮想クラスタの インストールをバックグラウンドで行うなど ,イ ンストール時間を顕在化させない方法を検討する 必要がある. • 現在,本システムは VMware Server にのみ対応 しており,広く利用されている仮想計算機機構で ある Xen19) を利用することはできない.これは, 現在の Rocks がベースとする CentOS 4 系のイ ンストーラが Xen に対応していないためである. 2007 年春に予定されている CentOS 5 の Xen へ の対応後,われわれも Xen に対応する予定である • 現在,各仮想ノードは仮想フロントエンドがマウン トした iSCSI target を NFS で共有するが,共有 ディスクへのアクセスが必ず仮想フロントエンド を経由することになりボトルネックとなる可能性 がある.GFS, PVFS2,Lustre, Gfarm などのク ラスタファイルシステムを利用することで iSCSI ディスクへのアクセスを分散することでこれに対 処する. • 本システムは Rocks の制約によって,CentOS 以 外のオペレーティングシステムを使用することが できない.今後は,クラスタインストール機能を 持つ Windows Computer Cluser Server 2003 へ の対応を検討する. 謝 辞 SDSC の Rocks チームに感謝する. 参 考 文 献 1) 中田秀基, 横井威, 関口智嗣: Rocks を用いた仮 想クラスタ構築システム, 情報処理学会 HPC 研 究会 2006-HPC-106 (2006). 8
© Copyright 2024 Paperzz