(57)【特許請求の範囲】
【請求項１】
第１の統合管理システムと、第１のサーバ管理サーバと、第１のネットワーク管理サーバと、第１のストレージ管理サーバとを備え、前記第１の統合管理システムはマイグレーション要求を行うマイグレーション要求プログラムを備え、前記第１のサーバ管理サーバはアプリケーションを実行するサーバの構成情報を含む第１の仮想マシンリソーステーブルを備え、前記第１のネットワーク管理サーバは仮想プライベートネットワークを実現する第１のＶＰＮルータの構成情報を含む第１のＶＰＮリソーステーブルを備え、前記第１のストレージ管理サーバは複数の論理ストレージボリュームを提供する第１のストレージの構成情報を含む第１のストレージボリュームリソーステーブルを備えた第１のデータセンタにおいて実行されるアプリケーションを、他の統合管理システムと、他のサーバ管理サーバと、他のネットワーク管理サーバと、他のストレージ管理サーバとを備え、前記他の統合管理システムはマイグレーション要求を受け入れるマイグレーション受け入れプログラムと、マイグレーション要求を受け入れ可能か判断するリソースマネージャプログラムとを備え、前記他のサーバ管理サーバはアプリケーションを実行するサーバの構成情報を含む第２の仮想マシンリソーステーブルと、仮想マシンマネージャ及びＣＰＵタイプに応じてパフォーマンス能力を変換するために用いられる情報を含むＣＰＵ処理時間変換テーブルとを備え、前記他のネットワーク管理サーバは仮想プライベートネットワークを実現する第２のＶＰＮルータの構成情報を含む第２のＶＰＮリソーステーブルを備え、前記他のストレージ管理サーバは複数の論理ストレージボリュームを提供する第２のストレージの構成情報を含む第２のストレージボリュームリソーステーブルを備えた他のデータセンタにマイグレーションする場合、前記アプリケーションのマイグレーションを受け入れたときにマイグレーション前と同等のパフォーマンスを維持する第２のデータセンタを複数の前記他のデータセンタから識別する方法であって、
前記第１の統合管理システムが、
前記第１の仮想マシンリソーステーブル、前記第１のＶＰＮリソーステーブル及び前記第１のストレージボリュームリソーステーブルに基づいて、アプリケーションを前記他のデータセンタにマイグレーションする場合に前記他のデータセンタに対して要求するサーバ、ネットワーク及びストレージの情報のうち、仮想マシンマネージャタイプの情報、ＣＰＵタイプの情報及びＣＰＵ割り当ての情報を含むサーバ要件と、帯域幅の情報を含むネットワーク要件と、ボリュームの情報、容量の情報、アクセス時間の情報、読み出し／書き込み比の情報及びランダム／シーケンシャル比の情報を含むストレージ要件とを決定する第１のステップと、
前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件を指定するマイグレーション要求を生成し、生成したマイグレーション要求を前記第１のデータセンタから前記他のデータセンタへ送る第２のステップと、
前記他の統合管理システムが、
前記第１のデータセンタから前記マイグレーション要求を受け取ると、前記リソースマネージャプログラムを起動する第３のステップと、
前記第２の仮想マシンリソーステーブル、前記第２のＶＰＮリソーステーブル及び前記第２のストレージボリュームリソーステーブルに基づいて、前記マイグレーション要求において指定された前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件のうちの何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在するか否かを判断し、特に前記サーバ要件を満たすサーバが前記他のデータセンタに存在するか否かの判断に際しては、前記サーバ要件及び前記第２の仮想マシンリソーステーブルに基づいて、前記アプリケーションをマイグレーションした場合に実際に発揮可能なパフォーマンス能力を取得し、一方で前記サーバ要件、前記第２の仮想マシンリソーステーブル及び前記ＣＰＵ処理時間変換テーブルに基づいて、前記アプリケーションをマイグレーションした場合に予測されるパフォーマンス能力を取得し、前記実際に発揮可能なパフォーマンス能力と、前記予測されるパフォーマンス能力とを比較して、前記実際に発揮可能なパフォーマンス能力の方が前記予測されるパフォーマンス能力よりも大きい場合、前記サーバ要件を満たすサーバが前記他のデータセンタに存在するものと判断し、判断結果を前記マイグレーション受け入れプログラムに返す第４のステップと、
前記リソースマネージャプログラムから前記判断結果を受け取ると、受け取った判断結果を前記第１のデータセンタへ送る第５のステップと、
前記第１の統合管理システムが、
前記マイグレーション受け入れプログラムから前記判断結果を受け取ると、受け取った判断結果に基づいて、前記マイグレーション要求において指定された前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件のうちの何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在するか否かを判断し、前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件のうちの何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在すると判断した場合、前記他のデータセンタを少なくとも１つのマイグレーションを受ける前記第２のデータセンタの候補として識別する第６のステップと
を含む方法。
【請求項２】
前記第６のステップにおいて、
前記第１の統合管理システムが、
前記マイグレーション受け入れプログラムから前記判断結果を受け取ると、受け取った判断結果に基づいて、前記マイグレーション要求において指定された前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在するか否かを判断し、前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在しないと判断した場合、前記他のデータセンタとは別のデータセンタに前記マイグレーション要求を送る第７のステップと、
前記他のデータセンタとは別のデータセンタから前記判断結果を受け取ると、受け取った判断結果に基づいて、前記マイグレーション要求において指定された前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタとは別のデータセンタに存在するか否か判断し、前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタとは別のデータセンタに存在すると判断した場合、前記他のデータセンタとは別のデータセンタを少なくとも１つのマイグレーションを受ける前記第２のデータセンタの候補として識別する第８のステップと
を含む請求項１に記載の方法。
【請求項３】
前記第１の統合管理システムは、
ユーザインターフェースを備え、
前記第６のステップにおいて、
前記第１の統合管理システムが、
前記マイグレーション受け入れプログラムから前記判断結果を受け取ると、受け取った判断結果に基づいて、前記マイグレーション要求において指定された前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在するか否かを判断し、前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在しないと判断した場合、前記ユーザインターフェースを介して、前記他のデータセンタから受け取った判断結果を管理者に通知する第９のステップと、
前記ユーザインターフェースを介して、管理者から前記他のデータセンタのうちの何れか一のデータセンタが指定された場合、指定されたデータセンタを前記第２のデータセンタとして識別する第１０のステップと
を含む請求項２に記載の方法。
【請求項４】
第１の統合管理システムと、第１のサーバ管理サーバと、第１のネットワーク管理サーバと、第１のストレージ管理サーバとを備え、前記第１の統合管理システムはマイグレーション要求を行うマイグレーション要求プログラムを備え、前記第１のサーバ管理サーバはアプリケーションを実行するサーバの構成情報を含む第１の仮想マシンリソーステーブルを備え、前記第１のネットワーク管理サーバは仮想プライベートネットワークを実現する第１のＶＰＮルータの構成情報を含む第１のＶＰＮリソーステーブルを備え、前記第１のストレージ管理サーバは複数の論理ストレージボリュームを提供する第１のストレージの構成情報を含む第１のストレージボリュームリソーステーブルを備えた第１のデータセンタにおいて実行されるアプリケーションを、他の統合管理システムと、他のサーバ管理サーバと、他のネットワーク管理サーバと、他のストレージ管理サーバとを備え、前記他の統合管理システムはマイグレーション要求を受け入れるマイグレーション受け入れプログラムと、マイグレーション要求を受け入れ可能か判断するリソースマネージャプログラムとを備え、前記他のサーバ管理サーバはアプリケーションを実行するサーバの構成情報を含む第２の仮想マシンリソーステーブルと、仮想マシンマネージャ及びＣＰＵタイプに応じてパフォーマンス能力を変換するために用いられる情報を含むＣＰＵ処理時間変換テーブルとを備え、前記他のネットワーク管理サーバは仮想プライベートネットワークを実現する第２のＶＰＮルータの構成情報を含む第２のＶＰＮリソーステーブルを備え、前記他のストレージ管理サーバは複数の論理ストレージボリュームを提供する第２のストレージの構成情報を含む第２のストレージボリュームリソーステーブルを備えた他のデータセンタにマイグレーションする場合、前記アプリケーションのマイグレーションを受け入れたときにマイグレーション前と同等のパフォーマンスを維持する第２のデータセンタを複数の前記他のデータセンタから識別するシステムであって、
前記第１の統合管理システムは、
前記第１の仮想マシンリソーステーブル、前記第１のＶＰＮリソーステーブル及び前記第１のストレージボリュームリソーステーブルに基づいて、アプリケーションを前記他のデータセンタにマイグレーションする場合に前記他のデータセンタに対して要求するサーバ、ネットワーク及びストレージの情報のうち、仮想マシンマネージャタイプの情報、ＣＰＵタイプの情報及びＣＰＵ割り当ての情報を含むサーバ要件と、帯域幅の情報を含むネットワーク要件と、ボリュームの情報、容量の情報、アクセス時間の情報、読み出し／書き込み比の情報及びランダム／シーケンシャル比の情報を含むストレージ要件とを決定し、
前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件を指定するマイグレーション要求を生成し、生成したマイグレーション要求を前記第１のデータセンタから前記他のデータセンタに送信し、
前記他の統合管理システムは、
前記第１のデータセンタから前記マイグレーション要求を受け取ると、前記リソースマネージャプログラムを起動し、
前記第２の仮想マシンリソーステーブル、前記第２のＶＰＮリソーステーブル及び前記第２のストレージボリュームリソーステーブルに基づいて、前記マイグレーション要求において指定された前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件のうちの何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在するか否かを判断し、特に前記サーバ要件を満たすサーバが前記他のデータセンタに存在するか否かの判断に際しては、前記サーバ要件及び前記第２の仮想マシンリソーステーブルに基づいて、前記アプリケーションをマイグレーションした場合に実際に発揮可能なパフォーマンス能力を取得し、一方で前記サーバ要件、前記第２の仮想マシンリソーステーブル及び前記ＣＰＵ処理時間変換テーブルに基づいて、前記アプリケーションをマイグレーションした場合に予測されるパフォーマンス能力を取得し、前記実際に発揮可能なパフォーマンス能力と、前記予測されるパフォーマンス能力とを比較して、前記実際に発揮可能なパフォーマンス能力の方が前記予測されるパフォーマンス能力よりも大きい場合、前記サーバ要件を満たすサーバが前記他のデータセンタに存在するものと判断し、判断結果を前記マイグレーション受け入れプログラムに返し、
前記リソースマネージャプログラムから前記判断結果を受け取ると、受け取った判断結果を前記第１のデータセンタに送信し、
前記第１の統合管理システムは、
前記マイグレーション受け入れプログラムから前記判断結果を受け取ると、受け取った判断結果に基づいて、前記マイグレーション要求において指定された前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件のうちの何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在するか否かを判断し、前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件のうちの何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在すると判断した場合、前記他のデータセンタを少なくとも１つのマイグレーションを受ける前記第２のデータセンタの候補として識別する
システム。
【請求項５】
前記第１の統合管理システムは、
前記マイグレーション受け入れプログラムから前記判断結果を受け取ると、受け取った判断結果に基づいて、前記マイグレーション要求において指定された前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在するか否かを判断し、前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在しないと判断した場合、前記他のデータセンタとは別のデータセンタに前記マイグレーション要求を送信し、
前記他のデータセンタとは別のデータセンタから前記判断結果を受け取ると、受け取った判断結果に基づいて、前記マイグレーション要求において指定された前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタとは別のデータセンタに存在するか否か判断し、前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタとは別のデータセンタに存在すると判断した場合、前記他のデータセンタとは別のデータセンタを少なくとも１つのマイグレーションを受ける前記第２のデータセンタの候補として識別する
請求項４に記載のシステム。
【請求項６】
前記第１の統合管理システムは、
ユーザインターフェースを備え、
前記マイグレーション受け入れプログラムから前記判断結果を受け取ると、受け取った判断結果に基づいて、前記マイグレーション要求において指定された前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在するか否かを判断し、前記サーバ要件、前記ネットワーク要件及び前記ストレージ要件の何れか又は全てを満たすサーバ、ネットワーク及びストレージが前記他のデータセンタに存在しないと判断した場合、前記ユーザインターフェースを介して、前記他のデータセンタから受け取った判断結果を管理者に通知し、
前記ユーザインターフェースを介して、管理者から前記他のデータセンタのうちの何れか一のデータセンタが指定された場合、指定されたデータセンタを前記第２のデータセンタとして識別する
請求項５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0002]  本発明は、主として、情報システムおよびデータセンタに関する。
[0003]  
【背景技術】
【０００２】
[0004]  大企業や他の事業体は、事業を行うために使用する情報システムおよびデータセンタを複数保有することがある。たとえば、電話サービスおよびインターネット関連サービスを提供する電気通信事業者は、サービスエリアをカバーするために、地理的に分散した複数のデータセンタを保有するのが一般的であろう。これらの事業体は、データセンタが提供するネットワーク、サーバ、およびストレージシステムを用いて、音声伝送、電子メール、インターネットアクセス、メッセージング、ビデオストリーミングなどの多様なサービスを運営することが可能である。したがって、これらのデータセンタにある、ネットワーク、サーバ、ストレージシステムなどのリソースの効果的かつ効率的な利用は、それらの事業体の事業の成功に必須である。
【０００３】
[0005]  近年、ネットワーク、サーバ、およびストレージの仮想化により、データセンタの稼動効率が高まっている。たとえば、サーバ仮想化は、個々の物理サーバが仮想マシンソフトウェアを用いて複数の仮想サーバ環境を提供することを可能にすることによって、特定の情報システム設備における（たとえば、データセンタでの）サーバ統合を可能にする技術である。この技術の下では、１つまたは複数の物理サーバが、各サーバが異なるサーバ環境を実行する複数の専用物理サーバであるのではなく、複数の仮想サーバ環境に分けられることが可能である。さらに、仮想マシンソフトウェアは、複数の物理サーバを組み合わせて単一仮想サーバを作成することも可能である。サーバ仮想化を行うことにより、多数の異なる物理サーバをデータセンタ内に保有することを不要にして、サーバの可用性を高めながら、サーバリソースをより効率的に利用できるようにすることが可能である。さらに、サーバ仮想化は、全体コストの低減、消費電力の低減、サーバプロビジョニングの時間短縮、サーバの管理運営の集中化、機敏なサービス展開の支援、および障害回復能力の向上に役立ちうる。
【０００４】
[0006]  仮想化技術は、データセンタで実行されるアプリケーションのパフォーマンスを高めるために、データセンタ管理者がシステム構成を動的に変更することを可能にする。さらに、広いエリアにわたって分散しているデータセンタ間でのアプリケーションのマイグレーションを、アプリケーションの実行に必要なデータを転送することによって実施することが可能である。しかしながら、地理的に分散したデータセンタを含む環境間のアプリケーションマイグレーションを可能にするリソースプロビジョニングには、現時点で問題が存在する。たとえば、アプリケーションをマイグレーションしつつ、マイグレーション前と同等のパフォーマンスを維持する、適切なターゲットデータセンタを見つけるのが困難である。これは、アプリケーションが、典型的には、ネットワーク、サーバ、およびストレージを含む、種々の技術の複数レイヤを利用するためである。特に、アプリケーションを実行するために使用されるネットワーク装置、サーバ装置、およびストレージ装置は、データセンタごとに異なる可能性があり、これらの装置の利用可能な能力を決定することが常に可能であるとは限らない。したがって、アプリケーションの実行が第１のデータセンタから別のデータセンタに移ったときに、そのアプリケーションが同等のパフォーマンスレベルでは動作しない可能性がある。さらに、他のデータセンタへのアプリケーションマイグレーションが可能であって、そのアプリケーションが同等のパフォーマンスレベルを維持できた場合でも、そのマイグレーションが、ターゲットデータセンタで実行されている他のアプリケーションのパフォーマンスに影響を及ぼす可能性がある。既存の方法で可能なのは、アプリケーションマイグレーション後に、パフォーマンス向上のための構成変更をデータセンタ内で行うことだけである。
【０００５】
[0007]  関連技術として、参照によって全開示が本明細書に組み込まれている、米国特許第７０９９９１２号（Ｉｓｈｉｚａｋｉら、件名「Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅ  ｍａｎａｇｅｍｅｎｔ  ｓｙｓｔｅｍ」）、米国特許第７０６２５５９号（Ｙｏｓｈｉｍｕｒａら、件名「Ｃｏｍｐｕｔｅｒ  Ｒｅｓｏｕｒｃｅ  Ａｌｌｏｃａｔｉｎｇ  Ｍｅｔｈｏｄ」）、米国特許出願第１１／８９２０４５号（Ｏｅｄａ、２００７年８月２０日出願、件名「Ｓｔｏｒａｇｅ  ａｎｄ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｓｉｏｎｉｎｇ  ｆｏｒ  Ｖｉｒｔｕａｌｉｚｅｄ  ａｎｄ  Ｇｅｏｇｒａｐｈｉｃａｌｌｙ  Ｄｉｓｐｅｒｓｅｄ  Ｄａｔａ  Ｃｅｎｔｅｒｓ」）などがある。
【発明の開示】
【課題を解決するための手段】
【０００６】
[0008]  本発明は、アプリケーションのマイグレーションを可能にするために、現在のパフォーマンス状態に準じてアプリケーションを実行することが可能な、１つまたは複数の適切なデータセンタを自動的に見つけるソリューションを提供する。本発明の実施形態は、データセンタにかかる負荷に応じてデータセンタ内のリソース割り当てを動的に変更して、ユーザの負荷が変動する場合でも各ユーザに対するパフォーマンスおよびセキュリティを維持することに備える。本発明のこれらおよび他の特徴および利点は、当業者であれば、以下の好ましい実施形態の詳細説明により明らかになるであろう。
【０００７】
[0009]  添付図面は、前述の概要説明、ならびに後述の好ましい実施形態の詳細説明とともに、現時点で考えられている本発明の最良の形態の好ましい実施形態の原理を例示および説明することに役立つ。
【発明を実施するための最良の形態】
【０００８】
[0027]  以下の、本発明の詳細説明では、本開示の一部をなす添付図面を参照しており、添付図面には、本発明を実践することが可能な特定の実施形態が、限定ではなく例示として示されている。図面においては、類似の参照符号は、複数の図を通して実質的に同様の構成要素を表している。さらに、図面、先述の説明、および後述の説明は、例示的かつ説明的であるに過ぎず、いかなるかたちでも本発明または本出願の範囲を限定するものではない。
【０００９】
[0028]  アプリケーションを適正なパフォーマンスレベルで実行するためには、しかるべきネットワーク、サーバ、およびストレージシステムが必要である。アプリケーションのパフォーマンスを一定レベルに維持するためには、これらの構成要素のそれぞれのパフォーマンスを監視および維持する必要がある。本発明の実施形態は、アプリケーションのマイグレーションを受ける候補であるデータセンタが、アプリケーションがマイグレーションされた場合にアプリケーションのパフォーマンスを維持することが可能かどうかを確認するシステムおよび方法を開示する。本発明は、データセンタが、十分なネットワーク帯域幅、十分なサーバコンピューティング能力、ならびに十分なストレージ容量および適切なサーバからの十分なアクセス速度を提供できるかどうかをチェックすることによって、これを実現することが可能である。
【００１０】
[0029]  本発明の実施形態は、統合管理システムを含み、この統合管理システムは、あるアプリケーションを別のデータセンタにマイグレーションすることが可能かどうかを、他のデータセンタの統合管理システムと通信することによって決定する。統合管理システムは、ネットワーク要件、サーバ要件、およびストレージ要件を含むマイグレーション要求文書を生成する。マイグレーション要求文書は、発信側データセンタによって、他のデータセンタに送られる。マイグレーション要求文書を受け取った、データセンタの統合管理システムは、それぞれのローカル環境の状況をチェックする。各統合管理システムは、ネットワークレイヤ、サーバレイヤ、およびストレージレイヤをチェックする。ネットワークレイヤに関しては、統合管理システムは、指定された要件を満たすのに十分な利用可能帯域幅があるかどうかを決定する。サーバレイヤに関しては、統合管理システムは、指定された仮想マシンマネージャと、指定された要件を満たすのに十分な利用可能サーバ容量とがあるかどうかを決定する。ストレージレイヤに関しては、統合管理システムは、指定された要件を満たす空き容量を有する利用可能ボリュームがあるかどうかを決定する。統合管理システムは、そのデータセンタで実行されている他のアプリケーションに悪影響を及ぼすことなく、アプリケーションが使用する必要があるボリュームを、同等のアクセスパフォーマンスパターンを有するアレイグループから切り分けることが可能かどうかをチェックする。
[0030]  複数のデータセンタ間の関係
【００１１】
[0031]  図１に示されるように、複数のデータセンタ１０ａ、１０ｂ、１０ｃが、ネットワーク１２を介する通信のために、互いに接続されている。データセンタ１０は、典型的には、地理的に互いに分散しており、ネットワーク１２は、ＷＡＮ（ワイドエリアネットワーク）、ＬＡＮ（ローカルエリアネットワーク）などの任意のネットワークタイプであってよい。各データセンタ１０は、統合管理システム１１１、ネットワーク管理サーバ１３１、サーバ管理サーバ１３２、ストレージ管理サーバ１３３、１つまたは複数のネットワークスイッチ１４１、１つまたは複数のアプリケーションを実行するサーバ１４２、ＳＡＮスイッチ１４３、およびストレージ１４４を備えることが可能である。ネットワーク管理サーバ１３１は、クライアントと通信するために、ネットワークスイッチ１４１の動作を管理する。サーバ管理サーバ１３２は、サーバ１４２の動作および構成を管理する。ストレージ管理サーバ１３３は、ＳＡＮスイッチ１４３およびストレージ１４４の動作および構成を管理する。
【００１２】
[0032]  統合管理システム１１１は、マイグレーション受け入れプログラム１２１、リソースマネージャ１２２、およびマイグレーション要求プログラム１２３を含む。アプリケーションのマイグレーションが実施される場合は、データセンタ１０ａ、１０ｂ、または１０ｃのうちの１つのマイグレーション要求プログラム１２３からマイグレーション要求文書１３が送られ、マイグレーション要求文書１３は、データセンタ１０ａ、１０ｂ、１０ｃのうちの残りのデータセンタのマイグレーション受け入れプログラム１２１によって受け取られる。マイグレーション要求文書１３は、受け取り側のデータセンタのリソースマネージャ１２２によって処理される。なお、図１には３つのデータセンタ１０が示されているが、本発明の下では任意の数のデータセンタを組み込むことが可能であることに注意されたい。
[0033]  データセンタのハードウェアアーキテクチャおよびソフトウェアモジュール
【００１３】
[0034]  図２は、各データセンタ１０に収容されることが可能なハードウェアアーキテクチャおよびソフトウェアモジュールの詳細を示す。図２に示されるように、管理ＬＡＮ  ２０２が、統合管理システム１１１と、ネットワーク管理サーバ１３１と、サーバ管理サーバ１３２と、ストレージ管理サーバ１３３と、ＶＰＮ（仮想プライベートネットワーク）ルータ／スイッチ１４１ａと、ＶＬＡＮ（仮想ローカルエリアネットワーク）スイッチ１４１ｂと、サーバ１４２と、ＳＡＮスイッチ１４３と、ストレージ１４４とを接続して、それらによる通信を可能にし、さらに、ルータ２１経由のネットワーク１２との通信を可能にする。統合管理システム１１１、ネットワーク管理サーバ１３１、サーバ管理サーバ１３２、およびストレージ管理サーバ１３３は、それぞれが、システムバス２１２を通して内部接続されているＣＰＵ  ２２２、メモリ２２３、ＮＩＣ（ネットワークインターフェースカード）２２１、およびディスクドライブ２２４を含む汎用コンピュータである。統合管理システム１１１は、マイグレーション受け入れプログラム１２１、マイグレーション要求プログラム１２３、およびリソースマネージャプログラム１２２を含み、これらは、ＣＰＵ  ２２２ａによる実行に備えて、メモリ２２３ａまたは他のコンピュータ可読媒体にロードされる。連合データセンタテーブル２１３、受信済みマイグレーション要求テーブル２１４、および送信済みマイグレーション要求テーブル２１５が、ディスクストレージ２２４ａに格納され、やはりメモリ２２３ａにロードされることが可能である。統合管理システム１１１は、ユーザインターフェース２１１を含み、ユーザインターフェース２１１は、マイグレーション要求を送信したり、データセンタの管理対象データを管理者などに対して表示したりする機能を実施するために使用される。
【００１４】
[0035]  ネットワークスイッチ１４１は、仮想プライベートネットワーク（ＶＰＮ）２０３の実現を可能にするＶＰＮルータ１４１ａを含むことが可能である。仮想プライベートネットワークサービスは、インターネットのような共用公衆ネットワークを介して、顧客サイト２０４とサービスプロバイダのデータセンタ１０との間にセキュアなネットワークパスを提供する。各ＶＰＮサービス顧客は、ＶＰＮと接続されるべき１つまたは複数のサイトを有する。ＶＰＮパスの一方のエンドポイントは、顧客のサイトのＶＰＮルータ２０５であり、ＶＰＮパスの他方のエンドポイントは、データセンタ１０内にあるＶＰＮルータ１４１ａにある。データセンタ１０内のＶＰＮルータ１４１ａは、複数のＶＰＮパスを集約し、ＶＰＮ  ＩＤで顧客を識別し、顧客から受け取ったトラフィックを仮想ＬＡＮ（ＶＬＡＮ）スイッチ１４１ｂに送る。
【００１５】
[0036]  ＶＰＮルータ１４１ａでは、それぞれが異なるＶＰＮ顧客を担当する、複数の仮想ルータ（ＶＲ）プログラム２０６を実行することが可能である。たとえば、図２では、顧客サイトＡ  ２０４ａからのＶＰＮパスが、ＶＰＮルータ１４１ａの仮想ルータＡ  ２０６ａのところでターミネートされている。同様に、顧客サイトＢ  ２０４ｂからのＶＰＮパスが、仮想ルータＢ  ２０６ｂに接続されている。各仮想ルータ２０６が、それぞれのルーティングテーブルと、担当する個々の顧客の専用の他のネットワークリソースを有するため、各ＶＰＮ顧客からのパケットは、ネットワークの観点では、明確に分離されている。これにより、たとえば、２人の異なる顧客が、プライベートアドレス範囲において、同じオーバーラップＩＰアドレス空間を使用することが可能になる。仮想ルータＡ  ２０６ａは、これらのパケットに顧客Ａ用のＶＬＡＮタグを追加し、そのパケットをＶＬＡＮスイッチ１４１ｂへ送る。ＶＬＡＮタグは、３つ以上の論理的に独立したネットワークを同じＬＡＮセグメントに重ねることが可能なように、ＬＡＮフレームに追加される情報である。ＶＬＡＮタグのユーザのより詳細な仕様および説明が、参照により本明細書に組み込まれている、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ，  Ｉｎｃ．）によって公開されたＩＥＥＥ  ８０３．１Ｑ規格に定義されている。サービス品質を管理する技術は、たとえば、ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）によって定義されているＭＰＬＳ（Ｍｕｌｔｉ  Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）  ＤｉｆｆＳｅｒｖ  （Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ）である。
【００１６】
[0037]  サーバ１４２は、１つまたは複数の物理サーバ２３２と、サービスプロセッサ（ＳＶＰ）２３１とを含む。図示された実施形態では、ＰＳ−００１からＰＳ−００８までのラベルが付けられた８つの物理サーバ２３２があるが、物理サーバ２３２の数は変更可能である。複数の仮想マシンマネージャ（ＶＭＭ）２３３が利用可能であり、本発明の実施形態では、顧客は、これらのうちの１つを選択して、そこで自分のアプリケーションを実行することが可能である。図２では、仮想マシンマネージャＶＭＭ−００１  ２３３ａ、ＶＭＭ−００２  ２３３ｂ、およびＶＭＭ−００３  ２３３ｃが、利用可能であるとして示されている。仮想マシンマネージャ２３３が担う役割として、複数の物理サーバを組み合わせて１つの仮想サーバにすることと、１つの物理サーバを複数の仮想サーバに分割することとがある。たとえば、図２では、ＶＭＭ−００１は、ＰＳ−００１からＰＳ−００４までの４つの物理サーバを組み合わせ、これら４つの物理サーバのリソースを２つの仮想サーバ（仮想マシン）ＶＭ−１０１  ２３４ａおよびＶＭ−１０２  ２３４ｂに分割している。さらに、ＶＭＭ−００２  ２３３ｂは、物理サーバＰＳ−００５、ＰＳ−００６を組み合わせ、それらにおいて１つの仮想サーバＶＭ−２０１  ２３４ｃをアクティブにし、ＶＭＭ−００３  ２３３ｃは、物理サーバＰＳ−００７においてアクティブになっているだけである。一方、物理サーバＰＳ−００８は、仮想化が適用されない生の物理サーバである。
【００１７】
[0038]  仮想マシンマネージャ２３３は、それらが制御しているサーバのＣＰＵ能力およびメモリを、顧客のニーズに応じて割り当てることが可能である。たとえば、各仮想サーバまたは物理サーバは、特定のＶＬＡＮに属する。しかしながら、ＶＬＡＮセグメント上のＶＬＡＮスイッチ１４１ｂは、ＶＰＮルータ１４１ａからの、ＶＬＡＮタグが付けられたパケットを、ＶＬＡＮセグメントに接続された適切なサーバに転送するように構成されるので、各サーバがどのＶＬＡＮに属しているかを各サーバが知ることは必要ではない。さらに、各仮想サーバまたは物理サーバは、ストレージエリアネットワーク（ＳＡＮ）、すなわち、ＳＡＮスイッチ１４３に接続された１つまたは複数のホストバスアダプタ（ＨＢＡ）（図示せず）を有する。ＳＡＮの観点では、各仮想サーバまたは物理サーバは、そのＨＢＡアドレスまたはポートで識別される。図２の構成では、各仮想サーバまたは物理サーバは、ＳＡＮスイッチ１４３に接続されている。
【００１８】
[0039]  ストレージ１４４は、サーバ１４２によって使用される複数の論理ストレージボリューム２４３を提供する、１つまたは複数のストレージシステムを含む。各ボリューム２４３は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）として構成されることが可能なアレイグループ２４２から切り分けられることが可能である。構成によっては、各アレイグループ２４２が、異なるタイプのディスクおよび／または異なるレベルのＲＡＩＤによって構成され、それによって異なるレベルのパフォーマンスを提供することが可能である。図２では、ボリュームＶｏｌ−１０１  ２４３ａおよびＶｏｌ−１０２  ２４３ｂがアレイグループ２４２ａから切り分けられ、ボリュームＶｏｌ−２０１  ２４３ｃおよびＶｏｌ−２０２  ２４３ｄがアレイグループ２４２ｂから切り分けられ、ボリュームＶｏｌ−３０１  ２４３ｅおよびＶｏｌ−３０２  ２４３ｆがアレイグループ２４２ｃから切り分けられている。各アレイグループ２４２は、ストレージコントローラ２４１によって制御される。仮想サーバ２３４、物理サーバ２３２、およびストレージボリューム２４３は、ストレージエリアネットワーク（ＳＡＮ）を介して接続されることが可能である。この接続は、ファイバチャネルであっても、他のタイプの接続であってもよい。図２では、ＳＡＮスイッチ１４３により、サーバ２３２、２３４、およびボリューム２４３が、ＳＡＮとして接続されている。異なる顧客向けのサーバおよびボリュームを互いに隔離するために、特定ストレージボリュームへのアクセスが特定の仮想サーバ２３４または物理サーバ２３２に限定されるように、ＳＡＮスイッチ１４３および／またはストレージボリューム２４２を構成することが可能である。ＳＡＮスイッチの場合、このセキュリティ機能は「ポートゾーニング」と呼ばれる。一方、ストレージ装置の場合、このセキュリティ機能は「ＬＵＮセキュリティ」と呼ばれることが多い（「ＬＵＮ」は、論理装置番号を表す）。パフォーマンスの観点では、同様のアクセスパターンを有するボリュームが同じアレイグループにあることが望ましい。ここでの「アクセスパターン」という言葉は、読み出し／書き込みアクセス比およびランダム／シーケンシャルアクセス比を意味する。
【００１９】
[0040]  典型的には、アプリケーションは、そのアプリケーション自身の仮想サーバ２３４で実行されることが可能である。たとえば、第１のアプリケーションがＶＭ−１０１  ２３４ａで実行され、第２のアプリケーションがＶＭ−１０２  ２３４ｂで実行され、同様に、別のアプリケーションが別の仮想サーバで実行されることが可能である。第１のアプリケーションは、仮想ルータＡ  ２０６ａを使用することが可能であり、第２のアプリケーションは、仮想ルータＢ  ２０６ｂを使用することが可能である。さらに、第１のアプリケーションは、ボリュームＶｏｌ−１０１  ２４３ａおよびＶｏｌ−１０２  ２４３ｂを使用することが可能であり、第２のアプリケーションは、ボリュームＶｏｌ−２０１  ２４３ｃおよびＶｏｌ−２０２  ２４３ｄを使用することが可能である。したがって、仮想化により、ネットワーク、サーバ、およびストレージの各リソースを、各種アプリケーションに配分することが可能である。本発明の実施形態は、アプリケーションのマイグレーションを受けるのに適した候補データセンタを自動的に見つける。これは、たとえば、そのアプリケーションが現在稼動しているデータセンタが過負荷状態である場合や、それ以外の理由でアプリケーションのマイグレーションが必要になった場合（または、望ましくなった場合）に行われる。
【００２０】
[0041]  図３は、ネットワーク管理サーバ１３１のさらなる詳細を示す。ネットワーク管理サーバ１３１のＮＩＣ（ネットワークインターフェースカード）２２１ｂは、管理ＬＡＮ  ２０２に接続され、統合管理システム１１１へコマンドパケットを送信したり、統合管理システム１１１からコマンドパケットを受信したりすることに使用される。ネットワーク管理サーバ１３１はさらに、ＶＰＮ構成プログラム３２５を含む。ＶＰＮ構成プログラム３２５は、メモリ２２３ｂ（または他のコンピュータ可読媒体）にロードされ、ＣＰＵ  ２２２ｃによって実行される。ＶＰＮ構成プログラム３２５は、仮想ルータ２０６の作成を含む、ＶＰＮルータ１４１ａの構成のために、ＶＰＮルータ１４１ａと通信する。ＶＰＮパス間のマッピングに関する情報、その情報に関連付けられたＶＬＡＮタグ、およびネットワーク帯域幅情報が、ディスク２２４ｂのＶＰＮリソーステーブル３１１に格納される。ＶＰＮリソーステーブル３１１の内容については、後で、図６を参照して詳述する。
【００２１】
[0042]  図４は、サーバ管理サーバ１３２のさらなる詳細を示す。ＮＩＣ  ２２１ｃは、サーバ管理サーバ１３２を管理ＬＡＮ  ２０２に接続し、統合管理システム１１１へコマンドパケットを送信したり、統合管理システム１１１からコマンドパケットを受信したりすることに使用される。サーバ管理サーバ１３２は、ＣＰＵ  ２２２ｃによって実行される仮想マシンリソース管理プログラム４２５をメモリ２２３ｃ（または他のコンピュータ可読媒体）に含む。仮想マシンリソース管理プログラム４２５は、ＶＬＡＮ設定を構成するために、ＶＬＡＮスイッチ１４１ｂと通信する。仮想マシンリソース管理プログラム４２５はまた、仮想サーバ２３４を管理するために、サーバ１４２上の１つまたは複数の仮想マシンマネージャ２３３と通信する。仮想サーバ２３４の管理は、ＣＰＵおよびメモリリソースを割り当てることと、仮想サーバ２３４を起動および停止することと、ネットワーク設定を構成することと、を含む。仮想マシンリソース管理プログラム４２５はまた、生の物理サーバ（たとえば、図２のＰＳ−００８）があればそれを管理するために、１つまたは複数の物理サーバ２３２またはＳＶＰ（サービスプロセッサ）２３１と通信する。物理サーバの管理は、ＣＰＵおよびメモリリソースを割り当てることと、論理パーティショニングを行うことと、仮想サーバまたは仮想マシンマネージャを起動および停止することと、ネットワーク設定を構成することと、を含む。
【００２２】
[0043]  仮想マシンマネージャ２３３、仮想サーバ２３４、および物理サーバ２３２の間の関係の情報は、ディスク２２４ｃまたはメモリ２２３ｃにある仮想マシンリソーステーブル４１１に格納される。仮想サーバ２３４とＶＬＡＮとの間のマッピングに関する情報も、仮想マシンリソーステーブル４１１に格納される。仮想マシンリソーステーブル４１１の内容については、後で、図７を参照して詳述する。さらに、ＣＰＵパフォーマンスインデックスを変換するための情報が、ディスク２２４ｃまたはメモリ２２３ｃにあるＣＰＵ処理時間変換テーブル４１２に格納される。ＣＰＵパフォーマンスインデックス、およびＣＰＵ処理時間変換テーブル４１２の内容については、後で、図８を参照して詳述する。
【００２３】
[0044]  図５は、ストレージ管理サーバ１３３のさらなる詳細を示す。ＮＩＣ  ２２１ｄは、ストレージ管理サーバ１３３を管理ＬＡＮ  ２０２に接続し、統合管理システム１１１へコマンドパケットを送信したり、統合管理システム１１１からコマンドパケットを受信したりすることに使用される。ストレージ管理サーバ１３３はさらに、ＣＰＵ  ２２２ｄによって実行されるストレージボリューム管理プログラム５２５およびボリュームアクセスパフォーマンス収集プログラム５２６を、メモリ２２３ｄまたは他のコンピュータ可読媒体に含む。ストレージボリューム管理プログラム５２５は、ＳＡＮスイッチ１４３を構成するなどしてＳＡＮ設定を構成するために、ＳＡＮスイッチ１４３と通信する。ストレージボリューム管理プログラム５２５はまた、ボリューム２４３に関するボリューム情報を取得するために、ストレージ１４４と通信する。ディスクアレイグループ２４２とボリューム２４３との関係、各ボリューム２４３の容量、各アレイグループ２４２の空き容量、サーバ２３２、２３４とボリューム２４２との間のマッピング、およびボリュームアクセス時間の各情報は、ストレージボリューム管理プログラム５２５およびボリュームアクセスパフォーマンス収集プログラム５２６によって取得され、ディスク２２４ｄまたはメモリ２２３ｄにあるストレージボリュームリソーステーブル５１１に格納される。ストレージボリュームリソーステーブル５１１の内容については、後で、図９を参照して詳述する。
[0045]  ＶＰＮリソーステーブル
【００２４】
[0046]  図６は、ネットワーク管理サーバ１３１に存在可能なＶＰＮリソーステーブル３１１を示す。ＶＰＮリソーステーブル３１１は、ＶＰＮ構成プログラム３２５がＶＰＮルータ１４１ａを構成するために使用する構成情報を含む。「ＶＰＮ−ＩＤ」６０１は、「サイト」エントリ６０２（たとえば、顧客サイト）がどのＶＰＮ仮想ルータ（ＶＲ）に対応するかを識別する。「アドレス１」６０３および「アドレス２」６０４は、それぞれ、ＶＰＮパスまたはトンネルの各エンドポイントのＩＰアドレス値を保持する（たとえば、顧客サイトのＩＰアドレスと、仮想ルータのＩＰアドレスとを、それぞれ保持する）。「帯域幅」６０５は、「アドレス１」６０３と「アドレス２」６０４との間のネットワーク接続のサービス品質を所望レベルで維持するために、ＶＰＮルータ１４１ａにおいて確保されているネットワーク帯域幅値を示す。「ＶＬＡＮ−ＩＤ」６０６は、ＶＰＮパス経由でこのサイトから受信されるパケットに割り当てられるＶＬＡＮタグ値である。
[0047]  仮想マシンリソーステーブル
【００２５】
[0048]  図７は、サーバ管理サーバ１３２に存在可能な仮想マシンリソーステーブル４１１を示す。仮想マシンリソーステーブル４１１は、サーバ１４２を管理するために仮想マシンリソース管理プログラム４２５が使用する構成情報を含む。「仮想マシンマネージャ」７０１は、仮想マシン仮想サーバの作成、起動、および停止の各プロセスを実施する仮想マシンソフトウェアが使用されるプラットフォームを識別する。たとえば、ＶＭＭ−００１  ７１１は、第１のブランドの仮想マシン管理ソフトウェアであってよく、ＶＭＭ−００２  ７１２は、第２のブランドの仮想マシン管理ソフトウェアであってよく、ＶＭＭ−００３  ７１４は、第３のブランドの仮想マシン管理ソフトウェアであってよい。仮想サーバアプリケーションに現在使用されている仮想マシンソフトウェアとしては、たとえば、「ＶＭｗａｒｅ  Ｓｅｒｖｅｒ」（ＶＭｗａｒｅ，  Ｉｎｃ．  ｏｆ  Ｐａｌｏ  Ａｌｔｏ，  ＣＡから入手可能）、「ＭＳ  Ｖｉｒｔｕａｌ  Ｓｅｒｖｅｒ」（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．  ｏｆ  Ｒｅｄｄｉｎｇ，  ＷＡから入手可能）、「ＸｅｎＳｅｒｖｅｒ」（Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ  ｏｆ  Ｆｔ．  Ｌａｕｄｅｒｄａｌｅ，  ＦＬから入手可能）などがあるが、本発明は、どの特定の仮想マシンソフトウェアにも限定されない。さらに、「仮想マシンマネージャ」７０１の値が、７１６に示されるように「ＮＯＮ−ＶＭＭ」である場合、これは、仮想化メカニズムが使用されていないこと（すなわち、サーバが生の物理サーバであること）を意味する。図７によれば、４つの仮想サーバＶＭ−１０１、ＶＭ−１０２、ＶＭ−１０３、およびＶＭ−１０４が仮想マシンマネージャＶＭＭ−００１上で動作しており、２つの仮想サーバＶＭ−２０１およびＶＭ−２０２が仮想マシンマネージャＶＭＭ−００２上で動作しており、３つの仮想サーバＶＭ−３０１、ＶＭ−３０２、およびＶＭ−３０３が仮想マシンマネージャＶＭＭ−００３上で動作している。１つのサーバ（ＰＳ−００８）が、仮想化されない物理サーバとして動作している。
【００２６】
[0049]  仮想マシンリソーステーブル４１１では、「仮想サーバ」エントリ７０２が、各仮想マシンマネージャの環境に現在存在する仮想マシンを識別する。たとえば、ＶＭＭ−００１  ７１１は、現在動作中の仮想マシンを４つ含む。さらに、「仮想サーバエントリ」７０２のいくつかまたはすべてが「空き」と示されている場合、これは、仮想マシンマネージャがＣＰＵ  ７０５およびメモリ７０６の空き容量を用いて仮想サーバを追加作成するために使用できる空き容量を示している。「物理サーバ」７０３は、各「仮想マシンマネージャ」７０１によるサーバ仮想化を実現するために使用される１つまたは複数の物理サーバを識別する。「ＣＰＵタイプ」７０４は、各物理サーバ７０３のＣＰＵタイプである。たとえば、異なるサーバには、使用年数、初期購入仕様などに応じて、異なるＣＰＵが搭載されている場合がある。「ＣＰＵ割り当て」７０５および「メモリ割り当て」７０６は、それぞれ、どれだけのＣＰＵ処理能力およびメモリリソースが「仮想サーバ」７０２に現在割り当てられているかを示す。「パフォーマンス能力」７０７は、対応する「仮想サーバ」７０２の「ＣＰＵ割り当て」７０５の合計値であるパフォーマンス能力を示す。たとえば、ＶＭＭ−００２  ７１２によって作成および管理されるＶＭ−２０２には、物理サーバＰＳ−００５のＣＰＵ能力の１５％と、物理サーバＰＳ−００６のＣＰＵ能力の２０％とが割り当てられ、合計では、ＣＰＵタイプＣＰＵ−００１のＣＰＵ能力の３５％が割り当てられる。「ＶＬＡＮ−ＩＤ」７０８は、対応する「仮想サーバ」７０２に割り当てられたＶＬＡＮタグ値である。「ＶＬＡＮ−ＩＤ」７０８は、リソースマネージャプログラム１２２が、どのサーバが同じＶＬＡＮ内にあるか、すなわち、どのサーバがアプリケーションを実行しているかを決定するために使用することが可能である。図１３を参照して後述するように、第１のデータセンタ（すなわち、マイグレーション要求側）が、アプリケーションをマイグレーションする要求を識別すると、そのデータセンタは、そのアプリケーションに関してどのサーバが含まれるかを識別する必要がある。
[0050]  ＣＰＵ処理時間変換テーブル
【００２７】
[0051]  図８は、サーバ管理サーバ１３２に存在可能なＣＰＵ処理時間変換テーブル４１２を示す。このテーブルは、各種サーバにおける各種ＣＰＵタイプおよび仮想マシンマネージャソフトウェアタイプに対して期待されるパフォーマンスレベルを予測できるように、仮想マシンマネージャおよびＣＰＵタイプに応じてパフォーマンスインデックスを変換するために用いられる情報を含む。「仮想マシンマネージャ」エントリ８０１は、仮想サーバの作成、起動、および停止を実施する仮想マシン管理ソフトウェアのソフトウェアプラットフォームを識別する。「仮想マシンマネージャ」エントリ８０１が「ＮＯＮ−ＶＭＭ」の場合、これは、仮想化メカニズムが使用されていないことを意味する。「ＣＰＵタイプ８０２」は、物理サーバのＣＰＵタイプである。「パフォーマンスインデックス」８０３は、パフォーマンスの比較インデックスである。図８に示されたパフォーマンスインデックス値８０３は、特定のプログラム（たとえば、ベンチマーク）が特定のＶＭＭおよび特定のＣＰＵで実行された際に測定されたパフォーマンスを表す。各ＣＰＵタイプのパフォーマンスは、ＣＰＵタイプが同じでもＶＭＭによって変わり、ＶＭＭのパフォーマンスは、ＣＰＵタイプによって変わる。したがって、マイグレーションされるアプリケーションに対して要求パフォーマンスレベルが確保可能であるように、このテーブルを用いてパフォーマンスを変換する必要がある。たとえば、エントリ８１１では、ＶＭＭ−００１を実行するＣＰＵタイプＣＰＵ−００１が、第１の時間帯に特定のベンチマークテストを実施した。エントリ８１２では、同じＶＭＭ−００１を実行するＣＰＵタイプＣＰＵ−００２が、同じベンチマークテストを実施するために、ＣＰＵタイプＣＰＵ−００１の場合の１２０パーセントの時間を要求したため、パフォーマンスインデックスは１２０である。同様に、エントリ８１７では、ＶＭＭ−００３を実行するＣＰＵタイプＣＰＵ−００１が、そのベンチマークテストを実施するために、６５パーセントの時間しか要求しなかったため、パフォーマンスインデックスは６５である。したがって、ＣＰＵ処理時間変換テーブル４１２をコンパイルすることにより、マイグレーションのターゲットである、どの物理サーバが、アプリケーションを所望のパフォーマンスレベルで実行するのに十分な処理能力を有するかを評価することが可能である。さらに、図示されたパフォーマンスインデックスでは、より大きなインデックス数値が、特定のＣＰＵタイプのベンチマークスコアに対して、より低いパフォーマンスを示すが、各種ＣＰＵタイプの処理能力の比を決定するなど、他の測定方式を用いて相対ＣＰＵパフォーマンスを決定することも可能である。
[0052]  ストレージボリュームリソーステーブル
【００２８】
[0053]  図９は、ストレージ管理サーバ１３３に存在可能なストレージボリュームリソーステーブル５１１を示す。ストレージボリュームリソーステーブル５１１は、ＳＡＮスイッチ１４３およびストレージ１４４を管理するためにストレージボリューム管理プログラム５２５が使用する構成情報を含む。「アレイグループ」エントリ９０１は、複数のストレージ媒体（ディスクドライブなど）からなるアレイグループを識別する。「ディスクタイプ」９０２は、各アレイグループを構成するストレージ媒体の種類を示す。「ＲＡＩＤタイプ」９０３は、各「アレイグループ」９０１の構成に用いられるＲＡＩＤレベルを示し、「ビジーレート」９０４、「読み出し／書き込み比」９０５、および「ランダム／シーケンシャル比」９０６は、ストレージボリューム管理プログラム５２５によって収集された、各「アレイグループ」９０１の統計データである。「ビジーレート」９０４は、特定のアレイグループがどのくらいビジーかを示すものであり、たとえば、一定時間にわたって測定された、そのアレイグループがＩ／Ｏ操作のために占有される時間パーセンテージ（たとえば、秒あたりのＩ／Ｏ操作時間）を示す。「読み出し／書き込み比」９０５は、一定時間にわたって測定された、アクセス操作の全数に対する読み出しアクセス操作の数の比である。「ランダム／シーケンシャル比」９０６は、全アクセス数に対するランダムアクセス数（すなわち、シーケンシャル読み出しまたは書き込みではなく、ランダムシークを必要とするディスクへのアクセスの数）の比であり、これを、ディスクの断片化の多さの指標とすることが可能である。さらに、同じアレイグループでは、アプリケーションに対するアクセス特性が同じであることが望ましい。したがって、「読み出し／書き込み比」９０５および「ランダム／シーケンシャル比」９０６は、アプリケーションマイグレーションの適切な受け側を決定するために指定された基準として使用されることが可能である。
【００２９】
[0054]  「ボリューム」エントリ９０７は、現在、特定のアレイグループから切り分けられている論理ストレージエクステント（すなわち、論理ボリューム２３４）を識別する。「ボリューム」エントリ９０７の値が「空き」の場合、これは、特定のアレイグループが、１つまたは複数の新しいボリュームを作成するための空きストレージ容量を有することを意味する。「容量」９０８は、ボリュームエントリ９０７にリストされたボリュームの容量、または残っている空き容量である。たとえば、図９の行９１１では、ＶＯＬ−１０１、ＶＯＬ−１０２、およびＶＯＬ−１０３がアレイグループＡＧ−００１から切り分けられており、ＡＧ−００１は、新しいボリュームを切り分けるための空き容量を有する。図９では、ボリュームＶＯＬ−１０１は、１．０テラバイトの容量を有し、アレイグループＡＧ−００１に残っている空き容量は、２．５テラバイトである。「サーバ」エントリ９０９は、「ボリューム」エントリ９０７で識別された特定のボリュームを使用する仮想サーバまたは物理サーバをリストする。たとえば、図９では、ＶＯＬ−１０１は、仮想サーバＶＭ−１０１からのアクセスが可能であり、ＶＯＬ−１０２は、物理サーバＰＳ−００８からのアクセスが可能である。サーバから見ると、仮想サーバＶＭ−１０１は、３つのボリューム、すなわち、ＶＯＬ−１０１、ＶＯＬ−２０１、およびＶＯＬ−２０３を使用する。「アクセス時間」９１０は、ボリュームアクセスパフォーマンス収集プログラム５２６によって収集される統計データであって、特定ボリューム上のデータにサーバがどのくらい素早くアクセスできるかについて、一定時間にわたって測定された平均パフォーマンス値を示す。
[0055]  連合データセンタテーブル
【００３０】
[0056]  図１０は、統合管理システム１１１に存在可能な連合データセンタテーブル２１３を示す。連合データセンタテーブル２１３は、マイグレーション要求プログラム１２３が、マイグレーション要求を行う際に、マイグレーション要求をどのデータセンタに送るべきかを決定するために使用するデータセンタ情報を含む。「データセンタＩＤ」１００１は、各データセンタの識別子であり、「要求先アドレス」１００２は、マイグレーション要求のターゲットであるデータセンタの宛先アドレスである。後述されるように、マイグレーション要求プログラム１２３は、マイグレーション要求文書１３を、連合データセンタテーブル２１３にリストされた、データセンタの「要求先アドレス」１００２へ送る。要求は、ターゲットデータセンタにおいてマイグレーション受け入れプログラム１２１によって受け取られ、マイグレーション受け入れプログラム１２１は、適切な返答を準備して応答する。「要求優先度」エントリ１００３は、マイグレーション要求プログラム１２３がマイグレーション要求を準備する際に使用される優先性情報を示し、典型的には、管理者によって割り当てられる。たとえば、優先度がより高いデータセンタが、優先度がより低い他のデータセンタより前にマイグレーション要求を受け取る。
[0057]  受信済み／送信済みマイグレーション要求テーブル
【００３１】
[0058]  図１１Ａは、統合管理システム１１１に存在可能な受信済みマイグレーション要求テーブル２１４を示す。受信済みマイグレーション要求テーブル２１４は、受信済みマイグレーション要求テーブル２１４を保持するデータセンタにおいてマイグレーション受け入れプログラム１２１が受け取ったマイグレーション要求（すなわち、マイグレーション要求文書１３）の履歴記録と、生成された結果とを含む。「ＩＤ」１１０１は、受信済みマイグレーション要求（ＭＲＲ）に割り当てられた識別子である。「要求元」エントリ１１０２は、マイグレーション受け入れプログラム１２１が受け取った要求の発信元であるデータセンタを識別する。「要求受信日時」１１０３は、マイグレーション受け入れプログラム１２１が他のデータセンタから要求を受け取った日時を記録する。「ネットワーク結果」１１０４、「サーバ結果」１１０５、および「ストレージ結果」１１０６は、後で詳述されるように、マイグレーション要求に応えて、ネットワーク、サーバ、およびストレージの容量をチェックした結果を示す。「マイグレーション要求内容」１１０７は、マイグレーション受け入れプログラム１２１が受け取ったマイグレーション要求文書１３のデータ全体を含む。
【００３２】
[0059]  図１１Ｂは、各データセンタの統合管理システム１１１で保持されることが可能な送信済みマイグレーション要求テーブル２１５を示す。送信済みマイグレーション要求テーブル２１５は、前述の受信済みマイグレーション要求テーブル２１４と同様であるが、マイグレーション要求プログラム１２３が他のデータセンタに送ったマイグレーション要求（すなわち、マイグレーション要求文書１３）の履歴記録を含む。「ＩＤ」１１２１は、送信済みマイグレーション要求（ＭＲＳ）に割り当てられた識別子である。「要求ターゲット」１１２２は、マイグレーション要求プログラム１２３が要求を送った先のデータセンタを識別する。「要求送信日時」１１２３は、マイグレーション要求プログラム１２３が他のデータセンタへ要求を送った日時を記録する。「ネットワーク結果」１１２４、「サーバ結果」１１２５、および「ストレージ結果１１２６」は、後で詳述されるように、マイグレーション要求に対して、他のデータセンタがネットワーク、サーバ、およびストレージについての容量およびパフォーマンスの要求を満たすことができたかどうかについての回答結果を示す。「マイグレーション要求内容」１１２７は、マイグレーション要求プログラム１２３が他のデータセンタに送ったマイグレーション要求文書１３のデータ全体を含むことが可能である。
[0060]  マイグレーション要求文書
【００３３】
[0061]  図１２は、マイグレーション要求プログラム１２３が別のデータセンタへのマイグレーション要求を開始するために作成および送信するマイグレーション要求文書１３を示す。マイグレーション要求文書１３は、ＶＰＮ要求部１３５、サーバ要求部１３６、およびストレージ要求部１３７の３つの部分からなる。ＶＰＮ要求部１３５は、「帯域幅」１２１１を含む、要求されるネットワークについての情報を有する。図１２では、「帯域幅」エントリ１２１１は、１．５Ｍｂｐｓの帯域幅が要求されることを示す。「要求ＩＤ」エントリ１２１２、１２３１、および１２５１は、この特定のマイグレーション要求文書の一意識別子である。「要求ＩＤ」は、マイグレーション要求文書１３内の各要求部１３５、１３６、１３７をつなぐ役割を果たす。サーバ要求部１３６は、要求される「仮想マシンマネージャタイプ」１２３２、「ＣＰＵタイプ」１２３３、および「ＣＰＵ割り当て」１２３４についての情報を含む。たとえば、図１２は、「仮想マシンマネージャタイプ」１２３２としてＶＭＭ−００１が要求され、「ＣＰＵタイプ」１２３３としてＣＰＵ−００２が要求され、「ＣＰＵ割り当て」１２３４として２００％（すなわち、「ＣＰＵ」タイプＣＰＵ−００２の２つのＣＰＵがＶＭＭ−００１で動作することに相当する処理能力）が要求されることを示している。実施形態によっては、サーバ要求部１３６によって、最小メモリ要件（図示せず）が指定されることも可能である。ストレージ要求部１３７は、マイグレーション用として要求される各論理ボリュームの要件の情報を含む。図１２では、ストレージ要求部１３７は、４つの異なるボリューム、すなわち、システムボリューム、インデックスボリューム、データボリューム、およびログボリュームの要件１２６１〜１２６４を有する。「ボリューム」１２５２に対する各要求は、要求される「容量」１２５３、「アクセス時間」１２５４、「読み出し／書き込み比」１２５５、および「ランダム／シーケンシャル比」１２５６の情報を含むことが可能である。しかしながら、他の実施形態では、これらの要件のいくつかが指定されない場合があり、あるいは、他の要件（ＲＡＩＤタイプ、ディスクタイプ、ビジーレート、その他）が指定される場合もある。
[0062]  マイグレーション用データセンタを見つけるためのメインフローチャート
【００３４】
[0063]  図１３は、本発明の一例示的実施形態において実施される統合管理システム処理を表すフローチャートである。このフローチャートでは、２つのデータセンタがあり、第１のデータセンタがマイグレーション要求側であり、第２のデータセンタが潜在的なマイグレーション受け入れ側である。
【００３５】
[0064]  ステップ１３０２で、マイグレーション要求プログラム１２３が、別のデータセンタにマイグレーションされるべきアプリケーションに関するデータを取得する。取得されたデータは、アプリケーションのネットワーク要件、サーバ要件、およびストレージ要件についてのデータを含む。特定のアプリケーションの要件は、マイグレーション要求プログラム１２３が、その特定のアプリケーションによって現在使用されているリソースを、ＶＰＮリソーステーブル３１１、仮想マシンリソーステーブル４１１、およびストレージリソーステーブル５１１から調べることによって、決定されることが可能である。代替として、要件は、その特定のアプリケーションのマイグレーション要求を開始するようマイグレーション要求プログラム１２３に命令する命令とともに、提供されることが可能である。
【００３６】
[0065]  ステップ１３１０で、第１のデータセンタのマイグレーション要求プログラム１２３は、アプリケーションのマイグレーション先として適切な候補データセンタを見つけることを試行するために、マイグレーション要求文書１３を生成する。
【００３７】
[0066]  ステップ１３１２で、マイグレーション要求プログラム１２３は、マイグレーション要求を送る宛先データセンタを選択するために、「要求優先度」値１００３に従って連合データセンタテーブル２１３からレコードを取り出し、対応する「要求先アドレス」１００２の値を読み出す。代替として、マイグレーション要求プログラム１２３は、優先度値に従って進めるのではなく、連合データセンタテーブルにあるすべてのデータセンタを選択することも可能である。
【００３８】
[0067]  ステップ１３１４で、マイグレーション要求プログラム１２３は、ステップ１３１２で読み出されたマイグレーション先の第２のデータセンタの「要求先アドレス」１００２へマイグレーション要求文書１３を送る。
【００３９】
[0068]  ステップ１３２０で、第２のデータセンタのマイグレーション受け入れプログラム１２１は、ステップ１３１４で第１のデータセンタのマイグレーション要求プログラム１２３から送られたマイグレーション要求文書１３を受け取り、リソースマネージャプログラム１２２を起動して、そのマイグレーション要求を受け入れることが可能かどうかを決定する。
【００４０】
[0069]  ステップ１３２２で、リソースマネージャプログラム１２２は、マイグレーション要求文書１３のＶＰＮ要求部１３５を処理し、第２のデータセンタにおいて利用可能なＶＰＮ帯域幅容量を要求帯域幅と比較するかたちでチェックし、結果をマイグレーション受け入れプログラム１２１に返す。ＶＰＮ容量をチェックするプロセスの詳細については、図１４を参照して後述する。
【００４１】
[0070]  ステップ１３２４で、リソースマネージャプログラム１２２は、利用可能なサーバ容量およびパフォーマンスを、要求された容量およびパフォーマンスと比較するかたちでチェックすることによって、マイグレーション要求文書１３のサーバ要求部１３６を処理し、結果をマイグレーション受け入れプログラム１２１に返す。サーバ容量をチェックするプロセスの詳細については、図１５を参照して後述する。
【００４２】
[0071]  ステップ１３２６で、リソースマネージャプログラム１２２は、利用可能なストレージ容量およびパフォーマンスを、要求された容量およびパフォーマンスと比較するかたちでチェックすることによって、マイグレーション要求文書１３のストレージ要求部１３７を処理し、結果をマイグレーション受け入れプログラム１２１に返す。ストレージ容量をチェックするプロセスの詳細については、図１６を参照して後述する。
【００４３】
[0072]  ステップ１３２８で、マイグレーション受け入れプログラム１２１は、ステップ１３２２、１３２４、および１３２６の結果を受け取り、３つのステップ１３２２、１３２４、１３２６のすべての結果が「はい」かどうか、すなわち、要求された容量およびパフォーマンスのレベルを満たすことが可能かどうかを決定する。
【００４４】
[0073]  ステップ１３３０で、３つのステップ１３２２、１３２４、１３２６のすべての結果が「はい」であれば、要求されたレベルでマイグレーションを受け入れることが可能である。
【００４５】
[0074]  ステップ１３３２で、マイグレーション受け入れプログラム１２１は、要求側、現在の日時を記録し、ステップ１３２２、１３２４、および１３２６の結果を、図１１Ａの受信済みマイグレーション要求テーブル２１４の、それぞれ、「ネットワーク結果」１１０４、「サーバ結果」１１０５、および「ストレージ結果」１１０６に入力し、さらに、マイグレーション要求文書１３の内容を「マイグレーション要求内容」１１０７に入力する。次に、マイグレーション受け入れプログラム１２１は、結果を、第１のデータセンタのマイグレーション要求側に返す。
【００４６】
[0075]  ステップ１３４０で、第１のデータセンタのマイグレーション要求プログラム１２３が、第２のデータセンタのマイグレーション受け入れプログラムから結果を受け取り、その結果を図１１Ｂの送信済みマイグレーション要求テーブル２１５に入力する（すなわち、ステップ１３２２、１３２４、および１３２６の結果を、それぞれ、「ネットワーク結果」１１２４、「サーバ結果」１１２５、および「ストレージ結果」１１２６に入力する）。
【００４７】
[0076]  ステップ１３４２で、マイグレーション要求プログラム１２３は、「ネットワーク結果」１１２４、「サーバ結果」１１２５、および「ストレージ結果」１１２６の３つすべての結果が「はい」かどうかをチェックする。「はい」であれば、アプリケーションのマイグレーションに適した候補データセンタが見つかったことになり、プロセスはステップ１３４８までジャンプする。一方、それらの結果の１つまたは複数が「いいえ」だった場合、プロセスはステップ１３４４に進み、要求レベルを満たしうる別のデータセンタがあるかどうかを調べる。さらに、プロセスは、「はい」または「いいえ」の結果だけを返すように説明されたが、その代わりに、実際の容量値を返すことも可能である。
【００４８】
[0077]  ステップ１３４４で、適切な候補がまだ見つからない場合、マイグレーション要求プログラム１２３は、連合データセンタテーブル２１３にリストされているレコードの最後まで達したかどうか（すなわち、要求が他のすべてのデータセンタに送られたかどうか）をチェックする。まだレコードの最後まで達していない場合、マイグレーション要求プログラム１２３は、ステップ１３１２へ戻り、連合データセンタテーブル２１３にリストされている次のデータセンタを選択する。
【００４９】
[0078]  ステップ１３４６で、連合データセンタテーブル２１３にリストされているすべてのデータセンタから適切な候補データセンタが見つからなかった場合、プロセスは、マイグレーションが他のいずれかのデータセンタに対してとにかく行われなければならないかどうかを尋ねる要求を、管理者に送ることが可能である。たとえば、マイグレーションが必須であれば、マイグレーション要求文書の一部の要件が満たされなくても、管理者が、マイグレーションを実施するよう命令することが可能である。たとえば、ストレージ容量および処理能力が十分であるデータセンタが、ネットワーク帯域幅が不十分であっても、マイグレーションを受けるように選択されることが可能である。このステップは、返された結果が単なる「はい」または「いいえ」ではなく実際の容量値を示すことによって、管理者による判断決定をより的確にする場合に、特に好適である。
【００５０】
[0079]  ステップ１３４８で、マイグレーションの実施を命令するマイグレーション要求文書１３を、決定された第２のデータセンタに送ることによって、アプリケーションのマイグレーションが実施される。第２のデータセンタは、新しいボリュームを作成し、これらの新しいボリュームにデータをコピーし、新しい仮想サーバを作成するか、物理サーバを割り当て、ＳＡＮスイッチ、ＶＬＡＮ、およびＶＰＮを構成し、これらのサーバをブートアップし、第１のデータセンタとともに、アプリケーションのマイグレーションを実施するための、他のすべての必要なステップを完了する。
[0080]  利用可能なＶＰＮ帯域幅の確認のフローチャート
【００５１】
[0081]  図１４は、マイグレーション要求文書１３のＶＰＮ要求部１３５に関してＶＰＮ空き帯域幅をチェックする、図１３のプロセスのステップ１３２２の例示的詳細フローチャートである。
【００５２】
[0082]  ステップ１４０１で、リソースマネージャプログラム１２２が、マイグレーション要求文書１３のＶＰＮ要求部１３５を読み込む。
【００５３】
[0083]  ステップ１４０２で、リソースマネージャプログラム１２２が、ネットワーク管理サーバ１３１にあるＶＰＮリソーステーブル３１１から（「空き」である「帯域幅」６０５の量を調べることにより）ＶＰＮ未割り当て帯域幅を取り出す。
【００５４】
[0084]  ステップ１４０３で、リソースマネージャ１２２は、利用可能な未割り当て帯域幅を、ＶＰＮ要求部１３５で要求されている帯域幅の量と比較する。利用可能な空き帯域幅の値が要求帯域幅量以上であれば、プロセスはステップ１４０４に進み、そうでない場合はステップ１４０５に進む。
【００５５】
[0085]  ステップ１４０４で、リソースマネージャプログラム１２２が結果を「はい」として設定する。
【００５６】
[0086]  ステップ１４０５で、リソースマネージャプログラム１２２が結果を「いいえ」として設定する。
【００５７】
[0087]  ステップ１４０６で、リソースマネージャプログラム１２２は、ステップ１４０４または１４０５の結果をマイグレーション受け入れプログラム１２１に返す。たとえば、図６では、未割り当て帯域幅は２．０Ｍｂｐｓである。図１２では、要求帯域幅は１．５Ｍｂｐｓである。したがって、この例では、ステップ１４０６によって返される結果は「はい」である。さらに、本発明は、ＶＰＮの環境において説明されているが、非仮想ネットワーク環境に適用されることも可能である。たとえば、ＶＰＮは、指定のサービス品質をアプリケーションに提供することが可能なネットワーク設備の一例である。したがって、本発明の一特徴として、アプリケーションをマイグレーションするかどうかを決定する前に、アプリケーションのネットワークパフォーマンスを本質的に保証することが可能である。したがって、ＶＰＮの代わりに他のネットワーク設備を使用することが可能であり、たとえば、予測可能な利用可能帯域幅を提供する好適なメカニズムなどを使用することが可能である。
[0088]  利用可能なサーバ容量／パフォーマンスをチェックするフローチャート
【００５８】
[0089]  図１５は、マイグレーション要求文書１３のサーバ要求部１３６に関して利用可能なサーバ容量およびパフォーマンスをチェックする、図１３のステップ１３２４の例示的詳細フローチャートである。
【００５９】
[0090]  ステップ１５０１で、リソースマネージャプログラム１２２が、サーバ要求部１３６の各値（すなわち、要求される「仮想マシンマネージャ」１２３２、「ＣＰＵタイプ」１２３３、および「ＣＰＵ割り当て」１２３４）を読み込む。たとえば、図１２によれば、サーバ要求は、仮想マシンマネージャとして「ＶＭＭ−００１」、ＣＰＵ割り当てとして「２００％」、ＣＰＵタイプとして「ＣＰＵ−００２」である。
【００６０】
[0091]  ステップ１５０２で、リソースマネージャプログラム１２２は、仮想マシンリソーステーブル４１１において、指定されたＶＭＭと同じ値を有し、かつ、「仮想サーバ」列７０２に「空き」エントリを含むレコードを検索する。
【００６１】
[0092]  ステップ１５０２で１つ以上の候補レコードが見つかった場合、ステップ１５０３で、プロセスはステップ１５０４に進む。一方、ステップ１５０２の要件を満たすレコードが見つからなかった場合、プロセスはステップ１５１０に進む。たとえば、図７によれば、テーブル４１１は、「仮想マシンマネージャ」に「ＶＭＭ−００１」のレコードを有し、対応する「仮想サーバ」列７０２に「空き」エントリを有するので、ステップ１５０３の結果は、この例では「はい」になる。
【００６２】
[0093]  ステップ１５０４で、リソースマネージャプログラム１２２は、ステップ１５０２で見つかったレコードの「パフォーマンス能力」７０７の値を取得する。たとえば、図７によれば、空きパフォーマンス能力の量は「１８５」である。
【００６３】
[0094]  ステップ１５０５で、リソースマネージャプログラム１２２は、ＣＰＵ処理時間変換テーブル４１２において、要求された「仮想マシンマネージャ」（すなわち、図１２の例ではＶＭＭ−００１）および要求された「ＣＰＵタイプ」（すなわち、図１２の例ではＣＰＵ−００２）を有するレコードを検索し、そのレコードに対応する「パフォーマンスインデックス」値８０３を取得する。たとえば、図８によれば、「ＶＭＭ−００１かつＣＰＵ−００２」のパフォーマンスインデックス値は「１２０」である。
【００６４】
[0095]  ステップ１５０６で、リソースマネージャプログラム１２２は、ＣＰＵ処理時間変換テーブル４１２において、ステップ１５０２で見つかった、要求された「仮想マシンマネージャ」および「ＣＰＵタイプ」を有するレコードを検索し、そのレコードから、対応する「パフォーマンスインデックス」値８０３を取得する。たとえば、図８によれば、「ＶＭＭ−００１」かつ「ＣＰＵ−００１」のパフォーマンスインデックス値は「１００」である。
【００６５】
[0096]  ステップ１５０７で、リソースマネージャプログラム１２２は、式（「ステップ１５０６で取得された値」）／（「ステップ１５０５で取得された値」）＊（「要求されたＣＰＵ割り当て」）に従って計算することにより、要求されたパフォーマンスインデックスを正規化する。図１２の例では、この計算は（１００／１２０）＊２００＝１６７である。
【００６６】
[0097]  ステップ１５０８で、リソースマネージャプログラム１２２は、正規化されたパフォーマンスインデックスを、仮想マシンリソーステーブル４１１の空き「パフォーマンス能力」７０７と比較する。仮想マシンリソーステーブル４１１の空き「パフォーマンス能力」７０７が、要求された正規化パフォーマンス能力より大きい場合、プロセスはステップ１５０９に進み、そうでない場合はステップ１５１０に進む。この例では、「１８５」＞「１６７」であり、結果は「はい」である。
【００６７】
[0098]  ステップ１５０９で、リソースマネージャプログラム１２２が結果を「はい」として設定する。
【００６８】
[0099]  ステップ１５１０で、リソースマネージャプログラム１２２が結果を「いいえ」として設定する。
【００６９】
[0100]  ステップ１５１１で、リソースマネージャプログラム１２２は、結果をマイグレーション受け入れプログラム１２１へ返す。このように、本発明は、サーバ用として要求されるパフォーマンス能力を、様々なハードウェアおよびソフトウェアプラットフォームにわたって自動的に整合させることが可能であることが理解されるであろう。したがって、本発明の一特徴として、特定のアプリケーションをマイグレーションするかどうかを決定する前に、アプリケーションのサーバパフォーマンスを本質的に保証することが可能である。
[00101]  利用可能なストレージ容量／パフォーマンスをチェックするフローチャート
【００７０】
[0102]  図１６は、マイグレーション要求文書１３のストレージ要求部１３７に関して利用可能なストレージ容量およびパフォーマンスをチェックする、図１３のステップ１３２６の例示的詳細フローチャートである。
【００７１】
[0103]  ステップ１６０１で、リソースマネージャプログラム１２２は、指定された各ボリュームに対する要求を個別に処理するために、ストレージ要求部１３７からレコード１２６１〜１２６４のうちの１つを取り出す。
【００７２】
[0104]  ステップ１６０２で、リソースマネージャプログラム１２２は、そのレコードから各値（すなわち、「容量」１２５３、「アクセス時間」１２５４、「読み出し／書き込み比」１２５５、および「ランダム／シーケンシャル比」１２５６）を読み込む。
【００７３】
[0105]  ステップ１６０３で、リソースマネージャプログラム１２２は、特定のボリュームについてステップ１６０２で読み込まれた要求値を満たす、データセンタ内のアレイグループを検索する。ボリュームを切り分けるのに適したアレイグループは、以下の式を用いて見つけることが可能である。
（容量＞要求された容量）
かつ
（読み出し／書き込み比＊０．９）＜要求された読み出し／書き込み比＜（読み出し／書き込み比＊１．１）
かつ
（（ランダム／シーケンシャル比＊０．９）＜要求されたランダム／シーケンシャル比＜（ランダム／シーケンシャル比＊１．１））
かつ
（アクセス時間＜要求されたアクセス時間）
【００７４】
[0106]  たとえば、図１２の例によれば、システムボリュームレコード１２６１のストレージ要求は、要求された「容量」として「１０ＧＢ」、要求された「アクセス時間」１２５４として「２４ｍｓ」、要求された「読み出し／書き込み比」として「８０％」、および要求された「ランダム／シーケンシャル比」として「１０％」を指定する。ストレージボリュームリソーステーブル５１１でレコードを検索すると、レコード９２４が、システムボリュームについての要求された要件を満たすことがわかる。前述の式は、許容係数「０．９」および「１．１」を含むが、これらは、ボリューム要求に適合するものを見つけることを容易にするために式に含まれている。たとえば、アプリケーションによっては、読み出し／書き込み比およびランダム／シーケンシャル比は、大まかな範囲に入ってさえいれば、特定の数値であることはさほど重要ではない。これらの許容係数を使用することは、このような柔軟性を可能にする。
【００７５】
[0107]  ステップ１６０４で、ボリュームについての要求された要件を満たすことが可能なアレイグループが見つかった場合、プロセスはステップ１６０５に進み、見つからない場合はステップ１６０６に進む。
【００７６】
[0108]  ステップ１６０５で、リソースマネージャプログラム１２２が結果を「はい」として設定する。
【００７７】
[0109]  ステップ１６０６で、リソースマネージャプログラム１２２が結果を「いいえ」として設定する。
【００７８】
[0110]  ステップ１６０７で、リソースマネージャプログラム１２２は、ストレージ要求部１３７のすべてのレコードの最後に達したかどうかをチェックする。すべてのレコードの処理が完了している場合、プロセスはステップ１６０８に進み、そうでない場合は、ステップ１６０１に戻って、ストレージ要求部１３７の次のレコードを処理する。
【００７９】
[0111]  ステップ１６０８で、リソースマネージャプログラム１２２は、結果をマイグレーション受け入れプログラム１２１に返す。したがって、本発明の一特徴として、アプリケーションをマイグレーションするかどうかを決定する前に、アプリケーションのストレージパフォーマンスを本質的に保証することが可能であり、特定のアプリケーションのタイプおよび要件に応じて、アプリケーションの様々なパフォーマンス指標または値を指定することが可能である。
【００８０】
[0112]  このように、本発明は、アプリケーションのマイグレーションを受け、かつ、そのアプリケーションのパフォーマンスレベルを維持する、適切なターゲットデータセンタを、複数のデータセンタの中から自動的に見つけることが可能であることが理解されるであろう。さらに、本明細書では特定の実施形態を図示および説明してきたが、当業者であれば理解されるように、同じ目的を達成するために計算された任意の構成を、開示された特定の実施形態の代わりに用いることも可能である。本開示は、本発明の任意およびすべての翻案または変形形態を包含するものとし、前述の説明は、限定ではなく例示としてなされたものであることを理解されたい。したがって、本発明の範囲は、添付の請求項、ならびにそのような請求項が権利を与えられる等価物の全範囲に関して、適正に決定されるべきである。
【図面の簡単な説明】
【００８１】
【図１】[0010]本発明の方法および装置を適用することが可能な、ハードウェア構成の一例、ならびに複数のデータセンタ間の関係を示す図である。
【図２】[0011]個々のデータセンタのハードウェアおよびソフトウェア構成の一例を示す図である。
【図３】[0012]ネットワーク管理サーバの一例を示す図である。
【図４】[0013]サーバ管理サーバの一例を示す図である。
【図５】[0014]ストレージ管理サーバの一例を示す図である。
【図６】[0015]ＶＰＮリソーステーブルの例示的データ構造を示す図である。
【図７】[0016]仮想マシンリソーステーブルの例示的データ構造を示す図である。
【図８】[0017]ＣＰＵ処理時間変換テーブルの例示的データ構造を示す図である。
【図９】[0018]ストレージボリュームリソーステーブルの例示的データ構造を示す図である。
【図１０】[0019]連合データセンタテーブルの例示的データ構造を示す図である。
【図１１Ａ】[0020]受信済みマイグレーション要求テーブルの例示的データ構造を示す図である。
【図１１Ｂ】[0021]送信済みマイグレーション要求テーブルの例示的データ構造を示す図である。
【図１２】[0022]マイグレーション要求文書の例示的データ構造を示す図である。
【図１３】[0023]本発明に従って適切なデータセンタを見つけるプロセスの例示的処理フローを示す図である。
【図１４】[0024]利用可能帯域幅をチェックする例示的処理フローを示す図である。
【図１５】[0025]利用可能なサーバ能力を確認する例示的処理フローを示す図である。
【図１６】[0026]ストレージの利用可能な容量およびパフォーマンスを確認する例示的処理フローを示す図である。
【図１】
0005137709.tif 000002
【図２】
0005137709.tif 000003
【図３】
0005137709.tif 000004
【図４】
0005137709.tif 000005
【図５】
0005137709.tif 000006
【図６】
0005137709.tif 000007
【図７】
0005137709.tif 000008
【図８】
0005137709.tif 000009
【図９】
0005137709.tif 000010
【図１０】
0005137709.tif 000011
【図１１Ａ】
0005137709.tif 000012
【図１１Ｂ】
0005137709.tif 000013
【図１２】
0005137709.tif 000014
【図１３】
0005137709.tif 000015
【図１４】
0005137709.tif 000016
【図１５】
0005137709.tif 000017
【図１６】
0005137709.tif 000018