説明

データセンターファイルシステムの方法及び装置

【課題】仮想マシンのデプロイ及び格納を伴うデータセンターファイルシステムを管理するための方法を提供する。
【解決手段】サーバシステムは、複数のボリュームを有するストレージシステムと、複数のホストシステムと、ネットワークを介してストレージシステム及びホストシステムに結合された管理サーバとを含む。サーバシステムを管理する方法は、仮想マシンイメージファイルに対応するストレージシステムにゴールデンイメージを生成することと、仮想マシンデータをゴールデンイメージからストレージシステム内の複数のボリュームのいくつかにコピーすることと、仮想マシンのアクティビティを監視することによって、仮想マシンデータをコピーしたボリュームのステータスを管理サーバによって追跡記録することとを含む。

【発明の詳細な説明】
【技術分野】
【0001】
0001 本発明は概してストレージシステムに関し、特に、仮想マシンのデプロイ及び格納を含むデータセンターファイルシステムの管理に関する。
【背景技術】
【0002】
0002 データセンターには、ストレージサブシステムからいくつかのホストに仮想マシンをデプロイするために、仮想マシンのイメージを格納する何千ものボリュームが存在する。特に、ストレージサブシステムから開始するデプロイを考える場合、困難さはさらに増す。これは、以下の理由による。第一に、ボリュームがストレージ内にあり、ホストに取り付けられていないために、ホストは、ボリュームのデプロイの終了までボリュームのファイルを読み取ることができない。第二に、仮想マシン(VM)は、マルチパスソフトウェアを介してボリュームにアクセスし得る。このソフトウェアは、同じボリュームを提供する、ストレージによって提供される複数のLUNの先頭に自身の論理ユニット番号(LUN)を有する。従って、ストレージによって提供されるLUNは、マルチパスソフトウェアのLUNによって隠される。その結果、ホストが、期待されるボリュームを見つけることは困難である。
【0003】
0003 米国特許第7,143,146号は、ファイルの位置及び状態を追跡記録するための分散ファイルシステムを開示する。しかし、これはボリュームのステータスをカバーしない。米国特許第7,096,325号は、LUNにボリュームを取り付け、LUNからボリュームを切り離す方法を開示する。しかし、上記特許は、ボリューム上にあるファイルによって特定されるボリュームのステータスについては記載していない。米国特許第7,555,644号は、ユーティリティ計算環境におけるオペレーティングシステムイメージプロビジョニングのシステム及び方法を対象とし、OSイメージがコピーされたボリューム用のプールを用いて、計算サーバの起動時のOSイメージのプロ日ジョニングの技術を開示している。当該特許の図1は、プールを管理する手順を示す。しかし、この特許は、ボリュームがすでにシステム上に取り付けられていることを想定しており、ボリュームの状態は考慮していない。
【発明の概要】
【0004】
0004 本発明の例示的な実施形態は、データセンター管理サーバ内のホスト及びストレージシステムに格納された仮想マシンイメージのボリュームステータスの妥当性を確認する能力を提供する。データセンター管理サーバはデータベースを有する。データベースは、仮想マシンのイメージファイル(例えばVHDファイル)についてのレコードを有する。このレコードは、ホスト及びストレージ上に識別子及びステータスを有する。識別子は、ファイルデータにアクセスするための各実行済み操作を検証するために使用される。キー識別子は、パーティションGUIDである。他の関連する識別子は、ストレージサブシステム及びLUNで管理されるボリューム番号である。これらの変数を使用して、データセンター管理サーバは、ステータスを決定する。ホスト上のステータスは、パーティションされたGUID、ディスクパートツール上で確認することができるLUN、又はウィンドウズ(登録商標)管理計測による論理デバイス番号(LDEV)などのボリューム番号などのボリューム識別子に基づく「成功」又は「失敗」である。ストレージ上のボリュームについてのボリュームステータスは、LUNに取り付けられるか又は切り離される。このステータスは、ストレージサブシステムのAPIによって成功又はエラー状態として確認することができる。これらのキーステータスを使用して、仮想マシン管理サーバは、仮想マシンのデプロイ及び格納におけるこれらのステータスを検証する。
【0005】
0005 本発明の一態様は、複数のボリュームを有するストレージシステムと、複数のホストシステムと、当該ストレージシステム及び当該ホストシステムにネットワークを介して結合されている管理サーバとを含むサーバシステムを管理する方法を対象とする。この方法は、仮想マシンイメージファイルに対応する前記ストレージシステムにゴールデンイメージを生成することと、前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシンデータをコピーすることと、前記仮想マシンのアクティビティを監視することにより、仮想マシンデータをコピーした前記ボリュームのステータスを、前記管理サーバによって追跡記録することとを含む。監視された仮想マシンの前記アクティビティが、前記仮想マシン(VM)のデプロイの開始である場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記VMデータを格納するボリュームの前記ステータスが、ボリュームプール内にあり、かつ前記仮想マシンのデプロイの実行の前にストレージ管理APIを介してターゲットLUN(論理ユニット番号)に取り付けられていないかをチェックすることを含む。監視された仮想マシンの前記アクティビティが、前記仮想マシンを開始する前の前記仮想マシンのデプロイである場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記VMデータを格納するボリュームの前記ステータスが、前記仮想マシンがデプロイされるホストシステムのために取り付けられたボリュームとして「取り付け」られているかをチェックすることを含む。監視された仮想マシンの前記アクティビティが、前記仮想マシンの格納の終了である場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用された前記VMデータを格納するボリュームの前記ステータスが、ターゲットLUN(論理ユニット番号)から切り離され、かつストレージ管理APIを介してボリュームプール内にあるかをチェックする。
【0006】
0006 いくつかの実施形態では、前記ゴールデンイメージは、前記ストレージシステムの管理者又は前記管理サーバの管理者からの入力なしに、VM管理者からの入力に従って前記ストレージシステムの記憶能力を使用して生成される。前記方法は、前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかにVMデータをコピーする前に、VMデータを格納するための前記複数のボリュームの各々を作成することと、ボリュームにマップすることができる前記ホストシステムのWWN(ワールドワイドネーム)を有するホストシステムのグループであるホストグループに、前記作成されたボリュームの各々を取り付けることとをさらに含む。前記方法は、前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかにVMデータをコピーした後で、前記ホストグループから前記ボリュームの各々を切り離すことと、各ホストシステムのために、(1)前記ホストシステムのプロセッサ上に存在し、かつVMによって利用されるコア、及び(2)前記コアを使用するあらゆる仮想マシンの名前を格納するか、又は前記コアがいずれの仮想マシンによっても使用されていない場合には、一切エントリを格納しないステータスを示すホストリストから未使用又は共有のコアを選択することによって、VMのためにホストを予約して、前記選択されたコアにおける前記VMについての予約済み状態を挿入することにより、ターゲットコアのための専用VMデプロイを行うこととをさらに含む。前記方法は、前記切り離し及び予約の後で、前記ホストグループに前記切り離されたボリュームの各々を取り付けることと、前記取り付けられたボリュームの各々についてVMファイル名を更新することと、ホストのために1つ以上の新しいボリュームを発見するために前記ストレージシステム内のディスクを再スキャンすることであって、当該1つ以上の新しいボリュームの各々は、仮想マシンがデプロイされるホストシステムのために発見されたボリュームとして「発見される」ように再スキャンすることと、前記発見されたボリュームに基づいて前記再スキャンされたディスクをオンラインにすることと、前記オンラインディスクをマウントすることとをさらに含む。前記方法は、前記再スキャン、オンライン化、及びマウントの後で、前記マウントされたディスクに基づいてVMイメージを開始することと、前記選択されたコア内の前記開始されたVMについての前記予約済み状態の代わりに前記ホストリストVM名に挿入することによって、ホストを使用済みに設定することと、前記開始されたVMのために前記ボリュームの各々について前記VMファイル名を更新することとをさらに含む。
【0007】
0007 特定の実施形態では、前記方法は、ホストグループにボリュームを取り付ける前に、前記ボリュームが既に取り付けられていないかを判断するために、取り付けられる前記ボリュームについて前記ホストグループの接続ステータスをチェックすることと、ホストグループからボリュームを切り離す前に、前記ボリュームが取り付けられているかを判断するために、切り離される前記ボリュームについて前記ホストグループの接続ステータスをチェックすることとをさらに含む。前記方法は、前記ホストグループの前記ホストシステムのWWNをチェックすることによって、前記ホストグループのクラスタ構成の妥当性を確認することをさらに含む。前記方法は、監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの開始である場合は、前記ホストシステムのWWNの数が少なくとも2つであるかを判断し、かつ前記ストレージシステムのポートの数が少なくとも2つであるかを判断することと、前記判断において少なくとも2つのWWN及び少なくとも2つポートが存在しない場合、前記仮想マシンの前記デプロイの操作済み変数を格納し、かつ当該格納された操作済み変数を使用して回復を実行することとをさらに含む。前記方法は、監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの開始である場合は、VMをデプロイするための利用可能なコアが存在するかを判断し、YESの場合は、前記選択されたコア内に前記VMについての予約済み状態を挿入することによって、利用可能なコアを選択すること、NOの場合は、利用可能なコアを見つけることに失敗した旨のアラートを送信することとをさらに含む。
【0008】
0008 本発明の他の態様は、ストレージシステム及び複数のホストシステムにネットワークを介して結合されている管理サーバを対象とし、当該ストレージシステムは複数のボリュームを有する。当該管理サーバは、プロセッサと、メモリと、プランエグゼキュータとを備え、当該プランエグゼキュータは、仮想マシンイメージファイルに対応する前記ストレージシステムにゴールデンイメージを生成し、前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシンデータをコピーし、前記仮想マシンのアクティビティを監視することにより、仮想マシンデータをコピーした前記ボリュームのステータスを、前記管理サーバによって追跡記録するために、プランを実行するものである。監視された仮想マシンの前記アクティビティが、前記仮想マシン(VM)のデプロイの開始である場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記VMデータを格納するボリュームの前記ステータスが、ボリュームプール内にあり、かつ前記仮想マシンのデプロイの実行の前にストレージ管理APIを介してターゲットLUN(論理ユニット番号)に取り付けられていないかをチェックすることを含む。監視された仮想マシンの前記アクティビティが、前記仮想マシンを開始する前の前記仮想マシンのデプロイである場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記VMデータを格納するボリュームの前記ステータスが、前記仮想マシンがデプロイされるホストシステムのために発見されたボリュームとして「発見される」かをチェックすることを含む。監視された仮想マシンの前記アクティビティが、前記仮想マシンの格納の終了である場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用された前記VMデータを格納するボリュームの前記ステータスが、ターゲットLUN(論理ユニット番号)から切り離され、かつストレージ管理APIを介してボリュームプール内にあるかをチェックすることを含む。
【0009】
0009 本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【0010】
【図1】0010 図1は、情報システムのハードウェア構成の一例を示す。
【図2】0011 図2は、図1のアーキティチャに適用される論理構成の一例を示す。
【図3】0012 図3は、ポート構成テーブルの一例を示す。
【図4】0013 図4は、VM(仮想マシン)ファイルテーブルの一例を示す。
【図5】0014 図5は、テーブル形式のターゲットホストリストの一例を示す。
【図6】0015 図6は、アクトのプロセスを通常プロセスとして例示する流れ図の一例である。
【図7】0016 図7は、アクトのプロセスを回復プロセスとして例示する流れ図の一例である。
【図8】0017 図8は、ゴールデンイメージを作成するためのプランのための流れ図の一例を示す。
【図9】0018 図9は、VMを作成し、かつVMをデプロイするためのプランを例示する流れ図の一例を示す。
【図10】0019 図10は、VM格納を実行するためのプランを例示する流れ図の一例を示す。
【図11】0020 図11は、情報システムの各構成要素についてのエラー状態の操作のためのテーブルの一例を示す。
【図12】0021 図12は、VM管理者がVMの状態への変更を管理するためのGUI(グラフィカルユーザインタフェース)を示す。
【図13】0022 図13は、VM状態をステートレスからステートフルにマイグレートするためのシナリオを示す。
【図14】0023 図14は、図13に示されるようにVM状態についてのステートレスからステートフルへのマイグレーションを例示する流れ図の一例を示す。
【図15】0024 図15は、VM状態をステートフルからステートレスにマイグレートするためのシナリオの一例を示す。
【発明を実施するための形態】
【0011】
0025 以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として(但し限定ではない)示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する(以下に説明し、かつ図面で示される通り)が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ/又はブロック図において図示している場合もある。
【0012】
0026 さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は(必ずしもそうではないが)、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【0013】
0027 本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置(ROM)、ランダムアクセスメモリ(RAM)、ソリッド状態装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等(但し、これらに限定されない)のコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置(CPU)、プロセッサ、又はコントローラによって実行され得る。
【0014】
0028 以下により詳細に示す本発明の例示的実施形態は、仮想マシンのデプロイ及び格納を含むデータセンターファイルシステムを管理するための装置、方法及びコンピュータプログラムを提供する。
【0015】
0029 図1は、情報システムのハードウェア構成の一例を示す。このシステムは、管理サーバ110及び少なくとも1つのホスト130、並びにストレージサブシステム140を含むパーソナルコンピュータ(PC)を備える。これらのPCは、SAN(ストレージエリアネットワーク)などのネットワーク260を介してストレージサブシステム140に接続する。SANは通常、ファイバチャネルネットワークであり、よって、ファイバチャネルスイッチ及びケーブルを含む。SANは、iSCSIなどのIPネットワークを使用し得る。この場合、ネットワークスイッチとしてイーサネット(登録商標)ケーブル及びイーサネット(登録商標)スイッチを使用する。PC110、130及びストレージサブシステム140は、LAN(ローカルエリアネットワーク)270によって接続される。LANは、本実施形態ではイーサネット(登録商標)ネットワークを使用し、このイーサネット(登録商標)ネットワークは、イーサネット(登録商標)スイッチ及びケーブルを含む。
【0016】
0030 各PC110、130は、汎用コンピュータであり、CPUと、メモリと、ディスクとを含む。各PC110、130は、SAN260に接続するためにストレージ用のホストバスアダプタ(HBA)を備える。HBAは、ワールドワイドネーム(WWN)形式の固有な識別子を有する。このPCはまた、LAN270に接続するためのネットワークインタフェースカード(NIC)を有する。NICは、MACアドレスを有する。
【0017】
0031 ストレージサブシステム140は、ストレージプロセッサ(MP)160と、ディスク143と、メモリ170と、SAN260に接続するポート180と、サービスプロセッサ(SVP)150とを有する。ポート、MP、ディスク、及びメモリは、内部バス142によって接続される。メモリは、本実施形態ではNVRAMである。ポート、メモリ、ディスク、MP、SVP、及び内部バスは、システム信頼性のために冗長であることができる。MP160は、CPUと、ローカルメモリと、NICとを有する。このNICを使用して、MP160は、SVP150と通信することができる。SVP150は、内部LAN190及び外部LAN270のための2つのNICと、CPUと、メモリ170と、ディスク143とを有する。
0032 図2は、図1のアーキテクチャに適用される論理構成の一例を示す。システムは、仮想管理サーバ又は単に管理サーバ210と、仮想マシン(VM)実行可能なサーバ又はホスト230と、ストレージサブシステム240とを備える。管理サーバは、図1ではPC110を使用してもよい。
【0018】
0033 管理サーバは、ウェブポータルサーバ(図示されていない)と、プランエグゼキュータ211と、VMファイル状態テーブル212とを有する。ウェブポータルサーバは、VM管理者がVMを作成し、かつVMをデプロイするためのGUIを表す。ユーザの要求に基づいて、OSイメージプール管理モジュール(図示されていない)は、仮想マシンデプロイプロセス(VMデプロイプロセス)を実行する。VMデプロイプロセスは、ダミーポートからボリューム(既にコピーされたゴールデンイメージである)を切り離し、ホスト上にボリュームを取り付け、ホストのOS上のボリュームを発見し、次にVM実行可能なハイパーバイザは、ボリューム上のVMを開始することを実行する。ゴールデンイメージは、OSイメージプール管理モジュールのスケジュールに基づいてゴールデンイメージクリエータ(図示されていない)によって事前に作成される。プランエグゼキュータ211は、各アクトについて同時並行性を考慮する際にいくつかのプランの実行を手助けする。このアクトは、原子操作である。このアクトは、管理サーバ210上の各コアで実行する。このアクトは、プラン実行失敗の場合に回復操作のための実行済み状態を保護する。
【0019】
0034 ホスト230には、オペレーティングシステム又はOS(図示されていない)と、ハイパーバイザと、HA(高可用性)ソフトウェアとがある。
【0020】
0035 ストレージサブシステム240には、構成情報としてポート構成テーブル243及び仮想ボリュームプール234がある。ストレージサブシステム240は、日立ダイナミックプロビジョニング(HDP)などのシンプロビジョニング技術で実行可能な日立のユニバーサルプラットフォームV又は日立の仮想プラットフォームを使用してもよい。他のストレージサブシステムもまた、使用することができる。ポート構成243に基づいて、ストレージサブシステム240は、1つのポート上のダミーグループ及び他のポート上のホストグループを構成する。ホストグループは、ボリュームにマップすることができるホストのWWNを有するホストのグループである。ポートをいかに構成するかについては後述する。ダミーグループには、ゴールデンイメージ及びターゲットボリュームであるいくつかのボリュームがある。ホストグループには、いくつかのホストに取り付けられたボリュームがある。ゴールデンイメージからのターゲットボリュームの作成については以下で説明する。ストレージサブシステム240を管理するために、RM I/F(インタフェース)などの管理APIがある。APIの使いやすさのために、XML I/Fを代表する日立のデバイスマネージャなどのプロキシサーバを使用して、RMI I/FからXML I/Fへの変換が行われてもよい。
【0021】
0036 図示されるシステムで提供される装置において、管理サーバ210は、ストレージサブシステム240及びホスト230に要求を発行することによって、(A)VM作成及びデプロイ、(B)VM格納、及び(C)VMデプロイ操作を実行する。データの移動は、ストレージシステム240上で実行される。VM作成及びデプロイ操作では、ストレージシステム240は、VMデータをゴールデンイメージから新しいボリュームにコピーし、VMをデプロイするためにホストグループにボリュームを再取り付けする。VM格納操作では、ストレージシステム240は、ホストグループからボリュームを切り離し、そしてホストグループにボリュームを取り付ける。これらの操作の詳細については後述する(図10を参照)。
【0022】
0037 図3は、ポート構成テーブル243の一例を示す。ポート構成テーブル242は、ポート番号301、ホストグループ番号302、ホストグループ番号303の名前、ホストワールドワイドネーム(WWN)304、LUN305、及びV−VOL(仮想ボリューム)番号306の欄を有する。情報は、ストレージサブシステム240において管理される。ポート番号301で識別されるポートは、図1の物理ポート180に対応する。ホストグループ番号(日立製品ではホストドメイン名としても知られる)は、ホストのワールドワイドネーム(WWN)を使用するホストのグループを作るために各ポート上にある。ホストのWWNは、ホストのポート接続とHBAのポート接続との間で特定するために、ホストのHBAのポートによって提供される。LUNは、ホストグループ上にある。従って、各ホストグループは、いくつかのLUNを有する。LUNは、ボリューム(VOL)に接続されている。VOL番号は、ストレージサブシステム内で固有のものである。ボリューム番号は、ポート間のパラレル性能及びフェイルオーバーのためにマルチパス構成を保持することを確保するために、異なるポートのホストグループ上のいくつかのLUNによって共有される。
【0023】
0038 ポート上では、マイクロコードは、ホストグループ(図2のダミーグループ241及びホストグループ242)として仮想ポートグループを作成する。ダミーホストグループ241は、任意のホストからのアクセスを禁止するためにデータをコピーするためのものである。従って、データセンター管理ソフトウェアシステムは、ダミーホストグループ241上の0x0000000000000001などのダミーWWNを割り当てる。一方、ホストグループ242は、そのホスト242からのアクセスを許可するために、対応するホストのWWNを有する。ホストグループ上では、ストレージサブシステム240は、LUNにVOLを取り付ける。クラスタ構成のために、異なるポート上のいくつかのホストグループにボリュームを割り当てることができる。例えば、ホスト1は、ポート1及びポート2に接続され、ホスト2は、ポート1及びポート2に接続される。各ポート上の各ホストグループは、ホスト1のWWN及びホスト2のWWNを有する。そのため、同じLUN又は異なるLUNを使用して、各ホストグループを1つのボリュームに取り付けることができる。これらのポート、LUN、及びホストグループ242の使用が当技術分野で周知であるが、ダミーホストグループ241の使用は新規である。
【0024】
0039 図4は、VM(仮想マシン)ファイルテーブル212の一例を示す。このテーブルは、VMのファイル名401、ボリュームの署名402、ステートフル又はステートレス(詳細は後述)というVMデプロイのタイプ/状態403、ゴールデンイメージフラグ404、ボリューム番号405、ボリュームのLUN411、ターゲットホスト名406、VMを実行するターゲットコア番号407、VM操作状態408、現在のステップ操作409、及び現在の操作についてのステータス410の欄を有する。
【0025】
0040 このテーブルは、ファイル名401を有するVMファイルの現在の状態を示す。ファイルは、ファイルについての位置のボリュームを見つけるために署名402と結合される。署名は、MBRフォーマットの場合はディスク署名であり、GPT(GUIDパーティションテーブル)パーティションフォーマットの場合は区画されたGUIDである。この署名は、VMファイルを格納するために同一ボリュームを使用する。ファイルは、VM操作のために記憶能力を使用するステートフル及び単にホストのハイパーバイザ能力を用いて使用するためのものであるステートレスとしての状態403を有する。ファイルは、VMファイルデータのマスターであるゴールデンイメージ404としての特別の属性を有する。ストレージサブシステム240におけるディスク位置を特定するために、ファイルは、ボリューム番号405、及びLUNについてホスト及びポートにアドレスを示すための、ボリュームのLUN411を有する。ホストグループ番号に関して、データセンター管理ソフトウェアサーバ210は、ボリューム番号405及びポート番号412を使用して、及びXML又はRMI APIなどのストレージAPIを介して図3のポート構成テーブル243を使用して、ストレージサブシステム240においてホストグループ番号を発見することができる。
【0026】
0041 ファイルは、ターゲットホスト406のターゲットコア番号407上にある。ターゲットホスト406とは、名前又はインターネットプロトコルアドレスであり得る。データセンター管理ソフトウェアサーバの管理者が、いくつかのハイパーザイザの中から「共有」コアとして選択した場合に、コア番号407を共有することができる。操作ステータスとは、VM操作状態408である。また、ファイルは、成功又は失敗であるステータス410のための現在のステップ操作409として現在の実行ステップを示す必要がある。図4は、ファイルについてディレクトリを示さない。図4は、署名402によって署名されたボリューム上のファイルを特定するためにディレクトリ情報を追加してもよい。
【0027】
0042 さらに、いくつかのVMをボリュームと共有することができる。この状況では、管理サーバは、VMが存在するボリュームを取り付けたり、又は切り離したりする前に、すべてのVMの状態が「格納済み」状態であることをチェックする。例えば、ボリュームを取り付けたり、又は切り離したりする際に、管理サーバは、ボリューム上のすべてのVMがVM操作で「格納済み」であることをチェックする必要がある。このステップは、VMデプロイ又はVM格納における各取り付け又は切り離し操作のために実行されるべきである。例は、S908及びS1006である。回復の場合には、ボリューム操作の格納済み状態並びに通常の場合を追跡記録すべきである。
【0028】
0043 図5は、テーブル形式のターゲットホストリストの一例を示す。ホストテーブルは、管理サーバ210に格納され(図2を参照)、このテーブルは、ホスト501、コア502、及びステータス503の欄を含む。ホスト501は、ホストの名前又はホストのIPアドレスである。コア502は、ホストのCPU上にある。CPUは、マルチコアプロセッサであってもよい。各コアは、VMによって利用される。使用中は、取り除きファイル拡張子などのVM名の名前がある。使用中でない時は、エントリはない。デプロイ又は格納の際に、状態は予約済みである。なぜならば、展開の後又は回復としての格納が失敗した場合にコアが使用されるからである。この予約の利点は、VM管理者がターゲットコアのための専用VMデプロイを行うことができるということである。
【0029】
0044 図2で示されるように、データセンター管理ソフトウェアシステムの作業は、プランエグゼキュータ211を含む。プランは、一連のアクトを含む。図6は、通常プロセスとしてのアクトのプロセスを例示する流れ図の一例を示す。S601では、アクトは、アクトの操作を実行する。この操作は各アクトについて定義される。これについてはプランの説明で説明する(図8、図9、図10、及び図14を参照)。S602では、アクトは、実行が成功か否かを判断する。成功した場合は、プロセスはS603に進む。失敗した場合は、プロセスはS604に進む。S603(成功)では、アクトは、回復操作の場合に使用するローカルアクトインスタンスに実行済み変数を格納する。S604(失敗)では、アクトは、プランに、前に実行されたアクトで取り消し操作を実行するように通知する。
【0030】
0045 図7は、回復プロセスとしてのアクトのプロセスを例示する流れ図の一例を示す。S701では、アクトは、ローカルインスタンスで実行済み変数を回復する。S702では、アクトは、回復された変数を使用してその回復操作を実行する。回復操作は、プランの説明で説明する(図8、図9、図10、及び図14を参照)。
【0031】
0046 アクトを使用して、管理サーバ210は、プランを実行する。データセンター管理ソフトウェアの特徴を可能にする3つの大きなプランがある。これらの特徴は、プラン実行ステップを用いて説明する。それらは、ゴールデンイメージを作成し(図8)、VMを作成及びデプロイし(図9)、VMを格納する(図10)ためのプランを含む。
【0032】
0047 図8は、ゴールデンイメージを作成するプランについての流れ図の一例を示す。ボックスは、図6のS601で実行されるアクトの実行(インデックスで示されるように2001)を示す。実行の際にはターゲット装置又はソフトウェア(2002)及び変数(2003)がある。回復のためには、図7のS701で実行されるアクトの回復実行(2004)及び図6のS603に格納される回復変数(2005)もある。このアクトに基づいて、プランは、以下のアクトを実行する。図8、図9、図10、及び図14では、通常操作については実線、回復操作については破線を使用する。
【0033】
0048 S801では、プランは、ボリューム作成アクトを実行する。このアクトは、ストレージプール番号を指定することによってボリューム作成操作を実行する。操作が成功した場合は、ストレージは、データを格納するためにボリューム番号を返す。番号は、ローカルインスタンスに格納される。アクトが失敗した場合は(例えば、プール能力がない場合)、プランは実行しない。次のステップの失敗に基づく回復の場合は、このアクトは、格納された変数に基づいてボリュームを削除することを実行する。
【0034】
0049 S802は、プランは、ホストグループにVOLを取り付けるアクトを実行する。このアクトは、ボリューム番号、LUN、ホストグループ(HG)番号、及びポート番号を指定することによってホストグループにボリュームを取り付けるためにストレージ240を実行する。ストレージは、成功又は失敗である結果を戻す。また、VOL取り付けが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが意図しないHGに既に取り付けられていないか、又はXML APIを使用していないかをチェックすることを実行してもよい。XML APIは、HG(SCSIのLUNとボリュームの間のパスという)とボリュームの関係を示すために、ボリューム番号についてのHG情報を提供する。成功した場合は、アクトは、アクトのローカルインスタンスに実行済み変数を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、実行されたアクトの回復(S801)を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてホストグループからのVOLの切り離しを実行する。また、VOL切り離しが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが既にHGに取り付けられているか、又はXML APIを使用していないかを確認することを実行してもよい。
【0035】
0050 S803では、プランは、DB(データベース)上にレコードを作成をするアクトを実行する。このアクトは、VOL番号、LUN、及びポート番号を有する空のVMのレコードを作成するために、データセンター管理ソフトウェアサーバ210でDBを実行する。実行が成功した場合は、アクトは、それらのローカルインスタンスに実行済み変数を格納する。実行が失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいてS802から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合は、このアクトは、格納された変数に基づくレコードを削除することを実行する。
【0036】
0051 S804では、プランは、ディスク再スキャンアクトを実行する。このアクトは、ホストのディスクとして新しいボリュームを発見するためにディスク再スキャン操作を行うためにホスト230を実行する。発見に関して、ホスト230は、SCSI問い合わせのページ83又はLUNを通してボリューム番号(一般にデバイス識別という)を使用してもよい。実行が成功した場合は、アクトは何も格納しない。ホスト上の新しいディスクとしてボリュームを見つけることに失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S803から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合は、このアクトは何も実行しない。
【0037】
0052 S805では、プランは、ディスクオンライン化アクトを実行する。このアクトは、発見されたボリュームに基づいてディスクをオンラインにするためにホスト230を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S804から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてディスク番号を指定することによってディスクをオンラインにすることを実行する。
【0038】
0053 S806では、プランは、フォーマットディスクアクトを実行する。このアクトは、オンラインディスクに基づいてフォーマットディスクにホスト230を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S805から開始までの実行されたアクトの回復を実行する。プランは、実行された順番に基づいて、S805から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは何も実行しない。
【0039】
0054 S807では、プランは、ディスクマウントアクトを実行する。このアクトは、フォーマット済みディスクに基づいてディスクをマウントするためにホスト230を実行する。実行が成功した場合は、アクトは、ディスク番号及びマウントポイントを格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S806から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてマウントポイントを指定することによってディスクをアンマウントすることを実行する。
【0040】
0055 S808では、プランは、VMコピーアクトを実行する。このアクトは、マウントされたディスクにVMイメージをコピーするためにホスト230を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は(例えば、閾値ストレージシステムに基づいたプール234容量の不足のために)、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S807から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイル名を指定することによってVMファイルを削除することを実行する。
【0041】
0056 S809では、プランは、DB上のレコードを更新するアクトを実行する。このアクトは、ストレージのVOL番号についてVMファイル名を更新するためにDBを実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S808から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新する。
【0042】
0057 S810では、プランは、ディスクアンマウントアクトを実行する。このアクトは、マウントポインを指定することによってディスクをアンマウントするためにホスト230を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S809から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてディスク番号及びマウントポイントを指定してディスクをマウントすることを実行する。
【0043】
0058 S811では、プランは、署名初期化アクトを実行する。このアクトは、ディスク番号を実行することによってオンラインディスクのために署名を初期化するためにホスト230を実行する。実行が成功した場合は、アクトは何も格納しない。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S810から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは何も実行しない。
【0044】
0059 S812では、プランは、ディスクオフライン化アクトを実行する。このアクトは、ディスク番号を指定することによってディスクをオフラインにするためにホスト230を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトは、プランに失敗を通知する。プランは、実行された順番に基づいて、S811から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合は、このアクトは、格納された変数に基づいてディスク番号を指定することによってディスクをオンライン化することを実行する。
【0045】
0060 S813では、プランは、DB上のレコードを更新するアクトを実行する。このアクトは、ストレージのVOL番号について署名を更新するためにDBを実行する。実行が成功した場合は、アクトは何も格納しない。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S812から開始までの実行されたアクトの回復を実行する。
【0046】
0061 このプランには2つの利点がある。第一に、VM管理者は、ストレージ管理者及びサーバ管理者と交渉することなしに記憶能力を用いてゴールデンイメージを作成することができる。第二に、複数の管理者はその操作を覚える必要がなく、従って、データセンターの複雑なシステムでの欠損操作における人的過誤は減る。
【0047】
0062 図9は、VMを作成し、かつVMをデプロイするためのプランを示す流れ図の一例を示す。このプランでは、VM管理者は、ストレージのコピー能力を使用してVMイメージを作成し、かつストレージのボリュームマッピング能力(ホストグループのためのVOL取り付け及び切り離し)を使用してVMをデプロイすることができる。その利点は、VM管理者が、ストレージ管理者及びサーバ管理者なしにボリュームの作成およびボリュームのデプロイを実行することができることである。アクトのインデックス及び利用は、図8と同じである。
【0048】
0063 S901では、プランは、ボリューム作成アクトを実行する。このアクトは、ストレージプール番号を指定することによってボリューム作成操作を実行する。操作が成功した場合は、ストレージは、データを格納するためにボリューム番号を返す。ボリューム番号は、ローカルインスタンスに格納される。アクトが失敗した場合は(例えば、ストレージシステムの閾値に基づいたプール容量の欠如のために)、プランは実行しない。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてボリュームを削除することを実行する。
【0049】
0064 S902では、プランは、ホストグループにVOLを取り付けるアクトを実行する。このアクトは、ボリューム番号、LUN、ホストグループ(HG)番号、及びポート番号を指定することによってホストグループ242にボリュームを取り付けるためにストレージ240を実行する。ストレージは、成功又は失敗である結果を戻す。また、VOL取り付けが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが意図しないHGに既に取り付けられていないか、又はXML APIを使用していないかをチェックすることを実行してもよい。成功した場合は、アクトは、アクトのローカルインスタンスに実行済み変数を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、実行されたアクトの回復(S901)を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてホストグループからVOLを切り離すことを実行する。また、VOL切り離しが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが既にHGに既に取り付けられているか、又はXML APIを使用していないかチェックすることを実行してもよい。
【0050】
0065 取り付け失敗状態は、図11に示されている。LUNが既に取り付けられている場合、データセンター管理ソフトウェアは、APIを介してストレージエラーを検出する。ターゲットホストグループは、図3のポート構成テーブル243にリストされたダミーホストグループである。ダミーグループに取り付ける理由は、OSが新しいボリュームを発見した時に、毎回ホストのOSがボリュームのために新しい署名を割り当て、次に、ストレージが独立して以下のコピーステップに従うことによって署名を変更するからである。この状況では、署名の変更がストレージアレイでのみ行われるので、OSは署名を混同し、正しく作用しない。
【0051】
0066 S903では、プランは、DB上でレコードを作成するアクトを実行する。このアクトは、ストレージサブシステム上の現在のボリュームアドレスを追跡記録するために、VOL番号、LUN、及びポート番号を有する空のVMのレコードを作成するために、データセンター管理ソフトウェアサーバ210でDBを実行する。実行が成功した場合は、アクトは、そのローカルインスタンスに実行済み変数を格納する。実行が失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S902から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてレコードを削除することを実行する。
【0052】
0067 S904では、プランは、ゴールデンイメージから作成済みボリュームにボリュームをコピーするアクトを実行する。このアクトは、作成され(図8を参照)、図4でゴールデンイメージとマークされたゴールデンイメージボリュームから、S901の作成済みボリュームにボリュームをコピーするためにストレージサブシステム240を実行する。実行が成功した場合は、アクトは、そのローカルインスタンスで実行済み変数を格納する。実行が失敗した場合(例えば、プール閾値に基づいたプール容量の不足のために、又はビットマップを作成するためのメモリがないために)、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S903から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてレコードを削除することを実行する。
【0053】
0068 S905では、プランは、ホストグループからVOLを切り離すアクトを実行する。このアクトは、ボリューム番号、LUN、ホストグループ(HG)番号、及びポート番号を指定することによって、ホストグループ242からボリュームを切り離すためにストレージ240を実行する。ストレージは、成功又は失敗である結果を戻す。また、VOL切り離しが実行される前に、プランは、切り離しアクトを保証するために、ボリュームが既にHGに取り付けられているか、又はXML APIを使用していないかをチェックすることを実行してもよい。XML APIは、HG(SCSIのLUNとボリュームの間のパスという)とボリュームの間の関係を示すために、ボリューム番号についてのHG情報を提供する。それが成功又は失敗した場合は、アクトは、変数を格納しない。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、実行されたアクトの回復(S903)を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてホストグループからVOLを切り離すことを実行する。切り離し失敗の状態は、図11に示されている。LUNがすでに切り離されている場合は、データセンター管理ソフトウェアは、APIを介してストレージエラーを検出する。また、VOL切り離しが実行される前に、プランは、切り離しアクトを保証するために、ボリュームが既にHGに取り付けられているか、又はXML APIを使用していないか確認することを実行してもよい。
【0054】
0069 S906では、プランは、ホスト予約アクトを実行する。このアクトは、図5のホストリストから未使用又は共有のコアを選択するためにDBを実行する。実行が成功した場合は、アクトは、ステータス503上にVM名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S903から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、コア上のホストの予約をクリアするためにレコードを初期化するように更新することを実行する。コアの選択は、ユーザの選択に基づく。ユーザは、共有のコア又は専用のコアを選択することができる。ステートフルの場合は、データセンター管理ソフトウェアは、専用のコアを選択する。ステートレスの場合は、データセンター管理ソフトウェアは、共有のコアを選択する。
【0055】
0070 S907では、プランは、ホストグループにおけるクラスタのWWNの妥当性を確認するアクトを実行する。このアクトは、リストにおけるWWNの存在をチェックするために図3のポート構成テーブル及び仮想管理サーバを使用して、ポート上のWWNのリストを取得するためにストレージ240を実行する。クラスタ構成を検証するため、ホストのWWNであるWWNの番号又はまさにホストのWWNアドレスをチェックしてもよい。WWNは、OSの管理インタフェースを使用して各ホストについて集めることができる。それが成功又は失敗のいずれかである場合、アクトは、変数を格納しない。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順序に基づいて、実行されたアクトの回復(S906)を実行する。次のステップの失敗に基づいた回復に基づいた回復の場合、このアクトは何も実行しない。
【0056】
0071 S908では、プランは、ホストグループにVOLを取り付けるアクトに実行する。このアクトは、ボリューム番号、LUN、ホストグループ(HG)番号、及びポート番号を指定することによってホストグループ242にボリュームを取り付けるためにストレージ240を実行する。ストレージは、成功又は失敗である結果を戻す。また、VOL取り付けが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが、既に意図しないHGに取り付けられていないか、又はXML APIを使用していないかをチェックすることを実行してもよい。成功した場合は、アクトは、アクトのローカルインスタンスに実行済み変数を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、実行されたアクトの回復(S906)を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてホストグループからVOLを切り離すことを実行する。また、VOL切り離しが実行される前に、プランは、切り離しアクトを保証するために、ボリュームが既にHGに取り付けられているか、又はXML APIを使用していないかをチェックすることを実行してもよい。
【0057】
0072 S909では、プランは、DB上のレコードを更新するアクトを実行する。このアクトは、ストレージのVOL番号についてVMファイル名を更新するためにDBを実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S908から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新することを実行する。
【0058】
0073 S910では、プランは、ディスク再スキャンアクトを実行する。このアクトは、ホストのディスクとしての新しいボリュームを発見するためにディスク再スキャン操作を行うためにホスト230を実行する。発見に関しては、ホストは、検証するためにSCSI問合せのページ83又はLUNを介してボリューム番号を使用してよい。実行が成功した場合は、アクトは何も格納しない。ホスト上の新しいディスクとしてのボリューム(間違ったボリューム番号も含み得る)を見つけることに失敗した場合、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S909から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは何も実行しない。
【0059】
0074 S911では、プランは、ディスクオンライン化アクトを実行する。このアクトは、発見されたボリュームに基づいてディスクをオンラインにするためにホスト230を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S910から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合は、このアクトは、格納された変数に基づいてディスク番号を指定することによってディスクをオフラインにすることを実行する。ディスクオンライン化の失敗の状態は、図11に示されている。ディスクが既にオンラインである場合は、データセンター管理ソフトウェアは、OSのI/Fを介してステータスを検出する。
【0060】
0075 S912では、プランは、ディスクマウントアクトを実行する。このアクトは、オンラインディスクに基づいてディスクをマウントするためにホスト230を実行する。実行が成功した場合は、アクトは、ディスク番号及びマウントポイントを格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S911から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてマウントポイントを指定することによってディスクのアンマウントを実行する。マウントの失敗の状態は、図11に示されている。マウントポイントが既に使用されている場合は、データセンター管理ソフトウェアは、OSの管理インタフェースを介してステータスを検出する。
【0061】
0076 S913では、プランは、VM開始アクトを実行する。このアクトは、マウントされたディスクに対してVMイメージを開始するために、ホスト230を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は(例えば、VMイメージは存在しないか、又はVMイメージが破損している)、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S912から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイル名を入力してVMファイルを削除することを実行する。
【0062】
0077 S914では、プランは、ホストを使用済みとして設定するアクトを実行する。このアクトは、図5のホストリストの名前での予約済み状態の代わりに特定のコアについてVM名を挿入するためにDBを実行する。実行が成功した場合は、アクトは、ステータス503上にVMの名前を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S913から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納されたホスト名を入力してレコードを更新することを実行する。
【0063】
0078 S915では、プランは、DB上のレコードを更新するアクトを実行する。このアクトは、ストレージのVOL番号についてVMファイル名を更新するためにDBを実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S914から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新することを実行する。
【0064】
0079 プラン上の回復の利点は、図8に関連して上述した第二の利点、即ち、複数の管理者はその操作を覚える必要がなく、従って、データセンターの複雑なシステムにおける欠損操作の人的過誤が減るという利点を含む。二つの追加の利点がある。第一に、VM管理者は、ホストグループのためにボリューム取り付け及びボリューム切り離しアクトの妥当性を確認することによってオフラインボリュームを管理することができる。第二に、VM管理者は、ストレージ管理者及びサーバ管理者なしにホストグループ上のWWNを使用してホストクラスタ構成の妥当性を確認することによって、オフラインボリュームを管理することができる。
【0065】
0080 図10は、VM格納を実行するためのプランを例示する流れ図の一例を示す。このプランでは、VM管理者は、VMデプロイプランの後に、ストレージのコピー能力を用いてVMイメージを作成でき、かつストレージのボリュームマッピング能力(ホストグループのためにVOLを切り離す)を用いてVMを格納できる。
【0066】
0081 S1001では、プランは、VM停止アクトを実行する。このアクトは、VMデプロイプロセスで開始されたVMへのVMイメージを停止するためにホスト230を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、エラーによってこのプランの実行を終了する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイル名を指定することによってVMを再開することを実行する。
【0067】
0082 S1002では、プランは、DB上のレコードを更新するアクトを実行する。このアクトは、ストレージのVOL番号についてVMファイル名を更新するためにDBを実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1001から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数を入力してレコードを更新することを実行する。
【0068】
0083 S1003では、プランは、「ディスクアンマウント」アクトを実行する。このアクトは、マウントポイントを指定することによってディスクをアンマウントするためにホスト230を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は(例えば、既にアンマウントされている場合)、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1002から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてディスク番号及びマウントポイントを指定することによってディスクをマウントすることを実行する。アンマウントの失敗の状態は、図11に示されている。ディスクが既にアンマウントされている場合は、データセンター管理ソフトウェアは、OSの管理インタフェースを介してステータスを検出する。
【0069】
0084 S1004では、プランは、ディスクオフライン化アクトを実行する。このアクトは、ディスク番号を指定することによってディスクをオフラインにするためにホスト230を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1003から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてディスク番号を指定することによってディスクをオンラインにすることを実行する。ディスクオフライン化の失敗の状態は、図11に示されている。ディスクが存在する場合は、データセンター管理ソフトウェアは、OSの管理インタフェースを介してステータスを検出する。
【0070】
0085 S1005では、プランは、DB上のレコードを更新するアクトを実行する。このアクトは、VMファイル名のディスクについてオフラインとしてディスクステータスを更新するためにDBを実行する。実行が成功した場合は、アクトは、ディスク番号に基づいてオンラインの状態を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、破線で示される回復の順番に基づいて、S1003から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてVMファイル名を入力してレコードを更新することを実行する。
【0071】
0086 S1006では、プランは、ホストグループからVOLを切り離すアクトを実行する。このアクトは、ボリューム番号、LUN、ホストグループ(HG)番号、及びポート番号を指定することによってホストグループ242からボリュームを切り離すためにストレージ240を実行する。ストレージは、成功又は失敗である結果を戻す。また、VOL切り離しが実行される前に、プランは、アクトプロセスを保証するために、ボリュームが既にHGに取り付けられているか又はXML APIを使用していないかをチェックすることを実行してもよい。実行が成功した場合は、アクトは、VOL番号、LUN、HG番号、及びポート番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、破線で示される回復の順番に基づいて、S1008から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてボリューム番号、LUN、ホストグループ(HG)番号、及びポート番号を指定することによってボリュームを取り付けることを実行する。切り離し失敗の状態は、図11に示されている。LUNが既に切り離されている場合は、データセンター管理ソフトウェアは、APIを介してストレージエラーを検出する。
【0072】
0087 S1007では、プランは、DB上のレコードを更新するアクトを実行する。このアクトは、VOL番号405、LUN411、HG番号406、及びポート番号412が記載されている図4において、LUN、HG番号、VOL用ポート番号を、切り離しLUN番号「−」、HG番号「−」及びポート番号「−」として更新するために、DBを実行する。実行が成功した場合は、アクトは、VOL番号、LUN、HG番号、及びポート番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、破線で示される回復の順番に基づいて、S1004から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてVOL番号405、LUN411、HG番号406、及びポート番号412を入力してレコードを更新することを実行する。
【0073】
0088 S1008では、プランは、ディスク再スキャンアクトを実行する。このアクトは、ホストのディスクとしてS1006において切り離されたボリュームに対してディスク再スキャン操作を行うためにホスト230を実行する。実行が成功した場合は、アクトは何も格納しない。ホスト上の新しいディスクとしてのボリュームを見つけることに失敗した場合、アクトはプランに失敗を報告する。プランは、破線で示される回復の順番に基づいて、S1007から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、ディスクを再スキャン及び発見することを実行する。
【0074】
0089 S1009では、プランは、ホスト解放アクトを実行する。このアクトは、図5のホストリストのVM名を除去するためにDBを実行する。実行が成功又は失敗のいずれかである場合は、アクトは何も格納しない。失敗した場合は、アクトはプランに失敗を報告する。プランは、回復の順番に基づいて、S1008から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新することを実行する。
【0075】
0090 本プランには、アクトの回復の利点と共に二つの利点がある。第一に、VM管理者は、ストレージ管理者及びサーバ管理者と交渉することなしにストレージ上にVM切り離しボリュームを格納することができる。第二に、S1006があるため、VM管理者は、ストレージ管理者がいたとしても、ボリューム切り離しを良好に管理できる。
【0076】
0091 VMのデプロイだけの場合、データセンター管理ソフトウェアは、図10のS906からS915までのプランとして実行する。回復操作は、図10のS906〜S915に書かれているのと同じである。
【0077】
0092 VM管理者は、VMの状態を、ステートレスからステートフルに、又はステートフルからステートレスに変更したいかもしれない。これについては以下で説明する。
【0078】
0093 図12は、VM管理者がVMの状態への変更を管理するためのGUI(グラフィカルユーザインタフェース)を示す。GUIは、VM名1201、操作ステータス1202、詳細なステータス1207、現在の状態1203、選択可能なプルダウンリストを示すボタン1204、変更を破棄するためのキャンセルボタン1205、及び変更を実行するためのOKボタン1206を含む。VM名1201は、DB(図4)上の拡張子のないファイル名401を示す。操作ステータス1202は、DBのVM操作状態408である。現在の状態1203は、DBの状態403である。VM管理者は、選択可能プルダウンリストボタン1204を用いて、各VMについて次の状態を選択し、そして変更を実行するためにOKボタン1206を押す。VM管理者が変更を破棄したい場合は、変更を破棄するためにキャンセルボタン1205を押してよい。また、詳細なステータス1207では、管理者は、ストレージ関連の操作などの管理ソフトウェアの現在の詳細なステータスを見る事ができる。この情報は、図4の現在のステップ操作409から来る。
【0079】
0094 図13は、VM状態をステートレスからステートフルにマイグレートするためにシナリオを示す。GUIを介したユーザの要求に基づいて、データセンター管理ソフトウェアサーバ210は、ストレージ240に対して、ボリュームを作成すること及びクラスタの場合にはホスト(単数又は複数)230についてボリュームを取り付けることを要求する。データセンター管理ソフトウェアサーバ210は、ターゲットのホスト(ボリュームが取り付けられる対象)に対して、ボリューム内のファイルシステム(即ち、OSのディスク)をフォーマットし、これをローカルファイルシステムにマウントし、ソースホストからVMイメージをコピーし、かつ仮想マシン上でVMを開始することを要求する。
【0080】
0095 図14は、図13に示されるようなVM状態についてステートレスからステートフルへのマイグレーションプランを示す流れ図の一例を示す。
【0081】
0096 S1401では、プランは、VM停止アクトを実行する。このアクトは、VMデプロイプロセスにおいて開始されたVMに対してVMイメージを停止するために、ホスト230を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、本プランを終了し、本プランを実行するためにエラーを返す。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイル名を指定することによってVMを再開することを実行する。
【0082】
0097 S1402では、プランは、ボリューム作成アクトを実行する。このアクトは、ストレージプール番号を指定することによってボリューム作成操作を実行する。操作が成功した場合、ストレージは、データを格納するためにボリューム番号を返す。この番号はローカルインスタンスに格納される。失敗した場合は、アクトはプランに失敗を通知する。プランは、実行された順番に基づいて、実行されたアクトの回復(S1401)を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてボリュームを削除することを実行する。ボリュームの作成では、データセンター管理ソフトウェアは、VMファイルサイズや、ファイルシステムメタデータ及び構成ツールファイルのようなその他の関連サイズに基づいて、ボリュームサイズを特定し得る。
【0083】
0098 S1403では、プランは、ホストグループにVOLを取り付けるアクトを実行する。このアクトは、ボリューム番号、LUN、ホストグループ(HG)番号、及びポート番号を指定することによってホストグループ242にボリュームを取り付けるためにストレージ240を実行する。ストレージは、成功又は失敗である結果を戻す。成功した場合は、アクトは、アクトのローカルインスタンスに実行済み変数を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、実行されたアクトの回復(S1402)を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてホストグループからVOLを切り離すことを実行する。取り付け失敗の状態は、図11に示されている。LUNが既に取り付けられている場合は、データセンター管理ソフトウェアは、APIを介してストレージエラーを検出する。
【0084】
0099 S1404では、プランは、DB上でレコードを作成するアクトを実行する。このアクトは、VOL番号、LUN、及びポート番号を有する空のVMのレコードを作成するためにデータセンター管理ソフトウェアサーバ210内のDBを実行する。実行が成功した場合は、アクトは、そのローカルインスタンスに実行済み変数を格納する。実行が失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1403から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてレコードを削除することを実行する。
【0085】
0100 S1405では、プランは、ホスト予約アクトを実行する。このアクトは、図5のホストリストから未使用又は共有のコアを選択するためのDBを実行する。実行が成功した場合は、アクトは、ステータス503上にVMの名前を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1404から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新することを実行する。コアの選択は、ユーザの選択に基づいている。このケースでは、ステートフルとして専用のコアを選択する。
【0086】
0101 S1406では、プランは、ディスク再スキャンアクトを実行する。このアクトは、新しいボリュームをホストのディスクとして発見するためにディスク再スキャン操作を実行するためにホスト230を実行する。発見に関しては、ホストは、検証するためにSCSI問合せのページ83又はLUNを介してボリューム番号を使用してよい。実行が成功した場合は、アクトは何も格納しない。ホスト上の新しいディスクとしてのボリュームを見つけることに失敗した場合、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1405から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは何も実行しない。
【0087】
0102 S1407では、プランは、ディスクオンライン化アクトを実行する。このアクトは、発見済みボリュームに基づいてディスクをオンライン化するためにホスト230を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1406から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づいた回復では、このアクトは、格納された変数に基づいてディスク番号を指定することによってディスクをオフラインにすることを実行する。ディスクオンライン化の失敗の状態は、図11に示されている。ディスクがすでにオンラインである場合は、データセンター管理ソフトウェアは、OSのI/Fを介してステータスを検出する。
【0088】
0103 S1408では、プランは、ディスクフォーマットアクトを実行する。このアクトは、オンラインディスクに基づいてディスクをフォーマットするためにホスト230を実行する。実行が成功した場合は、アクトはディスク番号を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1407から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは何も実行しない。
【0089】
0104 S1409では、プランは、ディスクマウントアクト」アクトを実行する。このアクトは、オンラインディスクに基づいてディスクをマウントするためにホスト230を実行する。実行が成功した場合は、アクトは、ディスク番号及びマウントポイントを格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1408から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてマウントポイントを指定することによって、ディスクのアンマウントを実行する。マウントの失敗の状態は、図11に示されている。マウントポイントがすでに使用されている場合は、データセンター管理ソフトウェアは、OSのI/Fを介してステータスを検出する。
【0090】
0105 S1410では、プランは、VMファイルコピーアクトを実行する。このアクトは、VMイメージファイルが特定されたファイル名及びおそらくソースホストからのパスを移動するために、ターゲットホストを実行する。実行が成功した場合は、アクトは、そのローカルインスタンスに実行済み変数を格納する。実行が失敗した場合(例えば、ファイルの削除のせいで)、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1409から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイルをソースホストに移動することを実行する。
【0091】
0106 S1411では、プランは、DB上のレコードを更新するアクトを実行する。このアクトは、図4の状態403におけるステートフルとしてVMファイル名を更新するために、DBを実行する。実行が成功した場合は、アクトは、VMについてステートレスとして状態を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1410から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、ステートレスを指定することによってレコードを更新することを実行する。
【0092】
0107 S1412では、プランは、VM開始アクトを実行する。このアクトは、マウントされたディスクに対してVMイメージを開始するためにホスト230を実行する。実行が成功した場合は、アクトはファイル名を格納する。失敗した場合は(例えば、破損又は削除されたファイルのために)、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1411から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納された変数に基づいてファイル名を入力してVMファイルの停止を実行する。
【0093】
0108 S1413では、プランは、ホストを使用済みとして設定するアクトを実行する。このアクトは、図5のホストリストの名前での予約済み状態の代わりに特定のコアについてVM名を挿入するためにDBを実行する。実行が成功した場合は、アクトは、図5のステータス503上にVMの名前を格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1412から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、格納されたホスト名を入力してレコードを更新することを実行する。
【0094】
0109 S1414では、プランは、DB上のレコードを更新するアクトを実行する。このアクトは、VMイメージが特定されたファイル名についてVMステータスを更新するために、DBを実行する。実行が成功した場合は、アクトは、ファイル名及び実行中というステータスを格納する。失敗した場合は、アクトはプランに失敗を報告する。プランは、実行された順番に基づいて、S1413から開始までの実行されたアクトの回復を実行する。次のステップの失敗に基づく回復の場合、このアクトは、レコードを初期化するためにレコードを更新することを実行する。
【0095】
0110 図15は、VM状態をステートフルからステートレスにマイグレートするためのシナリオの一例を示す。GUIを介したユーザの要求に基づいて、データセンター管理ソフトウェアサーバ210は、ホスト230に対して、VMを停止しかつVMを再び開始した後で、VMファイルをターゲットホストに移動するように要求する。このプロセスは、一般的なVMマイグレーションプロセスと同じであり、マイグレーションの後でボリュームを切り離して削除するようにストレージに要求し続ける。
【0096】
0111 上記のシステムは、ボリュームの識別子としてファイルを使用して、ボリュームのステータス、特にストレージサブシステム上で切り離されたボリュームのステータスを確保する。また、システムは、デプロイでコア予約能力を用いる数個のVMによる連続を防ぐ。さらにシステムは、SANベースのVMデプロイと、マイグレーション能力を用いた通常のVMデプロイとの間の変更の有用性を改善する。
【0097】
0112 当然のことながら、図1及び図2に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のI/O装置(例えば、CD及びDVDドライブ、フロッピー(登録商標)ディスクドライブ、ハードドライブ等)も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク(例えば、インターネット)、無線ネットワーク、ストレージエリアネットワーク等を含む。
【0098】
0113 説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図、構成図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【0099】
0114 当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置(ハードウェア)を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体(ソフトウェア)上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び/又は暗号化形式で命令を媒体に記憶することができる。
【0100】
0115 上記により、本発明が、仮想マシンのデプロイ及び格納を伴うデータセンターファイルシステムを管理するための方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。



