クラウド コンピューティング: 仮想クラスター

仮想クラスターには、速度、ストレージ、および柔軟性に関して、物理クラスターを上回るいくつかのメリットがあります。

Kai Hwang、Jack Dongarra、Geoffrey Fox

出典: 『Distributed and Cloud Computing: From Parallel Processing to the Internet of Things』(Syngress、2011 年)

物理クラスターと仮想クラスターには、いくつかの相違点と類似点があり、それぞれのクラスターがもたらすメリットも異なります。物理クラスターは、LAN などの物理ネットワークによって接続されたサーバー (物理マシン) の集まりで、仮想クラスターには、物理クラスターとは異なる特徴および潜在的な用途があります。仮想クラスターには、仮想マシン (VM) のライブ マイグレーション、メモリとファイルの移行、および仮想クラスターの動的な展開という 3 つの設計に関する重要な課題があります。

従来の VM の初期設定を行う場合は、構成情報を手動で記述したり、構成のソースを指定したりする必要があります。ネットワークに参加する VM の数が増加すると、非効率的な構成によって、オーバーロードや低使用率の問題が発生するのが常でした。Amazon Elastic Compute Cloud (EC2) は、順応性のある処理能力をクラウドで提供している Web サービスの良い例です。EC2 では、顧客が VM を作成し、使用時にユーザー アカウントを管理できます。

ほとんどの仮想化プラットフォームでは、すべてのドメインを個々のホストとしてネットワークに表示するブリッジ モードがサポートされています。このモードを使用すると、VM では仮想 NIC 経由で自由に相互通信することが可能で、自動的にネットワークを構成できます。

物理クラスターと仮想クラスター

仮想クラスターは、1 つ以上の物理クラスターから分散サーバーにインストールされた VM で構成されています。仮想クラスターにある VM は、複数の物理ネットワークを結ぶ仮想ネットワークによって論理的に接続されています。各仮想クラスターは、物理コンピューターまたは複数の物理クラスターでホストされている VM によって形成されており、明確な境界があります。

仮想クラスターに VM を動的にプロビジョニングすることで、次のような特徴が生まれます。

  • 仮想クラスター ノードは、物理マシンでも VM でもかまいません。もちろん、同じ物理ノード上の VM で異なる OS を実行することができます。
  • VM ではゲスト OS が実行されますが、多くの場合、ゲスト OS は、VM を実行している物理コンピューターのリソースを管理するホスト OS とは異なります。
  • VM を使用する目的は、1 台のサーバーで複数の機能を統合することです。この統合により、サーバー使用効率とアプリケーションの柔軟性が大幅に向上します。
  • 分散型の並行処理、フォールト トレランス、および障害復旧を促進するために、VM を複数のサーバーにレプリケートできます。
  • ピア ツー ピア ネットワークでオーバーレイ ネットワークのサイズが異なるのと同じように、仮想クラスターのノード数は、動的に増減させることができます。
  • 物理ノードで障害が発生すると、障害が発生したノードにインストールされている一部の VM が使用できなくなることがありますが、VM で発生した障害がホスト システムに影響を及ぼすことはありません。

多数の物理コンピューター ノード (仮想クラスター) で実行している VM の管理については、効率的な戦略を考える必要があります。これには、リソースのスケジュール、負荷分散、サーバーの統合、フォールト トレランスなどの手法に加えて、仮想クラスターの展開と監視、および大規模なクラスターの管理も含まれます。仮想クラスター システムでは、多数の VM のイメージがあるため、イメージを効率的に格納する方法を決定することが重要になります。

OS レベルまたはユーザー レベルのプログラミング ライブラリなど、大部分のユーザーやアプリケーションに共通するインストール コンポーネントがあります。このようなインストール コンポーネントは、テンプレート (通称、テンプレート VM) としてインストールできます。これらのテンプレートを使用して、独自のソフトウェア スタックを構築することができます。テンプレート VM から新しい OS のインスタンスをコピーすることもできます。新しい OS のインスタンスには、プログラミング ライブラリやアプリケーションなど、ユーザー固有のコンポーネントをインストールすることができます。

各 VM をリモート サーバーにインストールしたり、同じ物理クラスターまたは別の物理クラスターに属する複数のサーバーに VM をレプリケートすることができます。仮想クラスターの境界は、時間の経過と共に VM ノードが動的に追加、削除、移行されるにつれて、変化する場合があります。

高速な展開と効率的なスケジュール

仮想クラスター システムには、高速に展開するための機能が備わっている必要があります。この場合、展開とは、できるだけ速くクラスター内の物理ノードにソフトウェア スタック (OS、ライブラリ、およびアプリケーション) を構築および分散できることと、あるユーザーの仮想クラスターから別のユーザーの仮想クラスターに実行環境を迅速に切り替えられることを意味します。あるユーザーがシステムを使い終わったら、対応する仮想クラスターは、すぐにシャットダウンするか一時停止して、他のユーザーが使用している他の VM を実行するためにリソースを取っておく必要があります。

最近、"グリーン コンピューティング" という概念が多くの注目を集めています。ただし、これまでのアプローチは、視野を広げることなく、1 台のワークステーションでコンポーネントの電力コストを削減することに重点を置いていました。そのため、これまでのアプローチが、必ずしもクラスター全体の電力消費量を削減するとは限りません。仮想クラスターは、クラスター全体の電力消費削減という目標を達成するのに大いに役立ちます。

クラスター全体の電力効率を上げるその他の手法は、同種のワークステーションと特定のアプリケーションにしか適用できません。VM のライブ マイグレーションでは、ノード間でワークロードを移動できます。ただし、ライブ マイグレーションは、VM をノード間でランダムに移行することを保証するものではありません。実際のところ、VM のライブ マイグレーションによって生じる潜在的なオーバーヘッドを無視することはできません。

