JP5509313B2 - ライブレプリケーションのための方法及び装置 - Google Patents

ライブレプリケーションのための方法及び装置 Download PDF

Info

Publication number
JP5509313B2
JP5509313B2 JP2012502212A JP2012502212A JP5509313B2 JP 5509313 B2 JP5509313 B2 JP 5509313B2 JP 2012502212 A JP2012502212 A JP 2012502212A JP 2012502212 A JP2012502212 A JP 2012502212A JP 5509313 B2 JP5509313 B2 JP 5509313B2
Authority
JP
Japan
Prior art keywords
server
replica
resource
source
threshold
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012502212A
Other languages
English (en)
Other versions
JP2012524919A5 (ja
JP2012524919A (ja
Inventor
ケン イガラシ,
ドワイト ルー,
ウラス コザット,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2012524919A publication Critical patent/JP2012524919A/ja
Publication of JP2012524919A5 publication Critical patent/JP2012524919A5/ja
Application granted granted Critical
Publication of JP5509313B2 publication Critical patent/JP5509313B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Description

[0002]本発明は、負荷バランス(LB:load balance)、リソースマネージャ(RM:resource manager)及び、仮想化を備えたリアルサーバ(RS:real server)からなる負荷分散機構の分野に関し、より詳細には、本発明は、ハードウェア及びネットワークの負荷に基づくサーバレプリケーション及びトラフィック分配に関する。
優先権
[0001]本特許出願は、2009年3月25日に出願された、対応する米国特許仮出願第61/163372号、「A Method and Apparatus for Live Replication」の優先権を主張し、同仮出願を参照により組み込む。
[0003]負荷分散は、ハードウェアリソース及びネットワークリソースを効率的に使用するのに重要である。数個のリアルサーバ(RS)間でクライアントのトラフィックを分配することができるいくつかの負荷分散技術(たとえばDNSラウンドロビン(DNS Round Robin)、LVS(Linux(登録商標)仮想サーバ)、アパッチ(Apache))がある。これらの具体的な技法に関する問題は、あるサーバに接続が分配されると、他のRS(複数可)に接続を転送できないとうことである。ハードウェア負荷及びネットワーク負荷が安定している場合は、負荷分散に適した閾値を設定することができ、既存の負荷の再分配はそれほど難しくない。しかし、一般には、ハードウェアリソースとネットワークリソースの両方が多くのアプリケーション及びサービス間で共有されるので、その負荷は、時間と共にかなり動的に変化することがある。過去の時点で行われた負荷分散(すなわちリソース割当て)の決定は、現在の負荷には誤りであることがある。よりよいリソース管理を達成するための負荷再分配が遅れる場合、ユーザは、期待されたサービス品質を受け取ることができないことがある。大きい誤差範囲を設けて閾値を設定することは、サービス品質を維持する最も容易な方法であるが、それは、リソース活用を減少させることになる。
[0004]仮想化は、リソース管理に柔軟性をもたらす。VMotion及びXenのライブマイグレーションは、ゲストOS状態をある物理位置から別の物理位置に移動することを可能にする。すべてのゲストOS関連状態が転送されるので、マイグレーションの後、すべての接続を保存することができる。これらの技術では、負荷再分配の必要性が生じた後(たとえば、ゲストOSへの負荷が指定の又は動的に計算された閾値を超えた後)にはすべての接続がよりよい位置にほぼリアルタイムに移動され得るので、品質の劣化及び不十分なリソース活用の問題が緩和される。
[0005] これらの仮想化技術へのいくつかの制約が依然として存在する。まず、これらのマイグレーションは、マイグレーションの間にIPアドレスが変更される場合には進行中の接続が終了され、新しい位置に転送され得ないので、同じLAN内でしか行うことができない。さらに、トラフィック全体が新しい位置に転送され、それは、新しい位置でもリソース不足の問題を引き起こすことになる。
[0006]ライブレプリケーションのための方法及び装置が、本明細書に開示される。一実施形態では、この方法は、ソースサーバを複製して、レプリカサーバを作成するステップと、ルーティング可能なインターネットプロトコル(IP:Internet Protocol)アドレスをレプリカサーバに割り当てるステップと、すべてではないが、1つ又は複数の進行中の接続をソースサーバからレプリカサーバに移行するステップとを含む。
[0007]本発明は、下記に示された詳細な説明、及び本発明の様々な実施形態の添付の図面からより完全に理解されるが、しかしながら、それは、本発明を特定の実施形態に限定するものと見なすべきでないが、説明及び理解のためのものにすぎない。
[0008]レプリケーションをサポートする構成の一実施形態を示す図である。 [0009]レプリケーションのプロセスの一実施形態を示す図である。 [0010]レプリケーション場所を見つけるプロセスの一実施形態のフローチャートである。 [0011]ホスト情報更新機構の一実施形態を示す図である。 [0012]レプリケーションのプロセスの一実施形態を示すフローチャートである。 [0013]コンピュータシステムの一実施形態のブロック図である。
[0014]進行中の接続の負荷分散のための方法及び装置について述べられる。一実施形態では、この方法は、一般にすべてではないが、1つ又は複数の進行中の接続を、あるリアルサーバ(RS)から別のリアルサーバに移行することを可能にする。本発明の目的上、これは、レプリケーションと呼ばれる。レプリケーションのタイミングは、リソース使用情報をRSから連続的に取り出すリソースマネージャ(RM)によってトリガされる。リソース(たとえば記憶装置、メモリ、CPU、RSとクライアントの間のスループット及びRTT)のうちの1つが、事前定義された閾値を超えると、RMは、RSに、すべての状態を別のRSにコピーするように指示する。すなわち、RMは、情報をどこに送るべきか、及びどんな情報を送るべきかソースRSに指定する。
[0015]マイグレーション装置は、マイグレーションの間にIPアドレスが変更される場合でも、ライブ接続の保存を可能にする。RMは、レプリケーションのための場所を定義し、複製されたRSは、その情報(たとえばMACアドレス、ホスト名、IPアドレス)を変更して、新しい位置に適応し、負荷分散装置は、複製されたRSに、示された接続を転送し始める。
[0016]本発明の一実施形態は、同じネットワーク内の接続全体しか移動できないレガシー技術とは対照的に、それぞれ異なるネットワークに渡る進行中の接続の一部を移動することができる。これによって、リソース管理の柔軟性が大幅に向上する。
[0017]下記の記述では、本発明についてのより完全な説明を提供するために多くの詳細が示されている。しかしながら、本発明は、これらの具体的な詳細なしに実行できることが当業者には明らかであろう。他の場合では、本発明を不明瞭にしないために、よく知られている構造及びデバイスは、詳細にではなくブロック図の形で示されている。
[0018]後に続く詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズム及び記号表現に関して提示されている。これらのアルゴリズム的記述及び表現は、データ処理技術の当業者によって、その仕事の内容を他の当業者に最も有効に伝えるために使用される手段である。本明細書ではアルゴリズムは、一般に、所望の結果をもたらす自己一貫性のある一連のステップと考えられる。諸ステップは、物理量の物理的な操作を必要とするステップである。必ずしもではないが、通常、これらの量は、格納され、転送され、組み合わされ、比較され、別のやり方で操作可能である電気又は磁気信号の形を取る。主として一般的に使用するために、これらの信号をビット、値、要素、記号、文字、用語、数字などと呼ぶことが時々好都合であることが分かっている。
[0019]しかしながら、これらの及び類似の用語はすべて、適切な物理量に関連付けられるものであり、これらの量に付与された便宜的なラベルにすぎないことに留意されたい。後の議論から明らかであるように他に特に述べられていない限り、説明全体を通して、「処理する」「コンピュータ処理する」、「計算する」、「決定する」又は「表示する」などの用語を用いた議論は、コンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表されたデータを操作し、コンピュータシステムメモリ又はレジスタ、或いは他のこうした情報記憶、伝送又は表示デバイス内の物理量として同様に表された他のデータに変換するコンピュータシステム又は類似の電子コンピューティングデバイスのアクション及びプロセスに言及することが理解されよう。
[0020]本発明は、この方法の操作を実施するための装置にも関する。この装置は、必要な目的のために特別に構築されてもよく、又はこの装置は、コンピュータに格納されたコンピュータプログラムによって選択的にアクティブ化され又は再構成された汎用コンピュータを備えてもよい。こうしたコンピュータプログラムは、それだけに限らないが、フロッピーディスク(登録商標)、光ディスク、CD−ROM及び磁気光ディスクを含めて任意のタイプのディスク、読取り専用メモリ(ROM:read−only memory)、ランダムアクセスメモリ(RAM:random access memory)、EPROM、EEPROM、磁気又は光カード、或いは電子命令を格納するのに適しており、それぞれがコンピュータシステムバスに結合された任意のタイプの媒体など、コンピュータ読取り可能記憶媒体に格納されてもよい。
[0021]本明細書に提示されたアルゴリズム及び表示は、特定のコンピュータ又は他の装置に本質的には関係ない。本発明の教示によるプログラムと共に様々な汎用システムを使用してもよいし、或いは必要な方法ステップを実施するためにより専門的な装置を構築することが好都合であると分かり得る。様々なこれらのシステムに必要な構造は、下記の説明から明らかになろう。さらに、本発明は、いずれかの特定のプログラミング言語に関して述べられていない。本明細書に述べられるように本発明の教示を実施するために様々なプログラミング言語を使用してもよいことが理解されよう。
[0022]マシン読取り可能媒体は、マシン(たとえばコンピュータ)によって読取り可能な形で情報を格納又は送信するための任意の機構を含む。たとえば、マシン読取り可能媒体は、読取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学式記憶媒体、フラッシュメモリデバイスなどを含む。
概要
[0023]図1は、本明細書に述べられたレプリケーションをサポートするシステム構成の一実施形態を示している。クライアント(たとえば100〜100)のトラフィックは、負荷分散装置(たとえば101−101)で捕捉され、負荷分散装置は、この技術分野においてよく知られているIPトンネリングにおけるIPを使用してリアルサーバ(たとえば102−102)にトラフィックを転送する。それぞれのRS及びLBは、リソースマネージャ(RM)(たとえば103−103)によって管理され、RMは、任意の数のRS及びLBを管理することができる。一実施形態では、ノードがRS及びLBの機能をサポートする能力を有する場合、RS及びLBの位置への制限はない。図1には例示するために、特定の数のRM、RS、LB及びクライアントだけが示されている。構成内に含まれるRM、RS、LB及びクライアントの実際の数は、図1に示された数より多いことも、少ないこともある。
[0024]それぞれ異なるRMによって管理されるRS間のレプリケーションは、RM間の対話によってサポートすることができる。RMは、RMが通信可能に結合されたそのRSのそれぞれのリソースを監視し、情報に基づいて、レプリケーションを実施すべきかどうか決定する。一実施形態では、この情報は、RMで管理される。一実施形態では、これらのリソースは、ハードウェアリソース及び/又はネットワークリソースを含む。一実施形態では、ハードウェアリソースは、CPU使用、HDD使用及びメモリ使用のうちの1つ又は複数を備える。一実施形態では、ネットワークリソースは、RSとクライアントの間のスループット、及びRSとクライアントの間のRTTのうちの1つ又は複数を備える。
Figure 0005509313
[0025]上記の数式1は、CPU使用を決定するための閾値計算の一実施形態を示している。CPU負荷がCPUlim×閾値の計算結果を超える場合、レプリケーションプロセスが開始される。ここでは、α及びCPUが一定である場合、閾値を超える前に新しいRSを提案することができ、各接続の品質を維持することができる。しかし、αは、動的に変化し、正確に予測するのは難しい。接続を受け取る前にネットワーク性能を測定することは、ほとんど不可能である。CPU及びαの変数は、RSによって監視されるが、他の変数は、ハードウェア仕様又はユーザ入力(たとえば閾値)に基づいて定義されてもよい。VMotion及びXenのライブマイグレーションは、あるRSを別のRSに移動することができるが、マイグレーションは、同じLANに制限され、すべての接続が新しいRSに移動される。
[0026]一実施形態では、監視されているそれぞれ異なるリソースごとに異なる閾値が使用され、各閾値は、通信システムの要件及び達成すべき目標によって決まる。
[0027]本明細書に述べられた技法によって、異なるLANに位置し得る新しいRSに接続の一部を移動することが可能となる。本明細書に述べられるように、RMは、リソースのうちの1つがリソースの指定の閾値を超えることを検出する場合、これらの要件を満たすことができる位置を見つける。一実施形態では、品質がネットワークリソースによって大きく影響される場合は、新しいRSの物理的位置を決定する際、ネットワークリソースについてまず考慮しなければならない。品質がハードウェアリソースによって大きく影響される場合は、ハードウェアリソースについてまず考慮しなければならない。RMは、少なくとも閾値を超える接続を収容できる場所を見つけると、RSに、RSのレプリカを新しい位置に作るよう知らせる。
[0028]図2は、レプリケーションプロセスの一実施形態を示している。そのプロセスは、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータシステム又は専用マシン上で実行されるものなど)、或いは両方の組合せを備えてもよい処理論理によって実施される。
[0029]初期ステップは、ソースRSとレプリカRSを同期させることである。一実施形態では、CPU状態及びメモリ状態、並びにOSイメージ及びハードディスクイメージが、ソースRSとレプリカRSの間で同期され、レプリケーションプロセスの結果、ソースRS上で実行される仮想マシンのコピーがレプリカRSに移行されることになる。
[0030]図2を参照すると、ステップ0−1で、レプリケーションの前にデータが転送される。ユーザデータ部分が大きい場合、データは、オペレーティングシステム部分とは別に管理してもよい。データ部分は、レプリケーション前にネットワークに分配することができ、或いはレプリカRSによって要求されたデータを格納するキャッシュが、レプリカRS又はネットワークストレージ内で使用される。ステップ0−2で、基本オペレーティングシステム(OS:operating system)部分(base OS Img)もまた、レプリケーションの前に分配することができる。ステップ0−3で、いくつかのファイルがbase OS Imgから変更される場合、これらは、base OS Imgとは別に格納され、これらのファイルのハッシュ値と共に、Diff OSファイルとして管理される。すなわち、ソースRSとレプリカRSの両方が同じOSをもつならば、OS全体をコピーする必要はなく、差だけをコピーし、ソースRSからレプリカRSに送る必要がある。
[0031]初期ステップが完了した後、レプリケーションが行われてもよい。ステップ1で、RMは、LB(複数可)に、ソースRSに宛てられたすべてのトラフィックについてバッファリングし始めるように指示する。
[0032]ステップ2で、ソースRSは中断され、OS状態(たとえばCPU状態、メモリ状態及びネットワークインターフェースコントローラ(NIC:network interface controller)状態)のスナップショットが作成される。こうしたスナップショットの取得は、当技術分野において知られている。たとえば、このスナップショットは、VMotion又はライブマイグレーションのために元来使用され、本明細書に述べられたレプリケーション用に拡張される。スナップショットの作成前に、スナップショット作成時間を短縮するために実際のメモリサイズを小さくすることができる。これは、XENを使用して遂行することができ、このXENは、VMが実行されている間、物理メモリ割当ての減少をサポートする。
[0033]ステップ3で、RMは、LB(複数可)に、ソースRSへのパケット送信を再開するように指示する。一実施形態では、CPU、メモリ、NIC及びHDDが同期している間、レプリカが作成される。したがって、ステップ1及び3でパケットをバッファリングする必要はない。こうした場合、ステップ6の直前にレプリカRSに転送されたパケットがバッファリングされる。すなわち、ステップ1及び3は省略することができ、このステップは、ステップ6の前に行われてもよい。レプリカRSに転送されたパケットは、LBで依然として保持されている。一実施形態では、レプリカRMの位置は、図3に示されたフローチャートに従って決定される。
[0034]図3を参照すると、プロセスは、レプリカRSへのリダイレクションのためにソースRSへの接続のサブセットを選択する処理論理から開始している(処理ブロック301)。ソースRSからこれらの接続を取り除くことによって、ソースRSに残っている接続のリソース使用は、以前に指定されたリソース使用の閾値を下回ることになる。処理論理は、このサブセット内の各接続を任意の順序で処理し(処理ブロック304)、このサブセット内の各接続について、RM内の処理論理は、これらの接続を収容するのに十分なハードウェアリソースを有する接続の最も近いRSを決定する(処理ブロック303)。処理論理は、接続が転送され得るRSで使用されるリソースが、接続の追加により閾値を下回る(すなわち、閾値に違反しない)かどうか決定する(処理ブロック304)。そうでない場合は、プロセスは、処理ブロック303に戻る。すなわち、いくつかのリソース使用がその各々の閾値を超える場合、RMは、この接続について次に最も近いRSが、それ自体閾値に違反することなしに接続を収容できるかどうかチェックする。この探索プロセスは、適切なRSが見つかるまで継続する。最も近いRSが接続を収容できる(すなわち、この接続の追加によって、リソース使用閾値の違反が生じない)場合は、プロセスは処理ブロック304で継続し、該RSが、この接続のためのレプリカRSとして選択される。
[0035]このプロセスは、前の接続について考慮されたRS(複数可)が新しい接続を受け付けることができるかどうかまず考慮することを除いて、リダイレクトすべき接続のサブセット内の次の接続について繰り返される(処理ブロック306)。さらなる接続がある場合は、処理論理は、接続を選択し(処理ブロック307)、リソース使用が閾値未満かどうかチェックする。リソース使用が閾値未満である場合は、プロセスは、処理ブロック305に戻り、RSが、接続用のホストとして選択される。そうでない場合は、プロセスは、別のRSを見つけるために、処理ブロック303に戻る。
[0036]このプロセスは、あらゆる接続についてレプリカRSが見つかるまで継続される。接続を収容すると見られるRSがない場合は、閾値超過が最小となるRSが割り当てられる。
[0037]ステップ4を参照すると、ステップ2で作成されたスナップショットが、レプリカRSに転送されている。
[0038]次いで、ステップ5で、Diff OSファイルが、レプリカRSに送られる。他のRS(複数可)によって使用されるこれらのファイルのうちのいくつかが既に存在している場合は、ハッシュ値がまず送られ、既に存在しているファイルは、ソースRSから転送されない。
[0039]CPU、メモリ、NIC及びHDDの状態についていずれかの更新が生じる場合、ステップ6の前にCPU、メモリ、NIC及びHDDが更新される間、ステップ4とステップ5が同時に行われ、継続されると言うことができる。
[0040]ステップ6で、レプリカRSは、以前に転送されたスナップショット、Base OS img及びDiff OSファイルを使用してアクティブ化される。
[0041]ステップ7で、パケットを受け取る前に、レプリカRSに関する何らかの情報が変更される。レプリカRSがソースRSとは異なるLANに常駐する場合、少なくともIPアドレスを変更し、またMACアドレス及びFQDN(Fully Qualified Domain Name:全指定ドメイン名)を変更すべきである。したがって、新しいルーティング可能なIPアドレスが、レプリカRSに割り当てられる。一実施形態では、新しいルーティング可能なIPアドレスは、RMによって割り当てられる。RMから受け取られた新しいIPアドレスは、レプリカRSの下で実行されるハイパーバイザによって示され、レプリカRSは、アクティブ化の間、そのIPアドレスを新しいIPアドレスに変更する。レプリカRSにインストールされたソフトウェアは、ハイパーバイザから表示を受け取り、そのIPアドレスを変更する。Xen準仮想化(OSSベースのハイパーバイザ)の場合は、フロントエンドドライバが、RSにインストールされる。一実施形態では、フロントエンドドライバは、図4に述べられるように動作する。
[0042]移動される接続のための新しいIPアドレスは、アクセスポイント及び基地局が元のRSではなくレプリカRSへの接続用のパケットをルーティングできるように、アクセスポイント及び/又は基地局に送られることに留意されたい。通知を実施するために、RMは、アクセスポイント及び基地局上のLBに新しい位置を示し、LBは、IP内のIPを使用してレプリカRSにパケットを送る。別の実施形態では、アクセスポイント及び基地局が存在しない場合は、ゲートウェイなどの他のノードに通知される。
[0043]図4は、本明細書に述べられたレプリケーションプロセスで使用されるホスト情報更新機構を示している。図4を参照すると、新しいイベント及びそのイベントハンドラが、イベントコントローラに追加されている。ハイパーバイザの上で実行されるゲストにいくつかの仮想ドライバ(たとえばビデオ、ネットワークインターフェース)がインストールされるので、これらのドライバのうちの1つについてイベントハンドラが追加される場合、新しいソフトウェアをゲストにインストールする必要はない。イベントハンドラは、ハイパーバイザからイベントを受け取るとき、ゲストからハイパーバイザと通信するために使用されるあるメモリ空間を読み出し、その空間に書き込まれた情報を反映するための関数を呼び出す。
[0044]ステップ8で、RMによって示された接続のうちのいくつかが、その宛先がソースRSからレプリカRSに変更されるように変えられ、LBは、レプリカRSへのIPトンネリングにおけるIPを使用してこれらのパケットを転送し始める。アプリケーションへの送信前にこれらのパケットがレプリカRS上でカプセル化解除されるので、レプリカRS上で実行されるTCP接続を含めてすべての接続が、これらの変更を認識するとは限らず、これらの接続は維持され得る。
[0045]図5は、レプリケーションプロセスの一実施形態のフローチャートである。このプロセスは、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータシステム又は専用マシン上で実行されるものなど)、或いは両方の組合せを備えてもよい処理論理によって実施される。
[0046]図5を参照すると、プロセスは、リソース監視を実施する処理論理によって開始している(処理ブロック501)。一実施形態では、リソース監視を実施する処理論理は、リソースマネージャ内にある。
[0047]リソース監視を実施している間、処理論理は、閾値を超えたかどうか決定する(処理ブロック502)。そうでない場合は、プロセスは、処理ブロック501に移り、プロセスは繰り返す。閾値を超えた場合は、処理論理は、リアルサーバアクティブ化位置を識別する(処理ブロック503)。一実施形態では、リアルサーバアクティブ化位置を識別する処理論理は、リソースマネージャ内にある。処理論理は、いずれかの場所が使用可能かどうかテストする(処理ブロック504)。そうでない場合は、プロセスは処理ブロック503に移行し、プロセスは継続する。位置が使用可能な場合は、処理論理は、データ転送を凍結し(処理ブロック505)、処理論理は、OS状態の一部を転送し(処理ブロック506)、処理論理は、アクティブ化を実施する(処理ブロック507)。一実施形態では、データ転送を凍結する処理論理は、負荷分散装置内にある。一実施形態では、OS状態の一部を転送し、アクティブ化を実施する処理論理は、リアルサーバ内にある。
[0048]次いで、処理論理は、新しい位置で情報を更新し(処理ブロック508)、処理論理は、接続のトラフィックの一部をリアルサーバに転送する(処理ブロック509)。一実施形態では、情報を更新する処理論理は、リアルサーバ内にある。一実施形態では、接続のトラフィックの一部を転送する処理論理は、負荷分散装置内にある。
[0049]その後、プロセスは終了する。
[0050]クライアントは、ソースRSとレプリカRSの両方から同じパケットを受け取る可能性がある。複製パケットは、TCPスループットに影響を及ぼすことがある。したがって、LBは、パケットがソースRSから、接続がレプリカRSに転送されるクライアントへと送られないようにすることができ、パケットを単にレプリカRSからクライアントに渡す。この防止策は、ソースRSで行うことも、同様にソースRSのハイパーバイザで行うこともできる。
コンピュータシステムの例
[0051]図6は、本明細書に述べられた操作のうちの1つ又は複数を実施してもよい例示的なコンピュータシステムのブロック図である。図6を参照すると、コンピュータシステム600は、例示的なクライアント又はサーバコンピュータシステムを備えてもよい。コンピュータシステム600は、情報を通信するための通信機構又はバス611、及び情報を処理するためにバス611に結合されたプロセッサ612を備える。プロセッサ612は、マイクロプロセッサを含むが、たとえばPentium(登録商標)PowerPC(登録商標)、Alpha(登録商標)など、マイクロプロセッサに限定されない。
[0052]システム600は、プロセッサ612によって実行される情報及び命令を格納するためにバス611に結合されたランダムアクセスメモリ(RAM)、又は他の動的記憶デバイス604(メインメモリと呼ばれる)をさらに備える。命令は、システムに、本明細書に述べられた機能のうちの1つ又は複数を実施させてもよい。メインメモリ604は、プロセッサ612による命令の実行の間、一時変数又は他の中間情報を格納するために使用することもできる。
[0053]コンピュータシステム600は、プロセッサ612用の静的情報及び命令を格納するためにバス611に結合された読取り専用メモリ(ROM)及び/又は他の静的記憶デバイス606、並びに磁気ディスクや光ディスクなど、データ記憶デバイス607、及びその対応するディスクドライブをも備える。データ記憶デバイス607は、情報及び命令の格納のためにバス611に結合される。
[0054]コンピュータシステム600は、コンピュータユーザへの情報の表示のためにバス611に結合された陰極線管(CRT:cathode ray tube)や液晶ディスプレイ(LCD:liquid crystal display)など、表示装置621にさらに結合されてもよい。英数字及び他のキーを含む英数字入力デバイス622もまた、プロセッサ612に情報及びコマンド選択を伝達するためにバス611に結合されてもよい。追加のユーザ入力デバイスは、プロセッサ612への方向情報及びコマンド選択の伝達、並びに表示装置621上のカーソル移動の制御のためにバス611に結合されたマウス、トラックボール、トラックパッド、スタイラス又はカーソル方向キーなど、カーソルコントロール623である。
[0055]バス611に結合されてもよい別のデバイスは、紙、フィルム又は類似のタイプの媒体などの媒体上で情報をマーキングするために使用できるハードコピーデバイス624である。バス611に結合されてもよい別のデバイスは、電話又は手持ち式のパームデバイスへの通信のための有線/無線通信機能625である。
[0056]本発明では、システム600及び関連するハードウェアのコンポーネントのうちのいずれかを使用してもよいし、すべてを使用してもよいことに留意されたい。しかしながら、コンピュータシステムの他の構成が、諸デバイスのうちの一部を含むことも、すべてを含むこともあることが理解されよう。
[0057]上記説明を読んだ後、当業者には本発明の多くの変更及び修正が恐らく明らかになろうが、例示するために示され述べられたどんな特定の実施形態もが決して限定的と見なされるものでないことを理解されたい。したがって、様々な実施形態の詳細への言及は、本発明に不可欠と見なされる特徴だけを列挙する特許請求の範囲の範囲を限定するものではない。

