(58)【調査した分野】(Int.Cl.,DB名)
アクションを遂行するように動作するネットワーク装置でノードのクラスター内の少なくとも1つのハイパーバイザーをアップグレードする方法において、前記アクションは、
アップグレードのための少なくとも1つのハイパーバイザーを決定し、その少なくとも1つのハイパーバイザーは、少なくとも2つのノードに及ぶバーチャルトラフィックマネージャーのバーチャルクラスターに対する少なくとも1つのバーチャルトラフィックマネージャーに対応するものであり、
前記バーチャルクラスターが動作状態に留まる間に、前記少なくとも1つの決定されたハイパーバイザー及び前記少なくとも1つの対応するバーチャルトラフィックマネージャーの動作をデアクチベートし、
前記少なくとも1つのデアクチベートされたハイパーバイザーをアップグレードし、
前記少なくとも1つのアップグレードされたハイパーバイザー、及び前記バーチャルクラスターに対する各々の対応するバーチャルトラフィックマネージャーを再アクチベートする、
ことを含む方法。
前記少なくとも1つのハイパーバイザーをアップグレードすることは、更に、前記アップグレードされたハイパーバイザーに対する少なくとも1つの変換モジュールをアップグレードすることを含み、その少なくとも1つの変換モジュールは、メッセージ及びデータ構造を、少なくとも1つのハイパーバイザーとそれに対応するバーチャルトラフィックマネージャーとの異なるバージョン間にマップする、請求項1に記載の方法。
前記少なくとも1つのアップグレードされたハイパーバイザーは、少なくとも1つのコマンドハイパーバイザーと通信して、コンフィギュレーション情報を得る、請求項1に記載の方法。
前記少なくとも1つのハイパーバイザーをアップグレードすることは、更に、前記アップグレードされたハイパーバイザーに対する少なくとも1つの変換モジュールをアップグレードすることを含み、その少なくとも1つの変換モジュールは、メッセージ及びデータ構造を、少なくとも1つのハイパーバイザーとそれに対応するバーチャルトラフィックマネージャーとの異なるバージョン間にマップする、請求項8に記載のネットワーク装置。
前記少なくとも1つのアップグレードされたハイパーバイザーは、少なくとも1つのコマンドハイパーバイザーと通信して、コンフィギュレーション情報を得る、請求項8に記載のネットワーク装置。
ノードのクラスター内で少なくとも1つのハイパーバイザーをアップグレードするインストラクションを含むプロセッサ読み取り可能な非一時的記憶媒体において、プロセッサ装置によるインストラクションの実行は、
アップグレードのための少なくとも1つのハイパーバイザーを決定し、その少なくとも1つのハイパーバイザーは、少なくとも2つのノードに及ぶバーチャルトラフィックマネージャーのバーチャルクラスターに対する少なくとも1つのバーチャルトラフィックマネージャーに対応するものであり、
前記バーチャルクラスターが動作状態に留まる間に、前記少なくとも1つの決定されたハイパーバイザー及び前記少なくとも1つの対応するバーチャルトラフィックマネージャーの動作をデアクチベートし、
前記少なくとも1つのデアクチベートされたハイパーバイザーをアップグレードし、
前記少なくとも1つのアップグレードされたハイパーバイザー、及び前記バーチャルクラスターに対する各々の対応するバーチャルトラフィックマネージャーを再アクチベートする、
ことを含むアクションを可能にする、記憶媒体。
前記少なくとも1つのハイパーバイザーをアップグレードすることは、更に、前記アップグレードされたハイパーバイザーに対する少なくとも1つの変換モジュールをアップグレードすることを含み、その少なくとも1つの変換モジュールは、メッセージ及びデータ構造を、少なくとも1つのハイパーバイザーとそれに対応するバーチャルトラフィックマネージャーとの異なるバージョン間にマップする、請求項15に記載の媒体。
前記少なくとも1つのアップグレードされたハイパーバイザーは、少なくとも1つのコマンドハイパーバイザーと通信して、コンフィギュレーション情報を得る、請求項15に記載の媒体。
【発明を実施するための形態】
【0008】
明細書及び請求の範囲を通じて、特に明確な指示のない限り、次の用語は、ここに明確に関連した意味をもつ。ここで使用する「1つの実施形態では(in one embodiment)」という句は、必ずしも同じ実施形態を指すものではないが、そうであってもよい。更に、ここで使用する「別の実施形態では(in another embodiment)」という句は、必ずしも異なる実施形態を指すものではないが、そうでなくてもよい。従って、以下に述べるように、本発明の種々の実施形態は、本発明の精神又は範囲から逸脱せずに、容易に組み合わせることができる。
【0009】
更に、ここで使用する「又は(or)」という語は、包括的「オア(or)」演算子であり、特に明確な指示のない限り、「及び/又は(and/or)」という語と同等である。又、「基づく(based on)」という語は、特に明確な指示のない限り、ここに記述しない付加的なファクタに基づくことを許す。更に、明細書全体にわたり、“a”“an”及び“the”の意味は、複数の参照を含む。“in”の意味は、“in”及び“on”を含む。
【0010】
「ブレードサーバー」という語は、単一のシャーシ又はラックにおいて他のブレードサーバー(複数のカード)と典型的にクラスター化される単一のカードにプロビジョニングされるサーバーを指す。又、ブレードサーバーは、時々、高密度、ウルトラ密度又はスーパー密度解決策とも称され、処理が軽く且つ取引が重いアプリケーションにしばしば使用される。各ブレードサーバーは、典型的に、これに限定されないが、ファイル共有、ファイルバーチャル化/ネットワークストレージファイルマネージメント、ウェブページサービング、ネットワークセキュリティマネージメント(例えば、ファイアウオール、認証、クレデンシャルマネージメント)、キャッシング、トランスコーディング、ストリーミングメディア(ビデオ、オーディオ)、ネットワークトラフィックマネージメント(例えば、負荷バランス、フェイルオーバーマネージメント、加速/最適化)、及びバーチャルプライベートネットワークの確立を含む単一タスク又はプロセス専用である。ある実施形態では、ブレードサーバーは、これらタスクの1つ以上の組み合わせを一緒に遂行するように構成されてもよい。
【0011】
ブレードサーバーは、異なるタスクを遂行できるようにする1つ以上のオペレーティングシステム及び1つ以上のアプリケーションを含む。
【0012】
「アップグレード」という語は、オペレーティングシステムバージョンアップグレードを含むソフトウェアアップグレードを指すが、(例えば、ソフトウェアライセンス購入アクティビティにより駆動される)インアクティブなソフトウェアコードをイネーブルすることを含む任意の及び他の形式のソフトウェア変更、ソフトウェアを実行するための構成変更(例えば、ホット・フィックス、パッチ、等)、異なる機能を一緒に遂行するための装置の再プログラミング又は再目的、以前のソフトウェアバージョンへのロールバック、或いは装置の通常の動作(例えば、トラフィックマネージメント関連の動作)に割り込む変更、を包含するように広く解釈されねばならず、又、この語は、ハードウェアアップグレードも含むように解釈されねばならない。
【0013】
ブレードサーバーを比較的小さな占有面積(単一のカード)に密接にパッケージするために、ブレードサーバーは、典型的に、ポータブルコンピューティング装置に使用されるもののような高度に小型化され且つエネルギー効率の良い中央処理ユニット(CPU)を使用する。典型的に、(マザーボードの機能に厳密に類似した)個々のブレードサーバーの行は、共通に共有され且つ比較的高速度のバスを経て互いに通信する。ラックマウント型のシャーシでは、規範的なブレードサーバーベースの解決策は、比較的標準的な6脚ラックの境界内で数百のCPUを動作させることができる。
【0014】
ここで使用される「ハードウェアクラスター」という語は、サービス、リソース、等を一体化するように協働するゆるく結合されたネットワーク装置を指す。このハードウェアクラスターは、ハードウェアクラスターの外部の装置、サービス、リソース、等へのアクセスを与える。ハードウェアクラスターは、他の点では、外部装置にとってネットワーク上の単一エンティティのように見える。ハードウェアクラスター内の各ネットワーク装置は、ハードウェアクラスターのメンバー又はノードとも称される。ハードウェアクラスターのノードは、上述したブレード又はブレードサーバーであるか、或いは
図4を参照して以下に述べる他のネットワークイネーブル装置である。
【0015】
ここで使用される「バーチャルクラスター」という語は、サービス、リソース、等を一体化するように協働するゆるく結合されたバーチャルマシンのクラスターを指す。このバーチャルクラスターは、ハードウェアクラスターの外部の装置、サービス、リソース、等へのアクセスを与える。バーチャルクラスターは、他の点では、外部装置にとってネットワーク上の単一エンティティのように見える。バーチャルクラスター内の各バーチャルマシンは、バーチャルクラスターのメンバー又はノードとも称される。バーチャルクラスターのノードは、同じバーチャルクラスターの一部分であるバーチャルマシン及び/又はバーチャルトラフィックマネージャーである。同じバーチャルクラスターのバーチャルノードは、個別の物理的ブレードサーバー又はネットワークコンピューティング装置においてホストされる。
【0016】
ここで使用される「バーチャルトラフィックマネージャー」という語は、ハイパーバイザーによって管理されるバーチャルマシンにおいて又はバーチャルマシンとして動作するネットワークトラフィックマネージャーを指す。このバーチャルトラフィックマネージャーは、負荷バランス、アプリケーションアクセスコントロール、セキュアなソケットレイヤの処理、帯域巾整形、等のネットワークトラフィックマネージメントサービスを提供する。バーチャルトラフィックマネージャーは、バーチャルクラスターに関連し、従って、バーチャルクラスターにおけるバーチャルノードとして動作する。
【0017】
ここで使用される「ハイパーバイザーノード」という語は、1つ以上のバーチャルマシン及び/又はバーチャルトラフィックマネージャーをホストし、管理し又は監督するためのハイパーバイザーを含むハードウェアクラスターのハードウェアノードを指す。種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャーをホストするハイパーバイザーノードは、このハイパーバイザーノードがネットワークトラフィックマネージメントに関与できるようにするマネージメントコントロールプレーンアプリケーション及び/又は他のトラフィックマネージメントモジュールを含む。
【0018】
以下、本発明の幾つかの観点の基本的な理解を与えるため種々の実施形態を簡単に説明する。この簡単な説明は、広範囲な概略として意図されていない。又、これは、鍵となる又は重要な要素を識別し或いは範囲を定め又は狭めることも意図していない。その目的は、単に、以下に提示される詳細な説明の前文として幾つかの概念を簡単な形態で提示するだけである。
【0019】
簡単に述べると、種々の実施形態は、バーチャルトラフィックマネージャーの1つ以上のバーチャルクラスターをホストするハードウェアクラスターにおいて動作するハイパーバイザーをアップグレードすることに向けられる。種々の実施形態の少なくとも1つにおいて、バーチャルクラスターは、ハードウェアクラスターにおける複数のコンピューティング装置に及ぶように構成される。種々の実施形態の少なくとも1つにおいて、バーチャルクラスターが複数のハードウェアノードに及ぶようにすることで、バーチャルクラスターは、1つ以上のハードウェアノードがアップグレードされる間に動作状態に保たれる。更に、プロセスを繰り返し、バーチャルクラスターの動作を停止せずに、一度に1つのハードウェアノードで、全ハードウェアクラスターをアップグレードできるようにする。
【0020】
種々の実施形態の少なくとも1つにおいて、ハイパーバイザーは、バーチャルトラフィックマネージャーのバーチャルクラスターに対するマネージメントコントロールプレーンを含む。種々の実施形態の少なくとも1つにおいて、ハードウェアノードで実行されるハイパーバイザーは、低レベルネットワークトラフィックトポロジー(例えば、オープンシステム相互接続レイヤ1及びレイヤ2)を管理し、一方、バーチャルトラフィックマネージャーは、高レベルネットワーク処理(例えば、OSIレイヤ3からレイヤ7)を管理する。
【0021】
種々の実施形態の少なくとも1つにおいて、ハイパーバイザーベースのマネージメントコントロールプレーンは、バーチャルクラスターとインターフェイスし、そしてバーチャルトラフィックマネージャーは、ハイパーバイザー及びバーチャルトラフィックマネージャーのトラフィックマネージメントインターフェイス間にメッセージ及びデータをマップさせることのできるプラグ型変換モジュールを使用する。種々の実施形態の少なくとも1つにおいて、プラグ型変換モジュールは、ハイパーバイザーベースのマネージメントコントロールプレーン及びバーチャルトラフィックマネージャーの異なるバージョンが通信して、ネットワークトラフィックを協働で管理できるようにする。
【0022】
例示的動作環境
図1は、ここに述べる実施形態が具現化される環境100の非限定例のコンポーネントを示す。種々の実施形態を具現化するのに全てのコンポーネントが要求されるのではなく、種々の実施形態の精神又は範囲から逸脱せずに、コンポーネントの構成及び形式を変更することができる。
図1は、クライアント装置106と、ホストサーバー装置104と、ローカルエリアネットワーク(LAN)112と、データセンター108との間で通信を行えるようにするネットワーク102のようなワイドエリアネットワークを示し、データセンターには、ブレードサーバー110のような少なくとも1つのネットワークコンピューティング装置が配備される。スイッチ114は、ネットワーク102とデータセンター108との間を接続し、それらの間で通信を行えるようにする。1つの実施形態では、ブレードサーバー110は、1つ以上のハードウェアクラスターのメンバーである。各ハードウェアクラスター118は、スイッチ114にとって、単一のネットワークアドレスを有する単一のネットワークエンティティのように見える。例えば、各ハードウェアクラスターは、独特のオープンシステム相互接続(OSI)レイヤ2(L2)ネットワークアドレスを有する。又、種々の実施形態の少なくとも1つにおいて、各ブレードサーバーは、バーチャルクラスターへと構成される1つ以上のバーチャルトラフィックマネージャーを管理するためのハイパーバイザーを含む。種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャーを含む1つ以上のバーチャルクラスターが、ブレードサーバー110に配備される。
【0023】
図2は、ブレードサーバーシャーシ200の非限定例の概略を示す。種々の実施形態を具現化するのに全てのコンポーネントが要求されるのではなく、種々の実施形態の精神又は範囲から逸脱せずに、コンポーネントの構成及び形式を変更することができる。ブレードサーバーシャーシ200は、メモリ204、入力/出力(I/O)インターフェイス208、ネットワークインターフェイスバス210及びブレードサーバーバス212と通信するコントローラ206を備えている。典型的に、ブレードのハードウェアクラスターは、ブレードサーバーシャーシに配置された全てのブレードを含むが、ハードウェアクラスターは、ブレードサーバーシャーシにおけるブレードのサブセット、又は2つ以上のブレードサーバーシャーシからのブレードを含む。図示されていないが、ブレードサーバーバス212は、ブレードサーバー202のための複数のスロットを含む。又、ブレードサーバーバス212は、これに限定されないが、HyperTransport
TM、ファイバーチャンネル、周辺コンポーネント相互接続(PCI)、インテグレート・ドライブ・エレクトロニックス(IDE)、インダストリー・スタンダード・アーキテクチャー(ISA)、アドバンスト・グラフィック・ポート(AGP)、ファイアウオール、小型コンピュータシリアルインターフェイス(SCSI)、ユニバーサルシリアルバス(USB)、Thunderbolt
TM、等を含む多数のバスアーキテクチャーの1つをサポートするように構成される。
【0024】
図3は、
図2のブレードサーバーとして使用できるブレードサーバーカード300の一実施形態を示す。ここに述べる実施形態を具現化するのに全てのコンポーネントが要求されるのではなく、ここに述べる実施形態の精神又は範囲から逸脱せずに、コンポーネントの構成及び形式を変更することができる。コントローラ312が直接バス304に結合され、これは、ハードドライブエミュレータ308及び加速度計306とのデータ及びアドレスの通信を可能にする。種々の実施形態の少なくとも1つにおいて、ほとんど全てのアプリケーションは、コントローラ312で遂行される論理的アクションにより比較的迅速にアクセスするためにハードドライブエミュレータ308に記憶される。種々の実施形態の少なくとも1つにおいて、直接バス304は、これに限定されないが、HyperTransport
TM、ファイバーチャンネル、IDE、USB、ISA、PCI、AGP、SCSI、ファイアワイヤ、シリアル、Thunderbolt
TM、等を含むバスアーキテクチャーを使用する。しかしながら、種々の実施形態の少なくとも1つにおいて、加速度計306と、コントローラ312で動作するアプリケーションと、ハードドライブエミュレータ308との間には比較的少量のデータ(しばしば100バイト以下)しか通信されないので、種々の実施形態の少なくとも1つでは、直接バス304と共に比較的低速度のバスアーキテクチャーが使用される。
【0025】
コントローラ312は、直接バス304に結合され、そしてそれを経て通信することができる。又、コントローラ312は、データ及びアドレスの通信を可能にするブレードサーバーバスインターフェイス302にも結合される。種々の実施形態の少なくとも1つにおいて、ブレードサーバーバスインターフェイス302は、ブレードサーバーカード300のための電力を受け取り、PCIバスとして動作する。更に、発振器310がコントローラ312、ハードドライブエミュレータ308及び加速度計306に結合され、直接バス304を経て通信されるデータ及びアドレスの同期を可能にする。それに加えて、又はそれとは別に、ブレードサーバーカード300は、物理的なハードディスクドライブを含む。
【0026】
又、コントローラ312は、これに限定されないが、CPU、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジック装置(PLD)、特定用途向け集積回路(ASIC)、等を含む多数の形式の装置の1つにおいて設けられる。
【0027】
上述したように、ハードウェアクラスターメンバー及びハードウェアクラスターアーキテクチャーは、ブレードサーバーアーキテクチャーに対して制約がない。従って、例えば、
図4は、ハードウェアクラスターのメンバーとして使用できるネットワーク装置400の一実施形態の概略図である。種々の実施形態の少なくとも1つにおいて、ネットワーク装置400は、トラフィックマネージメント装置のようなステートフルなネットワーク装置を含む。ステートフルなネットワーク装置は、OSIレイヤ4、TCP/IPのTCPレイヤ、等の、ネットワークフレームワークのトランスポートレイヤに関する情報を維持する。それに加えて、又はそれとは別に、ネットワーク装置400は、OSIレイヤ2、OSIレイヤ3、等の、データリンク及び/又はネットワークレイヤ情報を維持するステートレスなネットワーク装置を含む。ネットワーク装置400は、図示されたより多数の又は少数のコンポーネントを含んでもよい。しかしながら、図示されたコンポーネントは、例示的実施形態を開示するのに充分である。ネットワーク装置400は、同様のシステムにおける
図1のブレードサーバー110に置き換わるものである。更に、種々の実施形態の少なくとも1つにおいて、ネットワーク装置400により遂行されるタスク又は機能は、ブレードサーバー110により遂行されてもよい(その逆のことも言える)。ネットワーク装置400は、サーバー、トラフィックマネージメント装置、アプリケーションサーバー、等である。ネットワーク装置400の少なくとも幾つかのコンポーネントにより遂行されるプロセスの1つの実施形態を、
図5から13を参照して詳細に説明する。
【0028】
種々の実施形態の少なくとも1つにおいて、ネットワーク装置400は、1つ以上の処理コアを各々有する少なくとも1つの中央処理ユニット412(CPU)と、ビデオディスプレイアダプタ414と、大量メモリとを備え、それらは、全て、バス422を経て互いに通信する。更に、1つ以上のCPU412(及び/又は各ユニット412内のコア)がブレードサーバー110に置き換わる(それを補足する)。大量メモリは、一般的に、RAM416、ROM432、bios418、及び1つ以上の永久的な大量ストレージ装置、例えば、ハードディスクドライブ428、テープドライブ、光学的ドライブ、及び/又はフロッピー(登録商標)ディスクドライブを含む。大量メモリは、ネットワーク装置400の動作をコントロールするためのオペレーティングシステム420を記憶する。又、大量メモリは、バーチャル化コンピューティング環境内で動作するバーチャルマシン(バーチャルゲスト)及びバーチャルトラフィックマネージャーの動作を管理及びコントロールするためのハイパーバイザー450も記憶する。
【0029】
種々の実施形態の少なくとも1つにおいて、ネットワーク装置400は、TCP/IPプロトコルを含む種々の通信プロトコルに使用するように構成された1つ以上のネットワークインターフェイスユニット410を経て、スイッチ114、ネットワーク102又は他の何らかの通信ネットワークとも通信する。ネットワークインターフェイスユニット410は、トランシーバ、トランシーバ装置、又はネットワークインターフェイスカード(NIC)としても知られており、ネットワーク装置400は、2つ以上の処理ユニット412を備え(又はユニット412が2つ以上のコアを有し)、各ユニット412(及び/又はコア)は、同じ単一のネットワークインターフェイスユニット410、又は複数のユニット410を使用する。
【0030】
図4に示されて説明される大量メモリ416、426、428及び432は、マシン読み取り可能なストレージ媒体の例である別の形式のコンピュータ読み取り可能な媒体、即ちコンピュータ読み取り可能な又はプロセッサ読み取り可能なストレージ媒体を示している。コンピュータ読み取り可能なストレージ/マシン読み取り可能なストレージ媒体は、揮発性(一時的)、不揮発性(非一時的)、除去可能、及び除去不能な媒体を含み、これら媒体は、コンピュータ読み取り可能な/マシン実行可能なインストラクション、データ構造、オブジェクト、コンテナ、プログラムモジュール、ソフトウェア、又は他のデータのような情報を記憶するための方法又は技術で具現化され、これら情報は、少なくとも1つの中央処理ユニット(CPU)412のようなプロセッサにより得られ及び/又は実行され、
図10から13の規範的プロセス1000、1100、1200及び/又は1300の1つ以上の部分を含むアクションを遂行する。コンピュータ読み取り可能なストレージ媒体は、例えば、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD−ROM、デジタル多様性ディスク(DVD)、又は他の光学的ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、又は他の磁気ストレージ装置、或いは望ましい情報を記憶するのに使用できる他の媒体を含み、その望ましい情報は、データ及び/又はコンピュータ/マシン実行可能なインストラクションを含み、コンピューティング装置によってアクセスできるものである。
【0031】
又、大量メモリは、他の形式のプログラムコード及びデータをアプリケーション451として記憶し、これは、大量メモリにロードされて、オペレーティングシステム420で実行される。アプリケーション451は、例えば、ウェブブラウザ、e−メールクライアント/サーバープログラム、ルーティングプログラム、スケジューラ、ウェブサーバー、カレンダー、データベースプログラム、ワードプロセスプログラム、ハイパーテキストトランスファープロトコル(HTTP)プログラム、リアルタイムストリーミングプロトコル(RTSP)プログラム、セキュリティプログラム、及び他の形式のアプリケーションプログラムを含む。又、アプリケーション451は、コントロールプロセス(CP)452及びマネージメントコントロールプレーンアプリケーション454も含む。
【0032】
又、ネットワーク装置400は、e−メールを送信及び受信するためのシンプルメールトランスファープロトコル(SMTP)ハンドラーアプリケーション、HTTP要求を受け取って取り扱うためのHTTPハンドラーアプリケーション、RTSP要求を受け取って取り扱うためのRTSPハンドラーアプリケーション、及びセキュアな接続を取り扱うためのHTTPSハンドラーアプリケーションも含む。HTTPSハンドラーアプリケーションは、セキュアな形態で外部アプリケーションとの通信を開始する。更に、ネットワーク装置400は、TLS、TTLS、EAP、SSL、IPSec、等を含むセキュアな接続を実質上サポートする。
【0033】
又、ネットワーク装置400は、マウス、キーボード、スキャナ、又は
図4に示されていない他の入力/出力装置のような外部装置と通信するための入力/出力インターフェイス424も備えている。同様に、ネットワーク装置400は、更に、CD−ROM/DVD−ROMドライブ426、ハードディスクドライブ428、フラッシュメモリドライブ(図示せず)のような付加的な大量ストレージファシリティを含む。ハードディスクドライブ428は、とりわけ、上述した他の大量メモリコンポーネントと同様に、アプリケーションプログラム、データベース、データ、プログラムモジュール、オブジェクト、コンテナ、ソフトウェア、等を記憶するように使用される。
【0034】
1つの実施形態において、ネットワーク装置400は、バス422に結合された少なくとも1つの特定用途向け集積回路(ASIC)チップ(図示せず)を備えている。ASICチップは、ネットワーク装置400のアクションの全部又は幾つかを遂行するロジックを含む。例えば、1つの実施形態では、ASICチップは、到来するパケット及び/又は出て行くパケットに対して多数のパケット処理機能を遂行することができる。
【0035】
1つの実施形態において、ネットワーク装置400は、更に、ASICチップに代わって又はそれに加えて、1つ以上のフィールドプログラマブルゲートアレイ(FPGA)(図示せず)を備えている。ネットワーク装置400の多数の機能は、ASICチップ、FPGAにより、又はメモリに記憶されたインストラクションと共にCPU412により、又はASICチップ、FPGA及びCPUの組み合わせにより、遂行される。
【0036】
コントロールプロセス452は、ネットワーク装置のハードウェアクラスターに関連したハイパーバイザーのアップグレードを遂行するよう構成されたコンポーネントを含む。コントロールプロセス452を使用する実施形態が
図5から13に示されている。
【0037】
マネージメントコントロールプレーンアプリケーション454は、ハードウェア/バーチャルクラスター独自の処理を遂行するためのコンポーネントを含む。例えば、ネットワーク装置400がブレードサーバーを備えているときに、マネージメントコントロールプレーンアプリケーション454は、これに限定されないが、ファイル共有、ウェブページサービング、キャッシング、トランスコーディング、ストリーミングオーディオ、ストリーミングビデオ、負荷バランシング及びフェイルオーバーマネージメント、並びにクラスターアーキテクチャーにより典型的に具現化される他のネットワーク技術を含むプロセスを遂行する。ネットワーク装置400がサーバーコンピュータを備えているときに、マネージメントコントロールプレーンアプリケーション454は、例えば、ファイル及び印刷共有サービスを含む。種々の実施形態の少なくとも1つにおいて、マネージメントコントロールプレーンアプリケーション454は、ネットワークトラフィックを処理して、バーチャルクラスターの一部分として動作するバーチャルトラフィックマネージャーへ転送することを含むネットワークトラフィックマネージメントサービスをコントロールする。
【0038】
ネットワーク装置400は、コントロールプロセス452及びマネージメントコントロールプレーンアプリケーション454を含むように示されているが、別の実施形態では、これらのコンポーネントの少なくとも幾つかが含まれずに、任意であり、及び/又は別の又は他のコンポーネントが含まれる。
【0039】
システムの概略
図5は、ハイパーバイザー及びバーチャルトラフィックをホストするブレードサーバーハードウェアクラスター500の種々の実施形態の少なくとも1つを示す論理的な概略図である。種々の実施形態の少なくとも1つにおいて、ブレードサーバークラスター500は、ブレードサーバーシャーシ501のような単一のブレードサーバーシャーシに含まれる。別の実施形態では、ブレードサーバークラスター500は、シャーシとは個別に動作するネットワーク装置及び/又はブレードサーバーを使用して具現化される。種々の実施形態の少なくとも1つにおいて、ブレードサーバークラスター500は、ブレードサーバー502−508を含む。更に、ブレードサーバー502−508の各々は、ハイパーバイザー510−516のようなハイパーバイザーを含む。種々の実施形態の少なくとも1つにおいて、ハイパーバイザー510−516は、マネージメントコントロールプレーンアプリケーションを含む。種々の実施形態の少なくとも1つにおいて、
図5に示された4つより多数(又は少数)のブレードサーバーが使用されてもよい。
【0040】
又、種々の実施形態の少なくとも1つにおいて、各ブレードサーバーは、各ハイパーバイザーにより管理される1つ以上のバーチャルマシンを含む。種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャーがブレードサーバーにおいてホストされる。種々の実施形態の少なくとも1つにおいて、ブレードサーバー502は、ハイパーバイザー510のコントロール及びマネージメントの下で実行されるバーチャルマシン/バーチャルトラフィックマネージャー518−524をホストする。種々の実施形態の少なくとも1つにおいて、ブレードサーバー504−508は、各ハイパーバイザー512−516により管理される1つ以上のバーチャルマシンを同様にホストする。当業者に明らかなように、
図5に示された以上(又は以下)のバーチャルマシンがブレードサーバーにおいてホストされ及び/又はハイパーバイザーにより管理されてもよい。
【0041】
図6は、幾つかのバーチャルトラフィックマネージャーがバーチャルクラスターにおいて動作する状態でハイパーバイザー及びバーチャルトラフィックマネージャーをホストするブレードサーバークラスター600の種々の実施形態の少なくとも1つを示す論理的な概略図である。種々の実施形態の少なくとも1つにおいて、ブレードサーバークラスター600は、ブレードサーバーシャーシ601のような単一のブレードサーバーシャーシに含まれる。別の実施形態では、ブレードサーバークラスター600は、シャーシとは個別に動作するネットワーク装置及び/又はブレードサーバーを使用して具現化される。種々の実施形態の少なくとも1つにおいて、ブレードサーバークラスター600は、ブレードサーバー602−608を含む。更に、ブレードサーバー602−608の各々は、ハイパーバイザー610−616のようなハイパーバイザーを含む。種々の実施形態の少なくとも1つにおいて、ハイパーバイザー610−616は、マネージメントコントロールプレーンアプリケーションを含む。種々の実施形態の少なくとも1つにおいて、
図6に示された4つより多数(又は少数)のブレードサーバーが使用されてもよい。
【0042】
又、種々の実施形態の少なくとも1つにおいて、各ブレードサーバーは、各ハイパーバイザーにより管理される1つ以上のバーチャルマシンを含む。種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャーがブレードサーバーにホストされる。種々の実施形態の少なくとも1つにおいて、ブレードサーバー602−608は、各ハイパーバイザー612−616により管理される1つ以上のバーチャルマシンをホストする。当業者に明らかなように、
図6に示された以上(又は以下)のバーチャルマシンがブレードサーバーにホストされ及び/又はハイパーバイザーにより管理されてもよい。
【0043】
種々の実施形態の少なくとも1つにおいて、ブレードサーバー602−608にホストされるバーチャルマシン及び/又はバーチャルトラフィックマネージャーは、バーチャルクラスターとして動作するように構成される。種々の実施形態の少なくとも1つにおいて、バーチャルクラスターは、同じ又は個別のブレードサーバーにホストされる1つ以上のバーチャルマシンを含む。更に、種々の実施形態の少なくとも1つにおいて、バーチャルマシン及び/又はバーチャルトラフィックマネージャーは、バーチャルマシンをホストするブレードサーバーにおいて動作するハイパーバイザーにより監督される。
【0044】
種々の実施形態の少なくとも1つにおいて、バーチャルクラスター618は、それが4つのハードウェアノードに及ぶように4つの異なるブレードサーバー(例えば、ブレードサーバー602−608)にホストされる4つのバーチャルマシン/バーチャルトラフィックマネージャーを含む。種々の実施形態の少なくとも1つにおいて、各バーチャルマシン/バーチャルトラフィックマネージャーは、4つの別々のハイパーバイザー(例えば、ハイパーバイザー610−616)の1つによって監督される。
【0045】
同様に、種々の実施形態の少なくとも1つにおいて、バーチャルクラスター620は、2つの異なるブレードサーバー(例えば、ブレードサーバー602−604)にホストされる4つのバーチャルマシン/バーチャルトラフィックマネージャーを含む。又、種々の実施形態の少なくとも1つにおいて、各バーチャルマシン/バーチャルトラフィックマネージャーは、2つの個別のハイパーバイザー(例えば、ハイパーバイザー610−612)の1つによって監督される。
【0046】
又、種々の実施形態の少なくとも1つにおいて、バーチャルクラスター622は、1つのブレードサーバー(例えば、ブレードサーバー602)にホストされた単一のバーチャルマシン/バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも1つにおいて、バーチャルマシン/トラフィックマネージャーは、ハイパーバイザー(例えば、ハイパーバイザー610)によって監督される。
【0047】
種々の実施形態の少なくとも1つにおいて、バーチャルクラスター624は、それが2つのハードウェアノードに及ぶように2つの異なるブレードサーバー(例えば、ブレードサーバー606−608)にホストされる2つのバーチャルマシン/バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも1つにおいて、各バーチャルマシン/バーチャルトラフィックマネージャーは、2つの別々のハイパーバイザー(例えば、ハイパーバイザー614−616)の1つによって監督される。
【0048】
種々の実施形態の少なくとも1つにおいて、バーチャルクラスター626は、それが3つのハードウェアノードに及ぶように3つの異なるブレードサーバー(例えば、ブレードサーバー604−608)にホストされる3つのバーチャルマシン/バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも1つにおいて、各バーチャルマシン/バーチャルトラフィックマネージャーは、3つの別々のハイパーバイザー(例えば、ハイパーバイザー612−616)の1つによって監督される。
【0049】
図7は、アップグレードのためにブレードサーバー708をサービスから除去したブレードサーバークラスター700の種々の実施形態の少なくとも1つを示す論理的概略図である。種々の実施形態の少なくとも1つにおいて、ブレードサーバークラスター700は、ブレードサーバーシャーシ701のような単一のブレードサーバーシャーシに含まれる。別の実施形態では、ブレードサーバークラスター700は、シャーシとは個別に動作するネットワーク装置及び/又はブレードサーバーを使用して具現化される。種々の実施形態の少なくとも1つにおいて、ブレードサーバークラスター700は、ブレードサーバー702−708を含む。更に、アクティブなブレードサーバー702−706の各々は、ハイパーバイザー710−714のようなハイパーバイザーを含む。種々の実施形態の少なくとも1つにおいて、ハイパーバイザー710−714は、マネージメントコントロールプレーンアプリケーションを含む。種々の実施形態の少なくとも1つにおいて、
図7に示された4つより多数(又は少数)のブレードサーバーが使用されてもよい。
【0050】
又、種々の実施形態の少なくとも1つにおいて、各ブレードサーバーは、各ハイパーバイザーにより管理される1つ以上のバーチャルマシンを含む。種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャーがブレードサーバーにホストされる。種々の実施形態の少なくとも1つにおいて、ブレードサーバー702−706は、各ハイパーバイザー710−714により管理される1つ以上のバーチャルマシンをホストする。当業者に明らかなように、
図7に示された以上(又は以下)のバーチャルマシンがブレードサーバーにホストされ及び/又はハイパーバイザーにより管理されてもよい。
【0051】
種々の実施形態の少なくとも1つにおいて、ブレードサーバー702−708にホストされるバーチャルマシン及び/又はバーチャルトラフィックマネージャーは、バーチャルクラスターとして動作するように構成される。種々の実施形態の少なくとも1つにおいて、バーチャルクラスターは、同じ又は個別のブレードサーバーにホストされる1つ以上のバーチャルマシンを含む。更に、種々の実施形態の少なくとも1つにおいて、バーチャルマシン及び/又はバーチャルトラフィックマネージャーは、バーチャルマシンをホストするブレードサーバーにおいて動作するハイパーバイザーにより監督される。
【0052】
種々の実施形態の少なくとも1つにおいて、バーチャルクラスター716は、4つの異なるブレードサーバー(例えば、ブレードサーバー702−708)にホストされる4つのバーチャルマシン/バーチャルトラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー708は、(例えば、アップグレードプロセスの一部分として)サービスから撤退されているので、バーチャルクラスター716の3つのバーチャルマシン/バーチャルトラフィックマネージャーが動作している。そして、種々の実施形態の少なくとも1つにおいて、各々の動作しているバーチャルマシン/バーチャルトラフィックマネージャーは、3つの個別のハイパーバイザー(例えば、ハイパーバイザー710−714)の1つにより監督される。
【0053】
同様に、種々の実施形態の少なくとも1つにおいて、バーチャルクラスター718は、2つの異なるブレードサーバー(例えば、ブレードサーバー702−704)にホストされる4つのバーチャルマシン/バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも1つにおいて、各バーチャルマシン/バーチャルトラフィックマネージャーは、2つの個別のハイパーバイザー(例えば、ハイパーバイザー710−712)の1つにより監督される。
【0054】
又、種々の実施形態の少なくとも1つにおいて、バーチャルクラスター720は、1つのブレードサーバー(例えば、ブレードサーバー702)にホストされる1つのバーチャルマシン/バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも1つにおいて、バーチャルマシン/バーチャルトラフィックマネージャーは、ハイパーバイザー(例えば、ハイパーバイザー710)により監督される。
【0055】
種々の実施形態の少なくとも1つにおいて、バーチャルクラスター722は、2つの異なるブレードサーバー(例えば、ブレードサーバー706−708)にホストされる2つのバーチャルマシン/バーチャルトラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー708は、(例えば、アップグレードプロセスの一部分として)サービスから撤退されているので、バーチャルクラスター722の1つのバーチャルマシン/バーチャルトラフィックマネージャーが動作している。そして、種々の実施形態の少なくとも1つにおいて、動作しているバーチャルマシン/バーチャルトラフィックマネージャーは、ハイパーバイザー714により監督される。
【0056】
種々の実施形態の少なくとも1つにおいて、バーチャルクラスター724は、3つの異なるブレードサーバー(例えば、ブレードサーバー704−708)にホストされる3つのバーチャルマシン/バーチャルトラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー708は、(例えば、アップグレードプロセスの一部分として)サービスから撤退されているので、バーチャルクラスター724の2つのバーチャルマシン/バーチャルトラフィックマネージャーが動作している。そして、種々の実施形態の少なくとも1つにおいて、各バーチャルマシン/バーチャルトラフィックマネージャーは、2つの個別のハイパーバイザー(例えば、ハイパーバイザー712−714)の1つによって監督される。
【0057】
図8は、アップグレードのためにブレードサーバー806をサービスから除去したブレードサーバークラスター800の種々の実施形態の少なくとも1つを示す論理的概略図である。種々の実施形態の少なくとも1つにおいて、ブレードサーバークラスター800は、ブレードサーバーシャーシ801のような単一のブレードサーバーシャーシに含まれる。別の実施形態では、ブレードサーバークラスター800は、シャーシとは個別に動作するネットワーク装置及び/又はブレードサーバーを使用して具現化される。種々の実施形態の少なくとも1つにおいて、ブレードサーバークラスター800は、ブレードサーバー802−808を含む。更に、アクティブなブレードサーバー802、804及び808の各々は、ハイパーバイザー810−814のようなハイパーバイザーを含む。種々の実施形態の少なくとも1つにおいて、ハイパーバイザー810−814は、マネージメントコントロールプレーンアプリケーションを含む。種々の実施形態の少なくとも1つにおいて、
図8に示された4つより多数(又は少数)のブレードサーバーが使用されてもよい。
【0058】
又、種々の実施形態の少なくとも1つにおいて、各ブレードサーバーは、各ハイパーバイザーにより管理される1つ以上のバーチャルマシンを含む。種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャーがブレードサーバーにホストされる。種々の実施形態の少なくとも1つにおいて、ブレードサーバー802、804及び808は、各ハイパーバイザー810−814により管理される1つ以上のバーチャルマシンをホストする。当業者に明らかなように、
図8に示された以上(又は以下)のバーチャルマシンがブレードサーバーにホストされ及び/又はハイパーバイザーにより管理されてもよい。
【0059】
種々の実施形態の少なくとも1つにおいて、ブレードサーバー802−808にホストされるバーチャルマシン及び/又はバーチャルトラフィックマネージャーは、バーチャルクラスターとして動作するように構成される。種々の実施形態の少なくとも1つにおいて、バーチャルクラスターは、同じ又は個別のブレードサーバーにホストされる1つ以上のバーチャルマシンを含む。更に、種々の実施形態の少なくとも1つにおいて、バーチャルマシン及び/又はバーチャルトラフィックマネージャーは、バーチャルマシンをホストするブレードサーバーにおいて動作するハイパーバイザーにより監督される。
【0060】
種々の実施形態の少なくとも1つにおいて、バーチャルクラスター816は、4つの異なるブレードサーバー(例えば、ブレードサーバー802−808)にホストされる4つのバーチャルマシン/トラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー806は、(例えば、アップグレードプロセスの一部分として)サービスから撤退しているので、バーチャルクラスター816の3つのバーチャルマシン/トラフィックマネージャーが動作している。そして、種々の実施形態の少なくとも1つにおいて、各々の動作しているバーチャルマシン/バーチャルトラフィックマネージャーは、3つの個別のハイパーバイザー(例えば、ハイパーバイザー810−814)の1つにより監督される。
【0061】
同様に、種々の実施形態の少なくとも1つにおいて、バーチャルクラスター818は、2つの異なるブレードサーバー(例えば、ブレードサーバー802−804)にホストされる4つのバーチャルマシン/バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも1つにおいて、各バーチャルマシン/バーチャルトラフィックマネージャーは、2つの個別のハイパーバイザー(例えば、ハイパーバイザー810−812)の1つにより監督される。
【0062】
又、種々の実施形態の少なくとも1つにおいて、バーチャルクラスター820は、1つのブレードサーバー(例えば、ブレードサーバー802)にホストされる1つのバーチャルマシン/バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも1つにおいて、バーチャルマシン/バーチャルトラフィックマネージャーは、ハイパーバイザー(例えば、ハイパーバイザー810)により監督される。
【0063】
種々の実施形態の少なくとも1つにおいて、バーチャルクラスター822は、2つの異なるブレードサーバー(例えば、ブレードサーバー806−808)にホストされる2つのバーチャルマシン/バーチャルトラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー806は、(例えば、アップグレードプロセスの一部分として)サービスから撤退されているので、バーチャルクラスター822の1つのバーチャルマシン/バーチャルトラフィックマネージャーが動作している。そして、種々の実施形態の少なくとも1つにおいて、動作しているバーチャルマシン/バーチャルトラフィックマネージャーは、ハイパーバイザー814により監督される。
【0064】
種々の実施形態の少なくとも1つにおいて、バーチャルクラスター824は、3つの異なるブレードサーバー(例えば、ブレードサーバー804−808)にホストされる3つのバーチャルマシン/バーチャルトラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー806は、(例えば、アップグレードプロセスの一部分として)サービスから撤退されているので、バーチャルクラスター824の2つのバーチャルマシン/バーチャルトラフィックマネージャーが動作し、その1つは、ブレードサーバー804にホストされ、そしてもう1つは、ブレードサーバー808にホストされる。そして、種々の実施形態の少なくとも1つにおいて、各バーチャルマシン/バーチャルトラフィックマネージャーは、2つの個別のハイパーバイザー(例えば、ハイパーバイザー812−814)の1つによって監督される。
【0065】
図6−8は、種々の実施形態の少なくとも1つにおいて、ハードウェアクラスターのハイパーバイザーをアップグレードできるようにするためにバーチャルトラフィックマネージャーのバーチャルクラスターをどのように構成するか示す。種々の実施形態の少なくとも1つにおいて、バーチャルクラスターが複数のハイパーバイザーノードに及ぶ場合には、バーチャルクラスターを停止せずに、1つ以上のハイパーバイザーノードがダウンされそしてアップグレードされる。種々の実施形態の少なくとも1つにおいて、これは、ハードウェアクラスターの外部のクライアントがアップグレードプロセス中に動作を継続しそしてバーチャルクラスターからサービスを受けられるように、ハイパーバイザーノードのアップグレードを実行できるようにする。
【0066】
図9は、種々の実施形態の少なくとも1つについて、ネットワークトラフィックマネージャーとして動作するように構成されたブレードサーバー900を示す論理的概略図である。種々の実施形態の少なくとも1つにおいて、ブレードサーバー902は、ハイパーバイザー906を含むように構成される。ハイパーバイザー906は、バーチャル化プラットホームホスト環境904を管理し及び/又は監督する。又、種々の実施形態の少なくとも1つにおいて、バーチャル化プラットホームホスト環境904は、バーチャルトラフィックマネージャー912のような1つ以上のバーチャルマシンを含む。又、種々の実施形態の少なくとも1つにおいて、ハイパーバイザー906は、変換モジュール908を含む。又、種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャー912は、変換モジュール914を含む。
【0067】
種々の実施形態の少なくとも1つにおいて、ハイパーバイザー906とバーチャルトラフィックマネージャー912との間の通信910は、変換モジュール908及び変換モジュール914を通過した後に、各基礎的なコンポーネント(例えば、ハイパーバイザー906及びバーチャルトラフィックマネージャー912)に到達する。種々の実施形態の少なくとも1つにおいて、ハイパーバイザー906は、スイッチ916へ及びスイッチ916からネットワークトラフィックを送信し及び受信する。スイッチ916から、ネットワークトラフィックは、ネットワーク918のような1つ以上の内部又は外部ネットワークに到達する。
【0068】
種々の実施形態の少なくとも1つにおいて、ハイパーバイザー906は、スイッチ916からネットワークトラフィックを受信し、そしてその受信したネットワークトラフィックのOSIレイヤ1及びレイヤ2を処理する。ネットワークトラフィックのレイヤ1及びレイヤ2がハイパーバイザーにより処理される場合には、ネットワークトラフィックのレイヤ3からレイヤ7が1つ以上のバーチャルトラフィックマネージャー912へ転送される。ハイパーバイザー906及びバーチャルトラフィックマネージャー912は、それらの各変換モジュール(例えば、ハイパーバイザーの変換モジュール908及びバーチャルトラフィックマネージャーの変換モジュール914)を使用することによりレイヤ3からレイヤ7のネットワークトラフィックの転送を整合させる。
【0069】
変換モジュール908及び914は、ハイパーバイザー又はバーチャルトラフィックマネージャーとは独立して更新され及び/又はアップグレードされるプラグ型モジュールである。種々の実施形態の少なくとも1つにおいて、変換モジュールは、メッセージ、API、データ構造、等をハイパーバイザー又はバーチャルトラフィックマネージャーの異なるバージョン間にマップさせることができる。更に、種々の実施形態の少なくとも1つにおいて、変換モジュールは、1つ以上のバージョンマッピングをサポートする。種々の実施形態の少なくとも1つにおいて、ハイパーバイザー及びバーチャルトラフィックマネージャーがネットワークトラフィックを通信し及び/又は転送する場合には、通信の両側がネゴシエーションプロセスに参加して、それらの各変換モジュールによりサポートされる適合可能なバージョンマッピングを識別する。
【0070】
種々の実施形態の少なくとも1つにおいて、アップグレードプロセス中に、ハイパーバイザーの異なるバージョンを協働して動作することが要求される。ハイパーバイザーの異なるバージョン及び/又はマネージメントコントロールプレーンアプリケーションの異なるバージョンを受け入れるため、ハイパーバイザーは、変換モジュールを使用して、他のハイパーバイザーと通信する。従って、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーの変換モジュール(例えば、変換モジュール908)は、ハイパーバイザーの異なるバージョンを通信できるように構成される。種々の実施形態の少なくとも1つにおいて、変換モジュール908は、メッセージ、パラメータ、データ構造、等をハイパーバイザーの異なるバージョン間にマップさせるように構成される。
【0071】
一般的な動作
図10は、バーチャルトラフィックマネージャー及び/又はバーチャルトラフィックマネージャーのバーチャルクラスターを監督するハイパーバイザーをアップグレードするための概略プロセス1000の一実施形態を示すフローチャートである。スタートブロックの後に、プロセスは、ブロック1002へ進み、アップグレードのターゲットであるハイパーバイザーノードが決定される。種々の実施形態の少なくとも1つにおいて、アップグレードのためのハイパーバイザーノードの決定は、ハイパーバイザーノードをアップグレードすべきかどうか決定するための現在動作条件を監視する1つ以上のコンピュータプロセスにより自動化される。
【0072】
種々の実施形態の少なくとも1つにおいて、中央コマンドノードで監視プロセスが動作されて、個々のハイパーバイザーにアップグレードプロセスを開始するように指令する。種々の実施形態の少なくとも1つにおいて、個々のハイパーバイザーは、条件を監視し、アップグレードが要求されるという決定を独自に行う。又、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーは、アップグレードが要求されるかどうか協働して決定し、そしてもしそうであれば、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーのプロセスでアップグレードのためのハイパーバイザーノードを協働して決定する。或いは、種々の実施形態の少なくとも1つにおいて、ネットワークアドミニストレータのような許可されたユーザがユーザインターフェイスを動作して、アップグレードのターゲットであるハイパーバイザーノードを識別する。
【0073】
種々の実施形態の少なくとも1つにおいて、アップグレードを含む特定のソフトウェアが自動的に決定されるか又はシステムアドミニストレータ(ユーザ)により決定される。種々の実施形態の少なくとも1つにおいて、マネージメントコントロールプレーンアプリケーション及び/又はハイパーバイザーによりアクセス可能な既知の位置に候補アップグレードパッケージが記憶される。種々の実施形態の少なくとも1つにおいて、アップグレードパッケージに含まれたソフトウェアのバージョンを合併するネーミングプロトコルを使用してアップグレードパッケージに名前が付けられる。種々の実施形態の少なくとも1つにおいて、アップグレードパッケージは、良く知られたフォーマットを使用し、そして種々のモニタリングプロセス及びユーザがアップグレードパッケージを識別してそのアップグレードパッケージのコンテンツ及び/又は関連性を決定できるようにするメタデータをアップグレードパッケージ内に含む。
【0074】
次いで、ブロック1004において、決定されたハイパーバイザーノードがアップグレードされる。種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードにより与えられるトラフィックマネージメントサービスの中断を最小にするために、ハイパーバイザーノードをアップグレードするには、多数のステップが必要である。種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャーを含めて、ハイパーバイザーにホストされる1つ以上のバーチャルマシンは、アップグレードステップ中に停止及び/又は終了を要求する。
【0075】
種々の実施形態の少なくとも1つにおいて、アップグレードされているハイパーバイザーノードにゲストとして実行される1つ以上のバーチャルマシンを有するバーチャルクラスターは、バーチャルクラスターの他のメンバーが他のハイパーバイザーによりホストされる場合に動作状態を保つ。
【0076】
ブロック1006では、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードは、その特定のハイパーバイザーノードのアップグレードプロセスが完了である場合にネットワークトラフィックマネージメントサービスの遂行を再開する。種々の実施形態の少なくとも1つにおいて、ハイパーバイザーがバーチャルクラスターのメンバーであるバーチャルマシン(例えば、ゲストインスタンス)をホストする場合に、それらのバーチャルマシンは、それらのバーチャルクラスターに再参加する。
【0077】
種々の実施形態の少なくとも1つにおいて、複数のハイパーバイザーノードは、ハードウェアクラスターの一部分として協働する。種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードは、1つ以上のブレードシャーシに据え付けられるブレードサーバーベースのハードウェアクラスターに配置される。或いは又、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードは、個別のネットワーク装置より成るハードウェアクラスターにおいて動作する。又は、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードは、ブレードサーバー及び他のネットワーク装置より成るハードウェアクラスターにおいて動作する。多くの場合、全てのハイパーバイザーノードを同じソフトウェアバージョン及び/又はアップグレードパッケージに対してアップグレードするのが好都合である。それ故、種々の実施形態の少なくとも1つにおいて、アップグレードプロセスは、複数のハイパーバイザーノードをアップグレードするように構成される。
【0078】
判断ブロック1008では、種々の実施形態の少なくとも1つにおいて、より多くのハイパーバイザーノードがアップグレードを要求する場合に、コントロールは、ブロック1002へループバックする。さもなければ、種々の実施形態の少なくとも1つにおいて、コントロールは、呼び出し側プロセスに復帰する。
【0079】
図11は、アップグレードのターゲットであるハイパーバイザーノードを決定するのに使用するプロセス1100の一実施形態を一般的に示すフローチャートである。開始ブロック後の判断ブロック1102において、ハイパーバイザーのアップグレードプロセスが自動的に行われるように構成されている場合には、プロセス1100のコントロールがブロック1104へ進む。種々の実施形態の少なくとも1つにおいて、プロセス1100は、コンフィギュレーションファイルやデータベースに記憶され又は外部プロセス/ユーザインターフェイスから通されるコンフィギュレーション値、等に基づいて、アップグレードプロセスが自動的に動作するかどうか決定する。
【0080】
ブロック1104において、ハイパーバイザーノードのアップグレードが要求されるかどうか決定される。種々の実施形態の少なくとも1つにおいて、アップグレードの決定は、現在動作条件の分析及びアップグレードパッケージの利用性に基づく。種々の実施形態の少なくとも1つにおいて、アップグレードの決定に影響する現在動作条件は、年齢及び/又はインストールされたソフトウェアのバージョン、利用可能なアップグレードパッケージの重要性、処理されるネットワークトラフィックの量、処理されるネットワークトラフィックの形式、アクティブな接続の数、接続及び/又はネットワークセッションの平均期間、検出されるエラーの率、等を含む。
【0081】
判断ブロック1106では、種々の実施形態の少なくとも1つにおいて、自動化プロセスでアップグレードが要求されると決定されると、プロセス1100のコントロールは、ブロック1108へ進む。さもなければ、コントロールは、呼び出し側プロセスへ復帰する。
【0082】
ブロック1108では、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードごとにアップグレードプライオリティスコアが発生される。種々の実施形態の少なくとも1つにおいて、これは、ハードウェアクラスターにおけるハイパーバイザーノードごとにプライオリティスコアを発生する1つ以上のアルゴリズムの実行を要求する。種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードは、それらがいつクラスターに加わるか、ハイパーバイザーノードで実行されるソフトウェアのバージョン、名前又は識別子分類順序、ネットワークアドレス、システムアドミニストレータによる指定、等を含む種々のファクタに基づいてプライオリティスコアを受け取る。種々の実施形態の少なくとも1つにおいて、プライオリティスコアは、必要に応じて記憶され及び検索される。更に、種々の実施形態の少なくとも1つにおいて、プライオリティスコアは、各ハイパーバイザーノードに数字識別子を指定することにより発生される。
【0083】
又、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードのプライオリティスコアは、関連するハードウェアクラスター内でハイパーバイザーノードが遂行する役割によって影響される。例えば、ある構成において、ハイパーバイザーノードのハードウェアクラスターは、指定のコマンドハイパーバイザーノードを有する。種々の実施形態の少なくとも1つにおいて、コマンドハイパーバイザーノードは、スパニングツリープロトコルのようなコマンドノードを本来要求するネットワークトラフィックマネージメントプロトコルを受け入れるために要求される。他のケースでは、種々の実施形態の少なくとも1つにおいて、コマンドハイパーバイザーノードは、ハイパーバイザーノードハードウェアクラスターの管理を促進するために指定される。例えば、種々の実施形態の少なくとも1つにおいて、コマンドハイパーバイザーノードは、ハードウェアクラスターに含まれるハイパーバイザーノード、バーチャルクラスター、バーチャルトラフィックマネージャー、等を動作し及びコンフィギュレーションするためのコマンドユーザインターフェイスをホストするように構成される。従って、種々の実施形態の少なくとも1つにおいて、クラスターの動作は、クラスター内の他のハイパーバイザーノードがアップグレードされるまでコマンドハイパーバイザーノードのアップグレードを遅延することにより減少される。それ故、種々の実施形態の少なくとも1つにおいて、コマンドハイパーバイザーノードは、そのコマンドハイパーバイザーノードがアップグレードされるべきハードウェアクラスターにおいて最後のハイパーバイザーとなるよう保証するアップグレードプライオリティスコアが指定される。
【0084】
次いで、ブロック1110において、プロセス1100は、アップグレードプライオリティスコアに基づいてハイパーバイザーノードを選択する。ブロック1112において、プロセス1100は、その選択されたハイパーバイザーノードを呼び出し側プロセスへ報告する。
【0085】
種々の実施形態の少なくとも1つにおいて、アップグレードのためにハイパーバイザーノードが選択されたとの報告で、アップグレードプロセスの残りのステップが開始される。又、種々の実施形態の少なくとも1つにおいて、アップグレードのためのハイパーバイザーノードの報告は、実際のアップグレードをトリガーせずにプロセスにより受け取られる。種々の実施形態の少なくとも1つにおいて、アップグレードのために選択されるハイパーバイザーノードのアイデンティティは、システムアドミニストレータへ報告される。従って、種々の実施形態の少なくとも1つにおいて、システムアドミニストレータは、アップグレードプロセスを続けるべきか及び/又は完了すべきかについて最終的な決定をなす。
【0086】
ブロック1114において、プロセス1100は、アップグレードのためのハイパーバイザーノードを決定するためにユーザにより供給されるコマンドを受け取って処理する。判断ブロック1116において、ハイパーバイザーをアップグレードするコマンドが受け取られた場合には、プロセス1100のコントロールは、ブロック1112へ進む。さもなければ、コントロールは、呼び出し側プロセスへ復帰する。種々の実施形態の少なくとも1つにおいて、モニタリングアプリケーション、SNMPトラップ、等の許可された第三者プロセスによりコマンドが提出される。
【0087】
図12は、ハイパーバイザーノードをアップグレードするプロセス1200の一実施形態を一般的に示すフローチャートである。開始ブロック後のブロック1202では、種々の実施形態の少なくとも1つにおいて、アップグレードのターゲットであるハイパーバイザーノードにホストされるバーチャルトラフィックマネージャーに関連したネットワーク接続がブリードオフされる。種々の実施形態の少なくとも1つにおいて、接続は、現在ネットワークセッションの終了を待機することによりブリードオフされる一方、アップグレードのターゲットであるハイパーバイザーノードにホストされるバーチャルトラフィックマネージャーに新たな接続が関連されるのを防止する。種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードのアップグレードにより影響される接続の接続状態をハイパーバイザーノードのアップグレードにより影響されない他のトラフィックマネージャーへ能動的に転送するような、より積極的なブリードオフ技術が使用される。種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャーがバーチャルクラスターの一部分である場合には、アップグレードのターゲットであるハイパーバイザーノードにホストされるバーチャルクラスターのメンバーは、アップグレードを受けるハイパーバイザーノードに向けられるネットワーク接続を処理し続ける。ここに述べるものを越える付加的なブリードオフ技術も適用できる。
【0088】
種々の実施形態の少なくとも1つにおいて、ブリードオフ接続は、OSIレイヤ1及びレイヤ2ネットワークトラフィックを、アップグレードのターゲットであるハイパーバイザーノード以外のハイパーバイザーノードに向けることも伴う。
【0089】
ブロック1204では、種々の実施形態の少なくとも1つにおいて、アップグレードのターゲットであるハイパーバイザーノードにホストされるバーチャルトラフィックマネージャー及び他のバーチャルマシンの動作が停止される。種々の実施形態の少なくとも1つにおいて、バーチャルクラスターのメンバーであるバーチャルトラフィックマネージャーには、その停止されたバーチャルトラフィックマネージャーがネットワークトラフィックの処理に利用できないことが通知される。種々の実施形態の少なくとも1つにおいて、その停止されたバーチャルトラフィックマネージャーは、他のバーチャルクラスターメンバーには、ディスエイブルされたように見える。種々の実施形態の少なくとも1つにおいて、バーチャルクラスターにより受け取られるネットワークトラフィックは、そのバーチャルクラスターにおける残りの動作中のバーチャルトラフィックマネージャーにより管理される。
【0090】
ブロック1206では、種々の実施形態の少なくとも1つにおいて、ターゲットであるハイパーバイザーノードで実行される残りのプロセスは、アップグレードプロセスのために必要に応じて停止される。種々の実施形態の少なくとも1つにおいて、それらは、アップグレードプロセスに応答してハイパーバイザーノードで実行されるプロセスである。種々の実施形態の少なくとも1つにおいて、停止を要求する特定のプロセスは、アップグレードの範囲及び目的に依存する。種々の実施形態の少なくとも1つにおいて、アップグレードパッケージは、アップグレードの継続を停止又は遮断することが要求されるプロセスのリストを含む。
【0091】
ブロック1208では、種々の実施形態の少なくとも1つにおいて、アップグレードパッケージがインストールされる。又、アップグレードが新規ハードウェア又は交換ハードウェアのインストールを要求する場合には、ユーザは、全てのプロセスが停止される間にハードウェアをインストールすることができる。
【0092】
ブロック1210では、種々の実施形態の少なくとも1つにおいて、アップグレードを含むソフトウェア及び/又はハードウェアがハイパーバイザーノードにインストールされた後に、ハイパーバイザーノードが必要に応じて再スタート及び/又は再ブートされる。種々の実施形態の少なくとも1つにおいて、あるアップグレードは、ハイパーバイザーノードの再ブートも再スタートも要求しない。
【0093】
ブロック1212では、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードは、必要な変換モジュールを識別し、コンフィギュレーションし、及び/又はインストールする。種々の実施形態の少なくとも1つにおいて、アップグレードされたハイパーバイザーノードは、コマンドハイパーバイザーノードと通信して、ハイパーバイザーノードがハイパーバイザークラスターの他のノードに加わり及び/又はそれと協働するのに必要なコンフィギュレーション情報を得る。
【0094】
種々の実施形態の少なくとも1つにおいて、アップグレードされたハイパーバイザーノードと、ハードウェアクラスターの他のハイパーバイザーノードとの間で交換される情報は、他のハイパーバイザーが異なるAPI及び/又はデータスキームを要求するソフトウェアの異なるバージョンを実行する場合には、変換モジュールにより変更される。アップグレードされたハイパーバイザーノードがクラスターに再参加するためにコンフィギュレーションされ構成される場合には、コントロールがブロック1214へ進む。
【0095】
ブロック1214では、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードは、アップグレードプロセスの一部分として停止されたバーチャルトラフィックマネージャー及び/又はバーチャルマシンを再スタートし及び/又は再アクチベートする。更に、種々の実施形態の少なくとも1つにおいて、マネージメントコントロールプレーンアプリケーションは、コントロール及び/又はコンフィギュレーション情報を、ホストされたバーチャルトラフィックマネージャーへ通信して、それらがアップグレードに基づく適応をとれるようにする。
【0096】
種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャーがバーチャルクラスターの一部分として構成される場合には、バーチャルトラフィックマネージャーは、バーチャルクラスターに再び加わり、そしてバーチャルクラスターの一部分としてネットワークトラフィックの処理を開始する。次いで、コントロールは、呼び出し側プロセスへ復帰する。
【0097】
図13は、ハイパーバイザー及びバーチャルトラフィックマネージャーを使用するネットワークトラフィックの管理に使用するためのプロセス1300の一実施形態を一般的に示すフローチャートである。開始ブロックの後に、プロセス1300は、ブロック1302へ進み、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーノードは、ネットワークトラフィックを受け取る。
【0098】
ブロック1304において、OSIレイヤ1及びレイヤ2のネットワークトラフィックがハイパーバイザーにより処理される。種々の実施形態の少なくとも1つにおいて、ハイパーバイザーは、トラフィック管理のためにマネージメントコントロールプレーンを具現化する特殊なモジュールを有する。種々の実施形態の少なくとも1つにおいて、トラフィック管理デューティは、少なくとも2つの部分に分割される。種々の実施形態の少なくとも1つにおいて、ハイパーバイザーは、バーチャルトラフィックマネージャーがバーチャルクラスターのメンバーとして動作する間に低レベルネットワークトラフィック(OSIレベル1及びレベル2)を処理する。種々の実施形態の少なくとも1つにおいて、バーチャルクラスター及び/又はバーチャルトラフィックマネージャーは、ハイパーバイザーの一部分として動作するマネージメントコントロールプレーンアプリケーションにより管理される。
【0099】
ブロック1306では、種々の実施形態の少なくとも1つにおいて、ハイパーバイザーは、OSIレイヤ3からレイヤ7のネットワークトラフィックを、ハイパーバイザーノードにホストされるバーチャルトラフィックマネージャーへ転送する。種々の実施形態の少なくとも1つにおいて、ハイパーバイザー及びバーチャルトラフィックマネージャーは、1つ以上の変換モジュールを通して通信する。
【0100】
種々の実施形態の少なくとも1つにおいて、ネットワークトラフィックを低いレベルで少なくとも二分割することで、変換モジュールの複雑さが簡単化される。種々の実施形態の少なくとも1つにおいて、OSIレベル2のような低いレベルでのネットワークトラフィック管理に要求されるデータ構造は、OSIスタックにおいてOSIレベル3−7のような高いレベルのネットワークトラフィックにより要求されるデータ構造に比して比較的簡単で且つ数が少ない。これらの高いレベルの層は、TCP、FTP、HTTP等のステートフルなプロトコルを含む複雑なネットワークプロトコルを処理するのに使用される。
【0101】
種々の実施形態の少なくとも1つにおいて、ネットワークトラフィック管理を低いレベルで少なくとも二分割することで、ハイパーバイザー及びバーチャルトラフィックマネージャーの異なるバージョン間で遂行される変換の複雑さを低減する。種々の実施形態の少なくとも1つにおいて、低レベルのネットワークトラフィック管理に使用されるデータ構造及びプロトコルは、最小であり、そしてハイパーバイザー及びバーチャルトラフィックマネージャーの異なるバージョン間に使用されるAPI、メッセージ及びデータ構造を変換(又はマッピング)するための変換モジュールも構成する。種々の実施形態の少なくとも1つにおいて、変換モジュールは、単一のハイパーバイザーがネットワークトラフィック管理デューティを、異なるソフトウェア及びハードウェアバージョンを有するバーチャルトラフィックマネージャーと分担できるようにする。
【0102】
種々の実施形態の少なくとも1つにおいて、ハイパーバイザーは、バーチャルトラフィックマネージャーとは独立して且つそれとは個別にアップグレードされる。又、変換モジュールは、異なるバージョンを有する複数のバーチャルトラフィックマネージャーを同じハイパーバイザーでホスト/管理できるようにする。
【0103】
ブロック1308では、種々の実施形態の少なくとも1つにおいて、OSIレイヤ3からレイヤ7のネットワークトラフィックは、ハイパーバイザーにホストされるバーチャルトラフィックマネージャーによって処理される。種々の実施形態の少なくとも1つにおいて、高いレベルのネットワークトラフィックを処理した後に、そのネットワークトラフィックは、必要に応じて逆方向に変換モジュールに通される。次いで、コントロールは、呼び出し側プロセスに戻される。種々の実施形態の少なくとも1つにおいて、バーチャルトラフィックマネージャーは、バーチャルクラスターのメンバーとして動作する。
【0104】
図面及びフローチャートにおけるアクションの組み合わせは、コンピュータプログラムインストラクションにより具現化できることが理解されよう。これらのプログラムインストラクションは、プロセッサに送られてマシンを形成し、プロセッサで実行されるインストラクションによりフローチャートブロックに明示されたアクションを具現化する手段が生成される。コンピュータプログラムインストラクションは、プロセッサにより実行されて、一連の動作アクションをプロセッサにより遂行させ、フローチャートブロックに明示されたアクションを具現化するためのコンピュータ実施プロセスを発生する。それらのプログラムインストラクションは、ある形式のマシン読み取り可能なストレージ媒体、例えば、プロセッサ読み取り可能な非一時的ストレージ媒体等に記憶される。