特許第6239762号(P6239762)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヴイエムウェア インコーポレイテッドの特許一覧

特許6239762仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法
<>
  • 特許6239762-仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法 図000002
  • 特許6239762-仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法 図000003
  • 特許6239762-仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法 図000004
  • 特許6239762-仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法 図000005
  • 特許6239762-仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法 図000006
  • 特許6239762-仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法 図000007
  • 特許6239762-仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法 図000008
  • 特許6239762-仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法 図000009
  • 特許6239762-仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6239762
(24)【登録日】2017年11月10日
(45)【発行日】2017年11月29日
(54)【発明の名称】仮想マシンネットワークにおいて仮想スイッチの構成を管理するシステム及び方法
(51)【国際特許分類】
   H04L 12/70 20130101AFI20171120BHJP
   G06F 9/46 20060101ALI20171120BHJP
   G06F 9/445 20060101ALI20171120BHJP
   G06F 13/00 20060101ALI20171120BHJP
【FI】
   H04L12/70 D
   G06F9/46 350
   G06F9/06 610C
   G06F13/00 353B
【請求項の数】20
【全頁数】18
(21)【出願番号】特願2016-537949(P2016-537949)
(86)(22)【出願日】2014年9月5日
(65)【公表番号】特表2016-536901(P2016-536901A)
(43)【公表日】2016年11月24日
(86)【国際出願番号】US2014054219
(87)【国際公開番号】WO2015035121
(87)【国際公開日】20150312
【審査請求日】2016年2月29日
(31)【優先権主張番号】14/022,036
(32)【優先日】2013年9月9日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】510149482
【氏名又は名称】ヴイエムウェア インコーポレイテッド
【氏名又は名称原語表記】VMware,Inc.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】コターリー、ピユシュ
(72)【発明者】
【氏名】バフナ、ムケシュ
(72)【発明者】
【氏名】ス、チシャン
【審査官】 大石 博見
(56)【参考文献】
【文献】 特開2013−069260(JP,A)
【文献】 特開2012−244621(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/70
G06F 9/445
G06F 9/46
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
仮想マシンネットワーク内で仮想スイッチの構成を管理するプログラム命令を含む非一時的コンピュータ可読記憶媒体であって、
前記プログラム命令は、1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、
前記仮想スイッチの第1の構成を使用して前記仮想スイッチと仮想マシン管理システムとの通信接続を確立するステップと、
前記仮想マシン管理システムから前記仮想スイッチにコールを送信するステップであって、前記コールは、該コールを生成するときに前記仮想マシン管理システムによって生成されたトランザクションIDと、前記仮想スイッチを第2の構成に変更させる構成コマンドと、を含む、前記コールを送信するステップと、
前記仮想スイッチに第1の構成を保存するステップと、
前記仮想マシン管理システムから前記仮想スイッチに送信されたコールに応じて、第1の構成から第2の構成に前記仮想スイッチの構成を変更するステップと、
前記仮想スイッチの構成が変更された後にリターンメッセージを前記仮想スイッチから同じトランザクションIDを有する仮想マシン管理システムに発行するステップと、
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であるかを判断するステップと、
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であると判断される場合、保存された第1の構成を前記仮想スイッチからフラッシュするステップと、
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能ではないと判断される場合、前記保存された構成を使用して前記仮想スイッチの構成を前記第2の構成から前記第1の構成に戻し、前記第1の構成を使用して前記仮想マシン管理システムを前記仮想スイッチに再接続するステップと、を含むステップを実行させる、非一時的コンピュータ可読記憶媒体。
【請求項2】
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であるかを判断することは、
前記仮想マシン管理システムと前記仮想スイッチとの間の構成メッセージプロトコルを監視することを含む、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項3】
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であるかを判断することは、
前記仮想マシン管理システムと前記仮想スイッチとの間の構成メッセージプロトコルを監視して、特定の確認メッセージが受信されるかを認知することを含む、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項4】
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であるかを判断することは、
前記仮想マシン管理システムと前記仮想スイッチとの間の構成メッセージプロトコルを監視して、特定の確認メッセージが予め構成される時間切れ期間内に受信されるかを認知することを含む、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項5】
前記予め構成される時間切れ期間は、5秒〜60秒の範囲である、請求項4に記載の非一時的コンピュータ可読記憶媒体。
【請求項6】
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であるかを判断することは、
前記仮想マシン管理システムと前記仮想スイッチとの間の構成メッセージプロトコルを監視して、特定の確認メッセージが予め構成される時間切れ期間内に受信されるかを認知することを含み、
前記仮想スイッチの構成は、レイヤ2イーサネット構成であり、
構成を変更することは、仮想分散スイッチの構成を変更することを含む、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項7】
前記仮想スイッチの構成は、レイヤ2構成である、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項8】
前記仮想スイッチの構成は、レイヤ2イーサネット構成である、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項9】
構成を変更することは、
仮想標準スイッチの構成を変更することを含む、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項10】
構成を変更することは、
仮想分散スイッチの構成を変更することを含む、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項11】
前記第1の構成は、前記仮想スイッチがインスタンス化されるホスト計算デバイスに保存される、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項12】
前記第1の構成は、前記仮想スイッチがインスタンス化されるホスト計算デバイスに保存され、前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であると判断される場合、前記ホスト計算デバイスからフラッシュされる、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項13】
前記仮想スイッチと前記仮想マシン管理システムとの間に確立される通信接続は、イーサネットを利用する、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項14】
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であるかを判断することは、
前記仮想マシン管理システムが、イーサネットを使用して前記仮想スイッチと通信可能であるかを判断することを含む、請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項15】
仮想マシンネットワーク内で仮想スイッチの構成を管理する方法であって、
前記仮想スイッチの第1の構成を使用して前記仮想スイッチと仮想マシン管理システムとの通信接続を確立すること、
前記仮想マシン管理システムから前記仮想スイッチにコールを送信することであって、前記コールは、該コールを生成するときに前記仮想マシン管理システムによって生成されたトランザクションIDと、前記仮想スイッチを第2の構成に変更させる構成コマンドと、を含む、前記コールを送信すること、
前記仮想スイッチに第1の構成を保存すること、
前記仮想マシン管理システムから前記仮想スイッチに送信されたコールに応じて、第1の構成から第2の構成に前記仮想スイッチの構成を変更すること、
前記仮想スイッチの構成が変更された後にリターンメッセージを前記仮想スイッチから同じトランザクションIDを有する仮想マシン管理システムに発行すること、
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であるかを判断すること、
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であると判断される場合、保存された第1の構成を前記仮想スイッチからフラッシュすること、
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能ではないと判断される場合、前記保存された構成を使用して前記仮想スイッチの構成を前記第2の構成から前記第1の構成に戻し、前記第1の構成を使用して前記仮想マシン管理システムを前記仮想スイッチに再接続することを備える方法。
【請求項16】
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であるかを判断することは、
前記仮想マシン管理システムと前記仮想スイッチとの間の構成メッセージプロトコルを監視して、特定の確認メッセージが予め構成される時間切れ期間内に受信されるかを認知することを含む、請求項15に記載の方法。
【請求項17】
前記第1の構成は、前記仮想スイッチがインスタンス化されるホスト計算デバイスに保存され、前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であると判断される場合、前記ホスト計算デバイスからフラッシュされる、請求項15に記載の方法。
【請求項18】
コンピュータシステムであって、
インスタンス化された仮想マシン及びインスタンス化された仮想スイッチを実行するプロセッサ及びメモリを含む少なくとも1つのホスト計算デバイスと、
前記仮想マシン及び前記仮想スイッチを管理するように構成される仮想マシン管理システムとを備え、
前記少なくとも1つの計算デバイス及び前記仮想マシン管理システムは、
前記仮想スイッチの第1の構成を使用して前記仮想スイッチと仮想マシン管理システムとの通信接続を確立すること、
前記仮想マシン管理システムから前記仮想スイッチにコールを送信することであって、前記コールは、該コールを生成するときに前記仮想マシン管理システムによって生成されたトランザクションIDと、前記仮想スイッチを第2の構成に変更させる構成コマンドと、を含む、前記コールを送信すること、
前記仮想スイッチに第1の構成を保存すること、
前記仮想マシン管理システムから前記仮想スイッチに送信されたコールに応じて、第1の構成から第2の構成に構成を変更すること、
前記仮想スイッチの構成が変更された後にリターンメッセージを前記仮想スイッチから同じトランザクションIDを有する仮想マシン管理システムに発行すること、
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であるかを判断すること、
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であると判断される場合、保存された第1の構成を前記仮想スイッチからフラッシュすること、
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能ではないと判断される場合、前記保存された構成を使用して前記仮想スイッチの構成を第2の構成から前記第1の構成に戻し、前記第1の構成を使用して前記仮想マシン管理システムを前記仮想スイッチに再接続することを実行するように構成される、コンピュータシステム。
【請求項19】
前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であるかを判断することは、
前記仮想マシン管理システムと前記仮想スイッチとの間の構成メッセージプロトコルを監視して、特定の確認メッセージが予め構成される時間切れ期間内に受信されるかを見ることを含む、請求項18に記載のコンピュータシステム。
【請求項20】
前記第1の構成は、前記仮想スイッチがインスタンス化されるホスト計算デバイスに保存され、前記仮想マシン管理システムが、前記仮想スイッチの構成が変更された後、前記仮想スイッチと通信可能であると判断される場合、前記ホスト計算デバイスからフラッシュされる、請求項18に記載のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【0001】
仮想マシン(VM)等のソフトウェアアプリケーションは、ホスト計算デバイスのグループ又は「クラスタ」によって実行され得る。各VMは、VMを実行するホストのプロセッサ及びメモリ等の物理的計算リソースの抽象を作成し、「ゲスト」オペレーティングシステムを実行し、「ゲスト」オペレーティングシステムは1つ又は複数のソフトウェアアプリケーションを実行する。ゲストオペレーティングシステム及びソフトウェアアプリケーションに対して、抽象化リソースは、基本となる物理的リソースと機能的に区別不可能であり得る。
【0002】
特定のホスト計算デバイス内で、仮想スイッチが使用されて、VMとネットワーク内の他のノードとの間でデータパケットを通信することができる。例えば、物理的イーサネット(Ethernet)スイッチをエミュレートする仮想スイッチが、ホスト計算デバイス内で実施されて、VM間のデータパケットの通信を可能にしている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
物理的データパケットスイッチと同様に、仮想スイッチも、ノード間に作業接続を確立するために構成されるべき特定のネットワーキングパラメータを必要とする。数百ものホスト計算デバイス及び数千ものVMを含むことができる大規模ネットワークでは、中央管理システムが開発されて、管理者がネットワーク構成タスクを管理できるようにしている。中央管理システムは、構成情報を通信するために、仮想スイッチと管理システムとの間に作業ネットワーク接続を必要とする。しかし、幾つかの場合、管理システムから呼び出された構成変更は、管理システムと仮想スイッチとの接続を失わせることがある。仮想スイッチが管理システムから切断されることになる場合、管理への仮想スイッチの再接続は通常、労力集約的であり、面倒な作業である。
【課題を解決するための手段】
【0004】
仮想マシンネットワークにおいて仮想スイッチの構成を管理する技法が開示される。実施形態では、仮想スイッチを含む仮想マシンネットワークは、構成変更により、VM管理システムと被管理ノード(例えば、仮想スイッチ)との接続が失われることになる場合、保存されたネットワーク構成に戻るように構成される。例えば、任意の構成変更が行われる前、アクティブ構成が保存される。新しい構成が、被管理ノードとVM管理システムとの作業接続をサポートする場合、保存された構成はもはや必要ではなく、メモリからフラッシュされることができる。しかし、新しい構成が、被管理ノードをVM管理システムから切断させる場合、システムは、機能することが前に知られていた保存された構成に戻る。ネットワークが引き続き機能するように、保存された構成が使用されて、接続が再確立される。接続失敗の場合に保存された構成にネットワークを戻せることは、通常、被管理ノードに再接続するために使用される従来の労力集約的で面倒な作業への効率的な代替を提供する。
【0005】
実施形態では、仮想マシンネットワーク内で中央仮想マシン管理システムから仮想スイッチの構成を管理するプログラム命令を含む非一時的コンピュータ可読記憶媒体が開示される。1つ又は複数のプロセッサによるプログラム命令の実行は、1つ又は複数のプロセッサに、第1の構成を使用して仮想スイッチと仮想マシン管理システムとの通信接続を確立するステップと、第1の構成を保存するステップと、仮想マシン管理システムを介して第1の構成から第2の構成に構成を変更するステップと、仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能であるかを判断するステップとを含むステップを実行させる。仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能であると判断される場合、保存された第1の構成はフラッシュされる。仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能ではないと判断される場合、構成は、保存された構成を使用して第2の構成から第1の構成に戻され、仮想マシン管理システムは、第1の構成を使用して仮想スイッチに再接続される。
【0006】
別の実施形態では、仮想マシンネットワーク内で中央仮想マシン管理システムから仮想スイッチの構成を管理する方法が開示される。本方法は、第1の構成を使用して仮想スイッチと仮想マシン管理システムとの通信接続を確立することと、第1の構成を保存することと、仮想マシン管理システムを介して第1の構成から第2の構成に構成を変更することと、仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能であるかを判断することとを含む。仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能であると判断される場合、本方法は、保存された第1の構成をフラッシュすることを含む。仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能ではないと判断される場合、本方法は、保存された構成を使用して構成を第2の構成から第1の構成に戻され、第1の構成を使用して仮想マシン管理システムを仮想スイッチに再接続することを含む。
【0007】
別の実施形態では、コンピュータシステムが開示される。本コンピュータシステムは、インスタンス化仮想マシン及びインスタンス化仮想スイッチを実行するプロセッサ及びメモリを含む少なくとも1つのホスト計算デバイスと、仮想マシン及び仮想スイッチを管理するように構成される仮想マシン管理システムとを含む。少なくとも1つの計算デバイス及び仮想マシン管理システムは、第1の構成を使用して仮想スイッチと仮想マシン管理システムとの通信接続を確立することと、第1の構成を保存することと、仮想マシン管理システムを介して第1の構成から第2の構成に構成を変更することと、仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能であるかを判断することとを実行するように構成される。仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能であると判断される場合、保存された第1の構成はフラッシュされる。仮想マシン管理システムが、構成が変更された後、仮想スイッチと通信可能ではないと判断される場合、構成は、保存された構成を使用して第2の構成から第1の構成に戻され、仮想マシン管理システムは、第1の構成を使用して仮想スイッチに再接続される。
【0008】
本発明の実施形態の他の態様及び利点は、本発明の原理の例として示される添付図面と併せて解釈される以下の詳細な説明から明らかになろう。
【図面の簡単な説明】
【0009】
図1】仮想マシンをサポートするホスト計算デバイスのブロック図である。
図2】仮想マシン(VM)管理システムにそれぞれ接続された複数のホスト計算デバイスを含むコンピュータネットワークの実施形態を示す。
図3】複数のインスタンス化VMを有するホスト計算デバイスでの仮想切り換えの概念を示す。
図4】2つの異なるホスト計算デバイスで実施される2つの異なる仮想標準スイッチ(VSS)の概念図を提供する。
図5】2つの異なるホスト計算デバイスにわたって実施される仮想分散スイッチ(VDS)の概念図を提供する。
図6】本発明の実施形態による、構成変更がVM管理システムとホスト計算デバイスとの作業接続を残すトランザクションワークフローを示す。
図7】本発明の実施形態による、仮想分散スイッチの構成変更がVM管理システムと被管理ノードとの接続を失わせるトランザクションワークフローを示す。
図8】本発明の実施形態による、仮想標準スイッチの構成変更がVM管理システムと被管理ノードとの接続を失わせる別のトランザクションワークフローを示す。
図9】本発明の実施形態による、仮想マシン環境において中央管理システムから仮想スイッチの構成を管理する技法のプロセス流れ図である。
【発明を実施するための形態】
【0010】
説明全体を通して、同様の参照符号は同様の要素の識別に使用し得る。
本明細書に概説され、添付図に示されるような実施形態の構成要素が、広範囲の異なる構成で配置され設計されることが可能なことが容易に理解されよう。したがって、図に表されるように、様々な実施形態の以下のより詳細な説明は、本開示の範囲の限定を意図せず、様々な実施形態の単なる代表である。実施形態の様々な態様が図面に提示されるが、図面は、特に示される場合を除き、必ずしも一定の縮尺で描かれていない。
【0011】
本発明は、趣旨又は本質的な特徴から逸脱せずに、他の特定の形態で実施し得る。説明される実施形態は、全ての点で限定ではなく例示として見なされるべきである。したがって、本発明の範囲は、この詳細な説明ではなくむしろ添付の特許請求の範囲によって示される。特許請求の範囲の均等な意味及び範囲内にある全ての変更は、範囲内に包括されるものである。
【0012】
特徴、利点、又は同様の用語への本明細書全体を通しての参照は、本発明を用いて実現し得る全ての特徴及び利点が、本発明の任意の単一の実施形態内にあるべき又はあることを暗に示すものではない。むしろ、特徴及び利点を参照する用語は、実施形態に関連して説明される特定の特徴、利点、又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味するものとして理解される。したがって、特徴及び利点並びに同様の用語の考察は、本明細書全体を通して、同じ実施形態を指し得るが、必ずしもそうである必要はない。
【0013】
さらに、説明される本発明の特徴、利点、及び特性は、1つ又は複数の実施形態において任意の適する様式で組み合わせられ得る。本明細書の記載に鑑みて、本発明が、特定の実施形態の特定の特徴又は利点のうちの1つ又は複数の特徴又は利点なしで実施可能であることを当業者は認識しよう。他の場合、本発明の全ての実施形態に存在しなくてもよい追加の特徴及び利点が、特定の実施形態で認識され得る。
【0014】
「一実施形態」、「実施形態」、又は同様の用語への本明細書全体を通しての参照は、示される実施形態に関連して説明される特定の特徴、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通しての「一実施形態では」、「実施形態では」という語句、及び同様の用語は全て、同じ実施形態を参照し得るが、必ずしもそうである必要はない。
【0015】
図1は、計算デバイス100にインスタンス化された仮想マシン(VM)235、235、・・・、235のブロック図を示し、計算デバイス100は「ホスト計算デバイス」、「ホスト」、又は「ホストサーバ」と呼ばれ得る。ホスト計算デバイス100は、x86アーキテクチャプラットフォーム等のハードウェア・プラットフォーム205を含む。ハードウェア・プラットフォーム205は、プロセッサ102、メモリ104、ネットワーク通信インターフェース112、ユーザ入力デバイス110、及び表示デバイス等の他の入/出力(I/O)デバイスを含み得る。仮想化ソフトウェア・レイヤは、以下、ハイパーバイザ210とも呼ばれ、ハードウェア・プラットフォーム205にインストールされる。
【0016】
仮想化ソフトウェア・レイヤは、複数の仮想マシン(VM235〜235)が同時にインスタンス化され実行され得る仮想マシン実行空間230をサポートする。ハイパーバイザ210は、デバイスドライバ・レイヤ215を含み、VM235〜235のそれぞれが各自の仮想ハードウェア・プラットフォーム(例えば、仮想ハードウェア・プラットフォーム240〜240の対応する1つ)を有するように、ハードウェア・プラットフォーム205の物理的リソース(例えば、プロセッサ102、メモリ104、ネットワーク通信インターフェース112、及び/又はユーザ入力デバイス110)をVM235〜235のそれぞれの「仮想」リソースにマッピングする。各仮想ハードウェア・プラットフォームは、それ自体のエミュレートされたハードウェア(プロセッサ245、メモリ250、ネットワーク通信インターフェース255、及びユーザ入力デバイス260等)を含む。
【0017】
幾つかの実施形態では、第1の仮想ハードウェア・プラットフォーム240内のメモリ250は、ホスト計算デバイス100のメモリ104(例えば、ハードディスク又は固体状態ディスク)に記憶された1つ又は複数の仮想ディスクイメージに関連付けられるか、又は「マッピング」される仮想ディスクを含む。仮想ディスクイメージは、第1の仮想マシン235によって使用されるファイルシステム(例えば、ディレクトリ及びファイルの階層)を表す。追加又は代替として、仮想ディスクイメージは、ストレージエリアネットワーク(SAN)等の1つ又は複数のリモート計算デバイスのメモリに記憶され得る。
【0018】
ホスト計算デバイス100の仮想ハードウェア・プラットフォーム240〜240は、任意のx86互換性デスクトップオペレーティングシステム(例えば、マイクロソフト(Microsoft)ウィンドウズ(WINDOWS)商標オペレーティングシステム、リナックス(LINUX)商標オペレーティングシステム、ソラリス(SOLARIS)商標オペレーティングシステム、ネットウェア(NETWARE)、又はフリーBSD(FREEBSD))が、インスタンス化VM、例えば、VM235〜235のアプリケーション270を実行するために、ゲストオペレーティングシステム(OS)265としてインストールされ得るように、標準x86ハードウェアアーキテクチャの均等物として機能し得る。仮想ハードウェア・プラットフォーム240〜240は、仮想マシンモニタ(VMM)275〜275の一部であるとみなされ得、VMMは、ハイパーバイザ210と対応するVM235〜235との間の動作を調整する仮想システムサポートを実施する。図1のホスト計算デバイス内の仮想化構成要素を説明するために使用される様々な用語、レイヤ、及びカテゴリが、機能又は本開示の趣旨若しくは範囲から逸脱せずに別様に呼ばれ得ることが当業者は認識しよう。例えば、仮想ハードウェア・プラットフォーム240〜240は、VMM275〜275とは別個であると見なされることもでき、VMM275〜275は、ハイパーバイザ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〜235の通信インターフェース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〜VM235)、サービスコンソール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】
本発明の特定の実施形態が説明され示されたが、本発明は、説明され説明された部品の特定の形態又は構成に限定されるべきではない。本発明の範囲は、本明細書に添付される特許請求の範囲及び均等物によって規定されるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9