Claims (21)

  1. プロセッサにより、ソースサーバの実行状態を複製して、該実行状態を有するレプリカサーバを作成するステップと、
    ルーティング可能なインターネットプロトコル(IP)アドレスを前記レプリカサーバに割り当てるステップと、
    クライアントと前記ソースサーバとの間の、複数の進行中の接続のうちの全てより少ない前記進行中の接続を、前記ソースサーバから前記レプリカサーバに移行するステップとを含む方法。
  2. 前記ソースサーバに関するリソース使用情報を監視するステップと、
    リソースのリソース使用と閾値の関係を決定するステップであって、前記ソースサーバを複製して、前記レプリカサーバを作成するステップが、前記リソースの前記リソース使用と前記閾値の前記関係に基づいて実施される、ステップとをさらに含む、請求項1に記載の方法。
  3. 前記ソースサーバを複製して、前記レプリカサーバを作成するステップが、前記リソースの前記リソース使用が前記閾値を超えると決定することに応答して実施される、請求項2に記載の方法。
  4. 前記リソースが、記憶装置、メモリ、CPUの使用、前記ソースサーバとクライアントの間のスループット、及び前記ソースサーバとクライアントの間のラウンドトリップ時間(RTT)からなるグループから選択された1つ又は複数を備える、請求項2に記載の方法。
  5. リダイレクトすべき前記1つ又は複数の接続のうちの1つを選択するステップと、
    使用可能なサーバ位置を見つけるステップであって、前記使用可能なサーバ位置が前記レプリカサーバである、ステップと、
    前記レプリカサーバ上のリソース使用が閾値未満かどうかチェックするステップと、
    前記レプリカサーバ上のリソース使用が前記閾値未満である場合は、前記1つの接続を前記レプリカサーバに移行するステップとをさらに含む、請求項1に記載の方法。
  6. ソースサーバを複製して、レプリカサーバを作成するステップが、前記ソースサーバとレプリカサーバのCPU状態及びメモリ状態を同期させるサブステップを含む、請求項1に記載の方法。
  7. ソースサーバを複製して、レプリカサーバを作成するステップが、前記ソースサーバとレプリカサーバのオペレーティングシステムを同期させるサブステップを含む、請求項1に記載の方法。
  8. 前記ソースサーバに宛てられたパケットを停止させ、前記レプリカサーバに転送させるステップをさらに含む、請求項1に記載の方法。
  9. ルーティング可能なインターネットプロトコル(IP)アドレスを前記レプリカサーバに割り当てるステップが、ハイパーバイザを使用して実施される、請求項1に記載の方法。
  10. 前記レプリカサーバのMACアドレス及びFQDNを変更するステップをさらに含む、請求項1に記載の方法。
  11. 1つ又は複数のノードに前記ルーティング可能なIPアドレスを通知するステップをさらに含み、前記1つ又は複数のノードが、前記ルーティング可能なIPアドレスを使用して、前記レプリカサーバにパケットをルーティングするように動作可能である、請求項1に記載の方法。
  12. 前記ソースサーバ及びレプリカサーバが、それぞれ異なるネットワークの一部である、請求項1に記載の方法。
  13. 前記ソースサーバが仮想マシンを実行し、前記レプリカサーバが、複製された仮想マシンを実行し、さらに前記ルーティング可能なIPアドレスが、前記複製された仮想マシンに割り当てられる、請求項1に記載の方法。
  14. 第1のサーバと、
    第2のサーバと、
    前記第1のサーバ上で実行される仮想マシンの実行状態を前記第2のサーバ上で実行される仮想マシンで複製させ、ルーティング可能なインターネットプロトコル(IP)アドレスを、前記第2のサーバ上で実行される前記仮想マシンに割り当てさせ、クライアントと前記第1のサーバとの間の複数の進行中の接続のうちの全てより少ない前記進行中の接続を前記第2のサーバに移行させるように動作可能なリソースマネージャとを備える通信システム。
  15. 前記リソースマネージャが、前記第1のサーバに関するリソース使用情報を監視し、
    リソースのリソース使用と閾値の関係を決定するように動作可能であり、リソースマネージャが、前記リソースの前記リソース使用と前記閾値の前記関係に基づいて前記第1のサーバを複製する、請求項14に記載のシステム。
  16. 前記リソースマネージャが、前記リソースの前記リソース使用が前記閾値を超えると決定することに応答して、前記第1のサーバ上で実行された前記仮想マシンを前記第2のサーバ上で複製させる、請求項15に記載のシステム。
  17. 前記リソースが、記憶装置、メモリ、CPUの使用、前記第1のサーバとクライアントの間のスループット、及び前記第1のサーバとクライアントの間のラウンドトリップ時間(RTT)からなるグループから選択された1つ又は複数を備える、請求項15に記載のシステム。
  18. 前記第1のサーバ上で実行された前記仮想マシンが、前記第1のサーバと第2のサーバのCPU状態及びメモリ状態を同期させ、前記第1のサーバと第2のサーバのオペレーティングシステムを同期させることによって前記第2のサーバ上で複製される、請求項14に記載のシステム。
  19. 前記リソースマネージャに通信可能に結合された負荷分散装置をさらに備え、前記リソースマネージャが、前記負荷分散装置に、前記第1のサーバに宛てられたパケットの転送を停止し、それらが前記第1のサーバから前記第2のサーバに移行される接続の一部である場合には前記パケットを前記第2のサーバに転送するように指示する、請求項14に記載のシステム。
  20. ルーティング可能なインターネットプロトコル(IP)アドレスを前記第2のサーバ上で実行される前記仮想マシンに割り当てるハイパーバイザをさらに備える、請求項14に記載のシステム。
  21. プロセッサによって実行されるとき、前記プロセッサに、
    ソースサーバの実行状態を複製して、該実行状態を有するレプリカサーバを作成するステップと、
    ルーティング可能なインターネットプロトコル(IP)アドレスを前記レプリカサーバに割り当てるステップと、
    クライアントと前記ソースサーバとの間の、複数の進行中の接続のうちの全てより少ない前記進行中の接続を、前記ソースサーバから前記レプリカサーバに移行するステップとを含む方法を実行させる命令を格納するコンピュータ読取り可能記憶媒体。
