(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
説明全体を通して、同様の参照符号は同様の要素の識別に使用し得る。
本明細書に概説され、添付図に示されるような実施形態の構成要素が、広範囲の異なる構成で配置され設計されることが可能なことが容易に理解されよう。したがって、図に表されるように、様々な実施形態の以下のより詳細な説明は、本開示の範囲の限定を意図せず、様々な実施形態の単なる代表である。実施形態の様々な態様が図面に提示されるが、図面は、特に示される場合を除き、必ずしも一定の縮尺で描かれていない。
【0011】
本発明は、趣旨又は本質的な特徴から逸脱せずに、他の特定の形態で実施し得る。説明される実施形態は、全ての点で限定ではなく例示として見なされるべきである。したがって、本発明の範囲は、この詳細な説明ではなくむしろ添付の特許請求の範囲によって示される。特許請求の範囲の均等な意味及び範囲内にある全ての変更は、範囲内に包括されるものである。
【0012】
特徴、利点、又は同様の用語への本明細書全体を通しての参照は、本発明を用いて実現し得る全ての特徴及び利点が、本発明の任意の単一の実施形態内にあるべき又はあることを暗に示すものではない。むしろ、特徴及び利点を参照する用語は、実施形態に関連して説明される特定の特徴、利点、又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味するものとして理解される。したがって、特徴及び利点並びに同様の用語の考察は、本明細書全体を通して、同じ実施形態を指し得るが、必ずしもそうである必要はない。
【0013】
さらに、説明される本発明の特徴、利点、及び特性は、1つ又は複数の実施形態において任意の適する様式で組み合わせられ得る。本明細書の記載に鑑みて、本発明が、特定の実施形態の特定の特徴又は利点のうちの1つ又は複数の特徴又は利点なしで実施可能であることを当業者は認識しよう。他の場合、本発明の全ての実施形態に存在しなくてもよい追加の特徴及び利点が、特定の実施形態で認識され得る。
【0014】
「一実施形態」、「実施形態」、又は同様の用語への本明細書全体を通しての参照は、示される実施形態に関連して説明される特定の特徴、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通しての「一実施形態では」、「実施形態では」という語句、及び同様の用語は全て、同じ実施形態を参照し得るが、必ずしもそうである必要はない。
【0015】
図1は、計算デバイス100にインスタンス化された仮想マシン(VM)235
1、235
2、・・・、235
Nのブロック図を示し、計算デバイス100は「ホスト計算デバイス」、「ホスト」、又は「ホストサーバ」と呼ばれ得る。ホスト計算デバイス100は、x86アーキテクチャプラットフォーム等のハードウェア・プラットフォーム205を含む。ハードウェア・プラットフォーム205は、プロセッサ102、メモリ104、ネットワーク通信インターフェース112、ユーザ入力デバイス110、及び表示デバイス等の他の入/出力(I/O)デバイスを含み得る。仮想化ソフトウェア・レイヤは、以下、ハイパーバイザ210とも呼ばれ、ハードウェア・プラットフォーム205にインストールされる。
【0016】
仮想化ソフトウェア・レイヤは、複数の仮想マシン(VM235
1〜235
N)が同時にインスタンス化され実行され得る仮想マシン実行空間230をサポートする。ハイパーバイザ210は、デバイスドライバ・レイヤ215を含み、VM235
1〜235
Nのそれぞれが各自の仮想ハードウェア・プラットフォーム(例えば、仮想ハードウェア・プラットフォーム240
1〜240
Nの対応する1つ)を有するように、ハードウェア・プラットフォーム205の物理的リソース(例えば、プロセッサ102、メモリ104、ネットワーク通信インターフェース112、及び/又はユーザ入力デバイス110)をVM235
1〜235
Nのそれぞれの「仮想」リソースにマッピングする。各仮想ハードウェア・プラットフォームは、それ自体のエミュレートされたハードウェア(プロセッサ245、メモリ250、ネットワーク通信インターフェース255、及びユーザ入力デバイス260等)を含む。
【0017】
幾つかの実施形態では、第1の仮想ハードウェア・プラットフォーム240
1内のメモリ250は、ホスト計算デバイス100のメモリ104(例えば、ハードディスク又は固体状態ディスク)に記憶された1つ又は複数の仮想ディスクイメージに関連付けられるか、又は「マッピング」される仮想ディスクを含む。仮想ディスクイメージは、第1の仮想マシン235
1によって使用されるファイルシステム(例えば、ディレクトリ及びファイルの階層)を表す。追加又は代替として、仮想ディスクイメージは、ストレージエリアネットワーク(SAN)等の1つ又は複数のリモート計算デバイスのメモリに記憶され得る。
【0018】
ホスト計算デバイス100の仮想ハードウェア・プラットフォーム240
1〜240
Nは、任意のx86互換性デスクトップオペレーティングシステム(例えば、マイクロソフト(Microsoft)ウィンドウズ(WINDOWS)商標オペレーティングシステム、リナックス(LINUX)商標オペレーティングシステム、ソラリス(SOLARIS)商標オペレーティングシステム、ネットウェア(NETWARE)、又はフリーBSD(FREEBSD))が、インスタンス化VM、例えば、VM235
1〜235
Nのアプリケーション270を実行するために、ゲストオペレーティングシステム(OS)265としてインストールされ得るように、標準x86ハードウェアアーキテクチャの均等物として機能し得る。仮想ハードウェア・プラットフォーム240
1〜240
Nは、仮想マシンモニタ(VMM)275
1〜275
Nの一部であるとみなされ得、VMMは、ハイパーバイザ210と対応するVM235
1〜235
Nとの間の動作を調整する仮想システムサポートを実施する。
図1のホスト計算デバイス内の仮想化構成要素を説明するために使用される様々な用語、レイヤ、及びカテゴリが、機能又は本開示の趣旨若しくは範囲から逸脱せずに別様に呼ばれ得ることが当業者は認識しよう。例えば、仮想ハードウェア・プラットフォーム240
1〜240
Nは、VMM275
1〜275
Nとは別個であると見なされることもでき、VMM275
1〜275
Nは、ハイパーバイザ210とは別個であると見なされ得る。本開示の実施形態で使用され得るハイパーバイザ210の一例は、VMウェア社(VMWARE,INC.)から市販されているVMウェアESX(VMWARE ESX)商標ソフトウェア内の構成要素として含まれる。
【0019】
図1の実施形態では、ホスト計算デバイス100のデバイスドライバ・レイヤ215は、ネットワーク通信インターフェース112と対話して、例えば、ホスト計算デバイス100に接続されたローカルエリアネットワーク(LAN)とデータをやりとりする通信インターフェース・ドライバ220を含む。通信インターフェース・ドライバ220は、物理ネットワークでデータパケット(例えば、レイヤ2イーサネットパケット、ここで、ネットワークレイヤの概念は、国際標準化組織(ISO)によって定義されるオープンシステム相互接続(OSI)モデルに記載されている)の切り換えをエミュレートする仮想スイッチ225も含む。例えば、仮想スイッチは、同じホスト計算デバイス上の異なるVM間でイーサネットパケットを切り換え得るか、又はネットワーク通信インターフェース112で受信したイーサネットパケットをVM235
1〜235
Nの通信インターフェース255に切り換え得る。実施形態では、ネットワーク通信インターフェース112は、物理的ネットワークアダプタ(例えば、イーサネット・ネットワーク・インターフェースカード(NIC))であり、一方、通信インターフェース255は仮想ネットワークアダプタ(例えば、仮想イーサネットNIC)である。物理的イーサネットNICと同様に、各仮想通信インターフェースには、一意の媒体アクセス制御(MAC)アドレスが割り当てられ、MACアドレスにより、仮想スイッチ225はイーサネットパケットをVMに及びVMから切り換えることができる。仮想ネットワークアダプタ及び仮想スイッチについてより詳細に後述する。
【0020】
実施形態では、ホスト計算デバイス100は、データセンタに一般に見られるサーバである。例として、ホスト計算デバイスは、1つ又は複数のサーバラック内の複数の他のホスト計算デバイスと共に設置され得る。通常、ホスト計算デバイスは、同じサーバラック内に配置される「クラスタ」に一緒にグループ化される。
【0021】
図2は、例えば、LAN及び/又はWAN接続122を介してVM管理システム120にそれぞれ接続された複数のホスト計算デバイス100を含むコンピュータネットワークの実施形態を示す。ホスト計算デバイスは、
図1を参照して上述した仮想化ベースサービスを提供するように構成され、VM管理システムは、ホスト計算デバイス、各ホスト計算デバイス内で実行中の仮想マシン、ホスト計算デバイス内のネットワーク構成、プロビジョニング、移行、リソース割り振り等の管理を含め、仮想基盤を管理するように構成される。本開示の実施形態で使用され得るVM管理システムの一例は、VMウェア社(VMWARE,INC.)から市販されているVセンタサーバ(VCENTER SERVER)商標ソフトウェアである。実施形態では、VM管理システムは、ホスト計算デバイスとは物理的に別個のサーバマシンで実行されるが、VM管理システムがホスト計算デバイスのうちの1つで実行されることが可能である。実施形態では、VM管理システムは、VM管理システムクライアント130を通してユーザによってアクセス可能である。一実施形態では、クライアントは、スタンドアロンクライアント・アプリケーションであり、別の実施形態では、クライアントは、任意のネットワーク接続されたデバイスからの管理アクセスを提供するウェブブラウザ・アプリケーションとして提供される。VM管理システムクライアントにより、管理者は、ホスト計算デバイス、各ホスト計算デバイス内で実行中の仮想マシン、ネットワーク構成、プロビジョニング、移行、リソース割り振り等の管理を含め、仮想基盤を能動的に管理することができる。
【0022】
図1を参照して上述したように、ホスト計算デバイス100は仮想スイッチ225を含む。実施形態では、仮想スイッチにより、物理的なマシンが接続されるのと同じ方法で仮想マシンをネットワーク接続することができる。例えば、仮想スイッチにより、ホスト計算デバイス(例えば、ESXサーバ)上の仮想マシンは、追加のネットワーク接続されたハードウェアの必要なく、物理的スイッチを介して使用される同じプロトコルを使用して、互いに通信することができる。仮想スイッチは、標準VLAN実施と同等の仮想LAN(VLAN)もサポートする。単一のホスト計算デバイスが複数の異なる仮想スイッチを含むことも可能である。
【0023】
図3は、複数のインスタンス化VMを有するホスト計算デバイスでの仮想切り替えの概念を示す。
図3の概念図では、ホスト計算デバイス100は、複数のインスタンス化VM(VM235
1〜VM235
N)、サービスコンソール280、複数の仮想通信インターフェース255(例えば、仮想イーサネットアダプタ)、複数の仮想スイッチ225、及び複数のネットワーク通信インターフェース112(例えば、物理的イーサネットアダプタ)を含む。仮想イーサネットアダプタ、仮想スイッチ、及び物理的イーサネットアダプタは、括弧付き行302、304、及び306でそれぞれ示される。ホスト計算デバイスの物理的イーサネットアダプタにより、ホスト計算デバイスは、製造LAN(production LAN)382及び管理LAN384を含め、異なる外部LANに接続することができる。実施形態では、仮想イーサネットアダプタは、各自のMACアドレスと、ユニキャスト、マルチキャスト、及び/又はブロードキャストフィルタを有し、仮想イーサネットアダプタはレイヤ2デバイスである。
図3に示されるように、仮想マシンに、1つ又は複数の仮想イーサネットアダプタが構成されることができ、各仮想イーサネットアダプタは、一意のIPアドレス及びMACアドレスを有する。仮想イーサネットアダプタの例は以下が挙げられる。
【0024】
vmxnet−VMウェア(VMware)ツールがゲストオペレーティングシステムにインストールされている場合のみ機能する準仮想化デバイス。準仮想化デバイスは、仮想化環境で実行中の特定のアウェアネス(awareness)で設計されたデバイスである。
【0025】
vlance−AMD LANCE PCNet32イーサネットアダプタの厳密なエミュレーションを提供する仮想デバイス。大半の32ビットゲストオペレーティングシステムと互換である。このアダプタは、フレキシブルネットワークアダプタが選択されるが、VMウェア(VMware)ツールがゲストオペレーティングシステムにインストールされていない場合、使用される。
【0026】
e1000−インテル(INTEL)E1000イーサネットアダプタの厳密なエミュレーションを提供する仮想デバイス。これは、64ビット仮想マシンで使用される仮想イーサネットアダプタである。32ビット仮想マシンでも利用可能である。
【0027】
vswif−ESXサーバサービスコンソールによってのみ使用されるvmxnetアダプタと同様の準仮想化デバイス。
vmknic−ESXサーバホスト上の大半の物理的リソースを管理するソフトウェア・レイヤであるVMkernel内の仮想デバイス。vmknicアダプタは、VMotion、NFS、VMkernelレベルで実行されるソフトウェアiSCSIクライアント、及びリモートコンソールトラフィックにサービスするTCP/IPスタックによって使用される。実施形態では、VMkernelは、ESXサーバにネットワーク接続を提供するネットワーキングインターフェースである。
【0028】
仮想スイッチ225は、計算デバイス100(例えば、ESXサーバ)で実施されるように、物理的イーサネットスイッチと略同じように機能する。例えば、各仮想スイッチは、MAC:ポート転送テーブルを保持し、各到着パケットの宛先MACアドレスについての検索を実行し、次に、送信のためにパケットを1つ又は複数のポートに転送する。実施形態では、最高で248個の異なる仮想スイッチが作成されることができ、各ホスト計算デバイスで同時に実行することができる。
【0029】
実施形態では、各スイッチは、仮想標準スイッチ(VSS)又は仮想分散スイッチ(VDS)の何れかとして実施することができる。
図4は、2つの異なるホスト計算デバイスで実施される2つの異なるVSSの概念図を提供する。
図4に示されるように、「ホスト1」として識別されるホスト計算デバイス100は、ハイパーバイザ210(例えば、ESXサーバ)を実行し、VSS425はハイパーバイザに実装される。VSSは、2つのプレーン:データプレーン426及び管理プレーン427を有するものとして考えることができる。データプレーンは、実際のパケット切り換え、フィルタリング、タグ付け等を実施し、管理プレーンは、管理者がデータプレーン機能を構成できるようにするために使用される制御構造である。「ホスト2」として識別されるホスト計算デバイスは、同様のVSSを含む。各VSSのデータプレーン及び管理プレーンは、各ホスト計算デバイスに存在し、管理者は、各VSSを個々に構成し保持しなければならない。
【0030】
図5は、「ホスト1」及び「ホスト2」として識別される2つの異なるホスト計算デバイス100にわたって実施されるVDS525の概念図を提供する。VDSは、関連付けられた全てのホスト計算デバイスにわたる単一の仮想スイッチとして機能する。複数のホスト計算デバイスにわたるVDSを実施することの一利点は、VDSにより、複数のホスト計算デバイスにわたってVMが移行する際、仮想マシンが一貫したネットワーク構成を維持できることである。
図5に示されるように、両方のホスト計算デバイスはハイパーバイザ210(例えば、ESXサーバ)を実行し、VDSは両ハイパーバイザにわたって実施される。VDSも、データプレーン526及び管理プレーン527を有するものとして考えることができ、データプレーンは各ハイパーバイザにローカルなままであるが、管理プレーンはVM管理システム120に中央化される。VDSの実施は、個々のホストレベル仮想スイッチが、複数のホストにわたる単一の大きなVDSにまとめられる集約リソースとしてネットワークを扱うことにより、ホスト毎の仮想スイッチ構成という管理負担を容易にすることができる。実施形態では、各VM管理システム(例えば、各Vセンター(VCENTER)サーバインスタンス)は、最高で128個の異なるVDSをサポートすることができ、各VDSは最高で500個の異なるホスト計算デバイスにわたって分散することができる。
【0031】
実施形態では、VSS及びVDSの両方によって実施される機能は、L2パケットの転送、VLANへのトラフィックのセグメント化、IEEE802.1q VLANカプセル化の使用及び理解、並びにアウトバウンド(TX)トラフィックのトラフィック整形(traffic shaping)を含む。実施形態では、VDSのみによって実施される機能は、インバウンド(RX)トラフィック整形、Vセンタ(VCENTER)サーバを通しての中央化された統一管理インターフェース、及びプライベートVLAN(PVLAN)を含む。
【0032】
再び
図3を参照すると、仮想スイッチ225は、VSSであれ、又はVDSであれ、通常、中央化VM管理システム120から管理される。VM管理システムと被管理ノード(例えば、ホスト計算デバイス及び/又は仮想スイッチ)との接続が失われる場合、被管理ノードはもはやVM管理システムと通信することができない。
【0033】
様々な異なるイベントが、VM管理システムと被管理ノードとの接続を失わせることがある。これらのイベントは、例えば、2つのカテゴリにグループ化することができる:ホストネットワーキングイベント(例えば、VSSに関連)及び分散スイッチイベント(例えば、VDSに関連)。接続を失わせることになり得るホストネットワーキングイベントは、物理的NICの速度又はデュプレックス(duplex)の更新、DNS及びルーティング設定の更新、管理VMkernelネットワークアダプタを含む標準ポートグループのチーム編成及びフェイルオーバポリシー又はトラフィック整形ポリシーの更新、管理VMkernelネットワークアダプタを含む標準ポートグループのVLANの更新、管理VMkernelネットワークアダプタ及び対応する仮想スイッチの最大送信単位(MTU : maximum transmission unit)の物理的基盤によってサポートされない値への更新、管理VMkernelネットワークアダプタのIP設定の変更、並びにVSS又はVDSからの管理VMkernelネットワークアダプタの除去を含む。接続を失わせることになり得る分散スイッチイベントは、分散スイッチのMTUの変更、管理VMkernelネットワークアダプタの分散ポートグループ内の設定(チーム編成及びフェイルオーバ、VLAN、トラフィック整形)の変更、管理VMkernelネットワークアダプタを含む分散ポートグループ内の全てのポートの遮断、及び管理VMkernelネットワークアダプタが接続される分散ポートの上記ポリシーのオーバーライドを含む。
【0034】
仮想化環境が、数百の異なるホスト計算デバイスで実行中の数千の異なるVMを含む場合、1つ又は複数のホストをVM管理システムから切断させる構成変更は、ネットワーク内の深刻な混乱を生じさせることがある。これは、VDSを実行中の場合、特に重要である。複数のホスト計算デバイスに同じVDSが関連付けられたVDS環境では、管理ポートグループの任意のネットワーク故障又は構成誤りは潜在的に、VM管理システムから全てのホスト計算デバイスを切断させることがある。この状況では、VM管理システムは、中央からVDS構成(例えば、VDSポートグループ)へのいかなる変更も行うことができず、それらの変更をホスト計算デバイスにプッシュする(push)ことができない。そのような切断から回復する主な方法は、個々のホスト計算デバイスに行き、適切な管理ネットワーク構成を有するVSSを構築することによる。影響を受けたホストの全ての管理ネットワークにVSSが構成されており、管理ネットワーク上で通信可能な場合、VM管理システムは再び、ホスト計算デバイスを管理し、VDSを再構成することができる。
【0035】
本発明の実施形態によれば、仮想スイッチを含む仮想マシンネットワークは、構成変更が、VM管理システムと被管理ノード(例えば、VSS又はVDS)との接続を失わせる場合、保存されたネットワーク構成に戻すように構成される。例えば、任意の構成変更が行われる前、アクティブ構成が保存される。新しい構成が被管理ノードとVM管理システムとの作業接続をサポートする場合、保存された構成はもはや必要なく、対応するホスト計算デバイスのメモリからフラッシュする(flush)ことができる。しかし、新しい構成が被管理ノードをVM管理システムから切断させる場合、システムは、前に機能することが分かっていた保存された構成に戻る。ネットワークが引き続き機能するように、保存された構成が使用されて、接続が再確立される。接続が失敗した場合、ネットワークが保存された構成に戻ることができるようにすることは、通常、被管理ノードの再接続に使用される従来の労力集約的で面倒な作業への効率的な代替を提供する。
【0036】
様々な技法が使用されて、VM管理システムが被管理ノードに接続され、したがって、被管理ノードと通信可能であるかを判断することができる。実施形態では、VM管理システムと被管理ノードとの間での既知の構成メッセージプロトコルが監視されて、VM管理システムと被管理ノードとの接続のステータスを特定する。例えば、被管理ノードへの構成呼び出しを行った後、VM管理システムは、所定量の時間だけ待ち、作業接続を示す特定の確認メッセージが受信されるかどうかを認知する。同様に、VM管理システムから構成呼び出しを受信した後、被管理ノードは、所定量の時間だけ待ち、特定の確認メッセージが受信されるかどうかを認知する。特定の予期されるメッセージが受信されるかどうかに応じて、VM管理システム及び/又は被管理ノードは、作業接続が存在する場合、保存された構成をフラッシュすることができ、又は接続が失われる場合、保存された構成に戻り、再接続することができる。
【0037】
図6〜
図8は、上述した技法を利用して、VM管理システムと被管理ノード(例えば、
図1を参照して説明したようなホスト計算デバイス100及び/又は仮想スイッチ225)との接続を保証するトランザクションワークフローを示す。
図6は、構成変更がVM管理システムと被管理ノードとの作業接続を残す場合を示し、
図7及び
図8は、構成変更がVM管理システムと被管理ノードとの接続を失わせる2つの場合を示す。
【0038】
図6は、VM管理システムクライアント130、VM管理システム130、及び
図2に示されるホスト計算デバイス100の1つの間のメッセージフローを示す。実施形態では、
図6のメッセージフローは、VM管理システムを通して行われたVDS又はポートグループ構成変更に適用可能である。第1の動作において、構成コマンド(VDS.Reconfigure())が、VM管理システムクライアントからVM管理システムに送信される。次の動作において、VM管理システムは、「トランザクション呼び出し」コール(HostVDS.Reconfigure())をホスト計算デバイスに送信する。実施形態では、コールは、構成コマンドと、VM管理システムがコールを作成したときに作成されるトランザクションIDとを含む。ホスト計算デバイスでの構成に任意の変更を実施する前に、現在の構成はホスト計算デバイスに保存される。
【0039】
現在の構成をホスト計算デバイスに保存した後、ホスト計算デバイス及びVM管理システムは、新しい構成を適用する。新しい構成が適用されると、ホスト計算デバイスは、同じトランザクションIDを含むリターンメッセージ(再構成成功)を発行する。VM管理システムがリターンメッセージをホスト計算デバイスから受信し、同じトランザクションIDに対応するものとしてメッセージを識別すると、VM管理システムは、コミットコール(Commit(transactionID))をホスト計算デバイスに発行する。ホスト計算デバイスがコミットコールを受信すると、VM管理システムとホスト計算デバイスとの接続が確認され、保存された構成はホスト計算デバイスからフラッシュされる。ホスト計算デバイスはまた、コミットコール(コミット成功)をVM管理システムに返し、VM管理システムはトランザクションをVM管理システムで完了させる。最後の動作において、VM管理システムは、メッセージ(VDS.Reconfigure()Completed)をVM管理システムクライアントに発行して、新しい構成が首尾良く実施されたことを示す。
【0040】
幾つかの場合、上述した理由により、要求された構成変更は、VM管理システムとホスト計算デバイスとの接続を失わせることがある。
図7は、構成変更がVM管理システムとホスト計算デバイスとの接続を失わせる場合でのVM管理システムクライアント130、VM管理システム120、及び
図2のホスト計算デバイス100のうちの1つの間のメッセージフローを示す。構成変更は接続を失わせるが、ロールバックメカニズム(rollback mechanism)により、システムは保存された構成に戻り、前に機能していた接続を復元することができる。
図7の実施形態では、メッセージフローは、VM管理システムを通して行われたVDS又はポートグループ構成変更に適用可能である。
【0041】
第1の動作において、構成コマンド(VDS.Reconfiguration)は、VM管理システムクライアント130からVM管理システム120に送信される。次の動作において、VM管理システムは、「トランザクション呼び出し」コール(HostVDS.Reconfigure)をホスト計算デバイス100に送信する。上述したように、コールは、構成コマンドと、VM管理システムがコールを作成したときに作成されるトランザクションIDとを含む。ホスト計算デバイスでの構成に任意の変更を実施する前に、現在の構成はホスト計算デバイスに保存される。現在の構成を保存した後、ホスト計算デバイス及びVM管理システムは、新しい構成を適用する。この場合、新しい構成は、VM管理システムとホスト計算デバイスとの接続を失わせる。幾つかの場合、VM管理システムとホスト計算デバイスとの接続は、方向性を有し得る。すなわち、VM管理システムからホスト計算デバイスへの接続のみが失われる接続であり得、一方、ホスト計算デバイスからVM管理システムへの接続はなお機能中である。実施形態では、主な考慮事項は、ホスト計算デバイスからVM管理システムへの作業接続ではなく、VM管理システムからホスト計算デバイスへの作業接続があるかどうかである。VM管理システムからホスト計算デバイスへの作業接続がなお、ホスト計算デバイスへの構成情報の通信をサポートするため、これが当てはまる。
【0042】
ホスト計算デバイスからVM管理システムへの接続がなお機能中である場合、トランザクション呼び出しコールはホスト計算デバイスから返り得る。トランザクション呼び出しコールが返される場合、コミットコール(Commit(transactionID))がVM管理システムから発行されるが、ホスト計算デバイスは到達不可能であるため、コミットコールはホスト計算デバイスに決して到達しない。トランザクション毎に設定可能な予め構成される時間切れ期間にわたって待った後、ホスト計算デバイスは時間切れし、ホスト計算デバイスの構成状態は、保存された状態に戻る。トランザクション呼び出しコールがVM管理システムに返されない場合、VM管理システムは時間切れし、前の状態に戻る。何れの場合でも、VM管理システムが被管理ノードと通信することができるように、保存された構成が使用されて、VM管理システムを被管理ノードに再接続することができる。さらに、
図7に示されるように、VM管理システム120は、ホストが同期していないことをVM管理システムクライアント130に報告する。
【0043】
実施形態では、予め構成された時間切れ期間は約30秒であるが、5秒〜60秒の範囲内の時間切れ期間が可能である。さらに、実施に応じて他の時間切れ期間も可能である。
図6及び
図7のメッセージフローはVDSに対応する。同様の手法は、VSSの構成変更にも適用可能である。
図8は、管理センタUI130、VM管理システム120、及びVSSが実施される
図2からのホスト計算デバイス100のうちの1つの間のメッセージフローを示す。
【0044】
第1の動作において、構成コマンド(N/wSys.UpdateConf())が、VM管理システムクライアント130からVM管理システム120に送信される。次の動作において、VM管理システムは、「トランザクション呼び出し」コール(N/wSys.UpdateConf())がホスト計算デバイス100に送信する。ホスト計算デバイスでの構成に任意の変更を実施する前に、現在の構成はホスト計算デバイスに保存される。現在の構成を保存した後、ホスト計算デバイスは、新しい構成を適用し、コミットコールをVM管理システムから受信するのを待つ。しかし、この場合、新しい構成は、VM管理システムとホスト計算デバイスとの接続を失わせる。したがって、ホスト計算デバイスは、VM管理システムからのコミットコールを受信しない。トランザクション毎に設定可能な予め構成された時間切れ期間にわたって待った後、ホスト計算デバイスは時間切れし、ホスト計算デバイスの構成状態は、保存された構成を使用して保存された構成に戻される。ホスト計算デバイスは、保存された構成を使用してVM管理システムに再接続し、同期メッセージ(ホスト同期)をVM管理システムに送信する。同期メッセージに応答して、VM管理システムは、メッセージをUIに送信して、ホスト計算デバイスが構成の更新に失敗したことをUIに通知する。
【0045】
本発明の実施形態による中央仮想マシン管理システムから仮想スイッチの構成を管理する方法が、
図9の流れ図を参照して説明される。ブロック902において、第1の構成を使用して、通信接続が仮想スイッチと仮想マシン管理システムとの間に確立される。ブロック904において、第1の構成は保存される。ブロック906において、構成は、仮想マシン管理システムを介して第1の構成から第2の構成に変更される。ブロック908において、仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能であるかが判断される。ブロック910において、仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能であると判断される場合、保存された第1の構成はフラッシュされる。ブロック912において、仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能ではないと判断される場合、構成は、保存された構成を使用して第2の構成から第1の構成に戻され、仮想マシン管理システムは、第1の構成を使用して仮想スイッチに再接続される。
【0046】
本明細書での方法の動作は、特定の順序で示され説明されているが、各方法の動作の順序は、特定の動作が逆の順序で実行され得るように、又は特定の動作が少なくとも部分的に他の動作と同時に実行され得るように変更され得る。別の実施形態では、別個の動作の命令又はサブ動作は、断続的及び/又は交互に実施され得る。
【0047】
方法の動作の少なくとも幾つかが、コンピュータによる実行のためにコンピュータ使用可能記憶媒体に記憶されたソフトウェア命令を使用して実施され得ることにも留意されたい。例として、コンピュータプログラム製品の実施形態は、コンピュータで実行されると、本明細書に記載されるように、動作をコンピュータに実行させるコンピュータ可読プログラムを記憶するコンピュータ可読記憶媒体を含む。
【0048】
さらに、本発明の少なくともある部分の実施形態は、コンピュータ又は任意の命令実行システムによって使用されるか、又は関連して使用されるプログラムコードを提供するコンピュータ使用可能又はコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。この説明では、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置、又はデバイスによって使用されるか、又は関連して使用されるプログラムの包含、記憶、通信、伝搬、又は搬送を行うことができる任意の装置とすることができる。
【0049】
コンピュータ使用可能又はコンピュータ可読媒体は、電子、磁気、光学、電磁、赤外線、又は半導体システム(装置又はデバイス)、又は伝搬媒体とすることができる。コンピュータ可読媒体の例としては、半導体又は固体状態メモリ、磁気テープ、リムーバブルコンピュータディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、剛性磁気ディスク、及び光ディスクが挙げられる。光ディスクの現在の例としては、読み取り専用メモリコンパクトディスク(CD−ROM)、読み/書きコンパクトディスク(CD−R/W)、デジタルビデオディスク(DVD)、及びブルーレイディスクが挙げられる。
【0050】
上記説明では、様々な実施形態の特定の詳細が提供される。しかし、幾つかの実施形態は、これらの特定の詳細の全て未満で実施し得る。他の場合、特定の方法、手順、構成要素、構造、及び/又は機能は、簡略且つ明確にするために、本発明の様々な実施形態を可能にするための詳細を超えて説明されていない。
【0051】
本発明の特定の実施形態が説明され示されたが、本発明は、説明され説明された部品の特定の形態又は構成に限定されるべきではない。本発明の範囲は、本明細書に添付される特許請求の範囲及び均等物によって規定されるべきである。