このオーバー ヘッドは、クラスターの使用状況、スループット、およびサービスの質に深刻な悪影響を及ぼすおそれがあります。そのため、クラスターのパフォーマンスに影響を及ぼさないグリーン コンピューティングを実現する移行戦略を策定する方法を見つけることが課題となります。

仮想化のもう 1 つのメリットは、仮想クラスターにおけるアプリケーションの負荷分散です。負荷指標とユーザー ログインの頻度を使用して、負荷分散を実現することが可能で、このモデルに基づいて、仮想クラスターの自動スケールアップ/スケールダウン メカニズムを実装できます。

結果として、ノード リソースの使用率を上げて、システムの応答時間を短縮することができます。VM を最適な物理ノードにマップしてパフォーマンスを向上することもできます。VM のライブ マイグレーションによってノード間の負荷を動的に調整することは、クラスター ノード間で負荷のバランスに偏りが生じた場合に望ましい手法です。

高性能な仮想ストレージ

テンプレート VM をクラスターの複数の物理ホストに分散して、他の VM をカスタマイズできます。さらに、事前に設計したソフトウェア パッケージを使用すると、カスタマイズや仮想環境間の切り替えにかかる時間を短縮することもできます。ここで重要になるのは、ディスク領域を効率的に管理することです。

ストレージ アーキテクチャ設計を適用すると、仮想クラスターの分散ファイル システムで重複しているブロックを削減できます。データ ブロックのコンテンツを比較するには、ハッシュ値を使用します。ユーザーは、ユーザー固有の仮想クラスターに配置された対応する VM のデータ ブロック ID を格納する独自のプロファイルを保有しています。ユーザーが対応するデータを変更すると、新しいデータ ブロックが作成され、新しく作成されたデータ ブロックは、ユーザー プロファイルで認識されます。

ターゲット クラスターに複数の VM を展開する基本的な手順は次の 4 つです。

  1. ディスク イメージを準備する
  2. VM を構成する
  3. 展開先のノードを選択する
  4. すべてのホストで VM の展開コマンドを実行する

多くのシステムでは、テンプレートを使用して、ディスク イメージを準備するプロセスを簡略化しています。テンプレートは、OS があらかじめインストールされたディスク イメージで、アプリケーション ソフトウェアがインストールされているかどうかは、イメージによって異なります。

ユーザーは、ニーズに応じて適切なテンプレートを選択し、自分のディスク イメージとして使用するバックアップを作成します。テンプレートには、コピー オン ライト (COW) 形式を使用できます。新しい COW 形式のバックアップ ファイルはサイズが小さく、簡単に作成して転送できます。そのため、使用するディスク領域は、確実に少なくなります。

VM の展開にかかる時間は、生ファイル全体のコピーにかかる時間よりも大幅に短縮されます。すべての VM は、名前、ディスク イメージ、ネットワークの設定、割り当てられた CPU とメモリが指定された状態で構成されています。必要なのは、すべての VM の構成をファイルに記録することだけです。

ただし、多数の VM を管理する場合、この手法は非効率的です。同じ構成の VM では、事前に編集したプロファイルを使用して、このプロセスを簡略化できます。このシナリオでは、指定のプロファイルに基づいて VM が自動的に構成されるようにします。

多くの構成項目では、同じ設定を使用します。汎用一意識別子 (UUID)、VM 名、IP アドレスなど、一部の項目には、自動的に計算された値が割り当てられます。また、多くの場合、VM がどのホストで実行されているかはユーザーにとって問題ではありません。

すべての VM に適した展開先ホストを選択する戦略が必要です。展開に関する戦略の基本方針は、VM の要件を満たし、ホスト ネットワーク全体でワークロードを分散することです。

Kai Hwang

Kai Hwang は、南カリフォルニア大学のコンピューター エンジニアリングの教授であり、中国の清華大学の客員教授長でもあります。彼は、カリフォルニア大学バークレー校で EECS (電気工学およびコンピューター サイエンス) の博士号を取得しました。コンピューター アーキテクチャ、デジタル演算、並列処理、分散システム、インターネット セキュリティ、およびクラウド コンピューティングに関して幅広い執筆活動を行っています。

Jack Dongarra

Jack Dongarra は、テネシー大学の電気工学およびコンピューター サイエンスの特別教授で、オークリッジ国立研究所の特別研究員、マンチェスター大学の招聘研究員でもあります。彼は、スーパーコンピューターのベンチマーク、数値分析、線形代数ソルバー、および高性能コンピューティングの分野における先駆者で、これらの分野に関して幅広い執筆活動を行っています。

Geoffrey Fox

Geoffrey Fox は、インディアナ大学の情報科学、コンピューティング、および物理学の特別教授で、情報科学およびコンピューティング研究科の副学部長でもあります。彼は、英国のケンブリッジ大学で博士号を取得しました。並行アーキテクチャ、分散プログラミング、グリッド コンピューティング、Web サービス、およびインターネット アプリケーションについての包括的な研究と幅広い執筆活動でよく知られています。

©2011 Elsevier Inc. All rights reserved. Syngress (Elsevier の事業部) の許可を得て掲載しています。Copyright 2011. 『Distributed and Cloud Computing: From Parallel Processing to the Internet of Things』(Kai Hwang、Jack Dongarra、Geoffrey Fox 著) この書籍と類似書籍の詳細については、elsevierdirect.com (英語) を参照してください。

関連コンテンツ