JP2012502212A 2009-03-25 2010-03-24 ライブレプリケーションのための方法及び装置 Active JP5509313B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16337209P 2009-03-25 2009-03-25
US61/163,372 2009-03-25
US12/730,114 2010-03-23
US12/730,114 US9037718B2 (en) 2009-03-25 2010-03-23 Method and apparatus for live replication
PCT/US2010/028525 WO2010111410A2 (en) 2009-03-25 2010-03-24 A method and apparatus for live replication

Publications (3)

Publication Number Publication Date
JP2012524919A JP2012524919A (ja) 2012-10-18
JP2012524919A5 JP2012524919A5 (ja) 2013-01-31
JP5509313B2 true JP5509313B2 (ja) 2014-06-04

Family

ID=42781861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012502212A Active JP5509313B2 (ja) 2009-03-25 2010-03-24 ライブレプリケーションのための方法及び装置

Country Status (3)

Country Link
US (1) US9037718B2 (ja)
JP (1) JP5509313B2 (ja)
WO (1) WO2010111410A2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8966027B1 (en) * 2010-05-24 2015-02-24 Amazon Technologies, Inc. Managing replication of computing nodes for provided computer networks
US20120151257A1 (en) * 2010-12-10 2012-06-14 Mitel Networks Corporation Hardware turnkey mobiltity
JP5462197B2 (ja) * 2011-02-04 2014-04-02 日本電信電話株式会社 移行制御装置、パケット転送システム、移行制御方法およびプログラム
US9104460B2 (en) * 2011-05-31 2015-08-11 Red Hat, Inc. Inter-cloud live migration of virtualization systems
US8484161B2 (en) * 2011-08-29 2013-07-09 Oracle International Corporation Live file system migration
DE102011116866A1 (de) * 2011-10-25 2013-04-25 Fujitsu Technology Solutions Intellectual Property Gmbh Clustersystem und Verfahren zum Ausführen einer Mehrzahl von virtuellen Maschinen
US8893147B2 (en) 2012-01-13 2014-11-18 Ca, Inc. Providing a virtualized replication and high availability environment including a replication and high availability engine
GB2504987B (en) * 2012-08-16 2018-01-31 Metaswitch Networks Ltd Service migration
EP2733606A3 (en) * 2012-11-15 2014-06-11 Samsung Electronics Co., Ltd Method for loading a process on an electronic device based on a user event
US9392066B2 (en) * 2013-04-24 2016-07-12 Cisco Technology, Inc. Connection persistence across server farms in a network environment
US9971785B1 (en) 2013-09-05 2018-05-15 Nutanix, Inc. System and methods for performing distributed data replication in a networked virtualization environment
US10002173B1 (en) * 2013-09-16 2018-06-19 Nutanix, Inc. System and methods for dynamically adjusting between asynchronous and synchronous data replication policies in a networked virtualization environment
US9817606B1 (en) 2013-09-16 2017-11-14 Nutanix, Inc. System and methods for dynamically adjusting between asynchronous and synchronous data replication policies in a networked virtualization environment
GB2525434A (en) 2014-04-25 2015-10-28 Ibm Method and device for duplicating a data center
US9396004B1 (en) * 2015-04-21 2016-07-19 Zerto Ltd. System and method for management of a configuration of a virtual machine
WO2016193433A1 (en) * 2015-06-05 2016-12-08 Deutsche Telekom Ag A system and method for facilitating migration of server infrastructure services
EP3101541A1 (en) * 2015-06-05 2016-12-07 Deutsche Telekom AG A system and method for facilitating migration of server infrastructure services
US11875169B2 (en) * 2020-07-21 2024-01-16 Google Llc Optimizing replication-based migration of virtual machines

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6880002B2 (en) * 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7080378B1 (en) * 2002-05-17 2006-07-18 Storage Technology Corporation Workload balancing using dynamically allocated virtual servers
US7454489B2 (en) * 2003-07-01 2008-11-18 International Business Machines Corporation System and method for accessing clusters of servers from the internet network
US20050080913A1 (en) * 2003-10-09 2005-04-14 Thomas David Andrew Method and system for querying information from a switch by a server in a computer network
US8868858B2 (en) * 2006-05-19 2014-10-21 Inmage Systems, Inc. Method and apparatus of continuous data backup and access using virtual machines
US20060069761A1 (en) * 2004-09-14 2006-03-30 Dell Products L.P. System and method for load balancing virtual machines in a computer network
US8655850B2 (en) * 2005-12-19 2014-02-18 Commvault Systems, Inc. Systems and methods for resynchronizing information
US20080201455A1 (en) * 2007-02-15 2008-08-21 Husain Syed M Amir Moving Execution of a Virtual Machine Across Different Virtualization Platforms
US8468310B2 (en) * 2007-07-31 2013-06-18 Vmware, Inc. Method and system for tracking data correspondences
US20090249330A1 (en) * 2008-03-31 2009-10-01 Abercrombie David K Method and apparatus for hypervisor security code
JP2009252204A (ja) * 2008-04-11 2009-10-29 Hitachi Ltd 計算機の運用管理システム及び運用管理方法
US9081624B2 (en) * 2008-06-26 2015-07-14 Microsoft Technology Licensing, Llc Automatic load balancing, such as for hosted applications
US8135930B1 (en) * 2008-07-14 2012-03-13 Vizioncore, Inc. Replication systems and methods for a virtual computing environment
US9727320B2 (en) * 2009-02-25 2017-08-08 Red Hat, Inc. Configuration of provisioning servers in virtualized systems

