Comments
Description
Transcript
仮想データセンターの最適化
仮想データセンターの最適化 理想的な仮想データセンターとは、ニーズの変化に対応しながら、コンピューティング・クラスタ全体で動 的な負荷分散を実施し、クラスタ間でハードウェアのリソースを再分配することのできるデータセンターで す。クライアント・アプリケーション側に特別な変更を加えなくても、これらの処理を実行できるようにする ことが、負荷分散機能とリソース分散機能を開発する上での課題となります。 作成: J. CRAIG LOWERY, PH.D. システム管理者は、フォルト・トレランスと負荷分散をサポートす る高可用性のハイ・パフォーマンス・コンピューティング(HPC)クラス タ・システムを使用して、エンタープライズ・インフラストラクチャの大 幅な強化を実施してきました。しかし、このような強化策がコスト 増を招くことも多いため、今やデータセンター管理者は、経費の削 減に取組み始めています。クラスタ・システムは、平均的な処理量 ではなく、最も処理量が集中する状況に備えてサイジング(容量 見積り)をしているため、負荷の軽いクラスタでは、十分に活用さ れていないノードがあります。データセンター管理者は、これをリソー スの無駄遣いと捉え、このようなノードに何らかの対策を講じれば 採算が取れるのでは、と考えました。 一般に、データセンターには複数のアプリケーション・クラスタが設 置されています。ピーク時の負荷に合わせてクラスタをサイジングし たら、後はその構成を使い続けるという環境ではなく、管理者が現 在のニーズに合わせて、アプリケーション・クラスタ内のサーバとストレ ージ構成をアプリケーション単位で変えられるような体制が必要で す。すべてのアプリケーションが同時に処理量のピークに達すること は非常に稀なため、配備するマシンの総数を減らし、空いている (アイドル)マシンをニーズに応じて別のクラスタに移動すれば、経 費が節約できます。万が一、使用できるリソース以上の処理要求 が発生したら、基幹システムがリソース不足に陥らないよう、アプリ ケーションに優先順位を付けることができます。処理量が増え続け ている場合は、既存のインフラストラクチャに新しいマシンを接続す るだけで、容量を増やすことができます。このような概念に基づいて 1 誕生したのが、「仮想データセンター」です 。 統計データに従いながらアプリケーション・クラスタ間でハードウェ アを融通し合い、増設を達成する、というのが仮想データセンター の中核にあたる概念です。仮想データセンターの場合、システム管 理者がハードウェアを物理的に構成するのは一度だけです。その 後はソフトウェアが、必要に応じて、各ハードウェア・コンポーネント 間の論理的な関係を設定します。たとえば、仮想LAN(VLAN) は、ネットワーク・スイッチ上に搭載されたソフトウェアを通して構成 されます。仮想データセンターの場合、リソースの割り当てはすべて ソフトウェアに任されており、ハードウェアは「容易に配置替えができ る同類のコンポーネントを集めたもの」として扱われます。これによ り、動的なリソース割り当てをリアルタイムに行い、リソースを最大 限に活用することができます。 1 詳細は、2003年2月号の『Dell Power Solutions』誌に掲載された記事、「Building the Virtual Data Center」(J. Craig Lowery, Ph.D.著)、および、 2003年8月号の『Dell Power Solutions』誌に掲載された記事、「Managing the Virtual Data Center」(J. Craig Lowery, Ph.D.著)をご参照ください。 www.dell.com/powersolutions Power Solutions 1 DATA CENTER ENVIRONMENT クラスタA 利用率 クラスタB 再割り当て前 クラスタAは供給不足 クラスタBは供給過剰 切り離しの準備 クラスタBはターゲット・ノー ドが担当していたワークロー ドを他のノードに再分配 切り離し 切り離し ターゲット・ノードを クラスタBから切り離す 追加 ターゲット・ノードを クラスタAに追加 追加 再割り当て後 追加後、クラスタAは、この 新しいノードを含む全ノー ドに負荷を再分配。これで、 両クラスタの供給状況が 適切に 図1. 負荷分散とリソースの再割り当て 負荷分散とリソース分散 仮想データセンターから最高の性能を引き出し、リソースを最大限に活 用するには、次の2つのメカニズムを組み合わせて使います。 • 負荷分散(ロード・バランシング): クラスタ内の全ノードにわたって ワークロードを再分配する機能です。割り振られるワークロード (負荷)の量は、ノードの処理能力に応じて調整されます。 • リソース分散(リソース・バランシング): クラスタ間でノードを移動 し、クラスタの規模を増減することで、クラスタごとの処理能力を調 整する機能です。 負荷分散はクラスタ内で実行される機能であり、リソース分散はクラ スタ間で実行される機能です。ワークロードを分散しながらリソースの利 用率を上げる、という相乗効果を生み出すことが仮想データセンターの 主な目的となります。概念は難しくありませんが、実現するのは容易で はありません。 中央の司令塔として機能するコントローラは、データセンター全体に わたる処理を連携させて実行すると共に、「負荷の再分配」、「ノードの 削除」、「ノードの追加」という3つの負荷分散およびリソース分散メカニ 2 ズムを最適な形で適用します 。たとえば、図1は、仮想データセンター が、異なるクラスタ・ソフトウェアを実行する2つのクラスタ間に負荷とリソ ースを分散させる仕組みを示しています。 1. 再割り当ての前: クラスタAに大量のリクエストが発生したため、 処理能力が限界に近づきつつあります。この場合、供給不足(ア ンダープロビジョン)に陥っており、ハードウェア・リソースを追加する 必要があります。一方、クラスタBは、処理能力に余裕がありま す。活用されていないハードウェア・リソースがあり、供給過剰(オ ーバープロビジョン)の状態にあります。 2. 切り離しの準備: 識別アルゴリズムは、クラスタAに移行するノー ドとして、クラスタB内の1ノードをターゲットに定めます。システム管 理者は、たとえば、クライアントへの影響を最小限に抑えることを 優先させたり、また、移行後すぐにノードを利用可能にすることを 優先させたりなど、業務上の目的に応じて識別アルゴリズムのロ ジックを変更することができます。ターゲット・ノードが担当していた ワークロードを他のノードに引き継がせる際、クラスタBは、「ワーク 2 仮想データセンターの管理ソフトウェアやグローバル・エンジンの役割については、2003年8月号の『Dell Power Solutions』誌に掲載された記事、「Managing the Virtual Data Center」(J. Craig Lowery, Ph.D.著)をご参照ください。 2 Power Solutions 2003 年 11 月 DATA CENTER ENVIRONMENT サーバ1 サーバ2 サーバ3 (十分に活用されていない) ジョブ 負荷分散と リソース分散という技術は、 「ワークロードの再分配」、 「ノードの切り離し」、 「ノードの追加」という 3つの操作から ジョブの待ち行列 図2. ジョブ・スケジューリングによるワークロードの再分配 ロードの再分配」(詳細は次節で説明)という手法を利用します。 3. 切り離し: 担当していた処理から外されたターゲット・ノードを、ク ラスタBから切り離します。 4. 追加: ターゲット・ノードをクラスタAに追加すると、この新ノードを 含めたクラスタ全体で、ワークロードが再分配されます。 5. 再割り当て後: クラスタAのワークロード量は通常の範囲内とな り、稼動が安定します。これで、クラスタAとBの供給状態は適切 になります。 図1に示すように、「再分配」、「追加」、「切り離し」という操作を経る ことで、処理量の変化に合わせたハードウェア・リソースの再割り当てが 可能になります。このうち、「追加」の場合は、追加される側のクラスタで 緊急に対応する必要がないので、これを実現する技術はさほど難しくあ りません。新たに加えられたノードは、「再分配」により、稼動を続けたま まクラスタに統合することが可能です。ターゲット・ノードの「切り離し」も 比較的簡単です。それは、たとえ一旦担当から外されたノードでも、実 際に切り離す前なら、再び、ワークロードを割り当てることができるからで す。よって、この3つの操作中、最も難しいのは「再分配」です。 ワークロードの再分配 「負荷分散」は、ノード間でワークロードを適切に割り当てるメカニズムを 指しますが、一方、「ワークロードの再分配」は、このような割り当てを実 行する手段そのものを指します。つまり、ワークロードの再分配技術と は、ジョブ、プロセス、セッションなどの実行スレッドをノード間で移動する 技術と言えます。 新しいジョブをノードに割り当てる、「ジョブ・スケジューリング」と呼ばれ る手法は、クラスタ・オペレーティン 新しいジョブを グ・システムの主要な機能です。 ノードに割り当てる、 図2に示すとおり、普通、スケジュ ーラは、最も使用率の低いノードを 「ジョブ・スケジューリング」 探して新しいジョブを割り当てます と呼ばれる手法は、 が、他の選択規準を採用すること もできます。あるノード上で開始さ クラスタ・オペレーティング れたジョブは、最後まで同じノード システムの 上で実行されます。 主要な機能です。 www.dell.com/powersolutions ここで「ジョブ」とは一般に、生成 されてから完了するまでの間に存 実現されます。 在するプロセスのグループと定義さ れます。または、特定のクライアント からリクエストがあったとき、それに 応じるため、常駐するサーバ・プロ セスが実行する処理の単位と定 義することもできます。この場合 は、リクエストがジョブとなります。一 般に、ワークロードの特徴として各 ジョブの長さが一様に短い場合、 通常の稼動状態では、各ノードの 利用率がほぼ同じになります。しか し、ジョブによって長さが大きく変化 する場合や、長さが不明の場合、ジョブ・スケジューラは、ジョブの完了 時間を予測することができません。その結果、スケジューラがジョブを効 率的に割り当てることができないため、いずれはクラスタ内のノード間で 利用率に偏りが出てきてしまいます。 また、ジョブの完了時間が予測できないため、「切り離し」を行う意義 が失われかねません。クラスタがあるノードを担当から外さなければなら なくなった場合、そのノードに対し、ジョブ・スケジューラからこれ以上新た な処理が割り当てられることはありません。そのノード上で現在進行中 のジョブがいつ完了するのか予測できないため、そのノードがいつ処理か ら解放されるのかも判断することは不可能です。 プロセス・マイグレーションの実施 「ワークロードの再分配」を実現する技術の中で、最も難しいのがこの 「プロセス・マイグレーション」です。この技術では、まずジョブ・スケジューラ が1つのノードにプロセス(つまり、ジョブ)を割り当てます。ワークロードの 再分配が必要となったときは、クラスタ管理ソフトウェアがそのプロセスを 一時停止し、それを別のノードに移動した後、実行を再開します(図3 を参照)。 一般的なプロセスに付随する状態データ(ステート・インフォメーショ ン)の種類とサイズを考えてみれば、このプロセス・マイグレーションがいか に難しい技術であるかがおわかりいただけると思います。移行(マイグレ ーション)を成功させるには、1システム上にある状態データを、移行先の システムにコピーしなければなりません。オーバーヘッドがなく、プロセスに ほとんど状態データがないジョブを対象に、リソース構成を変更するので あれば、プロセス・マイグレーションが最も柔軟性に富み、かつ高速に実 行できる方法となります。しかし、アレイ、大きなローカル・ファイル、一時 作業ファイル、ネットワーク接続、ユーザ・インタフェースのI/Oパスなど、サ イジング可能なメモリ構造を持つプロセスの場合、最初に割り当てたノ ード上で最後までプロセスを遂行する単純な方法のほうが、プロセスを 移行するより短時間に処理できることがあります。 移行のオーバーヘッドが一貫して低い場合、プロセス・マイグレーショ サーバ1 サーバ2 サーバ3 プロセス データ 図3. プロセス・マイグレーションによるワークロードの再分配 Power Solutions 3 DATA CENTER ENVIRONMENT 受け渡し前 データ データ データ データ プロセス ロードの再分配は、負荷分散とリソース分散にとって非常に重要なた め、仮想データセンターの成功に、高性能なインターコネクトは欠かせま せん。 受け渡し後 データ データ データ データ データ データ アイドルまたは新しいプロセス 担当から外されるプロセス 図4. セッション・マイグレーションによるワークロードの再分配 ンは、ワークロードの再分配として非常に優れたメカニズムとなります。プ ロセス・マイグレーションの概念を発展させた技術に、「セッション(また は、トランザクション)マイグレーション」があります。これは、あるノード上で 担当していた処理から外されたプロセスが、途中まで進行していたトラン ザクションを、別のノードにある新しいプロセス、または、アイドル状態のプ ロセスに渡す方法です(図4を参照)。一般に、共有ストレージとネットワ ーク通信を組み合わせることで、この受け渡し処理を円滑に進めること ができます。このセッション・マイグレーション・メカニズムを実現する方法 は、いくつかあります。たとえば、プロセスは、ローカル・ストレージに状態 データを維持し、ノードを担当から外す必要があるときだけ、その情報を 共有ストレージにコピーします。しかし、この方法では、プロセス・マイグレ ーションを実行しても、あまり効果がありません。 逆に、いつでも直接、共有ストレージからプロセスが稼動できるように すれば、必要に応じてほぼ瞬時にプロセスを担当から外すことができま す。この方法では、単に別のノード上にある、別のプロセスが共有ストレ ージにアクセスするだけで、担当から外されたプロセスが残した処理を、 中断した位置から再開することができます。この方法は、共有メモリのマ ルチプロセッサ・システムで長年採用されてきましたが、LAN上で連携し ながら稼動する複数のサーバでは、実用に向かないと考えられていまし 3 た。しかし、InfiniBand™ やGigabit Ethernet ファブリックなど比較的 安価で高性能なインターコネクトが登場したことで、SAN(Storage Area Network)やRDMA(Remote Direct Memory Access)を直 接運用するような、多大なバンド幅を要する連携作業も実行できるよ うになりました。 今日の環境では、低コストな標準ベースのハードウェア・コンポーネン トが、システム・バスの性能に迫る高速通信を実現しているため、システ ム設計者は、大規模な導入プロジェクトにセッション・マイグレーションな どの「ワークロードの再分配」技術を検討できるようになりました。ワーク プロセス・マイグレーションを実現する1つの形として興味深いのは、仮 想マシンがホストするオペレーティング・システムを使って新しいインターコ ネクト技術を生かす方法です。VMware™ GSX Server™ および ® ESX Server™ ソフトウェアや、Microsoft Virtual Serverなどの製 品は、ノード・ハードウェアの参照システムをシミュレートすることにより、ホ スト・オペレーティング・システム上で複数のゲスト・オペレーティング・シス テムを同時に実行します。ゲスト・オペレーティング・システムの全状態デ ータ(イメージ)は、大きなファイルに入っており、通常は、ホストのローカ ル・ファイル・システム内に保管されています。 この方法では、イメージ・ファイル内に現在の状態を固定することでゲ スト・オペレーティング・システムの実行を一時停止することができ、さら に、そのファイルを別のホスト・システムに移動すれば、そこで実行を再開 することができます。イメージ・ファイルの転送時間については、プロセス・ マイグレーションと同等の課題があります。しかし、イメージ・ファイルを共 有ストレージに保存し、複数のホスト・システムから高性能なインターコ ネクトを通してイメージ・ファイルにアクセスできるようにすれば、実行環境 全体をほぼ瞬時に移行できます。 ワークロードの再分配は、 負荷分散と リソース分散にとって 非常に重要なため、 仮想データセンターの 成功に、高性能な インターコネクトは 欠かせません。 この方法の欠点は、仮想マ シンをサポートしなければならな いことがオーバーヘッドとなること です。さらに、プロセス単位では なく、オペレーティング・システム 単位でサポートしなければなら ない点もオーバーヘッドとなりま す。システム管理者は、仮想オ ペレーティング・システムごとにプ ロセスを1つ割り当てることで、単 位を小さくすることができますが、 この場合、仮想化のオーバーヘ ッドが許容範囲を超える可能 性があります。このように課題は 残るものの、仮想オペレーティング・システム、共有ストレージ、高性能 なインターコネクトという組み合わせは、仮想データセンターが目指す理 想像に一歩近づけたと評価することができます。 透過性という最優先課題の達成 負荷分散、リソース分散、ワークロードの再分配といった概念は、20年 近くにわたって、分散型オペレーティング・システムを扱う学術誌に取り 4 上げられてきました 。このようなシステムの構築に、多くの研究がなされ た結果、今日では仮想データセンターの概念において様々な進歩が見 られるようになりました。分散型オペレーティング・システムの特徴として、 従来型のオペレーティング・システムと大きく異なる点の1つに、「透過 性」があります。この透過性とは、細かな仕組みを知らなくても利用でき ® 3 この表記は、Gigabit Ethernetの規格を定めたIEEE 802.3ab標準に準拠していることを示すのであって、実際に1Gbpsで稼動することを保証するものではありま せん。高速伝送を実現するには、Gigabit Ethernet対応のサーバとネットワーク・インフラストラクチャに接続する必要があります。 4 1985年12月に発行された『Association of Computing Machinery Computing Surveys』の第17巻、4号に掲載されている、「Distributed Operating Systems」(Andrew S. TanenbaumおよびRobbert Van Renesse著)をご参照ください。 4 Power Solutions 2003 年 11 月 DATA CENTER ENVIRONMENT 真に使いやすい 仮想データセンターを 実現するには、 基盤となるハードウェアの 詳細な仕様や る能力を指し、たとえば、システム を利用するユーザは、自分が出し たリクエストをどのネットワーク・コン ポーネントが送信してくれ、どのコン ポーネントが処理してくれるかなど 知ることも、知る必要もありませ ん。 仮想データセンターは分散型オ ペレーティング・システムの一種なの アプリケーションをホスト で、この透過性が第一の目標とな ります。真に使いやすい仮想データ できなければなりません。 センターを実現するには、基盤とな また、移行が発生 るハードウェアの詳細な仕様や設 置場所に関わらず、アプリケーショ したとしても、 ンをホストできなければなりません。 それをユーザに また、移行が発生したとしても、そ れをユーザに感知させない仕組み 感知させない仕組みが が必要です。このようなシステムで は、たとえリソース構成が変わったと 必要です。 しても、アプリケーション開発者がそ の変更をアプリケーションに反映させる必要はありません。理想的な仮 想データセンターとは、仮想マシンを通して常にアプリケーションを実行し 続けられるシステムです。このようなシステムの場合、仮想層の下で再 構成が発生しても、アプリケーションに特別な変更が強いられることはあ りません。 設置場所に関わらず、 データセンター管理ソフトウェアによっては、ネットワーク・ブート機能を 使用して、ノードの全操作を共有ストレージから実行できるようにするも のもあり、ちょうどディスクレス・ワークステーションのような運用形態となり ます。この方法では、何らかの制御エージェントを使って指示することに より、ノードを別のイメージからリブートできるので、同じノードでも以前と は異なる「パーソナリティ(個別設定)」で稼動できます。これなら、ノード の場所に関係なく、様々な運用が可能になります。ただ、この方法は 確かに有効ではあるものの、原則的に大まかなジョブ・スケジューリングと なってしまうため、仮想データセンターでの利点は限られます。システム 管理者は、実行中のジョブがすべて終了するのを待ってから、新しいイ メージでノードをリブートする必要があります。 理想的な仮想データセンターに近づくために クラスタの再構成と負荷分散を、予測可能にし、しかも透過的にするこ とは非常に困難であり、それぞれの実装方法に長所と短所があります。 たとえば、ジョブ・スケジューリング技術を利用すると、マイグレーションが 発生しないため透過性は実現できますが、予測することは不可能で す。プロセス・マイグレーション技術も透過性は実現できますが、大量の 状態データを転送する必要性に迫られることがあり、予測することは不 可能です。一方、セッション・マイグレーション技術の場合、高速ネットワ ーク・インターコネクトを通して、プロセス を共有ストレージから直接稼動させるの であれば、予測しやすくなります。しか し、この予測のしやすさを優先すると、 多くの場合、透過性が犠牲になります。 市場に投入される製品は、これらの技 術のうちいずれかを採用して仮想データ センターを実用化していますが、将来、 何らか方法で、これまで打破できなかっ た欠点が克服されるはずです。 何年も前に 学術誌に書かれた テクノロジがついに 実用化され、 製品としての姿を 現してきました。 仮想データセンターにはこのような課題が残るものの、その理想像に 近づくため大きな進化を遂げていることも確かですし、開発も加速して います。何年も前に学術誌に書かれたテクノロジーがついに実用化さ れ、製品としての姿を現してきました。高性能なインターコネクト、仮想 化をサポートする実行環境、標準コンポーネントとプロトコルの貢献によ り、長い間追い求めてきた理想のコンピューティング・モデルは、近い将 来の実現を目指して道を切り開きつつあるところです。 J. Craig Lowery, Ph.D.は、デル製品グループのソフトウェア・エンジ ニアリング部門に所属するチーフ・セキュリティ・アーキテクト、ソフトウェ ア・アーキテクト、およびストラテジストです。ミシシッピ大学でコンピュータ 科学と数学の学士号を取得したのち、ヴァンダービルド大学でコンピュー タ科学の修士号および博士号を取得しています。専門分野は、コンピ ュータ・ネットワーキング、セキュリティ、性能モデリングです。 詳細情報の入手先 透過性を犠牲にすることなく、きめ細かな単位で時間を区切るには (つまり、データセンター内でアプリケーションをより迅速に移動するに は)、負荷分散とワークロードの再分配という重荷からアプリケーションが 解放されるよう、特別に設計された環境を構築することが1手段となり ® ます。たとえば、多くのOracle 製品(特に代表的なのは、Oracle9i™ Real Application Clustersデータベース)にはこの機能が含まれてお 5 り、Oracleでは、これを「グリッド・コンピューティング」と呼んでいます 。 Oracleは、場所を意識せずにデータへアクセスし、それを処理することが できるアプリケーション・プログラミング・インタフェース(API)を提供するほ か、Oracleのソフトウェア・スタックでは、ハードウェアとオペレーティング・ システムの上位層に一貫した仮想化層を築いています。セッション・マイ グレーションは、現在Oracle製品で提供されているグリッド機能をそのま ま発展させた技術です。 5 Oracle社が定義するグリッド・コンピューティングの意味は、他で言われるグリッド・コンピューティングの意味と若干異なります。グリッド・コンピューティングの詳細は、 http://www.globus.orgを参照してください。 www.dell.com/powersolutions Power Solutions 5