(57)【要約】  本発明は、仮想マシンの更新を行う際に、余剰資源を抑えつつ、求められる遅延や帯域の条件を満たすことが可能な運用装置等を提供する。本発明の一態様における運用装置は、複数の仮想マシンを順番に更新するための更新手順を決定する更新手順計算部と、前記決定した更新手順に従って、前記複数の仮想マシンの更新を実行する更新実行部と、を含み、前記更新手順計算部は、前記複数の仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、抽出した更新先の計算資源の候補に基づいて、当該複数の仮想マシンそれぞれの更新先の計算資源と、前記複数の仮想マシンの更新の順番とを決定する。
2017169947.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンを順番に更新するための更新手順を決定する更新手順計算手段と、
決定された前記更新手順に従って、複数の前記仮想マシンの更新を実行する更新実行手段と、を含み、
前記更新手順計算手段は、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出された更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定する
運用装置。
【請求項２】
前記更新手順計算手段は、前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
請求項１に記載の運用装置。
【請求項３】
前記更新手順計算手段は、複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
請求項１又は２に記載の運用装置。
【請求項４】
前記更新手順計算手段は、前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
請求項３に記載の運用装置。
【請求項５】
前記更新手順計算手段は、前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
請求項３又は４に記載の運用装置。
【請求項６】
前記更新手順計算手段は、
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
請求項３乃至５のいずれかに記載の運用装置。
【請求項７】
仮想マシンが構成される計算資源と、
前記仮想マシンの更新を指示する運用装置と、を含み、
前記運用装置は、
複数の前記仮想マシンを順番に更新するための更新手順を決定する更新手順計算手段と、
決定された前記更新手順に従って、複数の前記仮想マシンの更新を実行する更新実行手段と、を含み、
前記更新手順計算手段は、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出した更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定する
通信システム。
【請求項８】
前記更新手順計算手段は、前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
請求項７に記載の通信システム。
【請求項９】
前記更新手順計算手段は、複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
請求項７又は８に記載の通信システム。
【請求項１０】
前記更新手順計算手段は、前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
請求項９に記載の通信システム。
【請求項１１】
前記更新手順計算手段は、前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
請求項９又は１０に記載の通信システム。
【請求項１２】
前記更新手順計算手段は、
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
請求項９乃至１１のいずれかに記載の通信システム。
【請求項１３】
仮想マシンを順番に更新するための更新方法であって、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出された更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定し、
決定された前記更新の順番に従って、複数の前記仮想マシンの更新を実行する
ことを含む更新方法。
【請求項１４】
前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
ことをさらに含む請求項１３に記載の更新方法。
【請求項１５】
複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
ことをさらに含む請求項１３又は１４に記載の更新方法。
【請求項１６】
前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む請求項１５に記載の更新方法。
【請求項１７】
前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む請求項１５又は１６に記載の更新方法。
【請求項１８】
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
ことをさらに含む請求項１５乃至１７のいずれかに記載の更新方法。
【請求項１９】
仮想マシンを順番に更新するための更新方法であって、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出した更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定し、
決定された前記更新の順番に従って、複数の前記仮想マシンの更新を実行する
ことを含む更新方法。
【請求項２０】
前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
ことをさらに含む請求項１９に記載の更新方法。
【請求項２１】
複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
ことをさらに含む請求項１９又は２０に記載の更新方法。
【請求項２２】
前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む請求項２１に記載の更新方法。
【請求項２３】
前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む請求項２１又は２２に記載の更新方法。
【請求項２４】
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
ことをさらに含む請求項２１乃至２３のいずれかに記載の更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運用装置、通信システム、および更新方法に関する。
【背景技術】
【０００２】
クラウド技術の進展に伴い、アプリケーションプログラムを仮想マシン上で実行することが一般的になっている。アプリケーションプログラムを実行するユーザは、仮想マシンを用いることで、必要なときに必要なだけのマシンを稼動でき、余剰資源を最小限にすることができる。また、仮想マシンであるため、ユーザは実際に機器を所有する必要がなく、またそれが配置されている物理的な場所を意識する必要がない等の利点がある。【０００３】
非特許文献１には、地理的に分散したデータセンタを広域網が提供する専用線などで接続する技術が開示されている。非特許文献１に記載の技術では、データセンタを専用線などで接続し、一つのクラウドとして用いることで、モバイルユーザに対して、更に柔軟かつ幅広いサービスの提供が可能になる。【０００４】
一方、仮想マシンであっても、バグやセキュリティ問題を解決するためには、物理マシン同様に、内部のソフトウェアをメンテナンスする必要がある。非特許文献２には、仮想マシン上のサーバの更新方法として、Ｂｌｕｅ−Ｇｒｅｅｎ  Ｄｅｐｌｏｙｍｅｎｔが開示されている。Ｂｌｕｅ−Ｇｒｅｅｎ  Ｄｅｐｌｏｙｍｅｎｔでは、まず、Ｗｅｂなどのネットワークアプリケーションを動かす仮想マシン（Ｇｒｅｅｎスライス）の他に、所望の更新を行った別の仮想マシン（Ｂｌｕｅスライス）を設ける。Ｂｌｕｅスライスは、ＢｌｕｅスライスのデータをＧｒｅｅｎスライスのデータと同期させる。同期が終了後、Ｇｒｅｅｎスライスにトラヒックを転送しているルータにおいて、トラヒックの転送先を、ＧｒｅｅｎスライスからＢｌｕｅスライスに切り替える。これにより、論理的にサービスを停止することなく、ソフトウェアの更新を行うことが可能になる。また、トラヒックの転送先をＧｒｅｅｎスライスからＢｌｕｅスライスに切り替えた後、Ｇｒｅｅｎスライスが使用している資源は、次の更新に用いることが可能である。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｔａｒｉｋ  Ｔａｌｅｂ，“Ｔｏｗａｒｄ  Ｃａｒｒｉｅｒ  Ｃｌｏｕｄ：Ｐｏｔｅｎｔｉａｌ，  Ｃｈａｌｌｅｎｇｅｓ，  ａｎｄ  Ｓｏｌｕｔｉｏｎｓ，”ＩＥＥＥ  Ｗｉｒｅｌｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，  ｖｏｌ．２１，  ｎｏ．３，  Ｊｕｎｅ  ２０１４，ＰＰ.８０−９１
【非特許文献２】Ｋｅｎ  Ｃｏｌｌｉｅｒ“Ａｇｉｌｅ  Ａｎａｌｙｔｉｃｓ”Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ，Ｊｕｌｙ  ２０１１，ｐｐ．１６９−１７０
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、非特許文献１には、新規の仮想マシンを作成する際に、最良の配置場所を決定するための手段が示されている。非特許文献１に記載の技術では、新規の仮想マシンが通信しうる既設の仮想マシンとの間の遅延や帯域をネットワーク距離として用い、既設の仮想マシンとのネットワーク距離の和が最小となる所に、新規の仮想マシンを作成する。【０００７】
しかしながら、ネットワーク距離が最小であっても、遅延や帯域量等に関して、所望の性能が満たされない恐れがある。【０００８】
また、非特許文献２に記載のＢｌｕｅ−Ｇｒｅｅｎ  Ｄｅｐｌｏｙｍｅｎｔを適用するためには、１つのサーバに対し２つの仮想マシンを起動するため、２倍の計算資源を要する。多数の仮想マシンに対して更新作業が必要な場合、仮想マシンと同数の計算資源を余剰資源として配置する必要があり、多大なコストが生じる。とりわけ、複数の分散データセンタを１つのクラウド環境とする場合、局舎の大きさ、電力の供給力、資材コスト等の観点から、余剰の計算資源が潤沢にあると考えるのは現実的ではない。【０００９】
また、クラウド環境においても、アプリケーションプログラムが所望の性能を達成するための設計は必要となる。Ｂｌｕｅ−Ｇｒｅｅｎ  Ｄｅｐｌｏｙｍｅｎｔにより、サーバの接続性を維持したままソフトウェアの更新を行うことが可能であったとしても、Ｂｌｕｅスライスの場所によっては、求められる遅延や帯域の条件が満たされない可能性がある。【００１０】
そこで、本発明の目的は、上述した課題に鑑み、仮想マシンの更新を行う際に、余剰資源を抑えつつ、求められる遅延や帯域の条件を満たすことが可能な運用装置等を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一態様における運用装置は、複数の仮想マシンを順番に更新するための更新手順を決定する更新手順計算部と、前記決定した更新手順に従って、前記複数の仮想マシンの更新を実行する更新実行部と、を含み、前記更新手順計算部は、前記複数の仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、抽出した更新先の計算資源の候補に基づいて、当該複数の仮想マシンそれぞれの更新先の計算資源と、前記複数の仮想マシンの更新の順番とを決定することを特徴とする。【００１２】
本発明の一態様における通信システムは、仮想マシンが構成される計算資源と、前記仮想マシンの更新を指示する運用装置と、を含み、前記運用装置は、複数の仮想マシンを順番に更新するための更新手順を決定する更新手順計算部と、前記決定した更新手順に従って、前記複数の仮想マシンの更新を実行する更新実行部と、を含み、前記更新手順計算部は、前記複数の仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、抽出した更新先の計算資源の候補に基づいて、当該複数の仮想マシンそれぞれの更新先の計算資源と、前記複数の仮想マシンの更新の順番とを決定することを特徴とする。【００１３】
本発明の一態様における更新方法は、複数の仮想マシンを順番に更新するための更新方法であって、複数の仮想マシンそれぞれに対して更新先の計算資源の候補を抽出するステップと、抽出した更新先の計算資源の候補に基づいて、当該複数の仮想マシンそれぞれの更新先の計算資源と、前記複数の仮想マシンの更新の順番とを決定するステップと、前記決定した更新手順に従って、前記複数の仮想マシンの更新を実行するステップと、を含むことを特徴とする更新方法。
【発明の効果】
【００１４】
本発明の一形態における運用装置等は、仮想マシンの更新を行う際に、余剰資源を抑えつつ、求められる遅延や帯域の条件を満たすことが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態の通信ネットワーク構成例である。
【図２】本発明の第１の実施形態の運用装置６０の構成例である。
【図３】本発明の第１の実施形態のトポロジ情報保持部６１の保持するネットワークトポロジ管理テーブル６１１の構成例である。
【図４】本発明の第１の実施形態の経路候補保持部６２の保持する通信経路候補上ノードテーブル６２１の構成例である。
【図５】本発明の第１の実施形態の経路候補保持部６２の保持する通信経路候補上リンクテーブル６２２の構成例である。
【図６】本発明の第１の実施形態のフロー情報保持部６３の保持するフローの情報の構成例である。
【図７】本発明の第１の実施形態の異なる通信ネットワーク構成例である。
【図８】本発明の第１の実施形態の更新手順計算部６４の動作例を示すフローチャートである。
【図９】本発明の第１の実施形態の仮想マシン４０の移動候補先を示す図である。
【図１０】本発明の第１の実施形態の仮想マシン４０の更新手順を示す図である。
【図１１】本発明の第１の実施形態の更新実行部６５の動作例を示すフローチャートである。
【図１２】本発明の第２の実施形態の運用装置６０の構成例である。
【図１３】本発明の第２の実施形態の異なる運用装置６０の構成例である。
【図１４】本発明の第２の実施形態の更新手順計算部６４の動作例を示すフローチャートである。
【図１５】本発明の第３の実施形態の運用装置６０の構成例である。
【図１６】本発明の第３の実施形態の運用装置６０の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、図面を参照して説明する。各実施形態は、例示であり、本発明は各実施形態に限定されるものではない。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００１７】
［第１の実施の形態］
［構成の説明］
本発明の第１の実施形態を、図面を参照して詳細に説明する。
【００１８】
図１は、本発明の第１の実施形態における通信ネットワーク構成例である。
【００１９】
本発明の第１の実施形態における通信ネットワークは、ノード１０と、計算資源２０と、ノード間リンク３０と、仮想マシン４０と、計算資源用リンク５０とを含む。例えば、ノード１０は、ノード１０−１乃至ノード１０−８である。ハイフン“−”とその後の符号（１、２、…）は、説明の便宜上、省略される場合がある。
【００２０】
なお、図１の構成要素１０から５０を繋ぐ実線は論理的な通信ないし呼び出し可能な関係を示したものであり、構成要素１０から５０の実装形態は、この形状で接続されている構成やネットワークに限定されるものではない。また、通信ネットワークは、図１の構成例に限られず、例えば、より多くのノード１０やノード間リンク３０を有してもよく、接続が異なっていてもよい。
【００２１】
ノード１０は、例えば、物理的もしくは仮想的なスイッチやルータである。各ノード１０は、例えば、データの転送の中継や制御を行う。ノード１０間は、ノード間リンク３０を介して接続されている。ノード間リンク３０は、物理的であっても、仮想的なリンクであってもよい。
【００２２】
計算資源２０は、ノード１０（ネットワーク）と、計算資源用リンク５０とを介して接続している。計算資源用リンク５０は、物理的であっても、仮想的なリンクであってもよい。計算資源２０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクから構成される。
【００２３】
仮想マシン４０は、計算資源２０を用いて配置される。仮想マシン４０は、計算資源用リンク５０と、ノード間リンク３０とを介して、仮想マシン４０間で通信を行う。
【００２４】
図２は、本発明の第１の実施形態における運用装置６０の構成例である。
【００２５】
本発明の第１の実施形態における運用装置６０は、本発明の第１の実施形態における通信ネットワークを管理する。運用装置６０は、トポロジ情報保持部６１と、経路候補保持部６２と、フロー情報保持部６３と、更新手順計算部６４と、更新実行部６５とを含む。
【００２６】
なお、図２の構成要素６１から６５を繋ぐ実線は論理的な通信ないし呼び出し可能な関係を示したものであり、本発明が構成要素６１から６５の実装は、この形状で接続されている構成やネットワークに限定されるものではない。
【００２７】
また、以下の説明においては、簡単のために、各ノード間リンク３０および各計算資源用リンク５０の遅延時間はいずれも１とするが、本発明を適用するネットワークにおけるリンクの遅延時間はそれぞれ異なっていても構わない。以下の説明においては、簡単のために、ノード内の遅延は０とするが、ノード内の遅延を計測する、あるいは仮想マシン間の通信遅延時間を計測するなどすれば、ノード内の遅延時間も考慮が可能である。
【００２８】
以下の説明においては、簡単のために、図１の通信ネットワークにおいて、仮想マシン４０−１、４０−３、４０−５のソフトを更新したい場合を例にする。
【００２９】
トポロジ情報保持部６１は、通信ネットワーク内のノード１０と、計算資源２０と、ノード間リンク３０と、計算資源用リンク５０との接続関係（トポロジ）に関する情報を保持する。
【００３０】
図３は、本発明の第１の実施形態において、トポロジ情報保持部６１の保持する、ネットワークトポロジ管理テーブル６１１の構成例である。例えば、ネットワークトポロジ管理テーブル６１１を参照すると、計算資源用リンク５０−１には、ノード１０−１と、計算資源２０−１が接続されている。トポロジ情報保持部６１に格納する情報は、リンクＩＤ（ＩＤｅｎｔｉｆｉｅｒ）や当該通信リンクが接続しているノード１０のＩＤに限定されず、例えば、リンクの名称やＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）アドレスやシリアル番号、ＩＰアドレスを参照するＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を格納してもよい。
【００３１】
経路候補保持部６２は、トポロジ情報保持部６１の保持する通信ネットワークのトポロジ上に存在する、計算資源２０間の通信経路の候補情報を保持する。経路候補保持部６２は、トポロジ情報保持部６１に記録されているトポロジにおいて、仮想マシン４０が配置されうる計算資源２０間の通信経路の候補を、一つあるいは複数保持する。
【００３２】
図４は、本発明の第１の実施形態において、経路候補保持部６２の保持する、通信経路候補上ノードテーブル６２１の構成例である。例えば、計算資源２０−３から計算資源２０−５へデータを転送する場合の経路候補は、通信経路候補上ノードテーブル６２１を参照すると、２通り存在することが分かる。計算資源２０−３から計算資源２０−５へデータを転送する経路候補１は、ノード１０−３、ノード１０−４、ノード１０−５を通る。計算資源２０−３から計算資源２０−５へデータを転送する経路候補２は、ノード１０−３、ノード１０−６、ノード１０−５を通る。
【００３３】
図５は、本発明の第１の実施形態において、経路候補保持部６２の保持する、通信経路候補上リンクテーブル６２２の構成例である。例えば、計算資源２０−１から計算資源２０−３へデータを転送する場合の経路候補は、通信経路候補上リンクテーブル６２２を参照すると、２通り存在することが分かる。計算資源２０−１から計算資源２０−３へデータを転送する経路候補１は、計算資源用リンク５０−１、ノード間リンク３０−１、ノード間リンク３０−２、計算資源用リンク５０−３を通る。計算資源２０−１から計算資源２０−３へデータを転送する経路候補２は、計算資源用リンク５０−１、ノード間リンク３０−８、ノード間リンク３０−７、ノード間リンク３０−６、ノード間リンク３０−１０、計算資源用リンク５０−３を通る。
【００３４】
経路候補保持部６２は、図４の通信経路候補上ノードテーブル６２１のように、経路を経由するノードで記載したテーブルを保持してもよい。図５の通信経路候補上リンクテーブル６２２のように、経路を経由するリンクで記載したテーブルを保持してもよいし、両方を合わせた形で保持してもよい。例えば、ノード１０間にノード間リンク３０が１本しかない場合や、ノード間リンク３０を区別する必要のない場合には、図４の通信経路候補上ノードテーブル６２１のみ保持してもよい。
【００３５】
経路候補保持部６２の保持する情報は、図４の通信経路候補上ノードテーブル６２１と、図５の通信経路候補上リンクテーブル６２２とに記載の形態に限定しない。例えば、図４の通信経路候補上ノードテーブル６２１に、経由するノードの名称を記載しているが、ノード１０のＩＰアドレスやＭＡＣアドレス、あるいはそのようなアドレスを特定するためのラベル等の識別子でも構わない。また、通信経路候補上ノードテーブル６２１と、通信経路候補上リンクテーブル６２２に記載の経路候補は２通りであるが、通信経路候補上ノードテーブル６２１と、通信経路候補上リンクテーブル６２２は、例えば、経路候補を１通り以上の任意の数を保持していればよい。
【００３６】
フロー情報保持部６３は、トポロジ情報保持部６１の保持するネットワークのトポロジ上に存在するフローの情報を保持する。フロー情報保持部６３は、例えば、フローに関して、送信元、宛先、要求帯域、遅延上限値など、要求される通信品質を特定するための情報を保持する。
【００３７】
図６は、本発明の第１の実施形態において、フロー情報保持部６３の保持するフロー情報テーブル６３１の構成例である。例えば、フローＦ８０１は、仮想マシン４０−８から送信され、仮想マシン４０−１へ転送される。仮想マシン４０−８から仮想マシン４０−１へ転送される間、要求帯域は１、遅延上限値は５までである。
【００３８】
フロー情報保持部６３の保持する情報は、図６のフロー情報テーブル６３１に記載の形態に限定しない。例えば、図６のフロー情報テーブル６３１に、仮想マシン４０の名称を記載しているが、仮想マシン４０のＩＰアドレスやＭＡＣアドレス、ポート番号など、通信フローを特定するために用いられるパケット情報や、その組み合わせを用いてもよい。あるいは、図６のフロー情報テーブル６３１に、通信フローを特定するための情報を参照する名前、ラベル等の識別子を記載してもよい。通信フローを特定するための情報を参照する場合、通信フローを特定するための情報は、識別子をキーとして参照できる形で図６のフロー情報テーブル６３１とは別のテーブルないしマップ等に記録される。
【００３９】
フロー情報保持部６３の保持する情報は、双方向リンクであっても、単方向リンクを含んでいてもよい。フロー情報保持部６３の保持する情報が単方向リンクを含んでいる場合、経路候補保持部６２の保持する情報は、単方向リンクの順方向のみに適用できる。フロー情報保持部６３の保持する情報は、双方向リンクを逆向きの単方向リンクの一対で表現した場合でも同様に、単方向リンクの順方向のみに適用できる。フロー情報保持部６３の保持する情報は、双方向リンクを逆向きの単方向リンクの一対で表現した場合、リンクの識別子はそれぞれの単方向リンクが区別できるように付与される。
【００４０】
なお、トポロジ情報保持部６１と、経路候補保持部６２と、フロー情報保持部６３とが保持する通信ネットワークの情報は、例えば、ＮＭＳ（Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）、ＯＳＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｕｐｐｏｒｔ  Ｓｙｓｔｅｍ）、外部データファイルから自動ないし手動で入力される。
【００４１】
更新手順計算部６４は、トポロジ情報保持部６１と、経路候補保持部６２と、フロー情報保持部６３とが保持する情報を参照し、仮想マシン４０の更新手順を計算する。
【００４２】
更新手順計算部６４は、例えば、更新作業の対象となる個々の仮想マシン４０に対して、更新作業の対象となる仮想マシン４０に流入するフローの通信要件が満たされる計算資源２０を、移動先候補として検討する。
【００４３】
例えば、更新手順計算部６４は、フロー情報保持部６３を参照して、更新対象となる個々の仮想マシン４０に流入するフローの有無を確認する。更新対象の仮想マシン４０に流入するフローが存在する場合、更新手順計算部６４は、経路候補保持部６２を参照し、該フローと送信元が同じで、かつ該更新対象の仮想マシン４０とは異なる宛先を、移動先候補として抽出する。なお、更新手順計算部６４は、経路候補保持部６２だけでなく、フロー情報保持部６３を参照して、該フローと送信元が同じで、かつ該更新対象の仮想マシン４０とは異なる宛先を、移動先候補として抽出してもよい。
【００４４】
更新手順計算部６４は、例えば、経路候補保持部６２やフロー情報保持部６３を参照して、更新対象の仮想マシン４０に流入するフローの送信元から移動先候補への経路のうち、通信要件が満たされる経路を抽出し、集合Ｃとする。例えば、更新手順計算部６４は、更新対象の仮想マシン４０に流入するフローの遅延上限値と、経路候補保持部６２から抽出した経路候補の遅延を比較して、該遅延上限値を超えない経路を経路候補として抽出し、集合Ｃとする。
【００４５】
更新手順計算部６４は、例えば、Ｂｌｕｅ−Ｇｒｅｅｎ  Ｄｅｐｌｏｙｍｅｎｔやその類似手段で仮想マシン４０を更新する場合、ＧｒｅｅｎスライスとＢｌｕｅスライスの間でデータや状態の同期が必要なため、同期が可能な通信要件の経路候補を抽出し、集合Ｃとする。
【００４６】
更新手順計算部６４は、例えば、仮想マシン４０を起動していない計算資源２０（空き計算資源）を始点として、更新対象である仮想マシン４０が存在する計算資源を全て通るような経路を計算する。更新手順計算部６４は、例えば、深さ優先探索法を用いて、空き資源を始点として、更新作業対象となる仮想マシン４０が存在する計算資源を全て通るような経路を計算する。ただし、更新対象である仮想マシン４０が存在する計算資源を全て通るような経路を計算する方法は、深さ優先探索法に限定されず、他の計算方法でもよい。
【００４７】
なお、空き計算資源が複数箇所存在する場合、更新手順計算部６４は、例えば、経路計算の始点となるダミーノードを１つ設け、ダミーノードと各空き計算資源のノードをダミーリンクで接続し、ダミーノードを始点として前述の経路計算を行うとよい。更新手順計算部６４は、例えば、該経路計算の後に、経路からダミーノードおよびダミーリンクの部分を削除する。これにより、更新手順計算部６４は、各空き計算資源を始点として、更新対象の仮想マシン４０を通過する複数本の経路を算出できる。
【００４８】
更新手順計算部６４は、算出した経路の逆の経路を、仮想マシンの更新手順として、更新実行部６５へ転送する。
【００４９】
更新実行部６５は、更新手順計算部６４が計算した仮想マシンの更新手順に基づいて、仮想マシンの更新を実行する。
【００５０】
更新実行部６５は、例えば、空き計算資源に更新対象の仮想マシン４０のＢｌｕｅスライスを作成する。更新実行部６５は、作成したＢｌｕｅスライスと、更新対象の仮想マシン４０の状態およびデータの同期を行う。
【００５１】
更新実行部６５は、Ｂｌｕｅスライスと、更新対象の仮想マシン４０の同期を完了した後に、更新対象の仮想マシン４０に流入していたフローの宛先を、作成したＢｌｕｅスライスへ切り替える。更新実行部６５は、フローの送信元からＢｌｕｅスライスへの経路を、集合Ｃの中から選択する。更新実行部６５は、フローの送信元からＢｌｕｅスライスへの経路について、例えば、最短となる経路を選択してもよいし、最小コストとなる経路を選択してもよい。更新実行部６５は、例えば、フローの送信元からＢｌｕｅスライスへの経路として、複数の経路を選択し、マルチパスルーティングによりフローを収容しても構わない。
【００５２】
なお、更新実行部６５は、更新対象の仮想マシン４０に流入していたフローの宛先を、作成したＢｌｕｅスライスへ切り替える前に、選択した経路候補の経路でフローの通信が可能であるように、ネットワークを制御する。このネットワークの制御は、運用装置６０の更新実行部６５が実行することに限られず、例えば、ＮＭＳや、ＯｐｅｎＦｌｏｗコントローラが集中的に行ってもよい。運用装置６０が、例えば、ＮＭＳやＯｐｅｎＦｌｏｗコントローラであってもよい。また、このネットワークの制御は、ＲＳＶＰ（Ｒｅｓｏｕｒｃｅ  ｒｅＳｅｒＶａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）などを用いて、分散的に行ってもよい。
【００５３】
更新実行部６５は、更新対象の仮想マシン４０に流入していたフローの宛先を、作成したＢｌｕｅスライスへ切り替えた後に、Ｂｌｕｅスライスが正常に動作していることを確認する。更新実行部６５は、Ｂｌｕｅスライスが正常に動作していることを確認した後、更新対象であった仮想マシン４０を削除する。
【００５４】
更新実行部６５は、新たに空き計算資源となった計算資源２０を用いて、新たな更新対象の仮想マシン４０の更新を実行する。更新実行部６５は、例えば、新たな更新対象の仮想マシン４０の更新を実行する場合に、新たに設定するフローの経路は、前に存在していた仮想マシン４０が用いていたフローの経路と、同様の経路を設定してもよい。更新実行部６５は、例えば、前に存在していた仮想マシン４０が用いていたフローの経路を再設定できない場合には、その経路の情報を削除し、新たな経路を設定する。
【００５５】
以上、本発明の第１の実施形態において、フローの送信元が単一の仮想マシン４０としていたが、個々のフローの送信元が異なる仮想マシン４０であっても構わない。また、本説明におけるフローの送信元が仮想マシン４０ではなく、外部ネットワーク７０であってもよい。
【００５６】
図７は、本発明の第１の実施形態における、異なる通信ネットワーク構成例である。図７の通信ネットワークにおいて、ノード１０−８は、計算資源用リンク５０−８を介して、外部ネットワーク７０と接続している。外部ネットワーク７０とは、例えば、物理的もしくは仮想的なスイッチないしルータである。
【００５７】
送信元が外部ネットワーク７０である場合、外部ネットワーク７０からフローが流入するノード１０−８が、フローの宛先を切り替えられる。
【００５８】
［動作の説明］
本発明の第１実施形態における運用装置６０の動作について、図８を参照して説明する。以降の説明では、簡単のために、図１に記載の通信ネットワークの構成において、仮想マシン４０−１、４０−３、４０−５を更新する場合について説明する。
【００５９】
図８は、本発明の第１の実施形態における更新手順計算部６４の動作例を示すフローチャートである。
【００６０】
更新手順計算部６４は、仮想マシン４０−１に対して流入するフローの有無を確認する（Ｓ１０１）。更新手順計算部６４は、フロー情報保持部６３の保持するフロー情報を参照して、仮想マシン４０−１に対して、計算資源２０−８から、フローＦ８０１が流入していることを確認する。
【００６１】
更新手順計算部６４は、更新対象の仮想マシン４０に対して流入するフローが存在しない場合（Ｓ１０２のＮｏ）、経路候補保持部６２を参照して、更新対象の仮想マシン４０を宛先とするフローの経路を、集合Ｃへ追加する（Ｓ１０３）。仮想マシン４０−１は、この場合（Ｓ１０２のＮｏ）に該当しない。
【００６２】
更新手順計算部６４は、仮想マシン４０−１に対して流入するフローが存在する場合（Ｓ１０２のＹｅｓ）、経路候補保持部６２を参照して、送信元が計算資源２０−８であり、かつ宛先が仮想マシン４０−１でないフローの経路を抽出する（Ｓ１０４）。
【００６３】
例えば、更新手順計算部６４は、通信経路候補上ノードテーブル６２１を参照して、送信元が計算資源２０−８であり、かつ宛先が仮想マシン４０−１でないフローの経路として、６通りの経路を抽出する。更新手順計算部６４が抽出した経路は、［１０−８、１０−１、１０−２、１０−３］、［１０−８、１０−７、１０−６、１０−３］、［１０−８、１０−１、１０−２、１０−３、１０−６、１０−５］、［１０−８、１０−７、１０−６、１０−５］、［１０−８、１０−７］、［１０−８、１０−１、１０−２、１０−７］の６通りである。なお、更新手順計算部６４は、通信経路候補上リンクテーブル６２２を参照して、送信元が計算資源２０−８であり、かつ宛先が仮想マシン４０−１でないフローの経路を抽出してもよい。
【００６４】
更新手順計算部６４は、抽出したフローの経路の遅延を確認する（Ｓ１０５）。
【００６５】
更新手順計算部６４は、抽出したフローの経路の遅延が、元々更新対象の仮想マシン４０へ流入していたフローの遅延上限値より大きい場合（Ｓ１０６のＮｏ）、該フローの経路を経路候補から外す（Ｓ１０７）。更新手順計算部６４は、抽出したフローの経路の遅延が、元々更新対象の仮想マシン４０へ流入していたフローの遅延上限値以内である場合に（Ｓ１０６のＹｅｓ）、該フローの経路を経路候補として集合Ｃへ追加する（Ｓ１０８）。
【００６６】
例えば、更新手順計算部６４は、抽出した６通りの経路のうち、仮想マシン４０−１に対して計算資源２０−８から流入していたフローＦ８０１の遅延上限値以内であるフローの経路を抽出する。フローＦ８０１の遅延上限値は５であるため、更新手順計算部６４は、遅延が７である［１０−８、１０−１、１０−２、１０−３、１０−６、１０−５］を除いた、５通りの経路を抽出する。これにより、更新手順計算部６４は、仮想マシン４０−１の移動先候補として、計算資源２０−３、２０−５、２０−７を抽出する。
【００６７】
例えば、更新手順計算部６４は、Ｂｌｕｅ−Ｇｒｅｅｎ  Ｄｅｐｌｏｙｍｅｎｔの場合、同期を完了させるための特定の通信要件と、集合Ｃの経路とを比較する（Ｓ１０９）。例えば、本発明の第１の実施形態において、いずれの仮想マシン４０の更新においても、仮想マシン４０の同期は、仮想マシン４０間の遅延が４以下ならば可能であるとする。更新手順計算部６４は、抽出した５つの経路候補のうち、仮想マシン４０−１との間の遅延が４以下でない場合（Ｓ１１０のＮｏ）には、集合Ｃから該フローの経路を除外する（Ｓ１１１）。更新手順計算部６４は、抽出した５つの経路候補のうち、仮想マシン４０−１との間の遅延が４以下である場合（Ｓ１１０のＹｅｓ）には、集合Ｃに経路候補として残しておく（Ｓ１１２）。
【００６８】
更新手順計算部６４は、Ｓ１０１からＳ１１２の手順により、仮想マシン４０−１の移動先候補として、計算資源２０−３、２０−７を抽出する（Ｓ１１３）。
【００６９】
更新手順計算部６４は、Ｓ１０１からＳ１１２の手順を繰り返し、更新対象である全ての仮想マシン４０の移動先候補を抽出する。図９は、本発明の第１の実施形態における、仮想マシン４０の移動先候補を示す図である。例えば、仮想マシン４０−３は、計算資源２０−１、２０−５、２０−７を移動先候補とする。仮想マシン４０−５は、計算資源２０−３、２０−７を移動先候補とする。
【００７０】
更新手順計算部６４は、例えば、深さ優先探索法を用いて、空き計算資源である計算資源２０−７を始点として、更新作業対象となる仮想マシン４０−１、４０−３、４０−５が存在する計算資源２０を全て通るような経路を計算する。更新手順計算部６４は、算出した経路と逆向きの経路を、更新手順として算出する（Ｓ１１４）。図１０は、本発明の第１の実施形態における、仮想マシン４０の更新手順を示す図である。例えば、図１０において、仮想マシン４０は、仮想マシン４０−１，４０−３，４０−５の順に更新される。
【００７１】
図１１は、本発明の第１の実施形態における更新実行部６５の動作例を示すフローチャートである。
【００７２】
更新実行部６５は、空き計算資源である計算資源２０−７に、仮想マシン４０−１のＢｌｕｅスライスを作成する（Ｓ２０１）。
【００７３】
更新実行部６５は、作成した仮想マシン４０−１のＢｌｕｅスライスと、仮想マシン４０−１の状態およびデータを同期する（Ｓ２０２）。
【００７４】
更新実行部６５は、作成した仮想マシン４０−１のＢｌｕｅスライスと、仮想マシン４０−１の状態およびデータの同期を完了した後、仮想マシン４０−１に流入しているフローＦ８０１の宛先を、作成したＢｌｕｅスライスへ切り替える（Ｓ２０３）。
【００７５】
更新実行部６５は、作成したＢｌｕｅスライスが仮想マシン４０−１として正常に動作していることを確認した後に、計算資源２０−１に存在する仮想マシン４０−１を削除する（Ｓ２０４）。
【００７６】
更新実行部６５は、新たに空き資源となった計算資源２０−１を用いて、仮想マシン４０−３の更新を行う。更新実行部６５は、Ｓ２０１からＳ２０４の手順を繰り返し、更新対象である全ての仮想マシン４０を更新する。
【００７７】
上記のとおり、本発明の第１の実施形態では、空き計算資源にＢｌｕｅスライスを作成し、仮想マシン４０に流入するフローの宛先を切り替える動作を繰り返すことで、仮想マシン４０の更新を、通信およびサービスの継続状態を維持して行うことが可能である。
【００７８】
また、本発明の第１の実施形態では、新たに空き計算資源となった計算資源２０に、新たなＢｌｕｅスライスを作成し、仮想マシン４０に流入するフローの宛先を切り替える動作を繰り返す。これにより、更新対象の仮想マシン４０と同数の計算資源２０を持っておく必要がなくなり、余剰資源を抑えることが可能になる。
【００７９】
以上、本発明の第１の実施形態において、更新対象の仮想マシン４０に１つのフローが流入する場合を例に説明したが、複数のフローが流入している状況でも本発明は適用可能である。更新対象の仮想マシン４０に複数のフローが流入する場合には、流入する全てのフローに対して、要件を満たすような経路候補および移動先候補を用いる。
【００８０】
［第２の実施の形態］
［構成の説明］
本願発明の第２の実施形態を、図面を参照して詳細に説明する。なお、第２の実施形態の技術は、第１の実施形態、後述の実施形態のいずれにも適用可能である。
【００８１】
第２の実施形態の通信システムの構成例は、図１に例示する第１の実施形態の通信システムの構成例と同様であるため、詳細な説明は省略される。
【００８２】
図１２は、本発明の第２の実施形態における、運用装置６０の構成例を示す図である。
【００８３】
本発明の第２の実施形態における運用装置６０は、本発明の第１の実施形態における通信ネットワークを管理する。運用装置６０は、トポロジ情報保持部６１と、経路候補保持部６２と、フロー情報保持部６３と、更新手順計算部６４と、更新実行部６５と、経路計算部６６とを含む。
【００８４】
なお、図１２の構成要素６１から６６を繋ぐ実線は論理的な通信ないし呼び出し可能な関係を示したものであり、本発明が構成要素６１から６６の実装は、この形状で接続されている構成やネットワークに限定されるものではない。
【００８５】
経路候補保持部６２は、トポロジ情報保持部６１の保持する通信ネットワークのトポロジ上に存在する、計算資源２０間の通信経路の候補情報を保持する。経路候補保持部６２は、トポロジ情報保持部６１に記録されているトポロジにおいて、仮想マシン４０が配置されうる計算資源２０間の通信経路の候補を、一つあるいは複数保持する。経路候補保持部６２の保持する通信経路の候補情報の構成例は、図４、図５に例示した第１の実施形態における経路候補保持部６２の保持する通信経路の候補情報の構成例と同様であるため、詳細な説明は省略される。
【００８６】
経路候補保持部６２の保持する情報は、ユーザによって保存されてもよいし、経路計算部６６によって保存されてもよい。
【００８７】
経路候補保持部６２は、例えば、更新手順計算部６４が、経路計算部６６に対して、通信ネットワークのトポロジ上に存在する通信経路の候補情報をその都度問い合わせる場合には、運用装置６０に含まれなくてもよい。
【００８８】
更新手順計算部６４は、トポロジ情報保持部６１と、経路候補保持部６２と、フロー情報保持部６３とが保持する情報を参照し、仮想マシンの更新手順を計算する。更新手順計算部６４は、例えば、更新作業対象となる個々の仮想マシン４０に対して、移動先として、流入するフローの通信要件が満たされる計算資源２０を移動先候補として検討する。
【００８９】
更新手順計算部６４は、例えば、経路計算部６６に対して、通信ネットワークにおける計算資源２０間の経路の計算を指示する。更新手順計算部６４は、例えば、経路候補保持部６２に既に経路候補が記録されている場合には、通信ネットワークにおける計算資源２０間の経路の計算を指示しなくてもよいし通信ネットワークにおける計算資源２０間の経路の更新指示を出してもよい。
【００９０】
更新手順計算部６４は、フロー情報保持部６３を参照して、更新対象となる個々の仮想マシン４０に流入するフローの有無を確認する。
【００９１】
更新手順計算部６４は、算出された経路候補保持部６２の保持する情報を参照し、該フローと送信元が同じで、かつ該更新対象の仮想マシン４０とは異なる宛先を、移動先候補として抽出する。
【００９２】
なお、更新手順計算部６４は、経路候補保持部６２だけでなく、フロー情報保持部６３を参照して、該フローと送信元が同じで、かつ該更新対象の仮想マシン４０とは異なる宛先を、移動先候補として抽出してもよい。
【００９３】
更新手順計算部６４が、例えば、経路計算部６６に対して、通信ネットワークにおける計算資源２０間の経路の候補情報をその都度問い合わせる場合には、経路計算部６６から、該通信経路の候補情報を取得してもよい。
【００９４】
更新手順計算部６４が更新手順を算出する過程は、第１の実施形態における更新手順計算部６４の例と同様であるため、詳細な説明は省略される。
【００９５】
更新手順計算部６４は、算出した仮想マシン４０の更新手順を、更新実行部６５へ転送する。
【００９６】
経路計算部６６は、外部からの経路計算要求に応じて、フローに対する経路を計算する。
【００９７】
経路計算部６６は、トポロジ情報保持部６１から通信ネットワークのトポロジ情報を取得する。経路計算部６６は、取得した通信ネットワークのトポロジ情報から、通信ネットワークにおける計算資源２０間の経路を計算する。経路計算部６６は、例えば、ＣＳＰＦ（Ｃｏｎｓｔｒａｉｎｔｅｄ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ：制約付き最短経路法）や、ＧＡ（Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍ：遺伝的アルゴリズム）等のヒューリスティック法を用いて、該経路を計算する。
【００９８】
経路計算部６６は、算出した経路情報を、例えば、経路候補保持部６２に保存する。
【００９９】
運用装置６０の他の構成は、図２に例示した第１の実施形態における運用装置６０の構成例と同様であるため、詳細な説明は省略される。
【０１００】
図１３は、本発明の第２の実施形態における、運用装置６０の異なる構成例を示す図である。経路計算部６６は、例えば、運用装置６０に経路候補保持部６２が含まれていない場合、算出した経路を更新手順計算部６４へ転送してもよい。
【０１０１】
［動作の説明］
本発明の第２実施形態における運用装置６０の動作について、図１４を参照して説明する。以降の説明では、簡単のために、図１に記載の通信ネットワークの構成において、仮想マシン４０−１、４０−３、４０−５を更新する場合について説明する。
【０１０２】
図１４は、本発明の第２の実施形態における更新手順計算部６４の動作例を示すフローチャートである。
【０１０３】
更新手順計算部６４は、仮想マシン４０−１に対して流入するフローの有無を確認する（Ｓ３０１）。更新手順計算部６４は、フロー情報保持部６３の保持するフロー情報を参照して、仮想マシン４０−１に対して、計算資源２０−８から、フローＦ８０１が流入していることを確認する。
【０１０４】
更新手順計算部６４は、経路計算部６６に対して、通信ネットワークにおける計算資源２０間の経路の計算を指示する（Ｓ３０２）。経路計算部６６は、トポロジ情報保持部６１を参照し、通信ネットワークにおける計算資源２０間の経路を算出する。経路計算部６６は、算出した経路を、経路候補保持部６２に保存する。
【０１０５】
更新手順計算部６４は、更新対象の仮想マシン４０対して流入するフローが存在しない場合（Ｓ３０３のＮｏ）、経路候補保持部６２を参照して、更新対象の仮想マシン４０を宛先とするフローの経路を、集合Ｃへ追加する（Ｓ３０４）。仮想マシン４０−１は、この場合（Ｓ３０３のＮｏ）に該当しない。
【０１０６】
更新手順計算部６４は、仮想マシン４０−１に対して流入するフローが存在する場合（Ｓ３０３のＹｅｓ）、経路候補保持部６２を参照して、送信元が計算資源２０−８であり、かつ宛先が仮想マシン４０−１でないフローの経路を抽出する（Ｓ３０５）。
【０１０７】
以降のＳ３０６乃至Ｓ３１５は、図８に例示した第１の実施形態の更新手順計算部６４の動作例であるＳ１０５乃至Ｓ１１４と同様であるので、詳細な説明は省略される。
【０１０８】
上記のとおり、本発明の第２の実施形態では、空き計算資源にＢｌｕｅスライスを作成し、仮想マシン４０に流入するフローの宛先を切り替える動作を繰り返すことで、仮想マシン４０の更新を、通信およびサービスの継続状態を維持して行うことが可能である。
【０１０９】
また、本発明の第２の実施形態では、新たに空き計算資源となった計算資源２０に、新たなＢｌｕｅスライスを作成し、仮想マシン４０に流入するフローの宛先を切り替える動作を繰り返す。これにより、更新対象の仮想マシン４０と同数の計算資源２０を持っておく必要がなくなり、余剰資源を抑えることが可能になる。
【０１１０】
本発明の第２の実施形態では、運用装置６０自身が、ネットワークのトポロジ情報およびフロー情報を参照することで、フローに対する経路候補を算出する。これにより、ユーザが事前に経路候補を設定する必要がなくなり、仮想マシン４０の更新作業を簡素化することが可能である。
【０１１１】
以上、本発明の第２の実施形態において、更新対象の仮想マシン４０に１つのフローが流入する場合を例に説明したが、複数のフローが流入している状況でも本発明は適用可能である。更新対象の仮想マシン４０に複数のフローが流入する場合には、流入する全てのフローに対して、要件を満たすような経路候補および移動先候補を用いる。
【０１１２】
［第３の実施の形態］
［構成の説明］
本願発明の第３の実施形態を、図面を参照して詳細に説明する。なお、第３の実施形態の技術は、第１の実施形態、第２の実施形態、後述の実施形態のいずれにも適用可能である。
【０１１３】
第３の実施形態の通信システムの構成例は、図１に例示する第１の実施形態の通信システムの構成例と同様であるため、詳細な説明は省略される。
【０１１４】
図１５は、本発明の第３の実施形態における、運用装置６０の構成例を示す図である。
【０１１５】
本発明の第３の実施形態における運用装置６０は、本発明の第１の実施形態における通信ネットワークを管理する。運用装置６０は、更新手順計算部６４と、更新実行部６５とを含む。
【０１１６】
なお、図１５の構成要素６４から６５を繋ぐ実線は論理的な通信ないし呼び出し可能な関係を示したものであり、本発明が構成要素６４から６５の実装は、この形状で接続されている構成やネットワークに限定されるものではない。
【０１１７】
更新手順計算部６４は、仮想マシン４０の更新手順を計算する。
【０１１８】
更新手順計算部６４は、例えば、更新作業の対象となる個々の仮想マシン４０に対して、更新作業の対象となる仮想マシン４０に流入するフローの通信要件が満たされる計算資源２０を、移動先候補として検討する。
【０１１９】
例えば、更新手順計算部６４は、更新対象となる個々の仮想マシン４０に流入するフローの有無を確認する。更新対象の仮想マシン４０に流入するフローが存在する場合、更新手順計算部６４は、該フローと送信元が同じで、かつ該更新対象の仮想マシン４０とは異なる宛先を、移動先候補として抽出する。
【０１２０】
更新手順計算部６４は、例えば、更新対象の仮想マシン４０に流入するフローの送信元から移動先候補への経路のうち、通信要件が満たされる経路を抽出し、集合Ｃとする。例えば、更新手順計算部６４は、更新対象の仮想マシン４０に流入するフローの遅延上限値と、抽出した経路候補の遅延を比較して、該遅延上限値を超えない経路を経路候補として抽出し、集合Ｃとする。
【０１２１】
更新手順計算部６４は、例えば、Ｂｌｕｅ−Ｇｒｅｅｎ  Ｄｅｐｌｏｙｍｅｎｔやその類似手段で仮想マシン４０を更新する場合、ＧｒｅｅｎスライスとＢｌｕｅスライスの間でデータや状態の同期が必要なため、同期が可能な通信要件の経路候補を抽出し、集合Ｃとする。
【０１２２】
更新手順計算部６４は、例えば、仮想マシン４０を起動していない計算資源２０（空き計算資源）を始点として、更新対象である仮想マシン４０が存在する計算資源を全て通るような経路を計算する。更新手順計算部６４は、例えば、深さ優先探索法を用いて、空き資源を始点として、更新作業対象となる仮想マシン４０が存在する計算資源を全て通るような経路を計算する。ただし、更新対象である仮想マシン４０が存在する計算資源を全て通るような経路を計算する方法は、深さ優先探索法に限定されず、他の計算方法でもよい。
【０１２３】
なお、空き計算資源が複数箇所存在する場合、更新手順計算部６４は、例えば、経路計算の始点となるダミーノードを１つ設け、ダミーノードと各空き計算資源のノードをダミーリンクで接続し、ダミーノードを始点として前述の経路計算を行うとよい。更新手順計算部６４は、例えば、該経路計算の後に、経路からダミーノードおよびダミーリンクの部分を削除する。これにより、更新手順計算部６４は、各空き計算資源を始点として、更新対象の仮想マシン４０を通過する複数本の経路を算出できる。
【０１２４】
更新手順計算部６４は、算出した経路の逆の経路を、仮想マシンの更新手順として、更新実行部６５へ転送する。
【０１２５】
更新実行部６５は、更新手順計算部６４が計算した仮想マシンの更新手順に基づいて、仮想マシンの更新を実行する。
【０１２６】
更新実行部６５は、例えば、空き計算資源に更新対象の仮想マシン４０のＢｌｕｅスライスを作成する。更新実行部６５は、作成したＢｌｕｅスライスと、更新対象の仮想マシン４０の状態およびデータの同期を行う。
【０１２７】
更新実行部６５は、Ｂｌｕｅスライスと、更新対象の仮想マシン４０の同期を完了した後に、更新対象の仮想マシン４０に流入していたフローの宛先を、作成したＢｌｕｅスライスへ切り替える。更新実行部６５は、フローの送信元からＢｌｕｅスライスへの経路を、集合Ｃの中から選択する。更新実行部６５は、フローの送信元からＢｌｕｅスライスへの経路について、例えば、最短となる経路を選択してもよいし、最小コストとなる経路を選択してもよい。更新実行部６５は、例えば、フローの送信元からＢｌｕｅスライスへの経路として、複数の経路を選択し、マルチパスルーティングによりフローを収容しても構わない。
【０１２８】
なお、更新実行部６５は、更新対象の仮想マシン４０に流入していたフローの宛先を、作成したＢｌｕｅスライスへ切り替える前に、選択した経路候補の経路でフローの通信が可能であるように、ネットワークを制御する。このネットワークの制御は、運用装置６０の更新実行部６５が実行することに限られず、例えば、ＮＭＳや、ＯｐｅｎＦｌｏｗコントローラが集中的に行ってもよい。運用装置６０が、例えば、ＮＭＳやＯｐｅｎＦｌｏｗコントローラであってもよい。また、このネットワークの制御は、ＲＳＶＰなどを用いて、分散的に行ってもよい。
【０１２９】
更新実行部６５は、更新対象の仮想マシン４０に流入していたフローの宛先を、作成したＢｌｕｅスライスへ切り替えた後に、Ｂｌｕｅスライスが正常に動作していることを確認する。更新実行部６５は、Ｂｌｕｅスライスが正常に動作していることを確認した後、更新対象であった仮想マシン４０を削除する。
【０１３０】
更新実行部６５は、新たに空き計算資源となった計算資源２０を用いて、新たな更新対象の仮想マシン４０の更新を実行する。更新実行部６５は、例えば、新たな更新対象の仮想マシン４０の更新を実行する場合に、新たに設定するフローの経路は、前に存在していた仮想マシン４０が用いていたフローの経路と、同様の経路を設定してもよい。更新実行部６５は、例えば、前に存在していた仮想マシン４０が用いていたフローの経路を再設定できない場合には、その経路の情報を削除し、新たな経路を設定する。
【０１３１】
以上、本発明の第３の実施形態において、フローの送信元が単一の仮想マシン４０としていたが、個々のフローの送信元が異なる仮想マシン４０であっても構わない。また、本説明におけるフローの送信元が仮想マシン４０ではなく、外部ネットワーク７０であってもよい。フローの送信元が外部ネットワーク７０である場合の構成例は、図７に図示する第１の実施形態の構成例と同様であるため、詳細な説明は省略される。
【０１３２】
［動作の説明］
本発明の第３実施形態における運用装置６０の動作について、図１６を参照して説明する。以降の説明では、簡単のために、図１に記載の通信ネットワークの構成において、仮想マシン４０−１、４０−３、４０−５を更新する場合について説明する。
【０１３３】
図１６は、本発明の第３の実施形態における更新手順計算部６４の動作例を示すフローチャートである。
【０１３４】
更新手順計算部６４は、仮想マシン４０−１に対して流入するフローの有無を確認する（Ｓ４０１）。更新手順計算部６４は、仮想マシン４０−１に対して、計算資源２０−８から、フローＦ８０１が流入していることを確認する。
【０１３５】
更新手順計算部６４は、更新対象の仮想マシン４０に対して流入するフローが存在しない場合（Ｓ４０２のＮｏ）、更新対象の仮想マシン４０を宛先とするフローの経路を、集合Ｃへ追加する（Ｓ４０３）。仮想マシン４０−１は、この場合（Ｓ４０２のＮｏ）に該当しない。
【０１３６】
更新手順計算部６４は、仮想マシン４０−１に対して流入するフローが存在する場合（Ｓ４０２のＹｅｓ）、送信元が計算資源２０−８であり、かつ宛先が仮想マシン４０−１でないフローの経路を抽出する（Ｓ４０４）。
【０１３７】
更新手順計算部６４は、抽出したフローの経路の遅延を確認する（Ｓ４０５）。
【０１３８】
更新手順計算部６４は、抽出したフローの経路の遅延が、通信要件を満たしていない場合（Ｓ４０６のＮｏ）、該フローの経路を経路候補から外す（Ｓ４０７）。更新手順計算部６４は、抽出したフローの経路の遅延が、通信要件を満たしている場合に（Ｓ４０６のＹｅｓ）、該フローの経路を経路候補として集合Ｃへ追加する（Ｓ４０８）。
【０１３９】
更新手順計算部６４は、Ｓ４０１からＳ４０８の手順を繰り返し、更新対象である全ての仮想マシン４０の移動先候補を抽出する（Ｓ４０９）。
【０１４０】
更新手順計算部６４は、例えば、深さ優先探索法を用いて、空き計算資源を始点として、更新作業対象となる仮想マシン４０−１、４０−３、４０−５が存在する計算資源２０を全て通るような経路を計算する。更新手順計算部６４は、算出した経路と逆向きの経路を、更新手順として算出する（Ｓ４１０）。
【０１４１】
第３の実施形態の更新実行部６５の動作例は、図１１に例示する第１の実施形態の更新実行部６５の動作例と同様であるため、詳細な説明は省略される。
【０１４２】
上記のとおり、本発明の第３の実施形態では、空き計算資源にＢｌｕｅスライスを作成し、仮想マシン４０に流入するフローの宛先を切り替える動作を繰り返すことで、仮想マシン４０の更新を、通信およびサービスの継続状態を維持して行うことが可能である。
【０１４３】
また、本発明の第３の実施形態では、新たに空き計算資源となった計算資源２０に、新たなＢｌｕｅスライスを作成し、仮想マシン４０に流入するフローの宛先を切り替える動作を繰り返す。これにより、更新対象の仮想マシン４０と同数の計算資源２０を持っておく必要がなくなり、余剰資源を抑えることが可能になる。
【０１４４】
以上、本発明の第３の実施形態において、更新対象の仮想マシン４０に１つのフローが流入する場合を例に説明したが、複数のフローが流入している状況でも本発明は適用可能である。更新対象の仮想マシン４０に複数のフローが流入する場合には、流入する全てのフローに対して、要件を満たすような経路候補および移動先候補を用いる。
【０１４５】
以上、本発明の実施形態を説明したが、本発明は、上記したそれぞれの実施形態に限定されるものではない。本発明は、各実施形態の変形・置換・調整に基づいて実施できる。
また、本発明は、各実施形態を任意に組み合わせて実施することもできる。即ち、本発明は、本明細書の全ての開示内容、技術的思想に従って実現できる各種変形、修正を含む。
また、本発明は、ＳＤＮ（Ｓｏｆｔｗａｒｅ−Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）の技術分野にも適用可能である。
【０１４６】
また、本発明の実施形態において、運用装置のコンピュータ、ＣＰＵ又はＭＰＵ（Ｍｉｃｒｏ−Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等が、上述した各実施形態の機能を実現するソフトウェア（プログラム）を実行してもよい。運用装置のコンピュータ、ＣＰＵ又はＭＰＵ等は、例えばＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅｃｏｒｄａｂｌｅ）等の各種記憶媒体又はネットワークを介して、上述した各実施形態の機能を実現するソフトウェア（プログラム）を取得してもよい。運用装置が取得するプログラムや該プログラムを記憶した記憶媒体は、本発明を構成することになる。なお、該ソフトウェア（プログラム）は、例えば、運用装置に含まれる所定の記憶部に、予め記憶されていてもよい。運用装置のコンピュータ、ＣＰＵ又はＭＰＵ等は、取得したソフトウェア（プログラム）のプログラムコードを読み出して実行してもよい。
【０１４７】
以上、各実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１４８】
この出願は、２０１６年３月３０日に出願された日本出願特願２０１６−０６６９８０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【０１４９】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１５０】
［付記１］
仮想マシンを順番に更新するための更新手順を決定する更新手順計算手段と、
決定された前記更新手順に従って、複数の前記仮想マシンの更新を実行する更新実行手段と、を含み、
前記更新手順計算手段は、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出された更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定する
運用装置。
【０１５１】
［付記２］
前記更新手順計算手段は、前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
付記１に記載の運用装置。
【０１５２】
［付記３］
前記更新手順計算手段は、複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
付記１又は２に記載の運用装置。
【０１５３】
［付記４］
前記更新手順計算手段は、前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
付記３に記載の運用装置。
【０１５４】
［付記５］
前記更新手順計算手段は、前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
付記３又は４に記載の運用装置。
【０１５５】
［付記６］
前記更新手順計算手段は、
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
付記３乃至５のいずれかに記載の運用装置。
【０１５６】
［付記７］
仮想マシンが構成される計算資源と、
前記仮想マシンの更新を指示する運用装置と、を含み、
前記運用装置は、
複数の前記仮想マシンを順番に更新するための更新手順を決定する更新手順計算手段と、
決定された前記更新手順に従って、複数の前記仮想マシンの更新を実行する更新実行手段と、を含み、
前記更新手順計算手段は、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出した更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定する
通信システム。
【０１５７】
［付記８］ 
前記更新手順計算手段は、前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
付記７に記載の通信システム。
【０１５８】
［付記９］
前記更新手順計算手段は、複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
付記７又は８に記載の通信システム。
【０１５９】
［付記１０］
前記更新手順計算手段は、前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
付記９に記載の通信システム。
【０１６０】
［付記１１］
前記更新手順計算手段は、前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
付記９又は１０に記載の通信システム。
【０１６１】
［付記１２］
前記更新手順計算手段は、
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
付記９乃至１１のいずれかに記載の通信システム。
【０１６２】
［付記１３］
仮想マシンを順番に更新するための更新方法であって、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出された更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定し、
決定された前記更新の順番に従って、複数の前記仮想マシンの更新を実行する
ことを含む更新方法。
【０１６３】
［付記１４］
前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
ことをさらに含む付記１３に記載の更新方法。
【０１６４】
［付記１５］
複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
ことをさらに含む付記１３又は１４に記載の更新方法。
【０１６５】
［付記１６］ 
前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む付記１５に記載の更新方法。
【０１６６】
［付記１７］
前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む付記１５又は１６に記載の更新方法。
【０１６７】
［付記１８］
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
ことをさらに含む付記１５乃至１７のいずれかに記載の更新方法。
【０１６８】
［付記１９］
仮想マシンを順番に更新するための更新方法であって、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出した更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定し、
決定された前記更新の順番に従って、複数の前記仮想マシンの更新を実行する
ことを含む更新方法。
【０１６９】
［付記２０］
前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
ことをさらに含む付記１９に記載の更新方法。
【０１７０】
［付記２１］
複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
ことをさらに含む付記１９又は２０に記載の更新方法。
【０１７１】
［付記２２］ 
前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む付記２１に記載の更新方法。
【０１７２】
［付記２３］
前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む付記２１又は２２に記載の更新方法。
【０１７３】
［付記２４］
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
ことをさらに含む付記２１乃至２３のいずれかに記載の更新方法。
【符号の説明】
【０１７４】
１０  ノード
２０  計算資源
３０  ノード間リンク
４０  仮想マシン
５０  計算資源用リンク
６０  運用装置
６１  トポロジ情報保持部
６１１  ネットワークトポロジ管理テーブル
６２  経路候補保持部
６２１  通信経路候補上ノードテーブル
６２２  通信経路候補上リンクテーブル
６３  フロー情報保持部
６３１  フロー情報テーブル
６４  更新手順計算部
６５  更新実行部
６６  経路計算部
７０  外部ネットワーク
【図１】
2017169947.tif 000003
【図２】
2017169947.tif 000004
【図３】
2017169947.tif 000005
【図４】
2017169947.tif 000006
【図５】
2017169947.tif 000007
【図６】
2017169947.tif 000008
【図７】
2017169947.tif 000009
【図８】
2017169947.tif 000010
【図９】
2017169947.tif 000011
【図１０】
2017169947.tif 000012
【図１１】
2017169947.tif 000013
【図１２】
2017169947.tif 000014
【図１３】
2017169947.tif 000015
【図１４】
2017169947.tif 000016
【図１５】
2017169947.tif 000017
【図１６】
2017169947.tif 000018
【国際調査報告】
2017169947.tif 000019
2017169947.tif 000020