(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-01
(54)【発明の名称】クロス・フレーム・ライブ更新のパフォーマンスの増加
(51)【国際特許分類】
G06F 9/455 20060101AFI20221124BHJP
G06F 9/50 20060101ALI20221124BHJP
【FI】
G06F9/455 150
G06F9/50 120Z
G06F9/50 150Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022517459
(86)(22)【出願日】2020-09-23
(85)【翻訳文提出日】2022-03-17
(86)【国際出願番号】 IB2020058880
(87)【国際公開番号】W WO2021059153
(87)【国際公開日】2021-04-01
(32)【優先日】2019-09-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【復代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】ガオンカル、チェタン
(72)【発明者】
【氏名】シンハー、サンチータ
(57)【要約】
提供されるのは、ライブ更新を実行する方法の実施形態である。本方法は、ソース・サーバからターゲット・サーバに実行されるライブ移行の移行タイプを判定し、ソース・サーバからターゲット・サーバへのライブ移行を実行することを含む。コンピュータ実施方法はまた、移行タイプに基づいて、移行するページを維持し、ハイパーバイザ・ページ・テーブル内の変更を追跡し、移行タイプに基づいて逆移行を実行することを含む。本方法はまた、移行タイプに基づいて、移行するページを維持し、ハイパーバイザ・ページ・テーブル内の変更を追跡し、移行タイプに基づいて逆移行を実行することを含む。また提供されるのは、ライブ更新を実行するシステムおよびコンピュータ・プログラム製品のための実施形態である。
【特許請求の範囲】
【請求項1】
ライブ更新を実行するためのコンピュータ実装方法であって、
ソース・サーバからターゲット・サーバへと実行されるライブ移行のための移行タイプを判定すること、
前記ソース・サーバから前記ターゲット・サーバへのライブ移行を実行すること、
前記移行タイプに基づいて、移行するページを維持すること、
ハイパーバイザ・ページ・テーブル内の変更を追跡すること、および
前記移行タイプに基づいて逆移行を実行すること
を含む方法。
【請求項2】
前記ターゲット・サーバのハイパーバイザ・テーブルにおける前記ライブ移行の間に変更を追跡することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ターゲット・サーバの第2のハイパーバイザ・テーブルにおける前記ライブ移行の後に発生した変更を追跡することをさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記移行タイプが永続的な移行であるか一時的な移行であるかを判定することをさらに含む、請求項1~3のいずれか1項に記載のコンピュータ実装方法。
【請求項5】
前記移行タイプが永続的な移行であるという判定に応答して、前記永続的な移行に関連付けられた前記ソース・サーバのページ・メモリを解放する、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記変更を追跡することは、変更されているページを示す前記移行後変更(MAM)ビットを用いることを含む、請求項1~5のいずれか1項に記載のコンピュータ実装方法。
【請求項7】
前記逆移行は、前記MAMビットによって示された前記ハイパーバイザ・テーブル内の変化を伝送するのみであって、前記変化は、前記ソース・サーバ内に維持された前記ページと組み合わされる、請求項6に記載のコンピュータ実装方法。
【請求項8】
ライブ更新を実行するためのシステムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合された少なくとも1つのメモリと
を含み、前記1つまたは複数のプロセッサは、
ソース・サーバからターゲット・サーバへと実行されるライブ移行のための移行タイプを判定し、
前記ソース・サーバから前記ターゲット・サーバへのライブ移行を実行し、
前記移行タイプに基づいて、移行するページを維持し、
ハイパーバイザ・ページ・テーブル内の変更を追跡し、
前記移行タイプに基づいて逆移行を実行する
ように構成されるシステム。
【請求項9】
前記1つまたは複数のプロセッサは、前記ターゲット・サーバのハイパーバイザ・テーブルにおける前記ライブ移行の間に変更を追跡するように構成される、請求項8に記載のシステム。
【請求項10】
前記1つまたは複数のプロセッサは、前記ライブ移行が前記ターゲット・サーバの第2のハイパーバイザ・テーブルにおいて完了した後に発生した変更を追跡するように構成される、請求項9に記載のシステム。
【請求項11】
前記1つまたは複数のプロセッサは、前記移行タイプが永続的な移行であるかまたは一時的な移行であるかを判定するように構成される、請求項8から10のいずれか1項に記載のシステム。
【請求項12】
前記移行タイプが永続的な移行であるという判定に応答して、前記1つまたは複数のプロセッサが、前記永続的な移行に関連付けられた前記ソース・サーバのページ・メモリを解放するように構成される、請求項11に記載のシステム。
【請求項13】
前記変更を追跡することは、変更されているページを示す前記移行後変更(MAM)ビットを用いる、請求項8~12のいずれか1項に記載のシステム。
【請求項14】
前記逆移行は、前記MAMビットによって示された前記ハイパーバイザ・テーブル内の変化を伝送するのみであって、前記変化は、前記ソース・サーバ内に維持された前記ページと組み合わされる、請求項13に記載のシステム。
【請求項15】
ライブ更新を実行するコンピュータ・プログラム製品であって、
処理回路によって読み取り可能であって、請求項1から7のいずれか1項に記載の方法を実行する前記処理回路による実行のための命令を格納する、コンピュータ可読記憶媒体
を含むコンピュータ・プログラム製品。
【請求項16】
コンピュータ可読媒体上に格納されてデジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で動作された際に、請求項1から7のいずれか1項に記載の方法を実行するソフトウェア・コード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの移行に関し、より具体的には、フレームのライブ更新の効率を高めることに関する。
【背景技術】
【0002】
技術としての仮想化は、ハードウェア・プラットフォームとオペレーティング・システムとの間にレイヤを介在させ、アプリケーションを実行することを目的とする。業務の連続性と災害復旧の観点から、仮想化は、環境の携帯性という固有の利点を提供する。具体的には、複数の異なるアプリケーションで構成される環境全体を移転させるために、ある1つの支持ハードウェア・プラットフォームから別の支持ハードウェア・プラットフォームに仮想イメージを移転させる問題がある。さらに、より強力なコンピューティング環境は、イメージ間の仮想的な分離を維持しながら、複数の異なる仮想イメージの共存をサポートすることができる。したがって、ある1つの仮想イメージ内の障害状態は、同じハードウェア・プラットフォーム内の同時実行している他の仮想イメージの完全性を危うくする可能性はない。
【0003】
「ハイパーバイザ」として当該技術分野で公知の仮想マシン・モニタは、各仮想イメージとハードウェア・プラットフォームによって提供される基礎となるリソースとの間の相互作用を管理する。
【0004】
この点に関して、オペレーティング・システムがハードウェア上で直接動作する分、ベア・メタル・ハイパーバイザがハードウェア・プラットフォーム上で直接動作する。比較によって、ホスティングされたハイパーバイザがホスト・オペレーティング・システム内で実行される。いずれの場合も、ハイパーバイザは、仮想マシン(VM)として公知の異なる「ゲスト・オペレーティング・システム・イメージ」のオペレーションをサポートすることができ、VMイメージの数は、VMイメージを保持するVMコンテナまたはハードウェア・プラットフォーム自体の処理リソースのみによって制限される。
【0005】
仮想化は、単一のハードウェア・プラットフォームに限定される一方で、異なるタイプのアプリケーションのための別個のコンピューティング環境を必要とするエンド・ユーザにとって特に有用であることが証明されている。例えば、1つにタイプのハードウェア・プラットフォームに固有の一次オペレーティング・システムが、異なるハードウェア・プラットフォームに固有の仮想化されたゲスト・オペレーティング・システムを提供し、それゆえに、ゲスト・オペレーティング・システムの存在を必要とするアプリケーションは、上記一次オペレーティング・システムの存在を必要とする他のアプリケーションと共存できるようになることは周知である。このようにして、エンド・ユーザは、異なるタイプのアプリケーションをそれぞれサポートするために、別々のコンピューティング環境を提供する必要はない。しかし、ゲスト・オペレーティング・システムの如何を問わず、単一のハードウェア・プラットフォームの基礎となるリソースへのアクセスは静的なままである。
【0006】
仮想化された環境は、アプリケーションのソリューションを構成する際に、異なるVMにおいて異なる相互依存性のアプリケーションを集約するように配備されてきた。例えば、アプリケーション・サーバがある1つのVM内で実行され、一方で、データベース管理システムが異なるVMで実行され、さらに、ウェブ・サーバがさらに別のVMで実行されることがある。各VMは、安全なネットワーク内で互いに通信可能に結合され得るが、他のVMにおける他のアプリケーションの実行に干渉することなく、アプリケーションの配備のいずれか所与の1つが、異なる配備にライブ移行されることがある。典型的なライブ移行では、サーバの保守を可能にするため、またはVMのためのハードウェア・サポートの改善を可能にするために、VMを1つのホストサーバから別のホストサーバに移転されることがある。したがって、ライブ移行は時間のかかるプロセスであることが証明されよう。
【0007】
そのため、上述の問題に対処する必要性が当技術分野にはある。
【発明の概要】
【0008】
第1の態様から見ると、本発明は、ライブ更新を実行するためのコンピュータ実装方法を提供し、本方法は、ソース・サーバからターゲット・サーバに実行されるライブ移行のための移行タイプを判定すること、ソース・サーバからターゲット・サーバへのライブ移行を実行すること、移行タイプに基づいて、移行するページを維持すること、ハイパーバイザ・ページ・テーブル内の変更を追跡すること、移行タイプに基づいて逆移行を実行することを含む。
【0009】
さらなる態様から見ると、本発明は、ライブ更新を実行するためのシステムを提供し、本システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合された少なくとも1つのメモリとを含み、1つまたは複数のプロセッサは、ソース・サーバからターゲット・サーバに実行されるライブ移行のための移行タイプを判定し、ソース・サーバからターゲット・サーバへのライブ移行を実行し、ソース・サーバからターゲット・サーバへライブ移行を実行し、移行タイプに基づいて、移行するページを維持し、ハイパーバイザ・ページ・テーブル内の変更を追跡し、移行タイプに基づいて逆移行を実行するように構成される。
【0010】
さらなる態様から見ると、本発明は、ライブ更新を実行するためのコンピュータ・プログラム製品を提供し、本コンピュータ・プログラム製品は、処理回路によって読み取り可能なコンピュータ可読記憶媒体を含み、本発明のステップを実行するための方法を実行するための処理回路による実行のための命令を格納する。
【0011】
さらなる態様から見ると、本発明は、コンピュータ可読媒体上に格納されデジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供し、このコンピュータ・プログラムは、上記プログラムがコンピュータ上で動作された際に、本発明のステップを実行するためのソフトウェア・コード部分を含む。
【0012】
さらなる態様から見ると、本発明は、ライブ更新を実行するためのコンピュータ・プログラム製品を提供し、本コンピュータ・プログラム製品は、プロセッサによって実行可能なプログラム命令を格納して、プロセッサに、ソース・サーバからターゲット・サーバへ実行されるライブ移行のための移行タイプを決定させ、ソース・サーバからターゲット・サーバへライブ移行を実行させ、移行タイプに基づいて、移行するページを維持し、ハイパーバイザ・ページ・テーブルの変更を追跡し、移行タイプに基づいて逆移行を実行させる。
【0013】
本発明の実施形態は、クロス・フレーム・ライブ更新の効率を向上させるためのコンピュータ実装方法を対象とする。コンピュータ実装方法の非限定的な例は、ソース・サーバからターゲット・サーバに実行されるライブ移行の移行タイプを判定することと、ソース・サーバからターゲット・サーバへのライブ移行を実行することとを含む。コンピュータ実施方法はまた、移行タイプに基づいて、移行するページを維持し、ハイパーバイザ・ページ・テーブル内の変更を追跡し、移行タイプに基づいて逆移行を実行することを含む。
【0014】
本発明の実施形態は、クロス・フレーム・ライブ更新の効率を向上させるためのシステムを対象とする。システムの非限定的な例は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合された少なくとも1つのメモリとを含む。1つまたは複数のプロセッサは、ソース・サーバからターゲット・サーバに実行されるライブ移行のための移行タイプを判定し、ソース・サーバからターゲット・サーバへのライブ移行を実行するように構成される。1つまたは複数のプロセッサまた、移行タイプに基づいて、移行されるページを維持し、ハイパーバイザ・ページ・テーブル内の変更を追跡し、移行タイプに基づいて逆移行を実行するように構成される。
【0015】
本発明の実施形態は、クロス・フレーム・ライブ更新の効率を向上させるためのコンピュータ・プログラム製品を対象とし、コンピュータ・プログラム製品は、それを以て具現化されたプログラム命令を有するコンピュータ可読記憶媒体を含む。プログラム命令は、プロセッサに方法を実行させるように、プロセッサによって実行可能である。本方法の非限定的な例は、ソース・サーバからターゲット・サーバに実行されるライブ移行の移行タイプを判定し、ソース・サーバからターゲット・サーバへのライブ移行を実行することを含む。コンピュータ実施方法はまた、移行タイプに基づいて、移行するページを維持し、ハイパーバイザ・ページ・テーブル内の変更を追跡し、移行タイプに基づいて逆移行を実行することを含む。コンピュータ実施方法はまた、移行タイプに基づいて、移行するページを維持し、ハイパーバイザ・ページ・テーブル内の変更を追跡し、移行タイプに基づいて逆移行を実行することを含む。
【0016】
追加の技術的な特徴および恩恵は、本発明の手法を通じて理解される。本発明の実施形態および態様は、本明細書に詳細に記載され、特許請求の範囲に記載の主題の一部であるものと考えられる。さらに良く理解するために、詳細な記載および図面を参照されたい。
【0017】
本明細書に記載された排他的な権利の詳細は、本明細書の結論で、特許請求の範囲において具体的に指示され明確に請求されている。本発明の実施形態の前出のおよび他の特徴および利点は、添付の図面と併せて用いられる以下の詳細な記載から明らかである。
【図面の簡単な説明】
【0018】
【
図1】本発明の1つまたは複数の実施形態によるクラウド・コンピューティング環境を示す図である。
【
図2】本発明の1つまたは複数の実施形態による抽象モデルレイヤを示す図である。
【
図3】本明細書の教示を実践する際に使用するためのコンピュータ・システムのブロック図である。
【
図4】本発明の1つまたは複数の実施形態による別のシステムを示す図である。
【
図5】本発明の1つまたは複数の実施形態による第1のサーバから第2のサーバへの移行を示す図である。
【
図6】本発明の1つまたは複数の実施形態によるシステムの状態を示す図である。
【
図7】本発明の1つまたは複数の実施形態によるシステムの状態を示す図である。
【
図8】本発明の1つまたは複数の実施形態による本明細書に記載の移行プロセスの間に移行後移行ビットを含む、ハイパーバイザ・テーブルを示す図である。
【
図9】本発明の1つまたは複数の実施形態によるシステムの状態を示す図である。
【
図10】本発明の1つまたは複数の実施形態による移行を実行する方法のフローチャートである。
【0019】
本明細書に示される図は例示的なものである。本発明の趣旨から逸脱することなく、図やそこに記載されたオペレーションに多くのバリエーションがある。例えば、異なる順序でアクションを行うことができ、あるいはアクションを追加、削除、または変更することができる。また、用語「結合された」およびその変形は、2つの要素間の通信経路を有することを記載し、この要素間に介在する要素/接続のない要素間の直接的な接続を含意しない。これらのバリエーションの全てが、本明細書の一部であるものと考えられる。
【0020】
添付の図面および以下の開示された実施形態の詳細な説明において、図面に示された様々な要素は、2桁または3桁の参照番号を付されている。少数の例外を除いて、各参照番号の左端の数字は、その要素が最初に図示されている図に対応する。
【発明を実施するための形態】
【0021】
本発明の様々な実施形態は、関連する図面を参照して本明細書に記載されている。本発明の代替的な実施形態は、本発明の範囲から逸脱することなく考案することができる。以下の記載および図面には、様々な接続および位置関係(例えば、上、下、隣接など)が要素間に記載されている。これらの接続もしくは位置関係またはその両方は、別段に指定のない限り、直接的または間接的とすることができ、本発明はこの点において限定されることを意図されていない。したがって、エンティティの結合は、直接的または間接的な結合のどちらかを参照することができ、エンティティ間の位置関係は、直接的または間接的な位置関係とすることができる。さらに、本明細書に記載される様々なタスクおよびプロセスステップは、本明細書で詳細に記載されない追加のステップまたは機能性を有するさらに包括的な手順またはプロセスに組み込むことができる。
【0022】
以下の定義および略語は、特許請求の範囲および本明細書の解釈に用いられるべきである。本明細書中で使用されるように、用語「含む(comprises)」、「含むこと(comprising)」、「含む(includes)」、「含むこと(including)」、「有する(has)」、「有すること(having)」、「含有する(contains)」、もしくは「含有すること(containing)」、またはそれらの任意のバリエーションは、非排他的な包含をカバーすることを意図されている。例えば、要素の列挙を含む組成物、混合物、プロセス、方法、物品、または装置は、必ずしもこれらの要素のみに限定されるものではなく、そのような組成物、混合物、プロセス、方法、物品、または装置に明示的に列挙されていないかまたは固有の他の要素を含むことができる。
【0023】
さらに、「例示的」という用語は、本明細書では、「例、インスタンス、または例示として供する」ことを意味するために使用される。本明細書に記載される任意の実施形態または設計は、必ずしも、他の実施形態または設計よりも好ましいか、または有利であると解釈されるべきではない。用語「少なくとも1つ」および「1つまたは複数」とは、1以上の任意の整数、すなわち1、2、3、4、5などを含むものと理解され得る。用語「複数」とは、2以上任意の整数、すなわち2、3、4、5などを含むものと理解され得る。用語「接続「とは、間接的な「接続」と直接的な「接続」との両方を含み得る。
【0024】
用語「約」、「実質的に」、「およそ」、およびそのバリエーションは、本願の出願時に利用可能な器具に基づくある具体的な量の測定に関連する誤差の程度を含むことが意図されている。例えば、「約」は、所与の値の±8%もしくは5%、または2%の範囲を含むことができる。
【0025】
簡潔にするために、本発明の態様の作製および使用に関連する従来の技術は、本明細書に詳細に説明されることもされないこともある。具体的には、本明細書に記載された様々な技術的特徴を実装するためのコンピューティング・システムおよび特定のコンピュータ・プログラムの様々な態様はよく知られている。従って、簡潔にするために、多くの従来の実装の詳細は、周知のシステム、プロセス、またはその両方の詳細を提供することなく、本明細書では簡単に記述されるのみであるか、または完全に省略される。
【0026】
本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装は、クラウド・コンピューティング環境に限定されないことが理解されよう。むしろ、本発明の実施形態は、現在公知であるかまたは後に開発される任意の他のタイプのコンピューティング環境と併せて実装することが可能である。
【0027】
クラウド・コンピューティングは、最低限の管理努力、またはサービスのプロバイダとの対話で迅速に提供し公開できる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの、便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの導入モデルを含むことができる。
【0028】
特性は、以下の通りである。
オンデマンド・セルフ・サービス:クラウド利用者は、サービス提供者との人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピュータ処理能力を一方的に提供することができる。
ブロード・ネットワーク・アクセス:能力は、ネットワーク上で利用可能であり、ヘテロジニアスなシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を推進する標準メカニズムを通じてアクセスされる。
リソース・プーリング:提供者のコンピュータ処理リソースは、マルチ・テナント・モデルを使用して多数の利用者をサーブするためにプールされ、要求に従って、種々の物理的リソースおよび仮想リソースの動的な割当ておよび再割当てを行う。利用者は、一般に、提供されるリソースの正確な位置についての制御権または知識を有しておらず、抽象化のより高いレベル(例えば、国、州、またはデータセンタ)で位置を指定でき得るという点で位置の独立性の意味がある。
迅速な伸縮性:能力は、素早くスケール・アウトするために、迅速かつ伸縮自在に、場合によっては自動的に提供され、素早くスケール・インするために、迅速に解放することができる。利用者にとって、提供するために利用可能な能力は、しばしば、無制限のように見え、任意の量でいつでも購入することができる。
測定されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した抽象化のいくつかのレベルで計量能力を活用することによって、リソース利用を自動的に制御し、最適化する。リソース利用率の監視、制御、レポートを行うことができ、利用されるサービスの提供者と利用者の双方に透明性をもたらす。
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、処理、ストレージ、ネットワーク、ならびに、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを利用者が配置し動かすことができる他の基本的なコンピューティング・リソースを提供することである。利用者は、基礎をなすクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、配置されたアプリケーション、および場合によっては、ネットワーキング構成要素(例えば、ホスト・ファイアウォール)の選択についての限定的な制御を有している。
【0029】
導入モデルは、以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、組織のためにだけ運用される。クラウド・インフラストラクチャは、組織または第三者によって管理することができ、敷地内または敷地外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、懸念(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス考慮)を共有してきた固有のコミュニティをサポートする。クラウド・インフラストラクチャは、組織または第三者によって管理することができ、敷地内または敷地外に存在し得る。
パブリック・クラウド:インフラストラクチャは、一般大衆または大規模な業界団体が利用でき、クラウド・サービスを売る組織が所有する。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意のエンティティのままであるが、データおよびアプリケーションの移植を可能にする標準または独自の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)と共に結びつけられた、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の構成である。
【0030】
クラウド・コンピューティング環境は、無国籍性、疎結合、モジュラリティ、および意味論的相互運用性に焦点を合わせたサービス指向のものである。クラウド・コンピューティングの中心には、相互接続ノードのネットワークを含むインフラストラクチャがある。
【0031】
ここで
図1を参照し、例示的なクラウド・コンピューティング環境50を描写する。図示のように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード10を含み、例えば、パーソナル・デジタル・アシスタント(PDA)もしくはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなどの、クラウド利用者によって使用されるローカル・コンピューティング・デバイスは、クラウド・コンピューティング・ノード10と通信することができる。クラウド・コンピューティング・ノード10は、互いに通信することができる。コンピューティング・ノード10は、上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはその組合せなど、1つまたは複数のネットワーク内で、物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のない、サービスとしてのインフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを提供することができる。
図1に示すコンピューティング・デバイス54A~54Nのタイプは単なる例示のためのものであり、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワーク、または(例えば、ウェブ・ブラウザを使用した)ネットワーク・アドレス指定可能接続、あるいはその両方で、任意のタイプのコンピュータ化デバイスと通信できると理解されている。
【0032】
ここで
図2を参照し、クラウド・コンピューティング環境50(
図1)によって提供される機能抽象化層のセットを示す。
図2に示す構成要素、層、および機能は単なる例示のためのものであり、本発明の実施形態はこれらに限定されないことを予め理解されたい。図示のように、以下の層および対応機能を提供する。
【0033】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0034】
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75といった、仮想エンティティの例を提供できる抽象化層を提供する。
【0035】
一例では、管理層80は、下記に記述する機能を提供することができる。リソース提供81は、クラウド・コンピューティング環境内のタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を行う。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、および、これらのリソースの利用量に対する請求書作成またはインボイス作成を行う。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド利用者およびタスクの検証、ならびに、データおよび他のリソースの保護を行う。ユーザ・ポータル83は、利用者およびシステム・アドミニストレータに、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルを満たすように、クラウド・コンピューティング・リソースの配分および管理を行う。サービス・レベル合意書(SLA:Service Level Agreement)の計画および履行85は、SLAに応じて、将来の要件が予想されるクラウド・コンピューティング・リソースの事前配置および調達を行う。
【0036】
ワークロード層90は、クラウド・コンピューティング環境を利用できる機能の例を提供する。この層から提供できるワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ分析処理94、トランザクション処理95、ならびにアクション分析および通知96を含む。
【0037】
ここで本発明の態様にさらに具体的に関連する技術の概要を参照すると、サーバは、時々、様々な理由のために移行を実行する。ライブ移行によって、顧客は移行プロセスの間にオペレーションを維持することが可能となり、それゆえにアプリケーションのダウンタイムが回避される。
【0038】
ライブ更新を実装するために、元のLPARと同じ量のシステム・リソースを含む追加のサロゲートLPARを作成する。全てのプロセスおよび関連するリソースは、ライブ更新オペレーションの終了時に、元のLPARからサロゲートLPARに移送される。ある場合には、満載に詰まったサーバに対して、ライブ更新オペレーション中にサロゲートと元のLPARとの両方を収容するためにリソースが制限されたり不足したりするために、直面する課題がある可能性がある。この制限を克服するために、ライブ更新は、十分なプロセッサおよびメモリ・リソースを有する異なるサーバ(ターゲットサーバ)にVM(更新を受ける必要がある)を移行させる能力を有する。ライブ更新は、ターゲット・サーバに対して行われる。ライブ更新が完了した後、ホスティング・サーバに対して逆移行を行う。
【0039】
ライブ・パーティション・モビリティ(LPM)は、インフラストラクチャ・サービスおよびワークロードを中断することなく、ある1つのサーバから別のサーバへ論理パーティション(LPAR)または仮想マシン(VM)を移転する能力を提供する。移転サービス・パーティション(MSP)と協働するシステムのハイパーバイザは、LPAR/VMのメモリ・ページをある1つのシステムから別のシステムに移行するアクティビティを管理する。異なる移行タイプが存在し、一時的な移行プロセスと永続的な移行プロセスが含まれる。一時的な移行は、論理パーティションを一時期、異なる位置またはサーバに移転し、その後、論理パーティションをソースの場所またはサーバに戻す。永続的な移行は、ソースのサーバまたは場所に戻ることを意図しない。
【0040】
ライブ更新は、十分なプロセッサおよびメモリ・リソースを有する異なるサーバ(ターゲットサーバ)にVM(更新を受ける必要がある)を移行させる機能を有する。ライブ更新は、ターゲット・サーバに対して行われる。ライブ更新が完了した後、ホスティング・サーバに対する逆移行が実行される。
【0041】
ライブ更新は、代替サーバへのライブ移行を実行し、ターゲット・サーバでライブ更新オペレーションを実行し、ホスティング・サーバまたはソース・サーバへの以降の移行を実行する。サーバ間の移行はLPMオペレーションを含むため、ライブ更新による追加の時間消費を加算することにより、全体的なライブ更新オペレーション時間が増加する。
【0042】
ライブ更新中に実行されるLPM操作は一時的な移行のみであって、ライブ更新オペレーションが完了すれば、LPAR/VMは元のホスティング・サーバに戻る。メモリへのおよびメモリからのLPM/ライブ移行は、一時的な移転として考慮されない。この往来の移転(2回のLMP)の結果として、ライブ更新のパフォーマンスの低下が生じる。現在、移行されたページの状態を追跡するためのハイパーバイザの技術は存在しない。そのため、LPM中にページが更新されているか否かにかかわらず、全てのメモリ・ページを移送する。
【0043】
換言すれば、一時的な移行中にページ・メモリは維持されず、一時的な移行が実行された際に完全なページ・メモリがソース・ハイパーバイザに返送される必要がある。すなわち、永続的な移行と一時的な移行とが同様に処理される。これにより、変更されなかったページであってもソース・サーバに返送されるため、逆移行プロセスの遅延の増加を引き起こす。
【0044】
ここで本発明の態様の概要を参照すると、本発明の1つまたは複数の実施形態は、第1のLPMの後に書き込まれ/更新されるメモリ・ページのみを選択することによってメモリ・ページ移送オペレーションの時間を改善する、本明細書に記載の手法を提供することにより、従来技術の上述の欠点に対処する。
【0045】
本発明の上記の態様は、フラグ(移行ビット後の変更)として動作するハイパーバイザ・ページ・テーブルに導入することができる追加のフィールドを使用することによって、この先行技術の欠点を解決する。論理ページ番号は、前後のLVMと同じとすることができる。LUは、ページ・テーブルを見ることによりこの追加のフィールドのノートを作る。逆移行を実行している間は、変更後移行フラグが設定されたページを移送するのみとなる。
【0046】
ハイパーバイザは、仮想ページから物理ページへのマッピングの役割を担うことになるため、この追加のフィールドを認識する必要がある。物理ページ・マッピングを参照するのみとなる。フラグ・ビットの設定された論理ページの物理ページを参照するのみとなる。これにより、メモリ・ページ全体の移送時間を短縮することができる。この追加のフィールドは、変更後移行ビット(MAM)ビットとして対処することができる。
【0047】
ここで本発明の態様のより詳細な説明を参照すると、
図3は、本開示の様々な実施形態に対して動作可能な例示的なコンピュータ・システム(すなわちサーバ)12のブロック図を示す。図示されているように、サーバ12は、論理パーティション(LPAR)をある1つのマシンから別のマシンに移行させるために適したコンピュータの一例に過ぎず、本明細書に記載された開示の実施形態の使用または機能性の範囲に関する限定を示唆することを意図していない。
【0048】
サーバ12は、多数の他のコンピューティング・システムの環境または構成で動作可能である。例えば、サーバ12は、物理ホスト上の仮想パーティション、クラスタ化されたサーバ環境、または上記システムのいずれかを含む分散型クラウド・コンピューティング環境などであってもよい。分散型クラウド・コンピューティング環境で実践される際に、併せてリンクされてネットワーク99などの通信ネットワークを介して通信するローカル・サーバおよびリモート・サーバ12の両方によって、タスクが実行されてもよい。本発明の一実施形態では、ローカル・サーバおよびリモート・サーバ12は、ライブ・オペレーティング・システム移行のためのソース・サーバおよびターゲット・サーバと呼ばれることがある。さらに、サーバ12の一実施形態は、インベントリ検証およびライブ・オペレーティング・システム移行のためのコーディネータとして役割を果たす、ハードウェア管理コンソール(HMC)とも呼ばれるスタンドアロン・マシン制御ポイントを含む。別の実施形態では、サーバ12は、マルチノードまたはマルチサーバ環境において、ハードウェア構成、ソフトウェア、ハードウェア、およびネットワークの管理を含むシステム管理のための単一の焦点ポイントを提供するように構成されたシステム管理器を備えていてもよい。サーバ12の別の実施形態は、仮想化マネージャとも呼ばれる仮想I/Oサーバ(VIOS)を含み、仮想I/Oサーバは、論理パーティション(LPAR)またはクライアントとも呼ばれる仮想マシンをホストし、物理ハードウェア・リソースの仮想化を管理し、ライブ・オペレーティング・システム移行に参加する。
【0049】
サーバ12は、プログラムなどの実行可能な命令、またはより具体的には、プログラム・モジュール42、コンポーネント、オブジェクト、ロジック、またはデータ構造の集合であるオペレーティング・システム(OS)40のコンテキストで記載されることがあり、そのような命令は、例えば、サーバ12のオペレーションを制御するために処理ユニット16によって実行される。インベントリ検証およびライブ・オペレーティング・システム移行が、プログラム・モジュール42として、またはOS40への拡張として実装されてもよい。OS40の少なくとも一部は、
図3~
図4のアルゴリズムを実行するために特化されていてもよい。
【0050】
各参加サーバ12は、各ローカルおよびリモート・サーバ12にそれぞれ常駐するOS40の制御下にある。仮想マシンの各インスタンスは、物理コンピュータのエミュレーションである。物理コンピュータは複数の仮想マシン・インスタンスをホストすることができ、各インスタンスは、物理コンピュータのハードウェア・リソースを共有し、物理コンピュータをエミュレートする。各仮想マシン・インスタンスは、OS40の制御下にある。
【0051】
サーバ12の構成要素は、1つまたは複数のプロセッサまたは処理ユニット16と、システム・メモリ28と、システム・メモリ28などの様々なシステム構成要素を処理ユニット16に結合するバス18とを含むが、これらに限定されない。
【0052】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM)30もしくはキャッシュ・メモリ32またはその両方などの揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。サーバ12は、他の着脱可能/着脱不能な揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含むことができる。
【0053】
単なる例として、着脱不能の非揮発性磁気媒体、例えばハードディスク・ドライブ(HDD)やCD-ROM、DVD-ROMなどの光学ディスク・ドライブから読み出したりそこに書き込んだりするための1つまたは複数のデバイスとして、ストレージ・システム34を設けることができる。ストレージ・システム34の各デバイスは、1つまたは複数のデータ媒体インターフェースによってバス18に接続することができる。OS40、および1つまたは複数のアプリケーション・プログラムは、必要に応じて、ストレージ・システム34に格納され、その後メモリ28にロードされてもよい。
【0054】
サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24などの1つまたは複数の外部デバイス14、ユーザがサーバ12と対話することを可能にする1つまたは複数のデバイス、もしくはサーバ12が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、またはそれらの組合せを通信することができる。このような通信は、I/Oインターフェース22を介して行うことができる。
【0055】
サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、一般広域ネットワーク(WAN)、もしくは公衆ネットワーク(例えばインターネット)、またはそれらの組合せなどの1つまたは複数のネットワークと通信可能である。図示のように、ネットワーク・アダプタ20は、バス18を介してサーバ12の他の構成要素と通信する。しかし、クラウド・コンピューティング環境などのマルチテナント・データセンタ(MTD)環境では、ネットワーク通信は、物理デバイス(例えば、ネットワーク・アダプタ、ネットワーク・スイッチ)と、ソフトウェア定義ネットワーキング(SDN)を用いて実装されるものなどの仮想化ネットワークとの両方を介して、メンバ・サーバ12および仮想マシンを介してルーティングされ得る。
【0056】
外部ストレージ・アダプタ26は、サーバ(12)を、ストレージ・エリア・ネットワーク(SAN)15などの外部ストレージ・サブシステムに接続する。モビリティ・イベントまたはライブ・パーティション・モビリティとも呼ばれるライブ・オペレーティング・システム移行のために、ソースおよびターゲット・サーバは、SAN 15との接続を共有する。移行する仮想マシンはまた、ソース物理コンピュータを介してSAN 15への仮想接続を有する。例示的な外部ストレージ・アダプタ26は、アーキテクチャの実装に応じて、ファイバ・チャネル、ホスト・チャネル・アダプタ(HCA)、SCSI、およびiSCSIとも呼ばれるホスト・バス・アダプタ(HBA)を含むが、これらに限定されない。外部ストレージ・アダプタ26は、バス18上のサーバ12の処理ユニット16およびメモリ28と通信する。
【0057】
図示されていないが、他のハードウェア・コンポーネントもしくはソフトウェア・コンポーネントまたはその両方をサーバ12と共に使用することができることを理解するべきである。例としては、以下に限定されないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムが挙げられる。
【0058】
図4は、ライブ・オペレーティング・システム移行のための冗長な検証を低減するためのシステムを示す図である。本実施形態は、ソースおよびターゲット・サーバ・システム12を含む。ソース・サーバ・システム12は、LPAR 220および222を含むが、尤も、これより多いかまたは少ない数のLPARを用意してもよい。LPARは、コンピュータの物理ハードウェア・リソースのサブセット(すなわち、サーバ環境の下にあるハードウェアのサブセット)が割り当てられ、別個のコンピュータ/仮想マシンとしてサーバ環境内で仮想化される。特定のLPARに、プロセッサ容量、仮想I/Oデバイスおよび物理I/Oデバイス、メモリ、または任意の他のタイプのリソースなどのリソースが割り当てられてもよい。各LPARは、それ自体の持つオペレーティング・システム・インスタンス(例えば、OS 224、226、および293)、アプリケーション・プログラム(例えば、アプリケーション228、230、および295)、もしくは関連ファイル、またはそれらの組合せを有し、複数の仮想環境を同時にサーバ環境内で実行することを可能にする。
【0059】
専用のLPAR 240および242は、VIOSソフトウェア/ファームウェア(ソフトウェア、本明細書に記載の様々な機能を実行するための論理コードもしくは実行可能なコードまたはその両方(例えば、プロセッサユニット上で動作しているソフトウェアもしくはアルゴリズムまたはその両方として常駐する、プロセッサもしくは他のタイプの論理チップに常駐するか、単一の集積回路に集中しているか、またはデータ処理システム内の異なるチップ間に分散されているハードウェア論理として常駐する))を実行することによって、I/O機能性の実装に特化されている。物理ハードウェア・リソースの仮想化を含む論理パーティショニングは、ソフトウェア/ファームウェア・ハイパーバイザ246および248によって容易となる。ハイパーバイザ246/248は、VIOS 240/242および制御ポイント250と協調して、LPARのオペレーティング・システムを含むサーバ・システム12のハードウェアおよびソフトウェアの状態および動作を制御し監視する。ハイパーバイザ246/248は、コンピュータ・システムのハードウェア上で直接実行されてもよいし、VIOSと組み合わされてもよいし、または実装に応じて、従来のオペレーティング・システム環境内で動作してもよい。
【0060】
制御ポイント250は、VIOS 240/242およびハイパーバイザ246/248と連携して、システム・サーバおよびLPAR管理を実行する。制御ポイント250またはその一部は、ハードウェアベース、ソフトウェアベース、または両方のいくつかの組み合わせであり得る既知の技術を用いて、任意の適切な方法で実装されてもよい。例えば、制御ポイント250は、本明細書に記載される様々な機能を実行するためのソフトウェア、ロジック、もしくは実行可能なコード、またはそれらの組合せ(例えば、プロセッサユニット上で動作するソフトウェアもしくはアルゴリズムまたはその両方として常駐する、プロセッサまたは他のタイプのロジック・チップ内に常駐するか、単一の集積回路内に集中しているか、またはデータ処理システム内の異なるチップ間に分散されているハードウェア論理として常駐する)を含むことができる。代替の実施形態では、LPARプロファイルを管理し、LPARオペレーション(すなわち、起動、停止、更新)を実行し、インベントリ検証を実行する制御ポイント・オペレーション・システム215の一部が、VIOS 240/242・オペレーティング・システムに組み込まれてもよい。インベントリ検証、構成プロファイル管理、およびLPAR移行のオペレーションは、VIOS 240/242もしくは制御ポイント250またはその両方から実行されてもよい。例えば、いくつかの実施形態では、制御ポイント250のディスプレイ24は、ユーザ/管理者による選択のために、モビリティ・イベントの選択に利用可能となり得る様々な構成プロファイル205および検証インベントリ210のデータを表示するために使用されてもよい。選択された情報は、制御ポイント250からVIOS LPAR 240もしくは242またはその両方に伝達されてもよい。
【0061】
制御ポイント250は、構成プロファイル205のレポジトリを含む。各LPARは、他のパラメータの間でLPARに割り当てられたシステム・サーバ12・ハードウェア・リソースの一部と、超過したシステム・リソースを受信するための優先度の表示と、オペレーティング・システム環境とを定義する、少なくとも1つのプロファイルと関連付けられる。構成プロファイル205は、LPARの仮想I/Oデバイス構成および物理I/Oデバイス構成を含む。制御ポイント250は、検証インベントリ・レポジトリ210を含む。各LPARは、検証インベントリ・レポジトリ210内の検証インベントリに関連付けられる。LPARの検証インベントリは、固有のLPAR識別子、モビリティ・イベント・ソース、およびターゲット・サーバ・システム、LPARの構成プロファイル205に従うLPARのリソース、および移行前検証が過去のモビリティ・イベントの試行に合格したか失敗したかの表示を含み得る。検証インベントリ・レポジトリ210は、制御ポイント250上でキャッシュされてもよい。LPARを活性化するプロセスの一部として、制御ポイント250は、検証インベントリ・レポジトリ210において、LPARの過去の検証から検証インベントリを配置し、LPARが定義されたサーバ・システム上のVIOS 240/242に送信する。VIOS 240/242は、無効化された検証インベントリを結果として生じる構成変更についてLPARを監視し、それによって、以降のモビリティ・イベントの前に完全検証が必要となる。制御ポイント250は、VIOS 240/242からのLPARの検証インベントリの無効の通知に応答する1つまたは複数のアクションをとることができる。例えば、制御ポイント250は、次のモビリティ・イベント時にLPARに完全検証が必要であることに認識することができる。別の実施形態では、制御ポイント250は、通知を受信すると、完全検証を開始し、結果を次のモビリティ・イベントの事前にキャッシュすることができる。さらに別の実施形態では、制御ポイント250は、新たに変更されて追加または除去されたリソースのための部分検証を開始することができる。図示のように、同じ制御ポイント250が、ソース・サーバ・システムおよびターゲット・サーバ・システム12の両方を管理する。しかし、異なる制御ポイント250は、例えば、ソース・サーバ・システムおよびターゲット・サーバ・システム12が地理的に分離されている際に、ソース・サーバ・システムおよびターゲット・サーバ・システム12を管理することができる。
【0062】
図4に示す実施形態では、LPAR 222は、ソース・サーバ・システム12からターゲット・サーバ・システム12に移行している。LPAR 288は、ターゲット・サーバ・システム12上に存在しないが、移行の一部として動的に生成されるものとなる。LPARがアクティブでない間に移行を行うことができるが、本明細書の様々な実施形態は、特に、実行中のワークロードの移行に適用される。LPARは、異なるハードウェア・プラットフォーム間で移行させることができ、複数のLPARは、順次または同時に移行させてもよい。ソース・サーバ・システム12からターゲット・サーバ・システム12へのLPAR 222の移送または移行は、制御ポイント250によって、ハイパーバイザ246および248との協調で、エージェントとして役割を果たすVIOS 240および242に連係される。
【0063】
移行環境のための構成は、ソースおよびターゲットVIOS 240/242のそれぞれにおいて構成された少なくとも1つの物理HBAを含む。これらの物理HBAは、SAN 268に接続された外部ストレージ・サブシステム15上の同じ論理ユニット番号(LUN)、すなわち物理ディスク・ボリュームにアクセスするように構成される。各物理HBAは、各VIOS 240/242内の1つまたは複数の仮想ファイバ・チャネル(VFC)アダプタと関連付けられる。LPAR 222は、VIOS 240から1つまたは複数のVFCアダプタにより構成される。モビリティ・イベントの間、1つまたは複数の追加のVFCアダプタが、ターゲットLPAR 288上に生成される。移行の間、LPAR 222のメモリ・ページがソース・システム・サーバ12からターゲット・システム・サーバ12に非同期的にコピーされ、LPAR 222および288は、動作中のアプリケーションへのアクセスを中断なく維持する。
【0064】
VFCアダプタは、N_ポートID仮想化(NPIV)技術を実装してもよい。NPIV技術を実装するVFCアダプタは、NPIVアダプタとも呼ばれる。NPIVは、NPIVにおけるN_ポートと呼ばれる単一のHBAが、複数のワールド・ワイド・ポート・ネーム(WWPN)およびN_ポート識別番号を登録することを可能にする。WWPNは、SAN上のエンドポイントを一意に識別する。各VFCアダプタには、外部ストレージ・サブシステム15上のLPARのLUNにアクセスするための一対のWWPNが割り当てられている。モビリティ・イベントの間、移行しているLPAR 222は、VIOS240を介した接続に一方のWWPNを、VIOS 242を介した接続に一方のWWPNを使用する。移行の間、LPAR 222は、LPAR 222のメモリ・ページが移送されている間に、ソース・サーバ・システムおよびターゲット・サーバ・システム12の両方において少しの間アクティブである。したがって、この一対のWWPNは、SAN 268への接続によって要求されると、固有のエンドポイント識別を維持する。
【0065】
VIOS240は、LPARの検証インベントリが合格であるとマークされ、LPARの活性化から変更されていない場合に、検証なくモビリティ・イベントを継続してもよい。そのため、不要な検証チェックが回避され、移行時間が低減されることがある。ソースVIOSおよびターゲットVIOS 240、242は、サービス・プロセッサ260/262を介して公衆ネットワーク252もしくはプライベート・ネットワーク254またはその両方を介して互いに通信する。制御ポイント250は、LPAR288および構成プロファイル205から検証インベントリの両方の内容を使用して、ターゲット・サーバ・システム12上にターゲットLPAR288を作成する。ソース・ハイパーバイザ246は、ソースLPAR 222からメモリ・ページを送信して追跡し、それによって、モビリティ・イベントの間、移行しているLPAR 222を動作させ続けることが可能になる。
【0066】
ここで
図5を参照すると、1つまたは複数の実施形態によるクロス・フレーム・ライブ更新を実行するためのシステムが示されている。
図5に示すように、第1のサーバ(サーバ1)は、第1の仮想マシン(VM1)と、第2の仮想マシン(VM2)とを含む。VM1は現在、ワークロードと元のカーネルとを動作させており、VM2も、ワークロードと元のカーネルとを動作させている。また、VM1に結合して、図示のように、VM1のハイパーバイザ・テーブルをサーバに格納する。任意の数のVMをサーバ1で動作させることができ、
図5に示す例に限定されないことを理解すべきである。
【0067】
この例示的な例では、第2のサーバ(サーバ2)は、ワークロードおよび元のカーネルを動作させるVM3を含む。サーバ2は、移行のためのターゲットまたは目的地として選択することができる。移行は、永続的な移行または一時的な移行を含むことができる。
【0068】
図6に示すように、移行プロセスが開始し、VM1の元のHPTがサーバ2に格納される。一時的な移行が行われると、サーバ1はHPTの状態を保持し、MSP状態が保持され、OS/VM状態が保持される。一方、永続的な移行が行われた場合には、その状態はサーバ1により維持される。従来技術は、移行後のソース側/ホスト側の状態の情報を削除し、リソースを解放して放出する。
【0069】
一時的な移行のために、サーバ2内のVM1のHPTは、移行プロセスの間に発生する変化を追跡するように構成される。ビットは、どの変化が発生しているかを示すために使用される。移行ビット後の変更は、サーバ2上のHPTに維持されている(VM1のハイパーバイザ・ページ・テーブル(サーバ2では元)。本発明の1つまたは複数の実施形態では、MAMビットは、LPMゆえに変更されたエントリについて「1」に設定される。
【0070】
図7は、サロゲートLPAR、HPT、およびサーバ2上に常駐する更新カーネルを含むターゲット・サーバ2を図示する。移行が完了した後、サロゲートHPT(VM1サロゲート・ノード)にワークロードが移送され、カーネルが更新される。元のHPTと同様に、サロゲートHPTは、MAMビットを用いたカーネル更新の間、メモリ・ページへの変化を追跡する。
【0071】
更新が完了した後、サロゲートLPARのHPTを探索して、移行中に変化したページとカーネル更新とを識別する。これらのページは、サーバ1への逆移行プロセスのために用意され、元のLPARの保持された状態データと組み合わされて、LPARの完全なインスタンスを提供する。本発明の1つまたは複数の実施形態では、変更のみが、プロセスの間に実質的な時間節約を提供するソースに返送される。プロセスが実装されると、VM1、VM2、またはVM3上で動作させるプロセスには中断がないことが理解されるべきである。
【0072】
次に
図8を参照すると、本発明の1つまたは複数の実施形態によるMAMビットを格納するテーブル800が示されている。上記の例で考察したように、MAMビットは、サーバ2のオリジナル・ノードおよびサロゲート・ノードのハイパーバイザ・ページ・テーブルに格納される。
図8は、サーバ1上のVM1のHPTに格納された第1のハイパーバイザ・テーブル810を図示する。VM1のHPは、サーバ1に格納され、論理アドレス(LP)を物理アドレス(PP)にマッピングする。
図8はまた、VM1のHPTのコピーを含みかつサーバ2に格納される第2のハイパーバイザ・テーブル820を図示する。本発明の1つまたは複数の実施形態では、MAMビットは、LPM中に変更されたページに対し1と設定される。
図8は、サーバ2に格納されたVM1(サロゲート)のHPTを含む第3のハイパーバイザ・テーブル830を図示する。本発明の1つまたは複数の実施形態では、MAMビットは、ライブ更新(LU)ゆえに変更されたものに対し1と設定される。
【0073】
ここで、
図9を参照して、一時的な移行のための逆移行を行った後のサーバ1とサーバ2とを示す。逆移行プロセスの間、サーバ2のHPTが分析され、移行および更新のプロセス中に変更されているこれらのページは識別され、ソース・サーバに伝送される。サーバ2からの変更されたページは、更新されたLPARの完全なインスタンスを提供するために、ソース・サーバ1内に維持されるページと組み合わされる。示されるように、サーバ2は、一時的な移行に対する更新を追跡するために用いられたリソースを解放している。移行プロセスの間、各VMは、ダウンタイムを経ないようにオンラインのままである。
【0074】
次に
図10を参照して、本発明の1つまたは複数の実施形態による移行を実行するための方法1000のフローチャートが提供される。方法1000は、ブロック1002で開始し、ブロック1004に進み、ブロック1004は、ソース・サーバからターゲット・サーバへのライブ移行の移行タイプの判定を与える。本発明の1つまたは複数の実施形態では、オペレーティング・システムは、ライブ・パーティション移行を開始する。モビリティ・プロセスは、プロセッサ状態、メモリ、取り付けられた仮想デバイス、および接続されたユーザを含むシステム環境を、別のパーティションまたは別のサーバに移送する。
【0075】
次に、オペレーティング・システムは、移行が一時的な移行と永続的な移行のいずれかであるかを示す。移行が一時的な移行であると判定された場合、ソース・サーバは状態を維持する。移行が永続的な移行であると判定された場合、ソース・サーバは状態情報を無効化し、移行時にリソースを解放する。他のタイプを本発明の範囲内で考慮できることを理解すべきである。
【0076】
ソース・ハイパーバイザ/MSPは、移行タイプが一時的であると判定する。ソース・ハイパーバイザ/MSPは、移行タイプが一時的なタイプの移行であることを行き先のハイパーバイザ/MSPに通知する。
【0077】
ブロック1006は、ソース・サーバからターゲット・サーバへのライブ移行を行い、ブロック1008は、ページが移行タイプに基づいて移行されるよう維持する。本発明の1つまたは複数の実施形態では、移行タイプが永続的な移行のタイプである場合、移行された仮想マシンまたは仮想サーバのハイパーバイザ・ページ・テーブルが使用のために解放される。移行タイプが、仮想サーバまたは仮想マシンがソース・サーバに逆移行される一時的な移行のタイプである場合には、ハイパーバイザ・ページ・テーブルおよび状態情報が維持される。換言すれば、ページ・テーブルと状態情報とが格納され、逆移行プロセス中に用いられることになる。
【0078】
ブロック1010は、ハイパーバイザ・ページ・テーブルの変更を追跡する。本発明の1つまたは複数の実施形態では、元のハイパーバイザ・ページ・テーブルのコピーが、ターゲット・サーバに格納される。このハイパーバイザ・ページ・テーブルは、ダーティ・ページまたは移行プロセス中に更新されているページを追跡するための追加のビット(MAMビット)を含む。サーバは、元のハイパーバイザ・ページ・テーブルに受信されたページのコピーを維持する。元のハイパーバイザ・ページ・テーブルは、移行中に上記の変更されたページを追跡する。
【0079】
移行プロセスが完了した後、サロゲートLPARは、カーネル更新プロセスの更新を格納するために使用される。カーネル更新の間、サロゲート・ページ・テーブルは、LKUの間の変更を追跡するよう用いられる。元のHPTと同様に、サロゲート・ページ・テーブルは、LKU中に変更されたページを追跡するためにMAMを使用する。
【0080】
ブロック1012は、移行タイプに基づいて逆移行を行う。本発明の1つまたは複数の実施形態では、移行タイプが一時的な移行である場合に、逆移行が行われる。ライブ移行プロセスおよびライブ更新プロセス中に変更されているページのみが、ソース・サーバに返送される。換言すれば、ハイパーバイザ・ページ・テーブル内のMAMビットによって更新されていることが示されたそれらのページは、ソース・サーバに返送される。これにより、更新されているか否かに関わらず、全てのページをソースに返送して一時的な移行を完了させる必要がなくなるため、全体の移行時間を改善することができる。
【0081】
LKUを実行した後、サロゲートHPTは逆移行の準備が調う。プロセッサは、MAMビットの設定されたページのみを追加することによって、移行されるページのリストを作成する。サーバ1へのLPM逆移行は、変更されたページを移送するのみである。本発明の1つまたは複数の実施形態では、MAMビットによって示される変更されたページは、保存されたページと合一されて移行プロセスを完了する。ブロック1014では方法1000が終了する。方法1000は、
図10に表示されるステップに限定されないが、異なるシーケンスまたは異なるステップを用いることができることを理解すべきである。
【0082】
本明細書に記載される技術は、ページ・メモリを維持し、メモリの変化を追跡し、変更されたページのみをハイパーバイザに伝送して一時的な移行を完了することによって、ライブ移行を改善する。
【0083】
技術的効果および利点は、LPM時間を減少させることによって全体的なライブ更新オペレーション時間を改善することを含む。ハイパーバイザ及びMSP(ムーバ・サービス・パーティション)は、変更されているページのみを移送する。
【0084】
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、もしくはコンピュータ・プログラム製品、またはそれらの組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を行わせるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含んでいてもよい。
【0085】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および格納することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、以下に限定されないが、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の適した組合せとしてよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的な一覧としては、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能なプログラム可能な読出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル汎用ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、機械的に符号化されたデバイス、例えば、命令を上に記録したパンチ・カードまたは溝内の隆起構造など、および前述の任意の適切な組合せが挙げられる。コンピュータ可読記憶媒体は、本明細書で使用される際に、それ自体が電波または他の自由に伝搬する電磁波、導波管または他の伝送媒体(例えば、光ファイバ・ケーブルを通る光パルス)を伝搬する電磁波、またはワイヤを介して伝送される電気信号などの一時的な信号であるものと解釈されるべきではない。
【0086】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各演算/処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組合せを介して外部コンピュータまたは外部記憶装置に、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはそれらの組合せを含むことができる。各演算/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、各演算/処理デバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を送る。
【0087】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードのいずれかとしてよく、プログラミング言語としては、Smalltalk、C++などのオブジェクト指向プログラミング言語と、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語が挙げられる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上に部分的に、またはリモート・コンピュータ上で部分的にもしくはリモート・コンピュータ上で全体的に、実行してもよい。後者のシナリオでは、リモート・コンピュータが、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含めた任意のタイプのネットワークを介してユーザのコンピュータに接続されていてもよいし、または接続が、外部コンピュータに(例えば、インターネットサービスプロバイダを用いてインターネットを介して)なされていてもよい。いくつかの実施形態では、例えば、プログラム可能なロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラム可能なロジックアレイ(PLA)を含めた電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報によって、コンピュータ可読プログラム命令を実行してもよい。
【0088】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、ならびにフローチャート図もしくはブロック図またはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0089】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されて、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実装する手段を生成するように、機械を生成し得る。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラム可能なデータ処理装置、もしくは他のデバイス、またはそれらの組合せを特定の方法で機能させることのできるコンピュータ可読記憶媒体に格納されてもよく、ゆえに、命令を中に格納したコンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む、製品を含み得る。
【0090】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実装するように、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードされて、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実施させて、コンピュータ実装プロセスを生じる。
【0091】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施形態のアーキテクチャ、機能性、および動作を説明する。この点に関して、フローチャートまたはブロック図の各ブロックは、指定されたロジック機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことがある。いくつかの代替的な実施形態では、ブロックに記載された機能は、図に記載された順序の外に生じ得る。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよいし、またはブロックが、関与する機能性に応じて、逆の順序で実行されてもよい。また、ブロック図もしくはフローチャート図またはその両方の各ブロック、ならびにブロック図もしくはフローチャート図またはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行するか、または専用ハードウェアとコンピュータ命令との組合せを実施する、専用ハードウェアベースのシステムによって実装できることに留意されたい。
【0092】
本発明の様々な実施形態の説明が、例示のために提示されてきたが、網羅的であること、または開示された実施形態に限定されることを意図するものではない。記載された実施形態の範囲および趣旨から逸脱することなく、多くの変更および変形が当業者には明らかになるであろう。本明細書で使用される用語は、実施形態の原理、実用的な適用、もしくは市場で発見された技術を超える技術的な改善を最も良く説明するために、または本明細書に記載された実施形態を他の当業者が理解することを可能にするように選択されたものである。
[0001]
【手続補正書】
【提出日】2022-04-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ライブ更新を実行するためのコンピュータ実装方法であって、
ソース・サーバからターゲット・サーバへと実行されるライブ移行のための移行タイプを判定すること、
前記ソース・サーバから前記ターゲット・サーバへのライブ移行を実行すること、
前記移行タイプに基づいて、移行するページを維持すること、
ハイパーバイザ・ページ・テーブル内の変更を追跡すること、および
前記移行タイプに基づいて逆移行を実行すること
を含む方法。
【請求項2】
前記ターゲット・サーバのハイパーバイザ・テーブルにおける前記ライブ移行の間に変更を追跡することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ターゲット・サーバの第2のハイパーバイザ・テーブルにおける前記ライブ移行の後に発生した変更を追跡することをさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記移行タイプが永続的な移行であるか一時的な移行であるかを判定することをさらに含む、請求項1~3のいずれか1項に記載のコンピュータ実装方法。
【請求項5】
前記移行タイプが永続的な移行であるという判定に応答して、前記永続的な移行に関連付けられた前記ソース・サーバのページ・メモリを解放する、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記変更を追跡することは、変更されているページを示す前記移行後変更(MAM)ビットを用いることを含む、請求項1~5のいずれか1項に記載のコンピュータ実装方法。
【請求項7】
前記逆移行は、前記MAMビットによって示された前記ハイパーバイザ・テーブル内の変化を伝送するのみであって、前記変化は、前記ソース・サーバ内に維持された前記ページと組み合わされる、請求項6に記載のコンピュータ実装方法。
【請求項8】
ライブ更新を実行するためのシステムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合された少なくとも1つのメモリと
を含み、前記1つまたは複数のプロセッサは、
ソース・サーバからターゲット・サーバへと実行されるライブ移行のための移行タイプを判定し、
前記ソース・サーバから前記ターゲット・サーバへのライブ移行を実行し、
前記移行タイプに基づいて、移行するページを維持し、
ハイパーバイザ・ページ・テーブル内の変更を追跡し、
前記移行タイプに基づいて逆移行を実行する
ように構成されるシステム。
【請求項9】
前記1つまたは複数のプロセッサは、前記ターゲット・サーバのハイパーバイザ・テーブルにおける前記ライブ移行の間に変更を追跡するように構成される、請求項8に記載のシステム。
【請求項10】
前記1つまたは複数のプロセッサは、前記ライブ移行が前記ターゲット・サーバの第2のハイパーバイザ・テーブルにおいて完了した後に発生した変更を追跡するように構成される、請求項9に記載のシステム。
【請求項11】
前記1つまたは複数のプロセッサは、前記移行タイプが永続的な移行であるかまたは一時的な移行であるかを判定するように構成される、請求項8から10のいずれか1項に記載のシステム。
【請求項12】
前記移行タイプが永続的な移行であるという判定に応答して、前記1つまたは複数のプロセッサが、前記永続的な移行に関連付けられた前記ソース・サーバのページ・メモリを解放するように構成される、請求項11に記載のシステム。
【請求項13】
前記変更を追跡することは、変更されているページを示す前記移行後変更(MAM)ビットを用いる、請求項8~12のいずれか1項に記載のシステム。
【請求項14】
前記逆移行は、前記MAMビットによって標示された前記ハイパーバイザ・テーブル内の変化を伝送するのみであって、前記変化は、前記ソース・サーバ内に維持された前記ページと組み合わされる、請求項13に記載のシステム。
【請求項15】
コンピュータ可読媒体上に格納されてデジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で動作された際に、請求項1から7のいずれか1項に記載の方法を実行するソフトウェア・コード部分を含む、コンピュータ・プログラム。
【国際調査報告】