【特許請求の範囲】
【請求項1】
複数のボリュームを有するストレージシステムと、複数のホストシステムと、当該ストレージシステム及び当該ホストシステムにネットワークを介して結合されている管理サーバとを含むサーバシステムを管理する方法であって、
仮想マシンイメージファイルに対応する前記ストレージシステムにゴールデンイメージを生成することと、
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシンデータをコピーすることと、
前記仮想マシンのアクティビティを監視することにより、仮想マシンデータをコピーした前記ボリュームのステータスを、前記管理サーバによって追跡記録することと
を含む方法であり、
監視された仮想マシンの前記アクティビティが、前記仮想マシン(VM)のデプロイの開始である場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記VMデータを格納するボリュームの前記ステータスが、ボリュームプール内にあり、かつ前記仮想マシンのデプロイの実行の前にストレージ管理APIを介してターゲットLUN(論理ユニット番号)に取り付けられていないかをチェックすることを含み、
監視された仮想マシンの前記アクティビティが、前記仮想マシンを開始する前の前記仮想マシンのデプロイである場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記VMデータを格納するボリュームの前記ステータスが、前記仮想マシンがデプロイされるホストシステムのために取り付けられたボリュームとして「取り付け」られているかをチェックすることを含み、及び
監視された仮想マシンの前記アクティビティが、前記仮想マシンの格納の終了である場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用された前記VMデータを格納するボリュームの前記ステータスが、ターゲットLUN(論理ユニット番号)から切り離され、かつストレージ管理APIを介してボリュームプール内にあるかをチェックすることを含む、サーバシステム管理方法。
【請求項2】
前記ゴールデンイメージは、前記ストレージシステムの管理者又は前記管理サーバの管理者からの入力なしに、VM管理者からの入力に従って前記ストレージシステムの記憶能力を使用して生成される、請求項1に記載の方法。
【請求項3】
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかにVMデータをコピーする前に、
VMデータを格納するための前記複数のボリュームの各々を作成することと、
ボリュームにマップすることができる前記ホストシステムのWWN(ワールドワイドネーム)を有するホストシステムのグループであるホストグループに、前記作成されたボリュームの各々を取り付けることと
をさらに含む、請求項1に記載の方法。
【請求項4】
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかにVMデータをコピーした後で、
前記ホストグループから前記ボリュームの各々を切り離すことと、
各ホストシステムのために、(1)前記ホストシステムのプロセッサ上に存在し、かつVMによって利用されるコア、及び(2)前記コアを使用するあらゆる仮想マシンの名前を格納するか、又は前記コアがいずれの仮想マシンによっても使用されていない場合には、一切エントリを格納しないステータスを示すホストリストから未使用又は共有のコアを選択することによって、VMのためにホストを予約して、前記選択されたコアにおける前記VMについての予約済み状態を挿入することにより、ターゲットコアのための専用VMデプロイを行うことと
をさらに含む、請求項3に記載の方法。
【請求項5】
前記切り離し及び予約の後で、
前記ホストグループに前記切り離されたボリュームの各々を取り付けることと、
前記取り付けられたボリュームの各々についてVMファイル名を更新することと、
ホストのために1つ以上の新しいボリュームを発見するために前記ストレージシステム内のディスクを再スキャンすることであって、当該1つ以上の新しいボリュームの各々は、仮想マシンがデプロイされるホストシステムのために発見されたボリュームとして発見されるように再スキャンすることと、
前記発見されたボリュームに基づいて前記再スキャンされたディスクをオンラインにすることと、
前記オンラインディスクをマウントすることと
をさらに含む、請求項4に記載の方法。
【請求項6】
前記再スキャン、オンライン化、及びマウントの後で、
前記マウントされたディスクに基づいてVMイメージを開始することと、
前記選択されたコア内の前記開始されたVMについての前記予約済み状態の代わりに前記ホストリストVM名に挿入することによって、ホストを使用済みに設定することと、
前記開始されたVMのために前記ボリュームの各々について前記VMファイル名を更新することと
をさらに含む、請求項5に記載の方法。
【請求項7】
ホストグループにボリュームを取り付ける前に、前記ボリュームが既に取り付けられていないかを判断するために、取り付けられる前記ボリュームについて前記ホストグループの接続ステータスをチェックすることと、

