(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
現在、ゲートウェイGPRSサポートノード(GGSN)、サービングゲートウェイ(SGW)、パケットデータネットワークゲートウェイ(PGW)、信頼WLANアクセスゲートウェイ/信頼WLANアクセスプロキシ(TWAG/TWAP)、進化型パケットデータゲートウェイ(ePDG)などの通信事業者アプリケーションは、内部のステートフルな冗長機構で構築されている。これらの機構は、例えば2つの計算インスタンス(例えば仮想マシン(VM)、2つのコンテナ、2つのベアメタルサーバなど)に対する2つのプロセスなど、分散システム内の少なくとも2つの場所に記憶された加入者またはデータフローの処理中に、3GPP、IETF、ETSI、または他の機構によって定義された特定のプロトコルにおける現在の状態に関連する一般的に重要な動的情報をもたらす。本明細書で使用されるように、仮想マシンを説明する実施形態をコンテナおよびベアメタルサーバにも等しく適用することができる。このような動的状態には、モビリティの位置などの呼状態と、課金状態(例えば使用カウンタ)とが含まれる。動的状態は非常に急速に変化する可能性がある。例えば課金状態は、加入者に代わって処理される各パケットに更新することができる。従来のメモリ間冗長化手法であっても、この頻度で内部状態の更新をめったに実行せず、より一般的には、スナップショット更新の期間が複製データの不正確さに対する許容度に基づく時間ベースのスナップショット手法を用いる。いくつかの実施形態では、遅延による不完全な情報のために不正確さが生じる。
【0019】
従来のメモリ間冗長機構は、一般的にアプリケーション開発者によって手作業でコーディングされており、したがって、冗長スキームを組み込む複雑性が増加するために全体的な障害発生率が上昇すると言えるほどにエラーが発生しやすい。
【0020】
ネットワーク機能仮想化(NFV)の到来により、システムの作成および展開がより迅速になり、運用がより簡単になることが期待されている。仮想化インフラストラクチャ(ホスト、スイッチ、ストレージ)の適応性により、さらなる冗長性が追加され、それによって通信事業者アプリケーションの手法を簡略化する可能性がもたらされる。
【0021】
従来のSQLデータベースおよびその他のnon−SQLデータベースは、比較的高いトランザクション速度および高い可用性を提供する。さらに、データベース複製による地理的冗長性が一般的に裏付けられている。特定のデータ損失(例えば課金関連カウンタの定期的な更新)に対する若干の許容度を含むこれらの特性を利用することにより、通信事業者アプリケーションの冗長性の複雑性が大幅に低減され、計算およびメモリの要件が減少する。
【0022】
いくつかの実施形態では、メモリ間の同期を排除することは、データベース(例えばSQLデータベースまたはnon−SQLデータベース)を利用して冗長データを記憶することによって達成することができる。データベースは、イベント駆動(例えば呼設定またはハンドオーバ)ベースで更新することができ、または時間駆動ベースでそれほど重要ではない状態(例えばいくつかの増分の使用を表す課金状態)で更新することができる。特に、データセンターに既に大規模データベースが導入されている場合、この目的でデータベースを使用する増分コストは最小限に抑えられる。障害が発生した場合、システム内のエージェントは、オブジェクト所有権の責任をシステムクラスタの残存メンバに再割り当てし、これにより、残されたオブジェクトをデータベースから取得してサービスに戻すことができる。
【0023】
データベースの段階で地理的冗長性を使用することにより、本明細書で説明する技術をマルチサイト冗長化に使用することもできる。例えば、3つのアクティブ状態(起動状態)のサイトと、3つのサイト全てに利益をもたらすように動作する1つのスタンバイ状態のサイトとが存在する場合、VMの3つの個別セットを前段階に置く必要はない。実際に、障害が認識されるまでは、全て予めインスタンス化することはできない。障害が認識されると、VMのクラスタが構築されるか、または予め構築されたクラスタがアクティブ化(活性化)され、障害が発生したサイトに代わって動作する責任が割り当てられる。完了すると、新規クラスタは適切な状態をデータベースから検索し、進行中のデューティを開始する。
【0024】
いくつかの実施形態では、本明細書に記載の技術の重要な態様は、冗長状態がデータベースから読み取られる速度である。データベースは、高速の同時読み取りアクセスにおいて非常に優れているが、読み取るデータの正確なサブセットを識別するために広範囲に及ぶリレーショナル検索が必要とされる場合には、大幅に速度が落ちる可能性がある。いくつかの実施形態では、冗長状態をデータベースからより速く読み出す速度を維持するために、構造化スキーマ設計を含むデータベースが使用される。
【0025】
いくつかの実施形態では、本明細書に記載の技術は、スキーマ設計に関する。本明細書で説明するように、スキーマ設計は、SQLデータベースと同様にno−SQLデータベースの実装に適している。No−SQLデータベースは高速書き込みと大量の読み出しのために最適化されている。典型的なno−SQLデータベース(例えばCassandra、Apache Geode)は、単一の均一分散キーのみを利用するクラスタ化された手段である。No−SQLデータベースには、インメモリデータベース(例えばApache Geode)およびディスクベースのデータベースまたは永続的データベース(例えばCassandra)が含まれる。同じ分散キーを含む全てのレコードは同じサーバに書き込まれる。例えば、本明細書で説明する技術は、3タプル(ソースVM−ID、IMSI、作成時間)によって各レコードを一意的に識別することができる携帯電話通信セッションレコードのデータベーステーブルを使用することを含む。複合キーの最も重要な部分のみがクラスタ分散の目的で使用されるので、クラスタ化ネットワーク要素内の同じVMによって管理される全てのセッションおよび関連データを、同じサーバ(例えばCassandraサーバ、Apacheサーバ)に記憶することができる。VMに障害が発生して再作成された場合、このVMの新規インスタンスは、先行するVMインスタンスによって保存された全ての状態データを迅速に検索することができる。
【0026】
図1は、本開示のいくつかの実施形態による、ネットワーク化されたシステム100を示す系統図である。システム100は、ユーザ機器102と、サーバ104と、ネットワーク106とを含む。システム100は、ユーザ機器(UE)102、進化型ノードB(eNodeB)104、マルチメディアメッセージングサービス(MME)106、サービングゲートウェイ(SGW)モジュール108、パケットデータネットワークゲートウェイ(PGW)/ゲートウェイGPRSサポートノード(GGSN)110、ポリシーおよび課金ルール機能(PCRF)112、ギガビット無線(Gi)ネットワーク114、認証、許可および課金(AAA)116、オンライン課金システム(OCS)118、外部サーバ/サイト120、ネットワーク要素グループ130を含む。
【0027】
UE102は、eNodeB104を介してネットワーク化されたシステム100に接続する。UE102は、モバイルデータネットワーク(例えば携帯電話、タブレット、ラップトップ)に接続するように構成された計算装置を含む。eNodeB104は、セルサイトの無線部分である。単一のeNodeB104は、いくつかの無線式の送信機、受信機、制御部および電源を含んでもよい。eNodeB104は、MME106およびSGW108にバックホールされてもよい。バックホールは、パケットまたは通信信号を、処理のために比較的長距離にわたって別の場所に転送するプロセスである。SGW108は、ユーザデータパケットをルーティングして転送する一方で、eNodeB間のハンドオーバ中にユーザプレーンのモビリティアンカとしても機能する。MME106は、ネットワーク化されたシステム100における制御ノードである。MME106は、LTE無線ネットワークに接続するUE102の移動性および安全性機能も含むLTE関連制御プレーンシグナリングを処理する。MME106はまた、トラッキングエリア管理およびページング手順のサポートを含む、休止モードにあるUEを処理する。
【0028】
PGW/GGSN110は、モバイルネットワークと外部IPネットワークとの間の相互接続点であり、ポリシー施行、IPアドレス割当ておよび課金機能を処理する。PGWおよびGGSNは同様の機能を果たし、3Gネットワーク、4GネットワークおよびLTEネットワークのために、本開示では交換可能に使用される。PCRF112(ポリシーおよび課金ルール機能)はPGWとインタフェースをとって、各加入者に対して施行する適切なポリシーをPGWに提供する。Giネットワーク114は、PGWをパケットデータネットワークまたはインターネットに接続するインターネットプロトコル(IP)ベースのネットワークである。Giネットワーク114は、外部のサーバまたはサイト120に接続する。AAA116は、認証、許可および課金サーバであり、PGWに対する許可、ポリシー施行および課金/課金サービスを提供する。OCS118は、サービスプロバイダが顧客のモバイルサービスの実時間使用に基づいて顧客に課金することを可能にするオンライン課金システムである。
【0029】
図1に示すように、ネットワーク要素グループ130は、サービングゲートウェイ(SGW)モジュール108およびパケットデータネットワークゲートウェイ(PGW)/ゲートウェイGPRSサポートノード(GGSN)110を含む。ネットワーク要素グループ130は、オペレータ(本明細書ではクラスタとも呼ぶ)によって決定されたネットワーク要素またはサービスグループのいずれかまたは組合せとすることができる。いくつかの実施形態では、ネットワーク要素グループ130は、地理的グループ(例えば、地理的に同じ場所に配置されたネットワークノードおよび/または機能のセット)である。サービスグループは、SGW、PGW、GGSN、および/またはePDGを含むことができる。サービスはまた、Webプロキシ、ビデオ/イメージトランスコーディング、パケット検査(DPI)、課金、QoS、VoLTEを含むこともできる。SGW/PGWはまた、音声およびデータのためのセッションサービスと見なすこともできる。ネットワーク要素グループ130はまた、例えばループバックIP、UE IPサブプール、Gxインタフェース、Gyインタフェース、Gzインタフェース、AAAインタフェース、GTPインタフェースなどのサービスに関連するサービス構築オブジェクトを含むことができる。以下でより詳細に説明するように、仮想マシン(VM)を、個々のサービスまたはサービスの一部またはサービスの集合に関連付けることができる。
【0030】
本明細書で説明するように、データベースに基づく冗長性を使用する本明細書に記載の技術は、(本明細書では仮想化ネットワーク機能(VNF)とも呼ばれる)クラスタ化仮想ネットワーク要素または仮想ノードおよび非クラスタ化仮想ネットワーク要素または仮想ノードの両方に適用することができる。クラスタはネットワーク要素またはVMのグループを含み、これにより、要素メンバ間の内部調整が行われる。クラスタを使用すると、一般的に要素の内部動作または内部トポロジが非表示になる傾向がある。つまり、外部からは、クラスタは単一のネットワーク要素とみなされる。本明細書で使用されるように、クラスタ化は密結合クラスタ化とも呼ばれる。非クラスタ化VNFは、要素間のトポロジまたは内部接続が非表示になるようなネットワーク要素またはVMを含む。
【0031】
図2は、通信ネットワーク全体に分散された仮想マシン間のネットワーク要素の冗長性を実現する従来の方法を示す系統図である。
図2は、VM1 210およびVM2 220を示している。VM1は、第1のバンドル1 211と第2のバンドル2´212とを含む。VM2は、第2のバンドル1´221と第1のバンドル2 222とを含む。
図2に示すように、各仮想マシンは、第1のバンドルおよび第2のバンドルの両方を有することができる。いくつかの実施形態では、第1のVMを第1のバンドルにのみ関連付けることができ、第2のVMを対応する第2のバンドルにのみ関連付けることができる。
【0032】
VM1 210およびVM2 220の各々は、第1のバンドルおよび第2のバンドルを含む(第2のバンドルは(´)で示される)。本明細書で参照されるように、バンドルは、ネットワーク要素(通信セッションに関連するデータ)に関連付けられた状態の集合を指す。VM1 210に障害が発生すると、VM2 220はバンドル1に冗長性を提供し、バンドル1をホストする責任をVM1 210から引き継ぐ。
【0033】
図3は、通信ネットワーク全体に分散された仮想マシン間のネットワーク要素をバックアップする従来の方法を示す系統図である。
図3は、VM1 310、VM2 320およびVM3 330を示している。VM1は、バンドル1 311、バンドル2 312、バンドル3 313、バンドル4´314、バンドル7´317およびバンドル9´319を含む。VM2は、バンドル4 324、バンドル5 325、バンドル6 326、バンドル1´321、バンドル2´322およびバンドル8´328を含む。VM3 330は、バンドル7 337、バンドル8 338、バンドル9 339、バンドル3 ´333、バンドル5´335、およびバンドル6´336を含む。
【0034】
VM1 310、VM2 320およびVM3 330の各々は、第1のバンドルおよび第2のバンドルを含む(第2のバンドルは(´)で示される)。上述したように、バンドルは、ネットワーク要素に関連付けられた状態の集合を参照することができる。例えば、VM1 310は、バンドル1 311、バンドル2 312およびバンドル3 313の第1のインスタンスと、バンドル4´314、バンドル7´317およびバンドル9´319の第2のインスタンスとを含む。いくつかの実施形態では、各バンドルはロールとランタイム状態とを有する。ロールは第1のロールまたは第2のロールとすることができ、ランタイムはアクティブ状態またはスタンバイ状態とすることができる。好ましい実施形態では、第1のバンドルはアクティブ状態に関連付けられ、第2のバンドルはスタンバイ状態に関連付けられる。第2のバンドルが常にアクティブであるとは限らないが、第1のバンドルから第2のバンドルに操作が転送された場合は、第2のバンドルのVMに領域が割り当てられる。
図3に示すように、バンドルを互いに関連付けて、VM上にクラスタを形成することができる。例えば、VM1 310上のバンドル1 311、バンドル2 312、バンドル3 313、バンドル4´314、バンドル7´317、およびバンドル9´319は、クラスタを形成することができる。
【0035】
図3に示すように、第1のバンドルの各々は、異なる仮想マシン上に配置された第2のバンドルに関連付けられている。VM内における第1のバンドルの各セットはまた、2つ以上の他のVMにバックアップされる。例えば、VM1 310上のバンドル1 311およびバンドル2 312は、VM2 320上のバンドル1´321およびバンドル2´322にそれぞれ関連付けられる一方で、VM1 310上のバンドル3 313はVM3 330上のバンドル3´333に関連付けられる。VM1 310、VM2 320およびVM3 330の各々を、同じ場所または異なる地理的場所に配置することができる。VM1 310、VM2 320およびVM3 330が異なる地理的場所に配置される場合、異なるVMにわたってバンドルをバックアップすることは、地理的冗長化と呼ばれる。
【0036】
図4は、本開示のいくつかの実施形態に記載の、単一のデータセンターにおけるデータベースに基づく冗長化システムを示す系統図である。
図4は、VM1 410、VM2 420、VM3 430、(再作成された)VM2 440およびデータベース450を含むデータセンター400を示している。VM1 410はバンドル1 411に関連付けられている。VM2 420は関連付けられたバンドル2 421である。VM3 430はバンドル3 431に関連付けられている。(再作成された)VM2 440は、バンドル2 441に関連付けられている。
【0037】
図4に示すバンドルおよびVMは、
図2および
図3で説明したバンドルおよびVMと同様である。上述したように、データベース450は、構造化スキーマを使用する任意の型の非リレーショナルデータベースとすることができる。いくつかの実施形態では、データベース450を、no−SQLデータベースまたはSQLデータベースとして実装することができる。通常、no−SQLデータベースは高速書き込みと大量の読み出しのために最適化されている。典型的なno−SQLデータベース(例えばCassandra、Apache Geode)は、単一の均一分散キーのみを利用する水平方向に拡張可能な手段である。No−SQLデータベースには、インメモリデータベース(例えばApache Geode)およびディスクベースのデータベースまたは永続的データベース(例えばCassandra)が含まれる。以下でより詳細に説明するように、いくつかの実施形態では、データベース450は、セッションをセッションデータに関連付けられた(本明細書では複合キーとも呼ばれる)nタプルの文字列として記憶し、ここで、nは1より大きい。簡潔には、いくつかの実施形態では、文字列の最上位ビットに関連付けられた文字列の部分は、ソースVMまたは第1のVMの識別子情報を提供する一方で、残りの文字列は、状態情報または構成情報を提供する。例えば、バンドルID、VM IDまたはノードIDを、文字列の最上位ビットとして記憶することができる。いくつかの実施形態では、データベース450は、全てのバンドルを同じサーバにマッピングする。いくつかの実施形態では、VMは状態の1つ以上の「バンドル」を所有することができる。
【0038】
いくつかの実施形態では、第1のバンドルからの書き込みは、データベース450にストリーミングされる。書き込みは、制御プレーンイベント(例えばPDN接続、モビリティ、ページングなど)および状態(例えば60秒ごとの課金状態)を含むことができ、周期的で詳細な状態情報とすることができる。いくつかの実施形態では、書き込みは、呼および/またはデータの接続を障害が発生する前の状態に再構成するために使用されるカウンタおよび課金のイベントなどの任意の他のイベントまたは情報を含むことができる。
【0039】
データセンター400は、任意のサーバまたはコンピュータ処理装置とすることができる。いくつかの実施形態では、データセンター400は、データベース450と仮想マシン410、420、430および440との間の通信を容易にするオーケストレータを含むことができる。
図8に付随する本文でより詳細に説明するように、オーケストレータは、ライフサイクル管理の責任を負うことができ、本明細書に記載の障害検出および回復プロセスの責任を負うことができる。
【0040】
図4は、本明細書で説明する技術を使用して、新規VM、VM内の新規バンドルまたはアクティブVMへのバンドルの転送をインスタンス化することを示している。本明細書に記載のデータベース冗長化技術は、クラスタ化サービスおよび非クラスタ化のサービスにも等しく適用可能である。バンドル1 411、バンドル2 421およびバンドル3 431の各々は、関連する制御プレーンのイベントおよび状態、または、呼セッションまたはデータセッションを障害が発生する前の状態に再構成するために使用されるカウンタおよび課金のイベントなどの任意の他のイベントまたは情報を、データベース450に書き込む。書き込まれたイベントおよび状態の各々には、書き込まれた情報に関連付けられたソースバンドルまたはVMを示す識別情報も関連付けられている。VM2 420に障害が発生すると、バンドル2 421を含むVM2 420に関連付けられたデータベース450からの情報を使用して、VM2 440のバージョンを再度作成することができる。すなわち、VM2 420に障害が発生してVM2 420が再作成された場合、VM440の新規インスタンスは、先行するVMインスタンス420によって保存された全ての状態情報およびデータをデータベース450から迅速に検索することができる。データベース450からの読み取りは(障害が比較的頻度の低い性質であるために)頻度が低い傾向にあるが高速である。障害が発生すると、VMが再作成され、障害が発生したVMの状態に対する責任が割り当てられる。ハートビート機構または任意の他の障害検出技術を使用して、仮想化ネットワーク機能(VNF)によって障害を検出することができる。さらに、その仮想化層で使用されるハートビート機構または任意の他の障害検出技術を使用して、仮想化層によって障害を検出することができる。障害が検出されると、仮想化層はオーケストレーション層と通信して、回復動作を実行し、同じデータセンターにおいてVMを再作成するステップができる。いくつかの実施形態では、単純なスキーマ手法により、データベース450からの迅速な読み取りが可能になる。
【0041】
図5は、本開示のいくつかの実施形態に記載の、複数のデータセンターにわたるクラスタに使用されるデータベースに基づく冗長化システムを示す系統図である。
図5は、モバイルコンテンツクラウド(MCC)クラスタ1 510を含むデータセンター1 501、データベース450を含むデータセンター2 502、および(再作成された)MCCクラスタ1 530およびMCCクラスタ2 520を含むデータセンター3を示している。
【0042】
いくつかの実施形態では、データセンター1 501、データセンター2,502およびデータセンター3 503を、異なる地理的場所に配置することができる。いくつかの実施形態では、データセンター1 501、データセンター2,502およびデータセンター3 503は、同じ場所に配置される。
図4に付随する本文でより詳細に説明したように、データセンター1 501、データセンター2,502およびデータセンター3 503を、サーバまたは任意の他のコンピュータ処理装置とすることができる。MCCクラスタは、仮想マシンの集合(例えば、(データベース450を除く)
図4の全ての仮想マシン)を指す。MCCは、複数のネットワーク要素機能(例えばPGW、SGWなど)を含むことができる仮想化ネットワーク要素であるモバイルコンテンツクラウドを指す。MCCクラスタ1 510およびMCCクラスタ2 520は、関連する制御プレーンイベントおよび状態をデータベース450に書き込む。書き込まれた制御プレーンイベントおよび状態の各々には、書き込まれた情報に関連付けられたソースクラスタを示す識別情報もまた関連付けられている。データセンター1 501においてMCCクラスタ1 510に障害が発生すると、データベース450からの情報は、データセンター3 503においてMCCクラスタ530を再作成する。以下でより詳細に説明するように、データベース450をホストするデータセンター2は、MCCクラスタ1 510の障害を検出するオーケストレーション層を含むことができ、かつ、障害が発生したMCCクラスタに関連付けられたデータを複製する別のデータセンターを識別することができる。いくつかの実施形態では、データベース450を、既知のデータベース冗長化技術を使用してバックアップすることもでき、このデータベースのバックアップを、同じ場所に配置するかまたは地理的に別の場所に配置することもできる。
【0043】
図6は、本開示のいくつかの実施形態による、データベースに提示され、かつレコードとして記憶される複合キーおよび関連データを示す図である。
図6は、第1の複合キーおよびデータ600と、第2の複合キーおよびデータ610とを示している。第1の複合キーおよびデータ600は、ネットワーク要素(NE)ID602、VM ID604、テーブルID606およびテーブル行キー608を含み、データ609に関連付けられる(例えば、状態データおよび情報は進行中の呼セッションおよび/またはデータセッションを維持する必要がある)。第2の複合キーは、NE ID602、テーブルID604およびテーブル行キー606を含み、かつデータ609に関連付けられている。
【0044】
第1の複合キーおよびデータ600は、いくつかの実施形態によるクラスタ化ネットワーク要素の複合キーを表している。複合キーの左側最上位の部分は、ネットワーク要素ID602を含む。ネットワーク要素ID602は、
図1に記載された任意のネットワーク要素(例えばマルチメディアメッセージングサービス(MME)106、サービングゲートウェイ(SGW)モジュール108、パケットデータネットワークゲートウェイ(PGW)/ゲートウェイGPRSサポートノード(GGSN)110、ポリシーおよび課金ルール機能(PCRF)112、認証、許可および課金(AAA)116、およびオンライン課金システム(OCS)118)などの特定のネットワーク要素に関連付けられたビット数を含むことができる。VM ID604は、特定のネットワーク要素をホストする特定のVMに関連付けられたネットワーク要素ID602に関連付けられたビットの数の次のビット数を含むことができる。例えば、1つの仮想マシンは複数のネットワーク要素をホストすることができる。ネットワーク要素は、複数の仮想マシン、または仮想マシンのクラスタをホストとすることもできる。ネットワーク内には、例えば
図5に示すように複数のクラスタノードが存在してもよい。いくつかの実施形態では、クラスタID604はVMを識別する。VM ID604のビットの次の最上位ビット数は、テーブルID606に関連付けられる。テーブルID606は、イベント情報を保持するテーブルのIDを参照する。各テーブルIDは、異なる種類のイベント情報を保持することができる。例えば、テーブルID 1は、種類Aのイベントから生じた種類Aの状態を保持することができる一方で、テーブルID 2は、種類Bのイベントから生じた種類Bの状態を保持することができる。例えば、イベントはUEからのネットワーク接続要求とすることができる。システムがイベントを処理するとき、システムは、イベントに関連付けられた状態情報(すなわち、データ609)を生成することができる。例えばネットワーク接続のための処理の一部は、UEの許可、IPアドレスの割り当て、およびトラフィックに適用するためのポリシー設定識別子における検索などの状態データを含むことができる。これらの状態データ値の各々は、テーブルの1つの行に記憶することもでき、複数のテーブルにおける複数の行に記憶することもできる。テーブルID606の次の最上位ビット数は、テーブル行キー608に関連付けられている。テーブル行キー608は、(クラスタ化されている場合の)ネットワーク要素およびVMが所有する型の、任意の所与の行に対する固有の識別子である。例えば上述したように、テーブルID606によって表される各テーブルは、複数の行を含むことができる。テーブル行キー608は、テーブル内の行を識別するインデックスを提供することができる。例えば、各行は異なる加入者に対応することができ、テーブル行キー608は加入者を識別することができる。いくつかの実施形態では、行を複数のテーブル行キー608に関連付けることができる。いくつかの実施形態では、行は固有のテーブル行キー608に関連付けられる。例えば、テーブル行キー608をIMSIに関連付けることができ、ユーザを固有のIMSIまたは複数のIMSIのいずれかに関連付けることができる。別の例として、テーブル行キー608をIPアドレスに関連付けることができ、ユーザを一意のIPアドレスまたは複数のIPアドレスのいずれかに関連付けることができる。
【0045】
610の第2の複合キー部分は、いくつかの実施形態による非クラスタ化ネットワーク要素の複合キーを表している。非クラスタ化ネットワーク要素は、例えば1つのネットワーク要素をホストする仮想マシンとすることができる。610における第2の複合キー部分のビットの配置は、610の第2の複合キー部分がVM ID604に関連するビット数を含まない点を除いて、600の第1の複合キー部分と同様である。
【0046】
第1の複合キーおよび第2の複合キーを、分散キー622、632、642および652と、残りのキー624、634、644、654とにさらに分割することができ、各レコードはデータ部分609を含む。分散キー622、632、642および652は、複合キー内の最上位フィールド(すなわち、左側のフィールド)のサブセットを含む。分散キー622、632、642または652は、データベース内の内部平衡のために使用することができる。例えば同じ分散キーを共有する全ての行を、データベースを構成するサーバのクラスタ内の同じストレージノード(すなわち、サーバ)に記憶することができる。分散キーを選択することにより、通信システムの冗長化のために使用される場合に、データベースにおいて観察されたアクセスパターンを最大限に利用するようにすることができる。このようなデータベースでは、一定の一般的に高速の書き込み(すなわち作成、更新、削除)を観察することができ、障害が発生しない限り読み取りは行われない。VMに障害が発生すると、代替VMが構築され、次いで、先行VMが所有していた全ての行を検索するように指示される。検索された行に関連付けられたデータ609は、障害が発生したインスタンスを新規または既存の代替インスタンス上に構築するために使用される。以下でより詳細に説明するように、オーケストレーション層および仮想化層(本明細書では計算装置とも呼ばれる)は、仮想マシンおよびデータベースと通信することができ、仮想マシンの障害を検出することができ、障害が発生した仮想マシンの状態情報を引き継ぐように別の仮想マシンに命令を送信することができる。物理ドライブを使用してデータベースを操作する場合、この一連の読み取りは、データベースを構成するサーバ全体に行が分散されていない場合(例えば、それによってディスクのシーク時間と通信オーバーヘッドを回避する場合)よりもむしろ、分散データベース内の単一のサーバがレコードの全てを提供する場合に最速であることが示されている。分散キー622および642はこのような設計を示している。しかし、いくつかのデータベースでは、分散キー622の変形がより効果的であると考えられている。この変形例(例えば分散キー632および652)では、所与のテーブル形式における全てのレコードが単一のサーバから読み取られる一方で、他のテーブル形式が他のサーバから並行して読み取られる。このような設計は、データベース記憶装置が物理ドライブ(例えば、メモリ、固体記憶装置などに保持された記録)を使用しない場合に最もよく用いられる。
【0047】
テーブルID606およびテーブル行キー608のレコード内に含まれるデータ609の一例は、呼の現在の状態である。この呼状態情報が、障害が発生した第1の仮想マシンに関連付けられている場合、呼状態情報を、呼を遮断することなく第2の仮想マシンに直ちに転送することができる。第1の仮想マシンがアクティブ(起動状態)である場合、ネットワークを管理する通信アプリケーションは状態情報データをデータベースに書き込む。状態情報データは、ネットワーク要素ID(および該当する場合はVM ID)に関連付けられる。第1の仮想マシンに障害が発生すると、状態情報データは、以下に詳細に説明するように、ネットワーク要素ID(および該当する場合はVM ID)に関連付けられたデータベース内の全てのデータを転送することによって、データベースから第2の仮想マシンへ、オーケストレーション層および仮想化層によって転送される。いくつかの実施形態では、データを第2の仮想マシンに転送するかまたは書き込みすることにより、第1の仮想マシンのVM ID604を含む第1の仮想マシンの同一の識別が第2の仮想マシンに有効に割り当ててられる。
【0048】
図7は、本開示のいくつかの実施形態による、ネットワーク要素のデータベースに基づくバックアップを示すフローチャートである。
【0049】
ステップ702を参照して、ネットワーク要素データは、複数の計算インスタンスから受信される。計算インスタンスは、仮想マシン、コンテナまたはベアメタルサーバを含むことができる。いくつかの実施形態では、ベアメタルサーバは物理サーバを指している。より詳細に上述したように、計算インスタンスの各々は、ネットワーク要素インスタンスまたはネットワーク要素インスタンスの一部分をホストすることができる。ネットワーク要素データは、ネットワーク要素識別情報およびネットワーク要素に関連付けられた状態情報を含むことができる。
【0050】
ステップ704を参照して、ネットワーク要素データに基づいて複数の複合キーが作成される。いくつかの実施形態では、計算インスタンスから受信されたネットワーク要素データはデータベース(または別のデータ構造)に記憶され、複合キーは、記憶されたネットワーク要素データに基づいて作成される。各計算インスタンスを、ネットワーク要素識別情報および1つ以上のネットワーク要素の状態情報データに関連付けることができる。いくつかの実施形態では、ネットワーク要素識別情報および1つ以上のネットワーク要素の状態情報データに基づいて、複合キーを作成することができる。複合キーは、ネットワーク要素識別情報に基づくネットワーク要素識別子(ID)を含むことができる。例えば、ネットワーク要素PGW、SGW、GGSNおよび/またはPCRFの各々を、異なる計算インスタンス上で、または複数の計算インスタンスにわたって別個のインスタンスとしてホストすることができ、同一のネットワーク要素の各々は、異なるネットワーク要素IDに関連付けられてもよい。いくつかの実施形態では、ネットワーク要素の各々をテーブルIDと関連付けることもできる。上述したように、テーブルIDをネットワーク要素IDと関連付けることができる。テーブルIDは、ネットワーク要素インスタンスに関連付けられた状態情報の分類を示すことができる。いくつかの実施形態では、状態情報データの分類は、例えば接続されたユーザセッション、接続されたユーザセッションに関連付けられたアクセスベアラ、および無線アクセスベアラに関連付けられた5タプルのアクティブフローを含むことができる。いくつかの実施形態では、複合キーはまた、テーブル行キーおよびクラスタノードIDを含むことができる。
【0051】
ステップ706を参照して、作成された複合キーおよび関連データは、レコード(例えば、複数の行)としてデータベースに記憶される。いくつかの実施形態では、各複合キーおよび関連データは、別個の行として記憶される。より詳細に上述したように、データセンターは、1つ以上の計算インスタンスおよびデータベースをホストすることができる。いくつかの実施形態では、データベースは計算インスタンスとは別にホストされる。いくつかの実施形態では、データセンターはデータベースおよび計算インスタンスの両方を含む。
【0052】
ステップ708を参照して、計算インスタンスのうちの1つに関連付けられた障害が決定される。いくつかの実施形態では、障害が発生した計算インスタンスは、ネットワーク要素インスタンスの少なくとも一部分を含む。より詳細に上述したように、ハートビート機構または任意の他の障害検出技術を使用して、第1の計算インスタンスの障害を検出することができる。いくつかの実施形態では、データセンターまたは具体的にはオーケストレータ、およびデータセンター内のネットワーク機能仮想化インフラストラクチャは、計算インスタンスの障害を検出することができる。
【0053】
ステップ710を参照して、少なくとも1つの分散キーは、障害が発生した計算インスタンスに基づいて決定される。上述したように、分散キーは、複合キー内の最上位フィールド(すなわち、左側のフィールド)のサブセットを含むことができる。いくつかの実施形態では、分散キーの各々は、障害が発生した計算インスタンスに関連付けられたネットワーク要素インスタンスに関連付けられたネットワーク要素IDを含む。
【0054】
ステップ712を参照して、命令(例えば、活性化命令)は、別の計算インスタンスに送信されて、別の計算インスタンス上でネットワークインスタンスを再作成する。いくつかの実施形態では、ネットワークインスタンスが再作成される計算インスタンスは、ネットワーク内に既に存在する。いくつかの実施形態では、ネットワークインスタンスが再作成される計算インスタンスは、ネットワークインスタンスをホストするように作成される。いくつかの実施形態では、命令は、障害が発生した計算インスタンスに関連付けられた全てのテーブルにおける行の完全セットをデータベースから検索するように他の計算インスタンスに命令する、別の計算インスタンスに送信される。いくつかの実施形態では、行を分散キーによって識別することができる。より詳細に上述したように、第2の計算インスタンスは、第1の計算インスタンスによって保存された全ての状態データをデータベースから迅速に検索することができる。
【0055】
図8は、本開示のいくつかの実施形態による、オーケストレータおよびネットワーク機能仮想化インフラストラクチャを示すシステム図である。
図8は、オーケストレータ802と、ネットワーク機能仮想化インフラストラクチャ(NFVI)と、単一のVM812をホストとするネットワーク要素1と、単一のVM814をホストとするネットワーク要素2と、クラスタ820内の複数のVM822、824、826をホストとするネットワーク要素3とを示している。
【0056】
NFVI804と連動するオーケストレータ802は、仮想マシンに関連付けられた障害を検出し、回復動作を行い、かつ、障害が発生したVMを環境内の別のVM上で再度作成することができる。オーケストレータ802およびNFVI804は、単一のVM(例えば812)を別の単一のVM(例えば814)に複製するか、またはVMクラスタ(例えば820)を複製することができる。より詳細に上述したように、VMは、障害が発生したVMに関連付けられた関連情報をデータベース450から取り出すことによって複製することができる。オーケストレータ802およびNFVI804は、サーバ、ストレージ、ネットワークスイッチおよびルータ上で動作するソフトウェア、および/またはこれらの組み合わせで動作するソフトウェアとして実装することができる。サーバ、ストレージおよびネットワーク要素から構成される非仮想化環境については、オーケストレーション機能(すなわち、障害を検出して反応する機能)の実施形態は、要素管理システム(EMS)、ネットワーク管理システム(NMS)、運用サポートシステム(OSS)またはネットワーク要素の監視に関連する他のソフトウェアシステムに含まれてもよい。
【0057】
本明細書に記載の技術の利点は、アプリケーションの複雑さの低減、データセンターの複雑性の低減、設置面積の削減、マルチサイト冗長性および地理的冗長性を含む。アプリケーションは状態が少ない性質のため、アプリケーションの複雑性を軽減することができる。対照的に、従来の方法を使用する状態バックアップ方式では、広範なコード開発が必要となりかねず、バグが発生する可能性がある。VMの再起動はコールドリスタートであるため、データセンターの複雑性もまた軽減される。つまり、仮想化インフラストラクチャ(VIM)層の高可用性(VIM層HA)要件はなく、ストレージエリアネットワーク(SAN)の厳しい要件もない。VMは必要に応じて交換することができるため、設置面積もまた削減される。マルチサイト同期のため、または必要に応じてクラスタ全体を新しいデータセンターにおいて再作成するために、データベースの冗長性を活用することができるので、マルチサイト冗長性および地理的冗長性もまた使用可能である。
【0058】
本明細書に記載の主題は、本明細書に開示の構造的手段およびその構造的等価物、またはそれらの組み合わせを含むデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて実装することができる。本明細書に記載の主題は、(例えば、機械可読記憶装置内の)情報媒体において有形に実施されるか、または伝搬信号において実施される1つ以上のコンピュータプログラムなど、1つ以上のコンピュータプログラム製品として、データ処理装置(例えば、プログラマブルプロセッサ、コンピュータ、または複数のコンピュータ)が実行するために、またはこのデータ処理装置の動作を制御するために実装することができる。(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)コンピュータプログラムを、コンパイラ型言語またはインタプリタ型言語を含む任意の形式のプログラミング言語で書き込むことができ、スタンドアロン・プログラムとして、またはコンピューティング環境での使用に適したモジュール、構成要素、サブルーチン、または他のユニットとして展開することができる。コンピュータプログラムは必ずしもファイルに対応しているとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分に、当該プログラム専用の単一のファイルに、または複数の調整されたファイル(例えば1つ以上のモジュール、サブプログラム、またはコードの一部分を記憶するファイル)に記憶することができる。コンピュータプログラムを、1つのコンピュータまたは1つのサイトにおいて実行するか、または複数のサイトに分散されて通信ネットワークによって相互接続されるように展開することができる。
【0059】
本明細書に記載の主題の方法ステップを含む、本明細書に記載のプロセスおよび論理フローは、入力データに対して動作して出力を生成することによって1つ以上のコンピュータプログラムを実行して本明細書に記載の主題の機能を実行する1つ以上のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローはまた、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によって実行することができ、本明細書に記載の主題の装置は、この専用論理回路として実装することができる。
【0060】
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用および専用両方のマイクロプロセッサ、および任意の種類のデジタルコンピュータのいずれか1つ以上のプロセッサを含む。一般に、プロセッサは、読出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ、および、命令およびデータを記憶するための1つ以上のメモリ装置である。一般的にコンピュータはまた、例えば磁気ディスク、光磁気ディスク、または光ディスクなどのデータを保存するための1つ以上の大容量記憶装置を含むかまたは動作可能に結合されて、この大容量記憶装置との間でデータを受信するかまたは転送するか、またはその両方を行う。コンピュータプログラム命令およびデータを具体化するのに適した情報媒体としては、一例として、半導体メモリ装置(例えば、EPROM、EEPROMおよびフラッシュメモリ装置)、磁気ディスク(例えば内蔵ハードディスクまたはリムーバブルディスク)、光磁気ディスクおよび光ディスク(例えばCDおよびDVDディスク)を含む、全ての形式の不揮発性メモリが挙げられる。プロセッサおよびメモリは、専用論理回路によって補完されるかまたはこの専用論理回路に組み込まれてもよい。
【0061】
ユーザとの対話を行うために、本明細書に記載の主題は、ユーザに情報を表示するための例えばCRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタなどの表示装置と、ユーザがコンピュータに入力を提供することができるようなキーボードおよびポインティングデバイス(例えばマウスまたはトラックボール)とを有するコンピュータ上で実施することができる。他の種類の装置を使用して、ユーザとの対話を行うこともできる。例えばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバック)とすることができ、ユーザからの入力は、音響、音声または触覚の入力を含む任意の形態で受け取ることができる。
【0062】
本明細書に記載の主題は、バックエンド構成要素(例えばデータサーバ)、ミドルウェア構成要素(例えばアプリケーションサーバ)、またはフロントエンド構成要素(例えば、ユーザが本明細書に記載の主題の実施形態と対話することができるグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータ)、または、このようなバックエンド構成要素、ミドルウェア構成要素およびフロントエンド構成要素の任意の組み合わせを含む計算装置において実施することができる。システムの構成要素は、例えば通信ネットワークなどの任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、および例えばインターネットなどのワイドエリアネットワーク(「WAN」)が挙げられる。
【0063】
開示の主題は、その適用において、構成の詳細および以下の説明に記載されるかまたは図面に示される構成要素の構成に限定されないことが理解されるべきである。開示の主題は、他の実施形態が可能であり、様々な方法で実施および実行することが可能である。また、本明細書で使用される表現および用語は、説明を目的としており、限定的であるとみなされるべきではないことを理解されたい。
【0064】
このように、当業者であれば、本開示の基礎となる概念は、開示の主題のいくつかの目的を実行するための他の構造、方法およびシステムの設計の基礎として容易に利用することができることを理解するであろう。したがって、特許請求の範囲は、開示の主題の精神および範囲から逸脱しない限り、同等の構成を含むものとみなされることが重要である。
【0065】
開示の主題について上述の例示的な実施形態で説明しかつ図示したが、本開示は単に一例としてなされたものであり、開示の主題の実装における多くの変更は、開示の主題の精神および範囲から逸脱することなく実施することができることを理解されたい。