(57)【特許請求の範囲】
【請求項１】
１又はそれ以上のプロセッサと連動してネットワーク装置を更新する方法であって、
動作を実行するよう構成されている前記１又はそれ以上のプロセッサで作動する一又はそれ以上の制御モジュールが、複数のネットワーク装置の少なくとも一部の少なくとも一つのクラスタのメンバである複数のネットワーク装置間のインタラクションを管理するステップを有し、
前記動作が、
第１のクラスタ内の複数のメンバから第１のメンバを選択するステップと、
前記第１のクラスタを分岐させるステップとを含み、当該分岐させるステップは、
前記選択した第１のメンバを含む第２のクラスタを作成するステップと、
前記第２のクラスタ内の前記第１のメンバを、規定の構成アップグレードにより作動させるステップと、
を含み、
少なくとも、規定数の接続の状態情報がいつ規定の閾値を超えてミラーリングされたかを判定することによって、規定のフェイルオーバ基準が満たされたかどうかを判定し、前記規定のフェイルオーバ基準が満たされた場合、接続性を前記第１のクラスタから前記第２のクラスタにフェイルオーバして、前記第２のクラスタが接続を管理するためのアクティブクラスタになるようにするステップと、
前記第１のクラスタから少なくとも１つの他のメンバを削除するステップと、
前記規定のアップグレードにより前記少なくとも１つの他のメンバをアップグレードするステップと、
前記少なくとも１つの他のメンバを前記第２のクラスタにメンバとして加えるステップと、
を含むことを特徴とする方法。
【請求項２】
前記ネットワーク装置を更新することは、前記ネットワーク装置のクラスタへのアップグレードを管理するステップを含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
さらに動作を行わせる前記一又はそれ以上の制御モジュールの実行が、前記第１のクラスタにより管理される接続に関連する状態情報をミラーリングするステップを含む、
ことを特徴とする請求項１に記載の方法。
【請求項４】
分岐させるステップが、少なくとも１つの既存の接続を前記第１のクラスタ内の前記選択した第１のメンバから少なくとも１つの他のメンバへドレインするステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項５】
分岐させるステップが、
前記第１のクラスタ内の所定数のメンバの各々に対して、
接続を前記第１のクラスタの別のメンバへドレインするステップと、
前記所定のメンバの構成をアップグレードするステップと、
前記所定のメンバを前記第２のクラスタのメンバとして加えるステップと、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
分岐させるステップが、
要求又は応答内のＨＴＴＰ接続ヘッダ値を、関連する接続を閉じることを示すように、或いは関連する接続のキープアライブ時間を低減又は別様に修正することを示すように変更すること、又は、
他のいずれかのプロトコル固有の動作を実行して少なくとも１つの既存のネットワーク接続をシャットダウンすること、
の少なくとも一方により、接続を前記第１のクラスタの別のメンバへドレインするステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項７】
さらに動作を行わせる前記一又はそれ以上の制御モジュールの実行が、前記選択した第１のメンバが少なくとも１つの新しい接続を受け付けないようにするステップを含む、
ことを特徴とする請求項１に記載の方法。
【請求項８】
ネットワーク装置を更新するためのシステムであって、
複数のメンバを有する、ネットワーク接続を管理するアクティブクラスタである第１のクラスタと、
動作を実行するよう構成されている１又はそれ以上のプロセッサ上で作動する１又はそれ以上の制御モジュールであって、複数のネットワーク装置の少なくとも一部の少なくとも一つのクラスタのメンバである複数のネットワーク装置間のインタラクションを管理する１又はそれ以上の制御モジュールと、
を備え、前記１又はそれ以上の制御モジュールが、
前記第１のクラスタから第１のメンバを選択して規定の構成変更によりアップグレードするステップと、
第２のクラスタを作成して、前記選択した第１のメンバを前記作成した第２のクラスタの第１のメンバとするステップと、
前記第２のクラスタの前記第１のメンバをアップグレードするステップと、
前記第１のクラスタからのメンバを前記第２のクラスタに加えるステップとを含む動作を実行するように構成され、
前記第２のクラスタに加えるステップは、
加える個々のメンバを前記第１のクラスタから削除し、
加える前記メンバの構成をアップグレードし、
前記アップグレードされたメンバを前記第２のクラスタに加える、
ことにより前記第１のクラスタ内メンバの総数の約半分が、いつ前記第２のクラスタに加えられるかという規定の基準が満たされるまで実行され、
前記規定の基準が満たされた場合、
選択した情報の規定の閾値にいつ達するかという別の規定の基準が満たされて、前記第２のクラスタが、ネットワーク接続を管理するための前記アクティブクラスタになったときに、接続性を前記第１のクラスタから前記第２のクラスタにフェイルオーバすることを特徴とするシステム。
【請求項９】
前記１又はそれ以上の制御モジュールが、前記第２のクラスタに加わるメンバが管理する少なくとも１つの既存の接続をドレインするステップをさらに含む動作を実行するように構成される、
ことを特徴とする請求項８に記載のシステム。
【請求項１０】
少なくとも１つの既存の接続をドレインするステップが、要求又は応答内のＨＴＴＰ接続ヘッダ値を、関連する接続を閉じることを示すように、又は関連する接続のキープアライブ時間を低減又は別様に修正することを示すように変更するステップ、或いは他のいずれかのプロトコル固有の動作を実行してキープアライブ時間期間を低減させることにより少なくとも１つの既存のネットワーク接続をシャットダウンするステップの少なくとも一方をさらに含む、
ことを特徴とする請求項９に記載のシステム。
【請求項１１】
少なくとも１つの既存の接続をドレインするステップが、新しい接続の要求を、加えられる予定の個々のメンバから前記第１のクラスタ内の別のメンバへリダイレクトするステップをさらに含む、
ことを特徴とする請求項９に記載のシステム。
【請求項１２】
前記第２のクラスタが、前記第１のクラスタからフェイルオーバされる前にホットスタンバイクラスタとして構成される、
ことを特徴とする請求項８に記載のシステム。
【請求項１３】
前記１又はそれ以上の制御モジュールが、前記第２のクラスタが前記第１のクラスタから選択した情報をミラーリングするステップをさらに含む動作を実行するように構成されている、
ことを特徴とする請求項８に記載のシステム。
【請求項１４】
機械実行可能命令を記憶する機械可読記憶媒体であって、少なくとも１つのプロセッサにより実行されたときに、複数のネットワーク装置を更新するための１又はそれ以上の動作を前記少なくとも１つのプロセッサに実行させ、前記１又はそれ以上の動作が、
アクティブな第１のクラスタ内の第１のメンバから接続をドレインし、
前記第１のメンバの規定の構成をアップグレードし、
前記第１のメンバで新しい第２のクラスタを作成し、
前記アクティブな第１のクラスタ内の規定数の他のメンバに対して、
前記規定の他のメンバの各々から接続をドレインし、
前記規定の他のメンバの規定の構成をアップグレードし、
個々の規定の他のメンバを前記第２のクラスタのメンバとして加える、
ことにより、前記複数のネットワーク装置の少なくとも一部が前記第１のクラスタのメンバである場合、メンバの前記アクティブな第１のクラスタを分岐させるステップと、
前記第１のアクティブクラスタが管理する規定数の接続及び状態情報が、いつ前記第２のクラスタによりミラーリングされたものとして検出されるかを検出することを含む規定のフェイルオーバ条件が満たされたときに、前記アクティブな第１のクラスタから前記第２のクラスタに接続性をフェイルオーバして、前記第２のクラスタが前記アクティブクラスタになるようにするステップと、
を含むことを特徴とする機械可読記憶媒体。
【請求項１５】
接続をドレインするステップが、要求又は応答内のＨＴＴＰ接続ヘッダ値を、関連する接続を閉じることを示すように、又は関連する接続のキープアライブ時間を低減又は別様に修正することを示すように変更するステップ、或いはキープアライブ時間期間を低減させることにより少なくとも１つの既存のネットワーク接続をシャットダウンするための他のいずれかのプロトコル固有の動作を実行するステップの少なくとも一方をさらに含む、
ことを特徴とする請求項１４に記載の機械可読記憶媒体。
【請求項１６】
前記１又はそれ以上の動作が、前記第２のクラスタを使用して、前記第１のアクティブクラスタが管理する状態情報及び接続をミラーリングするステップをさらに含む、
ことを特徴とする請求項１４に記載の機械可読記憶媒体。
【請求項１７】
接続をドレインするステップが、前記アクティブな第１のクラスタ内の少なくとも１つの他のメンバとのクラスタ内状態ミラーリングを可能にするステップ、又は新しい接続の要求を受け付けないようにするステップの少なくとも一方をさらに含む、
ことを特徴とする請求項１４に記載の機械可読記憶媒体。
【請求項１８】
前記１又はそれ以上の動作が、前記第１のクラスタのフェイルオーバ後に、前記第１のクラスタの個々の残りのメンバの規定の構成をアップグレードするステップと、個々のアップグレードされた残りのメンバを、ネットワーク接続を管理するための前記アクティブクラスタである前記第２のクラスタに加えるステップとをさらに含む、
ことを特徴とする請求項１４に記載の機械可読記憶媒体。
【請求項１９】
前記規定数の他のメンバが、前記第１のクラスタ内のメンバの総数の半分にほぼ等しくなるように決定される、
ことを特徴とする請求項１４に記載の機械可読記憶媒体。
【請求項２０】
前記新しい第２のクラスタを作成するステップが、前記第１のメンバを前記新しい第２のクラスタの最初のメンバとして指定するステップをさらに含む、
ことを特徴とする請求項１４に記載の機械可読記憶媒体。
【請求項２１】
複数のネットワーク装置を更新するための装置であって、
前記複数のネットワーク装置のそれぞれに含まれている送受信機であって、１又はそれ以上のクライアント及びサーバとの間でネットワークトラフィックを送受信する少なくとも１つの送受信機と、
前記ネットワークトラフィックに関する１又はそれ以上の動作を実行するように構成された少なくとも１つのプロセッサと、
を備え、前記１又はそれ以上の動作が、
アクティブな第１のクラスタ内の第１のメンバから接続をドレインし、
前記第１のメンバの規定の構成をアップグレードし、
前記第１のメンバで新しい第２のクラスタを作成し、
前記アクティブな第１のクラスタ内の規定数の他のメンバに対して、
前記規定の他のメンバの各々から接続をドレインし、
前記規定の他のメンバの規定の構成をアップグレードし、
個々の規定の他のメンバを前記第２のクラスタのメンバとして加える、
ことにより、前記複数のネットワーク装置の少なくとも一部が前記第１のクラスタのメンバである場合、メンバネットワーク装置の前記アクティブな第１のクラスタを分岐させるステップと、
前記第１のアクティブクラスタが管理する規定数の接続及び状態情報が、いつ前記第２のクラスタによりミラーリングされたものとして検出されるかを検出することを含む規定のフェイルオーバ条件が満たされたときに、前記アクティブな第１のクラスタから前記第２のクラスタに接続性をフェイルオーバして、前記第２のクラスタが前記アクティブクラスタになるようにするステップと、
を含むことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願との相互参照〕
本出願は、２００８年８月１８日に出願された「ネットワークにおける低インパクト接続ミラーリング及びフェイルオーバ」という名称の米国仮特許出願第６１／０８９，８３９号の利益を主張するものであり、該特許出願はさらに引用により本明細書に組み入れられる。
【０００２】
本技術は、一般にネットワーク装置に関し、より詳細には、限定的な意味ではないが、既存の及び新しいネットワークトラフィックを管理するための可用性に大きな影響を与えずに、クラスタ化されたネットワークトラフィック管理装置メンバをアップグレードすることに関する。
【背景技術】
【０００３】
インターネットはユビキタスネットワークへと進化を遂げ、多くの会社がビジネスを行うための主なリソースとしてインターネットに依存しようという気になってきた。例えば、多くの企業が、インターネット、及び同様のネットワークインフラストラクチャを利用して、重要なアプリケーションを管理し、コンテンツサーバにアクセスし、組み立て及び生産ラインを自動化し、複雑な制御システムを実現することができる。さらに、多くの個人が、実質的にいつでもリソースにアクセスできることを期待している。企業が、成功を求めてこのようなネットワーク化されたリソースへのアクセスにますます依存するにつれ、これらのサービスを提供するシステムの可用性がさらに重要になってくる。
【０００４】
ブレードサーバは、ユーザがサーバ又はその他のコンピュータリソースを個々のカード、すなわち「ブレード」上に提供できるようにする一種のクラスタベースの構成要素である。これらのブレードは、電源及び冷却ファンなどの共有リソースとともにシャーシ内に収容され、より一層の柔軟性及び拡張性を提供するモジュール方式により高密度システムを形成する。ブレードサーバは、比較的小さな設置面積内で複数のサーバが動作できるようにし、ラックの複雑さを低減し、ケーブル配線を単純化し、エネルギー消費量を節減することができる。ブレードサーバは、データセンタ及びインターネットサービスプロバイダ（ＩＳＰ）などの、スペースが限られた、及びエネルギー使用に配慮した環境で利用されることが多い。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、コンピュータ環境においてブレードサーバのハードウェア又はソフトウェアをアップグレードすることは、困難で、時間がかかり、間違いを起こしやすいプロセスとなり得る。さらに、アップグレードを行うと、アップグレードされる環境の接続処理及びその他のプロセスに悪影響を及ぼす可能性がある。ブレードサーバは、クラスタネットワーク内のメンバの１つの例を表すものと考えてもよい。しかしながら、他のクラスタベースのネットワーク装置も、ハードウェア及び／又はソフトウェアのアップグレード中に同様の問題を生じる恐れがある。
【課題を解決するための手段】
【０００６】
以下の図面を参照しながら非限定的かつ非包括的な実施形態について説明する。図面では、特に指定しない限り様々な図を通じて同じ参照番号が同じ部分を示す。
【０００７】
説明する実施形態をより良く理解できるように、以下の詳細な説明を添付図面と併せて参照されたい。
【図面の簡単な説明】
【０００８】
【図１】説明する実施形態を実施するための例示的な環境を示す概略図である。
【図２】個々のブレードがクラスタメンバとして動作できる、複数のブレードサーバの動作を可能にするための例示的なシャーシを示す概略図である。
【図３】暗号化関数のためのハードドライブエミュレータ及びアクセラレータを使用してブレードサーバの動作を可能にするための例示的なカードを示す概略図である。
【図４】クラスタメンバの別の実施形態としてのネットワーク装置を示す図である。
【図５Ａ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図５Ｂ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図５Ｃ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図５Ｄ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図５Ｅ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図５Ｆ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図６Ａ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図６Ｂ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図６Ｃ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図６Ｄ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図７Ａ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図７Ｂ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図７Ｃ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図７Ｄ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図７Ｅ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図７Ｆ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図７Ｇ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図７Ｈ】低インパクト接続ミラーリング及びフェイルオーバを提供する１つの実施形態に関連するクラスタ環境を示す図である。
【図８】第１のクラスタからメンバを除去し、これを第２のクラスタに追加するプロセスの１つの実施形態を大まかに示す論理フロー図である。
【図９】クラスタのメンバから接続を除去するプロセスの１つの実施形態を大まかに示す論理フロー図である。
【図１０】クラスタを分岐させるプロセスの１つの実施形態を大まかに示す論理フロー図である。
【発明を実施するための形態】
【０００９】
以下の例示的な実施形態の詳細な説明では、本明細書の一部を形成し、説明する実施形態を実施できる例を例示として示す添付図面を参照する。説明する実施形態を当業者が実施できるように十分な詳細を提供しているが、本発明の思想又は範囲から逸脱することなく他の実施形態を利用し、他の変更を行うことができると理解されたい。さらに、「１つの実施形態」への言及を、可能性はあるものの、同じ又は単一の実施形態に関連付ける必要はない。従って、以下の詳細な説明を限定的な意味で捉えるべきではなく、説明する実施形態の範囲は添付の特許請求の範囲によってのみ定義される。
【００１０】
明細書及び特許請求の範囲を通じて、以下の用語は、文脈において特に指定しない限り、本明細書で明確に関連付ける意味をとる。
【００１１】
「ユーザ」という用語は、装置を利用してネットワークを介して通信し、又はリソースにアクセスする企業又は組織などのいずれかの人物又は顧客を意味する。
【００１２】
「ブレードサーバ」という用語は、通常、他のブレードサーバ（複数のカード）とともに単一のシャーシ又はラック内にクラスタ化される単一のカード上に設けられたサーバを意味する。ブレードサーバはまた、高密度、超高密度又は極高密度ソリューションと呼ばれることもあり、これらは、処理が軽くトランザクションが重い用途に利用されることが多い。通常、個々のブレードサーバは、以下に限定されるわけではないが、ファイル共有、ファイル仮想化／ネットワーク記憶ファイル管理、ウェブページ提供、（ファイヤウォール、認証、クレデンシャル管理などの）ネットワークセキュリティ管理、キャッシング、トランスコーディング、ストリーミングメディア（ビデオ、オーディオ）、（ロードバランシング、フェイルオーバ管理、加速化／最適化などの）ネットワークトラフィック管理、及びバーチャルプライベートネットワークの設定を含む単一のタスク又はプロセスのためのものであるが、同時にこれらのタスクの１又はそれ以上の組み合わせを実行するように構成することもできる。通常、ブレードサーバは固有のオペレーティングシステム及びこのオペレーティングシステムのためのアプリケーションを含むが、異なるタスクを実行できるようにする１又はそれ以上のオペレーティングシステム及び１又はそれ以上のアプリケーションを含むこともできる。
【００１３】
「アップグレード」という用語は、オペレーティングシステムのバージョンアップグレードを含むソフトウェアアップグレードを意味するが、この用語は、（ソフトウェアライセンスを購入することにより起動されるような）使用されていないソフトウェアコードを有効にすること、（ホットフィックス、パッチなどの）実行中のソフトウェアの構成変更、異なる機能をともに実行するように装置を再プログラム又は再目的化すること、或いは（トラフィック管理に関する動作などの）装置の通常動作を別様に中断し得るいずれかの変更を含むいずれかの及びその他の種類のソフトウェア変更を含むように広く解釈すべきであり、ハードウェアアップグレードも含むと解釈すべきである。
【００１４】
ブレードサーバを比較的小さな設置面積（単一のカード）にぴったり収めるために、通常、ブレードサーバは、ポータブルコンピュータ装置で使用されるような高度に小型化されたエネルギー効率の高い中央処理装置（ＣＰＵ）を使用する。通常は、（マザーボードの機能に非常に類似する）個々の連なったブレードサーバが、一般的に共有される比較的高速のバスを介して互いに通信する。ラックマウント型のシャーシでは、例示的なブレードサーバベースのソリューションにより、比較的標準的な６フィートのラック内で何百ものＣＰＵの動作を可能にすることができる。
【００１５】
本明細書で使用する「クラスタ」という用語は、サービス、リソースなどを統合して、クラスタ外部にある装置にこのサービス、リソースなどへのアクセスを提供するように協働する疎結合のネットワーク装置を意味し、このクラスタは、外部装置にはネットワーク上の単一のエンティティとして映る。クラスタ内の個々のネットワーク装置のことをクラスタのメンバと呼ぶ。クラスタのメンバをブレード、又は上述したような「ブレードサーバ」とすることができ、或いは図４に関して以下で説明するような他のいずれかのネットワーク対応装置とすることができる。
【００１６】
簡潔に言えば、実施形態は、クラスタを「古い」仮想クラスタ（古いアクティブなクラスタ）及び「新しい」仮想クラスタ（新しい予備クラスタ）という２つの仮想クラスタに分岐させることによってクラスタをアップグレードし、古いクラスタのメンバを繰り返しアップグレードしながらこれらを新しいクラスタ内に移動させることを目的とする。メンバが新しいクラスタに追加される間、古いクラスタにより既存の接続及び新しい接続がシームレスに処理される。任意に、古いクラスタと新しいクラスタのメンバ数がほぼ等しくなると、古いクラスタと新しいクラスタの間で状態ミラーリングを行う。閾値数のメンバが新しいクラスタへ移されると、新しいクラスタが制御及び処理を引き継ぐことができる。古いクラスタから新しいクラスタへ接続性をフェイルオーバすることにより、古いクラスタから新しいクラスタへの移管を行うことができる。
【００１７】
１つの実施形態では、状態ミラーリングが、新しいクラスタへ構成状態、セッション状態、及び接続状態をミラーリングすることを含むことができる。１つの実施形態では、構成状態が、クラスタの動作状態を共同で定義する何百もの種類のデータを含むことができる。例えば、構成状態は、クラスタが使用しているＴＣＰスタックのオプション、クラスタが使用しているアドレス変換の種類、バーチャルサーバから物理サーバへのマッピング、ユーザが定義したランタイムルールなどを含むことができる。１つの実施形態では、セッション状態が、クライアントからサーバへのマッピングデータ（通常は特定のサーバネットワークアドレスにマップされるＵＲＩ又はクライアントネットワークアドレス）、クライアント許可データ、ＳＳＬセッションデータなどの２又はそれ以上の接続にわたるデータを含むことができる。１つの実施形態では、接続状態が、ソース及び宛先ＩＰアドレス及びＴＣＰポート、並びにＶＬＡＮなどのルーティング識別子を含むトランスポートレイヤ接続データを含むことができる。
【００１８】
１つの実施形態では、ミラーリング接続状態が、古いクラスタのメンバにより処理される既存の接続をドレインできるようにすることを含む。新しい接続を古いクラスタの他のメンバにリダイレクトしながら既存の接続を最後まで可能にすることにより、メンバがドレインされる。古いクラスタのメンバがもはや接続を処理しなくなると、このメンバを新しいクラスタにシームレスに移すことができる。
【００１９】
任意に、接続を積極的にドレインすることにより、すなわち「ブリードオフ」することにより、古いクラスタのメンバから既存の接続をドレインし終えるのに必要な時間を削減することができる。１つの実施形態では、接続を閉じるのに必要な時間を適切に減らすために、接続を「ブリードオフ」するステップが、例えばアプリケーション固有のネットワークデータ（ＯＳＩレイヤ７データ）などのネットワークデータを修正するステップを含む。１つの実施形態では、接続をブリードオフするステップが、接続のＨＴＴＰキープアライブ値を減少させるステップを含むが、他の実施形態も同様に考えられる。
【００２０】
１つの実施形態では、接続が新しいクラスタにフェイルオーバされると、新しい接続が新しいクラスタによって扱われる。その後、古いクラスタに残ったメンバをアップグレードして、新しいクラスタに追加することができる。
【００２１】
クラスタをアップグレードする従来のアプローチは、物理的に別個の予備クラスタを利用して、一次クラスタがアップグレードされている間に接続を処理する。通常動作中、予備クラスタは「ホットスタンバイモード」で動作し、一次クラスタとの間に形成された接続を予備クラスタがミラーリングする。接続をミラーリングすることにより、予備クラスタは、接続状態を含め、一次クラスタの状態と実質的に同じ状態を維持する。通常動作中に一次クラスタに障害が発生した場合、予備クラスタは、既存のミラーリングされた接続及び新しい接続を、障害が起きた一次クラスタがオンライン状態に戻るまで適切に制御及び処理することができる。アップグレード中は、一次クラスタがアップグレードされている間に、同様に予備クラスタを使用して既存の及び新しい接続を処理することができる。
【００２２】
クラスタをアップグレードする従来のアプローチは、予備クラスタをオフラインしてこれをアップグレードすることにより開始する。予備クラスタがアップグレードされると、一次クラスタがオフラインされてアップグレードされている間、実質的に全てのネットワークトラフィックがアップグレードされた予備クラスタに向けられる。
【００２３】
これらの従来のアプローチには、多くの問題及びコストが伴う。第１に、物理的に別個の予備クラスタを必要とすることで、全体的なシステムのコストが大幅に追加される可能性がある。第２に、従来のアプローチでは、一次クラスタ又はスタンバイクラスタのいずれかのアクティブなクラスタの障害により全ての既存の接続が落ちてしまう可能性のある時間帯が残る。第３に、いずれのクラスタに障害が無くても、異なるバージョンのクラスタ間で構成状態を移行することが難しいため、いくつかの接続が落ちてしまう。すなわち、従来のアプローチでは、予備クラスタがアップグレードされオンラインになった後ではあるが、一次クラスタがアップグレードされオンラインになる前に生じた接続が、アップグレードされた予備クラスタに制御が移ったときに落ちてしまう。
【００２４】
従来のアプローチに伴う第２の問題に関して言えば、クラスタの１つがアップグレードされているときに、障害が壊滅的なものになる恐れのある時間帯が生じる。明確には、クラスタがアップグレードの処理を受けている間、状態ミラーリング及びフェイルオーバを行うことはできない。従って、アップグレード中、アクティブクラスタに障害が起きると壊滅的なものになる。従って、このような従来のアプローチでは、システムは脆弱な状態のままである。
【００２５】
従来のアプローチに伴う第３の問題に関して言えば、予備クラスタがアップグレードされている間、一次クラスタにおいて形成された接続は予備クラスタによりミラーリングされない。従って、一次クラスタがアップグレードされる際には、これらの接続はクラスタ間で全く共有された状態になっていない。しかしながら、異なるソフトウェアバージョン又はハードウェア構成を有するクラスタ間で構成状態をタイムリーに移行することは、完全に非現実的ではなくても困難となり得る。上述したように、クラスタの構成状態は何百もの種類のデータを含んでいる場合があり、多くの場合、１つのバージョンから別のバージョンに構成状態をマップするために手動によるステップが必要となる。従来のアプローチは、クラスタを長時間にわたって脆弱な状態に置かずにこれらのマッピングを手動で行うためのメカニズムを提供するものではない。従って、従来のアプローチでは、一次クラスタからアップグレード済みの予備クラスタに制御が移されるときに、これらの新しい接続が落ちる可能性がある。このため、本明細書で説明する実施形態は、これらの従来のアプローチの不完全性の多くに対処することを目的とする。
【００２６】
例示的動作環境
図１は、説明する実施形態を実施できる例示的な環境１００の構成要素を示している。説明する実施形態を実施するためにこれらの構成要素が全て必要なわけではなく、説明する実施形態の思想又は範囲から逸脱することなく、構成要素の配置及び種類を変更することができる。図１は、クライアント装置１０６、ホストサーバ装置１０４、ローカルエリアネットワーク（ＬＡＮ）１１２と、少なくとも１つのブレードサーバ１１０が配置されるデータセンタ１０８との間の通信を可能にするネットワーク１０２などのワイドエリアネットワークを示している。スイッチ１１４が、ネットワーク１０２とデータセンタ１０８を接続してこれらの間の通信を可能にする。１つの実施形態では、ブレードサーバ１１０を１又はそれ以上のクラスタのメンバとすることができる。個々のクラスタ１１８は、スイッチ１１４には単一のネットワークアドレスを有する単一のネットワークエンティティとして映り得る。例えば、個々のクラスタは、固有の開放型システム間相互接続（ＯＳＩ）レイヤ２（Ｌ２）ネットワークアドレスを有することができる。
【００２７】
図２は、例示的なブレードサーバシャーシ２００の概要を示している。説明する実施形態を実施するためにこれらの構成要素が全て必要なわけではなく、説明する実施形態の思想又は範囲から逸脱することなく、構成要素の配置及び種類を変更することができる。ブレードサーバシャーシ２００は、メモリ２０４と通信するコントローラ２０６、入力／出力（Ｉ／Ｏ）インターフェイス２０８、ネットワークインターフェイスバス２１０、及びブレードサーババス２１２を含む。通常、ブレードのクラスタは、ブレードサーバシャーシ内に位置するブレードを全て含むが、クラスタは、ブレードサーバシャーシ上のあらゆるブレードのサブセット、或いは複数のブレードサーバシャーシからのブレードを含むことができる。図示してはいないが、ブレードサーババス２１２は、ブレードサーバ２０２のための複数のスロットを含むことができる。また、ブレードサーババス２１２を、以下に限定されるわけではないが、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ（商標）、ファイバチャネル、周辺構成要素相互接続（ＰＣＩ)、統合ドライブエレクトロニクス（ＩＤＥ）、業界標準アーキテクチャ（ＩＳＡ）、アドバンストグラフィックポート（ＡＧＰ)、ファイヤワイヤ、小型コンピュータ用周辺機器インターフェイス（ＳＣＳＩ）、ユニバーサルシリアルバス（ＵＳＢ)などを含むいくつかのバスアーキテクチャのいずれか１つをサポートするように構成することができる。しなしながら、少なくとも１つの実施形態では、ブレードサーババス２１２が、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ（商標）アーキテクチャをサポートする。
【００２８】
図３は、図２内のブレードサーバとして使用できる例示的なブレードサーバカード３００を示す。説明する実施形態を実施するためにこれらの構成要素が全て必要なわけではなく、説明する実施形態の思想又は範囲から逸脱することなく、構成要素の配置及び種類を変更することができる。コントローラ３１２がダイレクトバス３０４に結合されて、データ及びアドレスをハードドライブエミュレータ３０８及びアクセラレータ３０６と通信できるようにする。アプリケーションのほとんど全てをハードドライブエミュレータ３０８に記憶して、コントローラ３１２によって行われる論理動作により比較的迅速にアクセスできるようにすることができる。ダイレクトバス３０４は、以下に限定されるわけではないが、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ（商標）、ファイバチャネル、ＩＤＥ、ＵＳＢ、ＩＳＡ、ＰＣＩ、ＡＧＰ、ＳＣＳＩ、ファイヤワイヤ、シリアルなどを含むバスアーキテクチャを利用することができる。しかしながら、アクセラレータ３０６と、コントローラ３１２及びハードドライブエミュレータ３０８内で動作するアプリケーションとの間で（多くの場合１００バイト以下の）比較的少量のデータを通信できるので、１つの実施形態では、ダイレクトバス３０４とともに比較的低速のバスアーキテクチャを利用することができる。
【００２９】
コントローラ３１２は、ダイレクトバス３０４に結合され、これを介して通信を可能にする。コントローラ３１２は、データ及びアドレスの通信を可能にするブレードサーババスインターフェイス３０２にも結合される。１つの実施形態では、ブレードサーババスインターフェイス３０２が、ブレードサーバカード３００のための電力を受け取り、ＰＣＩバスとして動作する。また、発振器３１０が、コントローラ３１２、ハードドライブエミュレータ３０８及びアクセラレータ３０６に結合されて、ダイレクトバス３０４を介して通信されるデータ及びアドレスの同期を可能にする。これに加えて、或いはこれの代わりに、ブレードサーバカード３００が物理ハードディスクドライブを含むことができる。
【００３０】
また、コントローラ３１２を、以下に限定されるわけではないが、ＣＰＵ、マイクロコントローラ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）プログラマブル論理装置（ＰＬＤ）、特定用途向け集積回路（ＡＳＩＣ）などを含むいくつかの種類の装置のいずれか１つの形で提供することもできる。
【００３１】
上述したように、クラスタメンバ及びクラスタアーキテクチャは、ブレードサーバアーキテクチャに制約されない。従って、例えば図４は、クラスタのメンバとして利用できる例示的なネットワーク装置４００の概略を示している。１つの実施形態では、ネットワーク装置４００が、トラフィック管理装置などのステートフルネットワーク装置を含むことができる。ステートフルネットワーク装置は、例えばＯＳＩレイヤ４又はＴＣＰ／ＩＰのＴＣＰレイヤなどの、ネットワーキングフレームワークのトランスポートレイヤに関する情報を保持する。これに加えて、或いはこれの代わりに、ネットワーク装置４００は、データリンク、及び／又はＯＳＩレイヤ２及び３などのネットワークレイヤ情報を保持するステートレスネットワーク装置を含むことができる。ネットワーク装置４００は、図示するよりも多くの又は少ない構成要素を含むことができる。しかしながら、例示の実施形態を開示するには、図示の構成要素で十分である。同様のシステムでは、ネットワーク装置４００が図１のブレードサーバ１１０に取って代わることができる。さらに、ネットワーク装置４００が行うあらゆるタスク又は機能を、ブレードサーバ１１０が行うこともできる（逆もまた同様）。ネットワーク装置４００は、サーバ、トラフィック管理装置、アプリケーションサーバなどであってもよい。ネットワーク装置４００の少なくともいくつかの構成要素によって行われる処理の１つの実施形態については、図５〜図１０に関連してより詳細に説明する。
【００３２】
ネットワーク装置４００は、（各々が１又はそれ以上の処理コアを有する）少なくとも１つの処理ユニット４１２、ビデオディスプレイアダプタ４１４、及び大容量メモリを含み、これらは全てバス４２２を介して互いに通信する。さらに、１又はそれ以上の処理ユニット４１２（及び／又は個々のユニット４１２内のコア）が、ブレードサーバ１１０に取って代わる（又はこれを補足）ことができる。一般に、大容量メモリは、ＲＡＭ４１６、ＲＯＭ４３２、ｂｉｏｓ４１８、及びハードディスクドライブ４２８、テープドライブ、光ドライブ、及び／又はフロッピー（登録商標）ディスクドライブなどの１又はそれ以上の永久大容量記憶装置を含む。大容量メモリは、ネットワーク装置４００の動作を制御するためのオペレーティングシステム４２０を記憶する。
【００３３】
図４に示すように、ネットワーク装置４００はまた、ＴＣＰ／ＩＰプロトコルを含む様々な通信プロトコルとともに使用するように構成された１又はそれ以上のネットワークインターフェイスユニット４１０を介して、スイッチ１１４、ネットワーク１０２、又は他の何らかの通信ネットワークと通信することもできる。ネットワークインターフェイスユニット４１０は、送受信機、データ送受信装置、又はネットワークインターフェイスカード（ＮＩＣ）としても知られており、装置４００が複数の処理ユニット４１２を含む（或いはユニット４１２が複数のコアを含む）場合には、個々のユニット４１２（及び／又はコア）が、同じ単一のネットワークインターフェイスユニット４１０又は複数のユニット４１０を使用することができる。
【００３４】
本明細書で説明し図４に示す大容量メモリ４１６、４２６、４２８、及び４３２は、別の種類のコンピュータ可読媒体、すなわち機械可読記憶媒体の例であるコンピュータ可読又はプロセッサ可読記憶媒体を示している。コンピュータ可読記憶媒体／機械可読記憶媒体は、例えば、図８〜図１０のプロセス８００、９００及び／又は１０００の１又はそれ以上の部分を含む動作を行うための、少なくとも１つの中央処理装置（ＣＰＵ）４１２などのプロセッサにより取得及び／又は実行できるコンピュータ可読命令／機械実行可能命令、データ構造、プログラムモジュール、又はその他のデータなどの情報を記憶するためのいずれかの方法又は技術で実装される揮発性、不揮発性、取り外し可能、及び固定媒体を含むことができる。コンピュータ可読記憶媒体の例として、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又はその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多機能ディスク（ＤＶＤ）又はその他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又はその他の磁気記憶装置、或いはデータ及び／又はコンピュータ／機械実行可能命令を含む所望の情報を記憶するために使用できるとともにコンピュータ装置がアクセスできる他のいずれかの媒体が挙げられる。
【００３５】
大容量メモリはまた、その他の種類のプログラムコード及びデータをアプリケーション４５０として記憶することもでき、このアプリケーション４５０を大容量メモリにロードしてオペレーティングシステム４２０上で実行することができる。アプリケーション４５０の例として、ウェブブラウザ、Ｅメールクライアント／サーバプログラム、ルーティングプログラム、スケジューラ、ウェブサーバ、カレンダー、データベースプログラム、文書処理プログラム、ハイパーテキスト転送プロトコル（ＨＴＴＰ）プログラム、リアルタイムストリーミングプロトコル（ＲＴＳＰ）プログラム、セキュリティプログラム、及び他のいずれかの種類のアプリケーションプログラムを挙げることができる。アプリケーション４５０は、制御プロセス（ＣＰ)４５２及びメンバマネージャ４５４も含む。
【００３６】
ネットワーク装置４００はまた、Ｅメールを送受信するためのシンプルメールトランスファープロトコル（ＳＭＴＰ）ハンドラアプリケーション、ＨＴＴＰ要求を受信して受け渡すためのＨＴＴＰハンドラアプリケーション、ＲＴＳＰ要求を受信して受け渡すためのＲＴＳＰハンドラアプリケーション、及びセキュアな接続を処理するためのＨＴＴＰＳハンドラアプリケーションを含むこともできる。ＨＴＴＰＳハンドラアプリケーションは、外部アプリケーションとの通信をセキュアに開始することができる。さらに、ネットワーク装置４００は、ＴＬＳ、ＴＴＬＳ、ＥＡＰ、ＳＳＬ、ＩＰＳｅｃなどを含む実質的にあらゆるセキュアな接続をサポートするアプリケーションをさらに含むことができる。
【００３７】
ネットワーク装置４００はまた、マウス、キーボード、スキャナ、又は図４には示していないその他の入力／出力装置などの外部装置と通信するための入力／出力インターフェイス４２４を含むこともできる。同様に、ネットワーク装置４００は、ＣＤ−ＲＯＭ／ＤＶＤ−ＲＯＭドライブ４２６及びハードディスクドライブ４２８などの追加の大容量記憶装置をさらに含むことができる。ハードディスクドライブ４２８を利用して、とりわけアプリケーションプログラム、データベースなどを、上述した他の大容量メモリ構成要素と同じように記憶することができる。
【００３８】
１つの実施形態では、ネットワーク装置４００が、バス４２２に結合された少なくとも１つのＡＳＩＣチップ（図示せず）を含むことができる。ＡＳＩＣチップは、ネットワーク装置４００の動作の一部又は全てを実行する論理を含むことができる。例えば、１つの実施形態では、ＡＳＩＣチップが、着信及び／又は発信パケットのためのいくつかのパケット処理機能を実行することができる。
【００３９】
１つの実施形態では、ネットワーク装置４００が、ＡＳＩＣチップの代わりに、或いはこれに加えて、１又はそれ以上のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）（図示せず）をさらに含むことができる。ネットワーク装置４００のいくつかの機能は、ＡＳＩＣチップ、ＦＰＧＡにより、メモリに記憶された命令を含むＣＰＵ４１２により、或いはＡＳＩＣチップ、ＦＰＧＡ、及びＣＰＵのいずれかの組み合わせにより実行することができる。
【００４０】
制御プロセス４５２は、ネットワーク装置のクラスタのシームレスなソフトウェア又はハードウェアアップグレードを行うように構成されたいずれかの構成要素を含む。制御プロセス４５２を利用する実施形態については図５〜図１０に示す。
【００４１】
メンバマネージャ４５４は、クラスタ固有の処理を行うためのいずれかの構成要素を含む。例えば、ネットワーク装置４００がブレードサーバを含む場合、メンバマネージャ４５４は、以下に限定されるわけではないが、ファイル共有、ウェブページの提供、キャッシング、トランスコーディング、ストリーミングオーディオ、ストリーミングビデオ、ロードバランシング及びフェイルオーバ管理、及び通常はクラスタアーキテクチャによって実施されるその他のネットワーク技術を含む処理を行うことができる。ネットワーク装置４００がサーバコンピュータを含む場合、メンバマネージャ４５４は、例えばファイル及びプリント共有サービスを含むことができる。
【００４２】
ネットワーク装置４００が制御プロセス４５２及びメンバマネージャ４５４を含むように示しているが、代替の実施形態では、これらの構成要素の少なくともいくつかを含まなくてもよく、任意としてもよく、及び／又は代替の又は他の構成要素を含んでもよい。
【００４３】
一般的動作
いくつかの態様の動作について、図５〜図１０に関連して説明する。図５〜図７はいくつかの態様の環境及びステップを示しており、図８〜図１０はいくつかの態様の論理フロー図を示している。
【００４４】
図５Ａ〜図５Ｇは、クラスタのメンバをアップグレードするための１つの実施形態を示している。１つの実施形態では、アドミニストレータが、コストをかけずに、或いは既存のメンバ又はネットワークトラフィックに影響を与えずにメンバクラスタをランタイムで追加することができる。新たにインストールされるメンバは、インストール時に完全に上書きすることができる。これに加えて、或いはこれの代わりに、クラスタにメンバを追加する前に、メンバにソフトウェアを事前インストールすることができる。事前インストールされたソフトウェアを含むメンバをクラスタにインストールして、後でソフトウェアをインストールする必要をなくすことにより、メンバをオンラインにするのに必要な時間量を削減することができる。図５Ａ〜図５Ｇの構成要素は、図示するよりも多くの又は少ない構成要素を含むことができる。しかしながら、１つの実施形態又は例示を開示するには、図示の構成要素で十分である。
【００４５】
図５Ａは、クラスタ＃１の初期状態を示している。クラスタ＃１は、メンバ＃１、メンバ＃２、及びメンバ＃３を含む。図５Ａは、４つのスロット及び３つのメンバを含むクラスタを示しているが、クラスタは、実質的にあらゆる数のメンバ及びあらゆる数のオープンスロットを含むことができる。しかしながら、図示のように、メンバ＃１、＃２、及び＃３の各々は、パーティション５１０及びパーティション５２０という２つのブートパーティションを含む。パーティションには、オペレーティングシステム及び／又はその他のソフトウェアをインストールすることができる。例えば、メンバ＃１〜＃３の各々のパーティション５１０には、ソフトウェアバージョン１０．２がインストールされている。１つの実施形態では、図５Ａにアクティブなソフトウェアバージョンに隣接する円で示すように、１つのパーティションをアクティブにする一方で、残りのあらゆるパーティションを不作動にすることができる。
【００４６】
１つの実施形態では、追加のメンバを許可するライセンスを取得した場合、スロット＃４などのオープンスロットにメンバを追加することができる。しかしながら、他の実施形態ではライセンスを必要としなくてもよい。
【００４７】
図５Ｂは、スロット＃４に接続されたメンバ５３０を示している。１つの実施形態では、以下の図５Ｃに示すように、メンバ５３０がスロット＃４に接続するとすぐに、メンバ５３０にソフトウェアが自動的にインストールされる。これに加えて、或いはこれの代わりに、ソフトウェアを準備しておくことができ、或いはメンバ５３０がスロット＃４に接続される前に事前にメンバ５３０にインストールしておくことができる。メンバ５３０がスロット＃４に接続するとすぐに、メンバ５３０上の既存のソフトウェアを自動的にアップグレードすることができる。
【００４８】
図５Ｃは、インストールされたソフトウェア画像を同期させるステップを示している。まず、インストールされたソフトウェアバージョンを、既存のメンバの１つからメンバ＃４にコピーする。例えば、ソフトウェア画像を、メンバ＃１の画像リポジトリからメンバ＃４の画像リポジトリにそっくりそのままコピーすることができる。別の実施形態では、必要なソフトウェアの部分のみをコピーすることによりソフトウェア画像を同期させて、メンバ＃４がメンバ＃１〜＃３と同じソフトウェアを含むようにすることができる。１つの実施形態では、複数のソフトウェアプログラムのバージョンをメンバ＃４にコピーし、又は同期させることができる。１つの実施形態では、ｒｓｙｎｃ５４０などの同期プログラムを使用してソフトウェア同期を行うことができる。
【００４９】
ソフトウェア画像が同期されると、同期されたソフトウェア画像の１又はそれ以上を、メンバ＃４の１又はそれ以上のパーティションにローカルにインストールすることができる。図５Ｃに示すように、メンバ＃４のパーティション５１０にバージョン１０．２をインストールすることができ、メンバ＃４のパーティション５２０にバージョン１０．１をインストールすることができる。
【００５０】
図５Ｄは構成の同期を示している。（メンバ＃１などの）既存のメンバとメンバ＃４の間でユーザ構成セット（ＵＣＳ）を同期させることができる。１つの実施形態では、ｒｓｙｎｃ５４０を使用して構成の同期を行う。１つの実施形態では、システムアドミニストレータがＵＣＳを更新した後に、ＵＣＳを残りのメンバに同期させることができる。１つの実施形態では、個々のメンバの画像リポジトリにＵＣＳファイルをインストールし、その後ＵＣＳファイルをパーティション５１０及び５２０にローカルにインストールすることができる。
【００５１】
図５Ｅは、ブートアップを示している。メンバ＃４が、アクティブなブートパーティション内にブートする。図示の実施形態では、ソフトウェアバージョン１０．２を含むブートパーティション５１０がアクティブなブートパーティションである。次に、ユーザ構成セット（ＵＣＳ）をメモリにロードするなどのあらゆる任意のインストール後の動作を行うことができる。ブートアップ時には、メンバ＃４が扱う接続５５０は、あったとしても最初はわずかである。
【００５２】
図５Ｆは、クラスタが作動している時点の通常動作を示している。メンバ＃４は許可を取得して、現在のソフトウェアバージョン及び構成データをロード済みであり、接続５６０の処理を開始する。
【００５３】
図６Ａ〜図６Ｄは、クラスタ環境においてメンバをローリングインストールするための１つの実施形態を示している。これに加えて、或いはこれの代わりに、クラスタ環境におけるメンバのローリングアップグレードが行われる。ローリングインストール及び／又はアップグレードにより、クラスタが、使用していないブートパーティションをダウンタイムを伴わずに新しいソフトウェアバージョンにアップグレードできるようになる。１つの実施形態では、クラスタの全てのメンバが同じソフトウェアバージョンを実行している。例えば、図６Ａに示すように、ブートパーティション６１０及びブートパーティション６２０が、両方ともソフトウェアバージョン１０．０をインストール済みである。図６Ａ〜図６Ｄの構成要素は、図示するよりも多くの又は少ない構成要素を含むことができる。しかしながら、１つの実施形態又は例示を開示するには、図示の構成要素で十分である。
【００５４】
図６Ａは、ローリングインストール／アップグレードのための少なくとも１つの環境を示している。例えば、ブートパーティション６１０を、ソフトウェアバージョン１０．０などの初期ソフトウェアバージョンをインストール済みとすることができる。同様に、ブートパーティション６２０も、ソフトウェアバージョン１０．０などの初期ソフトウェアバージョンをインストール済みとすることができる。ソフトウェアバージョン１０．０は一例として使用するものであり、他のソフトウェアバージョン及び他のバージョニングシステムも同様に考えられる。
【００５５】
図６Ｂは、トラフィックマネージャユーザインターフェイス（ＴＭＵＩ）を示している。１つの実施形態では、ＴＭＵＩが、ソフトウェアプログラム及びソフトウェア画像全体を記憶する画像リポジトリを管理する。ＴＭＵＩは、ソフトウェア画像、完全なソフトウェアプログラム又はホットフィックスのいずれかをネットワークリポジトリからダウンロードすることができる。１つの例では、ネットワークリポジトリがエンタープライズマネージャ（ＥＭ）である。
【００５６】
図６Ｃは、画像リポジトリの同期を示している。１つの実施形態では、メンバの１つの画像リポジトリから他のメンバの１又はそれ以上の画像リポジトリにファイルがコピーされる。ファイルは、動作のバックグラウンドモードでコピーすることができる。１つの実施形態では、ｒｓｙｎｃ６４０を使用して、画像リポジトリ内のファイルを同期させることができるが、ビットトレント又はその他のプログラムも同様に検討される。
【００５７】
図６Ｄは、ローリングライブインストールを示している。１つの実施形態では、ユーザが、特定のソフトウェアバージョン又はホットフィックスを選択して非アクティブなブートパーティションにインストールする。他の実施形態では、最新の利用可能なバージョンが、非アクティブなブートパーティションに自動的にインストールされる。１つの実施形態では、ライブローリングインストールが並行して行われ、これによりクラスタの個々のメンバが同時にソフトウェアをインストールするようになる。或いは、ライブインストールを連続して行うこともできる。例えば、図６Ｄは、メンバ＃１〜４の各々のブートパーティション６２０上でソフトウェアバージョン１０．１がソフトウェアバージョン１０．０に取って代わることを示している。
【００５８】
図７Ａ〜図７Ｈは、クラスタ環境においてネットワーク装置をアップグレードするための１つの実施形態を示している。ハイレベルにおいては、ローリングスイッチブートを組織化するステップが、（１）クラスタを、ネットワーク接続を管理するための古い（アクティブ又は第１の）仮想クラスタと新しい（スタンバイ又は第２の）仮想クラスタとに分割するステップと、（２）新しいクラスタのメンバをアップグレードするステップと、（３）古いクラスタから新しいクラスタに接続性をフェイルオーバするステップとを含むことができる。本明細書で使用する「フェイルオーバ接続性」という用語は、フェイルオーバの前、最中、及び後で単一のネットワークアイデンティティを保持することを意味する。１つの実施形態では、ネットワークアイデンティティが、ＩＰアドレス、ＩＰアドレスとポートの組み合わせ、メディアアクセス制御（ＭＡＣ）アドレスなどを含むことができる。フェイルオーバ接続性を維持することによって、ダウンタイムをほとんど又は全く必要とせず或いはデータの損失をほとんど又は全く必要とせずにクラスタをアップグレードすることができる。これに加えて、或いはこれの代わりに、クラスタ間の高可用性フェイルオーバが、ＯＳＩレイヤ４接続又はＴＣＰ接続などの既存のトランスポートレイヤ接続を保護することもできる。これに加えて、或いはこれの代わりに、高可用性フェイルオーバが、アップグレード中にセッション状態を保護することもできる。
【００５９】
１つの実施形態では、グラフィカルユーザインターフェイス（ＧＵＩ）により、クラスタメンバが新しいクラスタへ移動する順序をユーザが指定できるようにすることができる。これに加えて、或いはこれの代わりに、ＧＵＩにより、メンバの約半分が第２のクラスタに加わったら、又は他の何らかの条件に基づいて、状態ミラーリングが望ましいかどうかをユーザが指定できるようになる。図７Ａ〜図７Ｈの構成要素は、図示するよりも多くの又は少ない構成要素を含むことができる。しかしながら、１つの実施形態又は例示を開示するには、図示の構成要素で十分である。
【００６０】
１つの実施形態では、図７Ａがローリングスイッチブートのための環境を示す。メンバ＃１〜４の各々は、ブートパーティション７１０上で既存のソフトウェアバージョンを、この例ではバージョン１０．０を実行している。図６Ａ〜図６Ｄに関して説明したように、バージョン１０．０が現在実行されている間にソフトウェアバージョン１０．１がブートパーティション７２０にインストールされる。クラスタに代わり、１又はそれ以上のプロセッサ上で動作する制御プロセス（ＣＰ）モジュールがメンバ間のインタラクションを管理する。制御プロセスは、クラスタの１つのメンバ内に存在することができ、クラスタ内ではあるがメンバの外部に存在して動作することができ、或いは１つの実施形態では、主にクラスタの外部に存在して動作することができる。１つの実施形態では、制御プロセスモジュールが、選択した情報を第１のクラスタから第２のクラスタにミラーリングするステップと、選択した情報の明確な閾値にいつ交わるかを判定するステップとを含む、図８〜図１０に関連して以下で説明するものを含む動作を行う。１つの実施形態では、制御プロセスモジュールが、第１のクラスタからの第１のメンバを規定の構成変更でアップグレードする。
【００６１】
図７Ｂは、ローリングスイッチブートの開始を示している。１つの実施形態では、ユーザがＴＭＵＩを介してスイッチブートを開始するが、自動化したスイッチブートも同様に検討される。
【００６２】
図７Ｃは、クラスタを分岐させるステップを示している。１つの実施形態では、クラスタ＃１が唯一のクラスタであり、これがスイッチ１１４を介してネットワークと通信する。クラスタ＃１には、ＭＡＣアドレスなどの単一のＯＳＩレイヤ２アドレスが割り当てられ、これによりクラスタ＃１がスイッチ１１４に知られるようになる。
【００６３】
１つの実施形態では、クラスタ＃１からメンバを削除し、削除したメンバで第２のクラスタ、クラスタ＃２を作成することにより、クラスタ＃１が古いクラスタと新しいクラスタに分岐される。１つの実施形態では、クラスタ＃２の第１のメンバがクラスタ＃２の最初のメンバであり、従ってクラスタ＃２の第１のメンバが、クラスタ＃２を制御するための制御プロセスを含むようになる。
【００６４】
１つの実施形態では、クラスタ＃１がＯＳＩスタックのレイヤ３において分割され、これによりクラスタ＃１及びスイッチ１１４のＯＳＩレイヤ２トポロジーに変更が行われなくなる。１つの実施形態では、一貫したＯＳＩレイヤ２トポロジーを維持するために、古いクラスタと新しいクラスタが、インターフェイス状態、ＬＡＣＰ（リンク集約接続プロトコル）状態、ＳＴＰ状態、及びＳＴＰフレームなどのＯＳＩレイヤ２状態を調整することができる。このような状態調整は、異なるバージョンの制御プロセスを含む異なるソフトウェアバージョンを有するクラスタ間で行うことができる。
【００６５】
１つの実施形態では、クラスタ＃２が独自のレイヤ２アドレスを割り当てて、これにネットワーク上の固有のレイヤ２及びレイヤ３アイデンティティを与えることができる。次に、１つの実施形態では、クラスタ＃２がクラスタ＃１に接続して、クラスタ＃１のレイヤ２状態情報に登録することができる。また、クラスタ＃２は、レイヤ２状態情報をクラスタ＃１と共有することができる。通常、クラスタ＃１及びクラスタ＃２は異なるソフトウェアバージョンを実行するので、通常、レイヤ２状態情報の共有がバージョニングされて、新しいソフトウェアバージョンを実行するクラスタが、古いソフトウェアバージョンを実行するクラスタと通信できるようになる。
【００６６】
１つの実施形態では、個々のメンバが、適当なクラスタ、メンバ、及びＣＰＵに接続する処理を指示するディスアグリゲータテーブル（ＤＡＧ）を含む。１つの実施形態では、クラスタ＃１及びクラスタ＃２の各々に仮想識別子が割り当てられる。仮想識別子は、仮想ＭｏｄＩＤ、ダブルＶＬＡＮタグ、リンクアグリゲーション識別子、ＭＡＣインＭＡＣカプセル化の外部ＭＡＣアドレス、又はその他のいずれの識別子であってもよい。ＤＡＧは、ステートフルであっても又はステートレスであってもよい。ステートフルＤＡＧは、メモリ内で仮想識別子を個々のアクティブな接続に関連付けて、アクティブな接続に関連する仮想識別子が、どのクラスタが接続を処理すべきかを指示するようにする。これに加えて、或いはこれの代わりに、ＤＡＧをステートレスにすることもできる。ステートレスＤＡＧは、ＭＡＣアドレス、プロトコル、ＩＰアドレス、ポート、及び／又はＶＬＡＮなどの接続情報をハッシュすることにより、特定のクラスタ、メンバ、及びＣＰＵへの関連性を作り出すことができる。１つの実施形態では、クラスタ＃１を分岐させるステップが、個々のメンバのステートフルＤＡＧを分岐させるステップを含み、これにより古いクラスタへの接続及び新しいクラスタへの接続が適宜指示されるようになる。１つの実施形態では、ＤＡＧがＡＳＩＣを含むことができる。
【００６７】
１つの実施形態では、リンクアグリゲーショングループを変更することにより、或いはクラスタ＃１の少なくとも２つのクラスタメンバにわたる他の何らかのスパニングツリー技術によりクラスタ＃１が分岐する。リンクアグリゲーショングループ（或いは他のスパニングツリー技術）のメンバである少なくとも１つのクラスタメンバを無効にして、トラフィックを残りのクラスタメンバへ強制することができる。このようにして、古いクラスタからクラスタの１つのメンバを削除する一方で、古いクラスタの残りのメンバにより既存の接続を処理し続けることができる。例えば、メンバ＃４を無効にすることもできる。１つの実施形態では、メンバ＃４がクラスタ＃１から削除される前に、メンバ＃４が処理する接続がドレインされる。代わりに、メンバ＃４が処理したであろう次の接続がメンバ＃１〜３に向けられる。
【００６８】
メンバ＃４は、クラスタ＃１から削除されるとクラスタ＃２になることができ、或いはメンバ＃４を使用してクラスタ＃２を作成することができる。次に、クラスタ＃２が作成されると、クラスタ＃２は、その存在をネットワークを介してブロードキャストし、分岐されたＤＡＧを使用してクラスタ＃２自体及びクラスタ＃１へのトラフィックの分散を開始することができる。クラスタ＃２はまた、レイヤ２の状態を維持するために、インターフェイス、ＳＴＰ、及びリンクアグリゲーショングループの状態更新をクラスタ＃１と共有し続けることもできる。１つの実施形態では、固有のレイヤ２及びレイヤ３識別子を含むクラスタ＃２が、クラスタ＃１への「ホットスタンバイ」として機能し、第１のクラスタからのフェイルオーバ前に接続をミラーリングすることができる。
【００６９】
図７Ｄは、新しいソフトウェアバージョンへのスイッチブーティングを示している。１つの実施形態では、メンバ＃４が、クラスタ＃２に追加されるとすぐに新しいソフトウェアバージョンにアップグレードされる。例えば、メンバ＃４を、ブートパーティション７２０上でソフトウェアバージョン１０．１を実行するようにアップグレードすることができる。１つの実施形態では、メンバ＃４をリブートすることによりスイッチブートが完了する。任意にメンバ＃３などの追加メンバをクラスタ＃１から無効にし、クラスタ＃２に追加して、クラスタ＃２が使用するソフトウェアバージョンにスイッチブートすることができる。
【００７０】
図７Ｅは、クラスタ＃２への追加メンバの移動を示しており、メンバ＃３の接続がドレインされ、クラスタ＃２に加わり、アップグレードされたソフトウェアにスイッチブートされる。
【００７１】
図７Ｆは、任意の状態ミラーリングを示している。構成状態、セッション状態、及び接続状態を、各々個別に或いはいずれかの組み合わせでミラーリングすることができる。状態ミラーリング構成を「クラスタ内」から「クラスタ間」に変更することにより、クラスタ＃１とクラスタ＃２の間の状態情報ミラーリングを可能にすることができる。これに加えて、或いはこれの代わりに、クラスタ内及びクラスタ間の状態ミラーリングを同時に行うこともできる。状態ミラーリングにより、構成、セッション、接続、永続性、及びその他の状態を、アクティブクラスタ（クラスタ＃１）から予備クラスタ（クラスタ＃２）へ転送することができる。１つの実施形態では、状態ミラーリングにより、ＯＳＩレイヤ４接続データ及びＯＳＩレイヤ７データをクラスタ＃１からクラスタ＃２へ転送することができる。一般に、古いソフトウェアバージョンから新しいソフトウェアバージョンへのアップグレードにより影響を受けないあらゆる状態を状態ミラーリング中にクラスタ間で直接転送することができる。古いソフトウェアバージョンから新しいソフトウェアバージョンに自動的にアップグレードできないあらゆる状態は、クラスタ＃１が接続を処理し続けている間に手動で更新することができる。１つの実施形態では、クラスタのバランスがほぼ均一になったらすぐに状態ミラーリングを行うことができる。このような概算は、何らかの閾値又は他の何らかの基準に基づくことができる。
【００７２】
図７Ｇ及び図７Ｈは、クラスタ＃１からクラスタ＃２に接続性をフェイルオーバするステップを示しており、この後クラスタ＃１が分解され、クラスタ＃１の無効になったメンバが、アップグレードされたソフトウェアバージョンをインストールしてブートすることができる。フェイルオーバとは、１つのクラスタから他のクラスタに制御及び接続の処理を受け渡す処理のことである。フェイルオーバは、所定の時刻に、所定の作業負荷閾値又はユーザが定めた他のいずれかの基準の下で行うことができる。フェイルオーバが行われると、クラスタ＃２（ここでは、ネットワーク接続を管理するための「アクティブクラスタ」）が、クラスタ内状態ミラーリングモードに戻ることができる。図示のように、図７Ｇ及び図７Ｈは、新しいクラスタにメンバ＃２を、次にメンバ＃１を再グループ化するステップを示している。
【００７３】
１つの実施形態では、接続性をクラスタ＃１からクラスタ＃２にシームレスにフェイルオーバするステップが、クラスタ＃１のデータリンク（ＯＳＩレイヤ２）アドレスを修正することなく、或いはクラスタ＃１及びスイッチ１１４のデータリンクトポロジーを別様に修正することなく行われる。この実施形態では、接続性をフェイルオーバするステップが、クラスタ＃１の（メディアアクセス制御（ＭＡＣ）アドレスなどの）データリンクレイヤアドレスをクラスタ＃２に割り当てるステップを含むことができ、これによりクラスタ＃２が、クラスタ＃１のデータリンクレイヤネットワークアイデンティティを引き継ぐようになる。
【００７４】
これに加えて、或いはこれの代わりに、アドレス解決プロトコル（ＡＲＰ）を使用して、アップグレード済みのネットワーク装置のＭＡＣアドレスが第２のクラスタのネットワークアドレスに移行したことを隣接するネットワークノードに通知することにより、接続性をクラスタ＃１からクラスタ＃２にフェイルオーバするステップが行われる。このように、クラスタ＃１にアドレス指定された着信パケットがクラスタ＃２のＭＡＣアドレスにルーティングされるようにして、接続性をクラスタ＃１からクラスタ＃２にフェイルオーバする。いずれにせよ、フェイルオーバ中は接続性が維持され、すなわちアップグレードの前、最中、及び後に、実質的にデータ又は接続を失うことなくクラスタアイデンティティの単一のネットワークが存続する。
【００７５】
図８は、第１のクラスタからメンバを削除して第２のクラスタに追加することにより、ネットワーク装置のクラスタへのアップグレードを部分的に管理するプロセスの１つの実施形態を大まかに示す論理フロー図である。
【００７６】
プロセス８００は、開始ブロック後に、第１のクラスタからクラスタメンバを削除することによりブロック８１０から開始する。１つの実施形態では、第１のクラスタ内の複数のメンバから第１のメンバが選択される。１つの実施形態では、第１のクラスタを分岐させることにより第２のクラスタが作成される。１つの実施形態では、第１のクラスタの分岐が、選択した第１のメンバからの少なくとも１つの接続を第１のクラスタ内の少なくとも１つの他のメンバに再割り当てするステップを含むことができる。この接続を再割り当てすることにより、接続をシームレスに処理し続けながら、選択した第１のメンバを第１のクラスタから削除できるようになる。接続を再割り当てした後、選択した第１のメンバを別のクラスタに移行させることにより第２のクラスタを作成して、選択した第１のメンバが作成した第２のクラスタの第１のメンバになるようにする。或いは、第２のクラスタを明確に作成した後で、選択した第１のメンバを第１のクラスタから削除して第２のクラスタに追加することもできる。１つの実施形態では、以下でプロセス９００に関連してより詳細に説明するように、接続の再割り当てが、第１のメンバから接続をドレインするステップ及び／又はブリードオフするステップを含む。１つの実施形態では、新しい第２のクラスタを作成するステップが、第１のメンバを新しい第２のクラスタの最初のメンバとしてさらに指示する。通常、最初のメンバがクラスタのマスタとして承認される。
【００７７】
ブロック８３０において、選択した第１のメンバを修正する。１つの実施形態では、選択した第１のメンバを新しい構成にアップグレードすることにより修正する。これに加えて、或いはこれの代わりに、選択した第１のメンバは、第２のクラスタに追加されるとすぐに自動的に新しい構成にアップグレードされる。１つの実施形態では、選択した第１のメンバの構成をアップグレードするステップが、新しいソフトウェアバージョンに更新するステップを含む。
【００７８】
次に処理はブロック８５０へ続き、ここでアップグレードされたメンバを第２のクラスタに追加する。上述したように、第２のクラスタを作成した後に、第１の選択したメンバを第２のクラスタに追加することができる。或いは、第１の選択したメンバの中から第２のクラスタが作成され、この場合、第２のクラスタが作成されたときに第１の選択したメンバが第２のクラスタに追加される。
【００７９】
次に処理はブロック８７０へ続き、ここで第１のクラスタ内に別のメンバが残っているかどうかを判定する。第１のクラスタ内に別のメンバが残っている場合、処理はステップ８１０へ戻り、第１のクラスタの別のメンバを削除してアップグレードする一方で、第２のクラスタにメンバとして加える。１つの実施形態では、アクティブな第１のクラスタ内の規定数の他のメンバに対してブロック８７０が継続する。１つの実施形態では、この規定数が、第１のクラスタ内のメンバの総数の半分とほぼ等しくなるように定められる。１つの実施形態では、２つのクラスタの各々にメンバの総数の約半分が含まれるようになったときに状態ミラーリングが開始される。例えば、クラスタのメンバの総数が偶数である場合、２つのクラスタ間でちょうど半分ずつを分配することができる。数が偶数でない場合、一方のクラスタが他方のクラスタよりも１又はそれ以上多くの追加メンバを有することができる。このような分割は、事前に定めてもよく、ユーザが設定してもよく、或いは他の何らかの基準に基づいてもよい。第１のクラスタ内にメンバが残っていない場合、元々のクラスタのメンバが全て修正されて第２のクラスタに追加される。ブロック８７０が完了すると、処理は呼び出し処理に戻る。
【００８０】
図９は、クラスタのメンバから接続を削除又はドレインするプロセスの１つの実施形態を大まかに示す論理フロー図である。１つの実施形態では、分岐前に存在していた接続を適切に終了できた場合、接続がドレインされる。１つの実施形態では、接続のドレイニングが、データリンクレイヤ及びネットワークリンクレイヤ（ＯＳＩレイヤ２及び３）でのパケット交換を含む全てのパケット交換を第１のクラスタにおいて処理するステップを含む。これらのパケットの処理が、接続の自然終了に起因して完了した後に、第１のクラスタにおけるトランスポートレイヤ（ＯＳＩレイヤ４）接続を閉じることができる。
【００８１】
プロセス９００は、クラスタのメンバが選択された場合、開始ブロック後にブロック９１０から開始する。或いは、上記ステップ８１０において事前にメンバを選択しておくこともできる。
【００８２】
次に処理はブロック９２０へ続き、ここで、選択したメンバから接続を可能な限り再割り当てする。１つの実施形態では、クラスタ内状態ミラーリングを利用することにより、接続のドレイニングが可能になる。これにより、接続状態が１つのメンバから別のメンバに直接コピーされ、接続を落とすさずに第１のメンバをクラスタから削除できるようになる。これに加えて、或いはこれの代わりに、少なくとも１つの既存の接続をドレインするステップが、新しい接続の要求を、第２のクラスタに加わる予定の個々のメンバから第１のクラスタの別のメンバへリダイレクトするステップをさらに含む。
【００８３】
接続がドレインされるのを待つことに加え、或いはクラスタ内状態ミラーリングを利用して既存の接続を移行させることにより、接続の再割り当てが、接続寿命を減少させるための積極的な措置をとるステップを含むことができる。例えば、ネットワーク接続を強制的にリセットするようにネットワークトラフィックを修正して、接続を別のメンバに移行させることができる。強制的にリセットするステップは、接続を終了又は別様に突然終わらせるステップを含むことができる。接続を突然終わらせることにより、メンバから接続を即座に除去することはできるが、データ損失も生じ得る。
【００８４】
これに加えて、或いはこれの代わりに、接続寿命を減少させるためにとられる別の積極的な措置として、接続を「ブリードオフ」することが挙げられる。接続をブリードオフするステップは、接続がクライアントにより自主的に終了されるように修正して、修正されていない場合よりも早く終了するようにするステップを含むことができる。この手順は、プロトコル固有とすることができる。例えば、接続がクライアント−サーバ環境内でＨＴＴＰプロトコルを利用していることが検出された場合、ＨＴＴＰ応答がＨＴＴＰクライアントへ送信されたときに、又はＨＴＴＰ要求がＨＴＴＰサーバへ送信されたときに、ＨＴＴＰキープアライブ時間属性を検出し、及び／又は低減させ、或いは無効にすることができる。ＨＴＴＰキープアライブ属性を低減させ、又は無効にすることにより、ＨＴＴＰクライアントが、次にＨＴＴＰサーバに接続するときに新しいＨＴＴＰ接続を作成するようになる。この新しい接続を第１のクラスタの別のメンバによって処理し、クライアントによるシームレスなアクセスを保証すると同時に、元々接続を処理していたメンバがアップグレードされて第２のクラスタにインストールされるようにすることができる。クライアントが新しい接続を開始するまでにかかる時間によっては、事前にフェイルオーバを行って、新しい接続が第２のクラスタによって処理されるようにすることもできる。ＨＴＴＰ要求又は応答の接続ヘッダ値を「クローズ」に変更することにより、接続をブリードオフすることもできる。
【００８５】
図１０は、クラスタを分岐させるプロセスの１つの実施形態を大まかに示す論理フロー図である。
【００８６】
プロセス１０００は、第２のクラスタのレイヤ２（Ｌ２）識別子が識別された場合、開始ブロック後にブロック１０１０から開始する。１つの実施形態では、このＬ２識別子が、他のローカルネットワーク要素にブロードキャストされる。
【００８７】
次に処理はブロック１０２０へ続き、ここで第１のクラスタの１つのメンバが第２クラタのメンバとして識別される。１つの実施形態では、識別されたメンバが、第２のクラスタのメンバとして追加されるとすぐに、第２のクラスタ内で使用するソフトウェアバージョンにアップグレードされる。
【００８８】
次に処理はブロック１０３０へ続き、ここで第２のクラスタのメンバが完全に作動する。
【００８９】
次に処理は決定ブロック１０４０へ続き、ここで第１及び第２のクラスタがほぼ同数のメンバを含むかどうかを判定する。これが真である場合、処理はブロック１０５０へ続き、ここで、構成状態、セッション状態、接続状態などを含む状態情報が、任意に第１のクラスタから第２のクラスタへミラーリングされる。クラスタがほぼ同数のメンバを含んでいない場合、処理は判定ブロック１０６０へ続く。接続状態がミラーリングされると、第２のクラスタは「ホットスタンバイモード」に入り、第１のアクティブなクラスタが管理する接続に関連する状態情報を積極的に構築してミラーリングする。この状態は、第１のクラスタにアドレス指定されたパケットを求めてネットワークを積極的にモニタすることによりミラーリングされる。「ホットスタンバイモード」に入ってこのように状態をミラーリングすることにより、異なるソフトウェアバージョンを実行するクラスタ間で接続状態を効果的に移行させることができる。
【００９０】
ブロック１０６０において、規定のフェイルオーバ条件又は基準が満たされたかどうかを判定する。フェイルオーバ条件は、ユーザが構成することができる。例えば、所定の時刻に、又は所定の時間範囲内に発生するようにフェイルオーバ条件を設定することができる。特定の曜日に、又は所定のレベルのネットワークアクティビティが検出されたときなどに発生するようにフェイルオーバ条件を設定することもできる。或いは、ユーザが手動で直接フェイルオーバをトリガすることもできる。これらに加えて、或いはこれらの代わりに、規定の接続数が規定の閾値よりも多くミラーリングされた場合、及び／又は第１のアクティブなクラスタが管理する状態情報の量が第２のアクティブなクラスタによりミラーリングされたことが検出された場合にフェイルオーバをトリガすることもできる。例えば、接続状態データの７５％が第１及び第２のクラスタ間で共有される場合にフェイルオーバをトリガすることができる。或いは、例えば、接続状態データの９５％が第１及び第２のクラスタ間で共有される場合にフェイルオーバをトリガすることもできる。これらに加えて、或いはこれらの代わりに、共有される接続状態データの量が６０〜６５％の間などの範囲内にあるときにフェイルオーバをトリガすることもできる。組み合わせ係数により、フェイルオーバをトリガすることもできる。例えば、時刻が早朝である場合、フェイルオーバをトリガするためには、共有される接続状態のパーセンテージが７５％でよい。しかしながら、アップグレードを平日の昼間に行う場合、フェイルオーバのトリガ前に、接続状態の９５％が共有されることを必要とすることができる。フェイルオーバ条件が発生した場合、処理はブロック１０７０へ続き、ここで接続がアクティブな第１のクラスタから第２のクラスタにフェイルオーバし、これにより第２のクラスタがアクティブなクラスタとして設定され、第１のクラスタが解体されるようになる。第１のクラスタのフェイルオーバ後、第１のクラスタの個々の残りのメンバが規定の構成にアップグレードされる。これらの残りのメンバは第２のクラスタに加えられ、第２のクラスタが、ネットワーク接続を管理するためのアクティブなクラスタになる。上述したように、１つの実施形態では、アドレス解決プロトコル（ＡＲＰ）を使用して接続性フェイルオーバを実施し、第１のクラスタのメディアアクセス制御（ＭＡＣ）アドレスが、スイッチ１１４などの隣接するネットワークノードにおいて第２のクラスタのＭＡＣアドレスに置き換えられることを、隣接するネットワークノードに通知することができる。このようにして、スイッチ１１４などの隣接するネットワークノードが受信したＩＰアドレスが第２のクラスタのＭＡＣアドレスに変換され、これにより制御及び処理を第２のクラスタにシームレスに移行させながら接続性を維持する。やはり上述したように、これに加えて、或いはこれの代わりに、第２のクラスタのＭＡＣアドレスを第２のクラスタにおいて第１のクラスタのＭＡＣアドレスに置き換えることにより接続性フェイルオーバを実施することができる。このようにして、第１のクラスタが受信して処理していたネットワークトラフィックが第２のクラスタによって受信され処理されるようになり、この場合も制御及び処理を第２のクラスタにシームレスに移行させながら接続性を維持する。その後、プロセスは戻りブロックにおいて終了する。
【００９１】
図、及びフロー図様の例示におけるステップの組み合わせを、コンピュータプログラム命令によって実施できることが理解できよう。これらのプログラム命令をプロセッサに提供して機械を生産することにより、プロセッサ上で実行される命令が、フロー図の１又は複数のブロック内に示される動作を実施する手段を生み出すようにすることができる。コンピュータプログラム命令をプロセッサにより実行して、プロセッサにより実行される一連の動作ステップがコンピュータ実行プロセスを生み出すようにすることにより、プロセッサ上で実行される命令が、フロー図の１又は複数のブロック内に示される動作を実行するステップを提供するようにすることができる。これらのプログラム命令を、コンピュータ可読記憶媒体などのコンピュータ可読媒体又は機械可読媒体に記憶することができる。
【００９２】
従って、本例示は、指定する動作を実行する手段の組み合わせ、指定する動作を実行するステップの組み合わせ、及び指定する動作を実行するためのプログラム命令手段をサポートする。フロー図による例示の個々のブロック、及びフロー図による例示内のブロックの組み合わせを、指定する動作又はステップを実行する特殊用途向けハードウェアベースのシステム、又は特殊用途向けハードウェア及びコンピュータ命令の組み合わせなどのモジュールにより実施できることも理解できよう。
【００９３】
上記の明細書、例、及びデータは、製造物を完全に説明し、説明する実施形態の構成の使用を使用できるようにするものである。本説明の思想及び範囲から逸脱すること多くの実施形態を作成できるので、これらの実施形態は以下に添付する特許請求の範囲に属する。
【図１】
0005571667.tif 000002
【図２】
0005571667.tif 000003
【図３】
0005571667.tif 000004
【図４】
0005571667.tif 000005
【図５Ａ】
0005571667.tif 000006
【図５Ｂ】
0005571667.tif 000007
【図５Ｃ】
0005571667.tif 000008
【図５Ｄ】
0005571667.tif 000009
【図５Ｅ】
0005571667.tif 000010
【図５Ｆ】
0005571667.tif 000011
【図６Ａ】
0005571667.tif 000012
【図６Ｂ】
0005571667.tif 000013
【図６Ｃ】
0005571667.tif 000014
【図６Ｄ】
0005571667.tif 000015
【図７Ａ】
0005571667.tif 000016
【図７Ｂ】
0005571667.tif 000017
【図７Ｃ】
0005571667.tif 000018
【図７Ｄ】
0005571667.tif 000019
【図７Ｅ】
0005571667.tif 000020
【図７Ｆ】
0005571667.tif 000021
【図７Ｇ】
0005571667.tif 000022
【図７Ｈ】
0005571667.tif 000023
【図８】
0005571667.tif 000024
【図９】
0005571667.tif 000025
【図１０】
0005571667.tif 000026