(57)【特許請求の範囲】
【請求項１】
プロセッサにより、ソースサーバの実行状態を複製して、該実行状態を有するレプリカサーバを作成するステップと、
ルーティング可能なインターネットプロトコル（ＩＰ）アドレスを前記レプリカサーバに割り当てるステップと、
クライアントと前記ソースサーバとの間の、複数の進行中の接続のうちの全てより少ない前記進行中の接続を、前記ソースサーバから前記レプリカサーバに移行するステップとを含む方法。
【請求項２】
前記ソースサーバに関するリソース使用情報を監視するステップと、
リソースのリソース使用と閾値の関係を決定するステップであって、前記ソースサーバを複製して、前記レプリカサーバを作成するステップが、前記リソースの前記リソース使用と前記閾値の前記関係に基づいて実施される、ステップとをさらに含む、請求項１に記載の方法。
【請求項３】
前記ソースサーバを複製して、前記レプリカサーバを作成するステップが、前記リソースの前記リソース使用が前記閾値を超えると決定することに応答して実施される、請求項２に記載の方法。
【請求項４】
前記リソースが、記憶装置、メモリ、ＣＰＵの使用、前記ソースサーバとクライアントの間のスループット、及び前記ソースサーバとクライアントの間のラウンドトリップ時間（ＲＴＴ）からなるグループから選択された１つ又は複数を備える、請求項２に記載の方法。
【請求項５】
リダイレクトすべき前記１つ又は複数の接続のうちの１つを選択するステップと、
使用可能なサーバ位置を見つけるステップであって、前記使用可能なサーバ位置が前記レプリカサーバである、ステップと、
前記レプリカサーバ上のリソース使用が閾値未満かどうかチェックするステップと、
前記レプリカサーバ上のリソース使用が前記閾値未満である場合は、前記１つの接続を前記レプリカサーバに移行するステップとをさらに含む、請求項１に記載の方法。
【請求項６】
ソースサーバを複製して、レプリカサーバを作成するステップが、前記ソースサーバとレプリカサーバのＣＰＵ状態及びメモリ状態を同期させるサブステップを含む、請求項１に記載の方法。
【請求項７】
ソースサーバを複製して、レプリカサーバを作成するステップが、前記ソースサーバとレプリカサーバのオペレーティングシステムを同期させるサブステップを含む、請求項１に記載の方法。
【請求項８】
前記ソースサーバに宛てられたパケットを停止させ、前記レプリカサーバに転送させるステップをさらに含む、請求項１に記載の方法。
【請求項９】
ルーティング可能なインターネットプロトコル（ＩＰ）アドレスを前記レプリカサーバに割り当てるステップが、ハイパーバイザを使用して実施される、請求項１に記載の方法。
【請求項１０】
前記レプリカサーバのＭＡＣアドレス及びＦＱＤＮを変更するステップをさらに含む、請求項１に記載の方法。
【請求項１１】
１つ又は複数のノードに前記ルーティング可能なＩＰアドレスを通知するステップをさらに含み、前記１つ又は複数のノードが、前記ルーティング可能なＩＰアドレスを使用して、前記レプリカサーバにパケットをルーティングするように動作可能である、請求項１に記載の方法。
【請求項１２】
前記ソースサーバ及びレプリカサーバが、それぞれ異なるネットワークの一部である、請求項１に記載の方法。
【請求項１３】
前記ソースサーバが仮想マシンを実行し、前記レプリカサーバが、複製された仮想マシンを実行し、さらに前記ルーティング可能なＩＰアドレスが、前記複製された仮想マシンに割り当てられる、請求項１に記載の方法。
【請求項１４】
第１のサーバと、
第２のサーバと、
前記第１のサーバ上で実行される仮想マシンの実行状態を前記第２のサーバ上で実行される仮想マシンで複製させ、ルーティング可能なインターネットプロトコル（ＩＰ）アドレスを、前記第２のサーバ上で実行される前記仮想マシンに割り当てさせ、クライアントと前記第１のサーバとの間の複数の進行中の接続のうちの全てより少ない前記進行中の接続を前記第２のサーバに移行させるように動作可能なリソースマネージャとを備える通信システム。
【請求項１５】
前記リソースマネージャが、前記第１のサーバに関するリソース使用情報を監視し、
リソースのリソース使用と閾値の関係を決定するように動作可能であり、リソースマネージャが、前記リソースの前記リソース使用と前記閾値の前記関係に基づいて前記第１のサーバを複製する、請求項１４に記載のシステム。
【請求項１６】
前記リソースマネージャが、前記リソースの前記リソース使用が前記閾値を超えると決定することに応答して、前記第１のサーバ上で実行された前記仮想マシンを前記第２のサーバ上で複製させる、請求項１５に記載のシステム。
【請求項１７】
前記リソースが、記憶装置、メモリ、ＣＰＵの使用、前記第１のサーバとクライアントの間のスループット、及び前記第１のサーバとクライアントの間のラウンドトリップ時間（ＲＴＴ）からなるグループから選択された１つ又は複数を備える、請求項１５に記載のシステム。
【請求項１８】
前記第１のサーバ上で実行された前記仮想マシンが、前記第１のサーバと第２のサーバのＣＰＵ状態及びメモリ状態を同期させ、前記第１のサーバと第２のサーバのオペレーティングシステムを同期させることによって前記第２のサーバ上で複製される、請求項１４に記載のシステム。
【請求項１９】
前記リソースマネージャに通信可能に結合された負荷分散装置をさらに備え、前記リソースマネージャが、前記負荷分散装置に、前記第１のサーバに宛てられたパケットの転送を停止し、それらが前記第１のサーバから前記第２のサーバに移行される接続の一部である場合には前記パケットを前記第２のサーバに転送するように指示する、請求項１４に記載のシステム。
【請求項２０】
ルーティング可能なインターネットプロトコル（ＩＰ）アドレスを前記第２のサーバ上で実行される前記仮想マシンに割り当てるハイパーバイザをさらに備える、請求項１４に記載のシステム。
【請求項２１】
プロセッサによって実行されるとき、前記プロセッサに、
ソースサーバの実行状態を複製して、該実行状態を有するレプリカサーバを作成するステップと、
ルーティング可能なインターネットプロトコル（ＩＰ）アドレスを前記レプリカサーバに割り当てるステップと、
クライアントと前記ソースサーバとの間の、複数の進行中の接続のうちの全てより少ない前記進行中の接続を、前記ソースサーバから前記レプリカサーバに移行するステップとを含む方法を実行させる命令を格納するコンピュータ読取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0002]本発明は、負荷バランス（ＬＢ：ｌｏａｄ  ｂａｌａｎｃｅ）、リソースマネージャ（ＲＭ：ｒｅｓｏｕｒｃｅ  ｍａｎａｇｅｒ）及び、仮想化を備えたリアルサーバ（ＲＳ：ｒｅａｌ  ｓｅｒｖｅｒ）からなる負荷分散機構の分野に関し、より詳細には、本発明は、ハードウェア及びネットワークの負荷に基づくサーバレプリケーション及びトラフィック分配に関する。
【優先権】
【０００２】
[0001]本特許出願は、２００９年３月２５日に出願された、対応する米国特許仮出願第６１／１６３３７２号、「Ａ  Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｌｉｖｅ  Ｒｅｐｌｉｃａｔｉｏｎ」の優先権を主張し、同仮出願を参照により組み込む。
【背景技術】
【０００３】
[0003]負荷分散は、ハードウェアリソース及びネットワークリソースを効率的に使用するのに重要である。数個のリアルサーバ（ＲＳ）間でクライアントのトラフィックを分配することができるいくつかの負荷分散技術（たとえばＤＮＳラウンドロビン（ＤＮＳ  Ｒｏｕｎｄ  Ｒｏｂｉｎ）、ＬＶＳ（Ｌｉｎｕｘ（登録商標）仮想サーバ）、アパッチ（Ａｐａｃｈｅ））がある。これらの具体的な技法に関する問題は、あるサーバに接続が分配されると、他のＲＳ（複数可）に接続を転送できないとうことである。ハードウェア負荷及びネットワーク負荷が安定している場合は、負荷分散に適した閾値を設定することができ、既存の負荷の再分配はそれほど難しくない。しかし、一般には、ハードウェアリソースとネットワークリソースの両方が多くのアプリケーション及びサービス間で共有されるので、その負荷は、時間と共にかなり動的に変化することがある。過去の時点で行われた負荷分散（すなわちリソース割当て）の決定は、現在の負荷には誤りであることがある。よりよいリソース管理を達成するための負荷再分配が遅れる場合、ユーザは、期待されたサービス品質を受け取ることができないことがある。大きい誤差範囲を設けて閾値を設定することは、サービス品質を維持する最も容易な方法であるが、それは、リソース活用を減少させることになる。
【０００４】
[0004]仮想化は、リソース管理に柔軟性をもたらす。ＶＭｏｔｉｏｎ及びＸｅｎのライブマイグレーションは、ゲストＯＳ状態をある物理位置から別の物理位置に移動することを可能にする。すべてのゲストＯＳ関連状態が転送されるので、マイグレーションの後、すべての接続を保存することができる。これらの技術では、負荷再分配の必要性が生じた後（たとえば、ゲストＯＳへの負荷が指定の又は動的に計算された閾値を超えた後）にはすべての接続がよりよい位置にほぼリアルタイムに移動され得るので、品質の劣化及び不十分なリソース活用の問題が緩和される。
【０００５】
[0005]  これらの仮想化技術へのいくつかの制約が依然として存在する。まず、これらのマイグレーションは、マイグレーションの間にＩＰアドレスが変更される場合には進行中の接続が終了され、新しい位置に転送され得ないので、同じＬＡＮ内でしか行うことができない。さらに、トラフィック全体が新しい位置に転送され、それは、新しい位置でもリソース不足の問題を引き起こすことになる。
【発明の概要】
【０００６】
[0006]ライブレプリケーションのための方法及び装置が、本明細書に開示される。一実施形態では、この方法は、ソースサーバを複製して、レプリカサーバを作成するステップと、ルーティング可能なインターネットプロトコル（ＩＰ：Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスをレプリカサーバに割り当てるステップと、すべてではないが、１つ又は複数の進行中の接続をソースサーバからレプリカサーバに移行するステップとを含む。
【０００７】
[0007]本発明は、下記に示された詳細な説明、及び本発明の様々な実施形態の添付の図面からより完全に理解されるが、しかしながら、それは、本発明を特定の実施形態に限定するものと見なすべきでないが、説明及び理解のためのものにすぎない。
【図面の簡単な説明】
【０００８】
【図１】[0008]レプリケーションをサポートする構成の一実施形態を示す図である。
【図２】[0009]レプリケーションのプロセスの一実施形態を示す図である。
【図３】[0010]レプリケーション場所を見つけるプロセスの一実施形態のフローチャートである。
【図４】[0011]ホスト情報更新機構の一実施形態を示す図である。
【図５】[0012]レプリケーションのプロセスの一実施形態を示すフローチャートである。
【図６】[0013]コンピュータシステムの一実施形態のブロック図である。
【発明を実施するための形態】
【０００９】
[0014]進行中の接続の負荷分散のための方法及び装置について述べられる。一実施形態では、この方法は、一般にすべてではないが、１つ又は複数の進行中の接続を、あるリアルサーバ（ＲＳ）から別のリアルサーバに移行することを可能にする。本発明の目的上、これは、レプリケーションと呼ばれる。レプリケーションのタイミングは、リソース使用情報をＲＳから連続的に取り出すリソースマネージャ（ＲＭ）によってトリガされる。リソース（たとえば記憶装置、メモリ、ＣＰＵ、ＲＳとクライアントの間のスループット及びＲＴＴ）のうちの１つが、事前定義された閾値を超えると、ＲＭは、ＲＳに、すべての状態を別のＲＳにコピーするように指示する。すなわち、ＲＭは、情報をどこに送るべきか、及びどんな情報を送るべきかソースＲＳに指定する。
【００１０】
[0015]マイグレーション装置は、マイグレーションの間にＩＰアドレスが変更される場合でも、ライブ接続の保存を可能にする。ＲＭは、レプリケーションのための場所を定義し、複製されたＲＳは、その情報（たとえばＭＡＣアドレス、ホスト名、ＩＰアドレス）を変更して、新しい位置に適応し、負荷分散装置は、複製されたＲＳに、示された接続を転送し始める。
【００１１】
[0016]本発明の一実施形態は、同じネットワーク内の接続全体しか移動できないレガシー技術とは対照的に、それぞれ異なるネットワークに渡る進行中の接続の一部を移動することができる。これによって、リソース管理の柔軟性が大幅に向上する。
【００１２】
[0017]下記の記述では、本発明についてのより完全な説明を提供するために多くの詳細が示されている。しかしながら、本発明は、これらの具体的な詳細なしに実行できることが当業者には明らかであろう。他の場合では、本発明を不明瞭にしないために、よく知られている構造及びデバイスは、詳細にではなくブロック図の形で示されている。
【００１３】
[0018]後に続く詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズム及び記号表現に関して提示されている。これらのアルゴリズム的記述及び表現は、データ処理技術の当業者によって、その仕事の内容を他の当業者に最も有効に伝えるために使用される手段である。本明細書ではアルゴリズムは、一般に、所望の結果をもたらす自己一貫性のある一連のステップと考えられる。諸ステップは、物理量の物理的な操作を必要とするステップである。必ずしもではないが、通常、これらの量は、格納され、転送され、組み合わされ、比較され、別のやり方で操作可能である電気又は磁気信号の形を取る。主として一般的に使用するために、これらの信号をビット、値、要素、記号、文字、用語、数字などと呼ぶことが時々好都合であることが分かっている。
【００１４】
[0019]しかしながら、これらの及び類似の用語はすべて、適切な物理量に関連付けられるものであり、これらの量に付与された便宜的なラベルにすぎないことに留意されたい。後の議論から明らかであるように他に特に述べられていない限り、説明全体を通して、「処理する」「コンピュータ処理する」、「計算する」、「決定する」又は「表示する」などの用語を用いた議論は、コンピュータシステムのレジスタ及びメモリ内の物理（電子）量として表されたデータを操作し、コンピュータシステムメモリ又はレジスタ、或いは他のこうした情報記憶、伝送又は表示デバイス内の物理量として同様に表された他のデータに変換するコンピュータシステム又は類似の電子コンピューティングデバイスのアクション及びプロセスに言及することが理解されよう。
【００１５】
[0020]本発明は、この方法の操作を実施するための装置にも関する。この装置は、必要な目的のために特別に構築されてもよく、又はこの装置は、コンピュータに格納されたコンピュータプログラムによって選択的にアクティブ化され又は再構成された汎用コンピュータを備えてもよい。こうしたコンピュータプログラムは、それだけに限らないが、フロッピーディスク（登録商標）、光ディスク、ＣＤ−ＲＯＭ及び磁気光ディスクを含めて任意のタイプのディスク、読取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光カード、或いは電子命令を格納するのに適しており、それぞれがコンピュータシステムバスに結合された任意のタイプの媒体など、コンピュータ読取り可能記憶媒体に格納されてもよい。
【００１６】
[0021]本明細書に提示されたアルゴリズム及び表示は、特定のコンピュータ又は他の装置に本質的には関係ない。本発明の教示によるプログラムと共に様々な汎用システムを使用してもよいし、或いは必要な方法ステップを実施するためにより専門的な装置を構築することが好都合であると分かり得る。様々なこれらのシステムに必要な構造は、下記の説明から明らかになろう。さらに、本発明は、いずれかの特定のプログラミング言語に関して述べられていない。本明細書に述べられるように本発明の教示を実施するために様々なプログラミング言語を使用してもよいことが理解されよう。
【００１７】
[0022]マシン読取り可能媒体は、マシン（たとえばコンピュータ）によって読取り可能な形で情報を格納又は送信するための任意の機構を含む。たとえば、マシン読取り可能媒体は、読取り専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光学式記憶媒体、フラッシュメモリデバイスなどを含む。
【００１８】
概要
[0023]図１は、本明細書に述べられたレプリケーションをサポートするシステム構成の一実施形態を示している。クライアント（たとえば１００１〜１００６）のトラフィックは、負荷分散装置（たとえば１０１１−１０１２）で捕捉され、負荷分散装置は、この技術分野においてよく知られているＩＰトンネリングにおけるＩＰを使用してリアルサーバ（たとえば１０２１−１０２４）にトラフィックを転送する。それぞれのＲＳ及びＬＢは、リソースマネージャ（ＲＭ）（たとえば１０３１−１０３２）によって管理され、ＲＭは、任意の数のＲＳ及びＬＢを管理することができる。一実施形態では、ノードがＲＳ及びＬＢの機能をサポートする能力を有する場合、ＲＳ及びＬＢの位置への制限はない。図１には例示するために、特定の数のＲＭ、ＲＳ、ＬＢ及びクライアントだけが示されている。構成内に含まれるＲＭ、ＲＳ、ＬＢ及びクライアントの実際の数は、図１に示された数より多いことも、少ないこともある。
【００１９】
[0024]それぞれ異なるＲＭによって管理されるＲＳ間のレプリケーションは、ＲＭ間の対話によってサポートすることができる。ＲＭは、ＲＭが通信可能に結合されたそのＲＳのそれぞれのリソースを監視し、情報に基づいて、レプリケーションを実施すべきかどうか決定する。一実施形態では、この情報は、ＲＭで管理される。一実施形態では、これらのリソースは、ハードウェアリソース及び／又はネットワークリソースを含む。一実施形態では、ハードウェアリソースは、ＣＰＵ使用、ＨＤＤ使用及びメモリ使用のうちの１つ又は複数を備える。一実施形態では、ネットワークリソースは、ＲＳとクライアントの間のスループット、及びＲＳとクライアントの間のＲＴＴのうちの１つ又は複数を備える。
【数１】
0005509313.tif 000002
【００２０】
[0025]上記の数式１は、ＣＰＵ使用を決定するための閾値計算の一実施形態を示している。ＣＰＵ負荷がＣＰＵｌｉｍ×閾値の計算結果を超える場合、レプリケーションプロセスが開始される。ここでは、α及びＣＰＵが一定である場合、閾値を超える前に新しいＲＳを提案することができ、各接続の品質を維持することができる。しかし、αは、動的に変化し、正確に予測するのは難しい。接続を受け取る前にネットワーク性能を測定することは、ほとんど不可能である。ＣＰＵ及びαの変数は、ＲＳによって監視されるが、他の変数は、ハードウェア仕様又はユーザ入力（たとえば閾値）に基づいて定義されてもよい。ＶＭｏｔｉｏｎ及びＸｅｎのライブマイグレーションは、あるＲＳを別のＲＳに移動することができるが、マイグレーションは、同じＬＡＮに制限され、すべての接続が新しいＲＳに移動される。
【００２１】
[0026]一実施形態では、監視されているそれぞれ異なるリソースごとに異なる閾値が使用され、各閾値は、通信システムの要件及び達成すべき目標によって決まる。
【００２２】
[0027]本明細書に述べられた技法によって、異なるＬＡＮに位置し得る新しいＲＳに接続の一部を移動することが可能となる。本明細書に述べられるように、ＲＭは、リソースのうちの１つがリソースの指定の閾値を超えることを検出する場合、これらの要件を満たすことができる位置を見つける。一実施形態では、品質がネットワークリソースによって大きく影響される場合は、新しいＲＳの物理的位置を決定する際、ネットワークリソースについてまず考慮しなければならない。品質がハードウェアリソースによって大きく影響される場合は、ハードウェアリソースについてまず考慮しなければならない。ＲＭは、少なくとも閾値を超える接続を収容できる場所を見つけると、ＲＳに、ＲＳのレプリカを新しい位置に作るよう知らせる。
【００２３】
[0028]図２は、レプリケーションプロセスの一実施形態を示している。そのプロセスは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータシステム又は専用マシン上で実行されるものなど）、或いは両方の組合せを備えてもよい処理論理によって実施される。
【００２４】
[0029]初期ステップは、ソースＲＳとレプリカＲＳを同期させることである。一実施形態では、ＣＰＵ状態及びメモリ状態、並びにＯＳイメージ及びハードディスクイメージが、ソースＲＳとレプリカＲＳの間で同期され、レプリケーションプロセスの結果、ソースＲＳ上で実行される仮想マシンのコピーがレプリカＲＳに移行されることになる。
【００２５】
[0030]図２を参照すると、ステップ０−１で、レプリケーションの前にデータが転送される。ユーザデータ部分が大きい場合、データは、オペレーティングシステム部分とは別に管理してもよい。データ部分は、レプリケーション前にネットワークに分配することができ、或いはレプリカＲＳによって要求されたデータを格納するキャッシュが、レプリカＲＳ又はネットワークストレージ内で使用される。ステップ０−２で、基本オペレーティングシステム（ＯＳ：ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）部分（ｂａｓｅ  ＯＳ  Ｉｍｇ）もまた、レプリケーションの前に分配することができる。ステップ０−３で、いくつかのファイルがｂａｓｅ  ＯＳ  Ｉｍｇから変更される場合、これらは、ｂａｓｅ  ＯＳ  Ｉｍｇとは別に格納され、これらのファイルのハッシュ値と共に、Ｄｉｆｆ  ＯＳファイルとして管理される。すなわち、ソースＲＳとレプリカＲＳの両方が同じＯＳをもつならば、ＯＳ全体をコピーする必要はなく、差だけをコピーし、ソースＲＳからレプリカＲＳに送る必要がある。
【００２６】
[0031]初期ステップが完了した後、レプリケーションが行われてもよい。ステップ１で、ＲＭは、ＬＢ（複数可）に、ソースＲＳに宛てられたすべてのトラフィックについてバッファリングし始めるように指示する。
【００２７】
[0032]ステップ２で、ソースＲＳは中断され、ＯＳ状態（たとえばＣＰＵ状態、メモリ状態及びネットワークインターフェースコントローラ（ＮＩＣ：ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃｏｎｔｒｏｌｌｅｒ）状態）のスナップショットが作成される。こうしたスナップショットの取得は、当技術分野において知られている。たとえば、このスナップショットは、ＶＭｏｔｉｏｎ又はライブマイグレーションのために元来使用され、本明細書に述べられたレプリケーション用に拡張される。スナップショットの作成前に、スナップショット作成時間を短縮するために実際のメモリサイズを小さくすることができる。これは、ＸＥＮを使用して遂行することができ、このＸＥＮは、ＶＭが実行されている間、物理メモリ割当ての減少をサポートする。
【００２８】
[0033]ステップ３で、ＲＭは、ＬＢ（複数可）に、ソースＲＳへのパケット送信を再開するように指示する。一実施形態では、ＣＰＵ、メモリ、ＮＩＣ及びＨＤＤが同期している間、レプリカが作成される。したがって、ステップ１及び３でパケットをバッファリングする必要はない。こうした場合、ステップ６の直前にレプリカＲＳに転送されたパケットがバッファリングされる。すなわち、ステップ１及び３は省略することができ、このステップは、ステップ６の前に行われてもよい。レプリカＲＳに転送されたパケットは、ＬＢで依然として保持されている。一実施形態では、レプリカＲＭの位置は、図３に示されたフローチャートに従って決定される。
【００２９】
[0034]図３を参照すると、プロセスは、レプリカＲＳへのリダイレクションのためにソースＲＳへの接続のサブセットを選択する処理論理から開始している（処理ブロック３０１）。ソースＲＳからこれらの接続を取り除くことによって、ソースＲＳに残っている接続のリソース使用は、以前に指定されたリソース使用の閾値を下回ることになる。処理論理は、このサブセット内の各接続を任意の順序で処理し（処理ブロック３０４）、このサブセット内の各接続について、ＲＭ内の処理論理は、これらの接続を収容するのに十分なハードウェアリソースを有する接続の最も近いＲＳを決定する（処理ブロック３０３）。処理論理は、接続が転送され得るＲＳで使用されるリソースが、接続の追加により閾値を下回る（すなわち、閾値に違反しない）かどうか決定する（処理ブロック３０４）。そうでない場合は、プロセスは、処理ブロック３０３に戻る。すなわち、いくつかのリソース使用がその各々の閾値を超える場合、ＲＭは、この接続について次に最も近いＲＳが、それ自体閾値に違反することなしに接続を収容できるかどうかチェックする。この探索プロセスは、適切なＲＳが見つかるまで継続する。最も近いＲＳが接続を収容できる（すなわち、この接続の追加によって、リソース使用閾値の違反が生じない）場合は、プロセスは処理ブロック３０４で継続し、該ＲＳが、この接続のためのレプリカＲＳとして選択される。
【００３０】
[0035]このプロセスは、前の接続について考慮されたＲＳ（複数可）が新しい接続を受け付けることができるかどうかまず考慮することを除いて、リダイレクトすべき接続のサブセット内の次の接続について繰り返される（処理ブロック３０６）。さらなる接続がある場合は、処理論理は、接続を選択し（処理ブロック３０７）、リソース使用が閾値未満かどうかチェックする。リソース使用が閾値未満である場合は、プロセスは、処理ブロック３０５に戻り、ＲＳが、接続用のホストとして選択される。そうでない場合は、プロセスは、別のＲＳを見つけるために、処理ブロック３０３に戻る。
【００３１】
[0036]このプロセスは、あらゆる接続についてレプリカＲＳが見つかるまで継続される。接続を収容すると見られるＲＳがない場合は、閾値超過が最小となるＲＳが割り当てられる。
【００３２】
[0037]ステップ４を参照すると、ステップ２で作成されたスナップショットが、レプリカＲＳに転送されている。
【００３３】
[0038]次いで、ステップ５で、Ｄｉｆｆ  ＯＳファイルが、レプリカＲＳに送られる。他のＲＳ（複数可）によって使用されるこれらのファイルのうちのいくつかが既に存在している場合は、ハッシュ値がまず送られ、既に存在しているファイルは、ソースＲＳから転送されない。
【００３４】
[0039]ＣＰＵ、メモリ、ＮＩＣ及びＨＤＤの状態についていずれかの更新が生じる場合、ステップ６の前にＣＰＵ、メモリ、ＮＩＣ及びＨＤＤが更新される間、ステップ４とステップ５が同時に行われ、継続されると言うことができる。
【００３５】
[0040]ステップ６で、レプリカＲＳは、以前に転送されたスナップショット、Ｂａｓｅ  ＯＳ  ｉｍｇ及びＤｉｆｆ  ＯＳファイルを使用してアクティブ化される。
【００３６】
[0041]ステップ７で、パケットを受け取る前に、レプリカＲＳに関する何らかの情報が変更される。レプリカＲＳがソースＲＳとは異なるＬＡＮに常駐する場合、少なくともＩＰアドレスを変更し、またＭＡＣアドレス及びＦＱＤＮ（Ｆｕｌｌｙ  Ｑｕａｌｉｆｉｅｄ  Ｄｏｍａｉｎ  Ｎａｍｅ：全指定ドメイン名）を変更すべきである。したがって、新しいルーティング可能なＩＰアドレスが、レプリカＲＳに割り当てられる。一実施形態では、新しいルーティング可能なＩＰアドレスは、ＲＭによって割り当てられる。ＲＭから受け取られた新しいＩＰアドレスは、レプリカＲＳの下で実行されるハイパーバイザによって示され、レプリカＲＳは、アクティブ化の間、そのＩＰアドレスを新しいＩＰアドレスに変更する。レプリカＲＳにインストールされたソフトウェアは、ハイパーバイザから表示を受け取り、そのＩＰアドレスを変更する。Ｘｅｎ準仮想化（ＯＳＳベースのハイパーバイザ）の場合は、フロントエンドドライバが、ＲＳにインストールされる。一実施形態では、フロントエンドドライバは、図４に述べられるように動作する。
【００３７】
[0042]移動される接続のための新しいＩＰアドレスは、アクセスポイント及び基地局が元のＲＳではなくレプリカＲＳへの接続用のパケットをルーティングできるように、アクセスポイント及び／又は基地局に送られることに留意されたい。通知を実施するために、ＲＭは、アクセスポイント及び基地局上のＬＢに新しい位置を示し、ＬＢは、ＩＰ内のＩＰを使用してレプリカＲＳにパケットを送る。別の実施形態では、アクセスポイント及び基地局が存在しない場合は、ゲートウェイなどの他のノードに通知される。
【００３８】
[0043]図４は、本明細書に述べられたレプリケーションプロセスで使用されるホスト情報更新機構を示している。図４を参照すると、新しいイベント及びそのイベントハンドラが、イベントコントローラに追加されている。ハイパーバイザの上で実行されるゲストにいくつかの仮想ドライバ（たとえばビデオ、ネットワークインターフェース）がインストールされるので、これらのドライバのうちの１つについてイベントハンドラが追加される場合、新しいソフトウェアをゲストにインストールする必要はない。イベントハンドラは、ハイパーバイザからイベントを受け取るとき、ゲストからハイパーバイザと通信するために使用されるあるメモリ空間を読み出し、その空間に書き込まれた情報を反映するための関数を呼び出す。
【００３９】
[0044]ステップ８で、ＲＭによって示された接続のうちのいくつかが、その宛先がソースＲＳからレプリカＲＳに変更されるように変えられ、ＬＢは、レプリカＲＳへのＩＰトンネリングにおけるＩＰを使用してこれらのパケットを転送し始める。アプリケーションへの送信前にこれらのパケットがレプリカＲＳ上でカプセル化解除されるので、レプリカＲＳ上で実行されるＴＣＰ接続を含めてすべての接続が、これらの変更を認識するとは限らず、これらの接続は維持され得る。
【００４０】
[0045]図５は、レプリケーションプロセスの一実施形態のフローチャートである。このプロセスは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータシステム又は専用マシン上で実行されるものなど）、或いは両方の組合せを備えてもよい処理論理によって実施される。
【００４１】
[0046]図５を参照すると、プロセスは、リソース監視を実施する処理論理によって開始している（処理ブロック５０１）。一実施形態では、リソース監視を実施する処理論理は、リソースマネージャ内にある。
【００４２】
[0047]リソース監視を実施している間、処理論理は、閾値を超えたかどうか決定する（処理ブロック５０２）。そうでない場合は、プロセスは、処理ブロック５０１に移り、プロセスは繰り返す。閾値を超えた場合は、処理論理は、リアルサーバアクティブ化位置を識別する（処理ブロック５０３）。一実施形態では、リアルサーバアクティブ化位置を識別する処理論理は、リソースマネージャ内にある。処理論理は、いずれかの場所が使用可能かどうかテストする（処理ブロック５０４）。そうでない場合は、プロセスは処理ブロック５０３に移行し、プロセスは継続する。位置が使用可能な場合は、処理論理は、データ転送を凍結し（処理ブロック５０５）、処理論理は、ＯＳ状態の一部を転送し（処理ブロック５０６）、処理論理は、アクティブ化を実施する（処理ブロック５０７）。一実施形態では、データ転送を凍結する処理論理は、負荷分散装置内にある。一実施形態では、ＯＳ状態の一部を転送し、アクティブ化を実施する処理論理は、リアルサーバ内にある。
【００４３】
[0048]次いで、処理論理は、新しい位置で情報を更新し（処理ブロック５０８）、処理論理は、接続のトラフィックの一部をリアルサーバに転送する（処理ブロック５０９）。一実施形態では、情報を更新する処理論理は、リアルサーバ内にある。一実施形態では、接続のトラフィックの一部を転送する処理論理は、負荷分散装置内にある。
【００４４】
[0049]その後、プロセスは終了する。
【００４５】
[0050]クライアントは、ソースＲＳとレプリカＲＳの両方から同じパケットを受け取る可能性がある。複製パケットは、ＴＣＰスループットに影響を及ぼすことがある。したがって、ＬＢは、パケットがソースＲＳから、接続がレプリカＲＳに転送されるクライアントへと送られないようにすることができ、パケットを単にレプリカＲＳからクライアントに渡す。この防止策は、ソースＲＳで行うことも、同様にソースＲＳのハイパーバイザで行うこともできる。
【００４６】
コンピュータシステムの例
[0051]図６は、本明細書に述べられた操作のうちの１つ又は複数を実施してもよい例示的なコンピュータシステムのブロック図である。図６を参照すると、コンピュータシステム６００は、例示的なクライアント又はサーバコンピュータシステムを備えてもよい。コンピュータシステム６００は、情報を通信するための通信機構又はバス６１１、及び情報を処理するためにバス６１１に結合されたプロセッサ６１２を備える。プロセッサ６１２は、マイクロプロセッサを含むが、たとえばＰｅｎｔｉｕｍ（登録商標）ＰｏｗｅｒＰＣ（登録商標）、Ａｌｐｈａ（登録商標）など、マイクロプロセッサに限定されない。
【００４７】
[0052]システム６００は、プロセッサ６１２によって実行される情報及び命令を格納するためにバス６１１に結合されたランダムアクセスメモリ（ＲＡＭ）、又は他の動的記憶デバイス６０４（メインメモリと呼ばれる）をさらに備える。命令は、システムに、本明細書に述べられた機能のうちの１つ又は複数を実施させてもよい。メインメモリ６０４は、プロセッサ６１２による命令の実行の間、一時変数又は他の中間情報を格納するために使用することもできる。
【００４８】
[0053]コンピュータシステム６００は、プロセッサ６１２用の静的情報及び命令を格納するためにバス６１１に結合された読取り専用メモリ（ＲＯＭ）及び／又は他の静的記憶デバイス６０６、並びに磁気ディスクや光ディスクなど、データ記憶デバイス６０７、及びその対応するディスクドライブをも備える。データ記憶デバイス６０７は、情報及び命令の格納のためにバス６１１に結合される。
【００４９】
[0054]コンピュータシステム６００は、コンピュータユーザへの情報の表示のためにバス６１１に結合された陰極線管（ＣＲＴ：ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ）や液晶ディスプレイ（ＬＣＤ：ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）など、表示装置６２１にさらに結合されてもよい。英数字及び他のキーを含む英数字入力デバイス６２２もまた、プロセッサ６１２に情報及びコマンド選択を伝達するためにバス６１１に結合されてもよい。追加のユーザ入力デバイスは、プロセッサ６１２への方向情報及びコマンド選択の伝達、並びに表示装置６２１上のカーソル移動の制御のためにバス６１１に結合されたマウス、トラックボール、トラックパッド、スタイラス又はカーソル方向キーなど、カーソルコントロール６２３である。
【００５０】
[0055]バス６１１に結合されてもよい別のデバイスは、紙、フィルム又は類似のタイプの媒体などの媒体上で情報をマーキングするために使用できるハードコピーデバイス６２４である。バス６１１に結合されてもよい別のデバイスは、電話又は手持ち式のパームデバイスへの通信のための有線／無線通信機能６２５である。
【００５１】
[0056]本発明では、システム６００及び関連するハードウェアのコンポーネントのうちのいずれかを使用してもよいし、すべてを使用してもよいことに留意されたい。しかしながら、コンピュータシステムの他の構成が、諸デバイスのうちの一部を含むことも、すべてを含むこともあることが理解されよう。
【００５２】
[0057]上記説明を読んだ後、当業者には本発明の多くの変更及び修正が恐らく明らかになろうが、例示するために示され述べられたどんな特定の実施形態もが決して限定的と見なされるものでないことを理解されたい。したがって、様々な実施形態の詳細への言及は、本発明に不可欠と見なされる特徴だけを列挙する特許請求の範囲の範囲を限定するものではない。
【図１】
0005509313.tif 000003
【図２】
0005509313.tif 000004
【図３】
0005509313.tif 000005
【図４】
0005509313.tif 000006
【図５】
0005509313.tif 000007
【図６】
0005509313.tif 000008