Also Published As

Publication number Publication date
WO2010111410A2 (en) 2010-09-30
JP2012524919A (ja) 2012-10-18
US20100250718A1 (en) 2010-09-30
US9037718B2 (en) 2015-05-19
WO2010111410A3 (en) 2015-01-08

Similar Documents

Publication Publication Date Title
JP5509313B2 (ja) ライブレプリケーションのための方法及び装置
CN108475251B (zh) 针对容器的虚拟网络、热交换、热缩放与灾难恢复
CN114946166B (zh) 在包括云边缘位置的异构计算环境中的动态资源移动的方法和系统
US10255147B2 (en) Fault tolerance for containers in a virtualized computing environment
US10684888B1 (en) Self-organizing server migration to service provider systems
US8812566B2 (en) Scalable storage for virtual machines
US9753669B2 (en) Real time cloud bursting
WO2017182000A1 (zh) 一种应用实例迁移的方法及设备、计算机存储介质
US9378068B2 (en) Load balancing for a virtual networking system
US11153194B2 (en) Control plane isolation for software defined network routing services
RU2653292C2 (ru) Перенос служб через границы кластеров
US11662928B1 (en) Snapshot management across cloud provider network extension security boundaries
WO2016121830A1 (ja) 仮想ネットワークファンクション管理装置、システム、ヒーリング方法及びプログラム
JP6432955B2 (ja) 仮想ネットワーク機能インスタンスをマイグレーションさせるための方法、装置およびシステム
US10462009B1 (en) Replicating customers' information technology (IT) infrastructures at service provider networks
JP2006107500A (ja) ソフトウェアの実行中にソフトウェアを更新すること
US11461123B1 (en) Dynamic pre-copy and post-copy determination for live migration between cloud regions and edge locations
JP2016170669A (ja) 負荷分散機能配備方法、負荷分散機能配備装置および負荷分散機能配備プログラム
US20150372935A1 (en) System and method for migration of active resources
US11573839B1 (en) Dynamic scheduling for live migration between cloud regions and edge locations
US20240036996A1 (en) Methods and systems to improve input/output (i/o) resumption time by batching multiple non-conflicting operations during a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system
US11809735B1 (en) Snapshot management for cloud provider network extensions
JP6562744B2 (ja) システム、及び制御方法
CN114844906A (zh) 多个数据流的处理方法及相关系统
US12111739B1 (en) Data caching in reserved storage capacity of cloud provider network extensions

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140324

R150 Certificate of patent or registration of utility model

Ref document number: 5509313

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250