(57)【要約】      （修正有）【課題】クラスタシステムの仮想マシンをマイグレーションするためのシステム及び方法を提供する。【解決手段】クラスタコンピューティングシステム１００の複数のノードで複数の仮想マシン１４１を実行することであって、少なくとも１つのアプリケーション１４３が前記複数の仮想マシン１４１のそれぞれの内部で実行されることと、前記仮想マシン１４１におけるアプリケーション１４３の性能に関係したデータを生成すること、管理プロセス１２２により、アプリケーション１４３の所望の性能レベルを符号化するパラメータを考慮して前記データを解析することと前記管理プロセス１２２により、前記解析することに応じて、前記複数のノードの第１のノード１１０−１の仮想マシン１４１を第２のノード１１０−２へマイグレーションすることとを含む。【選択図】図１
2006244481.tif 000002
【特許請求の範囲】
【請求項１】
クラスタコンピューティングシステム（１００）の複数のノードで複数の仮想マシン（１４１）を実行することであって、少なくとも１つのアプリケーション（１４３）が前記複数の仮想マシンのそれぞれの内部で実行されることと、
前記仮想マシンにおけるアプリケーションの性能に関係したデータを生成することと、
管理プロセス（１２２）により、アプリケーションの所望の性能レベルを符号化するパラメータを考慮して前記データを解析することと、
前記管理プロセスにより、前記解析することに応じて、前記複数のノードの第１のノード（１１０−１）の仮想マシンを第２のノード（１１０−２）へマイグレーションすることと
を含む方法。
【請求項２】
前記クラスタコンピューティングシステムは、
単一のルートを有する前記クラスタコンピューティングシステムのストレージ資源のシングルイメージを与える分散ファイルシステム（２０１）
を備える請求項１に記載の方法。
【請求項３】
前記仮想マシンは、
前記第１のノードに直接取り付けられたストレージ資源を使用する仮想ストレージ資源を割り当てられる
請求項２に記載の方法。
【請求項４】
前記仮想マシンは、
前記第２のノードへのマイグレーション後、前記第１のノードに直接取り付けられたストレージ資源を使用する仮想ストレージ資源に継続してアクセスする
請求項３に記載の方法。
【請求項５】
前記複数の仮想マシンのそれぞれについて、前記複数のノードのどのノードが、前記各仮想マシンを実行するのに使用されるかということとは無関係の構成ファイル（１５５）を定義すること
をさらに含む請求項２に記載の方法。
【請求項６】
前記解析することは、
前記マイグレーションを行う前に、前記仮想マシンに割り当てるための資源が前記第１のノードにおいて利用可能であるかどうかを判断すること
をさらに含む請求項１に記載の方法。
【請求項７】
ソフトウェアオペレーションをサポートするためのハードウェア要素（１３０）を提供する複数のクラスタノード（１１０）と、
前記複数のクラスタノード（１１０）で実行される複数の仮想マシン（１４１）であって、少なくとも１つのアプリケーション（１４３）が、前記複数の仮想マシンのそれぞれの内部で実行される複数の仮想マシン（１４１）と、
前記複数のクラスタノード（１１０）の少なくとも１つに配置された管理プロセス（１２２）であって、前記複数の仮想マシン内で実行されるアプリケーションに関連した性能データを解析し、前記性能データの解析に応じて、前記複数のクラスタノード（１１０）間で仮想マシンをマイグレーションする管理プロセス（１２２）と
を備えるクラスタシステム。
【請求項８】
前記複数のクラスタノード（１１０）のオペレーティングシステム内で実施される分散ファイルシステム（２０１）
を備える請求項７に記載のクラスタシステム。
【請求項９】
前記分散ファイルシステムは、
前記クラスタシステムのストレージ資源の統一イメージを、ソフトウェアプロセスが実行されるクラスタノードとは無関係の前記ソフトウェアプロセスに与える
請求項８に記載のクラスタシステム。
【請求項１０】
前記分散ファイルシステムは、
アプリケーションを実行するクラスタノードに直接取り付けられたストレージ周辺機器を使用して実施された仮想ディスクにアクセスする前記アプリケーションが、前記アプリケーションの仮想マシンがクラスタノード間でマイグレーションされた後に前記仮想ディスクに継続してアクセスすることを可能にする
請求項８に記載のクラスタシステム。
【請求項１１】
前記管理プロセスは、
仮想マシンを別のクラスタノードにマイグレーションする前に、再割り当て用の資源が、前記仮想マシンを実行するクラスタノードにおいて利用可能であるかどうかを判断する
請求項７に記載のクラスタシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、包括的には、クラスタシステム及び仮想マシンに関する。
【背景技術】
【０００２】
コンピューティング資源を「仮想化」する多くの（a number of）ソフトウェア製品が利用可能である。Intelの３２ビットコンピューティングアーキテクチャ用の仮想化製品の一例は、ＶＭｗａｒｅ  ＥＳＸサーバ製品である。いくつかの仮想化ソフトウェア製品は、サーバプラットフォームでオペレーティングシステム（「ホスト」オペレーティングシステム）を実行することによって動作する。ホストオペレーティングシステムのカーネルは、通常、仮想化ソフトウェアレイヤ（virtualization software layer）を含む。この仮想化ソフトウェアレイヤは、ハードウェアコンポーネントに対応するソフトウェア構成（software constructs）を作成する。たとえば、仮想プロセッサ、仮想ネットワークインターフェースカード、及び仮想ストレージ資源は、仮想化ソフトウェアレイヤがインスタンス化することができる。仮想資源の個数は、サーバプラットフォームで利用可能な物理資源を超えることができる。たとえば、仮想プロセッサの個数は、物理プロセッサへのアクセスをスケジューリング（すなわち、時間分割）することによって、物理プロセッサの個数を超えることができる。
【０００３】
仮想資源は仮想マシンに割り当てられる。仮想マシンは、ホストオペレーティングシステムの上部（top）で各プロセスとして「ゲスト」オペレーティングシステムを実行するのに使用される。ゲストオペレーティングシステムは、また、１つ又は数個のアプリケーションを実行するのに使用することができる。ホストオペレーティングシステムの仮想化ソフトウェアレイヤは、仮想マシンへの仮想プロセッサの割り当てに従ってプロセスの実行をスケジューリングすることができる。
【０００４】
このような仮想マシンの作成及びオペレーションは複数の利点を提供する。具体的には、従来の情報技術（ＩＴ）のインプリメンテーションは、個々のサーバプラットフォームで各アプリケーションを実行することを含む。このような手法が選択されると、サーバプラットフォームの利用は、比較的少なくなる可能性があり、したがって、資源は基本的に浪費される。物理サーバの代わりに各仮想マシンでアプリケーションを実行することによって、利用率をはるかに高くすることができる。その上、複数のサーバプラットフォームを維持することに関連した管理運営コストも回避することができる。
【０００５】
既知の仮想化ソフトウェア製品は、他の有用な機能を提供する。たとえば、２つのサーバプラットフォームが同じストレージエリアネットワーク（ＳＡＮ）に接続された場合、仮想化製品によっては、管理運営者が、一方のプラットフォームの仮想マシンで実行されているアプリケーションを他方のプラットフォームの仮想マシンへ転送することを可能にするものがある。たとえば、プラットフォームの日常的なメンテナンスを実行することができ、そのプラットフォームで実行されている仮想マシンを１つ又は数個の他のプラットフォームへ移動させることができる。このようなマイグレーション（migration）は、マイグレーションされる仮想マシンがＳＡＮを使用して自身のデータを記憶している場合に行うことができる。
【発明の開示】
【課題を解決するための手段】
【０００６】
一実施の形態では、方法が、クラスタコンピューティングシステムの複数のノードで複数の仮想マシンを実行することであって、少なくとも１つのアプリケーションが複数の仮想マシンのそれぞれの内部で実行されること、仮想マシンにおけるアプリケーションの性能に関係したデータを生成することと、管理プロセスにより、アプリケーションの所望の性能レベルを符号化するパラメータを考慮してデータを解析することと、管理プロセスにより、解析することに応じて、複数のノードの第１のノードの仮想マシンを第２のノードへマイグレーションすることとを含む。
【０００７】
別の実施の形態では、クラスタシステムが、ソフトウェアオペレーションをサポートするためのハードウェア要素を提供する複数のクラスタノード（１１０）と、複数のクラスタノード（１１０）で実行される複数の仮想マシンであって、少なくとも１つのアプリケーションが、複数の仮想マシンのそれぞれの内部で実行される、複数の仮想マシンと、複数のクラスタノード（１１０）の少なくとも１つに配置された管理プロセスであって、複数の仮想マシン内で実行されるアプリケーションに関連した性能データを解析し、性能データの解析に応じて、複数のクラスタノード（１１０）間で仮想マシンをマイグレーションする、管理プロセスとを備える。
【０００８】
別の実施の形態では、クラスタシステムの仮想マシン内で実行されるアプリケーションの管理のためのコンピュータ可読媒体が、クラスタシステムの仮想マシン内のアプリケーションの実行に関係した性能データを生成するためのコードと、性能データを処理するためのコードであって、それによって、アプリケーションが、１組のパラメータ内で符号化された所望の動作目標を満たしているかどうかを判断するコードと、処理するためのコードに応じて、クラスタシステムのクラスタノード間で仮想マシンをマイグレーションするためのコードとを含む。
【発明を実施するための最良の形態】
【０００９】
いくつかの代表的な実施の形態は、仮想マシンを実行するように適合されたシングルシステムイメージ（ＳＳＩ；Single System Image）のクラスタアーキテクチャを対象にする。ＳＳＩクラスタは、システムアドミニストレータ及びアプリケーションに単一ノードの「イメージ」を与えるハードウェア接続及びソフトウェア接続を有するシステムの集合を指す。このようなイメージを提供することによって、クラスタのメンバー間で仮想マシンを柔軟にマイグレーションさせて、クラスタ資源の資源利用を最適化することができる。これに加えて、シングルイメージを使用することにより、特定のワークロード又はアプリケーション用の仮想マシンの構成は、クラスタのノードのいずれかに対して一度しか行う必要がない。いくつかの実施の形態では、ワークロード管理アルゴリズムが、クラスタ資源を割り当てるのに使用される。具体的には、「サービスレベル目標」パラメータを考慮してアプリケーション性能データを解析することができる。この解析は、仮想マシン間で資源を再割り当てするのに使用することができる。これに加えて、この解析は、或るクラスタプラットフォームから別のクラスタプラットフォームへ仮想マシンをマイグレーションさせるのに使用することができる。このようにクラスタシステムの仮想マシンを管理することによって、より効率的な資源利用を達成することができる。
【００１０】
次に図面を参照して、図１は、代表的な一実施の形態によるシステム１００を示している。このシステム１００は、サーバプラットフォーム１１０−１及び１１０−２を含む。図１には、２つのサーバプラットフォームしか示されていないが、他の実施の形態によるクラスタアーキテクチャ内では、任意の個数のサーバプラットフォーム１１０を使用することができる。各サーバプラットフォーム１１０は、ホストオペレーティングシステム１２０を含む。このホストオペレーティングシステム１２０は、プラットフォームのハードウェアレイヤ１３０への低レベルアクセスを制御する。一実施の形態では、ホストオペレーティングシステム１２０は、一例としてそのカーネル内に仮想化レイヤ１２１を含む。この仮想化レイヤ１２１は、プラットフォーム１１０のハードウェアレイヤ１３０の物理資源に対応するソフトウェア構成（論理デバイス）を作成する。ハードウェアレイヤ１３０は、ＣＰＵ（複数可）１３１、メモリ１３２、ネットワーク１６０にアクセスするためのネットワークインターフェース１３３、ストレージ１５０にアクセスするための入出力（Ｉ／Ｏ）インターフェース１３４等の任意の個数の物理資源を含むことができる。
【００１１】
一実施の形態では、仮想資源（たとえば、１つ又は数個の仮想ＣＰＵ、仮想メモリ、仮想ネットワークインターフェースカード、仮想Ｉ／Ｏインターフェース等）が、構成ファイル１５５を使用して各仮想マシン１４１に割り当てられる。仮想ＣＰＵの個数は、物理ＣＰＵ１３１の個数を超えることができる。ホストオペレーティングシステム１２１は、割り当てられた仮想ＣＰＵに従って、仮想マシン１４１に関連したプロセスの実行を物理ＣＰＵ１３１にスケジューリングすることができる。
【００１２】
各仮想マシン１４１は、自身に割り当てられた仮想資源に従って、ゲストオペレーティングシステム１２０の上部でプロセスとして実行される。各仮想マシン１４１がそれ自身のＣＰＵ又はそれ自身の１組のＣＰＵで実行するように見えるような方法でＣＰＵ仮想化を行うことができる。ＣＰＵ仮想化は、各仮想ＣＰＵについて、１組のレジスタ、変換索引バッファ、及び他の制御構造体を設けることによって実施することができる。したがって、各仮想マシン１４１は、他の仮想マシン１４１から隔離される。これに加えて、各仮想マシン１４１は、各ゲストオペレーティングシステム１４２を実行するのに使用される。仮想マシン１４１に割り当てられた仮想資源は、ゲストオペレーティングシステム１４２には、物理サーバのハードウェア資源として見える。ゲストオペレーティングシステム１４２は、また、１つ又は数個のアプリケーション１４３を実行するのに使用することができる。各ゲストオペレーティングシステム１４２は、自身に関連したアプリケーション１４３の特徴に従って個別に調整及び／又はパッチを受けることができる。
【００１３】
一般的なディスク仮想化は、各仮想ディスクについてネットワークストレージデバイスに各ファイルを作成することにより実施される。ゲストオペレーティングシステム１４２は、従来のオペレーションを通じて仮想ディスクにアクセスし、ホストオペレーティングシステム１２０は、このディスクオペレーションを変換して、対応するファイルにアクセスする。いくつかの実施の形態では、ディスク仮想化は、以下で説明するようなクラスタファイルシステムを使用して実行される。
【００１４】
ネットワーク仮想化は、仮想ネットワークカードを作成することによって実施することができる。これらの仮想ネットワークカードは、それぞれの媒体アクセス制御（ＭＡＣ）アドレス及びインターネットプロトコル（ＩＰ）アドレスを有する。仮想ネットワークカードは、専用ネットワークインターフェース１３３にマッピングすることもできるし、複数の仮想マシン１４１からの仮想ネットワークインターフェースは、単一のネットワークインターフェース１３３を共有することもできる。
【００１５】
ホストオペレーティングシステム１２０は、クラスタ機能をサポートするためのクラスタ管理ソフトウェア１２３を備える。このクラスタ機能によって、複数の独立した物理システムを単一のシステムとして動作させ、且つ、管理することが可能になる。クラスタ管理ソフトウェア１２３は、クラスタの形成、クラスタへのメンバーの追加、及びクラスタからのメンバーの削除（remove）を行うことができる。また、クラスタ管理ソフトウェア１２３は、クラスタ全体の資源の包括的な見え方を与えることもできる。
【００１６】
いくつかの代表的な実施の形態では、クラスタ管理ソフトウェア１２３は、シングルシステムイメージ（ＳＳＩ）機能を実施する。ＳＳＩクラスタは、システムアドミニストレータ及びアプリケーションに単一ノードの「イメージ」を与えるハードウェア接続及びソフトウェア接続を有するサーバプラットフォーム１１０の集合を指す。たとえば、ストレージ１５０は、直接取り付けられたデバイス及びネットワークに取り付けられたデバイスを含むことができる。クラスタ管理ソフトウェア１２３は、ストレージ１５０の個々のデバイスへのアクセスを制御して、ストレージ１５０を、単一のルートを有する単一のファイルシステムとして見せることができる。単一のルートが共有されることによって、適切な構成ファイルの単一のコピーを各サーバプラットフォーム１１０に対して使用することが可能になる。したがって、管理運営アクティビティを簡単にすることができる。
【００１７】
図２を参照して、シングルシステムイメージ機能は、複数のソフトウェアレイヤを使用して実施することができる。図２に示すように、仮想マシン１４１のアプリケーション１４３は、自身のゲストオペレーティングシステム１４２を介して従来の機能を使用し、ファイルオペレーションを実行することができる。ゲストオペレーティングシステム１４２は、自身の仮想マシン１４１に割り当てられた仮想Ｉ／Ｏインターフェース及びストレージデバイスにアクセスすることによってファイルオペレーションを実行する。仮想ストレージ資源は、クラスタファイルシステム（ＣＦＳ；cluster file system）のソフトウェアレイヤ２０１によって与えられた統一クラスタファイルシステムから作成される。したがって、同じファイル名を使用してあらゆるサーバプラットフォーム１１０から、ストレージ１５０のどの特定のストレージデバイス１５１に配置されたファイルにもアクセスすることができる。
【００１８】
具体的には、ＣＦＳ２０１は、ファイル及びディレクトリについてのクラスタ全体の単一の名前空間を作成することによって、統一クラスタファイルシステムを与えることができる。ＣＦＳ２０１は、「ＡｄｖＦＳ」モジュール等の従来のファイルシステムソフトウェアモジュール（ローカルファイルシステム２０２として示される）の上に階層化される。さまざまなプラットフォーム１１０のＣＦＳ２０１は、分散されたカーネルコンポーネントとして実施されると、さまざまな個別のファイルシステムドメインを一まとめに集めて、共通のルートの下にある単一の一元的な名前空間にする。これに加えて、ＣＦＳ２０１の分散される性質によって、クラスタメンバー間のキャッシュコヒーレンシが維持されて、すべてのクラスタメンバーがそのファイルシステムの同じビュー（view）を有することを確保することができる。ローカルファイルシステム２０２は、従来の処理を使用してファイルオペレーションを実行する。デバイス要求ディスパッチモジュール２０３は、デバイスドライバ２０４を通じて物理デバイス１５１に対するＩ／Ｏを制御する。デバイス要求ディスパッチモジュール２０３は、シングルシステムオープンセマンティクス（single-system open semantics）を実施することができるので、どの時点においても１つのプログラムしかデバイスをオープンすることができない。これに加えて、ストレージが物理的に配置された場所にかかわらず、物理ディスクストレージ及び物理テープストレージをすべてのクラスタメンバーに利用可能にできるようにデバイス要求ディスパッチモジュール２０３を実施することができる。
【００１９】
ＳＳＩクラスタ及びクラスタファイルシステムに関係したさらに詳細な内容は、２００２年９月にHewlett-Packard社によって出版された「TruCluster Server: Cluster Technical Overview」に見出すことができる。
【００２０】
図１を再び参照して、システム１００は、さらに、ワークロード管理ソフトウェアモジュールを備える。たとえば、各仮想マシン１４１内において、各性能モニタ１４４を実行することができる。この性能モニタ１４４は、アプリケーション（複数可）１４３に関連したオペレーションを監視して、各アプリケーション１４３が予測通りに動作しているかどうか、及び／又は、追加された資源の割り当てが有益なものとなっているかどうかを示すデータを生成するソフトウェアプロセスである。たとえば、性能モニタ１４４は、一定のタイプのトランザクションを実行するのに必要とされる時間の長さ（たとえば、特定のデータベースクエリ（query）に関連した時間の長さ）を調べることができる。これに加えて、又は、これに代えて、性能モニタ１４４は、自身の各仮想マシン１４１に割り当てられた仮想資源に関連した利用率を調べることもできる。
【００２１】
システム１００は、さらに、グローバルワークロードマネージャ（ｇＷＬＭ；global workload manager）１２２を含む。一実施の形態では、ｇＷＬＭ１２２は、性能モニタ１４４から性能データを取得する。これに加えて、又は、これに代えて、ｇＷＬＭ１２２は、ホストオペレーティングシステム１２０から関係した性能データを取得することもできる。ｇＷＬＭ１２２は、サービスレベル目標（ＳＬＯ；service level objective）を考慮して、受け取った性能データを解析する。ＳＬＯは、アプリケーション１４３の所望の動作目標を符号化するパラメータである。たとえば、アプリケーション１４３が所与のタイプのデータベーストランザクションを１０ミリ秒内で実行すべきであることを指定するようにＳＬＯを符号化することができる。これに加えて、又は、これに代えて、仮想マシン１４１に関連した利用率が８５％未満に留まるべきであるようにＳＬＯを定義することもできる。
【００２２】
特定のアプリケーション１４３が各ＳＬＯ（複数可）を達成していない場合、ｇＷＬＭ１２２は、そのアプリケーションの各仮想マシン１４１に追加資源を割り当てることができる。前述したように、仮想マシン１４１は、ホストオペレーティングシステム１２０の上部で実行されるプロセスである。ホストオペレーティングシステム１２０は、仮想マシン１４１に関連した資源使用権パラメータ（entitlement parameter）に従ってプロセスの実行をスケジューリングする。特定の仮想マシン１４１に追加資源を割り当てるために、ｇＷＬＭ１２２は、仮想化レイヤ１２１に対する適切なシステムコールを通じて、仮想マシン１４１に関連した資源使用権パラメータを改変することができる。これに応答して、ホストオペレーティングシステム１２０は、各仮想マシン１４１に関連したプロセスの実行の相対的なスケジューリングを増加させる。具体的には、各プロセスは、より多くの、１つ又は数個の物理ＣＰＵ１３１の「タイムスライス」を受け取り、それによって、アプリケーション１４３の性能が改善される。
【００２３】
特定のアプリケーション１４３の性能が低下しているとｇＷＬＭ１２２が判断した時に、割り当てるのに十分な物理資源が利用可能でない場合があり得る。各サーバプラットフォーム１１０のほぼすべての物理資源が消費されるように、十分な仮想資源が仮想マシン１４４に割り当てられる場合がある。十分な物理資源が利用可能でない場合、ｇＷＬＭ１２２は、仮想マシン１４１間で資源を再割り当てすることができる。具体的には、ｇＷＬＭ１２２は、別の仮想マシン１４１に割り当てられた物理資源を減少させることができ、同時に、性能が低下しているアプリケーション１４３を有する仮想マシン１４１に割り当てられる物理資源を増加させることができる。
【００２４】
物理資源の再割り当てを実行するために、ＳＬＯのいくつかの段階をアプリケーション１４３用に定義することができる。ＳＬＯの各段階は、異なる量の資源に関連付けることができる。また、各段階は、優先レベルに関連付けることもできる。このようにＳＬＯを符号化することによって、ｇＷＬＭ１４１は、既存のワークロードを与えられた可能なＳＬＯの最も高い段階を達成するように資源を再割り当てすることができる。したがって、ＳＬＯの複数の段階によって、動的に変化するワークロードを経験する複数のアプリケーション１４３に対して、割り当ての決定を行うことが可能になる。ＳＬＯの複数の段階を使用して資源を割り当てることに関するさらに詳細な内容は、２００２年７月１６日に出願された「DYNAMIC MANAGEMENT OF VIRTUAL PARTITION COMPUTER WORKLOADS THROUGH SERVICE LEVEL OPTIMIZATION」という発明の名称の米国特許出願第１０／２０６，５９４号に見出すことができる。
【００２５】
一実施の形態では、ｇＷＬＭ１２２は、或るプラットフォーム１１０から仮想マシン１４１を移動させて、その仮想マシン１４１に追加資源を割り当てることができる。たとえば、ｇＷＬＭ１２２は、クラスタ管理ソフトウェア１２３を利用して、各サーバプラットフォーム１１０で利用可能な資源に関係した情報、各プラットフォーム１１０に存在する仮想マシン１４１に関係した情報、仮想マシン１４１内で実行されるアプリケーション１４３に関係した情報、及び／又は、他の適切な情報を取得することができる。アプリケーション１４３の性能が低下しており、且つ、そのサーバプラットフォーム１１０の追加資源が現在利用可能でない場合、ｇＷＬＭ１２２は、他のプラットフォーム１１０で利用可能な資源を調べることができる。資源が他のプラットフォーム１１０で利用可能な場合、ｇＷＬＭ１２２は、各仮想マシン１４１を他のプラットフォーム１１０に移動させることができる。
【００２６】
仮想マシン１４１は、ホストオペレーティングシステム１２０の上部のプロセスとして実行されるので、プラットフォーム１１０間で仮想マシン１４１を移動させることが可能である。具体的には、移動される仮想マシン１４１の実行は、一時的に割り込みを受けることができる。仮想プロセッサの状態を保存することができる。対応する仮想資源を他のプラットフォーム１１０に作成することができ、他のホストオペレーティングシステムの上部に仮想マシンプロセスを作成することができる。次に、保存されたプロセッサ状態を使用して、仮想マシンの実行を再開することができる。移動元のプラットフォームに関連したプロセスは終了することができる。これに加えて、各仮想マシン１４１は、仮想ネットワークインターフェースを割り当てられ、且つ、サポートする（supporting）サーバプラットフォーム１１０とは独立に同じネットワークアドレスに応答するので、プラットフォーム１１０間のマイグレーションは、アプリケーション１４３及びクライアントプラットフォーム（図示せず）にトランスペアレントである。
【００２７】
システム１００を使用した、サーバプラットフォーム１１０間の仮想マシン１４１のマイグレーションは、有利な方法で行うことができる。たとえば、システム１００はＳＳＩシステムであるので、ローカルストレージ設備（取り付けられたストレージデバイス）は、アプリケーション１４３が使用することができる。具体的には、クラスタファイルシステムは、クラスタシステム１００全体に関連したストレージ１５０の一貫し且つ統一されたビューを与える。アプリケーション１４３が、ローカルストレージデバイス１５１に関連した仮想ディスクを使用する場合、クラスタファイルシステム２０１は、たとえ仮想マシン１４１がプラットフォーム１１０間で移動されても、同じ仮想ディスクにアクセスすることを可能にする。
【００２８】
図３は、代表的な一実施の形態に従ってクラスタシステムの仮想マシンを管理するためのフローチャートを示している。ブロック３０１では、複数の仮想マシンで実行されるアプリケーションの性能データが生成される。この性能データは、仮想マシン内の性能監視ソフトウェアプロセスが生成することができる。これに加えて、又は、これに代えて、性能データは、オペレーティングシステムコールを使用して取得することもできる。生成された性能データによって、アプリケーションの性能評価を行うことが可能になる。
【００２９】
ブロック３０２では、性能データが、サービスレベル目標を考慮して解析される。前述したように、サービスレベル目標は、アプリケーションの所望の動作目標を符号化するパラメータである。ブロック３０３では、アプリケーションがＳＬＯを満たしているかどうかを判断するための論理比較が行われる。アプリケーションがＳＬＯを満たしている場合、プロセスフローは、オペレーションを継続するためにブロック３０１に戻る。
【００３０】
アプリケーションがＳＬＯを満たしていない場合、プロセスフローはブロック３０４に進み、ブロック３０４において、ＳＬＯを達成するのに十分な資源がローカルシステムで利用可能であるかどうかを判断するための論理比較が行われる。十分な資源が利用可能である場合、プロセスフローはブロック３０５に進み、ブロック３０５において、資源がＳＬＯを達成するように割り当てられるか、又は、再割り当てされる。具体的には、割り当てられていない資源が利用可能である場合、その割り当てられていない資源を、性能が低下しているアプリケーションに関連した仮想マシン（複数可）に割り当てることができる。代替的に、第１のアプリケーションが「予想以上の性能を達成している」場合、この予想以上の性能を達成しているアプリケーションを有する仮想マシンから、性能が低下しているアプリケーションを有する仮想マシンへ、十分に利用されていない資源又はアイドルな資源を再割り当てすることができる。前述したように、仮想マシンのプロセッサ資源の再割り当ては、それら仮想マシンに関連したプロセッサスケジューリングを変更することを含む場合がある。スケジューリングは、各仮想マシンに与えられた「プロセッサスライス」の量を定義するパラメータを使用して行うことができる。したがって、資源の再割り当ては、さまざまな仮想マシンの相対的なパラメータを変更することを含む場合がある。ブロック３０５から、プロセスフローはブロック３０１に戻る。
【００３１】
ブロック３０４の論理比較が、ローカル資源が不十分であると判断した場合、プロセスフローはブロック３０４からブロック３０６へ進む。ブロック３０６では、他のクラスタメンバーの資源データが取得される。ブロック３０７では、ＳＬＯを達成することを可能にするための資源が他のクラスタメンバーで利用可能であるかどうかを判断するための論理比較が行われる。資源が利用可能でない場合、プロセスフローはブロック３０１に戻る。資源が利用可能である場合、プロセスフローはブロック３０８に進む。ブロック３０８では、性能が低下しているアプリケーションを含む仮想マシンが、別のクラスタメンバーにマイグレーションされ、そのマイグレーションされた仮想マシンに適切な資源が提供される。ブロック３０８から、プロセスフローはブロック３０１に戻る。
【００３２】
図３に示すフローチャートのオペレーション等、いくつかの代表的な実施の形態の要素がソフトウェアで実施されるとき、それら要素は、基本的には、必要なタスクを実行するためのコードセグメントである。これらプログラムセグメント又はコードセグメントは、コンピュータ可読媒体に記憶することもできるし、搬送波又は搬送波によって変調された信号で実施されたコンピュータデータ信号により伝送媒体上を伝送することもできる。「コンピュータ可読媒体」には、情報を記憶又は転送できるあらゆる媒体が含まれ得る。コンピュータ可読媒体の例には、電子回路、半導体メモリデバイス、ＲＯＭ、フラッシュメモリ、消去可能ＲＯＭ（ＥＲＯＭ）、フロッピー(登録商標)ディスケット、コンパクトディスクＣＤ−ＲＯＭ、光ディスク、ハードディスク、光ファイバ媒体、無線周波数（ＲＦ）リンク等が含まれる。コンピュータデータ信号には、電子ネットワークチャネル、光ファイバ、大気、電磁気、ＲＦリンク等の伝送媒体上を伝播できるあらゆる信号が含まれ得る。コードセグメントは、インターネット、イントラネット等のコンピュータネットワークを介してダウンロードすることができる。
【００３３】
いくつかの代表的な実施の形態は、複数の有利な特徴を提供することができる。たとえば、ワークロードへの資源の割り当ては、それらワークロードにサービスを提供するアプリケーションを何ら変更することなく行うことができる。具体的には、仮想マシンは、アプリケーションソフトウェアには個々のサーバとして見える、仮想化されたコンテナである。各仮想マシンによって消費されている資源のすべてが、複数の仮想マシン間で共有されるので、アプリケーション及び仮想マシンに完全にトランスペアレントな方法で資源使用権を変更することが可能である。
【００３４】
サービスレベル目標に従って仮想マシンを管理する能力により、資源のより効率的な使用が可能になる。具体的には、資源が仮想マシン間で位置を変え、且つ、仮想マシンがクラスタメンバー間でマイグレーションされると、動的に変化したワークロードに応じて、資源利用を最大にすることができる。したがって、通常使用される資源よりも少ない個数の資源（プロセッサ、メモリ等）を使用して、同じ個数のアプリケーションをサポートすることができる。
【００３５】
これに加えて、クラスタシステムのＳＳＩ機能を使用することによって、取り付けられたストレージを使用することが可能になる。具体的には、クラスタファイルシステムによって、直接取り付けられたストレージデバイス及びネットワークに取り付けられたストレージデバイスの双方へのトランスペアレントなアクセスが可能になる。仮想ディスクを実施するファイルは、そのファイルの物理位置を問わず、どのクラスタメンバーからもアクセスすることができる。したがって、仮想マシンがクラスタメンバー間でマイグレーションされた場合、その仮想マシンが前のクラスタメンバーで使用していたどのストレージも継続して利用可能である。
【００３６】
クラスタメンバーのすべてを単一のエンティティとして管理することができるので、仮想マシンを管理するように適合されたＳＳＩクラスタシステムの管理運営は効率的なプロセスとなる。一般的な管理タスクは、すべてのクラスタメンバーに対して一度だけ実行すればよい。たとえば、所与のワークロードをサポートするための仮想マシンの構成ファイルは、一度しか作成する必要がなく、仮想マシンはクラスタシステム内のどこに配置してもよい。
【図面の簡単な説明】
【００３７】
【図１】代表的な一実施の形態によるクラスタシステムを示す図である。
【図２】代表的な一実施の形態によるクラスタファイルシステムに関連したさまざまなソフトウェアレイヤを示す図である。
【図３】代表的な一実施の形態に従って仮想マシンを管理するためのフローチャートである。
【符号の説明】
【００３８】
１００・・・システム
１２０−１，１２０−２・・・ホストＯＳ
１２１−１，１２１−２・・・仮想化レイヤ
１２２−１，１２２−２・・・ｇＷＬＭＳＬＯｓ
１２３−１，１２３−２・・・クラスタ管理ソフトウェア
１３０−１，１３０−２・・・ハードウェアレイヤ
１３１−１，１３１−２・・・ＣＰＵ
１３２−１，１３２−２・・・メモリ
１３３−１，１３３−２・・・ネットワークインターフェース
１３４−１，１３４−２・・・Ｉ／Ｏインターフェース
１５０・・・ストレージ
１５５・・・構成ファイル
１６０・・・ネットワーク
２０１−１，２０１−２・・・ＣＦＳ
２０２−１，２０２−２・・・ローカルファイルシステム
２０３−１，２０３−２・・・デバイス要求ディスパッチ
２０４−１，２０４−２・・・デバイスドライバ
【図１】
2006244481.tif 000003
【図２】
2006244481.tif 000004
【図３】
2006244481.tif 000005