ホストグループからボリュームを切り離す前に、前記ボリュームが取り付けられているかを判断するために、切り離される前記ボリュームについて前記ホストグループの接続ステータスをチェックすることと
をさらに含む、請求項5に記載の方法。
【請求項8】
前記ホストグループの前記ホストシステムのWWNをチェックすることによって、前記ホストグループのクラスタ構成の妥当性を確認することをさらに含む、請求項4に記載の方法。
【請求項9】
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの開始である場合は、
前記ホストシステムのWWNの数が少なくとも2つであるかを判断し、かつ前記ストレージシステムのポートの数が少なくとも2つであるかを判断することと、
前記判断において少なくとも2つのWWN及び少なくとも2つポートが存在しない場合、前記仮想マシンの前記デプロイの操作済み変数を格納し、かつ当該格納された操作済み変数を使用して回復を実行することと
をさらに含む、請求項8に記載の方法。
【請求項10】
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの開始である場合は、
VMをデプロイするための利用可能なコアが存在するかを判断し、YESの場合は、前記選択されたコア内に前記VMについての予約済み状態を挿入することによって、利用可能なコアを選択すること、NOの場合は、利用可能なコアを見つけることに失敗した旨のアラートを送信することと
をさらに含む、請求項4に記載の方法。
【請求項11】
ストレージシステム及び複数のホストシステムにネットワークを介して結合されている管理サーバであって、当該ストレージシステムは複数のボリュームを有し、当該管理サーバは、プロセッサと、メモリと、プランエグゼキュータとを備え、
当該プランエグゼキュータは、
仮想マシンイメージファイルに対応する前記ストレージシステムにゴールデンイメージを生成し、
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかに仮想マシンデータをコピーし、
前記仮想マシンのアクティビティを監視することにより、仮想マシンデータをコピーした前記ボリュームのステータスを、前記管理サーバによって追跡記録するためにプランを実行するものであり、
監視された仮想マシンの前記アクティビティが、前記仮想マシン(VM)のデプロイの開始である場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記VMデータを格納するボリュームの前記ステータスが、ボリュームプール内にあり、かつ前記仮想マシンのデプロイの実行の前にストレージ管理APIを介してターゲットLUN(論理ユニット番号)に取り付けられていないかをチェックすることを含み、
監視された仮想マシンの前記アクティビティが、前記仮想マシンを開始する前の前記仮想マシンのデプロイである場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用される前記VMデータを格納するボリュームの前記ステータスが、前記仮想マシンがデプロイされるホストシステムのために発見されたボリュームとして「発見される」かをチェックすることを含み、及び
監視された仮想マシンの前記アクティビティが、前記仮想マシンの格納の終了である場合は、前記追跡記録は、前記ストレージシステムから前記仮想マシンをデプロイするために使用された前記VMデータを格納するボリュームの前記ステータスが、ターゲットLUN(論理ユニット番号)から切り離され、かつストレージ管理APIを介してボリュームプール内にあるかをチェックすることを含む、サーバシステム管理方法。
【請求項12】
前記ゴールデンイメージは、前記ストレージシステムの管理者又は前記管理サーバの管理者からの入力なしに、VM管理者からの入力に従って前記ストレージシステムの記憶能力を用いて生成される、請求項11に記載の管理サーバ。
【請求項13】
前記プランエグゼキュータは、
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかにVMデータをコピーする前に、
VMデータを格納するための前記複数のボリュームの各々を作成し、
ボリュームにマップすることができる前記ホストシステムのWWN(ワールドワイドネーム)を有するホストシステムのグループであるホストグループに、前記作成されたボリュームの各々を取り付ける
ためのプランを実行するように構成されている、請求項11に記載の管理サーバ。
【請求項14】
前記プランエグゼキュータは、
前記ゴールデンイメージから前記ストレージシステム内の前記複数のボリュームのいくつかにVMデータをコピーした後で、
前記ホストグループから前記ボリュームの各々を切り離し、
各ホストシステムのために、(1)前記ホストシステムのプロセッサ上に存在し、かつVMによって利用されるコア、及び(2)前記コアを使用するあらゆる仮想マシンの名前を格納するか、又は前記コアがいずれの仮想マシンによっても使用されていない場合には、一切エントリを格納しないステータスを示すホストリストから未使用又は共有のコアを選択することによって、VMのためにホストを予約して、前記選択されたコアにおける前記VMについての予約済み状態を挿入することにより、ターゲットコアのための専用VMデプロイを行う
ためのプランを実行するように構成されている、請求項13に記載の管理サーバ。
【請求項15】
前記プランエグゼキュータは、
前記切り離し及び予約の後で、
前記ホストグループに前記切り離されたボリュームの各々を取り付け、
前記取り付けられたボリュームの各々についてVMファイル名を更新し、
ホストのために1つ以上の新しいボリュームを発見するために前記ストレージシステム内のディスクを再スキャンすることであって、当該1つ以上の新しいボリュームの各々は、仮想マシンがデプロイされるホストシステムのために発見されたボリュームとして発見されるように再スキャンし、
前記発見されたボリュームに基づいて前記再スキャンされたディスクをオンラインにし、
前記オンラインディスクをマウントする
ためのプランを実行するように構成されている、請求項14に記載の管理サーバ。
【請求項16】
前記プランエグゼキュータは、
前記再スキャン、オンライン化、及びマウントの後で、
前記マウントされたディスクに基づいてVMイメージを開始し、
前記選択されたコア内の前記開始されたVMについての前記予約済み状態の代わりに前記ホストリストVM名に挿入することによって、ホストを使用済みに設定し、
前記開始されたVMのために前記ボリュームの各々について前記VMファイル名を更新する
ためのプランを実行するように構成されている、請求項15に記載の管理サーバ。
【請求項17】
前記プランエグゼキュータは、
ホストグループにボリュームを取り付ける前に、前記ボリュームが既に取り付けられていないかを判断するために、取り付けられる前記ボリュームについて前記ホストグループの接続ステータスをチェックし、
ホストグループからボリュームを切り離す前に、前記ボリュームが取り付けられているかを判断するために、切り離される前記ボリュームについて前記ホストグループの接続ステータスをチェックする
ためのプランを実行するように構成されている、請求項15に記載の管理サーバ。
【請求項18】
前記プランエグゼキュータは、
前記ホストグループの前記ホストシステムのWWNをチェックすることによって、前記ホストグループのクラスタ構成の妥当性を確認するためのプランを実行するように構成されている、請求項14に記載の管理サーバ。
【請求項19】
前記プランエグゼキュータは、
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの開始である場合は、
前記ホストシステムのWWNの数が少なくとも2つであるかを判断し、かつ前記ストレージシステムのポートの数が少なくとも2つであるかを判断し、
前記判断において少なくとも2つのWWN及び少なくとも2つポートが存在しない場合、前記仮想マシンの前記デプロイの操作済み変数を格納し、かつ当該格納された操作済み変数を使用して回復を実行する
ためのプランを実行するように構成されている、請求項18に記載の管理サーバ。
【請求項20】
前記プランエグゼキュータは、
監視された仮想マシンの前記アクティビティが、前記仮想マシンのデプロイの開始である場合は、
VMをデプロイするための利用可能なコアが存在するかを判断し、YESの場合は、前記選択されたコア内に前記VMについての予約済み状態を挿入することによって、利用可能なコアを選択すること、NOの場合は、利用可能なコアを見つけることに失敗した旨のアラートを送信する
ためのプランを実行するように構成されている、請求項14に記載の管理サーバ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−208918(P2012−208918A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−274688(P2011−274688)
【出願日】平成23年12月15日(2011.12.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】