(57)【要約】方法は、ネットワーク要素インスタンスをホストする第１の計算インスタンスからネットワーク要素データを受信するステップを含む。ネットワーク要素データは、ネットワーク要素インスタンスに関連付けられた識別情報および状態情報を含む。この方法は、ネットワーク要素識別子と、状態情報の分類のテーブル識別子とを含むネットワーク要素データに基づいてキーを生成することを含む。ネットワーク要素識別子は、識別情報に関連付けられている。この方法は、キーおよび状態情報をデータベースに記憶するステップと、第１の計算インスタンスの障害を決定するステップとを含む。この方法は、ネットワーク要素インスタンスのネットワーク要素識別子に関連付けられたキーを決定するステップと、アクティブ化データを第２の計算インスタンスに送信するステップとを含む。アクティブ化データは、状態情報を含む第１のネットワーク識別子に関連付けられたキーに関連付けられたレコードを検索して、第１のネットワーク要素インスタンスを再作成する命令に関連付けられている。
2019507413.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークにおいてデータベースに基づく冗長性を提供するコンピュータで実行される方法であって、前記コンピュータで実行される方法は、
計算装置によって、ネットワーク要素データを第１の計算インスタンスから受信するステップであって、前記第１の計算インスタンスが、ネットワーク要素インスタンスの少なくとも一部分をホストし、前記ネットワーク要素データが、前記ネットワーク要素インスタンスに関連付けられた識別情報および状態情報を含むステップと、
前記計算装置によって、前記ネットワーク要素データに基づく複合キーを作成するステップであって、前記複合キーが、
前記識別情報に関連付けられたネットワーク要素識別子（ＩＤ）と、
前記状態情報の分類に関連付けられたテーブルＩＤとを含む、ステップと、
前記計算装置によって、前記複合キーおよび関連状態情報を前記計算装置に関連付けられたデータベース内のレコードとして記憶するステップと、
前記計算装置によって、前記第１の計算インスタンスに関連付けられた障害を決定するステップと、
前記計算装置によって、前記ネットワーク要素インスタンスに関連付けられた前記ネットワーク要素ＩＤに関連付けられた分散キーを決定するステップと、
前記計算装置によって、アクティブ化データを第２の計算インスタンスに送信するステップであって、前記アクティブ化データが、状態情報を含む前記第１のネットワークＩＤに関連付けられた前記分散キーに関連付けられたレコードを前記データベースから検索して、第１のネットワーク要素インスタンスを前記第２の計算インスタンス上で再作成する命令に関連付けられている、ステップと
を含む、コンピュータで実行される方法。
【請求項２】
前記計算装置によって、書き込み要求データを前記計算インスタンスに送信するステップをさらに含み、前記書き込み要求データは、前記ネットワーク要素データをデータベースに書き込む命令に関連付けられている、請求項１に記載のコンピュータで実行される方法。
【請求項３】
前記複合キーが、
前記テーブルＩＤおよび前記ネットワーク要素ＩＤに対応する前記状態情報に関連付けられたテーブル行キー、および
前記ネットワーク要素インスタンスをホストする計算インスタンスに関連付けられた計算インスタンスＩＤのうちの少なくとも１つをさらに含む、請求項１に記載のコンピュータで実行される方法。
【請求項４】
前記分散キーが、仮想マシンＩＤおよびテーブルＩＤのうちの少なくとも１つをさらに含む、請求項３に記載のコンピュータで実行される方法。
【請求項５】
前記計算装置および前記計算インスタンスが、第１のデータセンターに配置される、請求項１に記載のコンピュータで実行される方法。
【請求項６】
前記計算装置が第１のデータセンターに配置され、前記計算インスタンスが第２のデータセンターに配置され、前記第１のデータセンターが前記第２のデータセンターとは異なる、請求項１に記載のコンピュータで実行される方法。
【請求項７】
前記計算インスタンスが、仮想マシン、コンテナおよびベアメタルサーバのうちの少なくとも１つである、請求項１に記載のコンピュータで実行される方法。
【請求項８】
前記計算装置によって、前記ネットワーク要素データを前記データベースに記憶するステップをさらに含む、請求項１に記載のコンピュータで実行される方法。
【請求項９】
通信ネットワークにおいてデータベースに基づく冗長性を提供するコンピュータシステムであって、前記システムは、
前記コンピュータシステム内のプロセッサと、
前記プロセッサと通信するメモリとを含み、
前記メモリは、前記プロセッサに、
ネットワーク要素インスタンスに関連付けられた識別情報および状態情報を含むネットワーク要素データを、前記ネットワーク要素インスタンスの少なくとも一部分をホストする第１の計算インスタンスから受信させ、
前記識別情報に関連付けられたネットワーク要素識別子（ＩＤ）と、前記状態情報の分類に関連付けられたテーブルＩＤとを含む、前記ネットワーク要素データに基づく複合キーを作成させ、
前記複合キーおよび関連状態情報をデータベース内のレコードとして記憶させ、
前記第１の計算インスタンスに関連付けられた障害を決定し、
前記ネットワーク要素インスタンスに関連付けられた前記ネットワーク要素ＩＤに関連付けられた分散キーを決定させ、
状態情報を含む前記第１のネットワークＩＤに関連付けられた前記分散キーに関連付けられたレコードを前記データベースから検索して、第１のネットワーク要素インスタンスを前記第２の計算インスタンス上で再作成する命令に関連付けられたアクティブ化データを、第２の計算インスタンスに送信させるように構成された命令を含む、システム。
【請求項１０】
前記メモリが、前記プロセッサに、書き込み要求データを前記計算インスタンスに送信させるように構成された命令をさらに含み、前記書き込み要求データは、前記ネットワーク要素データをデータベースに書き込む命令に関連付けられている、請求項９に記載のシステム。
【請求項１１】
前記複合キーが、
前記テーブルＩＤおよび前記ネットワーク要素ＩＤに対応する前記状態情報に関連付けられたテーブル行キー、および
前記ネットワーク要素インスタンスをホストする計算インスタンスに関連付けられた計算インスタンスＩＤのうちの少なくとも１つをさらに含む、請求項９に記載のシステム。
【請求項１２】
前記分散キーが、仮想マシンＩＤおよびテーブルＩＤのうちの少なくとも１つをさらに含む、請求項１１に記載のシステム。
【請求項１３】
前記コンピュータシステムおよび前記計算インスタンスが、第１のデータセンターに配置される、請求項９に記載のシステム。
【請求項１４】
前記コンピュータシステムが前記第１のデータセンターに配置され、前記計算インスタンスが第２のデータセンターに配置され、前記第１のデータセンターが前記第２のデータセンターとは異なる、請求項９に記載のシステム。
【請求項１５】
前記計算インスタンスが、仮想マシン、コンテナおよびベアメタルサーバのうちの少なくとも１つである、請求項９に記載のシステム。
【請求項１６】
前記コンピュータシステムによって、前記ネットワーク要素データを前記データベースに記憶することをさらに含む、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１６年１月１５日に出願された米国仮出願第６２／２７９，２４０号「Ｄａｔａｂａｓｅ  Ｂａｓｅｄ  Ｒｅｄｕｎｄａｎｃｙ  ｉｎ  ａ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｎｅｔｗｏｒｋ」の優先権を主張するものであり、その内容は参照により本明細書に組み込まれる。
【０００２】
本開示は電気通信の分野に関連し、より具体的には通信ネットワークにおける冗長化のためにデータベースを使用する技術に関する。
【背景技術】
【０００３】
高可用性の冗長通信アプリケーションを実現するための従来の手法では、第１の計算インスタンスから第２の計算インスタンスへの状態の同期を可能にするために、計算要素（例えば仮想マシン（ＶＭ）やホスト）の数は少なくともＮ＋１であり、場合によっては２Ｎである。全ての重要な状態が２番目の場所のメモリに複製される必要があるため、必要なメモリは合計で２Ｎである。この解決策を実現するために、第１の計算インスタンスから状態をプッシュして第２の計算インスタンスにインストールするコードを記述してテストする必要がある。このプロセスではＣＰＵサイクルが消費されるため、さもなければシステムがトランザクションを処理することができる最大速度が低下する。最終的には、冗長性を追加しようとする努力が原因で、より低速であまり利用することができないシステムとなる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一態様では、通信ネットワークにおいてデータベースに基づく冗長性を提供する方法およびシステムが提供される。
【課題を解決するための手段】
【０００５】
本発明の別の態様では、通信ネットワークにおいてデータベースに基づく冗長性を提供するコンピュータで実行される方法は、計算装置によって、第１の計算インスタンスからネットワーク要素データを計算し受信するステップを含む。第１の計算インスタンスは、ネットワーク要素インスタンスの少なくとも一部分をホストする。ネットワーク要素データは、ネットワーク要素インスタンスに関連付けられた識別情報および状態情報を含む。この方法はまた、計算装置によって、ネットワーク要素データに基づく複合キーを作成するステップを含む。複合キーは、ネットワーク要素識別子（ＩＤ）と、状態情報の分類に関連付けられたテーブルＩＤとを含む。ネットワーク要素ＩＤは、識別情報に関連付けられている。この方法はまた、計算装置によって、複合キーおよび関連状態情報を計算装置に関連付けられたデータベース内のレコードとして記憶するステップと、計算装置によって、第１の計算インスタンスに関連付けられた障害を決定するステップとを含む。この方法は、計算装置によって、ネットワーク要素インスタンスに関連付けられたネットワーク要素ＩＤに関連付けられた分散キーを決定するステップと、計算装置によって、アクティブ化データを第２の計算インスタンスに送信するステップとをさらに含む。アクティブ化データ（活性化データ）は、状態情報を含む第１のネットワークＩＤに関連付けられた分散キーに関連付けられたレコードをデータベースから検索して、第１のネットワーク要素インスタンスを第２の計算インスタンス上で再作成する命令に関連付けられている。
【０００６】
本発明の一実施形態では、この方法は、計算装置によって、書き込み要求データを計算インスタンスに送信するステップをさらに含む。書き込み要求データは、ネットワーク要素データをデータベースに書き込む命令に関連付けられている。
【０００７】
本発明の一実施形態では、複合キーは、テーブル行キーおよび／または計算インスタンスＩＤをさらに含む。テーブル行キーは、テーブルＩＤおよびネットワーク要素ＩＤに対応する状態情報に関連付けられている。計算インスタンスＩＤは、ネットワーク要素インスタンスをホストしている計算インスタンスに関連付けられている。
【０００８】
本発明の一実施形態では、分散キーは、仮想マシンＩＤおよびテーブルＩＤのうちの少なくとも１つをさらに含む。
【０００９】
本発明の一実施形態では、計算装置および計算インスタンスは、第１のデータセンター（中央施設）に配置される。
【００１０】
本発明の一実施形態では、計算装置は第１のデータセンター（施設）に配置され、計算インスタンスは第２のデータセンターに配置される。第１のデータセンターは第２のデータセンターとは異なる。
【００１１】
本発明の一実施形態では、計算インスタンスは、仮想マシン、コンテナおよびベアメタル（bare metal：地金）サーバのうちの少なくとも１つである。
【００１２】
本発明の一実施形態の下では、この方法は、計算装置によって、ネットワーク要素データをデータベースに記憶するステップをさらに含む。
【００１３】
本発明の別の態様では、通信ネットワークにおいてデータベースに基づく冗長性を提供するコンピュータシステムは、コンピュータシステム内のプロセッサと、プロセッサと通信するメモリとを含み、メモリは、プロセッサに、または上述した任意の動作および／または全ての動作を実行させるように構成された命令を含む。
【００１４】
上記の態様および実施形態のいずれも、本明細書に記載の他の態様および実施形態と組み合わせることができ、本発明の範囲内にとどまる。
【００１５】
開示の主題におけるこれらの機能および他の機能は、以下の図面、詳細な説明および請求項を検討することによって十分に理解されるであろう。本明細書で使用される表現および用語は、説明を目的としており、限定的であるとみなされるべきではないことを理解されたい。
【００１６】
開示の主題の様々な目的、特徴および利点は、同様の参照番号が同様の要素を示す以下の図面に関連して考慮する場合に、開示の主題における以下の詳細な説明を参照することにより、より十分に理解することができる。
【図面の簡単な説明】
【００１７】
【図１】本開示のいくつかの実施形態による、ネットワーク化されたシステムを示す系統図である。
【図２】通信ネットワーク全体に分散された仮想マシン間のネットワーク要素における冗長性を実現する従来の方法を示す系統図である。
【図３】通信ネットワーク全体に分散された仮想マシン間のネットワーク要素における冗長性を実現する従来の方法を示す系統図である。
【図４】本開示のいくつかの実施形態に記載の、単一のデータセンターにおけるデータベースに基づく冗長化システムを示す系統図である。
【図５】本開示のいくつかの実施形態に記載の、複数のデータセンターにわたるクラスタに使用されるデータベースに基づく冗長化システムを示す系統図である。
【図６】本開示のいくつかの実施形態による、データベースに提示される複合キーを示す図である。
【図７】本開示のいくつかの実施形態による、ネットワーク要素のデータベースに基づく冗長性を示すフローチャートである。
【図８】本開示のいくつかの実施形態による、オーケストレータおよびネットワーク機能仮想化インフラストラクチャを示すシステム図である。
【発明を実施するための形態】
【００１８】
現在、ゲートウェイＧＰＲＳサポートノード（ＧＧＳＮ）、サービングゲートウェイ（ＳＧＷ）、パケットデータネットワークゲートウェイ（ＰＧＷ）、信頼ＷＬＡＮアクセスゲートウェイ／信頼ＷＬＡＮアクセスプロキシ（ＴＷＡＧ／ＴＷＡＰ）、進化型パケットデータゲートウェイ（ｅＰＤＧ）などの通信事業者アプリケーションは、内部のステートフルな冗長機構で構築されている。これらの機構は、例えば２つの計算インスタンス（例えば仮想マシン（ＶＭ）、２つのコンテナ、２つのベアメタルサーバなど）に対する２つのプロセスなど、分散システム内の少なくとも２つの場所に記憶された加入者またはデータフローの処理中に、３ＧＰＰ、ＩＥＴＦ、ＥＴＳＩ、または他の機構によって定義された特定のプロトコルにおける現在の状態に関連する一般的に重要な動的情報をもたらす。本明細書で使用されるように、仮想マシンを説明する実施形態をコンテナおよびベアメタルサーバにも等しく適用することができる。このような動的状態には、モビリティの位置などの呼状態と、課金状態（例えば使用カウンタ）とが含まれる。動的状態は非常に急速に変化する可能性がある。例えば課金状態は、加入者に代わって処理される各パケットに更新することができる。従来のメモリ間冗長化手法であっても、この頻度で内部状態の更新をめったに実行せず、より一般的には、スナップショット更新の期間が複製データの不正確さに対する許容度に基づく時間ベースのスナップショット手法を用いる。いくつかの実施形態では、遅延による不完全な情報のために不正確さが生じる。
【００１９】
従来のメモリ間冗長機構は、一般的にアプリケーション開発者によって手作業でコーディングされており、したがって、冗長スキームを組み込む複雑性が増加するために全体的な障害発生率が上昇すると言えるほどにエラーが発生しやすい。
【００２０】
ネットワーク機能仮想化（ＮＦＶ）の到来により、システムの作成および展開がより迅速になり、運用がより簡単になることが期待されている。仮想化インフラストラクチャ（ホスト、スイッチ、ストレージ）の適応性により、さらなる冗長性が追加され、それによって通信事業者アプリケーションの手法を簡略化する可能性がもたらされる。
【００２１】
従来のＳＱＬデータベースおよびその他のｎｏｎ−ＳＱＬデータベースは、比較的高いトランザクション速度および高い可用性を提供する。さらに、データベース複製による地理的冗長性が一般的に裏付けられている。特定のデータ損失（例えば課金関連カウンタの定期的な更新）に対する若干の許容度を含むこれらの特性を利用することにより、通信事業者アプリケーションの冗長性の複雑性が大幅に低減され、計算およびメモリの要件が減少する。
【００２２】
いくつかの実施形態では、メモリ間の同期を排除することは、データベース（例えばＳＱＬデータベースまたはｎｏｎ−ＳＱＬデータベース）を利用して冗長データを記憶することによって達成することができる。データベースは、イベント駆動（例えば呼設定またはハンドオーバ）ベースで更新することができ、または時間駆動ベースでそれほど重要ではない状態（例えばいくつかの増分の使用を表す課金状態）で更新することができる。特に、データセンターに既に大規模データベースが導入されている場合、この目的でデータベースを使用する増分コストは最小限に抑えられる。障害が発生した場合、システム内のエージェントは、オブジェクト所有権の責任をシステムクラスタの残存メンバに再割り当てし、これにより、残されたオブジェクトをデータベースから取得してサービスに戻すことができる。
【００２３】
データベースの段階で地理的冗長性を使用することにより、本明細書で説明する技術をマルチサイト冗長化に使用することもできる。例えば、３つのアクティブ状態（起動状態）のサイトと、３つのサイト全てに利益をもたらすように動作する１つのスタンバイ状態のサイトとが存在する場合、ＶＭの３つの個別セットを前段階に置く必要はない。実際に、障害が認識されるまでは、全て予めインスタンス化することはできない。障害が認識されると、ＶＭのクラスタが構築されるか、または予め構築されたクラスタがアクティブ化（活性化）され、障害が発生したサイトに代わって動作する責任が割り当てられる。完了すると、新規クラスタは適切な状態をデータベースから検索し、進行中のデューティを開始する。
【００２４】
いくつかの実施形態では、本明細書に記載の技術の重要な態様は、冗長状態がデータベースから読み取られる速度である。データベースは、高速の同時読み取りアクセスにおいて非常に優れているが、読み取るデータの正確なサブセットを識別するために広範囲に及ぶリレーショナル検索が必要とされる場合には、大幅に速度が落ちる可能性がある。いくつかの実施形態では、冗長状態をデータベースからより速く読み出す速度を維持するために、構造化スキーマ設計を含むデータベースが使用される。
【００２５】
いくつかの実施形態では、本明細書に記載の技術は、スキーマ設計に関する。本明細書で説明するように、スキーマ設計は、ＳＱＬデータベースと同様にｎｏ−ＳＱＬデータベースの実装に適している。Ｎｏ−ＳＱＬデータベースは高速書き込みと大量の読み出しのために最適化されている。典型的なｎｏ−ＳＱＬデータベース（例えばＣａｓｓａｎｄｒａ、Ａｐａｃｈｅ  Ｇｅｏｄｅ）は、単一の均一分散キーのみを利用するクラスタ化された手段である。Ｎｏ−ＳＱＬデータベースには、インメモリデータベース（例えばＡｐａｃｈｅ  Ｇｅｏｄｅ）およびディスクベースのデータベースまたは永続的データベース（例えばＣａｓｓａｎｄｒａ）が含まれる。同じ分散キーを含む全てのレコードは同じサーバに書き込まれる。例えば、本明細書で説明する技術は、３タプル（ソースＶＭ−ＩＤ、ＩＭＳＩ、作成時間）によって各レコードを一意的に識別することができる携帯電話通信セッションレコードのデータベーステーブルを使用することを含む。複合キーの最も重要な部分のみがクラスタ分散の目的で使用されるので、クラスタ化ネットワーク要素内の同じＶＭによって管理される全てのセッションおよび関連データを、同じサーバ（例えばＣａｓｓａｎｄｒａサーバ、Ａｐａｃｈｅサーバ）に記憶することができる。ＶＭに障害が発生して再作成された場合、このＶＭの新規インスタンスは、先行するＶＭインスタンスによって保存された全ての状態データを迅速に検索することができる。
【００２６】
図１は、本開示のいくつかの実施形態による、ネットワーク化されたシステム１００を示す系統図である。システム１００は、ユーザ機器１０２と、サーバ１０４と、ネットワーク１０６とを含む。システム１００は、ユーザ機器（ＵＥ）１０２、進化型ノードＢ（ｅＮｏｄｅＢ）１０４、マルチメディアメッセージングサービス（ＭＭＥ）１０６、サービングゲートウェイ（ＳＧＷ）モジュール１０８、パケットデータネットワークゲートウェイ（ＰＧＷ）／ゲートウェイＧＰＲＳサポートノード（ＧＧＳＮ）１１０、ポリシーおよび課金ルール機能（ＰＣＲＦ）１１２、ギガビット無線（Ｇｉ）ネットワーク１１４、認証、許可および課金（ＡＡＡ）１１６、オンライン課金システム（ＯＣＳ）１１８、外部サーバ／サイト１２０、ネットワーク要素グループ１３０を含む。
【００２７】
ＵＥ１０２は、ｅＮｏｄｅＢ１０４を介してネットワーク化されたシステム１００に接続する。ＵＥ１０２は、モバイルデータネットワーク（例えば携帯電話、タブレット、ラップトップ）に接続するように構成された計算装置を含む。ｅＮｏｄｅＢ１０４は、セルサイトの無線部分である。単一のｅＮｏｄｅＢ１０４は、いくつかの無線式の送信機、受信機、制御部および電源を含んでもよい。ｅＮｏｄｅＢ１０４は、ＭＭＥ１０６およびＳＧＷ１０８にバックホールされてもよい。バックホールは、パケットまたは通信信号を、処理のために比較的長距離にわたって別の場所に転送するプロセスである。ＳＧＷ１０８は、ユーザデータパケットをルーティングして転送する一方で、ｅＮｏｄｅＢ間のハンドオーバ中にユーザプレーンのモビリティアンカとしても機能する。ＭＭＥ１０６は、ネットワーク化されたシステム１００における制御ノードである。ＭＭＥ１０６は、ＬＴＥ無線ネットワークに接続するＵＥ１０２の移動性および安全性機能も含むＬＴＥ関連制御プレーンシグナリングを処理する。ＭＭＥ１０６はまた、トラッキングエリア管理およびページング手順のサポートを含む、休止モードにあるＵＥを処理する。
【００２８】
ＰＧＷ／ＧＧＳＮ１１０は、モバイルネットワークと外部ＩＰネットワークとの間の相互接続点であり、ポリシー施行、ＩＰアドレス割当ておよび課金機能を処理する。ＰＧＷおよびＧＧＳＮは同様の機能を果たし、３Ｇネットワーク、４ＧネットワークおよびＬＴＥネットワークのために、本開示では交換可能に使用される。ＰＣＲＦ１１２（ポリシーおよび課金ルール機能）はＰＧＷとインタフェースをとって、各加入者に対して施行する適切なポリシーをＰＧＷに提供する。Ｇｉネットワーク１１４は、ＰＧＷをパケットデータネットワークまたはインターネットに接続するインターネットプロトコル（ＩＰ）ベースのネットワークである。Ｇｉネットワーク１１４は、外部のサーバまたはサイト１２０に接続する。ＡＡＡ１１６は、認証、許可および課金サーバであり、ＰＧＷに対する許可、ポリシー施行および課金／課金サービスを提供する。ＯＣＳ１１８は、サービスプロバイダが顧客のモバイルサービスの実時間使用に基づいて顧客に課金することを可能にするオンライン課金システムである。
【００２９】
図１に示すように、ネットワーク要素グループ１３０は、サービングゲートウェイ（ＳＧＷ）モジュール１０８およびパケットデータネットワークゲートウェイ（ＰＧＷ）／ゲートウェイＧＰＲＳサポートノード（ＧＧＳＮ）１１０を含む。ネットワーク要素グループ１３０は、オペレータ（本明細書ではクラスタとも呼ぶ）によって決定されたネットワーク要素またはサービスグループのいずれかまたは組合せとすることができる。いくつかの実施形態では、ネットワーク要素グループ１３０は、地理的グループ（例えば、地理的に同じ場所に配置されたネットワークノードおよび／または機能のセット）である。サービスグループは、ＳＧＷ、ＰＧＷ、ＧＧＳＮ、および／またはｅＰＤＧを含むことができる。サービスはまた、Ｗｅｂプロキシ、ビデオ／イメージトランスコーディング、パケット検査（ＤＰＩ）、課金、ＱｏＳ、ＶｏＬＴＥを含むこともできる。ＳＧＷ／ＰＧＷはまた、音声およびデータのためのセッションサービスと見なすこともできる。ネットワーク要素グループ１３０はまた、例えばループバックＩＰ、ＵＥ  ＩＰサブプール、Ｇｘインタフェース、Ｇｙインタフェース、Ｇｚインタフェース、ＡＡＡインタフェース、ＧＴＰインタフェースなどのサービスに関連するサービス構築オブジェクトを含むことができる。以下でより詳細に説明するように、仮想マシン（ＶＭ）を、個々のサービスまたはサービスの一部またはサービスの集合に関連付けることができる。
【００３０】
本明細書で説明するように、データベースに基づく冗長性を使用する本明細書に記載の技術は、（本明細書では仮想化ネットワーク機能（ＶＮＦ）とも呼ばれる）クラスタ化仮想ネットワーク要素または仮想ノードおよび非クラスタ化仮想ネットワーク要素または仮想ノードの両方に適用することができる。クラスタはネットワーク要素またはＶＭのグループを含み、これにより、要素メンバ間の内部調整が行われる。クラスタを使用すると、一般的に要素の内部動作または内部トポロジが非表示になる傾向がある。つまり、外部からは、クラスタは単一のネットワーク要素とみなされる。本明細書で使用されるように、クラスタ化は密結合クラスタ化とも呼ばれる。非クラスタ化ＶＮＦは、要素間のトポロジまたは内部接続が非表示になるようなネットワーク要素またはＶＭを含む。
【００３１】
図２は、通信ネットワーク全体に分散された仮想マシン間のネットワーク要素の冗長性を実現する従来の方法を示す系統図である。図２は、ＶＭ１  ２１０およびＶＭ２  ２２０を示している。ＶＭ１は、第１のバンドル１  ２１１と第２のバンドル２´２１２とを含む。ＶＭ２は、第２のバンドル１´２２１と第１のバンドル２  ２２２とを含む。図２に示すように、各仮想マシンは、第１のバンドルおよび第２のバンドルの両方を有することができる。いくつかの実施形態では、第１のＶＭを第１のバンドルにのみ関連付けることができ、第２のＶＭを対応する第２のバンドルにのみ関連付けることができる。
【００３２】
ＶＭ１  ２１０およびＶＭ２  ２２０の各々は、第１のバンドルおよび第２のバンドルを含む（第２のバンドルは（´）で示される）。本明細書で参照されるように、バンドルは、ネットワーク要素（通信セッションに関連するデータ）に関連付けられた状態の集合を指す。ＶＭ１  ２１０に障害が発生すると、ＶＭ２  ２２０はバンドル１に冗長性を提供し、バンドル１をホストする責任をＶＭ１  ２１０から引き継ぐ。
【００３３】
図３は、通信ネットワーク全体に分散された仮想マシン間のネットワーク要素をバックアップする従来の方法を示す系統図である。図３は、ＶＭ１  ３１０、ＶＭ２  ３２０およびＶＭ３  ３３０を示している。ＶＭ１は、バンドル１  ３１１、バンドル２  ３１２、バンドル３  ３１３、バンドル４´３１４、バンドル７´３１７およびバンドル９´３１９を含む。ＶＭ２は、バンドル４  ３２４、バンドル５  ３２５、バンドル６  ３２６、バンドル１´３２１、バンドル２´３２２およびバンドル８´３２８を含む。ＶＭ３  ３３０は、バンドル７  ３３７、バンドル８  ３３８、バンドル９  ３３９、バンドル３  ´３３３、バンドル５´３３５、およびバンドル６´３３６を含む。
【００３４】
ＶＭ１  ３１０、ＶＭ２  ３２０およびＶＭ３  ３３０の各々は、第１のバンドルおよび第２のバンドルを含む（第２のバンドルは（´）で示される）。上述したように、バンドルは、ネットワーク要素に関連付けられた状態の集合を参照することができる。例えば、ＶＭ１  ３１０は、バンドル１  ３１１、バンドル２  ３１２およびバンドル３  ３１３の第１のインスタンスと、バンドル４´３１４、バンドル７´３１７およびバンドル９´３１９の第２のインスタンスとを含む。いくつかの実施形態では、各バンドルはロールとランタイム状態とを有する。ロールは第１のロールまたは第２のロールとすることができ、ランタイムはアクティブ状態またはスタンバイ状態とすることができる。好ましい実施形態では、第１のバンドルはアクティブ状態に関連付けられ、第２のバンドルはスタンバイ状態に関連付けられる。第２のバンドルが常にアクティブであるとは限らないが、第１のバンドルから第２のバンドルに操作が転送された場合は、第２のバンドルのＶＭに領域が割り当てられる。図３に示すように、バンドルを互いに関連付けて、ＶＭ上にクラスタを形成することができる。例えば、ＶＭ１  ３１０上のバンドル１  ３１１、バンドル２  ３１２、バンドル３  ３１３、バンドル４´３１４、バンドル７´３１７、およびバンドル９´３１９は、クラスタを形成することができる。
【００３５】
図３に示すように、第１のバンドルの各々は、異なる仮想マシン上に配置された第２のバンドルに関連付けられている。ＶＭ内における第１のバンドルの各セットはまた、２つ以上の他のＶＭにバックアップされる。例えば、ＶＭ１  ３１０上のバンドル１  ３１１およびバンドル２  ３１２は、ＶＭ２  ３２０上のバンドル１´３２１およびバンドル２´３２２にそれぞれ関連付けられる一方で、ＶＭ１  ３１０上のバンドル３  ３１３はＶＭ３  ３３０上のバンドル３´３３３に関連付けられる。ＶＭ１  ３１０、ＶＭ２  ３２０およびＶＭ３  ３３０の各々を、同じ場所または異なる地理的場所に配置することができる。ＶＭ１  ３１０、ＶＭ２  ３２０およびＶＭ３  ３３０が異なる地理的場所に配置される場合、異なるＶＭにわたってバンドルをバックアップすることは、地理的冗長化と呼ばれる。
【００３６】
図４は、本開示のいくつかの実施形態に記載の、単一のデータセンターにおけるデータベースに基づく冗長化システムを示す系統図である。図４は、ＶＭ１  ４１０、ＶＭ２  ４２０、ＶＭ３  ４３０、（再作成された）ＶＭ２  ４４０およびデータベース４５０を含むデータセンター４００を示している。ＶＭ１  ４１０はバンドル１  ４１１に関連付けられている。ＶＭ２  ４２０は関連付けられたバンドル２  ４２１である。ＶＭ３  ４３０はバンドル３  ４３１に関連付けられている。（再作成された）ＶＭ２  ４４０は、バンドル２  ４４１に関連付けられている。
【００３７】
図４に示すバンドルおよびＶＭは、図２および図３で説明したバンドルおよびＶＭと同様である。上述したように、データベース４５０は、構造化スキーマを使用する任意の型の非リレーショナルデータベースとすることができる。いくつかの実施形態では、データベース４５０を、ｎｏ−ＳＱＬデータベースまたはＳＱＬデータベースとして実装することができる。通常、ｎｏ−ＳＱＬデータベースは高速書き込みと大量の読み出しのために最適化されている。典型的なｎｏ−ＳＱＬデータベース（例えばＣａｓｓａｎｄｒａ、Ａｐａｃｈｅ  Ｇｅｏｄｅ）は、単一の均一分散キーのみを利用する水平方向に拡張可能な手段である。Ｎｏ−ＳＱＬデータベースには、インメモリデータベース（例えばＡｐａｃｈｅ  Ｇｅｏｄｅ）およびディスクベースのデータベースまたは永続的データベース（例えばＣａｓｓａｎｄｒａ）が含まれる。以下でより詳細に説明するように、いくつかの実施形態では、データベース４５０は、セッションをセッションデータに関連付けられた（本明細書では複合キーとも呼ばれる）ｎタプルの文字列として記憶し、ここで、ｎは１より大きい。簡潔には、いくつかの実施形態では、文字列の最上位ビットに関連付けられた文字列の部分は、ソースＶＭまたは第１のＶＭの識別子情報を提供する一方で、残りの文字列は、状態情報または構成情報を提供する。例えば、バンドルＩＤ、ＶＭ  ＩＤまたはノードＩＤを、文字列の最上位ビットとして記憶することができる。いくつかの実施形態では、データベース４５０は、全てのバンドルを同じサーバにマッピングする。いくつかの実施形態では、ＶＭは状態の１つ以上の「バンドル」を所有することができる。
【００３８】
いくつかの実施形態では、第１のバンドルからの書き込みは、データベース４５０にストリーミングされる。書き込みは、制御プレーンイベント（例えばＰＤＮ接続、モビリティ、ページングなど）および状態（例えば６０秒ごとの課金状態）を含むことができ、周期的で詳細な状態情報とすることができる。いくつかの実施形態では、書き込みは、呼および／またはデータの接続を障害が発生する前の状態に再構成するために使用されるカウンタおよび課金のイベントなどの任意の他のイベントまたは情報を含むことができる。
【００３９】
データセンター４００は、任意のサーバまたはコンピュータ処理装置とすることができる。いくつかの実施形態では、データセンター４００は、データベース４５０と仮想マシン４１０、４２０、４３０および４４０との間の通信を容易にするオーケストレータを含むことができる。図８に付随する本文でより詳細に説明するように、オーケストレータは、ライフサイクル管理の責任を負うことができ、本明細書に記載の障害検出および回復プロセスの責任を負うことができる。
【００４０】
図４は、本明細書で説明する技術を使用して、新規ＶＭ、ＶＭ内の新規バンドルまたはアクティブＶＭへのバンドルの転送をインスタンス化することを示している。本明細書に記載のデータベース冗長化技術は、クラスタ化サービスおよび非クラスタ化のサービスにも等しく適用可能である。バンドル１  ４１１、バンドル２  ４２１およびバンドル３  ４３１の各々は、関連する制御プレーンのイベントおよび状態、または、呼セッションまたはデータセッションを障害が発生する前の状態に再構成するために使用されるカウンタおよび課金のイベントなどの任意の他のイベントまたは情報を、データベース４５０に書き込む。書き込まれたイベントおよび状態の各々には、書き込まれた情報に関連付けられたソースバンドルまたはＶＭを示す識別情報も関連付けられている。ＶＭ２  ４２０に障害が発生すると、バンドル２  ４２１を含むＶＭ２  ４２０に関連付けられたデータベース４５０からの情報を使用して、ＶＭ２  ４４０のバージョンを再度作成することができる。すなわち、ＶＭ２  ４２０に障害が発生してＶＭ２  ４２０が再作成された場合、ＶＭ４４０の新規インスタンスは、先行するＶＭインスタンス４２０によって保存された全ての状態情報およびデータをデータベース４５０から迅速に検索することができる。データベース４５０からの読み取りは（障害が比較的頻度の低い性質であるために）頻度が低い傾向にあるが高速である。障害が発生すると、ＶＭが再作成され、障害が発生したＶＭの状態に対する責任が割り当てられる。ハートビート機構または任意の他の障害検出技術を使用して、仮想化ネットワーク機能（ＶＮＦ）によって障害を検出することができる。さらに、その仮想化層で使用されるハートビート機構または任意の他の障害検出技術を使用して、仮想化層によって障害を検出することができる。障害が検出されると、仮想化層はオーケストレーション層と通信して、回復動作を実行し、同じデータセンターにおいてＶＭを再作成するステップができる。いくつかの実施形態では、単純なスキーマ手法により、データベース４５０からの迅速な読み取りが可能になる。
【００４１】
図５は、本開示のいくつかの実施形態に記載の、複数のデータセンターにわたるクラスタに使用されるデータベースに基づく冗長化システムを示す系統図である。図５は、モバイルコンテンツクラウド（ＭＣＣ）クラスタ１  ５１０を含むデータセンター１  ５０１、データベース４５０を含むデータセンター２  ５０２、および（再作成された）ＭＣＣクラスタ１  ５３０およびＭＣＣクラスタ２  ５２０を含むデータセンター３を示している。
【００４２】
いくつかの実施形態では、データセンター１  ５０１、データセンター２，５０２およびデータセンター３  ５０３を、異なる地理的場所に配置することができる。いくつかの実施形態では、データセンター１  ５０１、データセンター２，５０２およびデータセンター３  ５０３は、同じ場所に配置される。図４に付随する本文でより詳細に説明したように、データセンター１  ５０１、データセンター２，５０２およびデータセンター３  ５０３を、サーバまたは任意の他のコンピュータ処理装置とすることができる。ＭＣＣクラスタは、仮想マシンの集合（例えば、（データベース４５０を除く）図４の全ての仮想マシン）を指す。ＭＣＣは、複数のネットワーク要素機能（例えばＰＧＷ、ＳＧＷなど）を含むことができる仮想化ネットワーク要素であるモバイルコンテンツクラウドを指す。ＭＣＣクラスタ１  ５１０およびＭＣＣクラスタ２  ５２０は、関連する制御プレーンイベントおよび状態をデータベース４５０に書き込む。書き込まれた制御プレーンイベントおよび状態の各々には、書き込まれた情報に関連付けられたソースクラスタを示す識別情報もまた関連付けられている。データセンター１  ５０１においてＭＣＣクラスタ１  ５１０に障害が発生すると、データベース４５０からの情報は、データセンター３  ５０３においてＭＣＣクラスタ５３０を再作成する。以下でより詳細に説明するように、データベース４５０をホストするデータセンター２は、ＭＣＣクラスタ１  ５１０の障害を検出するオーケストレーション層を含むことができ、かつ、障害が発生したＭＣＣクラスタに関連付けられたデータを複製する別のデータセンターを識別することができる。いくつかの実施形態では、データベース４５０を、既知のデータベース冗長化技術を使用してバックアップすることもでき、このデータベースのバックアップを、同じ場所に配置するかまたは地理的に別の場所に配置することもできる。
【００４３】
図６は、本開示のいくつかの実施形態による、データベースに提示され、かつレコードとして記憶される複合キーおよび関連データを示す図である。図６は、第１の複合キーおよびデータ６００と、第２の複合キーおよびデータ６１０とを示している。第１の複合キーおよびデータ６００は、ネットワーク要素（ＮＥ）ＩＤ６０２、ＶＭ  ＩＤ６０４、テーブルＩＤ６０６およびテーブル行キー６０８を含み、データ６０９に関連付けられる（例えば、状態データおよび情報は進行中の呼セッションおよび／またはデータセッションを維持する必要がある）。第２の複合キーは、ＮＥ  ＩＤ６０２、テーブルＩＤ６０４およびテーブル行キー６０６を含み、かつデータ６０９に関連付けられている。
【００４４】
第１の複合キーおよびデータ６００は、いくつかの実施形態によるクラスタ化ネットワーク要素の複合キーを表している。複合キーの左側最上位の部分は、ネットワーク要素ＩＤ６０２を含む。ネットワーク要素ＩＤ６０２は、図１に記載された任意のネットワーク要素（例えばマルチメディアメッセージングサービス（ＭＭＥ）１０６、サービングゲートウェイ（ＳＧＷ）モジュール１０８、パケットデータネットワークゲートウェイ（ＰＧＷ）／ゲートウェイＧＰＲＳサポートノード（ＧＧＳＮ）１１０、ポリシーおよび課金ルール機能（ＰＣＲＦ）１１２、認証、許可および課金（ＡＡＡ）１１６、およびオンライン課金システム（ＯＣＳ）１１８）などの特定のネットワーク要素に関連付けられたビット数を含むことができる。ＶＭ  ＩＤ６０４は、特定のネットワーク要素をホストする特定のＶＭに関連付けられたネットワーク要素ＩＤ６０２に関連付けられたビットの数の次のビット数を含むことができる。例えば、１つの仮想マシンは複数のネットワーク要素をホストすることができる。ネットワーク要素は、複数の仮想マシン、または仮想マシンのクラスタをホストとすることもできる。ネットワーク内には、例えば図５に示すように複数のクラスタノードが存在してもよい。いくつかの実施形態では、クラスタＩＤ６０４はＶＭを識別する。ＶＭ  ＩＤ６０４のビットの次の最上位ビット数は、テーブルＩＤ６０６に関連付けられる。テーブルＩＤ６０６は、イベント情報を保持するテーブルのＩＤを参照する。各テーブルＩＤは、異なる種類のイベント情報を保持することができる。例えば、テーブルＩＤ  １は、種類Ａのイベントから生じた種類Ａの状態を保持することができる一方で、テーブルＩＤ  ２は、種類Ｂのイベントから生じた種類Ｂの状態を保持することができる。例えば、イベントはＵＥからのネットワーク接続要求とすることができる。システムがイベントを処理するとき、システムは、イベントに関連付けられた状態情報（すなわち、データ６０９）を生成することができる。例えばネットワーク接続のための処理の一部は、ＵＥの許可、ＩＰアドレスの割り当て、およびトラフィックに適用するためのポリシー設定識別子における検索などの状態データを含むことができる。これらの状態データ値の各々は、テーブルの１つの行に記憶することもでき、複数のテーブルにおける複数の行に記憶することもできる。テーブルＩＤ６０６の次の最上位ビット数は、テーブル行キー６０８に関連付けられている。テーブル行キー６０８は、（クラスタ化されている場合の）ネットワーク要素およびＶＭが所有する型の、任意の所与の行に対する固有の識別子である。例えば上述したように、テーブルＩＤ６０６によって表される各テーブルは、複数の行を含むことができる。テーブル行キー６０８は、テーブル内の行を識別するインデックスを提供することができる。例えば、各行は異なる加入者に対応することができ、テーブル行キー６０８は加入者を識別することができる。いくつかの実施形態では、行を複数のテーブル行キー６０８に関連付けることができる。いくつかの実施形態では、行は固有のテーブル行キー６０８に関連付けられる。例えば、テーブル行キー６０８をＩＭＳＩに関連���けることができ、ユーザを固有のＩＭＳＩまたは複数のＩＭＳＩのいずれかに関連付けることができる。別の例として、テーブル行キー６０８をＩＰアドレスに関連付けることができ、ユーザを一意のＩＰアドレスまたは複数のＩＰアドレスのいずれかに関連付けることができる。
【００４５】
６１０の第２の複合キー部分は、いくつかの実施形態による非クラスタ化ネットワーク要素の複合キーを表している。非クラスタ化ネットワーク要素は、例えば１つのネットワーク要素をホストする仮想マシンとすることができる。６１０における第２の複合キー部分のビットの配置は、６１０の第２の複合キー部分がＶＭ  ＩＤ６０４に関連するビット数を含まない点を除いて、６００の第１の複合キー部分と同様である。
【００４６】
第１の複合キーおよび第２の複合キーを、分散キー６２２、６３２、６４２および６５２と、残りのキー６２４、６３４、６４４、６５４とにさらに分割することができ、各レコードはデータ部分６０９を含む。分散キー６２２、６３２、６４２および６５２は、複合キー内の最上位フィールド（すなわち、左側のフィールド）のサブセットを含む。分散キー６２２、６３２、６４２または６５２は、データベース内の内部平衡のために使用することができる。例えば同じ分散キーを共有する全ての行を、データベースを構成するサーバのクラスタ内の同じストレージノード（すなわち、サーバ）に記憶することができる。分散キーを選択することにより、通信システムの冗長化のために使用される場合に、データベースにおいて観察されたアクセスパターンを最大限に利用するようにすることができる。このようなデータベースでは、一定の一般的に高速の書き込み（すなわち作成、更新、削除）を観察することができ、障害が発生しない限り読み取りは行われない。ＶＭに障害が発生すると、代替ＶＭが構築され、次いで、先行ＶＭが所有していた全ての行を検索するように指示される。検索された行に関連付けられたデータ６０９は、障害が発生したインスタンスを新規または既存の代替インスタンス上に構築するために使用される。以下でより詳細に説明するように、オーケストレーション層および仮想化層（本明細書では計算装置とも呼ばれる）は、仮想マシンおよびデータベースと通信することができ、仮想マシンの障害を検出することができ、障害が発生した仮想マシンの状態情報を引き継ぐように別の仮想マシンに命令を送信することができる。物理ドライブを使用してデータベースを操作する場合、この一連の読み取りは、データベースを構成するサーバ全体に行が分散されていない場合（例えば、それによってディスクのシーク時間と通信オーバーヘッドを回避する場合）よりもむしろ、分散データベース内の単一のサーバがレコードの全てを提供する場合に最速であることが示されている。分散キー６２２および６４２はこのような設計を示している。しかし、いくつかのデータベースでは、分散キー６２２の変形がより効果的であると考えられている。この変形例（例えば分散キー６３２および６５２）では、所与のテーブル形式における全てのレコードが単一のサーバから読み取られる一方で、他のテーブル形式が他のサーバから並行して読み取られる。このような設計は、データベース記憶装置が物理ドライブ（例えば、メモリ、固体記憶装置などに保持された記録）を使用しない場合に最もよく用いられる。
【００４７】
テーブルＩＤ６０６およびテーブル行キー６０８のレコード内に含まれるデータ６０９の一例は、呼の現在の状態である。この呼状態情報が、障害が発生した第１の仮想マシンに関連付けられている場合、呼状態情報を、呼を遮断することなく第２の仮想マシンに直ちに転送することができる。第１の仮想マシンがアクティブ（起動状態）である場合、ネットワークを管理する通信アプリケーションは状態情報データをデータベースに書き込む。状態情報データは、ネットワーク要素ＩＤ（および該当する場合はＶＭ  ＩＤ）に関連付けられる。第１の仮想マシンに障害が発生すると、状態情報データは、以下に詳細に説明するように、ネットワーク要素ＩＤ（および該当する場合はＶＭ  ＩＤ）に関連付けられたデータベース内の全てのデータを転送することによって、データベースから第２の仮想マシンへ、オーケストレーション層および仮想化層によって転送される。いくつかの実施形態では、データを第２の仮想マシンに転送するかまたは書き込みすることにより、第１の仮想マシンのＶＭ  ＩＤ６０４を含む第１の仮想マシンの同一の識別が第２の仮想マシンに有効に割り当ててられる。
【００４８】
図７は、本開示のいくつかの実施形態による、ネットワーク要素のデータベースに基づくバックアップを示すフローチャートである。
【００４９】
ステップ７０２を参照して、ネットワーク要素データは、複数の計算インスタンスから受信される。計算インスタンスは、仮想マシン、コンテナまたはベアメタルサーバを含むことができる。いくつかの実施形態では、ベアメタルサーバは物理サーバを指している。より詳細に上述したように、計算インスタンスの各々は、ネットワーク要素インスタンスまたはネットワーク要素インスタンスの一部分をホストすることができる。ネットワーク要素データは、ネットワーク要素識別情報およびネットワーク要素に関連付けられた状態情報を含むことができる。
【００５０】
ステップ７０４を参照して、ネットワーク要素データに基づいて複数の複合キーが作成される。いくつかの実施形態では、計算インスタンスから受信されたネットワーク要素データはデータベース（または別のデータ構造）に記憶され、複合キーは、記憶されたネットワーク要素データに基づいて作成される。各計算インスタンスを、ネットワーク要素識別情報および１つ以上のネットワーク要素の状態情報データに関連付けることができる。いくつかの実施形態では、ネットワーク要素識別情報および１つ以上のネットワーク要素の状態情報データに基づいて、複合キーを作成することができる。複合キーは、ネットワーク要素識別情報に基づくネットワーク要素識別子（ＩＤ）を含むことができる。例えば、ネットワーク要素ＰＧＷ、ＳＧＷ、ＧＧＳＮおよび／またはＰＣＲＦの各々を、異なる計算インスタンス上で、または複数の計算インスタンスにわたって別個のインスタンスとしてホストすることができ、同一のネットワーク要素の各々は、異なるネットワーク要素ＩＤに関連付けられてもよい。いくつかの実施形態では、ネットワーク要素の各々をテーブルＩＤと関連付けることもできる。上述したように、テーブルＩＤをネットワーク要素ＩＤと関連付けることができる。テーブルＩＤは、ネットワーク要素インスタンスに関連付けられた状態情報の分類を示すことができる。いくつかの実施形態では、状態情報データの分類は、例えば接続されたユーザセッション、接続されたユーザセッションに関連付けられたアクセスベアラ、および無線アクセスベアラに関連付けられた５タプルのアクティブフローを含むことができる。いくつかの実施形態では、複合キーはまた、テーブル行キーおよびクラスタノードＩＤを含むことができる。
【００５１】
ステップ７０６を参照して、作成された複合キーおよび関連データは、レコード（例えば、複数の行）としてデータベースに記憶される。いくつかの実施形態では、各複合キーおよび関連データは、別個の行として記憶される。より詳細に上述したように、データセンターは、１つ以上の計算インスタンスおよびデータベースをホストすることができる。いくつかの実施形態では、データベースは計算インスタンスとは別にホストされる。いくつかの実施形態では、データセンターはデータベースおよび計算インスタンスの両方を含む。
【００５２】
ステップ７０８を参照して、計算インスタンスのうちの１つに関連付けられた障害が決定される。いくつかの実施形態では、障害が発生した計算インスタンスは、ネットワーク要素インスタンスの少なくとも一部分を含む。より詳細に上述したように、ハートビート機構または任意の他の障害検出技術を使用して、第１の計算インスタンスの障害を検出することができる。いくつかの実施形態では、データセンターまたは具体的にはオーケストレータ、およびデータセンター内のネットワーク機能仮想化インフラストラクチャは、計算インスタンスの障害を検出することができる。
【００５３】
ステップ７１０を参照して、少なくとも１つの分散キーは、障害が発生した計算インスタンスに基づいて決定される。上述したように、分散キーは、複合キー内の最上位フィールド（すなわち、左側のフィールド）のサブセットを含むことができる。いくつかの実施形態では、分散キーの各々は、障害が発生した計算インスタンスに関連付けられたネットワーク要素インスタンスに関連付けられたネットワーク要素ＩＤを含む。
【００５４】
ステップ７１２を参照して、命令（例えば、活性化命令）は、別の計算インスタンスに送信されて、別の計算インスタンス上でネットワークインスタンスを再作成する。いくつかの実施形態では、ネットワークインスタンスが再作成される計算インスタンスは、ネットワーク内に既に存在する。いくつかの実施形態では、ネットワークインスタンスが再作成される計算インスタンスは、ネットワークインスタンスをホストするように作成される。いくつかの実施形態では、命令は、障害が発生した計算インスタンスに関連付けられた全てのテーブルにおける行の完全セットをデータベースから検索するように他の計算インスタンスに命令する、別の計算インスタンスに送信される。いくつかの実施形態では、行を分散キーによって識別することができる。より詳細に上述したように、第２の計算インスタンスは、第１の計算インスタンスによって保存された全ての状態データをデータベースから迅速に検索することができる。
【００５５】
図８は、本開示のいくつかの実施形態による、オーケストレータおよびネットワーク機能仮想化インフラストラクチャを示すシステム図である。図８は、オーケストレータ８０２と、ネットワーク機能仮想化インフラストラクチャ（ＮＦＶＩ）と、単一のＶＭ８１２をホストとするネットワーク要素１と、単一のＶＭ８１４をホストとするネットワーク要素２と、クラスタ８２０内の複数のＶＭ８２２、８２４、８２６をホストとするネットワーク要素３とを示している。
【００５６】
ＮＦＶＩ８０４と連動するオーケストレータ８０２は、仮想マシンに関連付けられた障害を検出し、回復動作を行い、かつ、障害が発生したＶＭを環境内の別のＶＭ上で再度作成することができる。オーケストレータ８０２およびＮＦＶＩ８０４は、単一のＶＭ（例えば８１２）を別の単一のＶＭ（例えば８１４）に複製するか、またはＶＭクラスタ（例えば８２０）を複製することができる。より詳細に上述したように、ＶＭは、障害が発生したＶＭに関連付けられた関連情報をデータベース４５０から取り出すことによって複製することができる。オーケストレータ８０２およびＮＦＶＩ８０４は、サーバ、ストレージ、ネットワークスイッチおよびルータ上で動作するソフトウェア、および／またはこれらの組み合わせで動作するソフトウェアとして実装することができる。サーバ、ストレージおよびネットワーク要素から構成される非仮想化環境については、オーケストレーション機能（すなわち、障害を検出して反応する機能）の実施形態は、要素管理システム（ＥＭＳ）、ネットワーク管理システム（ＮＭＳ）、運用サポートシステム（ＯＳＳ）またはネットワーク要素の監視に関連する他のソフトウェアシステムに含まれてもよい。
【００５７】
本明細書に記載の技術の利点は、アプリケーションの複雑さの低減、データセンターの複雑性の低減、設置面積の削減、マルチサイト冗長性および地理的冗長性を含む。アプリケーションは状態が少ない性質のため、アプリケーションの複雑性を軽減することができる。対照的に、従来の方法を使用する状態バックアップ方式では、広範なコード開発が必要となりかねず、バグが発生する可能性がある。ＶＭの再起動はコールドリスタートであるため、データセンターの複雑性もまた軽減される。つまり、仮想化インフラストラクチャ（ＶＩＭ）層の高可用性（ＶＩＭ層ＨＡ）要件はなく、ストレージエリアネットワーク（ＳＡＮ）の厳しい要件もない。ＶＭは必要に応じて交換することができるため、設置面積もまた削減される。マルチサイト同期のため、または必要に応じてクラスタ全体を新しいデータセンターにおいて再作成するために、データベースの冗長性を活用することができるので、マルチサイト冗長性および地理的冗長性もまた使用可能である。
【００５８】
本明細書に記載の主題は、本明細書に開示の構造的手段およびその構造的等価物、またはそれらの組み合わせを含むデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて実装することができる。本明細書に記載の主題は、（例えば、機械可読記憶装置内の）情報媒体において有形に実施されるか、または伝搬信号において実施される１つ以上のコンピュータプログラムなど、１つ以上のコンピュータプログラム製品として、データ処理装置（例えば、プログラマブルプロセッサ、コンピュータ、または複数のコンピュータ）が実行するために、またはこのデータ処理装置の動作を制御するために実装することができる。（プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている）コンピュータプログラムを、コンパイラ型言語またはインタプリタ型言語を含む任意の形式のプログラミング言語で書き込むことができ、スタンドアロン・プログラムとして、またはコンピューティング環境での使用に適したモジュール、構成要素、サブルーチン、または他のユニットとして展開することができる。コンピュータプログラムは必ずしもファイルに対応しているとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分に、当該プログラム専用の単一のファイルに、または複数の調整されたファイル（例えば１つ以上のモジュール、サブプログラム、またはコードの一部分を記憶するファイル）に記憶することができる。コンピュータプログラムを、１つのコンピュータまたは１つのサイトにおいて実行するか、または複数のサイトに分散されて通信ネットワークによって相互接続されるように展開することができる。
【００５９】
本明細書に記載の主題の方法ステップを含む、本明細書に記載のプロセスおよび論理フローは、入力データに対して動作して出力を生成することによって１つ以上のコンピュータプログラムを実行して本明細書に記載の主題の機能を実行する１つ以上のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローはまた、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）などの専用論理回路によって実行することができ、本明細書に記載の主題の装置は、この専用論理回路として実装することができる。
【００６０】
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用および専用両方のマイクロプロセッサ、および任意の種類のデジタルコンピュータのいずれか１つ以上のプロセッサを含む。一般に、プロセッサは、読出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ、および、命令およびデータを記憶するための１つ以上のメモリ装置である。一般的にコンピュータはまた、例えば磁気ディスク、光磁気ディスク、または光ディスクなどのデータを保存するための１つ以上の大容量記憶装置を含むかまたは動作可能に結合されて、この大容量記憶装置との間でデータを受信するかまたは転送するか、またはその両方を行う。コンピュータプログラム命令およびデータを具体化するのに適した情報媒体としては、一例として、半導体メモリ装置（例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭおよびフラッシュメモリ装置）、磁気ディスク（例えば内蔵ハードディスクまたはリムーバブルディスク）、光磁気ディスクおよび光ディスク（例えばＣＤおよびＤＶＤディスク）を含む、全ての形式の不揮発性メモリが挙げられる。プロセッサおよびメモリは、専用論理回路によって補完されるかまたはこの専用論理回路に組み込まれてもよい。
【００６１】
ユーザとの対話を行うために、本明細書に記載の主題は、ユーザに情報を表示するための例えばＣＲＴ（ブラウン管）またはＬＣＤ（液晶ディスプレイ）モニタなどの表示装置と、ユーザがコンピュータに入力を提供することができるようなキーボードおよびポインティングデバイス（例えばマウスまたはトラックボール）とを有するコンピュータ上で実施することができる。他の種類の装置を使用して、ユーザとの対話を行うこともできる。例えばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック（例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバック）とすることができ、ユーザからの入力は、音響、音声または触覚の入力を含む任意の形態で受け取ることができる。
【００６２】
本明細書に記載の主題は、バックエンド構成要素（例えばデータサーバ）、ミドルウェア構成要素（例えばアプリケーションサーバ）、またはフロントエンド構成要素（例えば、ユーザが本明細書に記載の主題の実施形態と対話することができるグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータ）、または、このようなバックエンド構成要素、ミドルウェア構成要素およびフロントエンド構成要素の任意の組み合わせを含む計算装置において実施することができる。システムの構成要素は、例えば通信ネットワークなどの任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク（「ＬＡＮ」）、および例えばインターネットなどのワイドエリアネットワーク（「ＷＡＮ」）が挙げられる。
【００６３】
開示の主題は、その適用において、構成の詳細および以下の説明に記載されるかまたは図面に示される構成要素の構成に限定されないことが理解されるべきである。開示の主題は、他の実施形態が可能であり、様々な方法で実施および実行することが可能である。また、本明細書で使用される表現および用語は、説明を目的としており、限定的であるとみなされるべきではないことを理解されたい。
【００６４】
このように、当業者であれば、本開示の基礎となる概念は、開示の主題のいくつかの目的を実行するための他の構造、方法およびシステムの設計の基礎として容易に利用することができることを理解するであろう。したがって、特許請求の範囲は、開示の主題の精神および範囲から逸脱しない限り、同等の構成を含むものとみなされることが重要である。
【００６５】
開示の主題について上述の例示的な実施形態で説明しかつ図示したが、本開示は単に一例としてなされたものであり、開示の主題の実装における多くの変更は、開示の主題の精神および範囲から逸脱することなく実施することができることを理解されたい。
【図１】
2019507413.tif 000003
【図２】
2019507413.tif 000004
【図３】
2019507413.tif 000005
【図４】
2019507413.tif 000006
【図５】
2019507413.tif 000007
【図６】
2019507413.tif 000008
【図７】
2019507413.tif 000009
【図８】
2019507413.tif 000010
【国際調査報告】
2019507413.tif 000011