(57)【特許請求の範囲】
【請求項１】
複数のボリュームを有するストレージシステムと、複数のホストシステムと、当該ストレージシステム及び当該ホストシステムにネットワークを介して結合されている管理サーバとを含むサーバシステムを管理する方法であって、
仮想マシンイメージファイルに対応する前記ストレージシステムに仮想マシンファイルデータのマスターであるゴールデンイメージを生成することと、
前記生成されたゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシン構成用のデータをコピーすることと、
前記仮想マシンのアクティビティが、仮想マシンのデプロイの実行開始であるのか実行開始する前であるのか、あるいは、仮想マシンの格納の終了であるのかを監視することと、
前記仮想マシンのアクティビティを監視することにより、前記仮想マシン構成用のデータをコピーした前記ボリュームのステータスを、前記管理サーバによって追跡記録することと、
を含む方法であり、
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの実行開始である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記仮想マシン構成用のデータを格納するボリュームの前記ステータスがボリュームプール内にあり、かつ前記仮想マシンのデプロイの実行の前にストレージ管理ＡＰＩを介してターゲットＬＵＮ（論理ユニット番号）に取り付けられていないかをチェックすることを含み、
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイを実行開始する前である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記仮想マシン構成用のデータを格納するボリュームの前記ステータスが前記仮想マシンのデプロイされるホストシステムに取り付けられるボリュームであるかをチェックすることを含み、及び
監視された仮想マシンの前記アクティビティが、前記仮想マシンの格納の終了である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用された前記仮想マシン構成用のデータを格納するボリュームの前記ステータスが、ターゲットＬＵＮ（論理ユニット番号）から切り離され、かつ前記ストレージ管理ＡＰＩを介してボリュームプール内にあるかをチェックすることを含む、サーバシステム管理方法。
【請求項２】
前記ゴールデンイメージは、前記ストレージシステムの管理者及び前記管理サーバの管理者と交渉することなしに、仮想マシンの管理者からの入力に従って前記ストレージシステムが有する能力を利用して生成される、請求項１に記載の方法。
【請求項３】
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに前記仮想マシン構成用のデータをコピーする前に、
前記仮想マシン構成用のデータを格納するための前記複数のボリュームの各々を作成することと、
ボリュームにマップすることができる前記ホストシステムのＷＷＮ（ワールドワイドネーム）を有するホストシステムのグループであるホストグループに、前記作成されたボリュームの各々を取り付けることと
をさらに含む、請求項１に記載の方法。
【請求項４】
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシン構成用のデータをコピーした後で、
前記ホストグループから前記ボリュームの各々を切り離すことと、
各ホストシステムのために、（１）前記ホストシステムのプロセッサ上に存在し、かつ仮想マシンによって利用されるコア、及び（２）前記コアを使用するあらゆる仮想マシンの名前を格納するか、又は前記コアがいずれの仮想マシンによっても使用されていない場合に一切エントリを格納しないステータスを示すホストリストから未使用又は共有のコア、のいずれかを選択することによって、仮想マシンのためにホストを予約して、前記選択されたコアにおける前記仮想マシンについての予約済みの状態をホストに挿入することより、ターゲットコアのための専用仮想マシンのデプロイを実行することと
をさらに含む、請求項３に記載の方法。
【請求項５】
前記切り離し及び予約の後で、
前記ホストグループに前記切り離されたボリュームの各々を取り付けることと、
前記取り付けられたボリュームの各々について仮想マシンファイル名を更新することと、
ホストのために１つ以上の新しいボリュームを発見するために前記ストレージシステム内のディスクを再スキャンすることであって、当該１つ以上の新しいボリュームの各々は、仮想マシンがデプロイされるホストシステムのために発見されたボリュームとして発見されるように再スキャンすることと、
前記発見されたボリュームに基づいて前記再スキャンされたディスクをオンライン化することと、
前記オンラインディスクをマウントすることと
をさらに含む、請求項４に記載の方法。
【請求項６】
前記再スキャン、オンライン化、及びマウントの後で、
前記マウントされたディスクに基づいて仮想マシンイメージをコピーする動作を開始することと、
前記選択されたコア内の前記コピーする動作が開始された仮想マシンについての前記予約済み状態の代わりにホストリスト仮想マシン名に挿入することによって、ホストを使用済みに設定することと、
前記コピーする動作が開始された仮想マシンのために前記ボリュームの各々について前記仮想マシンファイル名を更新することと
をさらに含む、請求項５に記載の方法。
【請求項７】
前記ホストグループにボリュームを取り付ける前に、前記ボリュームが既に取り付けられていないかを判断するために、取り付けられる前記ボリュームについて前記ホストグループの接続ステータスをチェックすることと、
前記ホストグループからボリュームを切り離す前に、前記ボリュームが取り付けられているかを判断するために、切り離される前記ボリュームについて前記ホストグループの接続ステータスをチェックすることと
をさらに含む、請求項５に記載の方法。
【請求項８】
前記ホストグループの前記ホストシステムのＷＷＮをチェックすることによって、前記ホストグループのクラスタ構成の妥当性を確認することをさらに含む、請求項４に記載の方法。
【請求項９】
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの実行開始である場合は、
前記ホストシステムのＷＷＮの数が少なくとも２つであり、かつ前記ストレージシステムのポートの数が少なくとも２つであるかを判断することと、
前記判断において少なくとも２つのＷＷＮ及び少なくとも２つのポートが存在しない場合、前記仮想マシンの前記デプロイの実行済み変数を格納し、かつ前記判断において少なくとも２つのＷＷＮ及び少なくとも２つのポートが存在する場合、前に実行され格納されたデプロイの実行済み変数を使用して回復操作を実行することと
をさらに含む、請求項８に記載の方法。
【請求項１０】
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの実行開始である場合は、
仮想マシンをデプロイするための利用可能なコアが存在するかを判断し、ＹＥＳの場合は、前記選択されたコア内に前記仮想マシンについての予約済み状態を挿入することによって、利用可能なコアを選択すること、ＮＯの場合は、利用可能なコアを見つけることに失敗した旨のアラートを送信することと
をさらに含む、請求項４に記載の方法。
【請求項１１】
ストレージシステム及び複数のホストシステムにネットワークを介して結合されている管理サーバであって、当該ストレージシステムは複数のボリュームを有し、当該管理サーバは、プロセッサと、メモリと、プランエグゼキュータとを備え、
当該プランエグゼキュータは、
仮想マシンイメージファイルに対応する前記ストレージシステムに仮想マシンファイルデータのマスターであるゴールデンイメージを生成し、
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシン構成用のデータをコピーし、
前記仮想マシンのアクティビティを監視することにより、仮想マシンデータをコピーした前記ボリュームのステータスを、前記管理サーバによって追跡記録するためにプランを実行するものであり、
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの実行開始である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記仮想マシン構成用のデータを格納するボリュームの前記ステータスがボリュームプール内にあり、かつ前記仮想マシンのデプロイの実行の前にストレージ管理ＡＰＩを介してターゲットＬＵＮ（論理ユニット番号）に取り付けられていないかをチェックすることを含み、
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイを実行開始する前である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記仮想マシン構成用のデータを格納するボリュームの前記ステータスが前記仮想マシンのデプロイされるホストシステムのために発見されたボリュームであるかをチェックすることを含み、及び
監視された仮想マシンの前記アクティビティが、前記仮想マシンの格納の終了である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用された前記仮想マシン構成用のデータを格納するボリュームの前記ステータスがターゲットＬＵＮ（論理ユニット番号）から切り離され、かつ前記ストレージ管理ＡＰＩを介してボリュームプール内にあるかをチェックすることを含む、管理サーバ。
【請求項１２】
前記ゴールデンイメージは、前記ストレージシステムの管理者及び前記管理サーバの管理者と交渉することなしに、仮想マシンの管理者からの入力に従って前記ストレージシステムが有する能力を利用して生成される、請求項１１に記載の管理サーバ。
【請求項１３】
前記プランエグゼキュータは、
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシン構成用のデータをコピーする前に、
前記仮想マシン構成用のデータを格納するための前記複数のボリュームの各々を作成し、
ボリュームにマップすることができる前記ホストシステムのＷＷＮ（ワールドワイドネーム）を有するホストシステムのグループであるホストグループに、前記作成されたボリュームの各々を取り付ける
ためのプランを実行するように構成されている、請求項１１に記載の管理サーバ。
【請求項１４】
前記プランエグゼキュータは、
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシン構成用のデータをコピーした後で、
前記ホストグループから前記ボリュームの各々を切り離し、
各ホストシステムのために、（１）前記ホストシステムのプロセッサ上に存在し、かつ仮想マシンによって利用されるコア、及び（２）前記コアを使用するあらゆる仮想マシンの名前を格納するか、又は前記コアがいずれの仮想マシンによっても使用されていない場合に一切エントリを格納しないステータスを示すホストリストから未使用又は共有のコア、のいずれかを選択することによって、仮想マシンのためにホストを予約して、前記選択されたコアにおける前記仮想マシンについての予約済み状態を挿入することにより、ターゲットコアのための専用仮想マシンでのプロイを行う
ためのプランを実行するように構成されている、請求項１３に記載の管理サーバ。
【請求項１５】
前記プランエグゼキュータは、
前記切り離し及び予約の後で、
前記ホストグループに前記切り離されたボリュームの各々を取り付け、
前記取り付けられたボリュームの各々について仮想マシンファイル名を更新し、
ホストのために１つ以上の新しいボリュームを発見するために前記ストレージシステム内のディスクを再スキャンすることであって、当該１つ以上の新しいボリュームの各々は、仮想マシンがデプロイされるホストシステムのために発見されたボリュームとして発見されるように再スキャンし、
前記発見されたボリュームに基づいて前記再スキャンされたディスクをオンライン化し、
前記オンラインディスクをマウントする
ためのプランを実行するように構成されている、請求項１４に記載の管理サーバ。
【請求項１６】
前記プランエグゼキュータは、
前記再スキャン、オンライン化、及びマウントの後で、
前記マウントされたディスクに基づいて仮想マシンイメージを開始し、
前記選択されたコア内の前記開始された仮想マシンについての前記予約済み状態の代わりに前記ホストリスト仮想マシン名に挿入することによって、ホストを使用済みに設定し、
前記開始された仮想マシンのために前記ボリュームの各々について前記仮想マシンファイル名を更新する
ためのプランを実行するように構成されている、請求項１５に記載の管理サーバ。
【請求項１７】
前記プランエグゼキュータは、
ホストグループにボリュームを取り付ける前に、前記ボリュームが既に取り付けられていないかを判断するために、取り付けられる前記ボリュームについて前記ホストグループの接続ステータスをチェックし、
ホストグループからボリュームを切り離す前に、前記ボリュームが取り付けられているかを判断するために、切り離される前記ボリュームについて前記ホストグループの接続ステータスをチェックする
ためのプランを実行するように構成されている、請求項１５に記載の管理サーバ。
【請求項１８】
前記プランエグゼキュータは、
前記ホストグループの前記ホストシステムのＷＷＮをチェックすることによって、前記ホストグループのクラスタ構成の妥当性を確認するためのプランを実行するように構成されている、請求項１４に記載の管理サーバ。
【請求項１９】
前記プランエグゼキュータは、
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの実行開始である場合は、
前記ホストシステムのＷＷＮの数が少なくとも２つであり、かつ前記ストレージシステムのポートの数が少なくとも２つであるかを判断し、
前記判断において少なくとも２つのＷＷＮ及び少なくとも２つポートが存在しない場合、前記仮想マシンの前記デプロイの実行済み変数を格納し、かつ前記判断において少なくとも２つのＷＷＮ及び少なくとも２つのポートが存在する場合、前に実行され格納されたデプロイの実行済み変数を使用して回復操作を実行する
ためのプランを実行するように構成されている、請求項１８に記載の管理サーバ。
【請求項２０】
前記プランエグゼキュータは、
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの実行開始である場合は、
仮想マシンをデプロイするための利用可能なコアが存在するかを判断し、ＹＥＳの場合は、前記選択されたコア内に前記仮想マシンについての予約済み状態を挿入することによって、利用可能なコアを選択すること、ＮＯの場合は、利用可能なコアを見つけることに失敗した旨のアラートを送信する
ためのプランを実行するように構成されている、請求項１４に記載の管理サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は概してストレージシステムに関し、特に、仮想マシンのデプロイ及び格納を含むデータセンターファイルシステムの管理に関する。
【背景技術】
【０００２】
０００２    データセンターには、ストレージサブシステムからいくつかのホストに仮想マシンをデプロイするために、仮想マシンのイメージを格納する何千ものボリュームが存在する。特に、ストレージサブシステムから開始するデプロイを考える場合、困難さはさらに増す。これは、以下の理由による。第一に、ボリュームがストレージ内にあり、ホストに取り付けられていないために、ホストは、ボリュームのデプロイの終了までボリュームのファイルを読み取ることができない。第二に、仮想マシン（ＶＭ）は、マルチパスソフトウェアを介してボリュームにアクセスし得る。このソフトウェアは、同じボリュームを提供する、ストレージによって提供される複数のＬＵＮの先頭に自身の論理ユニット番号（ＬＵＮ）を有する。従って、ストレージによって提供されるＬＵＮは、マルチパスソフトウェアのＬＵＮによって隠される。その結果、ホストが、期待されるボリュームを見つけることは困難である。
【０００３】
０００３    米国特許第７，１４３，１４６号は、ファイルの位置及び状態を追跡記録するための分散ファイルシステムを開示する。しかし、これはボリュームのステータスをカバーしない。米国特許第７，０９６，３２５号は、ＬＵＮにボリュームを取り付け、ＬＵＮからボリュームを切り離す方法を開示する。しかし、上記特許は、ボリューム上にあるファイルによって特定されるボリュームのステータスについては記載していない。米国特許第７,５５５,６４４号は、ユーティリティ計算環境におけるオペレーティングシステムイメージプロビジョニングのシステム及び方法を対象とし、ＯＳイメージがコピーされたボリューム用のプールを用いて、計算サーバの起動時のＯＳイメージのプロ日ジョニングの技術を開示している。当該特許の図１は、プールを管理する手順を示す。しかし、この特許は、ボリュームがすでにシステム上に取り付けられていることを想定しており、ボリュームの状態は考慮していない。
【発明の概要】
【０００４】
０００４    本発明の例示的な実施形態は、データセンター管理サーバ内のホスト及びストレージシステムに格納された仮想マシンイメージのボリュームステータスの妥当性を確認する能力を提供する。データセンター管理サーバはデータベースを有する。データベースは、仮想マシンのイメージファイル（例えばＶＨＤファイル）についてのレコードを有する。このレコードは、ホスト及びストレージ上に識別子及びステータスを有する。識別子は、ファイルデータにアクセスするための各実行済み操作を検証するために使用される。キー識別子は、パーティションＧＵＩＤである。他の関連する識別子は、ストレージサブシステム及びＬＵＮで管理されるボリューム番号である。これらの変数を使用して、データセンター管理サーバは、ステータスを決定する。ホスト上のステータスは、パーティションされたＧＵＩＤ、ディスクパートツール上で確認することができるＬＵＮ、又はウィンドウズ（登録商標）管理計測による論理デバイス番号（ＬＤＥＶ）などのボリューム番号などのボリューム識別子に基づく「成功」又は「失敗」である。ストレージ上のボリュームについてのボリュームステータスは、ＬＵＮに取り付けられるか又は切り離される。このステータスは、ストレージサブシステムのＡＰＩによって成功又はエラー状態として確認することができる。これらのキーステータスを使用して、仮想マシン管理サーバは、仮想マシンのデプロイ及び格納におけるこれらのステータスを検証する。
【０００５】
０００５    本発明は、ストレージシステムから複数のホストに仮想マシンをデプロイするにあたって、仮想マシンのイメージを格納する数多くのボリュームを容易かつ適確に発見することができるサーバシステムの管理方法及び管理サーバを提供することを目的としている。
かかる目的を達成するための本発明の一態様は、複数のボリュームを有するストレージシステムと、複数のホストシステムと、当該ストレージシステム及び当該ホストシステムにネットワークを介して結合されている管理サーバとを含むサーバシステムを管理する方法を対象とする。この方法は、仮想マシンイメージファイルに対応する前記ストレージシステムに仮想マシンファイルデータのマスターであるゴールデンイメージを生成することと、生成された前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシン構成用のデータをコピーすることと、前記仮想マシンのアクティビティが、仮想マシンのデプロイの実行開始であるのか実行開始する前であるのか、あるいは、仮想マシンの格納の終了であるのかを監視することと、前記仮想マシンのアクティビティを監視することにより、前記仮想マシン構成用のデータをコピーした前記ボリュームのステータスを、前記管理サーバによって追跡記録することと、を含む。そして、監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの実行開始である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記仮想マシン構成用のデータを格納するボリュームのステータスがボリュームプール内にあり、かつ前記仮想マシンのデプロイの実行の前にストレージ管理ＡＰＩを介してターゲットＬＵＮ（論理ユニット番号）に取り付けられていないかをチェックすることを含む。また、監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイを実行開始する前である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記仮想マシン構成用のデータを格納するボリュームの前記ステータスが前記仮想マシンのデプロイされるホストシステムに取り付けられるボリュームであるかをチェックすることを含む。さらに、監視された仮想マシンの前記アクティビティが、前記仮想マシンの格納の終了である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用された前記仮想マシン構成用のデータを格納するボリュームの前記ステータスが、ターゲットＬＵＮ（論理ユニット番号）から切り離され、かつ前記ストレージ管理ＡＰＩを介してボリュームプール内にあるかをチェックすることを含む。
【０００６】
０００６    いくつかの実施形態では、前記ゴールデンイメージは、前記ストレージシステムの管理者及び前記管理サーバの管理者と交渉することなしに、仮想マシンの管理者からの入力に従って前記ストレージシステムの記憶能力を利用して生成される。前記方法は、前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシン構成用のデータ(以下の説明でＶＭデータと記載のものを含む)をコピーする前に、ＶＭデータを格納するための前記複数のボリュームの各々を作成することと、ボリュームにマップすることができる前記ホストシステムのＷＷＮ（ワールドワイドネーム）を有するホストシステムのグループであるホストグループに、前記作成されたボリュームの各々を取り付けることとをさらに含む。前記方法は、前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかにＶＭデータをコピーした後で、前記ホストグループから前記ボリュームの各々を切り離すことと、各ホストシステムのために、（１）前記ホストシステムのプロセッサ上に存在し、かつ仮想マシンによって利用されるコア、及び（２）前記コアを使用するあらゆる仮想マシンの名前を格納するか、又は前記コアがいずれの仮想マシンによっても使用されていない場合に一切エントリを格納しないステータスを示すホストリストから未使用又は共有のコア、のいずれかを選択することによって、仮想マシンのためにホストを予約して、前記選択されたコアにおける前記仮想マシンについての予約済み状態を挿入することにより、ターゲットコアのための専用仮想マシンのデプロイを実行することとをさらに含む。前記方法は、前記切り離し及び予約の後で、前記ホストグループに前記切り離されたボリュームの各々を取り付けることと、前記取り付けられたボリュームの各々についてＶＭファイル名を更新することと、ホストのために１つ以上の新しいボリュームを発見するために前記ストレージシステム内のディスクを再スキャンすることであって、当該１つ以上の新しいボリュームの各々は、仮想マシンがデプロイされるホストシステムのために発見されたボリュームとして発見されるように再スキャンすることと、前記発見されたボリュームに基づいて前記再スキャンされたディスクをオンライン化することと、前記オンラインディスクをマウントすることとをさらに含む。前記方法は、前記再スキャン、オンライン化及びマウントの後で、前記マウントされたディスクに基づいて仮想マシンイメージ（以下の説明でＶＭイメージと記載のものを含む）を開始することと、前記選択されたコア内の前記開始されたＶＭについての前記予約済み状態の代わりに前記ホストリストＶＭ名に挿入することによって、ホストを使用済みに設定することと、前記開始されたＶＭのために前記ボリュームの各々について前記ＶＭファイル名を更新することとをさらに含む。
【０００７】
０００７    特定の実施形態では、前記方法は、ホストグループにボリュームを取り付ける前に、前記ボリュームが既に取り付けられていないかを判断するために、取り付けられる前記ボリュームについて前記ホストグループの接続ステータスをチェックすることと、ホストグループからボリュームを切り離す前に、前記ボリュームが取り付けられているかを判断するために、切り離される前記ボリュームについて前記ホストグループの接続ステータスをチェックすることとをさらに含む。前記方法は、前記ホストグループの前記ホストシステムのＷＷＮをチェックすることによって、前記ホストグループのクラスタ構成の妥当性を確認することをさらに含む。前記方法は、監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの実行開始である場合は、前記ホストシステムのＷＷＮの数が少なくとも２つであり、かつ前記ストレージシステムのポートの数が少なくとも２つであるかを判断することと、前記判断において少なくとも２つのＷＷＮ及び少なくとも２つポートが存在しない場合、前記仮想マシンの前記デプロイの実行済み変数を格納し、かつ前記判断において少なくとも２つのＷＷＮ及び少なくとも２つのポートが存在する場合、前に実行され格納されたデプロイの実行済み変数を使用して回復操作を実行することとをさらに含む。前記方法は、監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの実行開始である場合は、ＶＭをデプロイするための利用可能なコアが存在するかを判断し、ＹＥＳの場合は、前記選択されたコア内に前記ＶＭについての予約済み状態を挿入することによって、利用可能なコアを選択すること、ＮＯの場合は、利用可能なコアを見つけることに失敗した旨のアラートを送信することとをさらに含む。
【０００８】
０００８    本発明の他の態様は、ストレージシステム及び複数のホストシステムにネットワークを介して結合されている管理サーバであって、当該ストレージシステムは複数のボリュームを有する。当該管理サーバは、プロセッサと、メモリと、プランエグゼキュータとを備え、当該プランエグゼキュータは、仮想マシンイメージファイルに対応する前記ストレージシステムに仮想マシンファイルデータのマスターであるゴールデンイメージを生成し、前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシン構成用のデータをコピーし、前記仮想マシンのアクティビティを監視することにより、仮想マシンデータをコピーした前記ボリュームのステータスを、前記管理サーバによって追跡記録するためにプランを実行するものである。そして、監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの実行開始である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記仮想マシン構成用のデータを格納するボリュームの前記ステータスがボリュームプール内にあり、かつ前記仮想マシンのデプロイの実行の前にストレージ管理ＡＰＩを介してターゲットＬＵＮ（論理ユニット番号）に取り付けられていないかをチェックすることを含む。また、監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイを実行開始する前である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記仮想マシン構成用のデータを格納するボリュームの前記ステータスが前記仮想マシンのデプロイされるホストシステムのために発見されたボリュームであるかをチェックすることを含む。さらに、監視された仮想マシンの前記アクティビティが、前記仮想マシンの格納の終了である場合の前記管理サーバによる追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用された前記仮想マシン構成用のデータを格納するボリュームの前記ステータスがターゲットＬＵＮ（論理ユニット番号）から切り離され、かつ前記ストレージ管理ＡＰＩを介してボリュームプール内にあるかをチェックすることを含む。
【０００９】
０００９    本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【００１０】
【図１】００１０    図１は、情報システムのハードウェア構成の一例を示す。
【図２】００１１    図２は、図１のアーキティチャに適用される論理構成の一例を示す。
【図３】００１２    図３は、ポート構成テーブルの一例を示す。
【図４】００１３    図４は、ＶＭ（仮想マシン）ファイルテーブルの一例を示す。
【図５】００１４    図５は、テーブル形式のターゲットホストリストの一例を示す。
【図６】００１５    図６は、アクトのプロセスを通常プロセスとして例示する流れ図の一例である。
【図７】００１６    図７は、アクトのプロセスを回復プロセスとして例示する流れ図の一例である。
【図８】００１７    図８は、ゴールデンイメージを作成するためのプランのための流れ図の一例を示す。
【図９】００１８    図９は、ＶＭを作成し、かつＶＭをデプロイするためのプランを例示する流れ図の一例を示す。
【図１０】００１９    図１０は、ＶＭ格納を実行するためのプランを例示する流れ図の一例を示す。
【図１１】００２０    図１１は、情報システムの各構成要素についてのエラー状態の操作のためのテーブルの一例を示す。
【図１２】００２１    図１２は、ＶＭ管理者がＶＭの状態への変更を管理するためのＧＵＩ（グラフィカルユーザインタフェース）を示す。
【図１３】００２２    図１３は、ＶＭ状態をステートレスからステートフルにマイグレートするためのシナリオを示す。
【図１４】００２３    図１４は、図１３に示されるようにＶＭ状態についてのステートレスからステートフルへのマイグレーションを例示する流れ図の一例を示す。
【図１５】００２４    図１５は、ＶＭ状態をステートフルからステートレスにマイグレートするためのシナリオの一例を示す。
【発明を実施するための形態】
【００１１】
００２５    以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として（但し限定ではない）示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する（以下に説明し、かつ図面で示される通り）が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ／又はブロック図において図示している場合もある。
【００１２】
００２６    さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は（必ずしもそうではないが）、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【００１３】
００２７    本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッド状態装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等（但し、これらに限定されない）のコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行され得る。
【００１４】
００２８    以下により詳細に示す本発明の例示的実施形態は、仮想マシンのデプロイ及び格納を含むデータセンターファイルシステムを管理するための装置、方法及びコンピュータプログラムを提供する。
【００１５】
００２９    図１は、情報システムのハードウェア構成の一例を示す。このシステムは、管理サーバ１１０及び少なくとも１つのホスト１３０、並びにストレージサブシステム１４０を含むパーソナルコンピュータ（ＰＣ）を備える。これらのＰＣは、ＳＡＮ（ストレージエリアネットワーク）などのネットワーク２６０を介してストレージサブシステム１４０に接続する。ＳＡＮは通常、ファイバチャネルネットワークであり、よって、ファイバチャネルスイッチ及びケーブルを含む。ＳＡＮは、ｉＳＣＳＩなどのＩＰネットワークを使用し得る。この場合、ネットワークスイッチとしてイーサネット（登録商標）ケーブル及びイーサネット（登録商標）スイッチを使用する。ＰＣ１１０、１３０及びストレージサブシステム１４０は、ＬＡＮ（ローカルエリアネットワーク）２７０によって接続される。ＬＡＮは、本実施形態ではイーサネット（登録商標）ネットワークを使用し、このイーサネット（登録商標）ネットワークは、イーサネット（登録商標）スイッチ及びケーブルを含む。
【００１６】
００３０    各ＰＣ１１０、１３０は、汎用コンピュータであり、ＣＰＵと、メモリと、ディスクとを含む。各ＰＣ１１０、１３０は、ＳＡＮ２６０に接続するためにストレージ用のホストバスアダプタ（ＨＢＡ）を備える。ＨＢＡは、ワールドワイドネーム（ＷＷＮ）形式の固有な識別子を有する。このＰＣはまた、ＬＡＮ２７０に接続するためのネットワークインタフェースカード（ＮＩＣ）を有する。ＮＩＣは、ＭＡＣアドレスを有する。
【００１７】
００３１    ストレージサブシステム１４０は、ストレージプロセッサ（ＭＰ）１６０と、ディスク１４３と、メモリ１７０と、ＳＡＮ２６０に接続するポート１８０と、サービスプロセッサ（ＳＶＰ）１５０とを有する。ポート、ＭＰ、ディスク、及びメモリは、内部バス１４２によって接続される。メモリは、本実施形態ではＮＶＲＡＭである。ポート、メモリ、ディスク、ＭＰ、ＳＶＰ、及び内部バスは、システム信頼性のために冗長であることができる。ＭＰ１６０は、ＣＰＵと、ローカルメモリと、ＮＩＣとを有する。このＮＩＣを使用して、ＭＰ１６０は、ＳＶＰ１５０と通信することができる。ＳＶＰ１５０は、内部ＬＡＮ１９０及び外部ＬＡＮ２７０のための２つのＮＩＣと、ＣＰＵと、メモリと、ディスクとを有する。
００３２    図２は、図１のアーキテクチャに適用される論理構成の一例を示す。システムは、仮想管理サーバ又は単に管理サーバ２１０と、仮想マシン（ＶＭ）実行可能なサーバ又はホスト２３０と、ストレージサブシステム２４０とを備える。管理サーバは、図１ではＰＣ１１０を使用してもよい。
【００１８】
００３３    管理サーバは、ウェブポータルサーバ（図示されていない）と、プランエグゼキュータ２１１と、ＶＭファイル状態テーブル２１２とを有する。ウェブポータルサーバは、ＶＭ管理者がＶＭを作成し、かつＶＭをデプロイするためのＧＵＩを表す。ユーザの要求に基づいて、ＯＳイメージプール管理モジュール（図示されていない）は、仮想マシンのデプロイプロセス（ＶＭデプロイプロセス）を実行する。ＶＭデプロイプロセスは、ダミーポートからボリューム（既にコピーされたイメージファイルであり、以下、これをゴールデンイメージと称する）を切り離し、ホスト上にボリュームを取り付け、ホストのＯＳ上のボリュームを発見し、次にＶＭ実行可能なハイパーバイザは、ボリューム上のＶＭを開始することを実行する。ゴールデンイメージは、ＯＳイメージプール管理モジュールのスケジュールに基づいてゴールデンイメージクリエータ（図示されていない）によって事前に生成される。プランエグゼキュータ２１１は、各アクトについて同時並行性を考慮する際にいくつかのプランの実行を手助けする。このアクトは、原子操作である。このアクトは、管理サーバ２１０上の各コアで実行する。このアクトは、プラン実行失敗の場合に回復操作のための実行済み状態を保護する。
【００１９】
００３４    ホスト２３０には、オペレーティングシステム又はＯＳ（図示されていない）と、ハイパーバイザと、ＨＡ（高可用性）ソフトウェアとがある。
【００２０】
００３５    ストレージサブシステム２４０には、構成情報としてポート構成テーブル２４３及び仮想ボリュームプール２３４がある。ストレージサブシステム２４０は、日立ダイナミックプロビジョニング（ＨＤＰ）などのシンプロビジョニング技術で実行可能な日立のユニバーサルプラットフォームＶ又は日立の仮想プラットフォームを使用してもよい。他のストレージサブシステムもまた、使用することができる。ポート構成テーブル２４３に基づいて、ストレージサブシステム２４０は、１つのポート上のダミーグループ２４１及び他のポート上のホストグループ２４２を構成する。ホストグループ２４２は、ボリュームにマップすることができるホストのＷＷＮを有するホストのグループである。ポートをいかに構成するかについては後述する。ダミーグループ２４１には、ゴールデンイメージ及びターゲットボリュームであるいくつかのボリュームがある。ホストグループには、いくつかのホストに取り付けられたボリュームがある。ゴールデンイメージからのターゲットボリュームの作成については以下で説明する。ストレージサブシステム２４０を管理するために、ＲＭ  Ｉ／Ｆ（インタフェース）などの管理ＡＰＩがある。ＡＰＩの使いやすさのために、ＸＭＬ  Ｉ／Ｆを代表する日立のデバイスマネージャなどのプロキシサーバを使用して、ＲＭＩ  Ｉ／ＦからＸＭＬ  Ｉ／Ｆへの変換が行われてもよい。
【００２１】
００３６    図示されるシステムで提供される装置において、管理サーバ２１０は、ストレージサブシステム２４０及びホスト２３０に要求を発行することによって、（Ａ）ＶＭ作成及びデプロイ、（Ｂ）ＶＭ格納、及び（Ｃ）ＶＭデプロイ操作を実行する。データの移動は、ストレージシステム２４０上で実行される。ＶＭ作成及びデプロイ操作では、ストレージシステム２４０は、ＶＭデータをゴールデンイメージから新しいボリュームにコピーし、ＶＭをデプロイするためにホストグループにボリュームを再取り付けする。ＶＭ格納操作では、ストレージシステム２４０は、ホストグループからボリュームを切り離し、そしてホストグループにボリュームを取り付ける。これらの操作の詳細については後述する（図１０を参照）。
【００２２】
００３７    図３は、ポート構成テーブル２４３の一例を示す。ポート構成テーブル２４３は、ポート番号３０１、ホストグループ番号３０２、ホストグループ番号の名前３０３、ホストワールドワイドネーム（ＷＷＮ）３０４、ＬＵＮ３０５、及びＶ−ＶＯＬ（仮想ボリューム）番号３０６の欄を有する。情報は、ストレージサブシステム２４０において管理される。ポート番号３０１で識別されるポートは、図１の物理ポート１８０に対応する。ホストグループ番号（日立製品ではホストドメイン名としても知られる）は、ホストのワールドワイドネーム（ＷＷＮ）を使用するホストのグループを作るために各ポート上にある。ホストのＷＷＮは、ホストのポート接続とＨＢＡのポート接続との間で特定するために、ホストのＨＢＡのポートによって提供される。ＬＵＮは、ホストグループ上にある。従って、各ホストグループは、いくつかのＬＵＮを有する。ＬＵＮは、ボリューム（ＶＯＬ）に接続されている。ＶＯＬ番号は、ストレージサブシステム内で固有のものである。ボリューム番号は、ポート間のパラレル性能及びフェイルオーバーのためにマルチパス構成を保持することを確保するために、異なるポートのホストグループ上のいくつかのＬＵＮによって共有される。
【００２３】
００３８    ポート上では、マイクロコードは、ホストグループ（図２のダミーグループ２４１及びホストグループ２４２）として仮想ポートグループを作成する。ダミーホストグループ２４１は、任意のホストからのアクセスを禁止するためにデータをコピーするためのものである。従って、データセンター管理ソフトウェアシステムは、ダミーホストグループ２４１上の０ｘ０００００００００００００００１などのダミーＷＷＮを割り当てる。一方、ホストグループ２４２は、そのホストからのアクセスを許可するために、対応するホストのＷＷＮを有する。ホストグループ上では、ストレージサブシステム２４０は、ＬＵＮにＶＯＬを取り付ける。クラスタ構成のために、異なるポート上のいくつかのホストグループにボリュームを割り当てることができる。例えば、ホスト１は、ポート１及びポート２に接続され、ホスト２は、ポート１及びポート２に接続される。各ポート上の各ホストグループは、ホスト１のＷＷＮ及びホスト２のＷＷＮを有する。そのため、同じＬＵＮ又は異なるＬＵＮを使用して、各ホストグループを１つのボリュームに取り付けることができる。これらのポート、ＬＵＮ、及びホストグループ２４２の使用が当技術分野で周知であるが、ダミーグループ２４１の使用は新規である。
【００２４】
００３９    図４は、ＶＭ（仮想マシン）ファイル状態テーブル２１２の一例を示す。このテーブルは、ＶＭのファイル名４０１、ボリュームの署名４０２、ステートフル又はステートレス（詳細は後述）というＶＭデプロイのタイプ／状態４０３、ゴールデンイメージフラグ４０４、ボリューム番号４０５、ボリュームのＬＵＮ４１１、ポート番号４１２、ターゲットホスト名４０６、ＶＭを実行するターゲットコア番号４０７、ＶＭ操作状態４０８、現在のステップ操作４０９、及び現在の操作についてのステータス４１０の欄を有する。
【００２５】
００４０    このテーブルは、ファイル名４０１を有するＶＭファイルの現在の状態を示す。ファイルは、ファイルについての位置のボリュームを見つけるために署名４０２と結合される。署名は、ＭＢＲフォーマットの場合はディスク署名であり、ＧＰＴ（ＧＵＩＤパーティションテーブル）パーティションフォーマットの場合は区画されたＧＵＩＤである。この署名は、ＶＭファイルを格納するために同一ボリュームを使用する。ファイルは、ＶＭ操作のために記憶能力を使用するステートフル及び単にホストのハイパーバイザ能力を用いて使用するためのものであるステートレスとしての状態４０３を有する。ファイルは、ＶＭファイルデータのマスターであるゴールデンイメージ４０４としての特別の属性を有する。ストレージサブシステム２４０におけるディスク位置を特定するために、ファイルは、ボリューム番号４０５、及びＬＵＮについてホスト及びポートにアドレスを示すための、ボリュームのＬＵＮ４１１を有する。ホストグループ番号に関して、データセンター管理ソフトウェアサーバ２１０は、ボリューム番号４０５及びポート番号４１２を使用して、及びＸＭＬ又はＲＭＩ  ＡＰＩなどのストレージＡＰＩを介して図３のポート構成テーブル２４３を使用して、ストレージサブシステム２４０においてホストグループ番号を発見することができる。
【００２６】
００４１    ファイルは、ターゲットホスト４０６のターゲットコア番号４０７上にある。ターゲットホスト４０６とは、名前又はインターネットプロトコルアドレスであり得る。データセンター管理ソフトウェアサーバの管理者が、いくつかのハイパーザイザの中から「共有」コアとして選択した場合に、コア番号４０７を共有することができる。操作ステータスとは、ＶＭ操作状態４０８である。また、ファイルは、成功又は失敗であるステータス４１０のための現在のステップ操作４０９として現在の実行ステップを示す必要がある。図４は、ファイルについてディレクトリを示さない。図４は、署名４０２によって署名されたボリューム上のファイルを特定するためにディレクトリ情報を追加してもよい。
【００２７】
００４２    さらに、いくつかのＶＭをボリュームと共有することができる。この状況では、管理サーバは、ＶＭが存在するボリュームを取り付けたり、又は切り離したりする前に、すべてのＶＭの状態が「格納済み」状態であることをチェックする。例えば、ボリュームを取り付けたり、又は切り離したりする際に、管理サーバは、ボリューム上のすべてのＶＭがＶＭ操作で「格納済み」であることをチェックする必要がある。このステップは、ＶＭデプロイ又はＶＭ格納における各取り付け又は切り離し操作のために実行されるべきである。例は、Ｓ９０８及びＳ１００６である。回復の場合には、ボリューム操作の格納済み状態並びに通常の場合を追跡記録すべきである。
【００２８】
００４３    図５は、テーブル形式のターゲットホストリストの一例を示す。ホストテーブルは、管理サーバ２１０に格納され（図２を参照）、このテーブルは、ホスト５０１、コア５０２、及びステータス５０３の欄を含む。ホスト５０１は、ホストの名前又はホストのＩＰアドレスである。コア５０２は、ホストのＣＰＵ上にある。ＣＰＵは、マルチコアプロセッサであってもよい。各コアは、ＶＭによって利用される。使用中は、取り除きファイル拡張子などのＶＭ名の名前がある。使用中でない時は、エントリはない。デプロイ又は格納の際に、状態は予約済みである。なぜならば、展開の後又は回復としての格納が失敗した場合にコアが使用されるからである。この予約の利点は、ＶＭ管理者がターゲットコアのための専用ＶＭデプロイを行うことができるということである。
【００２９】
００４４    図２で示されるように、データセンター管理ソフトウェアシステムの作業は、プランエグゼキュータ２１１を含む。プランは、一連のアクトを含む。図６は、通常プロセスとしてのアクトのプロセスを例示する流れ図の一例を示す。Ｓ６０１では、アクトは、アクトの操作を実行する。この操作は各アクトについて定義される。これについてはプランの説明で説明する（図８、図９、図１０、及び図１４を参照）。Ｓ６０２では、アクトは、実行が成功か否かを判断する。成功した場合は、プロセスはＳ６０３に進む。失敗した場合は、プロセスはＳ６０４に進む。Ｓ６０３（成功）では、アクトは、回復操作の場合に使用するローカルアクトインスタンスに実行済み変数を格納する。Ｓ６０４（失敗）では、アクトは、プランに、前に実行されたアクトの回復操作を実行するように通知する。
【００３０】
００４５    図７は、回復プロセスとしてのアクトのプロセスを例示する流れ図の一例を示す。Ｓ７０１では、アクトは、ローカルインスタンスで実行済み変数を回復する。Ｓ７０２では、アクトは、回復された変数を使用してその回復操作を実行する。回復操作は、プランの説明で説明する（図８、図９、図１０、及び図１４を参照）。
【００３１】
００４６    アクトを使用して、管理サーバ２１０は、プランを実行する。データセンター管理ソフトウェアの特徴を可能にする３つの大きなプランがある。これらの特徴は、プラン実行ステップを用いて説明する。それらは、ゴールデンイメージを作成し（図８）、ＶＭを作成及びデプロイし（図９）、ＶＭを格納する（図１０）ためのプランを含む。
【００３２】
００４７    図８は、ゴールデンイメージを作成するプランについての流れ図の一例を示す。ボックスは、図６のＳ６０１で実行されるアクトの実行（インデックスで示されるように２００１）を示す。実行の際にはターゲット装置又はソフトウェア（２００２）及び変数（２００３）がある。回復のためには、図７のＳ７０１で実行されるアクトの回復実行（２００４）及び図６のＳ６０３に格納される回復変数（２００５）もある。このアクトに基づいて、プランは、以下のアクトを実行する。図８、図９、図１０、及び図１４では、通常操作については実線、回復操作については破線を使用する。
【００３３】
００４８    Ｓ８０１では、プランは、ボリューム作成アクトを実行する。このアクトは、ストレージプール番号を指定することによってボリューム作成操作を実行する。操作が成功した場合は、ストレージは、データを格納するためにボリューム番号を返す。番号は、ローカルインスタンスに格納される。アクトが失敗した場合は（例えば、プール能力がない場合）、プランは実行しない。次のステップの失敗に基づく回復の場合は、このアクトは、格納された変数に基づいてボリュームを削除することを実行する。
【００３４】
００４９    Ｓ８０２は、プランは、ホストグループにＶＯＬを取り付けるアクトを実行する。このアクトは、ボリューム番号、ＬＵＮ、ホストグループ（ＨＧ）番号、及びポート番号を指定することによってホストグループにボリュームを取り付けるためにストレージ２４０を実行する。ストレージは、成功又は失敗である結果を戻す。また、ＶＯＬ取り付けが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが意図しないＨＧに既に取り付けられていないか、又はＸＭＬ  ＡＰＩを使用していないかをチェックすることを実行してもよい。ＸＭＬ  ＡＰＩは、ＨＧ（ＳＣＳＩのＬＵＮとボリュームの間のパスという）とボリュームの関係を示すために、ボリューム番号についてのＨＧ情報を提供する。成功した場合は、アクトは、アクトのローカルインスタンスに実行済み変数を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、実行されたアクトの回復（Ｓ８０１）を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてホストグループからのＶＯＬの切り離しを実行する。また、ＶＯＬ切り離しが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが既にＨＧに取り付けられているか、又はＸＭＬ  ＡＰＩを使用していないかを確認することを実行してもよい。
【００３５】
００５０    Ｓ８０３では、プランは、ＤＢ（データベース）上にレコードを作成をするアクトを実行する。このアクトは、ＶＯＬ番号、ＬＵＮ、及びポート番号を有する空のＶＭのレコードを作成するために、データセンター管理ソフトウェアサーバ２１０でＤＢを実行する。実行が成功した場合は、アクトは、それらのローカルインスタンスに実行済み変数を格納する。実行が失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいてＳ８０２から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合は、このアクトは、格納された変数に基づくレコードを削除することを実行する。
【００３６】
００５１    Ｓ８０４では、プランは、ディスク再スキャンアクトを実行する。このアクトは、ホストのディスクとして新しいボリュームを発見するためにディスク再スキャン操作を行うためにホスト２３０を実行する。発見に関して、ホスト２３０は、ＳＣＳＩ問い合わせのページ８３又はＬＵＮを通してボリューム番号（一般にデバイス識別という）を使用してもよい。実行が成功した場合は、アクトは何も格納しない。ホスト上の新しいディスクとしてボリュームを見つけることに失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ８０３から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合は、このアクトは何も実行しない。
【００３７】
００５２    Ｓ８０５では、プランは、ディスクオンライン化アクトを実行する。このアクトは、発見されたボリュームに基づいてディスクをオンラインにするためにホスト２３０を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ８０４から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてディスク番号を指定することによってディスクをオンラインにすることを実行する。
【００３８】
００５３    Ｓ８０６では、プランは、フォーマットディスクアクトを実行する。このアクトは、オンラインディスクに基づいてフォーマットディスクにホスト２３０を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ８０５から開始までの実行されたアクトの回復を実行する。プランは、実行された順番に基づいて、Ｓ８０５から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは何も実行しない。
【００３９】
００５４    Ｓ８０７では、プランは、ディスクマウントアクトを実行する。このアクトは、フォーマット済みディスクに基づいてディスクをマウントするためにホスト２３０を実行する。実行が成功した場合は、アクトは、ディスク番号及びマウントポイントを格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ８０６から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてマウントポイントを指定することによってディスクをアンマウントすることを実行する。
【００４０】
００５５    Ｓ８０８では、プランは、ＶＭコピーアクトを実行する。このアクトは、マウントされたディスクにＶＭイメージをコピーするためにホスト２３０を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は（例えば、閾値ストレージシステムに基づいたプール２３４容量の不足のために）、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ８０７から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイル名を指定することによってＶＭファイルを削除することを実行する。
【００４１】
００５６    Ｓ８０９では、プランは、ＤＢ上のレコードを更新するアクトを実行する。このアクトは、ストレージのＶＯＬ番号についてＶＭファイル名を更新するためにＤＢを実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ８０８から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新する。
【００４２】
００５７    Ｓ８１０では、プランは、ディスクアンマウントアクトを実行する。このアクトは、マウントポインを指定することによってディスクをアンマウントするためにホスト２３０を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ８０９から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてディスク番号及びマウントポイントを指定してディスクをマウントすることを実行する。
【００４３】
００５８    Ｓ８１１では、プランは、署名初期化アクトを実行する。このアクトは、ディスク番号を実行することによってオンラインディスクのために署名を初期化するためにホスト２３０を実行する。実行が成功した場合は、アクトは何も格納しない。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ８１０から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは何も実行しない。
【００４４】
００５９    Ｓ８１２では、プランは、ディスクオフライン化アクトを実行する。このアクトは、ディスク番号を指定することによってディスクをオフラインにするためにホスト２３０を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトは、プランに失敗を通知する。プランは、実行された順番に基づいて、Ｓ８１１から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合は、このアクトは、格納された変数に基づいてディスク番号を指定することによってディスクをオンライン化することを実行する。
【００４５】
００６０    Ｓ８１３では、プランは、ＤＢ上のレコードを更新するアクトを実行する。このアクトは、ストレージのＶＯＬ番号について署名を更新するためにＤＢを実行する。実行が成功した場合は、アクトは何も格納しない。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ８１２から開始までの実行されたアクトの回復を実行する。
【００４６】
００６１    このプランには２つの利点がある。第一に、ＶＭ管理者は、ストレージ管理者及びサーバ管理者と交渉することなしに記憶能力を用いてゴールデンイメージを作成することができる。第二に、複数の管理者はその操作を覚える必要がなく、従って、データセンターの複雑なシステムでの欠損操作における人的過誤は減る。
【００４７】
００６２    図９は、ＶＭを作成し、かつＶＭをデプロイするためのプランを示す流れ図の一例を示す。このプランでは、ＶＭ管理者は、ストレージのコピー能力を使用してＶＭイメージを作成し、かつストレージのボリュームマッピング能力（ホストグループのためのＶＯＬ取り付け及び切り離し）を使用してＶＭをデプロイすることができる。その利点は、ＶＭ管理者が、ストレージ管理者及びサーバ管理者なしにボリュームの作成およびボリュームのデプロイを実行することができることである。アクトのインデックス及び利用は、図８と同じである。
【００４８】
００６３    Ｓ９０１では、プランは、ボリューム作成アクトを実行する。このアクトは、ストレージプール番号を指定することによってボリューム作成操作を実行する。操作が成功した場合は、ストレージは、データを格納するためにボリューム番号を返す。ボリューム番号は、ローカルインスタンスに格納される。アクトが失敗した場合は（例えば、ストレージシステムの閾値に基づいたプール容量の欠如のために）、プランは実行しない。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてボリュームを削除することを実行する。
【００４９】
００６４    Ｓ９０２では、プランは、ホストグループにＶＯＬを取り付けるアクトを実行する。このアクトは、ボリューム番号、ＬＵＮ、ホストグループ（ＨＧ）番号、及びポート番号を指定することによってホストグループ２４２にボリュームを取り付けるためにストレージ２４０を実行する。ストレージは、成功又は失敗である結果を戻す。また、ＶＯＬ取り付けが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが意図しないＨＧに既に取り付けられていないか、又はＸＭＬ  ＡＰＩを使用していないかをチェックすることを実行してもよい。成功した場合は、アクトは、アクトのローカルインスタンスに実行済み変数を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、実行されたアクトの回復（Ｓ９０１）を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてホストグループからＶＯＬを切り離すことを実行する。また、ＶＯＬ切り離しが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが既にＨＧに既に取り付けられているか、又はＸＭＬ  ＡＰＩを使用していないかチェックすることを実行してもよい。
【００５０】
００６５    取り付け失敗状態は、図１１に示されている。ＬＵＮが既に取り付けられている場合、データセンター管理ソフトウェアは、ＡＰＩを介してストレージエラーを検出する。ターゲットホストグループは、図３のポート構成テーブル２４３にリストされたダミーホストグループである。ダミーグループに取り付ける理由は、ＯＳが新しいボリュームを発見した時に、毎回ホストのＯＳがボリュームのために新しい署名を割り当て、次に、ストレージが独立して以下のコピーステップに従うことによって署名を変更するからである。この状況では、署名の変更がストレージアレイでのみ行われるので、ＯＳは署名を混同し、正しく作用しない。
【００５１】
００６６    Ｓ９０３では、プランは、ＤＢ上でレコードを作成するアクトを実行する。このアクトは、ストレージサブシステム上の現在のボリュームアドレスを追跡記録するために、ＶＯＬ番号、ＬＵＮ、及びポート番号を有する空のＶＭのレコードを作成するために、データセンター管理ソフトウェアサーバ２１０でＤＢを実行する。実行が成功した場合は、アクトは、そのローカルインスタンスに実行済み変数を格納する。実行が失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ９０２から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてレコードを削除することを実行する。
【００５２】
００６７    Ｓ９０４では、プランは、ゴールデンイメージから作成済みボリュームにボリュームをコピーするアクトを実行する。このアクトは、作成され（図８を参照）、図４でゴールデンイメージとマークされたゴールデンイメージボリュームから、Ｓ９０１の作成済みボリュームにボリュームをコピーするためにストレージサブシステム２４０を実行する。実行が成功した場合は、アクトは、そのローカルインスタンスで実行済み変数を格納する。実行が失敗した場合（例えば、プール閾値に基づいたプール容量の不足のために、又はビットマップを作成するためのメモリがないために）、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ９０３から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてレコードを削除することを実行する。
【００５３】
００６８    Ｓ９０５では、プランは、ホストグループからＶＯＬを切り離すアクトを実行する。このアクトは、ボリューム番号、ＬＵＮ、ホストグループ（ＨＧ）番号、及びポート番号を指定することによって、ホストグループ２４２からボリュームを切り離すためにストレージ２４０を実行する。ストレージは、成功又は失敗である結果を戻す。また、ＶＯＬ切り離しが実行される前に、プランは、切り離しアクトを保証するために、ボリュームが既にＨＧに取り付けられているか、又はＸＭＬ  ＡＰＩを使用していないかをチェックすることを実行してもよい。ＸＭＬ  ＡＰＩは、ＨＧ（ＳＣＳＩのＬＵＮとボリュームの間のパスという）とボリュームの間の関係を示すために、ボリューム番号についてのＨＧ情報を提供する。それが成功又は失敗した場合は、アクトは、変数を格納しない。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、実行されたアクトの回復（Ｓ９０３）を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてホストグループからＶＯＬを切り離すことを実行する。切り離し失敗の状態は、図１１に示されている。ＬＵＮがすでに切り離されている場合は、データセンター管理ソフトウェアは、ＡＰＩを介してストレージエラーを検出する。また、ＶＯＬ切り離しが実行される前に、プランは、切り離しアクトを保証するために、ボリュームが既にＨＧに取り付けられているか、又はＸＭＬ  ＡＰＩを使用していないか確認することを実行してもよい。
【００５４】
００６９    Ｓ９０６では、プランは、ホスト予約アクトを実行する。このアクトは、図５のホストリストから未使用又は共有のコアを選択するためにＤＢを実行する。実行が成功した場合は、アクトは、ステータス５０３上にＶＭ名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ９０３から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、コア上のホストの予約をクリアするためにレコードを初期化するように更新することを実行する。コアの選択は、ユーザの選択に基づく。ユーザは、共有のコア又は専用のコアを選択することができる。ステートフルの場合は、データセンター管理ソフトウェアは、専用のコアを選択する。ステートレスの場合は、データセンター管理ソフトウェアは、共有のコアを選択する。
【００５５】
００７０    Ｓ９０７では、プランは、ホストグループにおけるクラスタのＷＷＮの妥当性を確認するアクトを実行する。このアクトは、リストにおけるＷＷＮの存在をチェックするために図３のポート構成テーブル及び仮想管理サーバを使用して、ポート上のＷＷＮのリストを取得するためにストレージ２４０を実行する。クラスタ構成を検証するため、ホストのＷＷＮであるＷＷＮの番号又はまさにホストのＷＷＮアドレスをチェックしてもよい。ＷＷＮは、ＯＳの管理インタフェースを使用して各ホストについて集めることができる。それが成功又は失敗のいずれかである場合、アクトは、変数を格納しない。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順序に基づいて、実行されたアクトの回復（Ｓ９０６）を実行する。次のステップの失敗に基づいた回復に基づいた回復の場合、このアクトは何も実行しない。
【００５６】
００７１    Ｓ９０８では、プランは、ホストグループにＶＯＬを取り付けるアクトに実行する。このアクトは、ボリューム番号、ＬＵＮ、ホストグループ（ＨＧ）番号、及びポート番号を指定することによってホストグループ２４２にボリュームを取り付けるためにストレージ２４０を実行する。ストレージは、成功又は失敗である結果を戻す。また、ＶＯＬ取り付けが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが、既に意図しないＨＧに取り付けられていないか、又はＸＭＬ  ＡＰＩを使用していないかをチェックすることを実行してもよい。成功した場合は、アクトは、アクトのローカルインスタンスに実行済み変数を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、実行されたアクトの回復（Ｓ９０６）を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてホストグループからＶＯＬを切り離すことを実行する。また、ＶＯＬ切り離しが実行される前に、プランは、切り離しアクトを保証するために、ボリュームが既にＨＧに取り付けられているか、又はＸＭＬ  ＡＰＩを使用していないかをチェックすることを実行してもよい。
【００５７】
００７２    Ｓ９０９では、プランは、ＤＢ上のレコードを更新するアクトを実行する。このアクトは、ストレージのＶＯＬ番号についてＶＭファイル名を更新するためにＤＢを実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ９０８から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新することを実行する。
【００５８】
００７３    Ｓ９１０では、プランは、ディスク再スキャンアクトを実行する。このアクトは、ホストのディスクとしての新しいボリュームを発見するためにディスク再スキャン操作を行うためにホスト２３０を実行する。発見に関しては、ホストは、検証するためにＳＣＳＩ問合せのページ８３又はＬＵＮを介してボリューム番号を使用してよい。実行が成功した場合は、アクトは何も格納しない。ホスト上の新しいディスクとしてのボリューム（間違ったボリューム番号も含み得る）を見つけることに失敗した場合、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ９０９から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは何も実行しない。
【００５９】
００７４    Ｓ９１１では、プランは、ディスクオンライン化アクトを実行する。このアクトは、発見されたボリュームに基づいてディスクをオンラインにするためにホスト２３０を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ９１０から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合は、このアクトは、格納された変数に基づいてディスク番号を指定することによってディスクをオフラインにすることを実行する。ディスクオンライン化の失敗の状態は、図１１に示されている。ディスクが既にオンラインである場合は、データセンター管理ソフトウェアは、ＯＳのＩ／Ｆを介してステータスを検出する。
【００６０】
００７５    Ｓ９１２では、プランは、ディスクマウントアクトを実行する。このアクトは、オンラインディスクに基づいてディスクをマウントするためにホスト２３０を実行する。実行が成功した場合は、アクトは、ディスク番号及びマウントポイントを格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ９１１から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてマウントポイントを指定することによってディスクのアンマウントを実行する。マウントの失敗の状態は、図１１に示されている。マウントポイントが既に使用されている場合は、データセンター管理ソフトウェアは、ＯＳの管理インタフェースを介してステータスを検出する。
【００６１】
００７６    Ｓ９１３では、プランは、ＶＭ開始アクトを実行する。このアクトは、マウントされたディスクに対してＶＭイメージを開始するために、ホスト２３０を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は（例えば、ＶＭイメージは存在しないか、又はＶＭイメージが破損している）、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ９１２から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイル名を入力してＶＭファイルを削除することを実行する。
【００６２】
００７７    Ｓ９１４では、プランは、ホストを使用済みとして設定するアクトを実行する。このアクトは、図５のホストリストの名前での予約済み状態の代わりに特定のコアについてＶＭ名を挿入するためにＤＢを実行する。実行が成功した場合は、アクトは、ステータス５０３上にＶＭの名前を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ９１３から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納されたホスト名を入力してレコードを更新することを実行する。
【００６３】
００７８    Ｓ９１５では、プランは、ＤＢ上のレコードを更新するアクトを実行する。このアクトは、ストレージのＶＯＬ番号についてＶＭファイル名を更新するためにＤＢを実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ９１４から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新することを実行する。
【００６４】
００７９    プラン上の回復の利点は、図８に関連して上述した第二の利点、即ち、複数の管理者はその操作を覚える必要がなく、従って、データセンターの複雑なシステムにおける欠損操作の人的過誤が減るという利点を含む。二つの追加の利点がある。第一に、ＶＭ管理者は、ホストグループのためにボリューム取り付け及びボリューム切り離しアクトの妥当性を確認することによってオフラインボリュームを管理することができる。第二に、ＶＭ管理者は、ストレージ管理者及びサーバ管理者なしにホストグループ上のＷＷＮを使用してホストクラスタ構成の妥当性を確認することによって、オフラインボリュームを管理することができる。
【００６５】
００８０    図１０は、ＶＭ格納を実行するためのプランを例示する流れ図の一例を示す。このプランでは、ＶＭ管理者は、ＶＭデプロイプランの後に、ストレージのコピー能力を用いてＶＭイメージを作成でき、かつストレージのボリュームマッピング能力（ホストグループのためにＶＯＬを切り離す）を用いてＶＭを格納できる。
【００６６】
００８１    Ｓ１００１では、プランは、ＶＭ停止アクトを実行する。このアクトは、ＶＭデプロイプロセスで開始されたＶＭへのＶＭイメージを停止するためにホスト２３０を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、エラーによってこのプランの実行を終了する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイル名を指定することによってＶＭを再開することを実行する。
【００６７】
００８２    Ｓ１００２では、プランは、ＤＢ上のレコードを更新するアクトを実行する。このアクトは、ストレージのＶＯＬ番号についてＶＭファイル名を更新するためにＤＢを実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１００１から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数を入力してレコードを更新することを実行する。
【００６８】
００８３    Ｓ１００３では、プランは、「ディスクアンマウント」アクトを実行する。このアクトは、マウントポイントを指定することによってディスクをアンマウントするためにホスト２３０を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は（例えば、既にアンマウントされている場合）、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１００２から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてディスク番号及びマウントポイントを指定することによってディスクをマウントすることを実行する。アンマウントの失敗の状態は、図１１に示されている。ディスクが既にアンマウントされている場合は、データセンター管理ソフトウェアは、ＯＳの管理インタフェースを介してステータスを検出する。
【００６９】
００８４    Ｓ１００４では、プランは、ディスクオフライン化アクトを実行する。このアクトは、ディスク番号を指定することによってディスクをオフラインにするためにホスト２３０を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１００３から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてディスク番号を指定することによってディスクをオンラインにすることを実行する。ディスクオフライン化の失敗の状態は、図１１に示されている。ディスクが存在する場合は、データセンター管理ソフトウェアは、ＯＳの管理インタフェースを介してステータスを検出する。
【００７０】
００８５    Ｓ１００５では、プランは、ＤＢ上のレコードを更新するアクトを実行する。このアクトは、ＶＭファイル名のディスクについてオフラインとしてディスクステータスを更新するためにＤＢを実行する。実行が成功した場合は、アクトは、ディスク番号に基づいてオンラインの状態を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、破線で示される回復の順番に基づいて、Ｓ１００３から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてＶＭファイル名を入力してレコードを更新することを実行する。
【００７１】
００８６    Ｓ１００６では、プランは、ホストグループからＶＯＬを切り離すアクトを実行する。このアクトは、ボリューム番号、ＬＵＮ、ホストグループ（ＨＧ）番号、及びポート番号を指定することによってホストグループ２４２からボリュームを切り離すためにストレージ２４０を実行する。ストレージは、成功又は失敗である結果を戻す。また、ＶＯＬ切り離しが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが既にＨＧに取り付けられているか又はＸＭＬ  ＡＰＩを使用していないかをチェックすることを実行してもよい。実行が成功した場合は、アクトは、ＶＯＬ番号、ＬＵＮ、ＨＧ番号、及びポート番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、破線で示される回復の順番に基づいて、Ｓ１００８から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてボリューム番号、ＬＵＮ、ホストグループ（ＨＧ）番号、及びポート番号を指定することによってボリュームを取り付けることを実行する。切り離し失敗の状態は、図１１に示されている。ＬＵＮが既に切り離されている場合は、データセンター管理ソフトウェアは、ＡＰＩを介してストレージエラーを検出する。
【００７２】
００８７    Ｓ１００７では、プランは、ＤＢ上のレコードを更新するアクトを実行する。このアクトは、ＶＯＬ番号４０５、ＬＵＮ４１１、ＨＧ番号４０６、及びポート番号４１２が記載されている図４において、ＬＵＮ、ＨＧ番号、ＶＯＬ用ポート番号を、切り離しＬＵＮ番号「−」、ＨＧ番号「−」及びポート番号「−」として更新するために、ＤＢを実行する。実行が成功した場合は、アクトは、ＶＯＬ番号、ＬＵＮ、ＨＧ番号、及びポート番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、破線で示される回復の順番に基づいて、Ｓ１００４から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてＶＯＬ番号４０５、ＬＵＮ４１１、ＨＧ番号４０６、及びポート番号４１２を入力してレコードを更新することを実行する。
【００７３】
００８８    Ｓ１００８では、プランは、ディスク再スキャンアクトを実行する。このアクトは、ホストのディスクとしてＳ１００６において切り離されたボリュームに対してディスク再スキャン操作を行うためにホスト２３０を実行する。実行が成功した場合は、アクトは何も格納しない。ホスト上の新しいディスクとしてのボリュームを見つけることに失敗した場合、アクトはプランに失敗を報告する。プランは、破線で示される回復の順番に基づいて、Ｓ１００７から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、ディスクを再スキャン及び発見することを実行する。
【００７４】
００８９    Ｓ１００９では、プランは、ホスト解放アクトを実行する。このアクトは、図５のホストリストのＶＭ名を除去するためにＤＢを実行する。実行が成功又は失敗のいずれかである場合は、アクトは何も格納しない。失敗した場合は、アクトはプランに失敗を報告する。プランは、回復の順番に基づいて、Ｓ１００８から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新することを実行する。
【００７５】
００９０    本プランには、アクトの回復の利点と共に二つの利点がある。第一に、ＶＭ管理者は、ストレージ管理者及びサーバ管理者と交渉することなしにストレージ上にＶＭ切り離しボリュームを格納することができる。第二に、Ｓ１００６があるため、ＶＭ管理者は、ストレージ管理者がいたとしても、ボリューム切り離しを良好に管理できる。
【００７６】
００９１    ＶＭのデプロイだけの場合、データセンター管理ソフトウェアは、図１０のＳ９０６からＳ９１５までのプランとして実行する。回復操作は、図１０のＳ９０６〜Ｓ９１５に書かれているのと同じである。
【００７７】
００９２    ＶＭ管理者は、ＶＭの状態を、ステートレスからステートフルに、又はステートフルからステートレスに変更したいかもしれない。これについては以下で説明する。
【００７８】
００９３    図１２は、ＶＭ管理者がＶＭの状態への変更を管理するためのＧＵＩ（グラフィカルユーザインタフェース）を示す。ＧＵＩは、ＶＭ名１２０１、操作ステータス１２０２、詳細なステータス１２０７、現在の状態１２０３、選択可能なプルダウンリストを示すボタン１２０４、変更を破棄するためのキャンセルボタン１２０５、及び変更を実行するためのＯＫボタン１２０６を含む。ＶＭ名１２０１は、ＤＢ（図４）上の拡張子のないファイル名４０１を示す。操作ステータス１２０２は、ＤＢのＶＭ操作状態４０８である。現在の状態１２０３は、ＤＢの状態４０３である。ＶＭ管理者は、選択可能プルダウンリストボタン１２０４を用いて、各ＶＭについて次の状態を選択し、そして変更を実行するためにＯＫボタン１２０６を押す。ＶＭ管理者が変更を破棄したい場合は、変更を破棄するためにキャンセルボタン１２０５を押してよい。また、詳細なステータス１２０７では、管理者は、ストレージ関連の操作などの管理ソフトウェアの現在の詳細なステータスを見る事ができる。この情報は、図４の現在のステップ操作４０９から来る。
【００７９】
００９４    図１３は、ＶＭ状態をステートレスからステートフルにマイグレートするためにシナリオを示す。ＧＵＩを介したユーザの要求に基づいて、データセンター管理ソフトウェアサーバ２１０は、ストレージ２４０に対して、ボリュームを作成すること及びクラスタの場合にはホスト（単数又は複数）２３０についてボリュームを取り付けることを要求する。データセンター管理ソフトウェアサーバ２１０は、ターゲットのホスト（ボリュームが取り付けられる対象）に対して、ボリューム内のファイルシステム（即ち、ＯＳのディスク）をフォーマットし、これをローカルファイルシステムにマウントし、ソースホストからＶＭイメージをコピーし、かつ仮想マシン上でＶＭを開始することを要求する。
【００８０】
００９５    図１４は、図１３に示されるようなＶＭ状態についてステートレスからステートフルへのマイグレーションプランを示す流れ図の一例を示す。
【００８１】
００９６    Ｓ１４０１では、プランは、ＶＭ停止アクトを実行する。このアクトは、ＶＭデプロイプロセスにおいて開始されたＶＭに対してＶＭイメージを停止するために、ホスト２３０を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、本プランを終了し、本プランを実行するためにエラーを返す。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイル名を指定することによってＶＭを再開することを実行する。
【００８２】
００９７    Ｓ１４０２では、プランは、ボリューム作成アクトを実行する。このアクトは、ストレージプール番号を指定することによってボリューム作成操作を実行する。操作が成功した場合、ストレージは、データを格納するためにボリューム番号を返す。この番号はローカルインスタンスに格納される。失敗した場合は、アクトはプランに失敗を通知する。プランは、実行された順番に基づいて、実行されたアクトの回復（Ｓ１４０１）を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてボリュームを削除することを実行する。ボリュームの作成では、データセンター管理ソフトウェアは、ＶＭファイルサイズや、ファイルシステムメタデータ及び構成ツールファイルのようなその他の関連サイズに基づいて、ボリュームサイズを特定し得る。
【００８３】
００９８    Ｓ１４０３では、プランは、ホストグループにＶＯＬを取り付けるアクトを実行する。このアクトは、ボリューム番号、ＬＵＮ、ホストグループ（ＨＧ）番号、及びポート番号を指定することによってホストグループ２４２にボリュームを取り付けるためにストレージ２４０を実行する。ストレージは、成功又は失敗である結果を戻す。成功した場合は、アクトは、アクトのローカルインスタンスに実行済み変数を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、実行されたアクトの回復（Ｓ１４０２）を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてホストグループからＶＯＬを切り離すことを実行する。取り付け失敗の状態は、図１１に示されている。ＬＵＮが既に取り付けられている場合は、データセンター管理ソフトウェアは、ＡＰＩを介してストレージエラーを検出する。
【００８４】
００９９    Ｓ１４０４では、プランは、ＤＢ上でレコードを作成するアクトを実行する。このアクトは、ＶＯＬ番号、ＬＵＮ、及びポート番号を有する空のＶＭのレコードを作成するためにデータセンター管理ソフトウェアサーバ２１０内のＤＢを実行する。実行が成功した場合は、アクトは、そのローカルインスタンスに実行済み変数を格納する。実行が失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４０３から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてレコードを削除することを実行する。
【００８５】
０１００    Ｓ１４０５では、プランは、ホスト予約アクトを実行する。このアクトは、図５のホストリストから未使用又は共有のコアを選択するためのＤＢを実行する。実行が成功した場合は、アクトは、ステータス５０３上にＶＭの名前を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４０４から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新することを実行する。コアの選択は、ユーザの選択に基づいている。このケースでは、ステートフルとして専用のコアを選択する。
【００８６】
０１０１    Ｓ１４０６では、プランは、ディスク再スキャンアクトを実行する。このアクトは、新しいボリュームをホストのディスクとして発見するためにディスク再スキャン操作を実行するためにホスト２３０を実行する。発見に関しては、ホストは、検証するためにＳＣＳＩ問合せのページ８３又はＬＵＮを介してボリューム番号を使用してよい。実行が成功した場合は、アクトは何も格納しない。ホスト上の新しいディスクとしてのボリュームを見つけることに失敗した場合、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４０５から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは何も実行しない。
【００８７】
０１０２    Ｓ１４０７では、プランは、ディスクオンライン化アクトを実行する。このアクトは、発見済みボリュームに基づいてディスクをオンライン化するためにホスト２３０を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４０６から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づいた回復では、このアクトは、格納された変数に基づいてディスク番号を指定することによってディスクをオフラインにすることを実行する。ディスクオンライン化の失敗の状態は、図１１に示されている。ディスクがすでにオンラインである場合は、データセンター管理ソフトウェアは、ＯＳのＩ／Ｆを介してステータスを検出する。
【００８８】
０１０３    Ｓ１４０８では、プランは、ディスクフォーマットアクトを実行する。このアクトは、オンラインディスクに基づいてディスクをフォーマットするためにホスト２３０を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４０７から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは何も実行しない。
【００８９】
０１０４    Ｓ１４０９では、プランは、ディスクマウントアクトを実行する。このアクトは、オンラインディスクに基づいてディスクをマウントするためにホスト２３０を実行する。実行が成功した場合は、アクトは、ディスク番号及びマウントポイントを格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４０８から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてマウントポイントを指定することによって、ディスクのアンマウントを実行する。マウントの失敗の状態は、図１１に示されている。マウントポイントがすでに使用されている場合は、データセンター管理ソフトウェアは、ＯＳのＩ／Ｆを介してステータスを検出する。
【００９０】
０１０５    Ｓ１４１０では、プランは、ＶＭファイルコピーアクトを実行する。このアクトは、ＶＭイメージファイルが特定されたファイル名及びおそらくソースホストからのパスを移動するために、ターゲットホストを実行する。実行が成功した場合は、アクトは、そのローカルインスタンスに実行済み変数を格納する。実行が失敗した場合（例えば、ファイルの削除のせいで）、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４０９から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイルをソースホストに移動することを実行する。
【００９１】
０１０６    Ｓ１４１１では、プランは、ＤＢ上のレコードを更新するアクトを実行する。このアクトは、図４の状態４０３におけるステートフルとしてＶＭファイル名を更新するために、ＤＢを実行する。実行が成功した場合は、アクトは、ＶＭについてステートレスとして状態を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４１０から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、ステートレスを指定することによってレコードを更新することを実行する。
【００９２】
０１０７    Ｓ１４１２では、プランは、ＶＭ開始アクトを実行する。このアクトは、マウントされたディスクに対してＶＭイメージを開始するためにホスト２３０を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は（例えば、破損又は削除されたファイルのために）、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４１１から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイル名を入力してＶＭファイルの停止を実行する。
【００９３】
０１０８    Ｓ１４１３では、プランは、ホストを使用済みとして設定するアクトを実行する。このアクトは、図５のホストリストの名前での予約済み状態の代わりに特定のコアについてＶＭ名を挿入するためにＤＢを実行する。実行が成功した場合は、アクトは、図５のステータス５０３上にＶＭの名前を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４１２から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納されたホスト名を入力してレコードを更新することを実行する。
【００９４】
０１０９    Ｓ１４１４では、プランは、ＤＢ上のレコードを更新するアクトを実行する。このアクトは、ＶＭイメージが特定されたファイル名についてＶＭステータスを更新するために、ＤＢを実行する。実行が成功した場合は、アクトは、ファイル名及び実行中というステータスを格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、Ｓ１４１３から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新することを実行する。
【００９５】
０１１０    図１５は、ＶＭ状態をステートフルからステートレスにマイグレートするためのシナリオの一例を示す。ＧＵＩを介したユーザの要求に基づいて、データセンター管理ソフトウェアサーバ２１０は、ホスト２３０に対して、ＶＭを停止しかつＶＭを再び開始した後で、ＶＭファイルをターゲットホストに移動するように要求する。このプロセスは、一般的なＶＭマイグレーションプロセスと同じであり、マイグレーションの後でボリュームを切り離して削除するようにストレージに要求し続ける。
【００９６】
０１１１    上記のシステムは、ボリュームの識別子としてファイルを使用して、ボリュームのステータス、特にストレージサブシステム上で切り離されたボリュームのステータスを確保する。また、システムは、デプロイでコア予約能力を用いる数個のＶＭによる連続を防ぐ。さらにシステムは、ＳＡＮベースのＶＭデプロイと、マイグレーション能力を用いた通常のＶＭデプロイとの間の変更の有用性を改善する。
【００９７】
０１１２    当然のことながら、図１及び図２に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のＩ／Ｏ装置（例えば、ＣＤ及びＤＶＤドライブ、フロッピー（登録商標）ディスクドライブ、ハードドライブ等）も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、無線ネットワーク、ストレージエリアネットワーク等を含む。
【００９８】
０１１３    説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図、構成図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【００９９】
０１１４    当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置（ハードウェア）を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体（ソフトウェア）上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び／又は暗号化形式で命令を媒体に記憶することができる。
【０１００】
０１１５    上記により、本発明が、仮想マシンのデプロイ及び格納を伴うデータセンターファイルシステムを管理するための方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
【図１】
0005666421.tif 000002
【図２】
0005666421.tif 000003
【図３】
0005666421.tif 000004
【図４】
0005666421.tif 000005
【図５】
0005666421.tif 000006
【図６】
0005666421.tif 000007
【図７】
0005666421.tif 000008
【図８】
0005666421.tif 000009
【図９】
0005666421.tif 000010
【図１０】
0005666421.tif 000011
【図１１】
0005666421.tif 000012
【図１２】
0005666421.tif 000013
【図１３】
0005666421.tif 000014
【図１４】
0005666421.tif 000015
【図１５】
0005666421.tif 000016