(57)【特許請求の範囲】
【請求項１】
ソフトウェアで実装されたネットワーク機能として実行される第１のＶｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ（ＶＮＦ）と、
前記第１のＶＮＦの予備として設けられた第２のＶＮＦによって冗長構成をとる仮想ネットワークシステムであって、
物理リソースを仮想化した仮想リソースを提供するＮｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ（ＮＦＶＩ）と、
前記仮想リソースを、前記第１のＶＮＦおよび前記第２のＶＮＦを実行するリソースとして提供することを前記ＮＦＶＩに指示するＶｉｒｔｕａｌｉｚｅｄ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｍａｎａｇｅｒ（ＶＩＭ）とを含み、
前記ＶＩＭは、前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、前記第１のＶＮＦに対する仮想リソースの提供を解消し、当該仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを前記ＮＦＶＩに指示する
ことを特徴とする仮想ネットワークシステム。
【請求項２】
前記ＶＩＭは、前記物理リソースのボリュームを所定の量で区切ったブロック単位で仮想リソースとして提供する制御をしており、
前記第１のＶＮＦを実行する仮想リソースとして提供されたブロックを、前記第２のＶＮＦを実行する仮想リソースとして提供することを特徴とする請求項１に記載の仮想ネットワークシステム。
【請求項３】
前記ＶＩＭは、仮想リソースとして提供された物理リソースのブロックと、該ブロックが提供されたＶＮＦとを関連付けた情報を保持しており、
前記情報をもとに、前記第１のＶＮＦを実行する仮想リソースとして提供されたブロックを、前記第２のＶＮＦを実行する仮想リソースとして提供する制御を行うことを特徴とする請求項２に記載の仮想ネットワークシステム。
【請求項４】
前記第１のＶＮＦから、前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする通知を受信すると、
前記ＶＩＭに対して、前記第１のＶＮＦに対する仮想リソースの提供を解消し、当該仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを指示するＶｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｍａｎａｇｅｒ（ＶＮＦＭ）を含むことを特徴とする請求項１乃至３のいずれか１項に記載の仮想ネットワークシステム。
【請求項５】
ソフトウェアで実装されたネットワーク機能として実行している第１のＶｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ（ＶＮＦ）と、
前記第１のＶＮＦの予備として設けられた第２のＶＮＦとによって冗長構成をとる仮想ネットワークシステムにおいて、
物理リソースを仮想化した仮想リソースを提供するＮｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ（ＮＦＶＩ）とメッセージの送受信を行う通信手段と、
前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、前記第１のＶＮＦへの仮想リソースの提供を解消し、当該仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを前記ＮＦＶＩに指示する制御手段と、を含むＶｉｒｔｕａｌｉｚｅｄ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｍａｎａｇｅｒ（ＶＩＭ）。
【請求項６】
前記制御手段は、前記物理リソースのボリュームを所定の量で区切ったブロック単位で仮想リソースとして提供する制御をしており、
前記第１のＶＮＦを実行する仮想リソースとして提供されたブロックを、前記第２のＶＮＦを実行する仮想リソースとして提供することを特徴とする請求項５に記載のＶＩＭ。
【請求項７】
仮想リソースとして提供された物理リソースのブロックと、該ブロックが提供されたＶＮＦとを関連付けた情報を保持する管理手段を含み、
前記制御手段は、前記管理手段の情報をもとに、前記第１のＶＮＦを実行する仮想リソースとして提供されたブロックを、前記第２のＶＮＦを実行する仮想リソースとして提供する制御を行うことを特徴とする請求項６に記載のＶＩＭ。
【請求項８】
ソフトウェアで実装されたネットワーク機能として実行される第１のＶｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ（ＶＮＦ）と、
前記第１のＶＮＦの予備として設けられた第２のＶＮＦとによって冗長構成をとる仮想ネットワークシステムにおいて、
前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、
前記第１のＶＮＦに対する仮想リソースの提供を解消し、
前記仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを指示する仮想ネットワーク制御方法。
【請求項９】
ソフトウェアで実装されたネットワーク機能として実行している第１のＶｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ（ＶＮＦ）と、
前記第１のＶＮＦの予備として設けられた第２のＶＮＦとによって冗長構成をとる仮想ネットワークシステムにおいて、
前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、
前記第１のＶＮＦに対する仮想リソースの提供を解消する工程と、
前記仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを指示する工程とを含む仮想ネットワーク制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想ネットワークシステム、ＶＩＭ、仮想ネットワーク制御方法および仮想ネットワーク制御プログラムに関する。
【背景技術】
【０００２】
サーバ上のハイパーバイザ（Ｈｙｐｅｒｖｉｓｏｒ）等の仮想化レイヤ上に実装した仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）により、ネットワーク機器等の機能をソフトウェア的に実現するＮＦＶ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）が知られている。【０００３】
図１０は、非特許文献１の７章、Ｆｉｇｕｒｅ４から抜粋した図面である。図１０を用いてＮＦＶによって仮想ネットワークを構築する場合の構成の概略を説明する。【０００４】
ＮＦＶＩ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）は、コンピューティング、ストレージ、ネットワーク機器等、物理的に提供される資源（物理リソース）を、ハイパーバイザ（Ｈｙｐｅｒｖｉｓｏｒ）等によって仮想化することで、仮想化コンピューティング、仮想化ストレージ、仮想化ネットワーク等の仮想的な資源（仮想リソース）として提供可能にする基盤である。【０００５】
ハイパーバイザは、ＶＮＦ（Ｖｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ）を提供する仮想マシンである。ＶＮＦとは、ネットワーク機能をソフトウェア的に実現する機能（アプリケーション）である。ＶＮＦはハイパーバイザ上で実行される。【０００６】
ＶＩＭ（Ｖｉｒｔｕａｌｉｚｅｄ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｍａｎａｇｅｒ）は、ＮＦＶＩが提供している物理リソースの管理や、ＮＦＶＩの障害監視、リソース情報の監視を行う。【０００７】
ＮＦＶＩを実現する手段の１つとして、オープンスタック（ＯｐｅｎＳｔａｃｋ）がある（非特許文献２）。ＯｐｅｎＳｔａｃｋとは、仮想環境を構築するためのソフトウェア群である。より具体的には、ＯｐｅｎＳｔａｃｋは、仮想リソースの提供に必要となる機能を有している。各機能はそれぞれモジュール化されており、必要に応じて統合又は切り離しが可能である。当該機能の一つに、Ｃｉｎｄｅｒ機能がある。【０００８】
Ｃｉｎｄｅｒ機能とは、ＯｐｅｎＳｔａｃｋにおけるブロックストレージ機能である。ブロックストレージ機能は、物理ストレージが有するボリュームを固定長の区画（ブロック）で管理する機能であり、例えば、ＶＮＦが用いるデータをＮＦＶＩの有する物理ストレージのどのブロック（以降、ストレージと記載する場合もある）に配置するかを制御する。【０００９】
ブロックストレージ機能によって管理されるＮＦＶＩ上にＶＮＦを配置する場合、各ＶＮＦに対しては、異なる区分のストレージが割り当てられる。例えば、ハイパーバイザを冗長的に構成したい場合、つまり、現用系ハイパーバイザと待機系ハイパーバイザを切り替えてネットワークを運用可能とするためには、現用系ハイパーバイザ上に配置されたＶＮＦと待機系ハイパーバイザ上に配置されたＶＮＦは、それぞれ異なるブロックが割り当てられる。そのため、待機系のＶＮＦは、現用系ＶＮＦが使用しているブロックストレージを使用することができない。【００１０】
現用系ハイパーバイザを待機させ、待機系ハイパーバイザを起動させる場合に、現用系ハイパーバイザで提供中のサービスを待機系ハイパーバイザに引き継がせるには、現用系ハイパーバイザ上のＶＮＦの設定情報を待機系ハイパーバイザ上のＶＮＦに移管する必要がある。すなわち、現用系ハイパーバイザ上のＶＮＦに割り当てられたブロックと、待機系ハイパーバイザ上のＶＮＦに割り当てられたブロックとの間で、同期を行っておく必要がある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】国際公開第２０１６／１２１８３４号
【非特許文献】
【００１２】
【非特許文献１】European Telecommunications Standards Institute，“ETSI GS NFV 002 V1.2.1 (2014-12)”，［online］，２００４年１２月，［２０１７年３月２３日検索］、インターネット<URL: http://www.etsi.org/deliver/etsi_gs/nfv/001_099/002/01.02.01_60/gs_NFV002v010201p.pdf>
【非特許文献２】The OpenStack Foundation，“Operations Guide”，［online］，［２０１７年３月２３日検索］，インターネット<URL: https://docs.openstack.org/openstack-ansible/latest/admin/index.html>
【発明の概要】
【発明が解決しようとする課題】
【００１３】
図１１は、第１のＶＮＦを現用系、第２のＶＮＦを待機系とするＶＮＦの冗長構成の例を示すブロック図である。例えば、図１１に示すような冗長構成において、第１のＶＮＦと第２のＶＮＦを切り替える場合、第１のＶＮＦに提供された仮想ストレージに割り当てられたブロックに記録されているデータを第２のＶＮＦに提供された仮想ストレージに割り当てられたブロックに同期し、第２のＶＮＦを起動させることになる。すなわち、第１のＶＮＦ用ストレージ（プライマリストレージ）に記録されているＤａｔａ＿Ａ、Ｄａｔａ＿Ｂ、Ｄａｔａ＿Ｃ、Ｄａｔａ＿Ｄの４つのデータが第２のＶＮＦ用ストレージ（セカンダリストレージ）に同期されることになる。【００１４】
しかし、ストレージ間で同期を行う作業には時間を要する。そのため、同期に時間が掛かり過ぎると、同期が完了する前に、第２のＶＮＦが起動してしまう恐れがある。【００１５】
例えば、図１１のように、第２のＶＮＦストレージにＤａｔａ＿Ｄが同期されずに、第２のＶＮＦが起動してしまうと、当該データに関連する動作にエラーが発生する等、正しい処理が行われない恐れがある。【００１６】
したがって、本願発明の目的は、冗長構成をとるシステムにおいて現用系と待機系の切り替え時に生じる不完全な同期を防ぐための、物理ストレージの割当変更を可能にする。
【課題を解決するための手段】
【００１７】
本発明の一態様における仮想ネットワークシステムは、ソフトウェアで実装されたネットワーク機能として実行される第１のＶＮＦと、前記第１のＶＮＦの予備として設けられた第２のＶＮＦによって冗長構成をとる仮想ネットワークシステムであって、物理リソースを仮想化した仮想リソースを提供するＮＦＶＩと、前記仮想リソースを、前記第１のＶＮＦおよび前記第２のＶＮＦを実行するリソースとして提供することを前記ＮＦＶＩに指示するＶＩＭとを含み、前記ＶＩＭは、前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、前記第１のＶＮＦに対する仮想リソースの提供を解消し、当該仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを前記ＮＦＶＩに指示することを特徴とする。【００１８】
本発明の一態様におけるＶＩＭは、ソフトウェアで実装されたネットワーク機能として実行している第１のＶＮＦと、前記第１のＶＮＦの予備として設けられた第２のＶＮＦとによって冗長構成をとる仮想ネットワークシステムにおいて、物理リソースを仮想化した仮想リソースを提供するＮＦＶＩとメッセージの送受信を行う通信手段と、前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、前記第１のＶＮＦへの仮想リソースの提供を解消し、当該仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを前記ＮＦＶＩに指示する制御手段と、を含む。【００１９】
本発明の一態様における仮想ネットワーク制御プログラムは、ソフトウェアで実装されたネットワーク機能として実行している第１のＶＮＦと、前記第１のＶＮＦの予備として設けられた第２のＶＮＦとによって冗長構成をとる仮想ネットワークシステムにおいて、前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、前記第１のＶＮＦに対する仮想リソースの提供を解消する工程と、前記仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを指示する工程とを含む。
【００２０】
本発明の仮想ネットワークシステム、ＶＩＭ、仮想ネットワーク制御方法、および仮想ネットワーク制御プログラムによれば、ＮＦＶ環境下における障害を抑制することを可能にする。
【発明の効果】
【００２１】
本発明の仮想ネットワークシステム、ＶＩＭ、仮想ネットワーク制御方法、および記録媒体によれば、ＮＦＶ環境下における障害を抑制することを可能にする。
【図面の簡単な説明】
【００２２】
【図１】第１の実施形態のシステムの構成例を示すブロック図である。
【図２】第１の実施形態のＮＦＶＩ２０とＶＮＦ１０とハイパーバイザ５０との接続例を示すブロック図である。
【図３】第１の実施形態のＶＮＦＭ３０の構成例を示すブロック図である。
【図４】第１の実施形態のＶＮＦＭ管理部３１が保持する情報の例を示す表である。
【図５】第１の実施形態のＶＩＭ４０の構成例を示すブロック図である。
【図６】第１の実施形態のＶＩＭ管理部４１が保持する情報の例を示す表である。
【図７】第１の実施形態のシステムの動作を示すシーケンス図である。
【図８Ａ】第１の実施形態のシステムの動作を示す第１の概念図である。
【図８Ｂ】第１の実施形態のシステムの動作を示す第２の概念図である。
【図８Ｃ】第１の実施形態のシステムの動作を示す第３の概念図である。
【図９】第１の実施形態のＶＮＦ１０−１とＶＮＦ１０−２が異なる物理ストレージ２１に接続されている構成例を示すブロック図である。
【図１０】非特許文献１の７章、Ｆｉｇｕｒｅ４を抜粋した図面である。
【図１１】第１のＶＮＦを現用系、第２のＶＮＦを待機系とするＶＮＦの冗長構成の例を示すブロック図である。
【発明を実施するための形態】
【００２３】
［第１の実施の形態］
［構成の説明］
本発明の第１の実施形態を、図面を参照して詳細に説明する。
【００２４】
図１は、第１の実施形態における、仮想ネットワークシステムの構成を示すブロック図である。
【００２５】
第１の実施形態における仮想ネットワークシステムは、ＶＮＦ（Ｖｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ）１０−１と、ＶＮＦ１０−２と、ＮＦＶＩ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）２０と、ＶＮＦＭ（Ｖｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｍａｎａｇｅｒ）３０と、ＶＩＭ（Ｖｉｒｔｕａｌｉｚｅｄ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｍａｎａｇｅｒ）４０とを含む。
【００２６】
ＶＮＦ１０−１とＶＮＦ１０−２は冗長的に構成され、一方が稼働しているときにもう一方は待機状態にある。以降の説明においては、ＶＮＦ１０−１を現用系ＶＮＦ、ＶＮＦ１０−２を待機系ＶＮＦとして扱うものとする。また、ＶＮＦ１０−１、１０−２をそれぞれ区別する必要が無ければ、単にＶＮＦ１０と記載する。ハイパーバイザ５０−１と５０−２、仮想ストレージ２２−１と２２−２においても、それぞれ区別する必要が無ければ、単にハイパーバイザ５０、仮想ストレージ２２と記載する。
【００２７】
図２は、ＮＦＶＩ２０とＶＮＦ１０との接続例を示すブロック図である。
【００２８】
ＶＮＦ１０は、ネットワーク機能をソフトウェア的に実現する機能である。ＶＮＦ１０は、ハイパーバイザ５０によって制御される。ＶＮＦ１０は、例えば、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）ネットワークのコア網であるＥＰＣ（Ｅｖｏｌｖｅｄ  Ｐａｃｋｅｔ  Ｃｏｒｅ）におけるＭＭＥ（Ｍｏｂｉｌｉｔｙ  Ｍａｎａｇｅｍｅｎｔ  Ｅｎｔｉｔｙ）やＳ−ＧＷ（Ｓｅｒｖｉｎｇ  Ｇａｔｅｗａｙ）、Ｐ−ＧＷ（Ｐａｃｋｅｔ  Ｄａｔａ  Ｎｅｔｗｏｒｋ  Ｇａｔｅｗａｙ）等である。
【００２９】
ＶＮＦ１０は、ＮＦＶＩ２０の提供する資源上に配置される。具体的には、ＶＮＦ１０は、ＶＮＦ１０に提供された仮想ストレージ（Ｖｉｒｔｕａｌ  Ｓｔｏｒａｇｅ）２２上に配置される。ＶＮＦ１０は、１つの仮想ストレージ２２に１つのＶＮＦ１０が１つ配置される構成に限定されず、例えば、１つの仮想ストレージ２２に複数のＶＮＦ１０が配置されてもよいし、複数の仮想ストレージ２２に１つのＶＮＦ１０が配置される構成としてもよい。
【００３０】
ＶＮＦ１０は、所定のタイミングで、ＶＮＦＭ３０に対して、ＶＮＦ１０に関する情報を送信する。ＶＮＦ１０に関する情報とは、例えば、ＶＮＦ１０の名称、稼働時間、接続関係などの情報である。
【００３１】
ＶＮＦ１０は、ＶＮＦＭ３０に対して、構成の通知およびイベントの通知を送信する。例えば、ＶＮＦ１０−１は、ＶＮＦＭ３０に対して、現用系ＶＮＦとしてシステム運用を実施している状態（Ａｃｔｉｖｅ）から、システム運用を実施しない待機系の状態（Ｓｔａｎｄｂｙ）に変更したことを通知するメッセージ（状態変更通知）を送信する。
【００３２】
ＮＦＶＩ２０は、物理ストレージ（Ｓｔｏｒａｇｅ  Ｈａｒｄｗａｒｅ）２１と、該物理ストレージ２１を仮想化した仮想ストレージ２２とを含む。仮想ストレージ２２は、ハイパーバイザ５０によって提供される。
【００３３】
ＮＦＶＩ２０は、ＶＩＭ４０から受信したメッセージに応じて、物理ストレージ２１を仮想化し、論理的な１つのストレージである仮想ストレージ２２として提供する。以降の説明においては、物理ストレージ２１を仮想化し、仮想ストレージ２２とすることを、単に物理ストレージ２１と仮想ストレージ２２とを接続する、と記載する。
【００３４】
ＮＦＶＩ２０は、ＶＩＭ４０から受信したメッセージに応じて、物理ストレージ２１と仮想ストレージ２２を接続する。具体的には、ＶＩＭ４０から、仮想ストレージ２２−１にブロックストレージ（Ｂｌｏｃｋ  Ｓｔｏｒａｇｅ）２３−２を割り当てたことを通知するメッセージを受信すると、ＮＦＶＩ２０は、仮想ストレージ２２−１に対して、ブロックストレージ２３−２を接続する。また、ＶＩＭ４０から、仮想ストレージ２２−１に対するブロックストレージ２３−２の割り当てを削除することを通知するメッセージを受信すると、ＮＦＶＩ２０は、仮想ストレージ２２−１とブロックストレージ２３−２との接続を切断する。
【００３５】
図２に記載のＮＦＶＩ２０において、仮想ストレージ２２−１は、物理ストレージ２１のブロックストレージ２３−１および２３−２と接続し、１つのストレージとして仮想化したものである。仮想ストレージ２２に割り当てるブロックストレージの数（区画数）はこれに限定されず、例えば、１つのブロックストレージを仮想化したものでもよいし、３つ以上のブロックストレージを仮想化したものでもよい。
【００３６】
例えば、図２に記載のハイパーバイザ５０−１は、ブロックストレージ２３−１および２３−２と接続され、ブロックストレージ２３−２が保持しているデータを用いて、ＶＮＦ１０−１を提供する。
【００３７】
図３は、第１の実施形態のＶＮＦＭ３０の構成例を示すブロック図である。
【００３８】
ＶＮＦＭ３０は、ＶＮＦＭ管理部３１と、ＶＮＦＭ制御部３２と、ＶＮＦＭ通信部３３と、を含む。
【００３９】
ＶＮＦＭ３０は、ＶＮＦ１０のライフサイクル管理（インスタンシエーション、スケーリング、ターミネーション、更新等）を行う。図４は、第１の実施形態のＶＮＦＭ管理部３１が保持する情報の例を示す表である。ＶＮＦＭ管理部３１は、例えば、ＶＮＦ１０の名称、物理ストレージ２１に占める容量、稼働時間、稼働終了時間、ＶＮＦ１０同士の接続関係、現用系ＶＮＦと待機系ＶＮＦの関係性を示す情報（冗長構成情報）などの情報を保持している。なお、ＶＮＦＭ管理部３１の保持する情報は、上記の項目に限られない。ＶＮＦＭ管理部３１は、所定のタイミングで保持する情報を更新する。ＶＮＦＭ管理部３１は、例えば、ＶＮＦ１０の稼働時間が所定の時間経過したタイミングや、ＶＮＦ１０同士の接続が変化したタイミング、外部装置からの更新要請を受信したタイミング等で、保持している情報を更新する。ＶＮＦＭ制御部３２は、例えば、ＶＮＦＭ管理部３１の保持するＶＮＦ１０の稼働時間を参照し、ＶＮＦＭ通信部３３を介して、所定の稼働時間を超過しているＶＮＦ１０を停止する指示を示すメッセージを送信する。
【００４０】
ＶＮＦＭ３０は、ＶＩＭ４０に対して、リソースの割当要求および仮想リソースの情報を送信する。具体的には、ＶＮＦＭ制御部３２は、例えば、ＶＮＦ１０−１がＡｃｔｉｖｅからＳｔａｎｄｂｙに状態を変更したことを通知するメッセージを受信すると、ＶＩＭ４０に対して、ＶＮＦ１０−１の仮想ストレージ２２−１を削除することを指示するメッセージを送信する。
【００４１】
図５は、第１の実施形態のＶＩＭ４０の構成例を示すブロック図である。
【００４２】
ＶＩＭ４０は、ＶＩＭ管理部４１と、ＶＩＭ制御部４２と、ＶＩＭ通信部４３とを含む。
【００４３】
ＶＩＭ４０は、ＮＦＶＩ２０が提供している物理リソース（例えば、コンピューティング、ストレージ、ネットワーク機器等のリソース）の管理を行う。具体的には、ＶＩＭ４０は、ブロックストレージ機能を用いて、物理ストレージ２１を管理する。
【００４４】
図６は、第１の実施形態のＶＩＭ４０が保持する情報の例を示す表である。ＶＩＭ管理部４１は、ＮＦＶＩ２０に対して仮想ストレージ２２に対する物理ストレージ２１の割り当て変更を指示するメッセージを送信するタイミングで、物理ストレージ２１のどの区画を仮想ストレージ２２に割り当てたかを示す情報を更新する。ＶＩＭ管理部４１は、例えば、ＮＦＶＩ２０の物理ストレージ２１のボリュームを固定長で区切った区画（ブロック）につけた番号、該区画を割り当てているＶＮＦ１０の名称等を保持している。なお、ＶＩＭ管理部４１の保持する情報は、上記の項目に限られない。ＶＩＭ管理部４１の保持する情報は、例えば、ＶＮＦ１０に接続する物理ストレージ２１が変化したタイミングで更新してもよいし、ＮＦＶＯ（ＮＦＶ  Ｏｒｃｈｅｓｔｒａｔｏｒ）やＯＳＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｕｐｐｏｒｔ  Ｓｙｓｔｅｍ）等の装置から受信した情報を基に更新されてもよい。
【００４５】
ＶＩＭ４０は、ＮＦＶＩ２０の障害監視、リソース情報の監視、制御を行う。具体的には、ＶＩＭ制御部４２は、ＶＮＦＭ３０から、ＶＮＦ１０−１の仮想ストレージ２２−１をＶＮＦ１０−２に割り当てる指示を示すメッセージを受信する。ＶＩＭ４０は、ＶＩＭ管理部４１の情報を参照し、ＶＮＦ１０−１に提供された仮想ストレージ２２−１に対して割り当てている物理ストレージ２１は、ブロックストレージ２３−２であることを確認する。ＶＩＭ４０は、ＮＦＶＩ２０に対して、仮想ストレージ２２−１と、ブロックストレージ２３−２との接続を切断することを指示するメッセージを送信する。また、ＶＩＭ制御部４２は、ＶＮＦ１０−１に割り当てられていたブロックストレージ２３−２を、ＶＮＦ１０−２に割り当て、ＮＦＶＩ２０に対して、仮想ストレージ２２−２とブロックストレージ２３−２との接続を指示するメッセージを送信する。
【００４６】
本発明の第１実施形態の動作について、図７および図８Ａないし８Ｃを参照して説明する。図７は、第１の実施形態のシステムの動作を示すシーケンス図である。図８Ａないし８Ｃは、第１の実施形態のシステムの動作を概念的に示したものである。
【００４７】
ハイパーバイザ５０−１は、仮想ストレージ２２−１が割り当てられている。仮想ストレージ２２−１は、ブロックストレージ２３−１および２３−２に接続し、１つのストレージとして仮想化したものである。そのうち、ＶＮＦ１０−１は、ブロックストレージ２３−２を仮想化したストレージに接続している。
【００４８】
ハイパーバイザ５０−２は、仮想ストレージ２２−２が割り当てられている。仮想ストレージ２２−２は、ブロックストレージ２３−３および２３−４に接続し、１つのストレージとして仮想化したものである。そのうち、ＶＮＦ１０−２は、ブロックストレージ２３−３を仮想化したストレージに接続している（図８Ａ）。
【００４９】
以降の説明は、現用系ＶＮＦ１０−１を待機系ＶＮＦにし、待機系ＶＮＦ１０−２を現用系ＶＮＦにする切り替え（Ａｃｔｉｖｅ／Ｓｔａｎｄｂｙ切り替え）を例に説明するが、本発明のネットワークシステムは、以下の場合に限定されない。
【００５０】
ＶＮＦ１０−１は、Ａｃｔｉｖｅ／Ｓｔａｎｄｂｙ切り替えのタイミングを迎えると、現用系の状態（Ａｃｔｉｖｅ）から待機系の状態（Ｓｔａｎｄｂｙ）にステータスを変更する（Ｓ００１）。
【００５１】
ＶＮＦ１０−１は、ステータスをＡｃｔｉｖｅからＳｔａｎｄｂｙに変更したことを示す状態変更通知を、ＶＮＦ１０−２およびＶＮＦＭ３０へ送信する（Ｓ００２）。
【００５２】
ＶＮＦ１０−２は、ＶＮＦ１０−１からの状態変更通知を受信すると、Ｓｔａｎｄｂｙからシステム運用の準備をする状態（Ａｃｔｉｖｅ待ち）にステータスを変更する（Ｓ００３）。
【００５３】
ＶＮＦＭ３０は、ＶＮＦ１０−１からの状態変更通知を受信すると、ＶＩＭ４０に対して、ＶＮＦ１０−１の状態変更通知を送信する。また、ＶＮＦＭ３０は、ＶＩＭ４０に対して、ＶＮＦ１０−１へ割り当てていた仮想ストレージ２２−１をＶＮＦ１０−２に割り当てることを指示するメッセージ（割当要求）を送信する（Ｓ００４）。
【００５４】
ＶＩＭ４０は、ＶＮＦＭ３０からの状態変更通知および割当要求を受信すると、ＶＩＭ管理部４１が保持している情報から、ＶＮＦ１０−１に対してブロックストレージ２３−２を割り当てていることを確認する（Ｓ００５）。
【００５５】
ＶＩＭ４０は、ＮＦＶＩ２０に対して、ＶＮＦ１０−１の仮想ストレージ２２−１の削除のために、仮想ストレージ２２−１とブロックストレージ２３−２との接続を切断することを指示するメッセージを送信する（Ｓ００６）。
【００５６】
ＮＦＶＩ２０は、ＶＩＭ４０から、仮想ストレージ２２−１とブロックストレージ２３−２との接続を切断することを指示するメッセージを受信すると、仮想ストレージ２２−１とブロックストレージ２３−２との接続を切断する（Ｓ００７、図８Ｂ）。
【００５７】
ＶＩＭ４０は、ＮＦＶＩ２０に対して、ＶＮＦ１０−２の仮想ストレージ２２−２に、ブロックストレージ２３−２を接続することを指示するメッセージを送信する（Ｓ００８）。
【００５８】
ＮＦＶＩ２０は、ＶＩＭ４０からＶＮＦ１０−２の仮想ストレージ２２−２をブロックストレージ２３−２と接続することを指示するメッセージを受信すると、仮想ストレージ２２−２とブロックストレージ２３−２とを接続する（Ｓ００９）。
【００５９】
ＶＩＭ４０は、仮想ストレージ２２−２とブロックストレージ２３−２との接続を完了すると、ＶＮＦＭ３０に対して、指示された割り当てが完了したことを示すメッセージを送信する（Ｓ０１０）。
【００６０】
ＶＮＦ１０−２は、仮想ストレージ２２−２とブロックストレージ２３−２との接続が完了すると、ＶＮＦ１０−２の状態をＡｃｔｉｖｅ待ちからＡｃｔｉｖｅに変更する（Ｓ０１１、図８Ｃ）。
【００６１】
ＶＮＦ１０−２は、ＶＮＦ１０−２の状態がＡｃｔｉｖｅになったことを、ＶＮＦ１０−１へ通知するメッセージを送信する（Ｓ０１２）。
【００６２】
なお、ＶＮＦ１０−１の状態ＡｃｔｉｖｅからＳｔａｎｄｂｙにする変更は、ネットワークシステムをメンテナンスするタイミングや、障害が発生したタイミングで行われる。ただし、ＡｃｔｉｖｅからＳｔａｎｄｂｙへ変更するタイミングは上記項目に限られず、例えば、ＶＮＦ１０−１が一定の稼働時間を超過したタイミングや、物理ストレージ２１に一定以上の負荷が生じたタイミング、ＶＮＦ１０に一定以上の負荷が生じたタイミングでもよい。また、ＡｃｔｉｖｅからＳｔａｎｄｂｙへ変更するタイミングは、システムの管理者からの指示があったタイミング等でもよい。
【００６３】
ＶＮＦ１０−１をＡｃｔｉｖｅからＳｔａｎｄｂｙに変更する判断は、ＶＮＦ１０−１が判断する場合に限られず、ハイパーバイザ５０−１が判断してもよいし、ＶＮＦＭ３０が判断してハイパーバイザ５０−１またはＶＮＦ１０−１へ指示するメッセージを送信してもよい。また、ＶＮＦ１０−１をＡｃｔｉｖｅからＳｔａｎｄｂｙに変更する判断は、ＶＮＦ１０−１、ハイパーバイザ５０−１またはＶＮＦＭ３０以外の構成が判断して指示するメッセージを送信してもよい。
【００６４】
ＶＮＦ１０−１は、例えば、ＶＮＦ１０−１に代わってＡｃｔｉｖｅにするＶＮＦ１０−２に、状態変更通知を送らなくともよい。例えば、ＶＮＦ１０−１がＶＮＦＭ３０に対して状態変更通知を送ると、ＶＮＦＭ３０がＶＮＦＭ管理部３１の情報を参照して、ＶＮＦ１０−２へ状態変更通知を送信してもよい。
【００６５】
ＶＮＦ１０−２は、自身の状態がＡｃｔｉｖｅになったこと、つまり、ＶＮＦ１０−２が現用系になったことを、ＶＮＦ１０−１に通知しなくてもよい。具体的には、Ｓ０１２に記載のＶＮＦ１０−２の動作は、行われなくともよい。
【００６６】
また、ＶＮＦ１０−２は、ＶＮＦ１０−１から状態変更通知を受信した際に、自身の状態をＳｔａｎｄｂｙからＡｃｔｉｖｅ待ち状態に変更する場合に限られず、ＳｔａｎｄｂｙからＡｃｔｉｖｅに変更してもよい。
【００６７】
ＶＮＦＭ３０は、ＶＮＦ１０−１から状態変更通知を受信した際に、ＶＩＭ４０に対してＶＮＦ１０−１の状態変更通知を送信しなくてもよい。ＶＩＭ４０は、ＶＮＦＭ３０から、ＶＮＦ１０−１へ割り当てていた仮想ストレージ２２−１をＶＮＦ１０−２に割り当てることを指示するメッセージ（割当要求）を受信すると、Ｓ００５以降の動作を行う。
【００６８】
また、ＶＮＦ１０−１とＶＮＦ１０−２は、同じ物理ストレージ２１に接続されていなくともよい。例えば、図９は、ＶＮＦ１０−１とＶＮＦ１０−２が異なる物理ストレージ２１に接続されている構成例を示すブロック図である。ＶＮＦ１０−１が接続している物理ストレージ２１−１のブロックストレージ２３−２は、物理ストレージ２１−２に接続しているＶＮＦ１０−２に接続されてもよい。
【００６９】
上記のとおり、本発明の第１の実施形態のネットワークシステムでは、ＶＮＦＭ３０を介して、ブロックストレージ２３に接続する仮想ストレージ２２の切り替え指示をＶＩＭ４０に通知する。このようにすることで、システムの運用を実施する現用系ＶＮＦ１０−１と、ＶＮＦ１０−１に代わってシステムの運用を実施できるように待機している待機系ＶＮＦ１０−２を切り替え、複数ＶＮＦを同一のストレージに接続することが可能となる。
【００７０】
以上、本発明の実施形態を説明したが、本発明は、上記したそれぞれの実施形態に限定されるものではない。本発明は、各実施形態の変形・置換・調整に基づいて実施できる。また、本発明は、各実施形態を任意に組み合わせて実施することもできる。即ち、本発明は、本明細書の全ての開示内容、技術的思想に従って実現できる各種変形、修正を含む。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【００７１】
また、本発明において、ＶＮＦ１０、ＮＦＶＩ２０、ＶＮＦＭ３０およびＶＩＭ２０のコンピュータ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）又はＭＰＵ（Ｍｉｃｒｏ−Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等が、上述した各実施形態の機能を実現するソフトウェア（プログラム）を実行してもよい。ＶＮＦ１０、ＮＦＶＩ２０、ＶＮＦＭ３０およびＶＩＭ４０は、例えばＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅｃｏｒｄａｂｌｅ）等の各種記憶媒体又はネットワークを介して、上述した各実施形態の機能を実現するソフトウェア（プログラム）を取得してもよい。ＶＮＦ、ＮＦＶＩ、ＶＮＦＭおよびＶＩＭが取得するプログラムや該プログラムを記憶した記憶媒体は、本発明を構成することになる。なお、該ソフトウェア（プログラム）は、例えば、ＶＮＦ１０、ＮＦＶＩ２０、ＶＮＦＭ３０およびＶＩＭ４０に含まれる所定の記憶部に、予め記憶されていてもよい。ＶＮＦ１０、ＮＦＶＩ２０、ＶＮＦＭ３０およびＶＩＭ４０のコンピュータ、ＣＰＵ又はＭＰＵ等は、取得したソフトウェア（プログラム）のプログラムコードを読み出して実行してもよい。
【００７２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７３】
［付記１］
ソフトウェアで実装されたネットワーク機能として実行される第１のＶｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ（ＶＮＦ）と、
前記第１のＶＮＦの予備として設けられた第２のＶＮＦによって冗長構成をとる仮想ネットワークシステムであって、
物理リソースを仮想化した仮想リソースを提供するＮｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ（ＮＦＶＩ）と、
前記仮想リソースを、前記第１のＶＮＦおよび前記第２のＶｉｒｔｕａｌｉｚｅｄ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｍａｎａｇｅｒ（ＶＮＦ）を実行するリソースとして提供することを前記ＮＦＶＩに指示するＶＩＭとを含み、
前記ＶＩＭは、前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、前記第１のＶＮＦに対する仮想リソースの提供を解消し、当該仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを前記ＮＦＶＩに指示する
ことを特徴とする仮想ネットワークシステム。
【００７４】
［付記２］
前記ＶＩＭは、前記物理リソースのボリュームを所定の量で区切ったブロック単位で仮想リソースとして提供する制御をしており、
前記第１のＶＮＦを実行する仮想リソースとして提供されたブロックを、前記第２のＶＮＦを実行する仮想リソースとして提供することを特徴とする付記１に記載の仮想ネットワークシステム。
【００７５】
［付記３］
前記ＶＩＭは、仮想リソースとして提供された物理リソースのブロックと、該ブロックが提供されたＶＮＦとを関連付けた情報を保持しており、
前記情報をもとに、前記第１のＶＮＦを実行する仮想リソースとして提供されたブロックを、前記第２のＶＮＦを実行する仮想リソースとして提供する制御を行うことを特徴とする付記２に記載の仮想ネットワークシステム。
【００７６】
［付記４］
前記第１のＶＮＦから、前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする通知を受信すると、
前記ＶＩＭに対して、前記第１のＶＮＦに対する仮想リソースの提供を解消し、当該仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを指示するＶｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｍａｎａｇｅｒ（ＶＮＦＭ）を含むことを特徴とする付記１乃至３のいずれか１項に記載の仮想ネットワークシステム。
【００７７】
［付記５］
ソフトウェアで実装されたネットワーク機能として実行している第１のＶｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ（ＶＮＦ）と、
前記第１のＶＮＦの予備として設けられた第２のＶＮＦとによって冗長構成をとる仮想ネットワークシステムにおいて、
物理リソースを仮想化した仮想リソースを提供するＮｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ（ＮＦＶＩ）とメッセージの送受信を行う通信手段と、
前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、前記第１のＶＮＦへの仮想リソースの提供を解消し、当該仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを前記ＮＦＶＩに指示する制御手段と、を含むＶｉｒｔｕａｌｉｚｅｄ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｍａｎａｇｅｒ（ＶＩＭ）。
【００７８】
［付記６］
前記制御手段は、前記物理リソースのボリュームを所定の量で区切ったブロック単位で仮想リソースとして提供する制御をしており、
前記第１のＶＮＦを実行する仮想リソースとして提供されたブロックを、前記第２のＶＮＦを実行する仮想リソースとして提供することを特徴とする付記５に記載のＶＩＭ。
【００７９】
［付記７］
仮想リソースとして提供された物理リソースのブロックと、該ブロックが提供されたＶＮＦとを関連付けた情報を保持する管理手段を含み、
前記制御手段は、前記管理手段の情報をもとに、前記第１のＶＮＦを実行する仮想リソースとして提供されたブロックを、前記第２のＶＮＦを実行する仮想リソースとして提供する制御を行うことを特徴とする付記６に記載のＶＩＭ。
【００８０】
［付記９］
ソフトウェアで実装されたネットワーク機能として実行している第１のＶｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ（ＶＮＦ）と、
前記第１のＶＮＦの予備として設けられた第２のＶＮＦとによって冗長構成をとる仮想ネットワークシステムにおいて、
前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、
前記第１のＶＮＦに対する仮想リソースの提供を解消する工程と、
前記仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを指示する工程とを含む仮想ネットワーク制御プログラム。
【００８１】
［付記９］
ソフトウェアで実装されたネットワーク機能として実行している第１のＶｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ（ＶＮＦ）と、
前記第１のＶＮＦの予備として設けられた第２のＶＮＦとによって冗長構成をとる仮想ネットワークシステムにおいて、
前記第２のＶＮＦが実行され、前記第１のＶＮＦを前記第２のＶＮＦの予備とする場合に、
前記第１のＶＮＦに対する仮想リソースの提供を解消する工程と、
前記仮想リソースを前記第２のＶＮＦを実行するリソースとして提供することを指示する工程とを含む仮想ネットワーク制御プログラムをコンピュータ読み取り可能に記録した記録媒体。
【００８２】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【００８３】
この出願は、２０１７年  ３月２９日に出願された日本出願特願２０１７−０６４１６７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００８４】
１０、１０−１、１０−２  ＶＮＦ
２０  ＮＦＶＩ
２１、２１−１、２１−２  物理ストレージ
２２、２２−１、２２−２  仮想ストレージ
２３、２３−１、２３−２、２３−３、２３−４、２３−５、２３−６、２３−７、２３−８  ブロックストレージ
３０  ＶＮＦＭ
３１  ＶＮＦＭ管理部
３２  ＶＮＦＭ制御部
３３  ＶＮＦＭ通信部
４０  ＶＩＭ
４１  ＶＩＭ管理部
４２  ＶＩＭ制御部
４３  ＶＩＭ通信部
５０、５０−１、５０−２  ハイパーバイザ
【図１】
0006725062.tif 000002
【図２】
0006725062.tif 000003
【図３】
0006725062.tif 000004
【図４】
0006725062.tif 000005
【図５】
0006725062.tif 000006
【図６】
0006725062.tif 000007
【図７】
0006725062.tif 000008
【図８Ａ】
0006725062.tif 000009
【図８Ｂ】
0006725062.tif 000010
【図８Ｃ】
0006725062.tif 000011
【図９】
0006725062.tif 000012
【図１０】
0006725062.tif 000013
【図１１】
0006725062.tif 000014