(57)【要約】  実施形態は、バーチャルトラフィックマネージャーの１つ以上のバーチャルクラスターをホストするハードウェアクラスターにおいて動作するハイパーバイザーをアップグレードすることに向けられる。バーチャルクラスターは、ハードウェアクラスターにおける複数のコンピューティング装置に及ぶように構成される。バーチャルクラスターが複数のハードウェアノードに及ぶようにすることで、バーチャルクラスターは、１つ以上のハードウェアノードがアップグレードされる間に動作状態に保たれる。ハイパーバイザーは、バーチャルトラフィックマネージャーのバーチャルクラスターに対するマネージメントコントロールプレーンを含む。ハードウェアノードで実行されるハイパーバイザーは、低レベルネットワークトラフィックトポロジーを管理し、一方、バーチャルトラフィックマネージャーは、高レベルネットワーク処理を管理する。更に、ハイパーバイザーベースのマネージメントコントロールプレーンは、バーチャルクラスターとインターフェイスし、そしてプラグ型変換モジュールを使用するバーチャルトラフィックマネージャーは、ハイパーバイザーベースのマネージメントコントロールプレーン及びバーチャルトラフィックマネージャーの異なるバージョンが通信してネットワークトラフィックを協働で管理できるようにする。【選択図】      図６
2015509631.tif 000002
【特許請求の範囲】
【請求項１】
アクションを遂行するように動作するネットワーク装置でノードのクラスター内の少なくとも１つのハイパーバイザーをアップグレードする方法において、前記アクションは、
アップグレードのための少なくとも１つのハイパーバイザーを決定し、その少なくとも１つのハイパーバイザーは、少なくとも２つのノードに及ぶバーチャルトラフィックマネージャーのバーチャルクラスターに対する少なくとも１つのバーチャルトラフィックマネージャーに対応するものであり、
前記バーチャルクラスターが動作状態に留まる間に、前記少なくとも１つの決定されたハイパーバイザー及び前記少なくとも１つの対応するバーチャルトラフィックマネージャーの動作をデアクチベートし、
前記少なくとも１つのデアクチベートされたハイパーバイザーをアップグレードし、
前記少なくとも１つのアップグレードされたハイパーバイザー、及び前記バーチャルクラスターに対する各々の対応するバーチャルトラフィックマネージャーを再アクチベートする、
ことを含む方法。
【請求項２】
前記少なくとも１つのハイパーバイザーをアップグレードすることは、更に、前記アップグレードされたハイパーバイザーに対する少なくとも１つの変換モジュールをアップグレードすることを含み、その少なくとも１つの変換モジュールは、メッセージ及びデータ構造を、少なくとも１つのハイパーバイザーとそれに対応するバーチャルトラフィックマネージャーとの異なるバージョン間にマップする、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの決定されたハイパーバイザーをデアクチベートすることは、
前記少なくとも１つの対応するバーチャルトラフィックマネージャーへの少なくとも１つの接続をブリードオフし、
前記少なくとも１つの対応するバーチャルトラフィックマネージャーの動作を停止し、及び
前記少なくとも１つの決定されたハイパーバイザーの動作を停止する、
ことを更に含む、請求項１に記載の方法。
【請求項４】
前記ハイパーバイザーでネットワークトラフィックを受け取り、
低レベルネットワークトラフィックの少なくとも一部分を前記ハイパーバイザーで処理し、
高レベルネットワークトラフィックの少なくとも一部分を、前記少なくとも１つのハイパーバイザーに対応する少なくとも１つのバーチャルトラフィックマネージャーへ転送し、及び
前記少なくとも１つのハイパーバイザーに対応する前記少なくとも１つのバーチャルトラフィックマネージャーで前記高レベルネットワークトラフィックの少なくとも一部分を処理する、
ことを更に含む、請求項１に記載の方法。
【請求項５】
前記アップグレードのための少なくとも１つのハイパーバイザーを決定することは、
前記少なくとも１つのハイパーバイザーに対するアップグレードプライオリティスコアを発生し、及び
前記アップグレードプライオリティスコアに基づいて前記アップグレードのための少なくとも１つのハイパーバイザーを決定する、
ことを更に含む、請求項１に記載の方法。
【請求項６】
前記少なくとも１つのアップグレードされたハイパーバイザーは、少なくとも１つのコマンドハイパーバイザーと通信して、コンフィギュレーション情報を得る、請求項１に記載の方法。
【請求項７】
前記ノードのクラスターにおける他のハイパーバイザーごとに請求項１のアクションを遂行することを更に含む、請求項１に記載の方法。
【請求項８】
ノードのクラスター内で少なくとも１つのハイパーバイザーをアップグレードするように動作するネットワーク装置において、
ネットワークを経て通信するように動作するトランシーバと、
少なくともインストラクションを記憶するように動作するメモリと、
アクションを可能にするインストラクションを実行するように動作するプロセッサ装置と、
を備え、前記アクションは、
アップグレードのための少なくとも１つのハイパーバイザーを決定し、その少なくとも１つのハイパーバイザーは、少なくとも２つのノードに及ぶバーチャルトラフィックマネージャーのバーチャルクラスターに対する少なくとも１つのバーチャルトラフィックマネージャーに対応するものであり、
前記バーチャルクラスターが動作状態に留まる間に、前記少なくとも１つの決定されたハイパーバイザー及び前記少なくとも１つの対応するバーチャルトラフィックマネージャーの動作をデアクチベートし、
前記少なくとも１つのデアクチベートされたハイパーバイザーをアップグレードし、及び
前記少なくとも１つのアップグレードされたハイパーバイザー、及び前記バーチャルクラスターに対する各々の対応するバーチャルトラフィックマネージャーを再アクチベートする、
ことを含む、ネットワーク装置。
【請求項９】
前記少なくとも１つのハイパーバイザーをアップグレードすることは、更に、前記アップグレードされたハイパーバイザーに対する少なくとも１つの変換モジュールをアップグレードすることを含み、その少なくとも１つの変換モジュールは、メッセージ及びデータ構造を、少なくとも１つのハイパーバイザーとそれに対応するバーチャルトラフィックマネージャーとの異なるバージョン間にマップする、請求項８に記載のネットワーク装置。
【請求項１０】
前記少なくとも１つの決定されたハイパーバイザーをデアクチベートすることは、
前記少なくとも１つの対応するバーチャルトラフィックマネージャーへの少なくとも１つの接続をブリードオフし、
前記少なくとも１つの対応するバーチャルトラフィックマネージャーの動作を停止し、及び
前記少なくとも１つの決定されたハイパーバイザーの動作を停止する、
ことを更に含む、請求項８に記載のネットワーク装置。
【請求項１１】
前記ハイパーバイザーでネットワークトラフィックを受け取り、
低レベルネットワークトラフィックの少なくとも一部分を前記ハイパーバイザーで処理し、
高レベルネットワークトラフィックの少なくとも一部分を、前記少なくとも１つのハイパーバイザーに対応する少なくとも１つのバーチャルトラフィックマネージャーへ転送し、及び
前記少なくとも１つのハイパーバイザーに対応する前記少なくとも１つのバーチャルトラフィックマネージャーで前記高レベルネットワークトラフィックの少なくとも一部分を処理する、
ことを更に含む、請求項８に記載のネットワーク装置。
【請求項１２】
前記アップグレードのための少なくとも１つのハイパーバイザーを決定することは、
前記少なくとも１つのハイパーバイザーに対するアップグレードプライオリティスコアを発生し、及び
前記アップグレードプライオリティスコアに基づいて前記アップグレードのための少なくとも１つのハイパーバイザーを決定する、
ことを更に含む、請求項８に記載のネットワーク装置。
【請求項１３】
前記少なくとも１つのアップグレードされたハイパーバイザーは、少なくとも１つのコマンドハイパーバイザーと通信して、コンフィギュレーション情報を得る、請求項８に記載のネットワーク装置。
【請求項１４】
前記ノードのクラスターにおける他のハイパーバイザーごとに請求項８のアクションを遂行することを更に含む、請求項８に記載のネットワーク装置。
【請求項１５】
ノードのクラスター内で少なくとも１つのハイパーバイザーをアップグレードするインストラクションを含むプロセッサ読み取り可能な非一時的記憶媒体において、プロセッサ装置によるインストラクションの実行は、
アップグレードのための少なくとも１つのハイパーバイザーを決定し、その少なくとも１つのハイパーバイザーは、少なくとも２つのノードに及ぶバーチャルトラフィックマネージャーのバーチャルクラスターに対する少なくとも１つのバーチャルトラフィックマネージャーに対応するものであり、
前記バーチャルクラスターが動作状態に留まる間に、前記少なくとも１つの決定されたハイパーバイザー及び前記少なくとも１つの対応するバーチャルトラフィックマネージャーの動作をデアクチベートし、
前記少なくとも１つのデアクチベートされたハイパーバイザーをアップグレードし、
前記少なくとも１つのアップグレードされたハイパーバイザー、及び前記バーチャルクラスターに対する各々の対応するバーチャルトラフィックマネージャーを再アクチベートする、
ことを含むアクションを可能にする、記憶媒体。
【請求項１６】
前記少なくとも１つのハイパーバイザーをアップグレードすることは、更に、前記アップグレードされたハイパーバイザーに対する少なくとも１つの変換モジュールをアップグレードすることを含み、その少なくとも１つの変換モジュールは、メッセージ及びデータ構造を、少なくとも１つのハイパーバイザーとそれに対応するバーチャルトラフィックマネージャーとの異なるバージョン間にマップする、請求項１５に記載の媒体。
【請求項１７】
前記少なくとも１つの決定されたハイパーバイザーをデアクチベートすることは、
前記少なくとも１つの対応するバーチャルトラフィックマネージャーへの少なくとも１つの接続をブリードオフし、
前記少なくとも１つの対応するバーチャルトラフィックマネージャーの動作を停止し、及び
前記少なくとも１つの決定されたハイパーバイザーの動作を停止する、
ことを更に含む、請求項１５に記載の媒体。
【請求項１８】
前記ハイパーバイザーでネットワークトラフィックを受け取り、
低レベルネットワークトラフィックの少なくとも一部分を前記ハイパーバイザーで処理し、
高レベルネットワークトラフィックの少なくとも一部分を、前記少なくとも１つのハイパーバイザーに対応する少なくとも１つのバーチャルトラフィックマネージャーへ転送し、及び
前記少なくとも１つのハイパーバイザーに対応する前記少なくとも１つのバーチャルトラフィックマネージャーで前記高レベルネットワークトラフィックの少なくとも一部分を処理する、
ことを更に含む、請求項１５に記載の媒体。
【請求項１９】
前記アップグレードのための少なくとも１つのハイパーバイザーを決定することは、
前記少なくとも１つのハイパーバイザーに対するアップグレードプライオリティスコアを発生し、及び
前記アップグレードプライオリティスコアに基づいて前記アップグレードのための少なくとも１つのハイパーバイザーを決定する、
ことを更に含む、請求項１５に記載の媒体。
【請求項２０】
前記少なくとも１つのアップグレードされたハイパーバイザーは、少なくとも１つのコマンドハイパーバイザーと通信して、コンフィギュレーション情報を得る、請求項１５に記載の媒体。
【請求項２１】
前記ノードのクラスターにおける他のハイパーバイザーごとに請求項１５のアクションを遂行することを更に含む、請求項１５に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照：本出願は、２０１２年１１月７日に出願された“IN SERVICE UPGRADES FOR A HYPERVISOR OR HARDWARE MANAGER HOSTING VIRTUAL TRAFFIC MANAGERS”と題する米国特許出願第１３／６７１，４５０号の優先権を主張し、これは、２０１２年２月２１日に出願された“IN SERVICE UPGRADES FOR A HYPERVISOR OR HARDWARE MANAGER HOSTING VIRTUAL TRAFFIC MANAGERS”と題する米国プロビジョナル特許出願第６１／６０１，５０９号の利益を主張するものであり、その早い方の出願日の利益を３５Ｕ.Ｓ.Ｃ.セクション１１９（ｃ）及び３７Ｃ.Ｆ.Ｒ.セクション１．７８によってここに主張し、そして更に参考としてここに援用する。
【０００２】
本発明は、一般的に、ネットワーク装置に関するもので、より特定すれば、既存の及び新規なネットワークトラフィックへの影響を最小にしつつも、クラスター化されたネットワークトラフィックマネージャーをアップグレードすることに関する。
【背景技術】
【０００３】
インターネットは、取引を行うための主要リソースとして多数の会社がそれに依存するようになったユビキタスネットワークへと進化した。例えば、多数の企業は、インターネット及び同様のネットワークインフラストラクチャーを利用して、重要なアプリケーションを管理し、コンテンツサーバーにアクセスし、組み立て及び生産ラインを自動化し、そして複雑なコントロールシステムを具現化している。更に、多数の個人は、実質上いつでもリソースにアクセスすることを期待する。成功のためにそのようなネットワーク化リソースへのアクセスに対する企業の依存度が増加するにつれて、それらのサービスを提供するシステムの利用性が益々重要になる。
【０００４】
ブレード装置とは、ユーザが個々のカード即ち「ブレード」にサーバー、アプリケーション又は他のコンピューティングリソースをプロビジョニングするのを許すコンピューティング装置コンポーネントの一形式である。これらのブレードは、電源及び冷却ファンのような共有リソースと一緒にシャーシに収容されて、モジュラーアーキテクチャーで高密度システムを生成し、融通性及び拡張性を改善する。ブレードサーバーは、比較的小さな占有面積において複数のサーバーを動作し、ラックの複雑さを低減し、配線を簡単化し、且つエネルギー消費を減少することができる。これらの特徴は、ブレードサーバーを使用して協働コンピューティングクラスターを具現化するのを好都合にする傾向がある。又、ブレードサーバーは、スペースに制約のあるそしてエネルギー意識の高い環境、例えば、データセンター及びインターネットサービスプロバイダー（ＩＳＰ）にしばしば使用されている。
【０００５】
しかしながら、コンピューティング環境においてブレード装置のハードウェア又はソフトウェアをアップグレードすることは、しばしば、困難であり、時間がかかり且つエラーが生じがちなプロセスである。更に、アップグレードを具現化することで、アップグレードされる環境の接続取り扱い及び他のプロセスに負の影響が及ぶ。ブレードサーバーは、クラスターネットワークにおけるメンバーの一例を表わす。しかしながら、他の形式のクラスターベースのネットワーク装置にも、ハードウェア及び／又はソフトウェアアップグレード中に同様の問題がある。又、バーチャル化されたトラフィックマネージャーにおいてハイパーバイザー又は特権のあるハードウェアマネージャーをアップグレードすると、そのハードウェアで実行されている他のバーチャルトラフィックマネージャーインスタンスの動作が停止し得る。これらのバーチャルマシンがアプリケーション配信システムにおける重要なコンポーネントである場合には、アップグレードにより、ユーザのアプリケーションにコストのかかる中断を生じ得る。又、この形式の中断は、各バーチャルマシンに対して責任のある種々の組織にわたってアップグレードを整合するときに組織横断の挑戦を生じさせる。従って、これらの事柄及び他の事柄に関して本発明がなされた。
【０００６】
以下、添付図面を参照して本発明の実施形態を説明するが、これは、余すところのないものでもないし、又、これに限定されるものでもない。特に指示のない限り、種々の図面を通して、同じ部分を同じ参照番号で示す。本発明を良く理解するため、添付図面を参照して以下の詳細な説明を読まれたい。
【図面の簡単な説明】
【０００７】
【図１】ここに述べる実施形態を具現化するための環境の概略図である。
【図２】各ブレードがクラスターメンバーとして動作する複数のブレードサーバーの動作を可能にするためのシャーシの概略図である。
【図３】暗号化機能のためにハードドライブエミュレータ及び加速度計を伴うブレードサーバーの動作を可能にするカードの概略図である。
【図４】クラスターメンバーの別の実施形態としてネットワーク装置を示す。
【図５】実施形態によりハイパーバイザー及びバーチャルトラフィックマネージャーをホストするブレードサーバーのクラスターを示す論理的概略図である。
【図６】実施形態により幾つかのバーチャルトラフィックマネージャーがバーチャルクラスターにおいて動作する状態でハイパーバイザー及びバーチャルトラフィックマネージャーをホストするブレードサーバーのクラスターを示す論理的概略図である。
【図７】実施形態により幾つかのバーチャルトラフィックマネージャーがバーチャルクラスターにおいて動作する状態でハイパーバイザー及びバーチャルトラフィックマネージャーをホストするブレードサーバーのクラスターにおいて１つのブレードサーバーをサービスから除去するところを示す論理的概略図である。
【図８】実施形態により幾つかのバーチャルトラフィックマネージャーがバーチャルクラスターにおいて動作する状態でハイパーバイザー及びバーチャルトラフィックマネージャーをホストするブレードサーバーのクラスターにおいて別のブレードサーバーをサービスから除去するところを示す論理的概略図である。
【図９】実施形態により単一のブレードサーバーが動作するところを示す論理的概略図である。
【図１０】実施形態によりハイパーバイザーをアップグレードするための概略的プロセスの一実施形態を一般的に示すフローチャートである。
【図１１】実施形態によりアップグレードするためのハイパーバイザーノードを決定するのに使用する概略的プロセスの一実施形態を一般的に示すフローチャートである。
【図１２】実施形態により決定されたハイパーバイザーノードをアップグレードするのに使用する概略的プロセスの一実施形態を一般的に示すフローチャートである。
【図１３】実施形態によりネットワークトラフィック管理のための概略的プロセスの一実施形態を一般的に示すフローチャートである。
【発明を実施するための形態】
【０００８】
明細書及び請求の範囲を通じて、特に明確な指示のない限り、次の用語は、ここに明確に関連した意味をもつ。ここで使用する「１つの実施形態では(in one embodiment)」という句は、必ずしも同じ実施形態を指すものではないが、そうであってもよい。更に、ここで使用する「別の実施形態では(in another embodiment)」という句は、必ずしも異なる実施形態を指すものではないが、そうでなくてもよい。従って、以下に述べるように、本発明の種々の実施形態は、本発明の精神又は範囲から逸脱せずに、容易に組み合わせることができる。
【０００９】
更に、ここで使用する「又は(or)」という語は、包括的「オア(or)」演算子であり、特に明確な指示のない限り、「及び／又は(and/or)」という語と同等である。又、「基づく(based on)」という語は、特に明確な指示のない限り、ここに記述しない付加的なファクタに基づくことを許す。更に、明細書全体にわたり、“ａ”“an”及び“the”の意味は、複数の参照を含む。“in”の意味は、“in”及び“on”を含む。
【００１０】
「ブレードサーバー」という語は、単一のシャーシ又はラックにおいて他のブレードサーバー（複数のカード）と典型的にクラスター化される単一のカードにプロビジョニングされるサーバーを指す。又、ブレードサーバーは、時々、高密度、ウルトラ密度又はスーパー密度解決策とも称され、処理が軽く且つ取引が重いアプリケーションにしばしば使用される。各ブレードサーバーは、典型的に、これに限定されないが、ファイル共有、ファイルバーチャル化／ネットワークストレージファイルマネージメント、ウェブページサービング、ネットワークセキュリティマネージメント（例えば、ファイアウオール、認証、クレデンシャルマネージメント）、キャッシング、トランスコーディング、ストリーミングメディア（ビデオ、オーディオ）、ネットワークトラフィックマネージメント（例えば、負荷バランス、フェイルオーバーマネージメント、加速／最適化）、及びバーチャルプライベートネットワークの確立を含む単一タスク又はプロセス専用である。ある実施形態では、ブレードサーバーは、これらタスクの１つ以上の組み合わせを一緒に遂行するように構成されてもよい。
【００１１】
ブレードサーバーは、異なるタスクを遂行できるようにする１つ以上のオペレーティングシステム及び１つ以上のアプリケーションを含む。
【００１２】
「アップグレード」という語は、オペレーティングシステムバージョンアップグレードを含むソフトウェアアップグレードを指すが、（例えば、ソフトウェアライセンス購入アクティビティにより駆動される）インアクティブなソフトウェアコードをイネーブルすることを含む任意の及び他の形式のソフトウェア変更、ソフトウェアを実行するための構成変更（例えば、ホット・フィックス、パッチ、等）、異なる機能を一緒に遂行するための装置の再プログラミング又は再目的、以前のソフトウェアバージョンへのロールバック、或いは装置の通常の動作（例えば、トラフィックマネージメント関連の動作）に割り込む変更、を包含するように広く解釈されねばならず、又、この語は、ハードウェアアップグレードも含むように解釈されねばならない。
【００１３】
ブレードサーバーを比較的小さな占有面積（単一のカード）に密接にパッケージするために、ブレードサーバーは、典型的に、ポータブルコンピューティング装置に使用されるもののような高度に小型化され且つエネルギー効率の良い中央処理ユニット（ＣＰＵ）を使用する。典型的に、（マザーボードの機能に厳密に類似した）個々のブレードサーバーの行は、共通に共有され且つ比較的高速度のバスを経て互いに通信する。ラックマウント型のシャーシでは、規範的なブレードサーバーベースの解決策は、比較的標準的な６脚ラックの境界内で数百のＣＰＵを動作させることができる。
【００１４】
ここで使用される「ハードウェアクラスター」という語は、サービス、リソース、等を一体化するように協働するゆるく結合されたネットワーク装置を指す。このハードウェアクラスターは、ハードウェアクラスターの外部の装置、サービス、リソース、等へのアクセスを与える。ハードウェアクラスターは、他の点では、外部装置にとってネットワーク上の単一エンティティのように見える。ハードウェアクラスター内の各ネットワーク装置は、ハードウェアクラスターのメンバー又はノードとも称される。ハードウェアクラスターのノードは、上述したブレード又はブレードサーバーであるか、或いは図４を参照して以下に述べる他のネットワークイネーブル装置である。
【００１５】
ここで使用される「バーチャルクラスター」という語は、サービス、リソース、等を一体化するように協働するゆるく結合されたバーチャルマシンのクラスターを指す。このバーチャルクラスターは、ハードウェアクラスターの外部の装置、サービス、リソース、等へのアクセスを与える。バーチャルクラスターは、他の点では、外部装置にとってネットワーク上の単一エンティティのように見える。バーチャルクラスター内の各バーチャルマシンは、バーチャルクラスターのメンバー又はノードとも称される。バーチャルクラスターのノードは、同じバーチャルクラスターの一部分であるバーチャルマシン及び／又はバーチャルトラフィックマネージャーである。同じバーチャルクラスターのバーチャルノードは、個別の物理的ブレードサーバー又はネットワークコンピューティング装置においてホストされる。
【００１６】
ここで使用される「バーチャルトラフィックマネージャー」という語は、ハイパーバイザーによって管理されるバーチャルマシンにおいて又はバーチャルマシンとして動作するネットワークトラフィックマネージャーを指す。このバーチャルトラフィックマネージャーは、負荷バランス、アプリケーションアクセスコントロール、セキュアなソケットレイヤの処理、帯域巾整形、等のネットワークトラフィックマネージメントサービスを提供する。バーチャルトラフィックマネージャーは、バーチャルクラスターに関連し、従って、バーチャルクラスターにおけるバーチャルノードとして動作する。
【００１７】
ここで使用される「ハイパーバイザーノード」という語は、１つ以上のバーチャルマシン及び／又はバーチャルトラフィックマネージャーをホストし、管理し又は監督するためのハイパーバイザーを含むハードウェアクラスターのハードウェアノードを指す。種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャーをホストするハイパーバイザーノードは、このハイパーバイザーノードがネットワークトラフィックマネージメントに関与できるようにするマネージメントコントロールプレーンアプリケーション及び／又は他のトラフィックマネージメントモジュールを含む。
【００１８】
以下、本発明の幾つかの観点の基本的な理解を与えるため種々の実施形態を簡単に説明する。この簡単な説明は、広範囲な概略として意図されていない。又、これは、鍵となる又は重要な要素を識別し或いは範囲を定め又は狭めることも意図していない。その目的は、単に、以下に提示される詳細な説明の前文として幾つかの概念を簡単な形態で提示するだけである。
【００１９】
簡単に述べると、種々の実施形態は、バーチャルトラフィックマネージャーの１つ以上のバーチャルクラスターをホストするハードウェアクラスターにおいて動作するハイパーバイザーをアップグレードすることに向けられる。種々の実施形態の少なくとも１つにおいて、バーチャルクラスターは、ハードウェアクラスターにおける複数のコンピューティング装置に及ぶように構成される。種々の実施形態の少なくとも１つにおいて、バーチャルクラスターが複数のハードウェアノードに及ぶようにすることで、バーチャルクラスターは、１つ以上のハードウェアノードがアップグレードされる間に動作状態に保たれる。更に、プロセスを繰り返し、バーチャルクラスターの動作を停止せずに、一度に１つのハードウェアノードで、全ハードウェアクラスターをアップグレードできるようにする。
【００２０】
種々の実施形態の少なくとも１つにおいて、ハイパーバイザーは、バーチャルトラフィックマネージャーのバーチャルクラスターに対するマネージメントコントロールプレーンを含む。種々の実施形態の少なくとも１つにおいて、ハードウェアノードで実行されるハイパーバイザーは、低レベルネットワークトラフィックトポロジー（例えば、オープンシステム相互接続レイヤ１及びレイヤ２）を管理し、一方、バーチャルトラフィックマネージャーは、高レベルネットワーク処理（例えば、ＯＳＩレイヤ３からレイヤ７）を管理する。
【００２１】
種々の実施形態の少なくとも１つにおいて、ハイパーバイザーベースのマネージメントコントロールプレーンは、バーチャルクラスターとインターフェイスし、そしてバーチャルトラフィックマネージャーは、ハイパーバイザー及びバーチャルトラフィックマネージャーのトラフィックマネージメントインターフェイス間にメッセージ及びデータをマップさせることのできるプラグ型変換モジュールを使用する。種々の実施形態の少なくとも１つにおいて、プラグ型変換モジュールは、ハイパーバイザーベースのマネージメントコントロールプレーン及びバーチャルトラフィックマネージャーの異なるバージョンが通信して、ネットワークトラフィックを協働で管理できるようにする。
【００２２】
例示的動作環境
図１は、ここに述べる実施形態が具現化される環境１００の非限定例のコンポーネントを示す。種々の実施形態を具現化するのに全てのコンポーネントが要求されるのではなく、種々の実施形態の精神又は範囲から逸脱せずに、コンポーネントの構成及び形式を変更することができる。図１は、クライアント装置１０６と、ホストサーバー装置１０４と、ローカルエリアネットワーク（ＬＡＮ）１１２と、データセンター１０８との間で通信を行えるようにするネットワーク１０２のようなワイドエリアネットワークを示し、データセンターには、ブレードサーバー１１０のような少なくとも１つのネットワークコンピューティング装置が配備される。スイッチ１１４は、ネットワーク１０２とデータセンター１０８との間を接続し、それらの間で通信を行えるようにする。１つの実施形態では、ブレードサーバー１１０は、１つ以上のハードウェアクラスターのメンバーである。各ハードウェアクラスター１１８は、スイッチ１１４にとって、単一のネットワークアドレスを有する単一のネットワークエンティティのように見える。例えば、各ハードウェアクラスターは、独特のオープンシステム相互接続（ＯＳＩ）レイヤ２（Ｌ２）ネットワークアドレスを有する。又、種々の実施形態の少なくとも１つにおいて、各ブレードサーバーは、バーチャルクラスターへと構成される１つ以上のバーチャルトラフィックマネージャーを管理するためのハイパーバイザーを含む。種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャーを含む１つ以上のバーチャルクラスターが、ブレードサーバー１１０に配備される。
【００２３】
図２は、ブレードサーバーシャーシ２００の非限定例の概略を示す。種々の実施形態を具現化するのに全てのコンポーネントが要求されるのではなく、種々の実施形態の精神又は範囲から逸脱せずに、コンポーネントの構成及び形式を変更することができる。ブレードサーバーシャーシ２００は、メモリ２０４、入力／出力（Ｉ／Ｏ）インターフェイス２０８、ネットワークインターフェイスバス２１０及びブレードサーバーバス２１２と通信するコントローラ２０６を備えている。典型的に、ブレードのハードウェアクラスターは、ブレードサーバーシャーシに配置された全てのブレードを含むが、ハードウェアクラスターは、ブレードサーバーシャーシにおけるブレードのサブセット、又は２つ以上のブレードサーバーシャーシからのブレードを含む。図示されていないが、ブレードサーバーバス２１２は、ブレードサーバー２０２のための複数のスロットを含む。又、ブレードサーバーバス２１２は、これに限定されないが、ＨｙｐｅｒＴｒａｎｓｐｏｒｔTM、ファイバーチャンネル、周辺コンポーネント相互接続（ＰＣＩ）、インテグレート・ドライブ・エレクトロニックス（ＩＤＥ）、インダストリー・スタンダード・アーキテクチャー（ＩＳＡ）、アドバンスト・グラフィック・ポート（ＡＧＰ）、ファイアウオール、小型コンピュータシリアルインターフェイス（ＳＣＳＩ）、ユニバーサルシリアルバス（ＵＳＢ）、ＴｈｕｎｄｅｒｂｏｌｔTM、等を含む多数のバスアーキテクチャーの１つをサポートするように構成される。
【００２４】
図３は、図２のブレードサーバーとして使用できるブレードサーバーカード３００の一実施形態を示す。ここに述べる実施形態を具現化するのに全てのコンポーネントが要求されるのではなく、ここに述べる実施形態の精神又は範囲から逸脱せずに、コンポーネントの構成及び形式を変更することができる。コントローラ３１２が直接バス３０４に結合され、これは、ハードドライブエミュレータ３０８及び加速度計３０６とのデータ及びアドレスの通信を可能にする。種々の実施形態の少なくとも１つにおいて、ほとんど全てのアプリケーションは、コントローラ３１２で遂行される論理的アクションにより比較的迅速にアクセスするためにハードドライブエミュレータ３０８に記憶される。種々の実施形態の少なくとも１つにおいて、直接バス３０４は、これに限定されないが、ＨｙｐｅｒＴｒａｎｓｐｏｒｔTM、ファイバーチャンネル、ＩＤＥ、ＵＳＢ、ＩＳＡ、ＰＣＩ、ＡＧＰ、ＳＣＳＩ、ファイアワイヤ、シリアル、ＴｈｕｎｄｅｒｂｏｌｔTM、等を含むバスアーキテクチャーを使用する。しかしながら、種々の実施形態の少なくとも１つにおいて、加速度計３０６と、コントローラ３１２で動作するアプリケーションと、ハードドライブエミュレータ３０８との間には比較的少量のデータ（しばしば１００バイト以下）しか通信されないので、種々の実施形態の少なくとも１つでは、直接バス３０４と共に比較的低速度のバスアーキテクチャーが使用される。
【００２５】
コントローラ３１２は、直接バス３０４に結合され、そしてそれを経て通信することができる。又、コントローラ３１２は、データ及びアドレスの通信を可能にするブレードサーバーバスインターフェイス３０２にも結合される。種々の実施形態の少なくとも１つにおいて、ブレードサーバーバスインターフェイス３０２は、ブレードサーバーカード３００のための電力を受け取り、ＰＣＩバスとして動作する。更に、発振器３１０がコントローラ３１２、ハードドライブエミュレータ３０８及び加速度計３０６に結合され、直接バス３０４を経て通信されるデータ及びアドレスの同期を可能にする。それに加えて、又はそれとは別に、ブレードサーバーカード３００は、物理的なハードディスクドライブを含む。
【００２６】
又、コントローラ３１２は、これに限定されないが、ＣＰＵ、マイクロコントローラ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジック装置（ＰＬＤ）、特定用途向け集積回路（ＡＳＩＣ）、等を含む多数の形式の装置の１つにおいて設けられる。
【００２７】
上述したように、ハードウェアクラスターメンバー及びハードウェアクラスターアーキテクチャーは、ブレードサーバーアーキテクチャーに対して制約がない。従って、例えば、図４は、ハードウェアクラスターのメンバーとして使用できるネットワーク装置４００の一実施形態の概略図である。種々の実施形態の少なくとも１つにおいて、ネットワーク装置４００は、トラフィックマネージメント装置のようなステートフルなネットワーク装置を含む。ステートフルなネットワーク装置は、ＯＳＩレイヤ４、ＴＣＰ／ＩＰのＴＣＰレイヤ、等の、ネットワークフレームワークのトランスポートレイヤに関する情報を維持する。それに加えて、又はそれとは別に、ネットワーク装置４００は、ＯＳＩレイヤ２、ＯＳＩレイヤ３、等の、データリンク及び／又はネットワークレイヤ情報を維持するステートレスなネットワーク装置を含む。ネットワーク装置４００は、図示されたより多数の又は少数のコンポーネントを含んでもよい。しかしながら、図示されたコンポーネントは、例示的実施形態を開示するのに充分である。ネットワーク装置４００は、同様のシステムにおける図１のブレードサーバー１１０に置き換わるものである。更に、種々の実施形態の少なくとも１つにおいて、ネットワーク装置４００により遂行されるタスク又は機能は、ブレードサーバー１１０により遂行されてもよい（その逆のことも言える）。ネットワーク装置４００は、サーバー、トラフィックマネージメント装置、アプリケーションサーバー、等である。ネットワーク装置４００の少なくとも幾つかのコンポーネントにより遂行されるプロセスの１つの実施形態を、図５から１３を参照して詳細に説明する。
【００２８】
種々の実施形態の少なくとも１つにおいて、ネットワーク装置４００は、１つ以上の処理コアを各々有する少なくとも１つの中央処理ユニット４１２（ＣＰＵ）と、ビデオディスプレイアダプタ４１４と、大量メモリとを備え、それらは、全て、バス４２２を経て互いに通信する。更に、１つ以上のＣＰＵ４１２（及び／又は各ユニット４１２内のコア）がブレードサーバー１１０に置き換わる（それを補足する）。大量メモリは、一般的に、ＲＡＭ４１６、ＲＯＭ４３２、ｂｉｏｓ４１８、及び１つ以上の永久的な大量ストレージ装置、例えば、ハードディスクドライブ４２８、テープドライブ、光学的ドライブ、及び／又はフロッピー(登録商標)ディスクドライブを含む。大量メモリは、ネットワーク装置４００の動作をコントロールするためのオペレーティングシステム４２０を記憶する。又、大量メモリは、バーチャル化コンピューティング環境内で動作するバーチャルマシン（バーチャルゲスト）及びバーチャルトラフィックマネージャーの動作を管理及びコントロールするためのハイパーバイザー４５０も記憶する。
【００２９】
種々の実施形態の少なくとも１つにおいて、ネットワーク装置４００は、ＴＣＰ／ＩＰプロトコルを含む種々の通信プロトコルに使用するように構成された１つ以上のネットワークインターフェイスユニット４１０を経て、スイッチ１１４、ネットワーク１０２又は他の何らかの通信ネットワークとも通信する。ネットワークインターフェイスユニット４１０は、トランシーバ、トランシーバ装置、又はネットワークインターフェイスカード（ＮＩＣ）としても知られており、ネットワーク装置４００は、２つ以上の処理ユニット４１２を備え（又はユニット４１２が２つ以上のコアを有し）、各ユニット４１２（及び／又はコア）は、同じ単一のネットワークインターフェイスユニット４１０、又は複数のユニット４１０を使用する。
【００３０】
図４に示されて説明される大量メモリ４１６、４２６、４２８及び４３２は、マシン読み取り可能なストレージ媒体の例である別の形式のコンピュータ読み取り可能な媒体、即ちコンピュータ読み取り可能な又はプロセッサ読み取り可能なストレージ媒体を示している。コンピュータ読み取り可能なストレージ／マシン読み取り可能なストレージ媒体は、揮発性（一時的）、不揮発性（非一時的）、除去可能、及び除去不能な媒体を含み、これら媒体は、コンピュータ読み取り可能な／マシン実行可能なインストラクション、データ構造、オブジェクト、コンテナ、プログラムモジュール、ソフトウェア、又は他のデータのような情報を記憶するための方法又は技術で具現化され、これら情報は、少なくとも１つの中央処理ユニット（ＣＰＵ）４１２のようなプロセッサにより得られ及び／又は実行され、図１０から１３の規範的プロセス１０００、１１００、１２００及び／又は１３００の１つ以上の部分を含むアクションを遂行する。コンピュータ読み取り可能なストレージ媒体は、例えば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多様性ディスク（ＤＶＤ）、又は他の光学的ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、又は他の磁気ストレージ装置、或いは望ましい情報を記憶するのに使用できる他の媒体を含み、その望ましい情報は、データ及び／又はコンピュータ／マシン実行可能なインストラクションを含み、コンピューティング装置によってアクセスできるものである。
【００３１】
又、大量メモリは、他の形式のプログラムコード及びデータをアプリケーション４５１として記憶し、これは、大量メモリにロードされて、オペレーティングシステム４２０で実行される。アプリケーション４５１は、例えば、ウェブブラウザ、ｅ−メールクライアント／サーバープログラム、ルーティングプログラム、スケジューラ、ウェブサーバー、カレンダー、データベースプログラム、ワードプロセスプログラム、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）プログラム、リアルタイムストリーミングプロトコル（ＲＴＳＰ）プログラム、セキュリティプログラム、及び他の形式のアプリケーションプログラムを含む。又、アプリケーション４５１は、コントロールプロセス（ＣＰ）４５２及びマネージメントコントロールプレーンアプリケーション４５４も含む。
【００３２】
又、ネットワーク装置４００は、ｅ−メールを送信及び受信するためのシンプルメールトランスファープロトコル（ＳＭＴＰ）ハンドラーアプリケーション、ＨＴＴＰ要求を受け取って取り扱うためのＨＴＴＰハンドラーアプリケーション、ＲＴＳＰ要求を受け取って取り扱うためのＲＴＳＰハンドラーアプリケーション、及びセキュアな接続を取り扱うためのＨＴＴＰＳハンドラーアプリケーションも含む。ＨＴＴＰＳハンドラーアプリケーションは、セキュアな形態で外部アプリケーションとの通信を開始する。更に、ネットワーク装置４００は、ＴＬＳ、ＴＴＬＳ、ＥＡＰ、ＳＳＬ、ＩＰＳｅｃ、等を含むセキュアな接続を実質上サポートする。
【００３３】
又、ネットワーク装置４００は、マウス、キーボード、スキャナ、又は図４に示されていない他の入力／出力装置のような外部装置と通信するための入力／出力インターフェイス４２４も備えている。同様に、ネットワーク装置４００は、更に、ＣＤ−ＲＯＭ／ＤＶＤ−ＲＯＭドライブ４２６、ハードディスクドライブ４２８、フラッシュメモリドライブ（図示せず）のような付加的な大量ストレージファシリティを含む。ハードディスクドライブ４２８は、とりわけ、上述した他の大量メモリコンポーネントと同様に、アプリケーションプログラム、データベース、データ、プログラムモジュール、オブジェクト、コンテナ、ソフトウェア、等を記憶するように使用される。
【００３４】
１つの実施形態において、ネットワーク装置４００は、バス４２２に結合された少なくとも１つの特定用途向け集積回路（ＡＳＩＣ）チップ（図示せず）を備えている。ＡＳＩＣチップは、ネットワーク装置４００のアクションの全部又は幾つかを遂行するロジックを含む。例えば、１つの実施形態では、ＡＳＩＣチップは、到来するパケット及び／又は出て行くパケットに対して多数のパケット処理機能を遂行することができる。
【００３５】
１つの実施形態において、ネットワーク装置４００は、更に、ＡＳＩＣチップに代わって又はそれに加えて、１つ以上のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）（図示せず）を備えている。ネットワーク装置４００の多数の機能は、ＡＳＩＣチップ、ＦＰＧＡにより、又はメモリに記憶されたインストラクションと共にＣＰＵ４１２により、又はＡＳＩＣチップ、ＦＰＧＡ及びＣＰＵの組み合わせにより、遂行される。
【００３６】
コントロールプロセス４５２は、ネットワーク装置のハードウェアクラスターに関連したハイパーバイザーのアップグレードを遂行するよう構成されたコンポーネントを含む。コントロールプロセス４５２を使用する実施形態が図５から１３に示されている。
【００３７】
マネージメントコントロールプレーンアプリケーション４５４は、ハードウェア／バーチャルクラスター独自の処理を遂行するためのコンポーネントを含む。例えば、ネットワーク装置４００がブレードサーバーを備えているときに、マネージメントコントロールプレーンアプリケーション４５４は、これに限定されないが、ファイル共有、ウェブページサービング、キャッシング、トランスコーディング、ストリーミングオーディオ、ストリーミングビデオ、負荷バランシング及びフェイルオーバーマネージメント、並びにクラスターアーキテクチャーにより典型的に具現化される他のネットワーク技術を含むプロセスを遂行する。ネットワーク装置４００がサーバーコンピュータを備えているときに、マネージメントコントロールプレーンアプリケーション４５４は、例えば、ファイル及び印刷共有サービスを含む。種々の実施形態の少なくとも１つにおいて、マネージメントコントロールプレーンアプリケーション４５４は、ネットワークトラフィックを処理して、バーチャルクラスターの一部分として動作するバーチャルトラフィックマネージャーへ転送することを含むネットワークトラフィックマネージメントサービスをコントロールする。
【００３８】
ネットワーク装置４００は、コントロールプロセス４５２及びマネージメントコントロールプレーンアプリケーション４５４を含むように示されているが、別の実施形態では、これらのコンポーネントの少なくとも幾つかが含まれずに、任意であり、及び／又は別の又は他のコンポーネントが含まれる。
【００３９】
システムの概略
図５は、ハイパーバイザー及びバーチャルトラフィックをホストするブレードサーバーハードウェアクラスター５００の種々の実施形態の少なくとも１つを示す論理的な概略図である。種々の実施形態の少なくとも１つにおいて、ブレードサーバークラスター５００は、ブレードサーバーシャーシ５０１のような単一のブレードサーバーシャーシに含まれる。別の実施形態では、ブレードサーバークラスター５００は、シャーシとは個別に動作するネットワーク装置及び／又はブレードサーバーを使用して具現化される。種々の実施形態の少なくとも１つにおいて、ブレードサーバークラスター５００は、ブレードサーバー５０２−５０８を含む。更に、ブレードサーバー５０２−５０８の各々は、ハイパーバイザー５１０−５１６のようなハイパーバイザーを含む。種々の実施形態の少なくとも１つにおいて、ハイパーバイザー５１０−５１６は、マネージメントコントロールプレーンアプリケーションを含む。種々の実施形態の少なくとも１つにおいて、図５に示された４つより多数（又は少数）のブレードサーバーが使用されてもよい。
【００４０】
又、種々の実施形態の少なくとも１つにおいて、各ブレードサーバーは、各ハイパーバイザーにより管理される１つ以上のバーチャルマシンを含む。種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャーがブレードサーバーにおいてホストされる。種々の実施形態の少なくとも１つにおいて、ブレードサーバー５０２は、ハイパーバイザー５１０のコントロール及びマネージメントの下で実行されるバーチャルマシン／バーチャルトラフィックマネージャー５１８−５２４をホストする。種々の実施形態の少なくとも１つにおいて、ブレードサーバー５０４−５０８は、各ハイパーバイザー５１２−５１６により管理される１つ以上のバーチャルマシンを同様にホストする。当業者に明らかなように、図５に示された以上（又は以下）のバーチャルマシンがブレードサーバーにおいてホストされ及び／又はハイパーバイザーにより管理されてもよい。
【００４１】
図６は、幾つかのバーチャルトラフィックマネージャーがバーチャルクラスターにおいて動作する状態でハイパーバイザー及びバーチャルトラフィックマネージャーをホストするブレードサーバークラスター６００の種々の実施形態の少なくとも１つを示す論理的な概略図である。種々の実施形態の少なくとも１つにおいて、ブレードサーバークラスター６００は、ブレードサーバーシャーシ６０１のような単一のブレードサーバーシャーシに含まれる。別の実施形態では、ブレードサーバークラスター６００は、シャーシとは個別に動作するネットワーク装置及び／又はブレードサーバーを使用して具現化される。種々の実施形態の少なくとも１つにおいて、ブレードサーバークラスター６００は、ブレードサーバー６０２−６０８を含む。更に、ブレードサーバー６０２−６０８の各々は、ハイパーバイザー６１０−６１６のようなハイパーバイザーを含む。種々の実施形態の少なくとも１つにおいて、ハイパーバイザー６１０−６１６は、マネージメントコントロールプレーンアプリケーションを含む。種々の実施形態の少なくとも１つにおいて、図６に示された４つより多数（又は少数）のブレードサーバーが使用されてもよい。
【００４２】
又、種々の実施形態の少なくとも１つにおいて、各ブレードサーバーは、各ハイパーバイザーにより管理される１つ以上のバーチャルマシンを含む。種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャーがブレードサーバーにホストされる。種々の実施形態の少なくとも１つにおいて、ブレードサーバー６０２−６０８は、各ハイパーバイザー６１２−６１６により管理される１つ以上のバーチャルマシンをホストする。当業者に明らかなように、図６に示された以上（又は以下）のバーチャルマシンがブレードサーバーにホストされ及び／又はハイパーバイザーにより管理されてもよい。
【００４３】
種々の実施形態の少なくとも１つにおいて、ブレードサーバー６０２−６０８にホストされるバーチャルマシン及び／又はバーチャルトラフィックマネージャーは、バーチャルクラスターとして動作するように構成される。種々の実施形態の少なくとも１つにおいて、バーチャルクラスターは、同じ又は個別のブレードサーバーにホストされる１つ以上のバーチャルマシンを含む。更に、種々の実施形態の少なくとも１つにおいて、バーチャルマシン及び／又はバーチャルトラフィックマネージャーは、バーチャルマシンをホストするブレードサーバーにおいて動作するハイパーバイザーにより監督される。
【００４４】
種々の実施形態の少なくとも１つにおいて、バーチャルクラスター６１８は、それが４つのハードウェアノードに及ぶように４つの異なるブレードサーバー（例えば、ブレードサーバー６０２−６０８）にホストされる４つのバーチャルマシン／バーチャルトラフィックマネージャーを含む。種々の実施形態の少なくとも１つにおいて、各バーチャルマシン／バーチャルトラフィックマネージャーは、４つの別々のハイパーバイザー（例えば、ハイパーバイザー６１０−６１６）の１つによって監督される。
【００４５】
同様に、種々の実施形態の少なくとも１つにおいて、バーチャルクラスター６２０は、２つの異なるブレードサーバー（例えば、ブレードサーバー６０２−６０４）にホストされる４つのバーチャルマシン／バーチャルトラフィックマネージャーを含む。又、種々の実施形態の少なくとも１つにおいて、各バーチャルマシン／バーチャルトラフィックマネージャーは、２つの個別のハイパーバイザー（例えば、ハイパーバイザー６１０−６１２）の１つによって監督される。
【００４６】
又、種々の実施形態の少なくとも１つにおいて、バーチャルクラスター６２２は、１つのブレードサーバー（例えば、ブレードサーバー６０２）にホストされた単一のバーチャルマシン／バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも１つにおいて、バーチャルマシン／トラフィックマネージャーは、ハイパーバイザー（例えば、ハイパーバイザー６１０）によって監督される。
【００４７】
種々の実施形態の少なくとも１つにおいて、バーチャルクラスター６２４は、それが２つのハードウェアノードに及ぶように２つの異なるブレードサーバー（例えば、ブレードサーバー６０６−６０８）にホストされる２つのバーチャルマシン／バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも１つにおいて、各バーチャルマシン／バーチャルトラフィックマネージャーは、２つの別々のハイパーバイザー（例えば、ハイパーバイザー６１４−６１６）の１つによって監督される。
【００４８】
種々の実施形態の少なくとも１つにおいて、バーチャルクラスター６２６は、それが３つのハードウェアノードに及ぶように３つの異なるブレードサーバー（例えば、ブレードサーバー６０４−６０８）にホストされる３つのバーチャルマシン／バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも１つにおいて、各バーチャルマシン／バーチャルトラフィックマネージャーは、３つの別々のハイパーバイザー（例えば、ハイパーバイザー６１２−６１６）の１つによって監督される。
【００４９】
図７は、アップグレードのためにブレードサーバー７０８をサービスから除去したブレードサーバークラスター７００の種々の実施形態の少なくとも１つを示す論理的概略図である。種々の実施形態の少なくとも１つにおいて、ブレードサーバークラスター７００は、ブレードサーバーシャーシ７０１のような単一のブレードサーバーシャーシに含まれる。別の実施形態では、ブレードサーバークラスター７００は、シャーシとは個別に動作するネットワーク装置及び／又はブレードサーバーを使用して具現化される。種々の実施形態の少なくとも１つにおいて、ブレードサーバークラスター７００は、ブレードサーバー７０２−７０８を含む。更に、アクティブなブレードサーバー７０２−７０６の各々は、ハイパーバイザー７１０−７１４のようなハイパーバイザーを含む。種々の実施形態の少なくとも１つにおいて、ハイパーバイザー７１０−７１４は、マネージメントコントロールプレーンアプリケーションを含む。種々の実施形態の少なくとも１つにおいて、図７に示された４つより多数（又は少数）のブレードサーバーが使用されてもよい。
【００５０】
又、種々の実施形態の少なくとも１つにおいて、各ブレードサーバーは、各ハイパーバイザーにより管理される１つ以上のバーチャルマシンを含む。種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャーがブレードサーバーにホストされる。種々の実施形態の少なくとも１つにおいて、ブレードサーバー７０２−７０６は、各ハイパーバイザー７１０−７１４により管理される１つ以上のバーチャルマシンをホストする。当業者に明らかなように、図７に示された以上（又は以下）のバーチャルマシンがブレードサーバーにホストされ及び／又はハイパーバイザーにより管理されてもよい。
【００５１】
種々の実施形態の少なくとも１つにおいて、ブレードサーバー７０２−７０８にホストされるバーチャルマシン及び／又はバーチャルトラフィックマネージャーは、バーチャルクラスターとして動作するように構成される。種々の実施形態の少なくとも１つにおいて、バーチャルクラスターは、同じ又は個別のブレードサーバーにホストされる１つ以上のバーチャルマシンを含む。更に、種々の実施形態の少なくとも１つにおいて、バーチャルマシン及び／又はバーチャルトラフィックマネージャーは、バーチャルマシンをホストするブレードサーバーにおいて動作するハイパーバイザーにより監督される。
【００５２】
種々の実施形態の少なくとも１つにおいて、バーチャルクラスター７１６は、４つの異なるブレードサーバー（例えば、ブレードサーバー７０２−７０８）にホストされる４つのバーチャルマシン／バーチャルトラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー７０８は、（例えば、アップグレードプロセスの一部分として）サービスから撤退されているので、バーチャルクラスター７１６の３つのバーチャルマシン／バーチャルトラフィックマネージャーが動作している。そして、種々の実施形態の少なくとも１つにおいて、各々の動作しているバーチャルマシン／バーチャルトラフィックマネージャーは、３つの個別のハイパーバイザー（例えば、ハイパーバイザー７１０−７１４）の１つにより監督される。
【００５３】
同様に、種々の実施形態の少なくとも１つにおいて、バーチャルクラスター７１８は、２つの異なるブレードサーバー（例えば、ブレードサーバー７０２−７０４）にホストされる４つのバーチャルマシン／バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも１つにおいて、各バーチャルマシン／バーチャルトラフィックマネージャーは、２つの個別のハイパーバイザー（例えば、ハイパーバイザー７１０−７１２）の１つにより監督される。
【００５４】
又、種々の実施形態の少なくとも１つにおいて、バーチャルクラスター７２０は、１つのブレードサーバー（例えば、ブレードサーバー７０２）にホストされる１つのバーチャルマシン／バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも１つにおいて、バーチャルマシン／バーチャルトラフィックマネージャーは、ハイパーバイザー（例えば、ハイパーバイザー７１０）により監督される。
【００５５】
種々の実施形態の少なくとも１つにおいて、バーチャルクラスター７２２は、２つの異なるブレードサーバー（例えば、ブレードサーバー７０６−７０８）にホストされる２つのバーチャルマシン／バーチャルトラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー７０８は、（例えば、アップグレードプロセスの一部分として）サービスから撤退されているので、バーチャルクラスター７２２の１つのバーチャルマシン／バーチャルトラフィックマネージャーが動作している。そして、種々の実施形態の少なくとも１つにおいて、動作しているバーチャルマシン／バーチャルトラフィックマネージャーは、ハイパーバイザー７１４により監督される。
【００５６】
種々の実施形態の少なくとも１つにおいて、バーチャルクラスター７２４は、３つの異なるブレードサーバー（例えば、ブレードサーバー７０４−７０８）にホストされる３つのバーチャルマシン／バーチャルトラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー７０８は、（例えば、アップグレードプロセスの一部分として）サービスから撤退されているので、バーチャルクラスター７２４の２つのバーチャルマシン／バーチャルトラフィックマネージャーが動作している。そして、種々の実施形態の少なくとも１つにおいて、各バーチャルマシン／バーチャルトラフィックマネージャーは、２つの個別のハイパーバイザー（例えば、ハイパーバイザー７１２−７１４）の１つによって監督される。
【００５７】
図８は、アップグレードのためにブレードサーバー８０６をサービスから除去したブレードサーバークラスター８００の種々の実施形態の少なくとも１つを示す論理的概略図である。種々の実施形態の少なくとも１つにおいて、ブレードサーバークラスター８００は、ブレードサーバーシャーシ８０１のような単一のブレードサーバーシャーシに含まれる。別の実施形態では、ブレードサーバークラスター８００は、シャーシとは個別に動作するネットワーク装置及び／又はブレードサーバーを使用して具現化される。種々の実施形態の少なくとも１つにおいて、ブレードサーバークラスター８００は、ブレードサーバー８０２−８０８を含む。更に、アクティブなブレードサーバー８０２、８０４及び８０８の各々は、ハイパーバイザー８１０−８１４のようなハイパーバイザーを含む。種々の実施形態の少なくとも１つにおいて、ハイパーバイザー８１０−８１４は、マネージメントコントロールプレーンアプリケーションを含む。種々の実施形態の少なくとも１つにおいて、図８に示された４つより多数（又は少数）のブレードサーバーが使用されてもよい。
【００５８】
又、種々の実施形態の少なくとも１つにおいて、各ブレードサーバーは、各ハイパーバイザーにより管理される１つ以上のバーチャルマシンを含む。種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャーがブレードサーバーにホストされる。種々の実施形態の少なくとも１つにおいて、ブレードサーバー８０２、８０４及び８０８は、各ハイパーバイザー８１０−８１４により管理される１つ以上のバーチャルマシンをホストする。当業者に明らかなように、図８に示された以上（又は以下）のバーチャルマシンがブレードサーバーにホストされ及び／又はハイパーバイザーにより管理されてもよい。
【００５９】
種々の実施形態の少なくとも１つにおいて、ブレードサーバー８０２−８０８にホストされるバーチャルマシン及び／又はバーチャルトラフィックマネージャーは、バーチャルクラスターとして動作するように構成される。種々の実施形態の少なくとも１つにおいて、バーチャルクラスターは、同じ又は個別のブレードサーバーにホストされる１つ以上のバーチャルマシンを含む。更に、種々の実施形態の少なくとも１つにおいて、バーチャルマシン及び／又はバーチャルトラフィックマネージャーは、バーチャルマシンをホストするブレードサーバーにおいて動作するハイパーバイザーにより監督される。
【００６０】
種々の実施形態の少なくとも１つにおいて、バーチャルクラスター８１６は、４つの異なるブレードサーバー（例えば、ブレードサーバー８０２−８０８）にホストされる４つのバーチャルマシン／トラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー８０６は、（例えば、アップグレードプロセスの一部分として）サービスから撤退しているので、バーチャルクラスター８１６の３つのバーチャルマシン／トラフィックマネージャーが動作している。そして、種々の実施形態の少なくとも１つにおいて、各々の動作しているバーチャルマシン／バーチャルトラフィックマネージャーは、３つの個別のハイパーバイザー（例えば、ハイパーバイザー８１０−８１４）の１つにより監督される。
【００６１】
同様に、種々の実施形態の少なくとも１つにおいて、バーチャルクラスター８１８は、２つの異なるブレードサーバー（例えば、ブレードサーバー８０２−８０４）にホストされる４つのバーチャルマシン／バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも１つにおいて、各バーチャルマシン／バーチャルトラフィックマネージャーは、２つの個別のハイパーバイザー（例えば、ハイパーバイザー８１０−８１２）の１つにより監督される。
【００６２】
又、種々の実施形態の少なくとも１つにおいて、バーチャルクラスター８２０は、１つのブレードサーバー（例えば、ブレードサーバー８０２）にホストされる１つのバーチャルマシン／バーチャルトラフィックマネージャーを含む。そして、種々の実施形態の少なくとも１つにおいて、バーチャルマシン／バーチャルトラフィックマネージャーは、ハイパーバイザー（例えば、ハイパーバイザー８１０）により監督される。
【００６３】
種々の実施形態の少なくとも１つにおいて、バーチャルクラスター８２２は、２つの異なるブレードサーバー（例えば、ブレードサーバー８０６−８０８）にホストされる２つのバーチャルマシン／バーチャルトラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー８０６は、（例えば、アップグレードプロセスの一部分として）サービスから撤退されているので、バーチャルクラスター８２２の１つのバーチャルマシン／バーチャルトラフィックマネージャーが動作している。そして、種々の実施形態の少なくとも１つにおいて、動作しているバーチャルマシン／バーチャルトラフィックマネージャーは、ハイパーバイザー８１４により監督される。
【００６４】
種々の実施形態の少なくとも１つにおいて、バーチャルクラスター８２４は、３つの異なるブレードサーバー（例えば、ブレードサーバー８０４−８０８）にホストされる３つのバーチャルマシン／バーチャルトラフィックマネージャーを一度に含む。しかしながら、ブレードサーバー８０６は、（例えば、アップグレードプロセスの一部分として）サービスから撤退されているので、バーチャルクラスター８２４の２つのバーチャルマシン／バーチャルトラフィックマネージャーが動作し、その１つは、ブレードサーバー８０４にホストされ、そしてもう１つは、ブレードサーバー８０８にホストされる。そして、種々の実施形態の少なくとも１つにおいて、各バーチャルマシン／バーチャルトラフィックマネージャーは、２つの個別のハイパーバイザー（例えば、ハイパーバイザー８１２−８１４）の１つによって監督される。
【００６５】
図６−８は、種々の実施形態の少なくとも１つにおいて、ハードウェアクラスターのハイパーバイザーをアップグレードできるようにするためにバーチャルトラフィックマネージャーのバーチャルクラスターをどのように構成するか示す。種々の実施形態の少なくとも１つにおいて、バーチャルクラスターが複数のハイパーバイザーノードに及ぶ場合には、バーチャルクラスターを停止せずに、１つ以上のハイパーバイザーノードがダウンされそしてアップグレードされる。種々の実施形態の少なくとも１つにおいて、これは、ハードウェアクラスターの外部のクライアントがアップグレードプロセス中に動作を継続しそしてバーチャルクラスターからサービスを受けられるように、ハイパーバイザーノードのアップグレードを実行できるようにする。
【００６６】
図９は、種々の実施形態の少なくとも１つについて、ネットワークトラフィックマネージャーとして動作するように構成されたブレードサーバー９００を示す論理的概略図である。種々の実施形態の少なくとも１つにおいて、ブレードサーバー９０２は、ハイパーバイザー９０６を含むように構成される。ハイパーバイザー９０６は、バーチャル化プラットホームホスト環境９０４を管理し及び／又は監督する。又、種々の実施形態の少なくとも１つにおいて、バーチャル化プラットホームホスト環境９０４は、バーチャルトラフィックマネージャー９１２のような１つ以上のバーチャルマシンを含む。又、種々の実施形態の少なくとも１つにおいて、ハイパーバイザー９０６は、変換モジュール９０８を含む。又、種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャー９１２は、変換モジュール９１４を含む。
【００６７】
種々の実施形態の少なくとも１つにおいて、ハイパーバイザー９０６とバーチャルトラフィックマネージャー９１２との間の通信９１０は、変換モジュール９０８及び変換モジュール９１４を通過した後に、各基礎的なコンポーネント（例えば、ハイパーバイザー９０６及びバーチャルトラフィックマネージャー９１２）に到達する。種々の実施形態の少なくとも１つにおいて、ハイパーバイザー９０６は、スイッチ９１６へ及びスイッチ９１６からネットワークトラフィックを送信し及び受信する。スイッチ９１６から、ネットワークトラフィックは、ネットワーク９１８のような１つ以上の内部又は外部ネットワークに到達する。
【００６８】
種々の実施形態の少なくとも１つにおいて、ハイパーバイザー９０６は、スイッチ９１６からネットワークトラフィックを受信し、そしてその受信したネットワークトラフィックのＯＳＩレイヤ１及びレイヤ２を処理する。ネットワークトラフィックのレイヤ１及びレイヤ２がハイパーバイザーにより処理される場合には、ネットワークトラフィックのレイヤ３からレイヤ７が１つ以上のバーチャルトラフィックマネージャー９１２へ転送される。ハイパーバイザー９０６及びバーチャルトラフィックマネージャー９１２は、それらの各変換モジュール（例えば、ハイパーバイザーの変換モジュール９０８及びバーチャルトラフィックマネージャーの変換モジュール９１４）を使用することによりレイヤ３からレイヤ７のネットワークトラフィックの転送を整合させる。
【００６９】
変換モジュール９０８及び９１４は、ハイパーバイザー又はバーチャルトラフィックマネージャーとは独立して更新され及び／又はアップグレードされるプラグ型モジュールである。種々の実施形態の少なくとも１つにおいて、変換モジュールは、メッセージ、ＡＰＩ、データ構造、等をハイパーバイザー又はバーチャルトラフィックマネージャーの異なるバージョン間にマップさせることができる。更に、種々の実施形態の少なくとも１つにおいて、変換モジュールは、１つ以上のバージョンマッピングをサポートする。種々の実施形態の少なくとも１つにおいて、ハイパーバイザー及びバーチャルトラフィックマネージャーがネットワークトラフィックを通信し及び／又は転送する場合には、通信の両側がネゴシエーションプロセスに参加して、それらの各変換モジュールによりサポートされる適合可能なバージョンマッピングを識別する。
【００７０】
種々の実施形態の少なくとも１つにおいて、アップグレードプロセス中に、ハイパーバイザーの異なるバージョンを協働して動作することが要求される。ハイパーバイザーの異なるバージョン及び／又はマネージメントコントロールプレーンアプリケーションの異なるバージョンを受け入れるため、ハイパーバイザーは、変換モジュールを使用して、他のハイパーバイザーと通信する。従って、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーの変換モジュール（例えば、変換モジュール９０８）は、ハイパーバイザーの異なるバージョンを通信できるように構成される。種々の実施形態の少なくとも１つにおいて、変換モジュール９０８は、メッセージ、パラメータ、データ構造、等をハイパーバイザーの異なるバージョン間にマップさせるように構成される。
【００７１】
一般的な動作
図１０は、バーチャルトラフィックマネージャー及び／又はバーチャルトラフィックマネージャーのバーチャルクラスターを監督するハイパーバイザーをアップグレードするための概略プロセス１０００の一実施形態を示すフローチャートである。スタートブロックの後に、プロセスは、ブロック１００２へ進み、アップグレードのターゲットであるハイパーバイザーノードが決定される。種々の実施形態の少なくとも１つにおいて、アップグレードのためのハイパーバイザーノードの決定は、ハイパーバイザーノードをアップグレードすべきかどうか決定するための現在動作条件を監視する１つ以上のコンピュータプロセスにより自動化される。
【００７２】
種々の実施形態の少なくとも１つにおいて、中央コマンドノードで監視プロセスが動作されて、個々のハイパーバイザーにアップグレードプロセスを開始するように指令する。種々の実施形態の少なくとも１つにおいて、個々のハイパーバイザーは、条件を監視し、アップグレードが要求されるという決定を独自に行う。又、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーは、アップグレードが要求されるかどうか協働して決定し、そしてもしそうであれば、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーのプロセスでアップグレードのためのハイパーバイザーノードを協働して決定する。或いは、種々の実施形態の少なくとも１つにおいて、ネットワークアドミニストレータのような許可されたユーザがユーザインターフェイスを動作して、アップグレードのターゲットであるハイパーバイザーノードを識別する。
【００７３】
種々の実施形態の少なくとも１つにおいて、アップグレードを含む特定のソフトウェアが自動的に決定されるか又はシステムアドミニストレータ（ユーザ）により決定される。種々の実施形態の少なくとも１つにおいて、マネージメントコントロールプレーンアプリケーション及び／又はハイパーバイザーによりアクセス可能な既知の位置に候補アップグレードパッケージが記憶される。種々の実施形態の少なくとも１つにおいて、アップグレードパッケージに含まれたソフトウェアのバージョンを合併するネーミングプロトコルを使用してアップグレードパッケージに名前が付けられる。種々の実施形態の少なくとも１つにおいて、アップグレードパッケージは、良く知られたフォーマットを使用し、そして種々のモニタリングプロセス及びユーザがアップグレードパッケージを識別してそのアップグレードパッケージのコンテンツ及び／又は関連性を決定できるようにするメタデータをアップグレードパッケージ内に含む。
【００７４】
次いで、ブロック１００４において、決定されたハイパーバイザーノードがアップグレードされる。種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードにより与えられるトラフィックマネージメントサービスの中断を最小にするために、ハイパーバイザーノードをアップグレードするには、多数のステップが必要である。種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャーを含めて、ハイパーバイザーにホストされる１つ以上のバーチャルマシンは、アップグレードステップ中に停止及び／又は終了を要求する。
【００７５】
種々の実施形態の少なくとも１つにおいて、アップグレードされているハイパーバイザーノードにゲストとして実行される１つ以上のバーチャルマシンを有するバーチャルクラスターは、バーチャルクラスターの他のメンバーが他のハイパーバイザーによりホストされる場合に動作状態を保つ。
【００７６】
ブロック１００６では、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードは、その特定のハイパーバイザーノードのアップグレードプロセスが完了である場合にネットワークトラフィックマネージメントサービスの遂行を再開する。種々の実施形態の少なくとも１つにおいて、ハイパーバイザーがバーチャルクラスターのメンバーであるバーチャルマシン（例えば、ゲストインスタンス）をホストする場合に、それらのバーチャルマシンは、それらのバーチャルクラスターに再参加する。
【００７７】
種々の実施形態の少なくとも１つにおいて、複数のハイパーバイザーノードは、ハードウェアクラスターの一部分として協働する。種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードは、１つ以上のブレードシャーシに据え付けられるブレードサーバーベースのハードウェアクラスターに配置される。或いは又、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードは、個別のネットワーク装置より成るハードウェアクラスターにおいて動作する。又は、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードは、ブレードサーバー及び他のネットワーク装置より成るハードウェアクラスターにおいて動作する。多くの場合、全てのハイパーバイザーノードを同じソフトウェアバージョン及び／又はアップグレードパッケージに対してアップグレードするのが好都合である。それ故、種々の実施形態の少なくとも１つにおいて、アップグレードプロセスは、複数のハイパーバイザーノードをアップグレードするように構成される。
【００７８】
判断ブロック１００８では、種々の実施形態の少なくとも１つにおいて、より多くのハイパーバイザーノードがアップグレードを要求する場合に、コントロールは、ブロック１００２へループバックする。さもなければ、種々の実施形態の少なくとも１つにおいて、コントロールは、呼び出し側プロセスに復帰する。
【００７９】
図１１は、アップグレードのターゲットであるハイパーバイザーノードを決定するのに使用するプロセス１１００の一実施形態を一般的に示すフローチャートである。開始ブロック後の判断ブロック１１０２において、ハイパーバイザーのアップグレードプロセスが自動的に行われるように構成されている場合には、プロセス１１００のコントロールがブロック１１０４へ進む。種々の実施形態の少なくとも１つにおいて、プロセス１１００は、コンフィギュレーションファイルやデータベースに記憶され又は外部プロセス／ユーザインターフェイスから通されるコンフィギュレーション値、等に基づいて、アップグレードプロセスが自動的に動作するかどうか決定する。
【００８０】
ブロック１１０４において、ハイパーバイザーノードのアップグレードが要求されるかどうか決定される。種々の実施形態の少なくとも１つにおいて、アップグレードの決定は、現在動作条件の分析及びアップグレードパッケージの利用性に基づく。種々の実施形態の少なくとも１つにおいて、アップグレードの決定に影響する現在動作条件は、年齢及び／又はインストールされたソフトウェアのバージョン、利用可能なアップグレードパッケージの重要性、処理されるネットワークトラフィックの量、処理されるネットワークトラフィックの形式、アクティブな接続の数、接続及び／又はネットワークセッションの平均期間、検出されるエラーの率、等を含む。
【００８１】
判断ブロック１１０６では、種々の実施形態の少なくとも１つにおいて、自動化プロセスでアップグレードが要求されると決定されると、プロセス１１００のコントロールは、ブロック１１０８へ進む。さもなければ、コントロールは、呼び出し側プロセスへ復帰する。
【００８２】
ブロック１１０８では、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードごとにアップグレードプライオリティスコアが発生される。種々の実施形態の少なくとも１つにおいて、これは、ハードウェアクラスターにおけるハイパーバイザーノードごとにプライオリティスコアを発生する１つ以上のアルゴリズムの実行を要求する。種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードは、それらがいつクラスターに加わるか、ハイパーバイザーノードで実行されるソフトウェアのバージョン、名前又は識別子分類順序、ネットワークアドレス、システムアドミニストレータによる指定、等を含む種々のファクタに基づいてプライオリティスコアを受け取る。種々の実施形態の少なくとも１つにおいて、プライオリティスコアは、必要に応じて記憶され及び検索される。更に、種々の実施形態の少なくとも１つにおいて、プライオリティスコアは、各ハイパーバイザーノードに数字識別子を指定することにより発生される。
【００８３】
又、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードのプライオリティスコアは、関連するハードウェアクラスター内でハイパーバイザーノードが遂行する役割によって影響される。例えば、ある構成において、ハイパーバイザーノードのハードウェアクラスターは、指定のコマンドハイパーバイザーノードを有する。種々の実施形態の少なくとも１つにおいて、コマンドハイパーバイザーノードは、スパニングツリープロトコルのようなコマンドノードを本来要求するネットワークトラフィックマネージメントプロトコルを受け入れるために要求される。他のケースでは、種々の実施形態の少なくとも１つにおいて、コマンドハイパーバイザーノードは、ハイパーバイザーノードハードウェアクラスターの管理を促進するために指定される。例えば、種々の実施形態の少なくとも１つにおいて、コマンドハイパーバイザーノードは、ハードウェアクラスターに含まれるハイパーバイザーノード、バーチャルクラスター、バーチャルトラフィックマネージャー、等を動作し及びコンフィギュレーションするためのコマンドユーザインターフェイスをホストするように構成される。従って、種々の実施形態の少なくとも１つにおいて、クラスターの動作は、クラスター内の他のハイパーバイザーノードがアップグレードされるまでコマンドハイパーバイザーノードのアップグレードを遅延することにより減少される。それ故、種々の実施形態の少なくとも１つにおいて、コマンドハイパーバイザーノードは、そのコマンドハイパーバイザーノードがアップグレードされるべきハードウェアクラスターにおいて最後のハイパーバイザーとなるよう保証するアップグレードプライオリティスコアが指定される。
【００８４】
次いで、ブロック１１１０において、プロセス１１００は、アップグレードプライオリティスコアに基づいてハイパーバイザーノードを選択する。ブロック１１１２において、プロセス１１００は、その選択されたハイパーバイザーノードを呼び出し側プロセスへ報告する。
【００８５】
種々の実施形態の少なくとも１つにおいて、アップグレードのためにハイパーバイザーノードが選択されたとの報告で、アップグレードプロセスの残りのステップが開始される。又、種々の実施形態の少なくとも１つにおいて、アップグレードのためのハイパーバイザーノードの報告は、実際のアップグレードをトリガーせずにプロセスにより受け取られる。種々の実施形態の少なくとも１つにおいて、アップグレードのために選択されるハイパーバイザーノードのアイデンティティは、システムアドミニストレータへ報告される。従って、種々の実施形態の少なくとも１つにおいて、システムアドミニストレータは、アップグレードプロセスを続けるべきか及び／又は完了すべきかについて最終的な決定をなす。
【００８６】
ブロック１１１４において、プロセス１１００は、アップグレードのためのハイパーバイザーノードを決定するためにユーザにより供給されるコマンドを受け取って処理する。判断ブロック１１１６において、ハイパーバイザーをアップグレードするコマンドが受け取られた場合には、プロセス１１００のコントロールは、ブロック１１１２へ進む。さもなければ、コントロールは、呼び出し側プロセスへ復帰する。種々の実施形態の少なくとも１つにおいて、モニタリングアプリケーション、ＳＮＭＰトラップ、等の許可された第三者プロセスによりコマンドが提出される。
【００８７】
図１２は、ハイパーバイザーノードをアップグレードするプロセス１２００の一実施形態を一般的に示すフローチャートである。開始ブロック後のブロック１２０２では、種々の実施形態の少なくとも１つにおいて、アップグレードのターゲットであるハイパーバイザーノードにホストされるバーチャルトラフィックマネージャーに関連したネットワーク接続がブリードオフされる。種々の実施形態の少なくとも１つにおいて、接続は、現在ネットワークセッションの終了を待機することによりブリードオフされる一方、アップグレードのターゲットであるハイパーバイザーノードにホストされるバーチャルトラフィックマネージャーに新たな接続が関連されるのを防止する。種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードのアップグレードにより影響される接続の接続状態をハイパーバイザーノードのアップグレードにより影響されない他のトラフィックマネージャーへ能動的に転送するような、より積極的なブリードオフ技術が使用される。種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャーがバーチャルクラスターの一部分である場合には、アップグレードのターゲットであるハイパーバイザーノードにホストされるバーチャルクラスターのメンバーは、アップグレードを受けるハイパーバイザーノードに向けられるネットワーク接続を処理し続ける。ここに述べるものを越える付加的なブリードオフ技術も適用できる。
【００８８】
種々の実施形態の少なくとも１つにおいて、ブリードオフ接続は、ＯＳＩレイヤ１及びレイヤ２ネットワークトラフィックを、アップグレードのターゲットであるハイパーバイザーノード以外のハイパーバイザーノードに向けることも伴う。
【００８９】
ブロック１２０４では、種々の実施形態の少なくとも１つにおいて、アップグレードのターゲットであるハイパーバイザーノードにホストされるバーチャルトラフィックマネージャー及び他のバーチャルマシンの動作が停止される。種々の実施形態の少なくとも１つにおいて、バーチャルクラスターのメンバーであるバーチャルトラフィックマネージャーには、その停止されたバーチャルトラフィックマネージャーがネットワークトラフィックの処理に利用できないことが通知される。種々の実施形態の少なくとも１つにおいて、その停止されたバーチャルトラフィックマネージャーは、他のバーチャルクラスターメンバーには、ディスエイブルされたように見える。種々の実施形態の少なくとも１つにおいて、バーチャルクラスターにより受け取られるネットワークトラフィックは、そのバーチャルクラスターにおける残りの動作中のバーチャルトラフィックマネージャーにより管理される。
【００９０】
ブロック１２０６では、種々の実施形態の少なくとも１つにおいて、ターゲットであるハイパーバイザーノードで実行される残りのプロセスは、アップグレードプロセスのために必要に応じて停止される。種々の実施形態の少なくとも１つにおいて、それらは、アップグレードプロセスに応答してハイパーバイザーノードで実行されるプロセスである。種々の実施形態の少なくとも１つにおいて、停止を要求する特定のプロセスは、アップグレードの範囲及び目的に依存する。種々の実施形態の少なくとも１つにおいて、アップグレードパッケージは、アップグレードの継続を停止又は遮断することが要求されるプロセスのリストを含む。
【００９１】
ブロック１２０８では、種々の実施形態の少なくとも１つにおいて、アップグレードパッケージがインストールされる。又、アップグレードが新規ハードウェア又は交換ハードウェアのインストールを要求する場合には、ユーザは、全てのプロセスが停止される間にハードウェアをインストールすることができる。
【００９２】
ブロック１２１０では、種々の実施形態の少なくとも１つにおいて、アップグレードを含むソフトウェア及び／又はハードウェアがハイパーバイザーノードにインストールされた後に、ハイパーバイザーノードが必要に応じて再スタート及び／又は再ブートされる。種々の実施形態の少なくとも１つにおいて、あるアップグレードは、ハイパーバイザーノードの再ブートも再スタートも要求しない。
【００９３】
ブロック１２１２では、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードは、必要な変換モジュールを識別し、コンフィギュレーションし、及び／又はインストールする。種々の実施形態の少なくとも１つにおいて、アップグレードされたハイパーバイザーノードは、コマンドハイパーバイザーノードと通信して、ハイパーバイザーノードがハイパーバイザークラスターの他のノードに加わり及び／又はそれと協働するのに必要なコンフィギュレーション情報を得る。
【００９４】
種々の実施形態の少なくとも１つにおいて、アップグレードされたハイパーバイザーノードと、ハードウェアクラスターの他のハイパーバイザーノードとの間で交換される情報は、他のハイパーバイザーが異なるＡＰＩ及び／又はデータスキームを要求するソフトウェアの異なるバージョンを実行する場合には、変換モジュールにより変更される。アップグレードされたハイパーバイザーノードがクラスターに再参加するためにコンフィギュレーションされ構成される場合には、コントロールがブロック１２１４へ進む。
【００９５】
ブロック１２１４では、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードは、アップグレードプロセスの一部分として停止されたバーチャルトラフィックマネージャー及び／又はバーチャルマシンを再スタートし及び／又は再アクチベートする。更に、種々の実施形態の少なくとも１つにおいて、マネージメントコントロールプレーンアプリケーションは、コントロール及び／又はコンフィギュレーション情報を、ホストされたバーチャルトラフィックマネージャーへ通信して、それらがアップグレードに基づく適応をとれるようにする。
【００９６】
種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャーがバーチャルクラスターの一部分として構成される場合には、バーチャルトラフィックマネージャーは、バーチャルクラスターに再び加わり、そしてバーチャルクラスターの一部分としてネットワークトラフィックの処理を開始する。次いで、コントロールは、呼び出し側プロセスへ復帰する。
【００９７】
図１３は、ハイパーバイザー及びバーチャルトラフィックマネージャーを使用するネットワークトラフィックの管理に使用するためのプロセス１３００の一実施形態を一般的に示すフローチャートである。開始ブロックの後に、プロセス１３００は、ブロック１３０２へ進み、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーノードは、ネットワークトラフィックを受け取る。
【００９８】
ブロック１３０４において、ＯＳＩレイヤ１及びレイヤ２のネットワークトラフィックがハイパーバイザーにより処理される。種々の実施形態の少なくとも１つにおいて、ハイパーバイザーは、トラフィック管理のためにマネージメントコントロールプレーンを具現化する特殊なモジュールを有する。種々の実施形態の少なくとも１つにおいて、トラフィック管理デューティは、少なくとも２つの部分に分割される。種々の実施形態の少なくとも１つにおいて、ハイパーバイザーは、バーチャルトラフィックマネージャーがバーチャルクラスターのメンバーとして動作する間に低レベルネットワークトラフィック（ＯＳＩレベル１及びレベル２）を処理する。種々の実施形態の少なくとも１つにおいて、バーチャルクラスター及び／又はバーチャルトラフィックマネージャーは、ハイパーバイザーの一部分として動作するマネージメントコントロールプレーンアプリケーションにより管理される。
【００９９】
ブロック１３０６では、種々の実施形態の少なくとも１つにおいて、ハイパーバイザーは、ＯＳＩレイヤ３からレイヤ７のネットワークトラフィックを、ハイパーバイザーノードにホストされるバーチャルトラフィックマネージャーへ転送する。種々の実施形態の少なくとも１つにおいて、ハイパーバイザー及びバーチャルトラフィックマネージャーは、１つ以上の変換モジュールを通して通信する。
【０１００】
種々の実施形態の少なくとも１つにおいて、ネットワークトラフィックを低いレベルで少なくとも二分割することで、変換モジュールの複雑さが簡単化される。種々の実施形態の少なくとも１つにおいて、ＯＳＩレベル２のような低いレベルでのネットワークトラフィック管理に要求されるデータ構造は、ＯＳＩスタックにおいてＯＳＩレベル３−７のような高いレベルのネットワークトラフィックにより要求されるデータ構造に比して比較的簡単で且つ数が少ない。これらの高いレベルの層は、ＴＣＰ、ＦＴＰ、ＨＴＴＰ等のステートフルなプロトコルを含む複雑なネットワークプロトコルを処理するのに使用される。
【０１０１】
種々の実施形態の少なくとも１つにおいて、ネットワークトラフィック管理を低いレベルで少なくとも二分割することで、ハイパーバイザー及びバーチャルトラフィックマネージャーの異なるバージョン間で遂行される変換の複雑さを低減する。種々の実施形態の少なくとも１つにおいて、低レベルのネットワークトラフィック管理に使用されるデータ構造及びプロトコルは、最小であり、そしてハイパーバイザー及びバーチャルトラフィックマネージャーの異なるバージョン間に使用されるＡＰＩ、メッセージ及びデータ構造を変換（又はマッピング）するための変換モジュールも構成する。種々の実施形態の少なくとも１つにおいて、変換モジュールは、単一のハイパーバイザーがネットワークトラフィック管理デューティを、異なるソフトウェア及びハードウェアバージョンを有するバーチャルトラフィックマネージャーと分担できるようにする。
【０１０２】
種々の実施形態の少なくとも１つにおいて、ハイパーバイザーは、バーチャルトラフィックマネージャーとは独立して且つそれとは個別にアップグレードされる。又、変換モジュールは、異なるバージョンを有する複数のバーチャルトラフィックマネージャーを同じハイパーバイザーでホスト／管理できるようにする。
【０１０３】
ブロック１３０８では、種々の実施形態の少なくとも１つにおいて、ＯＳＩレイヤ３からレイヤ７のネットワークトラフィックは、ハイパーバイザーにホストされるバーチャルトラフィックマネージャーによって処理される。種々の実施形態の少なくとも１つにおいて、高いレベルのネットワークトラフィックを処理した後に、そのネットワークトラフィックは、必要に応じて逆方向に変換モジュールに通される。次いで、コントロールは、呼び出し側プロセスに戻される。種々の実施形態の少なくとも１つにおいて、バーチャルトラフィックマネージャーは、バーチャルクラスターのメンバーとして動作する。
【０１０４】
図面及びフローチャートにおけるアクションの組み合わせは、コンピュータプログラムインストラクションにより具現化できることが理解されよう。これらのプログラムインストラクションは、プロセッサに送られてマシンを形成し、プロセッサで実行されるインストラクションによりフローチャートブロックに明示されたアクションを具現化する手段が生成される。コンピュータプログラムインストラクションは、プロセッサにより実行されて、一連の動作アクションをプロセッサにより遂行させ、フローチャートブロックに明示されたアクションを具現化するためのコンピュータ実施プロセスを発生する。それらのプログラムインストラクションは、ある形式のマシン読み取り可能なストレージ媒体、例えば、プロセッサ読み取り可能な非一時的ストレージ媒体等に記憶される。
【符号の説明】
【０１０５】
１００：環境
１０２：ネットワーク
１０４：ホストサーバー装置
１０６：クライアント装置
１０８：データセンター
１１０：ブレードサーバー
１１２：ローカルエリアネットワーク（ＬＡＮ）
１１４：スイッチ
１１８：ハードウェアクラスター
２００：ブレードサーバーシャーシ
２０２：ブレードサーバー
２０４：メモリ
２０６：コントローラ
２０８：Ｉ／Ｏインターフェイス
２１０：ネットワークインターフェイスバス
２１２：ブレードサーバーバス
３００：ブレードサーバー
３０２：ブレードサーバーバスインターフェイス
３０４：直接バス
３０６：加速度計
３０８：ハードドライブエミュレータ
３１０：発振器
３１２：コントローラ
４００：ネットワーク装置
４１０：ネットワークインターフェイスユニット
４１２：中央処理ユニット
４１４：ビデオディスプレイアダプタ
４１６：ｒａｍ
４１８：ｂｉｏｓ
４２０：オペレーティングシステム
４２２：バス
４２４：入力／出力インターフェイス
４２６：ｃｄ−ｒｏｍ／ｄｖｄ−ｒｏｍドライブ
４２８：ハードディスクドライブ
４３２：ｒｏｍ
４５０：ハイパーバイザー
４５１：アプリケーション
４５２：コントロールプロセス
４５４：マネージメントコントロールプレーンアプリケーション
５００：ブレードサーバークラスター
５０１：ブレードサーバーシャーシ
５０２−５０８：ブレードサーバー
５１０−５１６：ハイパーバイザー
５１８−５２４：バーチャルマシン／バーチャルトラフィックマネージャー
６００：ブレードサーバークラスター
７００：ブレードサーバークラスター
８００：ブレードサーバークラスター
９００：ブレードサーバー
【図１】
2015509631.tif 000003
【図２】
2015509631.tif 000004
【図３】
2015509631.tif 000005
【図１１】
2015509631.tif 000006
【図１２】
2015509631.tif 000007
【図１３】
2015509631.tif 000008
【図４】
2015509631.tif 000009
【図５】
2015509631.tif 000010
【図６】
2015509631.tif 000011
【図７】
2015509631.tif 000012
【図８】
2015509631.tif 000013
【図９】
2015509631.tif 000014
【図１０】
2015509631.tif 000015
【国際調査報告】
2015509631.tif 000016
2015509631.tif 000017