(57)【要約】      （修正有）【課題】仮想マシン再配置を容易にする。【解決手段】第１のコントローラによって、第１のコントローラが関連付けられたハードウェアの第１のセットに電力を供給する第１の電源システム・セットから、第１の電源関連情報を取得する。ハードウェアの第１のセットは第１の複数の仮想マシンを稼働する。さらに、第１のコントローラによって、第１の電源関連情報に基づいて、第１の複数の仮想マシンを移行するための再配置プロトコルを生成する。ここで、再配置プロトコルは、第１の複数の仮想マシンのうち１以上の仮想マシンを含む第１のサブセットの移行であって、第１のサブセットが含む仮想マシンが移行を通して動作し続けるようにハードウェアの第２のセットに移行され、当該第２のセット上で稼働することになる、移行と、第１の複数の仮想マシンのうち１以上の仮想マシンを含む第２のサブセットのスナップショットをとることと、を含む。【選択図】図２
2018077846.tif 000002
【特許請求の範囲】
【請求項１】
第１のコントローラによって、前記第１のコントローラが関連付けられたハードウェアの第１のセットに電力を供給する第１の電源システム・セットから、第１の電源関連情報を取得するステップであって、前記ハードウェアの第１のセットは第１の複数の仮想マシンを稼働させる、前記ステップと、
前記第１のコントローラによって、前記第１の電源関連情報に少なくとも部分的に基づいて、前記第１の複数の仮想マシンを移行するための再配置プロトコルを生成するステップと
を含み、前記再配置プロトコルは、
前記第１の複数の仮想マシンのうち１以上の仮想マシンを含む第１のサブセットの移行であって、前記第１のサブセットが含む仮想マシンが前記移行を通して動作し続けるようにハードウェアの第２のセットに移行され、当該第２のセット上で稼働することになる、前記移行と、
前記第１の複数の仮想マシンのうち１以上の仮想マシンを含む第２のサブセットのスナップショットをとることと、
を含む、方法。
【請求項２】
ハードウェアの前記第１のセットにおいて取得された前記第２のサブセットのスナップショットに基づき、ハードウェアの前記第２のセットに当該スナップショットをディプロイすることによって、仮想マシンを含む前記第２のサブセットをハードウェアの前記第２のセットに移行するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記第２のサブセットを移行する前記ステップは、前記第１のサブセットを移行する前記ステップの完了後に行われる、請求項２に記載の方法。
【請求項４】
前記第２のサブセットを移行する前記ステップは、
ハードウェアの前記第２のセットに仮想マシンを含む前記第２のサブセットのスナップショットをディプロイする前に、当該スナップショットを中間電源システム・セットが電力供給するハードウェアの中間セットに移転するステップを含み、前記中間電源システム・セットは前記第１の電源システム・セットと異なる、請求項２に記載の方法。
【請求項５】
前記スナップショットをハードウェアの前記中間セットに移転する前記ステップは、
仮想マシンを含む前記第１のサブセットをハードウェアの前記第２のセットに移行する前記ステップと同時に行われる、請求項４に記載の方法。
【請求項６】
ハードウェアの前記第１のセットは第１のクラウドであり、前記第１のコントローラは第１のクラウド・コントローラであり、ハードウェアの前記第２のセットは第２のクラウドであり、ハードウェアの前記第２のセットは第２の電源システムを備えた第２の電源システム・セットから電力供給される、請求項２に記載の方法。
【請求項７】
前記第１のクラウドおよび前記第２のクラウドは、地理的に分散された異なるデータセンタにおいてホストされる、請求項６に記載の方法。
【請求項８】
前記第２のクラウドは第２のクラウド・コントローラを含み、
前記再配置プロトコルを生成するステップは、前記第１のクラウド・コントローラによって、前記第２のクラウド・コントローラまたは前記第２の電源システム・セットから、ハードウェアの前記第２のセットへの電源ステータスを示す第２の電源関連情報を取得するステップをさらに含む、請求項６に記載のコンピュータによって実施される方法。
【請求項９】
前記第１のコントローラによって前記再配置プロトコルを生成するステップは、
前記第１のサブセットまたは前記第２のサブセットが含む１以上の仮想マシンの再配置を容易にするために、動作し続けながらの移行または前記スナップショットをディプロイして移行することの履歴データを参照するステップを含む、請求項１に記載の方法。
【請求項１０】
前記第１のコントローラによって前記再配置プロトコルを生成するステップは、
前記第１のサブセットまたは前記第２のサブセットが含む１以上の仮想マシンの再配置における、少なくとも１つの仮想マシンに関連付けられた優先度情報を用いるステップを含む、請求項１に記載の方法。
【請求項１１】
前記第１のコントローラによって前記再配置プロトコルを生成するステップは、
ハードウェアの前記第１のセットからハードウェアの前記第２のセットへのデータ移転経路内の、１以上のスイッチへの電源ステータスを決定するステップを含む、請求項１に記載の方法。
【請求項１２】
前記第１の電源関連情報は、ハードウェアの前記第１のセットへの電源障害までの推定される時間の長さを含み、前記再配置プロトコルは、ハードウェアの前記第１のセットへの電源障害までの時間の長さに少なくとも部分的に基づいて、動的に生成される緊急時再配置プロトコルである、請求項１に記載の方法。
【請求項１３】
仮想マシンの再配置を容易にするためのシステムであって、
メモリと、
プロセッサと
を備え、前記プロセッサは、
前記システムに電力を供給する第１の電源システム・セットから、第１の電源関連情報を取得するステップであって、前記システムは第１の複数の仮想マシンを稼働させる、前記ステップと、
前記第１の電源関連情報に少なくとも部分的に基づいて、前記第１の複数の仮想マシンを移行するための再配置プロトコルを生成するステップと、
を実行し、前記再配置プロトコルは、
前記第１の複数の仮想マシンのうち１以上の仮想マシンを含む第１のサブセットの移行であって、前記第１のサブセットが含む仮想マシンが前記移行を通して動作し続けるようにハードウェアの第２のセットに移行され、当該第２のセット上で稼働することになる、前記移行と、
前記第１の複数の仮想マシンのうち１以上の仮想マシンを含む第２のサブセットのスナップショットをとることと、
を含む、システム。
【請求項１４】
仮想マシンの再配置を容易にするためのプロセッサに、
前記プロセッサが関連付けられたハードウェアの第１のセットに電力を供給する第１の電源システム・セットから、第１の電源関連情報を取得するステップであって、前記ハードウェアの第１のセットは第１の複数の仮想マシンを稼働させる、前記ステップ、
前記第１の電源関連情報に少なくとも部分的に基づいて、前記第１の複数の仮想マシンを移行するための再配置プロトコルを生成するステップ、
を実行させるためのプログラムであって、前記再配置プロトコルは、
前記第１の複数の仮想マシンのうち１以上の仮想マシンを含む第１のサブセットの移行であって、前記第１のサブセットが含む仮想マシンが前記移行を通して動作し続けるようにハードウェアの第２のセットに移行され、当該第２のセット上で稼働することになる、前記移行と、
前記第１の複数の仮想マシンのうち１以上の仮想マシンを含む第２のサブセットのスナップショットをとることと、
を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
仮想マシン再配置プロトコルの生成に関する。
【背景技術】
【０００２】
知られているように仮想マシン（ＶＭ）は、コンピュータ・プログラムを実行するマシン（例えばコンピュータ）のソフトウェア実装形態である。ＶＭは通常、中央処理装置（ＣＰＵ）、メモリ、ハード・ディスク、および他のハードウェア・リソースに対する要求が、基礎をなす物理的ハードウェアにこれらの要求を翻訳する仮想化レイヤによって管理されて、物理的コンピューティング環境をエミュレートする。仮想マシンは、クライアントまたはサーバ・オペレーティング・システムの上で稼働するハイパーバイザまたは仮想化プラットフォームなど、仮想化レイヤ内に作成される。仮想マシンのシステム移行は、ハードウェアまたはソフトウェアあるいはその両方のアップグレードがインストールされる間に、バックアップ・システムをもたらす能力を含む、種々の理由により望ましくなり得る。システム移行はまた、仮想マシンを、新たなプロセッサまたは他のハードウェアに移動するために行われ得る。移行を行うために仮想マシンの実行を停止すること、および仮想マシンをそれが実行している間に移行する、ライブ移行を行うことを含む、移行を行うためのいくつかの手法が存在する。ライブ仮想マシン移行はしばしば、ミッション・クリティカルなシステムを有する会社によって望まれる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“z/Architecture - Principles ofOperation,” Publication No. SA22-7832-10, 11th Edition,March 2015
【非特許文献２】“Power ISA(TM) Version 2.07B,” International Business Machines Corporation, April 9, 2015
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データセンタ電源異常は、自然災害を含む種々の理由に対して生じ得る。自然災害または他の気象関連の原因は、データセンタの使用可能性において、より頻繁な変数となっている。データセンタ内で稼働する仮想マシンを含み、データセンタが、主電源異常を経験している間、稼働したままとなることができることを確実にするために、例えば稼働中のシステムの整然としたシャットダウンまたはバックアップあるいはその両方を容易にするために、データセンタに電力供給し続けるように、バッテリ・バックアップ・システムおよびガス駆動発電機が用いられ得る。しかし多くの場合、非効率的なバックアップ機構、または開始されない、またはバッテリ・バックアップ・システムのエネルギーがなくなるまたはバックアップ発電機の燃料がなくなる前に完了できないバックアップ機構により、データは失われることになり得る。
【課題を解決するための手段】
【０００５】
コンピュータによって実施される方法を用意することによって、従来技術の欠点は克服され、利点がもたらされ、これは第１のコントローラによって、第１のコントローラが関連付けられた電力供給されるハードウェア構成要素の第１のセットに電力を供給する、１つまたは複数の第１の電源システムを含んだ第１の電源システム・セットから、第１の電源関連情報を取得するステップを含む。電力供給されるハードウェア構成要素の第１のセットは、第１の複数の仮想マシンを稼働させる。さらに方法は、第１のコントローラによって、第１の電源関連情報に少なくとも部分的に基づいて、第１の複数の仮想マシンを移行するための再配置プロトコルを生成するステップを含む。再配置プロトコルは、第１の複数の仮想マシンの１つまたは複数の仮想マシンの第１のサブセットの移行であって、それにより仮想マシンの第１のサブセットが移行を通して実質的に連続したやり方で動作し続けるように、仮想マシンの第１のサブセットは電力供給されるハードウェア構成要素の第２のセットに移行され、その上で稼働することになる、移行と、第１の複数の仮想マシンの１つまたは複数の仮想マシンの、第２のサブセットのスナップショットをとることと、を含む。
【０００６】
有利なことには１つまたは複数の態様において、例えば仮想マシンがその上で稼働する電力供給されるハードウェア構成要素の第１のセットに電力を供給する第１の電源システム・セットから取得された、電源関連情報に少なくとも部分的に基づいた仮想マシンの再配置プロトコルの動的生成を容易にするための、コンピュータによって実施される方法、システム、およびコンピュータ・プログラムがもたらされる。仮想マシンを移行するための再配置プロトコルは、１つまたは複数の仮想マシンの第１のサブセットの移行であって、それにより仮想マシンの第１のサブセットが移行を通して実質的に連続したやり方で動作し続けるように、仮想マシンの第１のサブセットは電力供給されるハードウェア構成要素の第２のセットに移行され、その上で稼働することになる、移行と、ハードウェア構成要素の第１のセット上で稼働する仮想マシンの１つまたは複数の仮想マシンの、第２のサブセットのスナップショットをとることと、を含むことができる。再配置プロトコルを動的に決定することによって処理は、例えば電力供給されるハードウェア構成要素の第１のセットから、電力供給されるハードウェア構成要素の第２のセットへの、仮想マシンのより効率的な移転を確実にするように、仮想マシンの移行をより良く優先度付けすることができる。この再配置プロトコルは、例えば自然災害が電力供給されるハードウェア構成要素の第１のセットの近傍で生じ、電力供給されるハードウェア構成要素の第１のセットにおいて次に電源の喪失が引き起こされることによる、データの喪失を最小化または低減することを追求することができる。
【０００７】
本明細書でさらに説明されるように、再配置プロトコルを生成するステップは、仮想マシンの第１または第２のサブセットにおける、仮想マシンの１つまたは複数の配置を容易にするために、仮想マシン移行、または仮想マシン・スナップショットをとること、に関する履歴データを参照するステップを含むことができる。例えば履歴データは、特定のタイプ、作業負荷の大きさなどの、仮想マシンをライブ移行するまたはそのスナップショットをとるために必要な時間の長さについての情報を含むことができる。
【０００８】
追加としてまたは代替として、再配置プロトコルは、移行されることになる仮想マシンの、１つまたは複数の関連付けられた優先度情報を用いて生成され得る。例えば１つまたは複数の実施形態において、顧客は電源障害の場合のサービスのより高い優先度に対して支払うことができ、したがってそのクライアントの作業負荷を稼働する１つまたは複数の仮想マシンは、ライブ移行のために識別され得る。さらに再配置プロトコルを生成するステップは、例えば第１のデータセンタと第２のデータセンタとの間の、中間ハードウェア構成要素およびデータ経路の電源ステータスを考慮に入れることができ、さらには特定のデータセンタ、または仮想マシンがそこに移行されることになる電力供給されるハードウェア構成要素の第２のセット、ならびに用いられることになるデータ経路を識別することを含むことができる。
【０００９】
１つまたは複数の実装形態において、コンピュータによって実施される方法は、さらに仮想マシンの第１のサブセットが移行を通して実質的に連続したやり方で動作し続けるように、仮想マシンの第１のセットを、電力供給されるハードウェア構成要素の第２のセットに移行するステップと、電力供給されるハードウェア構成要素の第１のセットにおいて取得された仮想マシンの第２のサブセットのそれぞれのスナップショットに基づいて、仮想マシンの第２のサブセットを電力供給されるハードウェア構成要素の第２のセットに少なくとも部分的にディプロイすることによって、仮想マシンの第２のサブセットを移行するステップとを含む。例として仮想マシンの第２のサブセットを移行するステップは、仮想マシンの第１のサブセットを移行するステップの完了後に行われ得る。
【００１０】
１つまたは複数の実施形態において、仮想マシンの第２のサブセットを移行するステップは最初に、すなわち仮想マシンの第２のサブセットを、それぞれのスナップショットに基づいて、電力供給されるハードウェア構成要素の第２のセットにディプロイする前に、仮想マシンの第２のサブセットの、仮想マシンのそれぞれのスナップショットを、中間電源システム・セットによって電力供給される、電力供給されるハードウェア構成要素の中間セットに移転するステップを含むことができる。このような実施形態において中間電源システム・セットは第１の電源システム・セットと異なり、仮想マシンの第２のサブセットの仮想マシンのそれぞれのスナップショットを、電力供給されるハードウェア構成要素の中間セットに移転するステップは、仮想マシンの第１のサブセットを、電力供給されるハードウェア構成要素の第２のセットに移行するステップと実質的に同時に行われ得る。
【００１１】
１つまたは複数の実装形態において、電力供給されるハードウェア構成要素の第１のセットは第１のクラウドのものであり、第１のコントローラは第１のクラウド・コントローラであり、電力供給されるハードウェア構成要素の第２のセットは第２のクラウドのものである。ハードウェア構成要素の第２のセットは１つまたは複数の第２の電源システムを含んだ第２の電源システム・セットから電力供給され得る。１つまたは複数の実施形態において、第１のクラウドおよび第２のクラウドは、異なる、地理的に分離されたデータセンタにおいてホストされ得る。
【００１２】
さらに１つまたは複数の実装形態において、第２のクラウドは第２のクラウド・コントローラを含むことができ、第１のコントローラによって再配置プロトコルを生成するステップは、第１のクラウド・コントローラによって、第２のクラウド・コントローラまたは第２の電源システム・セットから、電力供給されるハードウェア構成要素の第２のセットへの電源ステータスを示す、第２の電源関連情報を取得するステップを含むことができる。
【００１３】
１つまたは複数の実施形態において、第１のコントローラによって再配置プロトコルを生成するステップは、仮想マシンの第１のサブセットまたは仮想マシンの第２のサブセットにおける、第１の複数の仮想マシンの少なくとも１つの仮想マシンの配置を容易にするために、仮想マシン移行、または仮想マシン・スナップショットをとること、の少なくとも１つに関する履歴データを参照するステップを含むことができる。
【００１４】
さらに１つまたは複数の実施形態において、第１のコントローラによって再配置プロトコルを生成するステップは、第１の複数の仮想マシンの少なくとも１つの仮想マシンの関連付けられた優先度情報を用いること、および仮想マシンの第１のサブセットまたは仮想マシンの第２のサブセットにおいて少なくとも１つの仮想マシンを配置することを含むことができる。
【００１５】
１つまたは複数の実施形態において、第１のコントローラによって再配置プロトコルを生成するステップは、電力供給されるハードウェア構成要素の第１のセットから、電力供給されるハードウェア構成要素の第２のセットへの、データ移転経路を評価するステップを含むことができる。データ移転経路を評価するステップは、例えばデータ移転経路の連続した使用可能性を確認するために、データ移転経路内の１つまたは複数のスイッチの電源ステータスを決定するステップを含むことができる。
【００１６】
例として第１の電源関連情報は、電力供給されるハードウェア構成要素の第１のセットへの電源障害までの推定される時間の長さを含むことができ、再配置プロトコルは、電力供給されるハードウェア構成要素の第１のセットへの電源障害までの時間の長さに少なくとも部分的に基づいて、動的に生成される緊急時再配置プロトコルとすることができる。
【００１７】
１つまたは複数の態様に関連するシステムおよびコンピュータ・プログラムも、本明細書で述べられ、特許請求される。さらに１つまたは複数の実施形態に関連するサービスも、本明細書で述べられ、特許請求され得る。
【００１８】
本発明の技法によって、さらなる特徴および利点が実現される。本発明の他の実施形態および態様は、本明細書で詳しく述べられ、特許請求される本発明の一部と考えられる。
【００１９】
本発明の１つまたは複数の態様は、本明細書の結びにおける「特許請求の範囲」において、例として詳細に指摘され明瞭に請求される。本発明の上記および他の目的、特徴、および利点は、以下の詳細な説明を添付の図面と併せて読めば、明らかとなる。
【図面の簡単な説明】
【００２０】
【図１】本発明の１つまたは複数の態様による、再配置プロトコルを受け得る仮想マシンを有する、仮想コンピューティング環境の例を示す図である。
【図２】本発明の１つまたは複数の態様による、生成された再配置プロトコルを用いた、電力供給されるハードウェア構成要素の第１のセットから、電力供給されるハードウェア構成要素の第２のセットへの、仮想マシンの移転の一実施形態を示す図である。
【図３】本発明の１つまたは複数の態様による、例えば図２の電力供給されるハードウェア構成要素の第１のセットから電力供給されるハードウェア構成要素の第２のセットに、第１の複数の仮想マシンを移行するための再配置プロトコルを生成するためのプロセスの一実施形態を示す図である。
【図４】本発明の１つまたは複数の態様による、１つまたは複数の仮想マシンをライブ移行すること、および１つまたは複数の他の仮想マシンのスナップショットをとることを含む、生成された再配置プロトコルを用いた、電力供給されるハードウェア構成要素の第１のセット、またはソース・システムから、電力供給されるハードウェア構成要素の第２のセット、またはターゲット・システムへの仮想マシンの移転の他の実施形態を示す図である。
【図５】本発明の１つまたは複数の態様による、図４のソース・システムからターゲット・システムに１つまたは複数の仮想マシンをライブ移行し、ターゲット・システム上へのその後のディプロイのためにソース・システムの１つまたは複数の他の仮想マシンのスナップショットをとるための、再配置プロトコルを生成するためのプロセスの一実施形態を示す図である。
【図６】本発明の１つまたは複数の態様による、図４のソース・システムからターゲット・システムに１つまたは複数の仮想マシンをライブ移行し、ターゲット・システム上へのその後のディプロイのためにソース・システムの１つまたは複数の他の仮想マシンのスナップショットをとるための、再配置プロトコルを生成するためのプロセスの一実施形態を示す図である。
【図７】本発明の１つまたは複数の態様を組み込み、用いることができる、コンピューティング環境の他の例を示す図である。
【図８】本発明の１つまたは複数の態様による、図７のメモリのさらなる詳細を示す図である。
【図９】本発明の１つまたは複数の態様による、仮想マシン再配置処理を組み込むことができるコンピューティング・システムの他の実施形態を示す図である。
【図１０】本発明の１つまたは複数の態様の実施を容易にする、またはこれに関連して用いられ得る、クラウド・コンピューティング環境の一実施形態を示す図である。
【図１１】本発明の１つまたは複数の態様による、仮想マシンの再配置の実施を容易にすることができる、抽出モデル・レイヤの例を示す図である。
【発明を実施するための形態】
【００２１】
以前において仮想マシンは、障害回避解決策として、１つのデータセンタから他のデータセンタに移行され得た。例えば移行されるデータは、移行された二次的バックアップ・データとすることができる。しかしこのようなデータは、主要ロケーションに位置する、稼働中の仮想マシンと同じように最新ではない。さらに通常は、第２のデータセンタ・ロケーションも主要のソース・ロケーションにおいてデータを危うくする障害によって、影響を受けているかどうかを確かめる方法が存在し得ない。
【００２２】
したがって本明細書では、１つまたは複数の態様において、例えば第１のクラウドのためのソース・システムにおける使用可能なランタイム電力と、システム・ダウンタイムを回避するためにクラウドを退避させるのに必要な時間との相関の、効率的な使用が開示される。特に本明細書では、様々な態様において、クラウド・マネージャが、それの仮想マシンに対してとるべき適切な処置を決定するために、例えばデータセンタ障害回復アプリケーションから使用可能にされた情報を用いるための手法が開示される。例えば１つまたは複数の実施形態において、特定の仮想マシンのライブ移行、スナップショットをとること、さらにはシャットダウンなど、各仮想マシンに対してどの処置が適切であるかを決定するために、仮想マシンについてのデータセンタ障害回復情報および履歴情報が用いられ得る。例としてこれは、特定の仮想マシン・タイプまたは作業負荷の大きさによる、可能な処置のそれぞれに対して必要な時間の履歴情報を用いることを含むことができる。これは例えば、仮想マシン上で稼働するアプリケーションのタイプ、仮想マシンのタイプ、および仮想マシンが稼働しているハードウェアを含む。１つまたは複数の他の態様において、各処置の結果を移転するために必要な時間についての履歴情報を使用することが考慮され得る。例えばスナップショットをとり、スナップショットを送るための時間に対して、特定の仮想マシンをライブ移行するための時間が確かめられ得る。これはまた、例えば第１のデータセンタから第２のデータセンタへの移転経路についての使用可能な情報を考慮することを含み得る。さらに再配置プロトコルを生成することは、例えば第２のデータセンタに対する電力使用可能性に基づいて、第２のデータセンタを選択することを含むことができる。これは例えば、第２のデータセンタの第２のコントローラ、または第２のデータセンタに電力供給する第２の電源システム・セットあるいはその両方と通信して、第２のデータセンタにおける電力の使用可能性を決定することを含むことができる。さらにこれは、移転経路内において関係するもの（例えばスイッチまたは他のハードウェア）についての、データセンタ障害回復情報を考慮に入れることを含むことができる。例えば移行または移転が行われることを可能にするために、データ移転経路内で十分な電力、およびしたがって時間はあるか。また、再配置プロトコルの生成において、回復ステータスの性能インパクトについての履歴情報が考慮され得る。
【００２３】
例えば履歴情報の分析を通じてバックアップ発電機がダウンするまでの、例えば災害シナリオの間でのバックアップ発電機上の残り時間の長さを決定するために、分析が使用され得る。この分析は、例えば発電機内のガスの量を評価すること、およびそのガスの量が、システムが電力を完全に失うまでに一定の時間の長さ、持続し得ると決定することを含むことができる。
【００２４】
本明細書では、仮想マシンのすべてをライブ移行するのに十分な時間がない状況を考慮し、代わりに何も失われないことを確実にするように、選択された仮想マシンのスナップショットをとるためのプロトコルを生成し、それによって、ソース・データセンタへの、またはすべての仮想マシンをライブ移行するために使用可能なリソースへの十分な電力がない場合に、仮想マシンの最新の状態を喪失から保護するという概念が開示される。１つの仮想マシンから他の仮想マシンへの履歴上の移行時間を考慮に入れた分析は、移行を行うための時間があるかどうかを決定するために用いることができ、移行が完了し得る前に発電機の電力がなくなり得る状況において、データ喪失を先制して回避するために、仮想マシンのスナップショットがとられ得る。スナップショットを作成するという決定は、管理者によって行うことができ、または例えば管理者が得られない場合は自動的に処理するように設定され得る。このようにして新たな仮想マシンが、データの喪失なしに、電源喪失の前からの正確な状態にスピン・アップされ得る。
【００２５】
したがって１つまたは複数の態様によれば、緊急時再配置プロトコルなどの再配置プロトコルは、仮想マシンを例えば電力供給されるハードウェア構成要素の第１のセット（第１の（またはソース）システムまたはデータセンタなど）から、電力供給されるハードウェア構成要素の第２のセット（第２の（またはターゲット）システムまたはデータセンタなど）に移転するために、動的に生成される。再配置プロトコルは、１つまたは複数の実施形態において、移転されることになる仮想マシンの、１つまたは複数の仮想マシンの第１のサブセットのライブ移行、および移転されることになる仮想マシンの、１つまたは複数の仮想マシンの第２のサブセットのスナップショットをとること、の両方を用いることができる。再配置プロトコルは、例えば複数の仮想マシンを稼働させる、電力供給されるハードウェア構成要素の第１のセットに電力を供給する、１つまたは複数の第１の電源システムの、第１の電源システム・セットから取得された電源関連情報に少なくとも部分的に基づいて、動的に生成され得る。
【００２６】
いくつかの実施形態において、ハードウェア構成要素の第１のセットは第１のクラウドのものであり、第１のコントローラは第１のクラウド・コントローラであり、電力供給されるハードウェア構成要素の第２のセットは第２のクラウドのものである。電力供給されるハードウェア構成要素の第２のセットは、１つまたは複数の第２の電源システムを含んだ第２の電源システム・セットから電力供給され、第２の電源システム・セットは、第１の電源システム・セットとは異なり得る。例として第１のクラウドおよび第２のクラウドは、異なる、地理的に分離されたデータセンタにおいてホストされ得る。さらに以下で述べられるように、例えば電力供給されるハードウェア構成要素の第１のセットからの異なるデータ経路に跨がった、同時の、仮想マシンの第１のサブセットのライブ移行、および仮想マシンの第２のサブセットのそれぞれのスナップショットの移転を容易にするために、電力供給されるハードウェア構成要素の１つまたは複数の中間セットなどの、１つまたは複数の中間システムが使用され得る。
【００２７】
１つまたは複数の実施形態において、第１の電源関連情報は、電力供給されるハードウェア構成要素の第１のセットに対する電源障害までの推定される時間の長さを含み、再配置プロトコルは、電力供給されるハードウェア構成要素の第１のセットに対する電源障害までの時間の長さに少なくとも部分的に基づいて、動的に生成される緊急時再配置プロトコルである。例として、第１のコントローラによって再配置プロトコルを生成するステップは、例えば１つまたは複数の仮想マシンのライブ移行、または１つまたは複数の仮想マシンのスナップショットをとること、あるいはその両方に関する履歴データを参照するステップを含むことができる。例えば履歴データは、特定の仮想マシン・タイプまたは作業負荷の大きさをライブ移行するために必要な時間の長さ、ならびに特定の仮想マシン・タイプまたは作業負荷のスナップショットをとるために必要な時間の長さについての情報を含むことができる。この情報に基づいて、生成するステップは、例えば電力供給されるハードウェア構成要素の第１のセットに対する電源障害までの残りの時間の長さを考慮して、適切な再配置プロトコルを動的に決定することができる。
【００２８】
代替としてまたは追加として、第１のコントローラによって再配置プロトコルを生成するステップは、第１の複数の仮想マシンの１つまたは複数の仮想マシンの関連付けられた優先度情報を用いるまたは参照するステップ、および優先度情報に基づいて、仮想マシンの第１のサブセットまたは仮想マシンの第２のサブセットに、１つまたは複数の仮想マシンを配置するステップを含むことができる。例えばクライアントは、その作業負荷の緊急時再配置が必要な場合は、異なる優先度のレベルに加入することができる。例えば「ゴールド・レベル」に加入しているクライアントは、その作業負荷を稼働している仮想マシンが、少なくともより低い加入レベルでのクライアントより上の優先度において、電力供給されるハードウェア構成要素の第１のセットから、電力供給されるハードウェア構成要素の第２のセットに、ライブ移行されることを確実にすることができる。このような実装形態において、より低い加入レベルに関連付けられた仮想マシンは、例えば電源障害までの推定される時間の長さに基づく、電力供給されるハードウェア構成要素の第２のセット上へのその後のディプロイのために、スナップショットをとられ得る。
【００２９】
より詳細には本発明のいくつかの実施形態は、以下の機能、特徴、動作、または利点あるいはそれらの組合せの、１つまたは複数を含むことができる。（ｉ）第１のクラウド・コントローラによって、第１のクラウドの電力供給されるハードウェア構成要素の第１のセットに電力を供給する、電源システムの第１のセットを管理することであって、電力供給される構成要素の第１のセットは、第１の複数の仮想マシン（ＶＭ）を稼働させる。（ｉｉ）第１のクラウド・コントローラによって、および電力供給されるシステムの第１のセットの、第１の電源システムから、電源関連情報の第１の項目を受信する。（ｉｉｉ）第１のクラウド・コントローラによって、電源関連情報の第１の項目に少なくとも部分的に基づいて、第１の複数のＶＭを安全に移行するための手順を決定する。（ｉｖ）ＶＭの第１のセットを安全に移行するための手順の決定は以下を含む。（ａ）ＶＭの第１のサブセットが移行を通して実質的に連続したやり方で動作し続けるように、ＶＭの第１のサブセットが、電力供給されるハードウェア構成要素の第２のセット上で稼働するように、第１の複数のＶＭの、ＶＭの第１のサブセットを移行すること、および（ｂ）第１の複数のＶＭの、ＶＭの第２のサブセットの、スナップショットをとること。（ｖ）ＶＭの第１のセットが移行を通して実質的に連続したやり方で動作し続けるように、ＶＭの第１のサブセットが、電力供給された構成要素の第２のセット上で稼働するように、第１の複数のＶＭの、ＶＭの第１のサブセットを移行する。（ｖｉ）ＶＭの第２のセットを、それらのそれぞれのスナップショットに基づいて、それらを電力供給されるハードウェア構成要素の第２のセットにディプロイすることによって、移行する。（ｖｉｉ）ＶＭの第２のセットの移行は、ＶＭの第１のセットの移行の完了後に行われ得る。（ｖｉｉｉ）プロセスは、作業を他のＶＭにオフロードするためにネットワークを追加する必要はない。（ｉｘ）プロセスはネットワーク内の使用可能な他のＶＭを調べて、最適な場所に作業を移行する。（ｘ）プロセスは先制してスナップショットをとり、したがってデータ複製は必要ではない。または、（ｘｉ）プロセスは障害時に応答して、データの回復の必要性を防止する。あるいはそれらの組合せである。
【００３０】
本明細書で開示されるような仮想マシン再配置機能の１つまたは複数の態様を組み込み、用いるためのコンピューティング環境の一例は、始めに図１を参照して述べられる。図１を参照すると、一例においてコンピューティング環境１００は、インターナショナル・ビジネス・マシーンズ（ＩＢＭ（Ｒ））コーポレーション、ニューヨーク州アーモンクによって提供されるｚ／Ａｒｃｈｉｔｅｃｔｕｒｅに基づくことができる。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅは、“z/Architecture - Principles of Operation,”Publication No. SA22-7832-10, 11th Edition, March 2015という名称のＩＢＭ刊行物に述べられており、その全体がこれによって参照により本明細書に組み込まれる。Ｚ／ＡＲＣＨＩＴＥＣＴＵＲＥ、ＩＢＭ、Ｚ／ＶＭ、およびＺ／ＯＳ（本明細書で参照される）は、インターナショナル・ビジネス・マシーンズ・コーポレーション、ニューヨーク州アーモンクの登録商標である。本明細書で用いられる他の名前は、インターナショナル・ビジネス・マシーンズ・コーポレーションまたは他の会社の登録商標、商標、または製品名であり得る。
【００３１】
他の例においてコンピューティング環境は、インターナショナル・ビジネス・マシーンズ・コーポレーション、ニューヨーク州アーモンクによって提供されるＰｏｗｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅに基づくことができる。Ｐｏｗｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅの一実施形態は、“Power ISA(TM) Version 2.07B,” InternationalBusiness Machines Corporation, April 9, 2015に述べられており、その全体がこれによって参照により本明細書に組み込まれる。ＰＯＷＥＲ  ＡＲＣＨＩＴＥＣＴＵＲＥは、インターナショナル・ビジネス・マシーンズ・コーポレーション、ニューヨーク州アーモンクの登録商標である。
【００３２】
他の例においてコンピューティング環境は、インターナショナル・ビジネス・マシーンズ・コーポレーションまたは他の会社あるいはその両方によって提供される、他のアーキテクチャに基づくことができる。
【００３３】
コンピューティング環境１００は、仮想マシンサポートをもたらす中央プロセッサ複合体（ＣＰＣ）１０２を含む。ＣＰＣ１０２は、１つまたは複数の制御ユニット１０８によって１つまたは複数の入力／出力（Ｉ／Ｏ）デバイス１０６に結合される。中央プロセッサ複合体１０２は、例えば１つまたは複数の中央プロセッサ（中央処理装置（ＣＰＵ）としても知られる）１１０に結合されたプロセッサ・メモリ１０４（メイン・メモリ、メイン・ストレージ、中央ストレージとしても知られる）、および入力／出力サブシステム１１１を含み、それぞれ以下で述べられる。
【００３４】
プロセッサ・メモリ１０４は、例えば１つまたは複数の仮想マシン１１２、仮想マシンを管理するハイパーバイザ１１４などの仮想マシンマネージャ、およびプロセッサ・ファームウェア１１５を含む。ハイパーバイザ１１４の一例は、インターナショナル・ビジネス・マシーンズ・コーポレーション、ニューヨーク州アーモンクによって提供されるｚ／ＶＭ（Ｒ）である。ハイパーバイザは、時にはホストと呼ばれる。さらに本明細書で用いられるファームウェアとは、例えばプロセッサのマイクロコードまたはミリコードあるいはその両方を含む。これは例えば、より上位レベルのマシンコードの実装形態において用いられる、ハードウェアレベル命令またはデータ構造体あるいはその両方を含む。一実施形態においてこれは通常、例えば信頼されるソフトウェア、または基礎をなすハードウェアに固有のマイクロコードを含み、システム・ハードウェアへのオペレーティング・システム・アクセスを制御するマイクロコードとして供給される、独自開発のコードを含む。
【００３５】
ＣＰＣの仮想マシンサポートは、それぞれが異なるプログラム１２２により動作し、Ｌｉｎｕｘなどのゲスト・オペレーティング・システム１２０を稼働させる能力を有する、多数の仮想マシン１１２を動作させる能力をもたらす。各仮想マシン１１２は、別個のシステムとして機能する能力を有する。すなわち各仮想マシンは、独立にリセットされ、ゲスト・オペレーティング・システムを稼働させ、および異なるプログラムにより動作することができる。仮想マシン内で稼働するオペレーティング・システムまたはアプリケーション・プログラムは、十分な、および全部のシステムへのアクセスを有するように見えるが、実際はその一部分のみが利用可能である。
【００３６】
プロセッサ・メモリ１０４は、仮想マシンに割り当て可能な物理プロセッサ・リソースである、中央プロセッサ（ＣＰＵ）１１０に結合される。例えば仮想マシン１１２は１つまたは複数の論理プロセッサを含み、そのそれぞれは仮想マシンに動的に割り振られ得る、物理プロセッサ・リソース１１０のすべてまたは割り当て分を表す。
【００３７】
さらにプロセッサ・メモリ１０４は、Ｉ／Ｏサブシステム１１１に結合される。入力／出力サブシステム１１１は、入力／出力制御ユニット１０８およびデバイス１０６と、メイン・ストレージ１０４との間の情報の流れを方向付ける。これは、中央処理複合体の一部となり得る、またはそれとは別個となり得るという点で、中央処理複合体に結合される。
【００３８】
例として図１に示されるものなどの１つまたは複数のコンピューティング環境は、データセンタ内に存在することができ、述べられたようにデータセンタ電源異常は自然災害を含む種々の理由で生じ得る。データセンタ内のシステム上で稼働するいずれの仮想マシンも含み、データセンタが主電源異常を経験している間も稼働したままとなり得ることを確実にするために、例えば整然としたシャットダウンまたは稼働しているシステムのバックアップあるいはその両方を容易にするために、少なくともある期間、データセンタに電力供給を続けるために、バッテリ・バックアップ・システムまたはガス駆動発電機あるいはその両方が用いられ得る。自然災害の場合、主電源は数日、さらには数週間切れたままとなり得る。したがって本明細書では１つまたは複数の態様において、仮想マシンの連続した動作を可能にするように、データセンタの仮想マシンを例えば他のリモート・データセンタに再配置するための、再配置プロトコルを動的に生成するためのプロセスが開示される。
【００３９】
図２は仮想マシンを、ソース・システムまたはソース・データセンタなどの電力供給されるハードウェア構成要素の第１のセット２００から、ターゲット・システムまたはターゲット・データセンタなどの電力供給されるハードウェア構成要素の第２のセット２２０に移転するためのプロセスの一実施形態を示す。電力供給されるハードウェア構成要素の第１のセット２００は、１つまたは複数の第１の電源システムの第１の電源システム・セット２０１によって電力供給され、電力供給されるハードウェア構成要素の第２のセット２２０は、１つまたは複数の第２の電源システムの第２の電源システム・セット２２１によって電力供給される。実際には第１および第２の電源システム・セット２０１、２２１は、少なくとも部分的に、電源システムの異なるセットである。示されるように電力供給されるハードウェア構成要素の第１のセット２００は、第１のクラウド環境２１０を含むことができ、電力供給されるハードウェア構成要素の第２のセット２２０は、第２のクラウド環境２３０を含むことができる。第１のクラウド２１０は第１のクラウド・コントローラ２１１を、第２のクラウド２３０は第２のクラウド・コントローラ２３１を、有することができる。図示のように第１のクラウド２１０はまた、電力供給されるハードウェア構成要素の第１のセット２００上で稼働する、複数の仮想マシン２１２を含むことができる。
【００４０】
本明細書で開示されるように、第１のクラウド・コントローラ２１１などのコントローラには、電力供給されるハードウェア構成要素の第１のセット２００などの、関連付けられたシステムの仮想マシンをどこにどのように安全に退避させるかを含む、再配置プロトコルを動的に決定または生成するために、第１の電源システム・セット２０１および第２の電源システム・セット２２１などの１つまたは複数の電源システムからデータを取得し活用する能力がもたらされ得る。これは自然災害が生じ、それが電力供給されるハードウェア構成要素の第１のセット２００への主電源を無力化し、残されたバックアップ電源時間が限られる場合に特に有益となり得る。
【００４１】
本明細書で開示されるようにコントローラには、少なくとも第１の電源システム・セット２０１から取得された電源関連情報（例えば第１の電源関連情報）に少なくとも部分的に基づいて、複数の仮想マシン２１２を移行するための再配置プロトコルを生成する機能または能力がもたらされる。例えば電源関連情報は、電力供給されるハードウェア構成要素の第１のセット２００への電力が失われるまでの残りの時間の長さを含むことができる。再配置プロトコルは、仮想マシンの第１のサブセットが移行を通して実質的に連続したやり方で動作し続けるように、仮想マシンの第１のセットが、電力供給されるハードウェア構成要素の第２のセット２２０へ移行されその上で稼働するように、複数の仮想マシン２１２の、１つまたは複数の仮想マシンの第１のサブセット（例えば図２の仮想マシン１）の移行を含むことができる。この移行はライブ移行を指し、これはクライアントまたはアプリケーションを切断せずに異なる物理マシンの間で、稼働している仮想マシンまたはアプリケーションを移動するプロセスである。仮想マシンのメモリ、ストレージ、およびネットワーク接続性は、元のマシン（例えば電力供給されるハードウェア構成要素の第１のセット２００）から、移行先（destination）またはターゲット・マシン（例えば電力供給されるハードウェア構成要素の第２のセット２２０）に移転される。プリコピーおよびポストコピー・メモリ移行が使用されてよく、様々な仮想マシン（ＶＭ）マネージャが、ライブ移行サポート、ならびに当技術分野で使用可能な様々なクラウド・プラットフォームおよびシステムをもたらす。特定の例としてＩＢＭ（Ｒ）ＰＯＷＥＲ  Ｈｙｐｅｒｖｉｓｏｒ（TM）は、ライブ移行サポートをもたらす。
【００４２】
さらに生成される再配置プロトコルは、複数の仮想マシン２１２の１つまたは複数の仮想マシンの第２のサブセット（例えば図２の仮想マシン２、仮想マシン３）のスナップショットをとることを含む。知られているようにスナップショットは、特定の時点での仮想マシンの状態およびデータを保存する。状態は、仮想マシンの電源状態（例えば電源オン、電源オフ、またはサスペンド）を含む。データは、仮想マシンを構成するすべてのファイルを含む。これはディスク、メモリ、および仮想ネットワーク・インターフェース・カードなどの他のデバイスを含む。仮想マシンは、スナップショットおよびスナップショット・チェーンを作成および管理するためのいくつかのオプションをもたらす。これらの動作はコントローラに、スナップショットを作成させ、チェーン内の任意のスナップショットに戻させ、スナップショットを削除させる。スナップショットをとることは現在、様々なＶＭｗａｒｅ，Ｉｎｃ．マシンによるものなど、様々な仮想マシン（ＶＭ）マネージャによってサポートされる。さらに、スナップショットをとることは、ＩＢＭ  Ｖｉｒｔｕａｌ  Ｓｅｒｖｅｒ（TM）およびＩＢＭ  Ｃｌｏｕｄ  Ｍａｎａｇｅｒ（TM）を含む様々なＩＢＭ製品によってサポートされる。
【００４３】
一般にスナップショットを作成し、スナップショットをソース・システムからターゲットまたは移行先システムに移転する時間は、仮想マシンをソース・システムから移行先システムにライブ移行するのに必要な時間より、かなり短くなり得る。したがって電力供給されるハードウェア構成要素の第１のセット２００に電源が使用可能のままとなる時間の長さなどの、電源システムの第１のセット２０１からの電源関連情報は、実質的にすべての仮想マシンが、電力供給されるハードウェア構成要素の第２のセットに移行される、またはハードウェア構成要素の第２のセットへの移転、およびそれでのその後のディプロイのためにスナップショットをとられることを確実にするように、再配置プロトコルを生成することにおいてクラウド・コントローラ２１１によって用いられ得る。
【００４４】
図３は、再配置プロトコルを動的に生成し、次いで例えば、仮想マシンが１つのデータセンタから他のリモート・データセンタに移転されることになる災害緊急時に、仮想マシンを移転または移行するためのプロセスの一実施形態を示す。
【００４５】
図３を参照するとプロセスは、２７０で電力供給されるハードウェア構成要素の第１のセットが第１の複数の仮想マシンを稼働している状態で、第１のクラウド・コントローラによって、第１のクラウドの電力供給されるハードウェア構成要素の第１のセットに電力を供給する第１の電源システム・セットを、管理するステップを含む。２７５で第１のクラウド・コントローラは、第１の電源システム・セットの第１の電源システムから、第１の電源関連情報を受信または取得する。述べられたようにこの情報は、例えば電力供給されるハードウェア構成要素の第１のセットに対して電源が使用可能のままとなる時間の長さを含むことができる。
【００４６】
第１のクラウド・コントローラは次いで２８０で、取得された電源関連情報に少なくとも部分的に基づいて、第１の複数の仮想マシンを安全に移行するための、場所およびプロトコルを生成または決定する。再配置プロトコルは、２８１で仮想マシンの第１のサブセットが移行を通して実質的に連続したやり方で動作し続けるように、仮想マシンの第１のサブセットが、電力供給されるハードウェア構成要素の第２のセット上で稼働することになるように、仮想マシンの第１のサブセットを移行すること、および２８２で第１の複数の仮想マシンの、仮想マシンの第２のサブセットのスナップショットを先制してとること、を含むことができる。処理はさらに２８５で、仮想マシンの第１のサブセットが移行を通して実質的に連続したやり方で動作し続けるように、第１の複数の仮想マシンの、仮想マシンの第１のサブセットを移行することを含むことができる。さらに２９０で仮想マシンの第２のサブセットは、それらのそれぞれのスナップショットに基づいて移行され得る（例えば仮想マシンの第１のサブセットの移行の完了後に、仮想マシンの第２のサブセットを、電力供給されるハードウェア構成要素の第２のセットにディプロイすることにより）。
【００４７】
１つまたは複数の態様において、本明細書で開示される処理は、クラウド・コントローラが、他のクラウド・コントローラおよび他の電源システムなどの他のシステムと作業している状態で、仮想マシンの移行のためにそれが接続される、システムの使用可能性および有効性を見るために、グローバル移行ビュー（global migratory view）に基づく。例えば、電源の喪失によりダウンする可能性のあるクラウド環境において作業負荷が稼働する状況では、仮想マシンは、故障しないターゲットまたは移行先クラウドに移行され得る。このような場合移行は、新たなターゲット・クラウドに移動されることになる仮想マシンを休止させ、データ（メモリ、プロセス状態など）をターゲット・クラウドに移転することを必要とし得る。この作業は、稼働している仮想マシンの下から電力がなくなることを避けるために、帯域幅の観点から優先し得る。さらに並行して、ライブ仮想マシンの移行に影響を及ぼさないように、ターゲット環境にライブ移行できなくなる仮想マシンは、スナップショットをとられ、それらの状態を獲得して例えばディスクに保存することができる。スナップショットをとられると共にこれらの仮想マシンは、ターゲット・システム上へのその後のディプロイまで、シャットダウンされ得る。
【００４８】
１つまたは複数の実施形態において、上述のクラウド・コントローラなどのコントローラは、仮想マシンに対してそれらが関連付けられる特定の再配置プロトコルを生成または決定することにおいて、いくつかの要因を比較検討することができる。これらの要因は、移転のために、デフォルトとしての純粋な移行による移行プロトコルおよびシャットダウンではなく、稼働している仮想マシンの１つまたは複数のスナップショットをとるオプションを含み、どのような処置をとるかを決定することを含むことができる。コントローラは、仮想マシンのどれが移行されることになるか、および代わりにどれがスナップショットをとられ、スナップショットがターゲットまたは移行先システムに移転されるかを、選択または確立する。例としてこれは、特定のタイプの仮想マシンのスナップショットをとるための履歴上の時間、結果としてのスナップショットの大きさ、およびスナップショットを送信するために使用可能な帯域幅を、評価することを含み得る。さらにクラウド・コントローラはスナップショットが、例えば１つまたは複数の他の仮想マシンの移行のためには必要でない帯域幅を用い得るデータ経路を用いて、中間システムまたはノードに送信され得るかどうかを調べることができる。このようにして、移転されたスナップショットはその後、回復またはディプロイのために、ターゲットまたは移行先システムに移転され得る。さらにクラウド・コントローラは、移転ノードのクラウド・コントローラと通信することによって、すべての移転ノード（複数のノードが用いられ得るので）がそれら自体は退避されないことを確実にすることができる。それら自体も退避される場合、コントローラは、代替中間ノードなどの代替ノードを探し、いずれも使用可能でない場合は、１つまたは他のクラウド・コントローラとネゴシエートして、それが移転ノードとして用いられるだけ十分長く稼働したままとなるかどうかを決定することができる。移転において用いられることになる中間スイッチすなわちデータ経路内のスイッチなどの、中間ハードウェアに対して、クラウド・コントローラは、中間ハードウェアが関連付けられたクラウド・コントローラと共に作業することができ、またはそれらが独立である場合は、中間ハードウェアに関連付けられた電源システムと直接通信することができる。１つまたは複数の仮想マシンの移行が行われている間、スナップショットをとられるべき１つまたは複数の仮想マシンは、並行してスナップショットをとられ、次いでターゲットまたは移行先ノード、システム、データセンタなどに移転され得る。
【００４９】
図４は、例えばソース・システム３００から、ターゲット・システム３３０への仮想マシン移行のより詳細な例を示し、これは部分的に１つまたは複数の中間システム３５０を用いることができる。この実施形態において、電力供給されるハードウェア構成要素の第１のセットなどのソース・システム３００は、稼働している複数の仮想マシン３１２を有する第１のクラウド３１０を含み、関連付けられた制御部３１１を有する。ソース・システム３００は、１つまたは複数の電源システムを含む第１の電源システム・セット（電源システムＡ３０１）によって電力供給される。仮想マシン３１２の移行はネットワーク３２０に跨がって行われることになり、これはそのそれぞれが１つまたは複数の電源システムを含み得る関連付けられた電源システム・セット（電源システムＢ３２４、電源システムＣ３２８など）によってそのそれぞれが電力供給される、スイッチ３２２、３２６などの１つまたは複数の中間ハードウェア構成要素を含むことができる。
【００５０】
この例において、電力供給されるハードウェア構成要素の第２のセットなどのターゲット・システム３３０は、それに関連付けられた第２の制御部３４１を有する、第２のクラウド環境３４０をホストすることができる。ターゲット・システム３３０はまた、１つまたは複数の電源システムの第２の電源システム・セット（例えば電源システムＤ３３１）によって電力供給され得る。述べられたように１つまたは複数の中間システム３５０は、例えば１つまたは複数の仮想マシンが、例えば異なるデータ経路３２１、３２５に跨がって移行されている時点でのスナップショットをとられたデータの同時移転を容易にするために、使用され得る。中間システム３５０は、１つまたは複数の例において、仮想マシン・スナップショット３６２を受信するためのメモリ３６０、および関連付けられた制御部３６１を含むことができる。中間システム３５０は中間電源システム・セット（例えば電源システムＥ３５１）によって電力供給することができ、これは１つまたは複数の電源システムを含み得る。一般に、電源システムＡ３０１、電源システムＢ３２４、電源システムＣ３２８、電源システムＤ３３１、および電源システムＥ３５１などの電源システム・セットは、電源システムの異なるセットを含むまたはそれらとすることができ、１つまたは複数の他の実施形態においてそれらの１つまたは複数は、ネットワーク３２０の電源システムＢ３２４および電源システムＣ３２８など、同じ電源システムを有することができる。
【００５１】
図５および６は、本発明の１つまたは複数の態様による、仮想マシンを移行するためのプロセスの一実施形態を示す。図４〜６をまとめて参照すると、３７０で電源障害通知が、電源システムＡ３０１から、第１のクラウド制御部３１１などにおいてソース・システムに受信され得る。これに基づいて、３７２で第１のクラウド・コントローラまたはマネージャは、仮想マシンをどこに移行するかを決定する、すなわちターゲットまたは移行先システム（または電力供給されるハードウェア構成要素の第２のセット）を決定する。
【００５２】
１つまたは複数の実施形態において、３７４でクラウド・コントローラ・マネージャ３１１は、ソース・システムとターゲット・システムとの間で、データ経路３２１内のスイッチ１  ３２２に電力を供給する電源システムＢ３２４などの電源システムに、問い合わせることができる。さらに、３７６でソース・システム３００のクラウド制御部またはマネージャ３１１は、ターゲット・システムに電力を供給する、電源システムＤ３３１のステータスを決定することができる。これは所望の情報を得るために、第１のクラウド制御部３１１がターゲット・システム３３０の第２のクラウド制御部３４１に問い合わせることに関わることができ、またはクラウド制御部３１１が電源システムＤ３３１と直接通信することに関わり得る。
【００５３】
次に１つまたは複数の実施形態において、３７８でクラウド制御部３１１は、スナップショットをとられたデータを収容することができる１つまたは複数の中間システムまたはノード、ならびに中間システムへの電源システムＥ３５１のステータスを決定することができる。この情報と共に３８０で、クラウド制御部またはマネージャは、ソース・システムと中間システムとの間のデータ経路３２５内の１つまたは複数のスイッチ３２６に電力供給する、電源システムＣ３２８のステータスを決定することができる。３８２でこの情報は、仮想マシンを移行する、または仮想マシンのスナップショットをとるために必要な時間についての履歴情報などの他の情報、またはソース・システムの１つまたは複数の仮想マシンがクラウド制御部に対して、高い優先度を有するものとして、したがってスナップショットをとられるものとは対照的にライブ移行のための優先度を有するものとして示される優先度データ、または特定の仮想マシン３１２を、再配置プロトコルの仮想マシンの第１のサブセットまたは第２のサブセットに配置するかどうかの決定においてクラウド制御部に使用可能となり得る任意の他のタイプのデータと共に参照される。仮想マシン再配置プロトコルが生成された後、次いで３８４でプロトコルが実施され、これは３８６で処理を終了させる。本明細書で述べられるものなど、３８４で仮想マシン再配置プロトコルを実施するための一実施形態は、図６に示される。
【００５４】
図６に示されるように再配置プロトコルを実施することは、３９０で例えばソースおよびターゲット・システムの間のデータ経路内の１つまたは複数のスイッチ１を経由して、１つまたは複数の仮想マシン（例えば図４の例における仮想マシン１）を、ソース・システムからターゲット・システムにライブ移行することを含む。処理は３９２で、１つまたは複数の仮想マシンのライブ移行と組み合わせて、ソース・システムの１つまたは複数の仮想マシン（例えば仮想マシン２、仮想マシン３）のスナップショットをとることを含む。１つまたは複数の実装形態においてスナップショットをとるプロセスは、ライブ移行プロセスより低い優先度にあるものとすることができる。また、１つまたは複数の他の実施形態においてスナップショットをとることは、１つまたは複数の仮想マシンの移行と並行して行われ得る。３９４でスナップショット・データはソース・システムから、（例えば１つまたは複数のデータ経路を経由して、１つまたは複数の中間システムに）送られ、これはスイッチなどの１つまたは複数のハードウェア構成要素を含み得る。仮想マシン・スナップショットが中間システムからターゲット、移行先システムに移転された後、３９６でそれらはターゲット・システムにおいてディプロイされ得る。
【００５５】
本明細書で述べられる仮想マシン再配置機能の１つまたは複数の態様を組み込み、用いることができるコンピューティング環境の他の実施形態は、図７に示される。この例においてコンピューティング環境４００は例えば、互いに例えば１つまたは複数のバス４０８または他の接続あるいはその両方によって結合された、ネイティブ中央処理装置（ＣＰＵ）４０２、メモリ４０４、および１つまたは複数の入力／出力デバイス、またはインターフェース４０６あるいはそれらの組合せを含む。例としてコンピューティング環境４００は、インターナショナル・ビジネス・マシーンズ・コーポレーション、ニューヨーク州アーモンクによって提供されるＰｏｗｅｒＰＣプロセッサまたはＰｏｗｅｒ  Ｓｙｓｔｅｍｓサーバ、Ｈｅｗｌｅｔｔ  Ｐａｃｋａｒｄ  Ｃｏ．、カリフォルニア州パロアルトによって提供されるインテルＩｔａｎｉｕｍ  ＩＩプロセッサを用いたＨＰ  Ｓｕｐｅｒｄｏｍｅ、またはインターナショナル・ビジネス・マシーンズ・コーポレーション、Ｈｅｗｌｅｔｔ  Ｐａｃｋａｒｄ、インテル、オラクルその他によって提供されるアーキテクチャに基づく他のマシンあるいはそれらの組合せを含むことができる。
【００５６】
ネイティブ中央処理装置４０２は、環境内での処理時に用いられる、１つまたは複数の汎用レジスタまたは１つまたは複数の専用レジスタあるいはその両方などの、１つまたは複数のネイティブ・レジスタ４１０を含む。これらのレジスタは、任意の特定の時点での環境の状態を表す情報を含む。
【００５７】
さらにネイティブ中央処理装置４０２は、メモリ４０４に記憶された命令およびコードを実行する。１つの特定の例において中央処理装置は、メモリ４０４に記憶されたエミュレータ・コード４１２を実行することができる。このコードは、１つのアーキテクチャにおいて構成されたコンピューティング環境が、１つまたは複数の他のアーキテクチャをエミュレートすることを可能にする。例えばエミュレータ・コード４１２は、ＰｏｗｅｒＰＣプロセッサ、Ｐｏｗｅｒ  Ｓｙｓｔｅｍｓサーバ、ＨＰ  Ｓｕｐｅｒｄｏｍｅサーバその他など、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ以外のアーキテクチャに基づくマシンが、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）（またはＥＳＡ／３９０あるいはその両方）をエミュレートし、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）に基づいて開発されたソフトウェアおよび命令を実行することを可能にする。
【００５８】
エミュレータ・コード４１２に関するさらなる詳細は、図８を参照して述べられる。メモリ４０４に記憶されたゲスト命令４５０は、ネイティブＣＰＵ４０２のもの以外のアーキテクチャにおいて実行されるように開発されたソフトウェア命令（例えばマシン命令と相互に関連する）を備える。例えばゲスト命令４５０は、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）プロセッサ上で実行するように設計されたが、代わりに例えばインテルＩｔａｎｉｕｍ  ＩＩプロセッサとすることができる、ネイティブＣＰＵ４０２上でエミュレートされる。一例においてエミュレータ・コード４１２は、メモリ４０４から１つまたは複数のゲスト命令４５０を取得し、任意選択で、取得された命令のためのローカル・バッファリングをもたらすための、命令フェッチ・ルーチン４５２を含む。これはまた、取得されたゲスト命令のタイプを決定し、ゲスト命令を１つまたは複数の対応するネイティブ命令４５６に翻訳するための、命令翻訳ルーチン４５４を含む。この翻訳は例えば、ゲスト命令によって行われることになる機能を識別し、その機能を行うためのネイティブ命令を選択することを含む。
【００５９】
さらにエミュレータ・コード４１２は、ネイティブ命令が実行されるようにするエミュレーション制御ルーチン４６０を含む。エミュレーション制御ルーチン４６０は、ネイティブＣＰＵ４０２に、１つまたは複数の前に取得されたゲスト命令をエミュレートするネイティブ命令のルーチンを実行させ、このような実行の終わりにおいて、次のゲスト命令またはゲスト命令のグループの取得をエミュレートするために、制御を命令フェッチ・ルーチンに戻させる。ネイティブ命令４５６の実行は、メモリ４０４からレジスタにデータをロードすること、データをレジスタからメモリに戻して記憶すること、または翻訳ルーチンによる決定により、あるタイプの算術演算または論理演算を行うことを含むことができる。
【００６０】
各ルーチンは例えば、メモリに記憶されネイティブ中央処理装置４０２によって実行される、ソフトウェアにおいて実施される。他の例においてルーチンまたは動作の１つまたは複数は、ファームウェア、ハードウェア、ソフトウェア、またはそれらの何らかの組合せにおいて実施される。エミュレートされるプロセッサのレジスタは、ネイティブＣＰＵのレジスタ４１０を用いて、またはメモリ４０４内のロケーションを用いることによってエミュレートされ得る。実施形態においてゲスト命令４５０、ネイティブ命令４５６、およびエミュレータ・コード４１２は、同じメモリに常駐することができ、または異なるメモリ・デバイスの間で分配され得る。
【００６１】
本発明の１つまたは複数の態様を実施するための、さらなるコンピューティング環境の例示的実施形態は、以下で図９〜１１を参照して述べられる。
【００６２】
他の例として図９は、コンピューティング・システム５１２を含む、コンピューティング環境５００の一実施形態を示す。コンピュータ・システム５１２との使用に適し得る、よく知られたコンピューティング・システム、環境、または構成あるいはそれらの組合せは、デスクトップ・コンピュータ、ワークステーション、ハンドヘルドまたはラップトップ・コンピュータまたはデバイス、携帯電話、プログラマブル民生用電子機器、タブレット、携帯情報端末（ＰＤＡ）などを含むが、それらに限定されない。
【００６３】
コンピューティング・システム５１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈において述べられ得る。一般にプログラム・モジュールは、特定のタスクを行う、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造体などを含むことができる。
【００６４】
図９に示されるようにコンピューティング・システム５１２は、汎用コンピューティング・デバイスの形で示される。コンピューティング・システム５１２の構成要素は、１つまたは複数のプロセッサまたは処理装置５１６、システム・メモリ５２３、およびシステム・メモリ５２３を含む様々なシステム構成要素をプロセッサ５１６に結合するバス５１８を含むことができるが、それらに限定されない。
【００６５】
一実施形態においてプロセッサ５１６は、インターナショナル・ビジネス・マシーンズ・コーポレーションによって提供されるｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）、あるいはインターナショナル・ビジネス・マシーンズ・コーポレーションまたは他の会社によって提供される他のアーキテクチャに基づくことができる。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）は、インターナショナル・ビジネス・マシーンズ・コーポレーション、米国ニューヨーク州アーモンクの登録商標である。ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（Ｒ）の一実施形態は、その全体がこれによって参照により本明細書に組み込まれている“z/Architecture(R) Principles of Operation,”IBM Publication No. SA22-7832-10, March 2015に述べられている。
【００６６】
他の例においてこれは、インターナショナル・ビジネス・マシーンズ・コーポレーションによって提供されるＰｏｗｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅなどの、他のアーキテクチャに基づくことができる。Ｐｏｗｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅの一実施形態は、その全体がこれによって参照により本明細書に組み込まれている“Power ISA(TM) Version 2.07B,” InternationalBusiness Machines Corporation, April 9, 2015に述べられている。ＰＯＷＥＲ  ＡＲＣＨＩＴＥＣＴＵＲＥは、インターナショナル・ビジネス・マシーンズ・コーポレーション、米国ニューヨーク州アーモンクの登録商標である。本明細書で用いられる他の名前は、インターナショナル・ビジネス・マシーンズ・コーポレーションまたは他の会社の登録商標、商標、または製品名であり得る。
【００６７】
バス５１８は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、およびアクセラレイテッド・グラフィックス・ポート、および多様なバス・アーキテクチャのいずれかを用いたプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかの１つまたは複数を表す。例として限定せずに、このようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスを含む。
【００６８】
コンピューティング・システム５１２は、多様なコンピュータ・システム可読媒体を含むことができる。このような媒体は、コンピューティング・システム５１２によってアクセス可能な任意の入手可能な媒体とすることができ、これは揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体を共に含む。
【００６９】
システム・メモリ５２３は、ランダム・アクセス・メモリ（ＲＡＭ）５３０またはキャッシュ・メモリ５３２あるいはその両方などの、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピューティング・システム５１２はさらに、他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ・システム記憶媒体を含むことができる。例のみとして記憶システム５３４は、非リムーバブル、不揮発性磁気媒体（図示せず、通常「ハード・ドライブ」と呼ばれる）からの読み出しおよびそれへの書き込みのためにもたらされ得る。図示されないが、リムーバブル、不揮発性磁気ディスク（例えば「フロッピ（Ｒ）・ディスク」）からの読み出しおよびそれへの書き込みのための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などのリムーバブル、不揮発性光ディスクからの読み出しまたはそれへの書き込みのための光ディスク・ドライブがもたらされ得る。このような場合、それぞれは１つまたは複数のデータ媒体インターフェースによってバス５１８に接続され得る。以下で述べられるようにメモリ５２３は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット（例えば少なくとも１つ）を有する少なくとも１つのプログラムを含むことができる。
【００７０】
プログラム・モジュール５４２のセット（少なくとも１つ）を有する、プログラム／ユーティリティ５４０は、例としておよび限定せずに、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ５３２に記憶され得る。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはそれらの何らかの組合せのそれぞれは、ネットワーク化環境の実装形態を含むことができる。プログラム・モジュール５４２は一般に、本明細書で述べられる本発明の実施形態の機能または方法論あるいはその両方を実行する。あるいは、別個の仮想マシン再配置制御部、システム、モジュール、ロジックなど５０１が、コンピューティング環境５１２内にもたらされ得る。
【００７１】
コンピューティング・システム５１２はまた、キーボード、ポインティング・デバイス、ディスプレイ５２４などの１つまたは複数の外部デバイス５１４、ユーザがコンピューティング・システム５１２と対話することを可能にする１つまたは複数のデバイス、またはコンピューティング・システム５１２が１つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えばネットワーク・カード、モデムなど）あるいはそれらの組合せと通信することができる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース５２２を経由して行われ得る。さらにコンピューティング・システム５１２は、ネットワーク・アダプタ５２０を経由して、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（例えばインターネット）あるいはそれらの組合せなど、１つまたは複数のネットワークと通信することができる。示されるようにネットワーク・アダプタ５２０は、バス５１８を経由してコンピューティング・システム５１２の他の構成要素と通信する。図示されないが、コンピューティング・システム５１２と共に、他のハードウェアまたはソフトウェア構成要素あるいはその両方が用いられ得ることが理解されるべきである。例は、マイクロコード、デバイス・ドライバ、冗長処理装置、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、データ・アーカイブ記憶システムなどを含むが、それらに限定されない。
【００７２】
１つまたは複数の態様は、クラウド・コンピューティングに関し、またはそれを用いることができる。
【００７３】
前もって、本開示はクラウド・コンピューティングについての詳しい説明を含むが、本明細書に記載されるいくつかの教示の実施は、クラウド・コンピューティング環境に限定されないことが理解される。むしろ本発明の実施形態は、現在知られているまたは後に開発される任意の他のタイプのコンピューティング環境と共に実施される能力を有する。
【００７４】
クラウド・コンピューティングは、最少の管理上の努力またはサービスのプロバイダとの対話により迅速に用意され、リリースされ得る、構成可能なコンピューティング・リソース（例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有されたプールへの便利な、オンデマンド・ネットワーク・アクセスを可能にするためのサービス供給のモデルである。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つのディプロイモデルを含むことができる。
【００７５】
特徴は以下の通りである。
【００７６】
オンデマンド・セルフサービス：クラウド消費者は、サービスのプロバイダとの人的対話なしに必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどの、コンピューティング能力を一方的に用意することができる。
【００７７】
広いネットワーク・アクセス：能力はネットワークを通して使用可能であり、標準の機構を通じてアクセスされ、これは異種のシンまたはシック・クライアント・プラットフォーム（例えば携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する。
【００７８】
リソース・プーリング：プロバイダのコンピューティング・リソースは、異なる物理および仮想リソースが需要に従って動的に割り当ておよび再割り当てされながら、マルチ・テナント・モデルを用いて複数の消費者にサービスするようにプールされる。消費者は一般に、もたらされるリソースの正確な位置に対する制御性または知識をもたないが、抽象化のより高いレベルにおいて位置を指定する（例えば国、州、またはデータセンタ）ことが可能になり得るという点で、位置からの独立性の観念がある。
【００７９】
迅速な融通性：能力は、いくつかの場合には自動的に、速やかにスケール・アウトし、または速やかにスケール・インするように迅速にリリースされるように、迅速におよび弾力的に用意され得る。消費者には、用意するために使用可能な能力は無限であるように見えることが多く、任意の時点で任意の量において購入され得る。
【００８０】
測定されたサービス：クラウド・システムは、サービスのタイプ（例えばストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント）に適した、何らかのレベルの抽象化における計量能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用量は監視され、制御され、報告されて、利用されるサービスのプロバイダおよび消費者の両方に対して透明性をもたらす。
【００８１】
サービス・モデルは以下の通りである。
【００８２】
ソフトウェア・アズ・ア・サービス（ＳａａＳ）：消費者にもたらされる能力は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ（例えばウェブ・ベースの電子メール）などのシン・クライアント・インターフェースを通して、様々なクライアント・デバイスからアクセス可能である。限られたユーザ固有のアプリケーション構成設定を可能性のある例外として、消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個別のアプリケーション能力を含む、基礎をなすクラウド・インフラストラクチャを管理も制御もしない。
【００８３】
プラットフォーム・アズ・ア・サービス（ＰａａＳ）：消費者にもたらされる能力は、プロバイダによってサポートされるプログラミング言語およびツールを用いて作成された、消費者により作成されたまたは取得されたアプリケーションを、クラウド・インフラストラクチャ上にディプロイすることである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎をなすクラウド・インフラストラクチャを管理も制御もしないが、ディプロイされたアプリケーション、および場合によっては環境構成をホストするアプリケーションに対する制御性を有する。
【００８４】
インフラストラクチャ・アズ・ア・サービス（ＩａａＳ）：消費者にもたらされる能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースを用意することであり、消費者は任意のソフトウェアをディプロイおよび稼働することができ、これはオペレーティング・システムおよびアプリケーションを含むことができる。消費者は、基礎をなすクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、ディプロイされたアプリケーションに対する制御性、および場合によっては選ばれたネットワーク化構成要素（例えばホスト・ファイアウォール）の限られた制御性を有する。
【００８５】
ディプロイモデルは以下の通りである。
【００８６】
プライベート・クラウド：クラウド・インフラストラクチャは、専ら組織のために運用される。これは組織またはサード・パーティによって管理することができ、構内または構外に存在し得る。
【００８７】
コミュニティ・クラウド：クラウド・インフラストラクチャは、いくつかの組織によって共有され、共通の関心（例えばミッション、セキュリティ要件、ポリシー、およびコンプライアンス考慮事項）を有する特定のコミュニティをサポートする。これは組織またはサード・パーティによって管理することができ、構内または構外に存在し得る。
【００８８】
パブリック・クラウド：クラウド・インフラストラクチャは、一般大衆または大きな業界グループに対して使用可能とされ、クラウド・サービスを販売する組織によって所有される。
【００８９】
ハイブリッド・クラウド：クラウド・インフラストラクチャは、独自のエンティティのままであるが、データおよびアプリケーション可搬性（例えばクラウド間の負荷バランスのためのクラウド・バースティング）を可能にする標準化されたまたは独自開発の占有技術によって一緒に結び付けられた、２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の複合体である。
【００９０】
クラウド・コンピューティング環境は、ステートレスであること、低いカップリング、モジュール性、およびセマンティック相互運用性に焦点を当てて方向付けられたサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを備えたインフラストラクチャである。
【００９１】
クラウド・コンピューティング・ノードは、図９に示されるものなどのコンピュータ・システム／サーバを含むことができる。図９のコンピュータ・システム／サーバ５１２は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが行われる、分散型クラウド・コンピューティング環境において実施され得る。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ記憶デバイスを含むローカル・コンピュータ・システム記憶媒体およびリモート・コンピュータ・システム記憶媒体の両方に配置され得る。コンピュータ・システム／サーバ５１２は、本明細書で上記に述べられた機能のいずれかが実装される、またはそれを行うあるいはその両方の、能力を有する。
【００９２】
次に図１０を参照すると、例示的クラウド・コンピューティング環境５０が示される。示されるようにクラウド・コンピューティング環境５０は、例えば携帯情報端末（ＰＤＡ）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎあるいはそれらの組合せなどの、クラウド消費者によって用いられるローカル・コンピューティング・デバイスが通信することのできる、１つまたは複数のクラウド・コンピューティング・ノード１０を備える。ノード１０は互いに通信することができる。それらは、本明細書で上記に述べられたようなプライベート、コミュニティ、パブリック、またはハイブリッド・クラウド、またはそれらの組合せなどの、１つまたは複数のネットワークにおいて物理的または仮想的にグループ化（図示せず）され得る。これはクラウド・コンピューティング環境５０が、クラウド消費者はローカル・コンピューティング・デバイス上にリソースを維持する必要がない、サービスとしてのインフラストラクチャ、プラットフォーム、またはソフトウェアあるいはそれらの組合せを提供することを可能にする。図１０に示されるコンピューティング・デバイス５４Ａ〜Ｎのタイプは例示のためのみであること、ならびにコンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続（例えばウェブ・ブラウザを用いた）あるいはその両方を通して、任意のタイプのコンピュータ化されたデバイスと通信できることが、理解される。
【００９３】
図１１を参照すると、クラウド・コンピューティング環境５０によってもたらされる、機能抽象化レイヤのセットが示される。前もって、図１１に示される構成要素、レイヤ、および機能は、例示のためのみであり、本発明の実施形態はそれらに限定されないことが理解されるべきである。示されるように以下のレイヤ、および対応する機能がもたらされる。
【００９４】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム６１、ＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャ・ベースのサーバ６２、サーバ６３、ブレード・サーバ６４、記憶デバイス６５、ならびにネットワークおよびネットワーク化構成要素６６を含む。いくつかの実施形態においてソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００９５】
仮想化レイヤ７０は、以下の仮想エンティティの例、すなわち仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５をもたらし得る、抽象化レイヤをもたらす。
【００９６】
一例において管理レイヤ８０は、以下に述べられる機能をもたらすことができる。リソース供給８１は、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソースおよび他のリソースの動的調達をもたらす。計量および価格設定８２は、クラウド・コンピューティング環境内でリソースが利用される場合のコスト追跡、およびこれらのリソースの消費に対する請求書作成または送付をもたらす。一例においてこれらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクに対する識別検証、ならびにデータおよび他のリソースに対する保護をもたらす。ユーザ・ポータル８３は、消費者およびシステム管理者のために、クラウド・コンピューティング環境へのアクセスをもたらす。サービス・レベル管理８４は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割り振りおよび管理をもたらす。サービス・レベル・アグリーメント（ＳＬＡ）計画および達成８５は、ＳＬＡに従って将来の要求が予想されるクラウド・コンピューティング・リソースの事前準備および調達をもたらす。
【００９７】
作業負荷レイヤ９０は、クラウド・コンピューティング環境が利用され得る機能性の例をもたらす。このレイヤからもたらされ得る作業負荷および機能の例は、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想教室教育配信（virtual classroom education delivery）９３、データ分析処理９４、トランザクション処理９５、および処理装置（ＰＵ）仮想マシン再配置処理９６を含む。
【００９８】
本発明の様々な実施形態の説明は、例示を目的として示されたが、網羅的なもの、または開示された実施形態に限定するものではない。当業者には、述べられた実施形態の範囲および趣旨から逸脱せずに、多くの変更および変形が明らかとなるであろう。本明細書で用いられる用語は、実施形態の原理、実用的な応用、または市場で見出される技術に対する技術的改善を最もよく説明するために、または他の当業者が本明細書で開示される実施形態を理解することを可能にするために選ばれた。
【００９９】
本発明は、統合の任意の可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはそれらの組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する、（１つまたは複数の）コンピュータ可読記憶媒体を含むことができる。
【０１００】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる、有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば電子的記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁的記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組合せとすることができるが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピ（Ｒ）・ディスク、パンチカードまたは命令を記録された溝内の隆起構造などの機械的エンコード型デバイス、および上記の任意の適切な組合せを含む。本明細書で用いられるコンピュータ可読記憶媒体とは、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を通して伝搬する電磁波（例えば光ファイバ・ケーブルを通過する光パルス）、または線材を通して送信される電気信号など、それ自体が一時的信号であると解釈されるものではない。
【０１０１】
本明細書で述べられるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークまたは無線ネットワークあるいはそれらの組合せを経由して外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはそれらの組合せを備えることができる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体における記憶のために送る。
【０１０２】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはＳｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様なプログラミング言語などの手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、専らユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、かつ部分的にリモート・コンピュータ上で、あるいは専らリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオにおいてリモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む、任意のタイプのネットワークを通してユーザのコンピュータに接続され得、あるいは外部コンピュータへの接続が（例えばインターネット・サービス・プロバイダを用いてインターネットを通して）なされ得る。いくつかの実施形態において、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個人化することができる。
【０１０３】
本明細書において本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラムの、フローチャート図またはブロック図あるいはその両方を参照して述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【０１０４】
コンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作を実施するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに与えられて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作の態様を実施する命令を含んだ製品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはそれらの組合せに特定のやり方で機能するように指示することができるものであってもよい。
【０１０５】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作を実施するように、コンピュータによって実施されるプロセスを形成するべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【０１０６】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラムの可能な実装形態のアーキテクチャ、機能、および動作を示す。この関連において、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を備える、モジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で行われ得る。例えば連続して示される２つのブロックは、実際は実質的に並行して実行され得、またはブロックは時には関わる機能に応じて、逆の順序で実行され得る。またブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能または動作を行う、または専用ハードウェアおよびコンピュータ命令の組合せを実行する、専用ハードウェア・ベースのシステムによって実施され得ることが留意されるであろう。
【０１０７】
本明細書で用いられる用語は、特定の実施形態を述べるためのみのものであり、本発明を限定するためのものではない。本明細書で用いられる単数形「ａ」、「ａｎ」および「ｔｈｅ」は、文脈が異なる解釈を明らかに決定付ける場合を除き、複数形も含むものである。さらに用語「備える（ｃｏｍｐｒｉｓｅ）」（ならびに「ｃｏｍｐｒｉｓｅｓ」および「ｃｏｍｐｒｉｓｉｎｇ」などのｃｏｍｐｒｉｓｅのいずれかの形）、「有する（ｈａｖｅ）」（ならびに「ｈａｓ」および「ｈａｖｉｎｇ」などのｈａｖｅのいずれかの形）、「含む（ｉｎｃｌｕｄｅ）」（ならびに「ｉｎｃｌｕｄｅｓ」および「ｉｎｃｌｕｄｉｎｇ」などのｉｎｃｌｕｄｅのいずれかの形）、および「含む（ｃｏｎｔａｉｎ）」（ならびに「ｃｏｎｔａｉｎｓ」および「ｃｏｎｔａｉｎｉｎｇ」などのｃｏｎｔａｉｎのいずれかの形）は、オープン・エンドの連結動詞であることが理解されるであろう。結果として、１つまたは複数のステップまたは要素を「備える（ｃｏｍｐｒｉｓｅｓ）」、「有する（ｈａｓ）」、「含む（ｉｎｃｌｕｄｅｓ）」または「含む（ｃｏｎｔａｉｎｓ）」方法またはデバイスは、それら１つまたは複数のステップまたは要素を所有するが、それら１つまたは複数のステップまたは要素のみを所有することに限定されない。同様に１つまたは複数の特徴を「備える（ｃｏｍｐｒｉｓｅｓ）」、「有する（ｈａｓ）」、「含む（ｉｎｃｌｕｄｅｓ）」または「含む（ｃｏｎｔａｉｎｓ）」方法のステップまたはデバイスの要素は、それら１つまたは複数の特徴を所有するが、それら１つまたは複数の特徴のみを所有することに限定されない。さらに一定の方法で構成されるデバイスまたは構造は、少なくともその方法で構成されるが、列挙されない方法においても構成され得る。
【０１０８】
以下の「特許請求の範囲」内の対応する構造、材料、動作、およびすべてのミーンズ・プラス・ファンクション要素またはステップ・プラス・ファンクション要素の均等物は、具体的に特許請求されるものとして、他の特許請求される要素との組合せにおいて機能を行うための、構造、材料、または動作を含むことが意図される。本発明の説明は、例示および説明のために示されたが、網羅的であること、または本発明を開示された形に限定することを意図するものではない。当業者には、本発明の範囲および思想から逸脱せずに、多くの変更および変形が明らかになるであろう。実施形態は、本発明の１つまたは複数の態様の原理、および実際の応用例を最もよく説明するように、ならびに他の当業者が、企図される特定の使用に適するように様々な変更を有する様々な実施形態に対する本発明の１つまたは複数の態様を理解することを可能にするように選ばれ、述べられた。
【符号の説明】
【０１０９】
１０  コンピューティング・ノード
５０  クラウド・コンピューティング環境
５４Ａ  携帯電話
５４Ｂ  デスクトップ・コンピュータ
５４Ｃ  ラップトップ・コンピュータ
５４Ｎ  自動車コンピュータ・システム
６０  ハードウェアおよびソフトウェア
６１  メインフレーム
６２  ＲＩＳＣアーキテクチャ・サーバ
６３  ＩＢＭ（Ｒ）ｘＳｅｒｉｅｓ（Ｒ）システム
６４  ＩＢＭ（Ｒ）Ｂｌａｄｅ  Ｃｅｎｔｅｒ（Ｒ）システム
６５  ストレージ
６６  ネットワーク化
６７  ネットワーク・アプリケーション・サーバ・ソフトウェア
６８  データベース・ソフトウェア
７０  仮想化
７１  仮想サーバ
７２  仮想ストレージ
７３  仮想ネットワーク
７４  仮想アプリケーション
７５  仮想クライアント
８０  管理
８１  リソース供給
８２  計量および価格設定
８３  ユーザ・ポータル
８４  サービス・レベル管理
８５  ＳＬＡ計画および達成
９０  作業負荷
９１  マッピングおよびナビゲーション
９２  ソフトウェア開発およびライフサイクル管理
９３  仮想教室教育配信
９４  データ分析処理
９５  トランザクション処理
９６  仮想マシン再配置処理
１００  コンピューティング環境
１０２  中央プロセッサ複合体（ＣＰＣ）
１０４  プロセッサ・メモリ
１０６  Ｉ／Ｏデバイス
１０８  Ｉ／Ｏ制御ユニット
１１０  中央プロセッサ（ＣＰＵ）
１１１  Ｉ／Ｏサブシステム
１１２  仮想マシン
１１４  ハイパーバイザ
１１５  プロセッサ・ファームウェア
１２０  ゲストＯ／Ｓ
１２２  プログラム
２００  電力供給されるハードウェア構成要素の第１のセット
２０１  第１の電源システム・セット
２１０  第１のクラウド
２１１  第１のクラウド・コントローラ
２１２  仮想マシン
２２０  電力供給されるハードウェア構成要素の第２のセット
２２１  第２の電源システム・セット
２３０  第２のクラウド
２３１  第２のクラウド・コントローラ
２３２  仮想マシン
２３２  ＶＭのスナップショット
３００  ソース・システム
３０１  電源システムＡ
３１０  クラウド１
３１１  制御部１
３１２  仮想マシン
３２０  ネットワーク
３２２  スイッチ１
３２４  電源システムＢ
３２６  スイッチ２
３２８  電源システムＣ
３３０  ターゲット・システム
３３１  電源システムＤ
３４０  クラウド２
３４１  制御部２
３４２  仮想マシン
３５０  中間システム
３５１  電源システムＥ
３６０  メモリ
３６１  制御部３
３６２  ＶＭスナップショット
４００  コンピューティング環境
４０２  ネイティブＣＰＵ
４０４  メモリ
４０６  入力／出力
４１０  レジスタ
４０８  バス
４１２  エミュレータ・コード
４５０  ゲスト命令
４５２  命令フェッチ・ルーチン
４５４  命令翻訳ルーチン
４５６  ネイティブ命令
４６０  エミュレーション制御ルーチン
５００  コンピューティング環境
５０１  仮想マシン再配置制御部
５１２  コンピューティング・システム
５１４  外部デバイス
５１６  処理装置
５２０  ネットワーク・アダプタ
５２２  Ｉ／Ｏインターフェース
５２３  メモリ
５２４  ディスプレイ
５３０  ＲＡＭ
５３２  キャッシュ
５３４  記憶システム
【図１】
2018077846.tif 000003
【図２】
2018077846.tif 000004
【図３】
2018077846.tif 000005
【図４】
2018077846.tif 000006
【図５】
2018077846.tif 000007
【図６】
2018077846.tif 000008
【図７】
2018077846.tif 000009
【図８】
2018077846.tif 000010
【図９】
2018077846.tif 000011
【図１０】
2018077846.tif 000012
【図１１】
2018077846.tif 000013