以下、本発明の一実施形態について図面に基づき詳細に説明する。
図1及び図2は、本発明の一実施形態に係る通信システム1の一例を示す図である。図1は、通信システム1に含まれるデータセンタ群のロケーションに着目した図となっている。図2は、通信システム1に含まれるデータセンタ群で実装されている各種のコンピュータシステムに着目した図となっている。
図1に示すように、通信システム1に含まれるデータセンタ群は、セントラルデータセンタ10、リージョナルデータセンタ12、エッジデータセンタ14に分類される。
セントラルデータセンタ10は、例えば、通信システム1がカバーするエリア内(例えば、日本国内)に分散して数個配置されている。
リージョナルデータセンタ12は、例えば、通信システム1がカバーするエリア内に分散して数十個配置されている。例えば、通信システム1がカバーするエリアが日本国内全域である場合に、リージョナルデータセンタ12が、各都道府県に1から2個ずつ配置されてもよい。
エッジデータセンタ14は、例えば、通信システム1がカバーするエリア内に分散して数千個配置される。また、エッジデータセンタ14のそれぞれは、アンテナ16を備えた通信設備18と通信可能となっている。ここで図1に示すように、1つのエッジデータセンタ14が数個の通信設備18と通信可能になっていてもよい。通信設備18は、サーバコンピュータなどのコンピュータを含んでいてもよい。本実施形態に係る通信設備18は、アンテナ16を介してUE(User Equipment)20との間で無線通信を行う。アンテナ16を備えた通信設備18には、例えば、後述のRU(Radio Unit)が設けられている。
本実施形態に係るセントラルデータセンタ10、リージョナルデータセンタ12、エッジデータセンタ14には、それぞれ、複数のサーバが配置されている。
本実施形態では例えば、セントラルデータセンタ10、リージョナルデータセンタ12、エッジデータセンタ14は、互いに通信可能となっている。また、セントラルデータセンタ10同士、リージョナルデータセンタ12同士、エッジデータセンタ14同士も互いに通信可能になっている。
図2に示すように、本実施形態に係る通信システム1には、プラットフォームシステム30、複数の無線アクセスネットワーク(RAN)32、複数のコアネットワークシステム34、複数のUE20が含まれている。コアネットワークシステム34、RAN32、UE20は、互いに連携して、移動通信ネットワークを実現する。
RAN32は、第4世代移動通信システム(以下、4Gと呼ぶ。)におけるeNB(eNodeB)や、第5世代移動通信システム(以下、5Gと呼ぶ。)におけるgNB(NR基地局)に相当する、アンテナ16を備えたコンピュータシステムである。本実施形態に係るRAN32は、主に、エッジデータセンタ14に配置されているサーバ群及び通信設備18によって実装される。なお、RAN32の一部(例えば、DU(Distributed Unit)、CU(Central Unit)、vDU(virtual Distributed Unit)、vCU(virtual Central Unit))は、エッジデータセンタ14ではなく、セントラルデータセンタ10やリージョナルデータセンタ12で実装されてもよい。
コアネットワークシステム34は、4GにおけるEPC(Evolved Packet Core)や、5Gにおける5Gコア(5GC)に相当するシステムである。本実施形態に係るコアネットワークシステム34は、主に、セントラルデータセンタ10やリージョナルデータセンタ12に配置されているサーバ群によって実装される。
本実施形態に係るプラットフォームシステム30は、例えば、クラウド基盤上に構成されており、図2に示すように、プロセッサ30a、記憶部30b、通信部30c、が含まれる。プロセッサ30aは、プラットフォームシステム30にインストールされるプログラムに従って動作するマイクロプロセッサ等のプログラム制御デバイスである。記憶部30bは、例えばROMやRAM等の記憶素子や、ソリッドステートドライブ(SSD)、ハードディスクドライブ(HDD)などである。記憶部30bには、プロセッサ30aによって実行されるプログラムなどが記憶される。通信部30cは、例えば、NIC(Network Interface Controller)や無線LAN(Local Area Network)モジュールなどといった通信インタフェースである。なお、通信部30cにおいて、SDN(Software-Defined Networking)が実装されていてもよい。通信部30cは、RAN32、コアネットワークシステム34、との間でデータを授受する。
本実施形態では、プラットフォームシステム30は、セントラルデータセンタ10に配置されているサーバ群によって実装されている。なお、プラットフォームシステム30が、リージョナルデータセンタ12に配置されているサーバ群によって実装されていてもよい。
本実施形態では例えば、購入者によるネットワークサービス(NS)の購入要求に応じて、購入要求がされたネットワークサービスがRAN32やコアネットワークシステム34に構築される。そして、構築されたネットワークサービスが購入者に提供される。
例えば、MVNO(Mobile Virtual Network Operator)である購入者に、音声通信サービスやデータ通信サービス等のネットワークサービスが提供される。本実施形態によって提供される音声通信サービスやデータ通信サービスは、図1及び図2に示すUE20を利用する、購入者(上述の例ではMVNO)にとっての顧客(エンドユーザ)に対して最終的に提供されることとなる。当該エンドユーザは、RAN32やコアネットワークシステム34を介して他のユーザとの間で音声通信やデータ通信を行うことが可能である。また、当該エンドユーザのUE20は、RAN32やコアネットワークシステム34を介してインターネット等のデータネットワークにアクセスできるようになっている。
また、本実施形態において、ロボットアームやコネクテッドカーなどを利用するエンドユーザに対して、IoT(Internet of Things)サービスが提供されても構わない。そして、この場合において、例えば、ロボットアームやコネクテッドカーなどを利用するエンドユーザが本実施形態に係るネットワークサービスの購入者となっても構わない。
本実施形態では、セントラルデータセンタ10、リージョナルデータセンタ12、及び、エッジデータセンタ14に配置されているサーバには、ハイパーバイザ(ベアメタル型ハイパーバイザ)や、ホストオペレーティングシステム(ホストOS)上で動作するホスト型仮想化ソフトウェアがインストールされている。そして、それぞれのサーバでは、1以上の仮想マシン(VM:Virtual Machine)が稼働する。そして、それぞれの仮想マシンには、1又は複数のプロセスをデプロイして稼働させることができるようになっている。また、本実施形態において、複数のサーバにまたがる仮想マシンのクラスタが構築されてもよい。
そして本実施形態において購入者に提供されるネットワークサービスは、1又は複数の機能ユニット(例えば、ネットワークファンクション(NF))から構成される。本実施形態では、当該機能ユニットは、仮想化技術によって実現されたNFで実装される。仮想化技術によって実現されたNFは、VNF(Virtualized Network Function)と称される。以下の説明では、当該機能ユニットは、ハイパーバイザ型あるいはホスト型の仮想化技術によって実現されたVNFで実装されることとする。本実施形態では、ネットワークサービスが1又は複数のNFによって実装されるものとして説明する。また、本実施形態に係る機能ユニットは、ネットワークノードに相当するものであってもよい。
図3は、稼働中のネットワークサービスの一例を模式的に示す図である。図3に示すネットワークサービスには、複数のRU40、複数のDU42、複数のCU44(CU-CP(Central Unit - Control Plane)44a、及び、CU-UP(Central Unit - User Plane)44b)、複数のAMF(Access and Mobility Management Function)46、複数のSMF(Session Management Function)48、及び、複数のUPF(User Plane Function)50などのNFがソフトウェア要素として含まれている。
図3の例では、RU40、DU42、CU-CP44a、AMF46、及び、SMF48が、コントロールプレーン(C-Plane)の要素に相当し、RU40、DU42、CU-UP44b、及び、UPF50が、ユーザプレーン(U-Plane)の要素に相当する。
なお、当該ネットワークサービスに、他の種類のNFがソフトウェア要素として含まれていても構わない。また、ネットワークサービスは、複数のサーバ等のコンピュータリソース(ハードウェア要素)上に実装されている。
そして、本実施形態では例えば、図3に示すネットワークサービスによって、あるエリアにおける通信サービスが提供される。
そして、本実施形態では、図3に示す複数のRU40、複数のDU42、複数のCU-UP44b、及び、複数のUPF50が、1つのエンド・ツー・エンドのネットワークスライスに所属していることとする。
図4は、本実施形態において通信システム1に構築される要素間の関連付けの一例を模式的に示す図である。なお、図4に示された記号M及びNは1以上の任意の整数を表し、リンクで接続された要素同士の個数の関係を示す。リンクの両端がMとNの組み合わせの場合は、当該リンクで接続された要素同士は多対多の関係であり、リンクの両端が1とNの組み合わせ又は1とMの組み合わせの場合は、当該リンクで接続された要素同士は1対多の関係である。
図4に示すように、ネットワークサービス(NS)、ネットワークファンクション(NF)、及び、プロセスは、階層構成となっている。
NSは、例えば、複数のNFから構成されるネットワークサービスに相当する。ここで、NSが、例えば、5GC、EPC、5GのRAN(gNB)、4GのRAN(eNB)、などの粒度の要素に相当するものであってもよい。
NFは、5Gでは、例えば、RU、DU、CU-CP、CU-UP、AMF、SMF、UPFなどの粒度の要素に相当する。また、NFは、4Gでは、例えば、MME(Mobility Management Entity)、HSS(Home Subscriber Server)、S-GW(Serving Gateway)、vDU、vCUなどの粒度の要素に相当する。本実施形態では例えば、1つのNSには、1又は複数のNFが含まれる。すなわち、1又は複数のNFが、1つのNSの配下にあることとなる。
そして、NFには、1つ以上のプロセスが含まれる。すなわち、1又は複数のプロセスが、1つのNFの配下にあることとなる。
あるプロセスは、DU、CU-CP、CU-UP等の機能のうち一部の機能を提供するものであってもよい。また、あるプロセスは、UPF、AMF、SMF等の機能のうちの一部の機能を提供するものであってもよい。例えば、UPFに、管理用のプロセス、ユーザプレーンでの通信用のプロセス、などといった複数種類のプロセスが含まれていてもよい。また、1つのNF(例えば、1つのUPF)に、特定の種類のプロセスが複数含まれていてもよい。
また、図4に示すように、ネットワークスライス(NSI)とネットワークスライスサブネットインスタンス(NSSI)とは階層構成となっている。
NSIは、複数ドメイン(例えばRAN32からコアネットワークシステム34)に跨るエンド・ツー・エンドの仮想回線とも言える。NSIは、高速大容量通信用のスライス(例えば、eMBB:enhanced Mobile Broadband用)、高信頼度かつ低遅延通信用のスライス(例えば、URLLC:Ultra-Reliable and Low Latency Communications用)、又は、大量端末の接続用のスライス(例えば、mMTC:massive Machine Type Communication用)であってもよい。NSSIは、NSIを分割した単一ドメインの仮想回線とも言える。NSSIは、RANドメインのスライス、MBH(Mobile Back Haul)ドメイン等のトランスポートドメインのスライス、又は、コアネットワークドメインのスライスであってもよい。
本実施形態では例えば、1つのNSIには、1又は複数のNSSIが含まれる。すなわち、1又は複数のNSSIが、1つのNSIの配下にあることとなる。なお、本実施形態において、複数のNSIが同じNSSIを共有してもよい。
また、図4に示すように、NSSIとNSとは、一般的には、多対多の関係となる。
また、本実施形態では例えば、1つのNFは、1又は複数のネットワークスライスに所属できるようになっている。具体的には例えば、1つのNFには、1又は複数のS-NSSAI(Sub Network Slice Selection Assist Information)を含むNSSAI(Network Slice Selection Assistance Information)を設定できるようになっている。ここで、S-NSSAIは、ネットワークスライスに対応付けられる情報である。なお、NFが、ネットワークスライスに所属していなくてもよい。
図5は、本実施形態に係るプラットフォームシステム30で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るプラットフォームシステム30で、図5に示す機能のすべてが実装される必要はなく、また、図5に示す機能以外の機能が実装されていても構わない。
図5に示すように、本実施形態に係るプラットフォームシステム30には、機能的には例えば、オペレーションサポートシステム(OSS)部60、オーケストレーション(E2EO:End-to-End-Orchestration)部62、サービスカタログ記憶部64、ビッグデータプラットフォーム部66、データバス部68、AI(Artificial Intelligence)部70、監視機能部72、SDNコントローラ74、構成管理部76、プロセス管理部78、リポジトリ部80、が含まれている。そして、OSS部60には、インベントリデータベース82、チケット管理部84、障害管理部86、性能管理部88、が含まれている。そして、E2EO部62には、ポリシーマネージャ部90、スライスマネージャ部92、ライフサイクル管理部94、が含まれている。これらの要素は、プロセッサ30a、記憶部30b、及び、通信部30cを主として実装される。
図5に示す機能は、1又は複数のコンピュータであるプラットフォームシステム30にインストールされ、当該機能に対応する指令を含むプログラムをプロセッサ30aが実行することにより、実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してプラットフォームシステム30に供給されてもよい。また、図5に示す機能が、回路ブロック、メモリ、その他のLSIで実装されてもよい。また、図5に示す機能が、ハードウェアのみ、ソフトウェアのみ、又はそれらの組合せといった様々な形態で実現できることは、当業者には理解されるところである。
プロセス管理部78は、プロセスのライフサイクル管理を実行する。例えば、プロセスのデプロイや設定などといったプロセスの構築に関する処理が当該ライフサイクル管理に含まれる。
ここで、本実施形態に係るプラットフォームシステム30に、複数のプロセス管理部78が含まれていてもよい。そして、複数のプロセス管理部78のそれぞれには、プロセス管理ツールがインストールされていてもよい。そして、複数のプロセス管理部78は、それぞれ、当該プロセス管理部78に対応付けられるサーバ群(例えばクラスタ)に対して、プロセスのデプロイ等のプロセスの構築を実行してもよい。
なお、プロセス管理部78は、プラットフォームシステム30に含まれている必要はない。プロセス管理部78は、例えば、当該プロセス管理部78によって管理されるサーバ(すなわち、RAN32やコアネットワークシステム34)に設けられていてもよいし、あるいは、当該プロセス管理部78によって管理されるサーバに併設されている他のサーバに設けられていてもよい。
リポジトリ部80は、本実施形態では例えば、ネットワークサービスを実現する機能ユニット群(例えば、NF群)に含まれるプロセスのイメージを記憶する。
インベントリデータベース82は、インベントリ情報が格納されたデータベースである。当該インベントリ情報には、例えば、RAN32やコアネットワークシステム34に配置され、プラットフォームシステム30で管理されているサーバについての情報が含まれる。
また本実施形態では、インベントリデータベース82には、インベントリデータが記憶されている。インベントリデータには、通信システム1に含まれる要素群の構成や要素間の関連付けの現況が示されている。また、インベントリデータには、プラットフォームシステム30で管理されているリソースの状況(例えば、リソースの使用状況)が示されている。当該インベントリデータは、物理インベントリデータでもよいし、論理インベントリデータでもよい。物理インベントリデータ及び論理インベントリデータについては後述する。
図6は、物理インベントリデータのデータ構造の一例を示す図である。図6に示す物理インベントリデータは、1つのサーバに対応付けられる。図6に示す物理インベントリデータには、例えば、サーバID、ロケーションデータ、建物データ、階数データ、ラックデータ、スペックデータ、ネットワークデータ、稼働プロセスIDリスト、クラスタID、などが含まれる。
物理インベントリデータに含まれるサーバIDは、例えば、当該物理インベントリデータに対応付けられるサーバの識別子である。
物理インベントリデータに含まれるロケーションデータは、例えば、当該物理インベントリデータに対応付けられるサーバのロケーション(例えばロケーションの住所)を示すデータである。
物理インベントリデータに含まれる建物データは、例えば、当該物理インベントリデータに対応付けられるサーバが配置されている建物(例えば建物名)を示すデータである。
物理インベントリデータに含まれる階数データは、例えば、当該物理インベントリデータに対応付けられるサーバが配置されている階数を示すデータである。
物理インベントリデータに含まれるラックデータは、例えば、当該物理インベントリデータに対応付けられるサーバが配置されているラックの識別子である。
物理インベントリデータに含まれるスペックデータは、例えば、当該物理インベントリデータに対応付けられるサーバのスペックを示すデータであり、スペックデータには、例えば、コア数、メモリ容量、ハードディスク容量などといったものが示される。
物理インベントリデータに含まれるネットワークデータは、例えば、当該物理インベントリデータに対応付けられるサーバのネットワークに関する情報を示すデータであり、ネットワークデータには、例えば、当該サーバが備えるNIC、当該NICが備えるポートの数、当該ポートのポートIDなどが示される。
物理インベントリデータに含まれる稼働プロセスIDリストは、例えば、当該物理インベントリデータに対応付けられるサーバで稼働する1又は複数のプロセスに関する情報を示すデータであり、稼働プロセスIDリストには、例えば、当該プロセスのインスタンスの識別子(プロセスID)のリストが示される。
物理インベントリデータに含まれるクラスタIDは、例えば、当該物理インベントリデータに対応付けられるサーバが所属するクラスタ(例えば、クバネテスクラスタ)の識別子である。
論理インベントリデータには、通信システム1に含まれる複数の要素についての、図4に示されているような要素間の関連付けの現況を示すトポロジーデータが含まれている。例えば、論理インベントリデータには、あるNSの識別子と当該NSの配下にある1又は複数のNFの識別子とを含むトポロジーデータが含まれる。また、例えば、論理インベントリデータには、あるネットワークスライスの識別子と当該ネットワークスライスに所属する1又は複数のNFの識別子とを含むトポロジーデータが含まれる。
また、インベントリデータに、通信システム1に含まれる要素間の地理的な関係やトポロジー的な関係などの現況が示すデータが含まれていてもよい。上述の通り、インベントリデータには、通信システム1に含まれる要素が稼働しているロケーション、すなわち、通信システム1に含まれる要素の現在のロケーションを示すロケーションデータが含まれている。このことから、インベントリデータには、要素間の地理的な関係(例えば、要素間の地理的な近さ)の現況が示されていると言える。
また、論理インベントリデータに、ネットワークスライスに関する情報を示すNSIデータが含まれていてもよい。NSIデータは、例えば、ネットワークスライスのインスタンスの識別子や、ネットワークスライスの種類等の属性を示す。また、論理インベントリデータに、ネットワークスライスサブネットに関する情報を示すNSSIデータが含まれていてもよい。NSSIデータは、例えば、ネットワークスライスサブネットのインスタンスの識別子や、ネットワークスライスサブネットの種類等の属性を示す。
また、論理インベントリデータに、NSに関する情報を示すNSデータが含まれていてもよい。NSデータは、例えば、NSのインスタンスの識別子や、NSの種類等の属性を示す。また、論理インベントリデータに、NFに関する情報を示すNFデータが含まれていてもよい。NFデータは、例えば、NFのインスタンスの識別子や、NFの種類等の属性を示す。また、論理インベントリデータに、NFに含まれるプロセスに関する情報を示すプロセスデータが含まれていてもよい。プロセスデータは、例えば、プロセスのインスタンスのプロセスIDや、プロセスの種類等の属性を示す。
論理インベントリデータに含まれるプロセスデータのプロセスIDと、物理インベントリデータに含まれる稼働プロセスIDリストに含まれるプロセスIDと、によって、プロセスのインスタンスと、当該プロセスのインスタンスが稼働しているサーバとが関連付けられることとなる。
また、ホスト名やIPアドレスなどの各種の属性を示すデータが論理インベントリデータに含まれる上述のデータに含まれていても構わない。例えば、プロセスデータに、当該プロセスデータに対応するプロセスのIPアドレスを示すデータが含まれていてもよい。また、例えば、NFデータに、当該NFデータが示すNFのIPアドレス及びホスト名を示すデータが含まれていてもよい。
また、論理インベントリデータに、各NFに設定されている、1又は複数のS-NSSAIを含むNSSAIを示すデータが含まれていてもよい。
また、インベントリデータベース82は、プロセス管理部78と連携して、リソースの状況を適宜把握できるようになっている。そして、インベントリデータベース82は、リソースの最新の状況に基づいて、インベントリデータベース82に記憶されているインベントリデータを適宜更新する。
また、例えば、通信システム1に含まれる新規要素の構築、通信システム1に含まれる要素の構成変更、通信システム1に含まれる要素のスケーリング、通信システム1に含まれる要素のリプレース、などのアクションが実行されることに応じて、インベントリデータベース82は、インベントリデータベース82に記憶されているインベントリデータを更新する。
サービスカタログ記憶部64は、サービスカタログデータを記憶する。サービスカタログデータには、例えば、ライフサイクル管理部94によって利用されるロジックなどを示すサービステンプレートデータが含まれていてもよい。このサービステンプレートデータには、ネットワークサービスを構築するために必要な情報が含まれる。例えば、サービステンプレートデータは、NS、NF及びプロセスを定義する情報と、NS-NF-プロセスの対応関係を示す情報を含む。また、例えば、サービステンプレートデータは、ネットワークサービスを構築するためのワークフローのスクリプトを含む。
サービステンプレートデータの一例として、NSD(NS Descriptor)が挙げられる。NSDは、ネットワークサービスに対応付けられるものであり、当該ネットワークサービスに含まれる複数の機能ユニットの種類などが示されている。なお、NSDに、機能ユニットの種類ごとについての、当該ネットワークサービスに含まれる数が示されていてもよい。また、NSDに、当該ネットワークサービスに含まれるNFに係る、後述するNFDのファイル名が示されていてもよい。
また、サービステンプレートデータの一例として、NFD(NF Descriptor)が挙げられる。NFDに、当該NFが必要とするコンピュータリソース(例えば、CPU、メモリ、ハードディスクなど)が示されていてもよい。例えば、NFDに、当該NFに含まれる複数のプロセスのそれぞれについての、当該プロセスが必要とするコンピュータリソース(CPU、メモリ、ハードディスクなど)が示されていてもよい。
また、サービスカタログデータに、ポリシーマネージャ部90によって利用される、算出された性能指標値や安定性評価値と比較する閾値(例えば異常検出用閾値)に関する情報が含まれていてもよい。性能指標値や安定性評価値については後述する。
また、サービスカタログデータに、例えば、スライステンプレートデータが含まれていてもよい。スライステンプレートデータには、ネットワークスライスのインスタンス化を実行するために必要な情報が含まれ、例えば、スライスマネージャ部92によって利用されるロジックが含まれる。
スライステンプレートデータは、GSMA(GSM Association)(「GSM」は登録商標)が定める「Generic Network Slice Template」の情報を含む。具体的には、スライステンプレートデータは、ネットワークスライスのテンプレートデータ(NST)、ネットワークスライスサブネットのテンプレートデータ(NSST)、ネットワークサービスのテンプレートデータを含む。また、スライステンプレートデータは、図4に示したような、これらの要素の階層構成を示す情報を含む。
ライフサイクル管理部94は、本実施形態では例えば、購入者によるNSの購入要求に応じて、購入要求がされた新たなネットワークサービスを構築する。
ライフサイクル管理部94は、例えば、購入要求に応じて、購入されるネットワークサービスに対応付けられるワークフローのスクリプトを実行してもよい。そして、このワークフローのスクリプトを実行することで、ライフサイクル管理部94は、プロセス管理部78に、購入される新たなネットワークサービスに含まれるプロセスのデプロイを指示してもよい。そして、プロセス管理部78は、当該プロセスのイメージをリポジトリ部80から取得して、当該イメージに対応するプロセスを、サーバにデプロイしてもよい。
また、ライフサイクル管理部94は、本実施形態では例えば、通信システム1に含まれる要素のスケーリングやリプレースを実行する。ここで、ライフサイクル管理部94は、プロセスのデプロイ指示や削除指示をプロセス管理部78に出力してもよい。そして、プロセス管理部78が、当該指示に従い、プロセスのデプロイやプロセスの削除等の処理を実行してもよい。本実施形態ではライフサイクル管理部94によって、プロセス管理部78のツールでは対応できないようなスケーリングやリプレースを実行できるようになっている。
また、ライフサイクル管理部94は、SDNコントローラ74に、通信経路の作成指示を出力してもよい。例えば、ライフサイクル管理部94は、作成させる通信経路の両端の2つのIPアドレスをSDNコントローラ74に提示し、SDNコントローラ74は、これら2つのIPアドレスを結ぶ通信経路を作成する。作成された通信経路は、これら2つのIPアドレスに関連付けられて管理されてもよい。
また、ライフサイクル管理部94は、SDNコントローラ74に、2つのIPアドレスに関連付けられた、これら2つのIPアドレス間の通信経路の作成指示を出力してもよい。
スライスマネージャ部92は、本実施形態では例えば、ネットワークスライスのインスタンス化を実行する。スライスマネージャ部92は、本実施形態では例えば、サービスカタログ記憶部64に記憶されているスライステンプレートが示すロジックを実行することで、ネットワークスライスのインスタンス化を実行する。
スライスマネージャ部92は、例えば、3GPP(登録商標)(Third Generation Partnership Project)の仕様書「TS28 533」に記載される、NSMF(Network Slice Management Function)と、NSSMF(Network Slice Sub-network Management Function)の機能を含んで構成される。NSMFは、ネットワークスライスを生成して管理する機能であり、NSIのマネジメントサービスを提供する。NSSMFは、ネットワークスライスの一部を構成するネットワークスライスサブネットを生成し管理する機能であり、NSSIのマネジメントサービスを提供する。
ここで、スライスマネージャ部92が、ネットワークスライスのインスタンス化に関係する構成管理指示を構成管理部76に出力してもよい。そして、構成管理部76が、当該構成管理指示に従った設定等の構成管理を実行してもよい。
また、スライスマネージャ部92は、SDNコントローラ74に、2つのIPアドレスを提示し、これら2つのIPアドレス間の通信経路の作成指示を出力してもよい。
構成管理部76は、本実施形態では例えば、ライフサイクル管理部94やスライスマネージャ部92から受け付ける構成管理指示に従って、NF等の要素群の設定等の構成管理を実行する。
SDNコントローラ74は、本実施形態では例えば、ライフサイクル管理部94又はスライスマネージャ部92から受け付ける通信経路の作成指示に従って、当該作成指示に関連付けられている2つのIPアドレス間の通信経路を作成する。SDNコントローラ74は、例えば、フレックスアルゴ(Flex Algo)などの公知のパス計算手法を用いて、2つのIPアドレス間の通信経路を作成してもよい。
ここで例えば、SDNコントローラ74は、セグメントルーティング技術(例えばSRv6(セグメントルーティングIPv6))を用いて、通信経路間に存在するアグリゲーションルータや、サーバなどに対して、NSIやNSSIを構築してもよい。また、SDNコントローラ74は、複数の設定対象のNFに対して、共通のVLAN(Virtual Local Area Network)を設定するコマンド、及び、当該VLANに設定情報が示す帯域幅や優先度を割り当てるコマンドを発行することにより、それら複数の設定対象のNFにわたるNSI及びNSSIを生成してもよい。
なお、SDNコントローラ74は、ネットワークスライスを構築することなく、2つのIPアドレス間の通信で利用可能な帯域幅の最大値の変更などを実行してもよい。
本実施形態に係るプラットフォームシステム30に、複数のSDNコントローラ74が含まれていてもよい。そして、複数のSDNコントローラ74は、それぞれ、当該SDNコントローラ74に対応付けられるAG等のネットワーク機器群に対して通信経路の作成等の処理を実行してもよい。
監視機能部72は、本実施形態では例えば、通信システム1に含まれる要素群を、所与の管理ポリシーに従って監視する。ここで、監視機能部72は、例えば、ネットワークサービスの購入の際に購入者によって指定される監視ポリシーに従って、要素群を監視してもよい。
監視機能部72は、本実施形態では例えば、スライスのレベル、NSのレベル、NFのレベル、プロセスのレベル、サーバ等のハードウェアのレベル、などといった、様々なレベルでの監視を実行する。
監視機能部72は、例えば、上述の様々なレベルでの監視が行えるよう、メトリックデータを出力するモジュールをサーバ等のハードウェアや通信システム1に含まれるソフトウェア要素に設定してもよい。ここで例えば、NFが、当該NFにおいて測定可能(特定可能)なメトリックを示すメトリックデータを監視機能部72に出力するようにしてもよい。また、サーバが、当該サーバにおいて測定可能(特定可能)なハードウェアに関するメトリックを示すメトリックデータを監視機能部72に出力するようにしてもよい。
また、例えば、監視機能部72は、サーバに、メトリックデータをプロセス単位に取得するサイドカープロセスをデプロイしてもよい。監視機能部72は、モニタリングツールの仕組みを利用して、プロセス単位で取得されたメトリックデータをサイドカープロセスから取得する処理を、所与の監視間隔で繰り返し実行してもよい。
監視機能部72は、例えば、「TS 28.552, Management and orchestration; 5G performance measurements」又は「TS 28.554, Management and orchestration; 5G end to end Key Performance Indicators (KPI)」に記載された性能指標についての性能指標値を監視してもよい。そして、監視機能部72は、監視される性能指標値を示すメトリックデータを取得してもよい。
そして、監視機能部72は、本実施形態では、例えば、所定の集計単位で、メトリックデータを集計する処理(エンリッチメント)を実行することで、当該集計単位における、通信システム1に含まれる要素の性能指標値を示す性能指標値データを生成する。
例えば、1つのgNBについて、当該gNBの配下にある要素(例えば、DU42やCU44などのネットワークノード)のメトリックを示すメトリックデータを集計することで、当該gNBの性能指標値データを生成する。このようにして、当該gNBがカバーするエリアにおける通信性能を示す性能指標値データが生成される。ここで、例えば、各gNBにおいて、トラフィック量(スループット)やレイテンシなどといった複数種類の通信性能を示す性能指標値データが生成されてもよい。なお、性能指標値データが示す通信性能は、トラフィック量やレイテンシには限定されない。
そして、監視機能部72は、上述のエンリッチメントによって生成される性能指標値データを、データバス部68に出力する。
データバス部68は、本実施形態では例えば、監視機能部72から出力される性能指標値データを受け付ける。そして、データバス部68は、受け付ける1又は複数の性能指標値データに基づいて、当該1又は複数の性能指標値データを含む性能指標値ファイルを生成する。そして、データバス部68は、生成される性能指標値ファイルをビッグデータプラットフォーム部66に出力する。
また、監視機能部72は、本実施形態では、例えば、通信システム1に含まれる要素の安定性を示す安定性評価値を特定する。そして、監視機能部72は、特定される安定性評価値を示す安定性評価値データを生成する。そして、監視機能部72は、生成される安定性評価値データを、データバス部68に出力する。
データバス部68は、本実施形態では例えば、監視機能部72から出力される安定性評価値データを受け付ける。
また、通信システム1に含まれるネットワークスライス、NS、NF、プロセス等の要素や、サーバ等のハードウェアは、監視機能部72に、各種のアラートの通知(例えば、障害の発生をトリガとしたアラートの通知)を行う。
そして、監視機能部72は、例えば、上述のアラートの通知を受け付けると、当該通知を示すアラートメッセージデータをデータバス部68に出力する。そして、データバス部68は、1又は複数の通知を示すアラートメッセージデータを1つのファイルにまとめたアラートファイルを生成して、当該アラートファイルをビッグデータプラットフォーム部66に出力する。
ビッグデータプラットフォーム部66は、本実施形態では例えば、データバス部68から出力される性能指標値ファイルやアラートファイルを蓄積する。
AI部70には、本実施形態では例えば、学習済の機械学習モデルが予め複数記憶されている。AI部70は、AI部70に記憶されている各種の機械学習モデルを用いて、通信システム1の利用状況やサービス品質の将来予測処理などの推定処理を実行する。AI部70は、推定処理の結果を示す推定結果データを生成してもよい。
AI部70は、ビッグデータプラットフォーム部66に蓄積されるファイルと、上述の機械学習モデルと、に基づいて、推定処理を実行してもよい。この推定処理は、長期的なトレンドの予測を低頻度で行う場合に好適である。
また、AI部70は、データバス部68に格納されている性能指標値データを取得可能になっている。AI部70は、データバス部68に格納されている性能指標値データと、上述の機械学習モデルと、に基づいて、推定処理を実行してもよい。この推定処理は、短期的な予測を高頻度で行う場合に好適である。
性能管理部88は、本実施形態では例えば、複数のメトリックデータに基づいて、これらのメトリックデータが示すメトリックに基づく性能指標値(例えば、KPI)を算出する。性能管理部88は、単一のメトリックデータからは算出できない、複数の種類のメトリックの総合評価である性能指標値(例えば、エンド・ツー・エンドのネットワークスライスに係る性能指標値)を算出してもよい。性能管理部88は、総合評価である性能指標値を示す総合性能指標値データを生成してもよい。
なお、性能管理部88は、ビッグデータプラットフォーム部66から上述の性能指標値ファイルを取得してもよい。また、性能管理部88は、AI部70から推定結果データを取得してもよい。そして、性能指標値ファイル又は推定結果データのうちの少なくとも一方に基づいて、KPI等の性能指標値を算出してもよい。なお、性能管理部88が、監視機能部72からメトリックデータを直接取得してもよい。そして、当該メトリックデータに基づいて、KPI等の性能指標値を算出してもよい。
障害管理部86は、本実施形態では例えば、上述のメトリックデータ、上述のアラートの通知、上述の推定結果データ、上述の総合性能指標値データのうちの少なくともいずれかに基づいて、通信システム1における障害の発生を検出する。障害管理部86は、例えば、所定のロジックに基づいて、単一のメトリックデータや単一のアラートの通知からでは検出できないような障害の発生を検出してもよい。障害管理部86は、検出された障害を示す検出障害データを生成してもよい。
なお、障害管理部86は、メトリックデータやアラートの通知を、監視機能部72から直接取得してもよい。また、障害管理部86は、ビッグデータプラットフォーム部66から性能指標値ファイルやアラートファイルを取得してもよい。また、障害管理部86は、データバス部68から、アラートメッセージデータを取得してもよい。
ポリシーマネージャ部90は、本実施形態では例えば、上述のメトリックデータ、上述の性能指標値データ、上述の安定性評価値データ、上述のアラートメッセージデータ、上述の性能指標値ファイル、上述のアラートファイル、上述の推定結果データ、上述の総合性能指標値データ、上述の検出障害データ、のうちの少なくともいずれかに基づいて、所定の判定処理を実行する。
そして、ポリシーマネージャ部90は、判定処理の結果に応じたアクションを実行してもよい。例えば、ポリシーマネージャ部90は、スライスマネージャ部92にネットワークスライスの構築指示を出力してもよい。また、ポリシーマネージャ部90は、判定処理の結果に応じて、要素のスケーリングやリプレースの指示をライフサイクル管理部94に出力してもよい。
本実施形態に係るポリシーマネージャ部90は、データバス部68に格納されている性能指標値データを取得可能になっている。そして、ポリシーマネージャ部90は、データバス部68から取得される性能指標値データに基づいて、所定の判定処理を実行してもよい。また、ポリシーマネージャ部90は、データバス部68に格納されているアラートメッセージデータに基づいて、所定の判定処理を実行してもよい。
また、本実施形態に係るポリシーマネージャ部90は、データバス部68に格納されている安定性評価値データを取得可能になっている。そして、ポリシーマネージャ部90は、データバス部68から取得される安定性評価値データに基づいて、所定の判定処理を実行してもよい。例えば、ポリシーマネージャ部90は、アプリケーションの安定性を示す安定性評価値データに基づいて、当該アプリケーションが不安定であるか否かを判定してもよい。
チケット管理部84は、本実施形態では例えば、通信システム1の管理者に通知すべき内容が示されたチケットを生成する。チケット管理部84は、発生障害データの内容を示すチケットを生成してもよい。また、チケット管理部84は、性能指標値データや安定性評価値データやメトリックデータの値を示すチケットを生成してもよい。また、チケット管理部84は、ポリシーマネージャ部90による判定結果を示すチケットを生成してもよい。
そして、チケット管理部84は、生成されたチケットを、通信システム1の管理者に通知する。チケット管理部84は、例えば、生成されたチケットが添付された電子メールを、通信システム1の管理者の電子メールアドレスに宛てて送信してもよい。
本実施形態に係るプラットフォームシステム30は、通信システム1に含まれるプロセスが不安定であるか否かを判定する。以下、本実施形態に係るプラットフォームシステム30で実行される、プロセスが不安定であるか否かの判定についてさらに説明する。
図7は、複数のアプリケーションのそれぞれに含まれるプロセスが複数の仮想マシンで分散して稼働している状況の一例を模式的に示す図である。
図7の例では、識別子がそれぞれAP1、AP2、AP3、AP4である4つのアプリケーションが稼働している状況が示されている。
これらのアプリケーションは、ネットワークファンクション(例えば、DU42、CU-CP44a、CU-UP44b、AMF46、SMF48、UPF50、など)であってもよい。
本実施形態ではアプリケーションの種類毎に当該種類のアプリケーションが稼働可能なハードウェアリソースが予め定められている。以下の説明ではハードウェアリソースは、サーバであることとするが、当該ハードウェアリソースはサーバである必要はなく、例えば、ノードであっても構わない。
以下、ある種類のアプリケーションが稼働可能なハードウェアリソースを当該アプリケーションに対応するテナントと呼ぶこととする。
図7には、識別子がそれぞれS1、S2、S3、S4である4つのサーバが示されている。これら4つのサーバは、識別子がCL101である1つのクラスタに所属していることとする。
また、図7に示されている4つのアプリケーションは、それぞれ種類が異なることとする。そして、識別子がAP1であるアプリケーションに対応するテナントには、識別子がS1、S2、及び、S3であるサーバが含まれていることとする。また、識別子がAP2であるアプリケーションに対応するテナントには、識別子がS2、及び、S3であるサーバが含まれていることとする。また、識別子がAP3であるアプリケーションに対応するテナントには、識別子がS1、S2、S3、及び、S4であるサーバが含まれていることとする。また、識別子がAP4であるアプリケーションに対応するテナントには、識別子がS1、及び、S4であるサーバが含まれていることとする。
また、識別子がS1であるサーバには、識別子が、VM1、VM6、VM10である仮想マシンが稼働していることとする。また、識別子がS2であるサーバには、識別子が、VM2、VM4、VM7である仮想マシンが稼働していることとする。また、識別子がS3であるサーバには、識別子が、VM3、VM5、VM8である仮想マシンが稼働していることとする。また、識別子がS4であるサーバには、識別子が、VM9、VM11である仮想マシンが稼働していることとする。
また、図7に示されている角丸長方形の図形は、1つのプロセスに相当する。そして、角丸長方形の図形に示されている数字は、プロセスの種類に対応付けられる識別子であることとする。
図7に示すように、識別子がAP1であるアプリケーションには、識別子が1、2、及び、3である3種類のプロセスがそれぞれ1つずつ含まれる。そして、識別子が1、2、及び、3である種類のプロセスが、それぞれ、識別子がVM1、VM2、及び、VM3である仮想マシンで稼働している。
そして、識別子がAP2であるアプリケーションには、識別子が4、5である2種類のプロセスがそれぞれ1つずつ含まれる。そして、識別子が4、及び、5である種類のプロセスが、それぞれ、識別子がVM4、及び、VM5である仮想マシンで稼働している。
そして、識別子がAP3であるアプリケーションには、識別子が6、7、8、9である4種類のプロセスがそれぞれ1つずつ含まれる。そして、識別子が6、7、8、及び、9である種類のプロセスが、それぞれ、識別子がVM6、VM7、VM8、及び、VM9である仮想マシンで稼働している。
そして、識別子がAP4であるアプリケーションには、識別子が10、11である2種類のプロセスがそれぞれ1つずつ含まれる。そして、識別子が10、及び、11である種類のプロセスが、それぞれ、識別子がVM10、及び、VM11である仮想マシンで稼働している。
このように、図7に示されているアプリケーションには複数のプロセスが含まれている。そして、これらのプロセスは、複数の仮想マシンで分散して稼働することとなる。
図7の例では、1つのアプリケーションには複数種類のプロセスがそれぞれ1つずつ含まれているが、1つのアプリケーションには1つの種類のプロセスが複数含まれていてもよい。また、図7の例では、1つの仮想マシンでは1つのプロセスが稼働しているが、1つの仮想マシンで複数のプロセスが稼働していてもよい。
そして、本実施形態では例えば、監視機能部72が、プロセスごとに、当該プロセスの安定性を示す値(メトリック)を取得する。ここで、例えば、プロセスの状態(例えば、生死)を示す値、プロセスの起動時刻、プロセスが入出力を実行した時間の長さ、プロセスの送信パケットドロップ数、プロセスの受信パケットドロップ数、などのメトリックが取得されてもよい。
そして、監視機能部72は、取得されるこれら複数種類のメトリックについての、当該種類に対応付けられる重み付けによる重み付け和を、当該プロセスの安定性を示す安定性評価値として算出する。ここで例えば、プロセスの種類毎に、それぞれの種類のメトリックの重みが予め定められていてもよい。そして、取得されるメトリックについての、予め定められた重みでの重み付けによる重み付け和が、当該種類のプロセスの安定性を示す安定性評価値として算出されてもよい。以下、プロセスの安定性を示す安定性評価値を、プロセス安定性評価値と呼ぶこととする。例えば、図7の例では、識別子が1から11であるプロセスのそれぞれについてプロセス安定性評価値が算出されることとなる。
そして、監視機能部72が、アプリケーションに含まれるプロセスごとに取得される、当該プロセスのプロセス安定性評価値に基づいて、当該アプリケーションの安定性を示す安定性評価値を特定する。以下、アプリケーションの安定性を示す安定性評価値を、アプリケーション安定性評価値と呼ぶこととする。例えば、監視機能部72は、アプリケーション毎に、当該アプリケーションに含まれるプロセスについて算出されるプロセス安定性評価値に基づいて、当該アプリケーションのアプリケーション安定性評価値を算出する。
ここで、アプリケーション安定性評価値は、当該アプリケーションに含まれるプロセスの状態、当該アプリケーションに含まれるプロセスの生存時間、当該アプリケーションに含まれるプロセスが入出力を実行した時間の長さ、又は、当該アプリケーションに含まれるプロセスのパケットドロップ数、のうちの少なくとも1つに基づいて特定されてもよい。ここで例えば、プロセスの生存時間は、上述のプロセスの起動時刻を示す値に基づいて特定可能である。
また、監視機能部72が、アプリケーションの種類に対応付けられる規則に従って、当該アプリケーションの安定性を示すアプリケーション安定性評価値を算出してもよい。例えば、アプリケーションの種類毎に、数式が予め定められていてもよい。そして、当該アプリケーションに含まれるプロセスの種類毎に取得される、当該種類に係るプロセスのプロセス安定性評価値を、当該数式にあてはめることで、当該アプリケーションのアプリケーション安定性評価値が算出されてもよい。
例えば、識別子が1から3である種類のプロセスのプロセス安定性評価値に基づいて、識別子がAP1であるアプリケーションのアプリケーション安定性評価値が算出される。また、識別子が4から5である種類のプロセスのプロセス安定性評価値に基づいて、識別子がAP2であるアプリケーションのアプリケーション安定性評価値が算出される。また、識別子が6から9である種類のプロセスのプロセス安定性評価値に基づいて、識別子がAP3であるアプリケーションのアプリケーション安定性評価値が算出される。また、識別子が10から11である種類のプロセスのプロセス安定性評価値に基づいて、識別子がAP4であるアプリケーションのアプリケーション安定性評価値が算出される。
そして、監視機能部72が、アプリケーション毎に算出される、当該アプリケーションのアプリケーション安定性評価値に基づいて、クラスタの安定性を示す安定性評価値を特定する。以下、クラスタの安定性を示す安定性評価値を、クラスタ安定性評価値と呼ぶこととする。例えば、監視機能部72は、クラスタ毎に、当該クラスタで稼働しているアプリケーションについて算出されるプロセス安定性評価値に基づいて、当該クラスタのクラスタ安定性評価値を算出する。
ここで、監視機能部72が、所定の規則に従って、クラスタ安定性評価値を算出してもよい。例えば、アプリケーションの種類毎に、重みが予め定められていてもよい。そして、クラスタで稼働しているアプリケーションのアプリケーション安定性評価値の重み付け和が、当該クラスタのクラスタ安定性評価値として算出されてもよい。
例えば、識別子がAP1からAP4であるアプリケーションのアプリケーション安定性評価値に基づいて、識別子がCL101であるクラスタのクラスタ安定性評価値が算出される。
そして、監視機能部72は、複数のクラスタのそれぞれについて、当該クラスタについて算出されるクラスタ安定性評価値を示すクラスタ安定性評価値データを生成して、生成されるクラスタ安定性評価値データをデータバス部68に出力する。本実施形態では例えば、監視機能部72は、最新の状況を表すクラスタ安定性評価値データを所定の時間間隔で生成する。そして、監視機能部72は、クラスタ安定性評価値データが生成される度に、当該クラスタ安定性評価値データをデータバス部68に出力する。
そして、データバス部68にクラスタ安定性評価値データが出力されたことに応じて、ポリシーマネージャ部90は、当該クラスタ安定性評価値データを取得する。そして、ポリシーマネージャ部90は、取得したクラスタ安定性評価値データが示すクラスタ安定性評価値を特定する。
そして、ポリシーマネージャ部90は、複数のクラスタのそれぞれについて、当該クラスタの安定性を示すクラスタ安定性評価値に基づいて、当該クラスタが不安定であるか否かを判定する。例えば、クラスタが不安定であるほど、クラスタ安定性評価値は小さいこととする。この場合、ポリシーマネージャ部90は、例えば、所定の閾値よりもクラスタ安定性評価値が小さい場合に、当該クラスタが不安定であると判定する。
以上のように、本実施形態では、クラスタが不安定であるか否かを判定する処理は、データバス部68に当該クラスタのクラスタ安定性評価値データが出力される度に実行される。このようにして、本実施形態では、ポリシーマネージャ部90は、通信システム1に含まれるクラスタが不安定になったか否かを監視することとなる。
そして、本実施形態では例えば、ポリシーマネージャ部90が、クラスタが不安定になったことの検出に応じて、当該クラスタで稼働している複数のアプリケーションのそれぞれが不安定になったか否かの監視を開始する。
例えば、ポリシーマネージャ部90が、識別子がCL101であるクラスタが不安定であると判定したとする。この場合、ポリシーマネージャ部90は、当該クラスタで稼働している複数のアプリケーションのそれぞれについてのアプリケーション安定性評価値を示す安定性評価値データの出力開始指示を監視機能部72に出力してもよい。以下、アプリケーション安定性評価値を示す安定性評価値データを、アプリケーション安定性評価値データと呼ぶこととする。
そして、本実施形態では例えば、監視機能部72は、当該出力開始指示の受付に応じて、当該クラスタで稼働している複数のアプリケーション(ここでは例えば、識別子がAP1からAP4である4つのアプリケーション)のそれぞれについて、最新の状況を表すアプリケーション安定性評価値データを所定の時間間隔で生成することを開始する。そして、監視機能部72は、アプリケーション安定性評価値データが生成される度に、当該アプリケーション安定性評価値データをデータバス部68に出力する。
そして、本実施形態では例えば、ポリシーマネージャ部90は、データバス部68に当該アプリケーション安定性評価値データが出力されたことに応じて、当該アプリケーション安定性評価値データを取得する。
そして、本実施形態では例えば、ポリシーマネージャ部90が、取得するアプリケーション安定性評価値データが示す安定性評価値に基づいて、当該アプリケーションが不安定であるか否かを判定する。例えば、アプリケーションが不安定であるほど、アプリケーション安定性評価値は小さいこととする。この場合、ポリシーマネージャ部90は、例えば、所定の閾値よりもアプリケーション安定性評価値が小さい場合に、当該アプリケーションが不安定であると判定する。
以上のように、本実施形態では、アプリケーションが不安定であるか否かを判定する処理は、データバス部68に当該アプリケーションのアプリケーション安定性評価値データが出力される度に実行される。このようにして、本実施形態では、ポリシーマネージャ部90は、含まれるプロセスが複数の仮想マシンで分散して稼働している、通信システム1に含まれるアプリケーションが不安定になったか否かを監視することとなる。
また、以上で説明したように、ポリシーマネージャ部90は、クラスタが不安定になったことの検出に応じて、当該クラスタで稼働している複数のアプリケーションのそれぞれが不安定になったか否かの監視を開始してもよい。
また、本実施形態において、ポリシーマネージャ部90は、アプリケーションに係る複数の監視項目を監視してもよい。そして、ポリシーマネージャ部90は、当該複数の監視項目のうちの所与の監視項目の監視結果が所定の条件を満たしたことの検出に応じて、当該アプリケーションに含まれる少なくとも1つのプロセスが稼働している複数の仮想マシンのそれぞれについて、当該仮想マシンで稼働しているプロセスが不安定であるか否かを判定してもよい。
そして、本実施形態では例えば、ポリシーマネージャ部90が、アプリケーションが不安定になったことの検出に応じて、当該アプリケーションに含まれる少なくとも1つのプロセスが稼働している複数の仮想マシンのそれぞれについて、当該仮想マシンで稼働しているプロセスが不安定であるか否かを判定する。
ここで例えば、ポリシーマネージャ部90が、アプリケーションが不安定になったことの検出に応じて、当該アプリケーションに含まれる少なくとも1つのプロセスが稼働している複数の仮想マシンを特定してもよい。そして、ポリシーマネージャ部90が、特定される複数の仮想マシンのそれぞれについての、当該仮想マシンで稼働しているプロセスが不安定であるか否かの監視を開始してもよい。
例えば、ポリシーマネージャ部90が、識別子がAP1であるアプリケーションが不安定であると判定したとする。この場合、ポリシーマネージャ部90は、当該アプリケーションに含まれる複数のプロセスのそれぞれについてのプロセス安定性評価値を示す安定性評価値データの出力開始指示を監視機能部72に出力してもよい。以下、プロセス安定性評価値を示す安定性評価値データを、プロセス安定性評価値データと呼ぶこととする。
そして、本実施形態では例えば、監視機能部72は、当該出力開始指示の受付に応じて、当該アプリケーション含まれる複数のプロセス(ここでは例えば、識別子が1から3である3つのプロセス)のそれぞれについて、最新の状況を表すプロセス安定性評価値データを所定の時間間隔で生成することを開始する。そして、監視機能部72は、プロセス安定性評価値データが生成される度に、当該プロセス安定性評価値データをデータバス部68に出力する。
そして、本実施形態では例えば、データバス部68に当該プロセス安定性評価値データが出力されたことに応じて、ポリシーマネージャ部90は、当該プロセス安定性評価値データを取得する。
そして、本実施形態では例えば、ポリシーマネージャ部90が、取得するプロセス安定性評価値データが示す安定性評価値に基づいて、当該プロセスが不安定であるか否かを判定する。例えば、プロセスが不安定であるほど、プロセス安定性評価値は小さいこととする。この場合、ポリシーマネージャ部90は、例えば、所定の閾値よりもプロセス安定性評価値が小さい場合に、当該プロセスが不安定であると判定する。
以上のように、本実施形態では、プロセスが不安定であるか否かを判定する処理は、データバス部68に当該プロセスのアプリケーション安定性評価値データが出力される度に実行される。このようにして、本実施形態では、ポリシーマネージャ部90は、通信システム1に含まれるプロセスが不安定になったか否かを監視することとなる。
また、以上で説明したように、ポリシーマネージャ部90は、アプリケーションが不安定になったことの検出に応じて、当該アプリケーションに含まれる複数のプロセスのそれぞれが不安定になったか否かの監視を開始してもよい。
なお、クラスタが不安定であると判定されたことに応じて、アプリケーション安定性評価値データのデータバス部68への出力が開始されるようにしなくてもよい。例えば、クラスタが不安定であると判定されたことに応じて、ポリシーマネージャ部90が、監視機能部72に、当該クラスタで稼働するアプリケーションについての最新のアプリケーション安定性評価値を示すアプリケーション安定性評価値データの出力を要求してもよい。
そして、監視機能部72が、当該要求の受付に応じて、最新のアプリケーション安定性評価値を示すアプリケーション安定性評価値データを生成し、生成されるアプリケーション安定性評価値データをポリシーマネージャ部90に出力してもよい。そして、ポリシーマネージャ部90が、監視機能部72から出力されるアプリケーション安定性評価値データを受け付けて、当該アプリケーション安定性評価値データが示すアプリケーション安定性評価値に基づいて、当該アプリケーションが不安定であるか否かを判定してもよい。
また、同様に、アプリケーションが不安定であると判定されたことに応じて、プロセス安定性評価値データのデータバス部68への出力が開始されるようにしなくてもよい。例えば、アプリケーションが不安定であると判定されたことに応じて、ポリシーマネージャ部90が、監視機能部72に、当該アプリケーションに含まれるプロセスについての最新のプロセス安定性評価値を示すプロセス安定性評価値データの出力を要求してもよい。
そして、監視機能部72が、当該要求の受付に応じて、最新のプロセス安定性評価値を示すプロセス安定性評価値データを生成し、生成されるプロセス安定性評価値データをポリシーマネージャ部90に出力してもよい。そして、ポリシーマネージャ部90が、監視機能部72から出力されるプロセス安定性評価値データを受け付けて、当該プロセス安定性評価値データが示すプロセス安定性評価値に基づいて、当該プロセスが不安定であるか否かを判定してもよい。
また、本実施形態において、プロセスが不安定であると判定されることに応じて、ポリシーマネージャ部90が、当該プロセスに係るアクションを実行してもよい。例えば、ポリシーマネージャ部90は、当該プロセスに対するアクション、当該プロセスが稼働している仮想マシンに対するアクション、当該仮想マシンが稼働しているサーバ、当該サーバが稼働しているクラスタ、などに対するアクションを実行してもよい。
ここで例えば、ポリシーマネージャ部90は、プロセスが不安定であると判定されたことに応じて、当該プロセスが稼働しているハードウェアリソースで稼働している、当該プロセスが稼働している仮想マシンとは異なる仮想マシンで稼働しているプロセスが不安定であるか否かを判定してもよい。そして、ポリシーマネージャ部90が、当該異なる仮想マシンで稼働しているプロセスが不安定であるか否かの判定結果に応じたアクションを実行してもよい。
ここで例えば、ポリシーマネージャ部90は、プロセスのリプレースを実行してもよい。また、ポリシーマネージャ部90は、仮想マシンの起動や終了を実行してもよい。また、ポリシーマネージャ部90は、クラスタからのハードウェアリソースの切り離しを実行してもよい。また、ポリシーマネージャ部90は、アプリケーションのテナントの設定を変更してもよい。
例えば、識別子が1であるプロセスが不安定であると判定されたことに応じて、識別子が6、及び、10であるプロセスが不安定であるか否かが判定されてもよい。
そして、例えば、識別子が6、及び、10であるプロセスのうちの少なくとも一方が安定であると判定された場合は、図8に示すように、識別子がS4であるサーバに、識別子がVM12である新たな仮想マシンが起動されてもよい。そして、識別子が1であるプロセスが、識別子がVM12である新たな仮想マシンで稼働するよう、識別子が1であるプロセスのリプレースが実行されてもよい。そして、識別子がVM1である仮想マシンが終了されてもよい。
一方、識別子が6、及び、10であるプロセスの両方が不安定であると判定された場合は、図9に示すように、識別子がCL101であるクラスタに識別子がS5であるサーバが追加されてもよい。そして、識別子がS4であるサーバに、識別子がVM12、VM13、VM14である新たな仮想マシンが起動されてもよい。そして、識別子が1であるプロセスが、識別子がVM12である新たな仮想マシンで稼働し、識別子が6であるプロセスが、識別子がVM13である新たな仮想マシンで稼働し、識別子が10であるプロセスが、識別子がVM14である新たな仮想マシンで稼働するよう、識別子が1、6、10であるプロセスのリプレースが実行されてもよい。そして、識別子がCL101であるクラスタから識別子がS1であるサーバが切り離されてもよい。
また、本実施形態において、1つの仮想マシンに複数のプロセスが稼働している場合が想定される。この場合、これら複数のプロセスのすべてが不安定であると判定された場合に、これらの複数のプロセスのすべてのリプレース、及び、当該仮想マシンの終了が実行されてもよい。一方、これら複数のプロセスのうちの一部が不安定であると判定された場合に、不安定であると判定されたプロセスのリプレースが実行されてもよい。この場合、残りのプロセスは、リプレースされずに当該仮想マシンで稼働している状態が続いてもよい。
また、本実施形態において、クラスタが不安定であると判定される条件の方が、アプリケーションが不安定であると判定される条件よりも緩くてもよい。
例えば、クラスタが不安定であるほど、クラスタ安定性評価値は小さく、また、アプリケーションが不安定であるほど、アプリケーション安定性評価値が小さいこととする。また、クラスタの安定性を示すクラスタ安定性評価値が、当該クラスタで稼働しているアプリケーションの安定性を示すアプリケーション安定性評価値の合計値であるとする。そして、所定の閾値th1よりもクラスタ安定性評価値が小さい場合に、当該クラスタが不安定であると判定され、所定の閾値th2よりもアプリケーション安定性評価値が小さい場合に、当該アプリケーションが不安定であると判定されるとする。
ここで、当該クラスタで稼働しているアプリケーションの数がn1個である場合に、閾値th1は、閾値th2のn1倍よりも大きくてもよい。
逆に、アプリケーションが不安定であると判定される条件の方が、クラスタが不安定であると判定される条件よりも緩くてもよい。例えば上述の場合において、閾値th1が、閾値th2のn1倍よりも小さくてもよい。
また、アプリケーションが不安定であると判定される条件の方が、プロセスが不安定であると判定される条件よりも緩くてもよい。
例えば、アプリケーションが不安定であるほど、アプリケーション安定性評価値は小さく、また、プロセスが不安定であるほど、プロセス安定性評価値が小さいこととする。また、アプリケーションの安定性を示すアプリケーション安定性評価値が、当該アプリケーションに含まれるプロセスの安定性を示すプロセス安定性評価値の合計値であるとする。そして、所定の閾値th3よりもアプリケーション安定性評価値が小さい場合に、当該アプリケーションが不安定であると判定され、所定の閾値th4よりもプロセス安定性評価値が小さい場合に、当該プロセスが不安定であると判定されるとする。
ここで、当該アプリケーションに含まれるプロセスの数がn2個である場合に、閾値th3は、閾値th4のn2倍よりも大きくてもよい。
逆に、プロセスが不安定であると判定される条件の方が、アプリケーションが不安定であると判定される条件よりも緩くてもよい。例えば上述の場合において、閾値th3が、閾値th4のn2倍よりも小さくてもよい。
ここで、本実施形態に係るプラットフォームシステム30で行われる、プロセスが不安定であるか否かの判定に関する処理の流れの一例を、図10A及び図10Bに例示するフロー図を参照しながら説明する。
本処理例では例えば、通信システム1に含まれる複数のクラスタのそれぞれに対して、以下で説明するS101からS113に示す処理が実行されることとする。以下、これら複数のクラスタのうちの1つに着目して、当該クラスタに対して実行される処理の流れの一例を説明する。
本処理例では例えば、ポリシーマネージャ部90が、当該クラスタの安定性を示すクラスタ安定性評価値データがデータバス部68に出力されることを監視している(S101)。
クラスタ安定性評価値データがデータバス部68に出力されたことを検出すると、ポリシーマネージャ部90が、当該クラスタ安定性評価値データを取得する(S102)。
そして、ポリシーマネージャ部90が、S102に示す処理で取得されたクラスタ安定性評価値データに基づいて、当該クラスタが不安定であるか否かを判定する(S103)。
不安定であると判定されなかった場合は(S103:N)、S101に示す処理に戻る。
不安定であると判定された場合は(S103:Y)、ポリシーマネージャ部90は、当該クラスタで稼働する複数のアプリケーションのそれぞれについての、アプリケーション安定性評価値データの出力開始指示を、監視機能部72に出力する(S104)。すると、監視機能部72による、アプリケーション安定性評価値データのデータバス部68への出力が開始される。
そして、ポリシーマネージャ部90が、当該クラスタで稼働する複数のアプリケーションのそれぞれについて、当該アプリケーションの安定性を示すアプリケーション安定性評価値データがデータバス部68に出力されることを監視する(S105)。
アプリケーション安定性評価値データがデータバス部68に出力されたことを検出すると、ポリシーマネージャ部90が、当該アプリケーション安定性評価値データを取得する(S106)。
そして、ポリシーマネージャ部90が、S106に示す処理で取得されたアプリケーション安定性評価値データに基づいて、当該アプリケーションが不安定であるか否かを判定する(S107)。
不安定であると判定されなかった場合は(S107:N)、S105に示す処理に戻る。
不安定であると判定された場合は(S107:Y)、ポリシーマネージャ部90は、当該アプリケーションに含まれる複数のプロセスのそれぞれについての、プロセス安定性評価値データの出力開始指示を、監視機能部72に出力する(S108)。すると、監視機能部72による、プロセス安定性評価値データのデータバス部68への出力が開始される。
そして、ポリシーマネージャ部90が、当該アプリケーションに含まれる複数のプロセスのそれぞれについて、当該プロセスの安定性を示すプロセス安定性評価値データがデータバス部68に出力されることを監視する(S109)。
プロセス安定性評価値データがデータバス部68に出力されたことを検出すると、ポリシーマネージャ部90が、当該プロセス安定性評価値データを取得する(S110)。
そして、ポリシーマネージャ部90が、S110に示す処理で取得されたプロセス安定性評価値データに基づいて、当該プロセスが不安定であるか否かを判定する(S111)。
不安定であると判定されなかった場合は(S111:N)、S109に示す処理に戻る。
不安定であると判定された場合は(S111:Y)、ポリシーマネージャ部90は、当該プロセスに係るアクションを実行する(S112)。S112に示す処理では、例えば、当該プロセスの他の仮想マシンへのリプレースが実行される。
そして、ポリシーマネージャ部90は、出力終了指示を、監視機能部72に出力する(S113)。すると、監視機能部72は、上述の、アプリケーション安定性評価値データのデータバス部68への出力、及び、プロセス安定性評価値データのデータバス部68への出力を終了する。そして、S101に示す処理に戻る。
本処理例において、S109からS113に示す処理が実行されている間も、ポリシーマネージャ部90は、アプリケーション安定性評価値データがデータバス部68に出力されることを監視してもよい。そして、ポリシーマネージャ部90が、アプリケーション安定性評価値データがデータバス部68に出力されたことの検出に応じて、当該アプリケーション安定性評価値データについての、S106以降に示す処理が実行されてもよい。
通信システム1に含まれるプロセスのなかから不安定であるプロセスを抽出するにあたって、それぞれのプロセスについて、当該プロセスが不安定になったか否かを監視すると、監視のための処理負荷が膨大になることがある。
以上で説明したように、本実施形態では、アプリケーションが不安定になったことが検出されるまでは、当該アプリケーションに含まれるプロセスが不安定であるか否かの判定処理は実行されない。
そして、アプリケーションが不安定になったことの検出に応じて、当該アプリケーションに含まれる少なくとも1つのプロセスが稼働している複数の仮想マシンのそれぞれについて、当該仮想マシンで稼働しているプロセスが不安定であるか否かが判定される。
このようにして、本実施形態によれば、通信システム1に含まれるプロセスのなかから不安定であるプロセスを少ない処理負荷で抽出できることとなる。
なお、本発明は上述の実施形態に限定されるものではない。
例えば、本実施形態に係る機能ユニットは図3に示したものには限定されない。
また、本実施形態に係る機能ユニットは、5GにおけるNFである必要はない。例えば、本実施形態に係る機能ユニットが、eNodeB、vDU、vCU、P-GW(Packet Data Network Gateway)、S-GW(Serving Gateway)、MME(Mobility Management Entity)、HSS(Home Subscriber Server)などといった、4Gにおけるネットワークノードであっても構わない。
また、本実施形態に係る機能ユニットがソフトウェアによって実装されている必要はなく、電子回路等のハードウェアによって実装されていてもよい。また、本実施形態に係る機能ユニットが、電子回路とソフトウェアとの組合せによって実装されていてもよい。
本開示に記載の技術は以下のように表現することもできる。
[1]
含まれるプロセスが複数の仮想マシンで分散して稼働している、通信システムに含まれるアプリケーションが、不安定になったか否かを監視するアプリケーション監視手段と、
前記アプリケーションが不安定になったことの検出に応じて、当該アプリケーションに含まれる少なくとも1つのプロセスが稼働している複数の仮想マシンのそれぞれについて、当該仮想マシンで稼働しているプロセスが不安定であるか否かを判定するプロセス不安定判定手段と、
を含むことを特徴とする判定システム。
[2]
前記アプリケーション監視手段は、前記アプリケーションに係る複数の監視項目を監視し、
前記プロセス不安定判定手段は、前記複数の監視項目のうちの所与の監視項目の監視結果が所定の条件を満たしたことの検出に応じて、当該アプリケーションに含まれる少なくとも1つのプロセスが稼働している複数の仮想マシンのそれぞれについて、当該仮想マシンで稼働しているプロセスが不安定であるか否かを判定する、
ことを特徴とする[1]に記載の判定システム。
[3]
前記通信システムに含まれる、複数のアプリケーションが稼働しているクラスタが不安定になったか否かを監視するクラスタ監視手段、をさらに含み、
前記アプリケーション監視手段は、前記クラスタが不安定になったことの検出に応じて、当該クラスタで稼働している複数のアプリケーションのそれぞれが不安定になったか否かの監視を開始する、
ことを特徴とする[1]又は[2]に記載の判定システム。
[4]
前記プロセスが不安定であると判定されることに応じて、当該プロセスに係るアクションを実行するアクション実行手段、をさらに含む、
ことを特徴とする[1]から[3]のいずれか一項に記載の判定システム。
[5]
前記プロセス不安定判定手段は、前記プロセスが不安定であると判定されたことに応じて、当該プロセスが稼働しているハードウェアリソースで稼働している、当該プロセスが稼働している仮想マシンとは異なる仮想マシンで稼働しているプロセスが不安定であるか否かを判定し、
前記アクション実行手段は、前記異なる仮想マシンで稼働しているプロセスが不安定であるか否かの判定結果に応じたアクションを実行する、
ことを特徴とする[4]に記載の判定システム。
[6]
前記アプリケーションは、ネットワークファンクションである、
ことを特徴とする[1]から[5]のいずれか一項に記載の判定システム。
[7]
含まれるプロセスが複数の仮想マシンで分散して稼働している、通信システムに含まれるアプリケーションが、不安定になったか否かを監視することと、
前記アプリケーションが不安定になったことの検出に応じて、当該アプリケーションに含まれる少なくとも1つのプロセスが稼働している複数の仮想マシンのそれぞれについて、当該仮想マシンで稼働しているプロセスが不安定であるか否かを判定することと、
を含むことを特徴とする判定方法。