JPWO2017169947A1 - 運用装置、通信システムおよび更新方法 - Google Patents

運用装置、通信システムおよび更新方法 Download PDF

Info

Publication number
JPWO2017169947A1
JPWO2017169947A1 JP2018509070A JP2018509070A JPWO2017169947A1 JP WO2017169947 A1 JPWO2017169947 A1 JP WO2017169947A1 JP 2018509070 A JP2018509070 A JP 2018509070A JP 2018509070 A JP2018509070 A JP 2018509070A JP WO2017169947 A1 JPWO2017169947 A1 JP WO2017169947A1
Authority
JP
Japan
Prior art keywords
update
calculation
virtual machine
destination
resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018509070A
Other languages
English (en)
Inventor
晋哉 石田
晋哉 石田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2017169947A1 publication Critical patent/JPWO2017169947A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Abstract

本発明は、仮想マシンの更新を行う際に、余剰資源を抑えつつ、求められる遅延や帯域の条件を満たすことが可能な運用装置等を提供する。本発明の一態様における運用装置は、複数の仮想マシンを順番に更新するための更新手順を決定する更新手順計算部と、前記決定した更新手順に従って、前記複数の仮想マシンの更新を実行する更新実行部と、を含み、前記更新手順計算部は、前記複数の仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、抽出した更新先の計算資源の候補に基づいて、当該複数の仮想マシンそれぞれの更新先の計算資源と、前記複数の仮想マシンの更新の順番とを決定する。

Description

本発明は、運用装置、通信システム、および更新方法に関する。
クラウド技術の進展に伴い、アプリケーションプログラムを仮想マシン上で実行することが一般的になっている。アプリケーションプログラムを実行するユーザは、仮想マシンを用いることで、必要なときに必要なだけのマシンを稼動でき、余剰資源を最小限にすることができる。また、仮想マシンであるため、ユーザは実際に機器を所有する必要がなく、またそれが配置されている物理的な場所を意識する必要がない等の利点がある。
非特許文献1には、地理的に分散したデータセンタを広域網が提供する専用線などで接続する技術が開示されている。非特許文献1に記載の技術では、データセンタを専用線などで接続し、一つのクラウドとして用いることで、モバイルユーザに対して、更に柔軟かつ幅広いサービスの提供が可能になる。
一方、仮想マシンであっても、バグやセキュリティ問題を解決するためには、物理マシン同様に、内部のソフトウェアをメンテナンスする必要がある。非特許文献2には、仮想マシン上のサーバの更新方法として、Blue−Green Deploymentが開示されている。Blue−Green Deploymentでは、まず、Webなどのネットワークアプリケーションを動かす仮想マシン(Greenスライス)の他に、所望の更新を行った別の仮想マシン(Blueスライス)を設ける。Blueスライスは、BlueスライスのデータをGreenスライスのデータと同期させる。同期が終了後、Greenスライスにトラヒックを転送しているルータにおいて、トラヒックの転送先を、GreenスライスからBlueスライスに切り替える。これにより、論理的にサービスを停止することなく、ソフトウェアの更新を行うことが可能になる。また、トラヒックの転送先をGreenスライスからBlueスライスに切り替えた後、Greenスライスが使用している資源は、次の更新に用いることが可能である。
Tarik Taleb,"Toward Carrier Cloud:Potential, Challenges, and Solutions,"IEEE Wireless Communications, vol.21, no.3, June 2014,PP.80−91 Ken Collier"Agile Analytics"Addison−Wesley,July 2011,pp.169−170
上述したように、非特許文献1には、新規の仮想マシンを作成する際に、最良の配置場所を決定するための手段が示されている。非特許文献1に記載の技術では、新規の仮想マシンが通信しうる既設の仮想マシンとの間の遅延や帯域をネットワーク距離として用い、既設の仮想マシンとのネットワーク距離の和が最小となる所に、新規の仮想マシンを作成する。
しかしながら、ネットワーク距離が最小であっても、遅延や帯域量等に関して、所望の性能が満たされない恐れがある。
また、非特許文献2に記載のBlue−Green Deploymentを適用するためには、1つのサーバに対し2つの仮想マシンを起動するため、2倍の計算資源を要する。多数の仮想マシンに対して更新作業が必要な場合、仮想マシンと同数の計算資源を余剰資源として配置する必要があり、多大なコストが生じる。とりわけ、複数の分散データセンタを1つのクラウド環境とする場合、局舎の大きさ、電力の供給力、資材コスト等の観点から、余剰の計算資源が潤沢にあると考えるのは現実的ではない。
また、クラウド環境においても、アプリケーションプログラムが所望の性能を達成するための設計は必要となる。Blue−Green Deploymentにより、サーバの接続性を維持したままソフトウェアの更新を行うことが可能であったとしても、Blueスライスの場所によっては、求められる遅延や帯域の条件が満たされない可能性がある。
そこで、本発明の目的は、上述した課題に鑑み、仮想マシンの更新を行う際に、余剰資源を抑えつつ、求められる遅延や帯域の条件を満たすことが可能な運用装置等を提供することにある。
本発明の一態様における運用装置は、複数の仮想マシンを順番に更新するための更新手順を決定する更新手順計算部と、前記決定した更新手順に従って、前記複数の仮想マシンの更新を実行する更新実行部と、を含み、前記更新手順計算部は、前記複数の仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、抽出した更新先の計算資源の候補に基づいて、当該複数の仮想マシンそれぞれの更新先の計算資源と、前記複数の仮想マシンの更新の順番とを決定することを特徴とする。
本発明の一態様における通信システムは、仮想マシンが構成される計算資源と、前記仮想マシンの更新を指示する運用装置と、を含み、前記運用装置は、複数の仮想マシンを順番に更新するための更新手順を決定する更新手順計算部と、前記決定した更新手順に従って、前記複数の仮想マシンの更新を実行する更新実行部と、を含み、前記更新手順計算部は、前記複数の仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、抽出した更新先の計算資源の候補に基づいて、当該複数の仮想マシンそれぞれの更新先の計算資源と、前記複数の仮想マシンの更新の順番とを決定することを特徴とする。
本発明の一態様における更新方法は、複数の仮想マシンを順番に更新するための更新方法であって、複数の仮想マシンそれぞれに対して更新先の計算資源の候補を抽出するステップと、抽出した更新先の計算資源の候補に基づいて、当該複数の仮想マシンそれぞれの更新先の計算資源と、前記複数の仮想マシンの更新の順番とを決定するステップと、前記決定した更新手順に従って、前記複数の仮想マシンの更新を実行するステップと、を含むことを特徴とする更新方法。
本発明の一形態における運用装置等は、仮想マシンの更新を行う際に、余剰資源を抑えつつ、求められる遅延や帯域の条件を満たすことが可能となる。
本発明の第1の実施形態の通信ネットワーク構成例である。 本発明の第1の実施形態の運用装置60の構成例である。 本発明の第1の実施形態のトポロジ情報保持部61の保持するネットワークトポロジ管理テーブル611の構成例である。 本発明の第1の実施形態の経路候補保持部62の保持する通信経路候補上ノードテーブル621の構成例である。 本発明の第1の実施形態の経路候補保持部62の保持する通信経路候補上リンクテーブル622の構成例である。 本発明の第1の実施形態のフロー情報保持部63の保持するフローの情報の構成例である。 本発明の第1の実施形態の異なる通信ネットワーク構成例である。 本発明の第1の実施形態の更新手順計算部64の動作例を示すフローチャートである。 本発明の第1の実施形態の仮想マシン40の移動候補先を示す図である。 本発明の第1の実施形態の仮想マシン40の更新手順を示す図である。 本発明の第1の実施形態の更新実行部65の動作例を示すフローチャートである。 本発明の第2の実施形態の運用装置60の構成例である。 本発明の第2の実施形態の異なる運用装置60の構成例である。 本発明の第2の実施形態の更新手順計算部64の動作例を示すフローチャートである。 本発明の第3の実施形態の運用装置60の構成例である。 本発明の第3の実施形態の運用装置60の動作例を示すフローチャートである。
以下、本発明の実施形態について、図面を参照して説明する。各実施形態は、例示であり、本発明は各実施形態に限定されるものではない。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
[第1の実施の形態]
[構成の説明]
本発明の第1の実施形態を、図面を参照して詳細に説明する。
図1は、本発明の第1の実施形態における通信ネットワーク構成例である。
本発明の第1の実施形態における通信ネットワークは、ノード10と、計算資源20と、ノード間リンク30と、仮想マシン40と、計算資源用リンク50とを含む。例えば、ノード10は、ノード10−1乃至ノード10−8である。ハイフン“−”とその後の符号(1、2、…)は、説明の便宜上、省略される場合がある。
なお、図1の構成要素10から50を繋ぐ実線は論理的な通信ないし呼び出し可能な関係を示したものであり、構成要素10から50の実装形態は、この形状で接続されている構成やネットワークに限定されるものではない。また、通信ネットワークは、図1の構成例に限られず、例えば、より多くのノード10やノード間リンク30を有してもよく、接続が異なっていてもよい。
ノード10は、例えば、物理的もしくは仮想的なスイッチやルータである。各ノード10は、例えば、データの転送の中継や制御を行う。ノード10間は、ノード間リンク30を介して接続されている。ノード間リンク30は、物理的であっても、仮想的なリンクであってもよい。
計算資源20は、ノード10(ネットワーク)と、計算資源用リンク50とを介して接続している。計算資源用リンク50は、物理的であっても、仮想的なリンクであってもよい。計算資源20は、例えば、CPU(Central Processing Unit)、RAM(Random Access Memory)、ハードディスクから構成される。
仮想マシン40は、計算資源20を用いて配置される。仮想マシン40は、計算資源用リンク50と、ノード間リンク30とを介して、仮想マシン40間で通信を行う。
図2は、本発明の第1の実施形態における運用装置60の構成例である。
本発明の第1の実施形態における運用装置60は、本発明の第1の実施形態における通信ネットワークを管理する。運用装置60は、トポロジ情報保持部61と、経路候補保持部62と、フロー情報保持部63と、更新手順計算部64と、更新実行部65とを含む。
なお、図2の構成要素61から65を繋ぐ実線は論理的な通信ないし呼び出し可能な関係を示したものであり、本発明が構成要素61から65の実装は、この形状で接続されている構成やネットワークに限定されるものではない。
また、以下の説明においては、簡単のために、各ノード間リンク30および各計算資源用リンク50の遅延時間はいずれも1とするが、本発明を適用するネットワークにおけるリンクの遅延時間はそれぞれ異なっていても構わない。以下の説明においては、簡単のために、ノード内の遅延は0とするが、ノード内の遅延を計測する、あるいは仮想マシン間の通信遅延時間を計測するなどすれば、ノード内の遅延時間も考慮が可能である。
以下の説明においては、簡単のために、図1の通信ネットワークにおいて、仮想マシン40−1、40−3、40−5のソフトを更新したい場合を例にする。
トポロジ情報保持部61は、通信ネットワーク内のノード10と、計算資源20と、ノード間リンク30と、計算資源用リンク50との接続関係(トポロジ)に関する情報を保持する。
図3は、本発明の第1の実施形態において、トポロジ情報保持部61の保持する、ネットワークトポロジ管理テーブル611の構成例である。例えば、ネットワークトポロジ管理テーブル611を参照すると、計算資源用リンク50−1には、ノード10−1と、計算資源20−1が接続されている。トポロジ情報保持部61に格納する情報は、リンクID(IDentifier)や当該通信リンクが接続しているノード10のIDに限定されず、例えば、リンクの名称やIP(Internet Protocol)アドレス、MAC(Media Access Control)アドレス、TCP(Transmission Control Protocol)アドレスやシリアル番号、IPアドレスを参照するURL(Uniform Resource Locator)を格納してもよい。
経路候補保持部62は、トポロジ情報保持部61の保持する通信ネットワークのトポロジ上に存在する、計算資源20間の通信経路の候補情報を保持する。経路候補保持部62は、トポロジ情報保持部61に記録されているトポロジにおいて、仮想マシン40が配置されうる計算資源20間の通信経路の候補を、一つあるいは複数保持する。
図4は、本発明の第1の実施形態において、経路候補保持部62の保持する、通信経路候補上ノードテーブル621の構成例である。例えば、計算資源20−3から計算資源20−5へデータを転送する場合の経路候補は、通信経路候補上ノードテーブル621を参照すると、2通り存在することが分かる。計算資源20−3から計算資源20−5へデータを転送する経路候補1は、ノード10−3、ノード10−4、ノード10−5を通る。計算資源20−3から計算資源20−5へデータを転送する経路候補2は、ノード10−3、ノード10−6、ノード10−5を通る。
図5は、本発明の第1の実施形態において、経路候補保持部62の保持する、通信経路候補上リンクテーブル622の構成例である。例えば、計算資源20−1から計算資源20−3へデータを転送する場合の経路候補は、通信経路候補上リンクテーブル622を参照すると、2通り存在することが分かる。計算資源20−1から計算資源20−3へデータを転送する経路候補1は、計算資源用リンク50−1、ノード間リンク30−1、ノード間リンク30−2、計算資源用リンク50−3を通る。計算資源20−1から計算資源20−3へデータを転送する経路候補2は、計算資源用リンク50−1、ノード間リンク30−8、ノード間リンク30−7、ノード間リンク30−6、ノード間リンク30−10、計算資源用リンク50−3を通る。
経路候補保持部62は、図4の通信経路候補上ノードテーブル621のように、経路を経由するノードで記載したテーブルを保持してもよい。図5の通信経路候補上リンクテーブル622のように、経路を経由するリンクで記載したテーブルを保持してもよいし、両方を合わせた形で保持してもよい。例えば、ノード10間にノード間リンク30が1本しかない場合や、ノード間リンク30を区別する必要のない場合には、図4の通信経路候補上ノードテーブル621のみ保持してもよい。
経路候補保持部62の保持する情報は、図4の通信経路候補上ノードテーブル621と、図5の通信経路候補上リンクテーブル622とに記載の形態に限定しない。例えば、図4の通信経路候補上ノードテーブル621に、経由するノードの名称を記載しているが、ノード10のIPアドレスやMACアドレス、あるいはそのようなアドレスを特定するためのラベル等の識別子でも構わない。また、通信経路候補上ノードテーブル621と、通信経路候補上リンクテーブル622に記載の経路候補は2通りであるが、通信経路候補上ノードテーブル621と、通信経路候補上リンクテーブル622は、例えば、経路候補を1通り以上の任意の数を保持していればよい。
フロー情報保持部63は、トポロジ情報保持部61の保持するネットワークのトポロジ上に存在するフローの情報を保持する。フロー情報保持部63は、例えば、フローに関して、送信元、宛先、要求帯域、遅延上限値など、要求される通信品質を特定するための情報を保持する。
図6は、本発明の第1の実施形態において、フロー情報保持部63の保持するフロー情報テーブル631の構成例である。例えば、フローF801は、仮想マシン40−8から送信され、仮想マシン40−1へ転送される。仮想マシン40−8から仮想マシン40−1へ転送される間、要求帯域は1、遅延上限値は5までである。
フロー情報保持部63の保持する情報は、図6のフロー情報テーブル631に記載の形態に限定しない。例えば、図6のフロー情報テーブル631に、仮想マシン40の名称を記載しているが、仮想マシン40のIPアドレスやMACアドレス、ポート番号など、通信フローを特定するために用いられるパケット情報や、その組み合わせを用いてもよい。あるいは、図6のフロー情報テーブル631に、通信フローを特定するための情報を参照する名前、ラベル等の識別子を記載してもよい。通信フローを特定するための情報を参照する場合、通信フローを特定するための情報は、識別子をキーとして参照できる形で図6のフロー情報テーブル631とは別のテーブルないしマップ等に記録される。
フロー情報保持部63の保持する情報は、双方向リンクであっても、単方向リンクを含んでいてもよい。フロー情報保持部63の保持する情報が単方向リンクを含んでいる場合、経路候補保持部62の保持する情報は、単方向リンクの順方向のみに適用できる。フロー情報保持部63の保持する情報は、双方向リンクを逆向きの単方向リンクの一対で表現した場合でも同様に、単方向リンクの順方向のみに適用できる。フロー情報保持部63の保持する情報は、双方向リンクを逆向きの単方向リンクの一対で表現した場合、リンクの識別子はそれぞれの単方向リンクが区別できるように付与される。
なお、トポロジ情報保持部61と、経路候補保持部62と、フロー情報保持部63とが保持する通信ネットワークの情報は、例えば、NMS(Network Management System)、OSS(Operation Support System)、外部データファイルから自動ないし手動で入力される。
更新手順計算部64は、トポロジ情報保持部61と、経路候補保持部62と、フロー情報保持部63とが保持する情報を参照し、仮想マシン40の更新手順を計算する。
更新手順計算部64は、例えば、更新作業の対象となる個々の仮想マシン40に対して、更新作業の対象となる仮想マシン40に流入するフローの通信要件が満たされる計算資源20を、移動先候補として検討する。
例えば、更新手順計算部64は、フロー情報保持部63を参照して、更新対象となる個々の仮想マシン40に流入するフローの有無を確認する。更新対象の仮想マシン40に流入するフローが存在する場合、更新手順計算部64は、経路候補保持部62を参照し、該フローと送信元が同じで、かつ該更新対象の仮想マシン40とは異なる宛先を、移動先候補として抽出する。なお、更新手順計算部64は、経路候補保持部62だけでなく、フロー情報保持部63を参照して、該フローと送信元が同じで、かつ該更新対象の仮想マシン40とは異なる宛先を、移動先候補として抽出してもよい。
更新手順計算部64は、例えば、経路候補保持部62やフロー情報保持部63を参照して、更新対象の仮想マシン40に流入するフローの送信元から移動先候補への経路のうち、通信要件が満たされる経路を抽出し、集合Cとする。例えば、更新手順計算部64は、更新対象の仮想マシン40に流入するフローの遅延上限値と、経路候補保持部62から抽出した経路候補の遅延を比較して、該遅延上限値を超えない経路を経路候補として抽出し、集合Cとする。
更新手順計算部64は、例えば、Blue−Green Deploymentやその類似手段で仮想マシン40を更新する場合、GreenスライスとBlueスライスの間でデータや状態の同期が必要なため、同期が可能な通信要件の経路候補を抽出し、集合Cとする。
更新手順計算部64は、例えば、仮想マシン40を起動していない計算資源20(空き計算資源)を始点として、更新対象である仮想マシン40が存在する計算資源を全て通るような経路を計算する。更新手順計算部64は、例えば、深さ優先探索法を用いて、空き資源を始点として、更新作業対象となる仮想マシン40が存在する計算資源を全て通るような経路を計算する。ただし、更新対象である仮想マシン40が存在する計算資源を全て通るような経路を計算する方法は、深さ優先探索法に限定されず、他の計算方法でもよい。
なお、空き計算資源が複数箇所存在する場合、更新手順計算部64は、例えば、経路計算の始点となるダミーノードを1つ設け、ダミーノードと各空き計算資源のノードをダミーリンクで接続し、ダミーノードを始点として前述の経路計算を行うとよい。更新手順計算部64は、例えば、該経路計算の後に、経路からダミーノードおよびダミーリンクの部分を削除する。これにより、更新手順計算部64は、各空き計算資源を始点として、更新対象の仮想マシン40を通過する複数本の経路を算出できる。
更新手順計算部64は、算出した経路の逆の経路を、仮想マシンの更新手順として、更新実行部65へ転送する。
更新実行部65は、更新手順計算部64が計算した仮想マシンの更新手順に基づいて、仮想マシンの更新を実行する。
更新実行部65は、例えば、空き計算資源に更新対象の仮想マシン40のBlueスライスを作成する。更新実行部65は、作成したBlueスライスと、更新対象の仮想マシン40の状態およびデータの同期を行う。
更新実行部65は、Blueスライスと、更新対象の仮想マシン40の同期を完了した後に、更新対象の仮想マシン40に流入していたフローの宛先を、作成したBlueスライスへ切り替える。更新実行部65は、フローの送信元からBlueスライスへの経路を、集合Cの中から選択する。更新実行部65は、フローの送信元からBlueスライスへの経路について、例えば、最短となる経路を選択してもよいし、最小コストとなる経路を選択してもよい。更新実行部65は、例えば、フローの送信元からBlueスライスへの経路として、複数の経路を選択し、マルチパスルーティングによりフローを収容しても構わない。
なお、更新実行部65は、更新対象の仮想マシン40に流入していたフローの宛先を、作成したBlueスライスへ切り替える前に、選択した経路候補の経路でフローの通信が可能であるように、ネットワークを制御する。このネットワークの制御は、運用装置60の更新実行部65が実行することに限られず、例えば、NMSや、OpenFlowコントローラが集中的に行ってもよい。運用装置60が、例えば、NMSやOpenFlowコントローラであってもよい。また、このネットワークの制御は、RSVP(Resource reSerVation Protocol)などを用いて、分散的に行ってもよい。
更新実行部65は、更新対象の仮想マシン40に流入していたフローの宛先を、作成したBlueスライスへ切り替えた後に、Blueスライスが正常に動作していることを確認する。更新実行部65は、Blueスライスが正常に動作していることを確認した後、更新対象であった仮想マシン40を削除する。
更新実行部65は、新たに空き計算資源となった計算資源20を用いて、新たな更新対象の仮想マシン40の更新を実行する。更新実行部65は、例えば、新たな更新対象の仮想マシン40の更新を実行する場合に、新たに設定するフローの経路は、前に存在していた仮想マシン40が用いていたフローの経路と、同様の経路を設定してもよい。更新実行部65は、例えば、前に存在していた仮想マシン40が用いていたフローの経路を再設定できない場合には、その経路の情報を削除し、新たな経路を設定する。
以上、本発明の第1の実施形態において、フローの送信元が単一の仮想マシン40としていたが、個々のフローの送信元が異なる仮想マシン40であっても構わない。また、本説明におけるフローの送信元が仮想マシン40ではなく、外部ネットワーク70であってもよい。
図7は、本発明の第1の実施形態における、異なる通信ネットワーク構成例である。図7の通信ネットワークにおいて、ノード10−8は、計算資源用リンク50−8を介して、外部ネットワーク70と接続している。外部ネットワーク70とは、例えば、物理的もしくは仮想的なスイッチないしルータである。
送信元が外部ネットワーク70である場合、外部ネットワーク70からフローが流入するノード10−8が、フローの宛先を切り替えられる。
[動作の説明]
本発明の第1実施形態における運用装置60の動作について、図8を参照して説明する。以降の説明では、簡単のために、図1に記載の通信ネットワークの構成において、仮想マシン40−1、40−3、40−5を更新する場合について説明する。
図8は、本発明の第1の実施形態における更新手順計算部64の動作例を示すフローチャートである。
更新手順計算部64は、仮想マシン40−1に対して流入するフローの有無を確認する(S101)。更新手順計算部64は、フロー情報保持部63の保持するフロー情報を参照して、仮想マシン40−1に対して、計算資源20−8から、フローF801が流入していることを確認する。
更新手順計算部64は、更新対象の仮想マシン40に対して流入するフローが存在しない場合(S102のNo)、経路候補保持部62を参照して、更新対象の仮想マシン40を宛先とするフローの経路を、集合Cへ追加する(S103)。仮想マシン40−1は、この場合(S102のNo)に該当しない。
更新手順計算部64は、仮想マシン40−1に対して流入するフローが存在する場合(S102のYes)、経路候補保持部62を参照して、送信元が計算資源20−8であり、かつ宛先が仮想マシン40−1でないフローの経路を抽出する(S104)。
例えば、更新手順計算部64は、通信経路候補上ノードテーブル621を参照して、送信元が計算資源20−8であり、かつ宛先が仮想マシン40−1でないフローの経路として、6通りの経路を抽出する。更新手順計算部64が抽出した経路は、[10−8、10−1、10−2、10−3]、[10−8、10−7、10−6、10−3]、[10−8、10−1、10−2、10−3、10−6、10−5]、[10−8、10−7、10−6、10−5]、[10−8、10−7]、[10−8、10−1、10−2、10−7]の6通りである。なお、更新手順計算部64は、通信経路候補上リンクテーブル622を参照して、送信元が計算資源20−8であり、かつ宛先が仮想マシン40−1でないフローの経路を抽出してもよい。
更新手順計算部64は、抽出したフローの経路の遅延を確認する(S105)。
更新手順計算部64は、抽出したフローの経路の遅延が、元々更新対象の仮想マシン40へ流入していたフローの遅延上限値より大きい場合(S106のNo)、該フローの経路を経路候補から外す(S107)。更新手順計算部64は、抽出したフローの経路の遅延が、元々更新対象の仮想マシン40へ流入していたフローの遅延上限値以内である場合に(S106のYes)、該フローの経路を経路候補として集合Cへ追加する(S108)。
例えば、更新手順計算部64は、抽出した6通りの経路のうち、仮想マシン40−1に対して計算資源20−8から流入していたフローF801の遅延上限値以内であるフローの経路を抽出する。フローF801の遅延上限値は5であるため、更新手順計算部64は、遅延が7である[10−8、10−1、10−2、10−3、10−6、10−5]を除いた、5通りの経路を抽出する。これにより、更新手順計算部64は、仮想マシン40−1の移動先候補として、計算資源20−3、20−5、20−7を抽出する。
例えば、更新手順計算部64は、Blue−Green Deploymentの場合、同期を完了させるための特定の通信要件と、集合Cの経路とを比較する(S109)。例えば、本発明の第1の実施形態において、いずれの仮想マシン40の更新においても、仮想マシン40の同期は、仮想マシン40間の遅延が4以下ならば可能であるとする。更新手順計算部64は、抽出した5つの経路候補のうち、仮想マシン40−1との間の遅延が4以下でない場合(S110のNo)には、集合Cから該フローの経路を除外する(S111)。更新手順計算部64は、抽出した5つの経路候補のうち、仮想マシン40−1との間の遅延が4以下である場合(S110のYes)には、集合Cに経路候補として残しておく(S112)。
更新手順計算部64は、S101からS112の手順により、仮想マシン40−1の移動先候補として、計算資源20−3、20−7を抽出する(S113)。
更新手順計算部64は、S101からS112の手順を繰り返し、更新対象である全ての仮想マシン40の移動先候補を抽出する。図9は、本発明の第1の実施形態における、仮想マシン40の移動先候補を示す図である。例えば、仮想マシン40−3は、計算資源20−1、20−5、20−7を移動先候補とする。仮想マシン40−5は、計算資源20−3、20−7を移動先候補とする。
更新手順計算部64は、例えば、深さ優先探索法を用いて、空き計算資源である計算資源20−7を始点として、更新作業対象となる仮想マシン40−1、40−3、40−5が存在する計算資源20を全て通るような経路を計算する。更新手順計算部64は、算出した経路と逆向きの経路を、更新手順として算出する(S114)。図10は、本発明の第1の実施形態における、仮想マシン40の更新手順を示す図である。例えば、図10において、仮想マシン40は、仮想マシン40−1,40−3,40−5の順に更新される。
図11は、本発明の第1の実施形態における更新実行部65の動作例を示すフローチャートである。
更新実行部65は、空き計算資源である計算資源20−7に、仮想マシン40−1のBlueスライスを作成する(S201)。
更新実行部65は、作成した仮想マシン40−1のBlueスライスと、仮想マシン40−1の状態およびデータを同期する(S202)。
更新実行部65は、作成した仮想マシン40−1のBlueスライスと、仮想マシン40−1の状態およびデータの同期を完了した後、仮想マシン40−1に流入しているフローF801の宛先を、作成したBlueスライスへ切り替える(S203)。
更新実行部65は、作成したBlueスライスが仮想マシン40−1として正常に動作していることを確認した後に、計算資源20−1に存在する仮想マシン40−1を削除する(S204)。
更新実行部65は、新たに空き資源となった計算資源20−1を用いて、仮想マシン40−3の更新を行う。更新実行部65は、S201からS204の手順を繰り返し、更新対象である全ての仮想マシン40を更新する。
上記のとおり、本発明の第1の実施形態では、空き計算資源にBlueスライスを作成し、仮想マシン40に流入するフローの宛先を切り替える動作を繰り返すことで、仮想マシン40の更新を、通信およびサービスの継続状態を維持して行うことが可能である。
また、本発明の第1の実施形態では、新たに空き計算資源となった計算資源20に、新たなBlueスライスを作成し、仮想マシン40に流入するフローの宛先を切り替える動作を繰り返す。これにより、更新対象の仮想マシン40と同数の計算資源20を持っておく必要がなくなり、余剰資源を抑えることが可能になる。
以上、本発明の第1の実施形態において、更新対象の仮想マシン40に1つのフローが流入する場合を例に説明したが、複数のフローが流入している状況でも本発明は適用可能である。更新対象の仮想マシン40に複数のフローが流入する場合には、流入する全てのフローに対して、要件を満たすような経路候補および移動先候補を用いる。
[第2の実施の形態]
[構成の説明]
本願発明の第2の実施形態を、図面を参照して詳細に説明する。なお、第2の実施形態の技術は、第1の実施形態、後述の実施形態のいずれにも適用可能である。
第2の実施形態の通信システムの構成例は、図1に例示する第1の実施形態の通信システムの構成例と同様であるため、詳細な説明は省略される。
図12は、本発明の第2の実施形態における、運用装置60の構成例を示す図である。
本発明の第2の実施形態における運用装置60は、本発明の第1の実施形態における通信ネットワークを管理する。運用装置60は、トポロジ情報保持部61と、経路候補保持部62と、フロー情報保持部63と、更新手順計算部64と、更新実行部65と、経路計算部66とを含む。
なお、図12の構成要素61から66を繋ぐ実線は論理的な通信ないし呼び出し可能な関係を示したものであり、本発明が構成要素61から66の実装は、この形状で接続されている構成やネットワークに限定されるものではない。
経路候補保持部62は、トポロジ情報保持部61の保持する通信ネットワークのトポロジ上に存在する、計算資源20間の通信経路の候補情報を保持する。経路候補保持部62は、トポロジ情報保持部61に記録されているトポロジにおいて、仮想マシン40が配置されうる計算資源20間の通信経路の候補を、一つあるいは複数保持する。経路候補保持部62の保持する通信経路の候補情報の構成例は、図4、図5に例示した第1の実施形態における経路候補保持部62の保持する通信経路の候補情報の構成例と同様であるため、詳細な説明は省略される。
経路候補保持部62の保持する情報は、ユーザによって保存されてもよいし、経路計算部66によって保存されてもよい。
経路候補保持部62は、例えば、更新手順計算部64が、経路計算部66に対して、通信ネットワークのトポロジ上に存在する通信経路の候補情報をその都度問い合わせる場合には、運用装置60に含まれなくてもよい。
更新手順計算部64は、トポロジ情報保持部61と、経路候補保持部62と、フロー情報保持部63とが保持する情報を参照し、仮想マシンの更新手順を計算する。更新手順計算部64は、例えば、更新作業対象となる個々の仮想マシン40に対して、移動先として、流入するフローの通信要件が満たされる計算資源20を移動先候補として検討する。
更新手順計算部64は、例えば、経路計算部66に対して、通信ネットワークにおける計算資源20間の経路の計算を指示する。更新手順計算部64は、例えば、経路候補保持部62に既に経路候補が記録されている場合には、通信ネットワークにおける計算資源20間の経路の計算を指示しなくてもよいし通信ネットワークにおける計算資源20間の経路の更新指示を出してもよい。
更新手順計算部64は、フロー情報保持部63を参照して、更新対象となる個々の仮想マシン40に流入するフローの有無を確認する。
更新手順計算部64は、算出された経路候補保持部62の保持する情報を参照し、該フローと送信元が同じで、かつ該更新対象の仮想マシン40とは異なる宛先を、移動先候補として抽出する。
なお、更新手順計算部64は、経路候補保持部62だけでなく、フロー情報保持部63を参照して、該フローと送信元が同じで、かつ該更新対象の仮想マシン40とは異なる宛先を、移動先候補として抽出してもよい。
更新手順計算部64が、例えば、経路計算部66に対して、通信ネットワークにおける計算資源20間の経路の候補情報をその都度問い合わせる場合には、経路計算部66から、該通信経路の候補情報を取得してもよい。
更新手順計算部64が更新手順を算出する過程は、第1の実施形態における更新手順計算部64の例と同様であるため、詳細な説明は省略される。
更新手順計算部64は、算出した仮想マシン40の更新手順を、更新実行部65へ転送する。
経路計算部66は、外部からの経路計算要求に応じて、フローに対する経路を計算する。
経路計算部66は、トポロジ情報保持部61から通信ネットワークのトポロジ情報を取得する。経路計算部66は、取得した通信ネットワークのトポロジ情報から、通信ネットワークにおける計算資源20間の経路を計算する。経路計算部66は、例えば、CSPF(Constrainted Shortest Path First:制約付き最短経路法)や、GA(Genetic Algorithm:遺伝的アルゴリズム)等のヒューリスティック法を用いて、該経路を計算する。
経路計算部66は、算出した経路情報を、例えば、経路候補保持部62に保存する。
運用装置60の他の構成は、図2に例示した第1の実施形態における運用装置60の構成例と同様であるため、詳細な説明は省略される。
図13は、本発明の第2の実施形態における、運用装置60の異なる構成例を示す図である。経路計算部66は、例えば、運用装置60に経路候補保持部62が含まれていない場合、算出した経路を更新手順計算部64へ転送してもよい。
[動作の説明]
本発明の第2実施形態における運用装置60の動作について、図14を参照して説明する。以降の説明では、簡単のために、図1に記載の通信ネットワークの構成において、仮想マシン40−1、40−3、40−5を更新する場合について説明する。
図14は、本発明の第2の実施形態における更新手順計算部64の動作例を示すフローチャートである。
更新手順計算部64は、仮想マシン40−1に対して流入するフローの有無を確認する(S301)。更新手順計算部64は、フロー情報保持部63の保持するフロー情報を参照して、仮想マシン40−1に対して、計算資源20−8から、フローF801が流入していることを確認する。
更新手順計算部64は、経路計算部66に対して、通信ネットワークにおける計算資源20間の経路の計算を指示する(S302)。経路計算部66は、トポロジ情報保持部61を参照し、通信ネットワークにおける計算資源20間の経路を算出する。経路計算部66は、算出した経路を、経路候補保持部62に保存する。
更新手順計算部64は、更新対象の仮想マシン40対して流入するフローが存在しない場合(S303のNo)、経路候補保持部62を参照して、更新対象の仮想マシン40を宛先とするフローの経路を、集合Cへ追加する(S304)。仮想マシン40−1は、この場合(S303のNo)に該当しない。
更新手順計算部64は、仮想マシン40−1に対して流入するフローが存在する場合(S303のYes)、経路候補保持部62を参照して、送信元が計算資源20−8であり、かつ宛先が仮想マシン40−1でないフローの経路を抽出する(S305)。
以降のS306乃至S315は、図8に例示した第1の実施形態の更新手順計算部64の動作例であるS105乃至S114と同様であるので、詳細な説明は省略される。
上記のとおり、本発明の第2の実施形態では、空き計算資源にBlueスライスを作成し、仮想マシン40に流入するフローの宛先を切り替える動作を繰り返すことで、仮想マシン40の更新を、通信およびサービスの継続状態を維持して行うことが可能である。
また、本発明の第2の実施形態では、新たに空き計算資源となった計算資源20に、新たなBlueスライスを作成し、仮想マシン40に流入するフローの宛先を切り替える動作を繰り返す。これにより、更新対象の仮想マシン40と同数の計算資源20を持っておく必要がなくなり、余剰資源を抑えることが可能になる。
本発明の第2の実施形態では、運用装置60自身が、ネットワークのトポロジ情報およびフロー情報を参照することで、フローに対する経路候補を算出する。これにより、ユーザが事前に経路候補を設定する必要がなくなり、仮想マシン40の更新作業を簡素化することが可能である。
以上、本発明の第2の実施形態において、更新対象の仮想マシン40に1つのフローが流入する場合を例に説明したが、複数のフローが流入している状況でも本発明は適用可能である。更新対象の仮想マシン40に複数のフローが流入する場合には、流入する全てのフローに対して、要件を満たすような経路候補および移動先候補を用いる。
[第3の実施の形態]
[構成の説明]
本願発明の第3の実施形態を、図面を参照して詳細に説明する。なお、第3の実施形態の技術は、第1の実施形態、第2の実施形態、後述の実施形態のいずれにも適用可能である。
第3の実施形態の通信システムの構成例は、図1に例示する第1の実施形態の通信システムの構成例と同様であるため、詳細な説明は省略される。
図15は、本発明の第3の実施形態における、運用装置60の構成例を示す図である。
本発明の第3の実施形態における運用装置60は、本発明の第1の実施形態における通信ネットワークを管理する。運用装置60は、更新手順計算部64と、更新実行部65とを含む。
なお、図15の構成要素64から65を繋ぐ実線は論理的な通信ないし呼び出し可能な関係を示したものであり、本発明が構成要素64から65の実装は、この形状で接続されている構成やネットワークに限定されるものではない。
更新手順計算部64は、仮想マシン40の更新手順を計算する。
更新手順計算部64は、例えば、更新作業の対象となる個々の仮想マシン40に対して、更新作業の対象となる仮想マシン40に流入するフローの通信要件が満たされる計算資源20を、移動先候補として検討する。
例えば、更新手順計算部64は、更新対象となる個々の仮想マシン40に流入するフローの有無を確認する。更新対象の仮想マシン40に流入するフローが存在する場合、更新手順計算部64は、該フローと送信元が同じで、かつ該更新対象の仮想マシン40とは異なる宛先を、移動先候補として抽出する。
更新手順計算部64は、例えば、更新対象の仮想マシン40に流入するフローの送信元から移動先候補への経路のうち、通信要件が満たされる経路を抽出し、集合Cとする。例えば、更新手順計算部64は、更新対象の仮想マシン40に流入するフローの遅延上限値と、抽出した経路候補の遅延を比較して、該遅延上限値を超えない経路を経路候補として抽出し、集合Cとする。
更新手順計算部64は、例えば、Blue−Green Deploymentやその類似手段で仮想マシン40を更新する場合、GreenスライスとBlueスライスの間でデータや状態の同期が必要なため、同期が可能な通信要件の経路候補を抽出し、集合Cとする。
更新手順計算部64は、例えば、仮想マシン40を起動していない計算資源20(空き計算資源)を始点として、更新対象である仮想マシン40が存在する計算資源を全て通るような経路を計算する。更新手順計算部64は、例えば、深さ優先探索法を用いて、空き資源を始点として、更新作業対象となる仮想マシン40が存在する計算資源を全て通るような経路を計算する。ただし、更新対象である仮想マシン40が存在する計算資源を全て通るような経路を計算する方法は、深さ優先探索法に限定されず、他の計算方法でもよい。
なお、空き計算資源が複数箇所存在する場合、更新手順計算部64は、例えば、経路計算の始点となるダミーノードを1つ設け、ダミーノードと各空き計算資源のノードをダミーリンクで接続し、ダミーノードを始点として前述の経路計算を行うとよい。更新手順計算部64は、例えば、該経路計算の後に、経路からダミーノードおよびダミーリンクの部分を削除する。これにより、更新手順計算部64は、各空き計算資源を始点として、更新対象の仮想マシン40を通過する複数本の経路を算出できる。
更新手順計算部64は、算出した経路の逆の経路を、仮想マシンの更新手順として、更新実行部65へ転送する。
更新実行部65は、更新手順計算部64が計算した仮想マシンの更新手順に基づいて、仮想マシンの更新を実行する。
更新実行部65は、例えば、空き計算資源に更新対象の仮想マシン40のBlueスライスを作成する。更新実行部65は、作成したBlueスライスと、更新対象の仮想マシン40の状態およびデータの同期を行う。
更新実行部65は、Blueスライスと、更新対象の仮想マシン40の同期を完了した後に、更新対象の仮想マシン40に流入していたフローの宛先を、作成したBlueスライスへ切り替える。更新実行部65は、フローの送信元からBlueスライスへの経路を、集合Cの中から選択する。更新実行部65は、フローの送信元からBlueスライスへの経路について、例えば、最短となる経路を選択してもよいし、最小コストとなる経路を選択してもよい。更新実行部65は、例えば、フローの送信元からBlueスライスへの経路として、複数の経路を選択し、マルチパスルーティングによりフローを収容しても構わない。
なお、更新実行部65は、更新対象の仮想マシン40に流入していたフローの宛先を、作成したBlueスライスへ切り替える前に、選択した経路候補の経路でフローの通信が可能であるように、ネットワークを制御する。このネットワークの制御は、運用装置60の更新実行部65が実行することに限られず、例えば、NMSや、OpenFlowコントローラが集中的に行ってもよい。運用装置60が、例えば、NMSやOpenFlowコントローラであってもよい。また、このネットワークの制御は、RSVPなどを用いて、分散的に行ってもよい。
更新実行部65は、更新対象の仮想マシン40に流入していたフローの宛先を、作成したBlueスライスへ切り替えた後に、Blueスライスが正常に動作していることを確認する。更新実行部65は、Blueスライスが正常に動作していることを確認した後、更新対象であった仮想マシン40を削除する。
更新実行部65は、新たに空き計算資源となった計算資源20を用いて、新たな更新対象の仮想マシン40の更新を実行する。更新実行部65は、例えば、新たな更新対象の仮想マシン40の更新を実行する場合に、新たに設定するフローの経路は、前に存在していた仮想マシン40が用いていたフローの経路と、同様の経路を設定してもよい。更新実行部65は、例えば、前に存在していた仮想マシン40が用いていたフローの経路を再設定できない場合には、その経路の情報を削除し、新たな経路を設定する。
以上、本発明の第3の実施形態において、フローの送信元が単一の仮想マシン40としていたが、個々のフローの送信元が異なる仮想マシン40であっても構わない。また、本説明におけるフローの送信元が仮想マシン40ではなく、外部ネットワーク70であってもよい。フローの送信元が外部ネットワーク70である場合の構成例は、図7に図示する第1の実施形態の構成例と同様であるため、詳細な説明は省略される。
[動作の説明]
本発明の第3実施形態における運用装置60の動作について、図16を参照して説明する。以降の説明では、簡単のために、図1に記載の通信ネットワークの構成において、仮想マシン40−1、40−3、40−5を更新する場合について説明する。
図16は、本発明の第3の実施形態における更新手順計算部64の動作例を示すフローチャートである。
更新手順計算部64は、仮想マシン40−1に対して流入するフローの有無を確認する(S401)。更新手順計算部64は、仮想マシン40−1に対して、計算資源20−8から、フローF801が流入していることを確認する。
更新手順計算部64は、更新対象の仮想マシン40に対して流入するフローが存在しない場合(S402のNo)、更新対象の仮想マシン40を宛先とするフローの経路を、集合Cへ追加する(S403)。仮想マシン40−1は、この場合(S402のNo)に該当しない。
更新手順計算部64は、仮想マシン40−1に対して流入するフローが存在する場合(S402のYes)、送信元が計算資源20−8であり、かつ宛先が仮想マシン40−1でないフローの経路を抽出する(S404)。
更新手順計算部64は、抽出したフローの経路の遅延を確認する(S405)。
更新手順計算部64は、抽出したフローの経路の遅延が、通信要件を満たしていない場合(S406のNo)、該フローの経路を経路候補から外す(S407)。更新手順計算部64は、抽出したフローの経路の遅延が、通信要件を満たしている場合に(S406のYes)、該フローの経路を経路候補として集合Cへ追加する(S408)。
更新手順計算部64は、S401からS408の手順を繰り返し、更新対象である全ての仮想マシン40の移動先候補を抽出する(S409)。
更新手順計算部64は、例えば、深さ優先探索法を用いて、空き計算資源を始点として、更新作業対象となる仮想マシン40−1、40−3、40−5が存在する計算資源20を全て通るような経路を計算する。更新手順計算部64は、算出した経路と逆向きの経路を、更新手順として算出する(S410)。
第3の実施形態の更新実行部65の動作例は、図11に例示する第1の実施形態の更新実行部65の動作例と同様であるため、詳細な説明は省略される。
上記のとおり、本発明の第3の実施形態では、空き計算資源にBlueスライスを作成し、仮想マシン40に流入するフローの宛先を切り替える動作を繰り返すことで、仮想マシン40の更新を、通信およびサービスの継続状態を維持して行うことが可能である。
また、本発明の第3の実施形態では、新たに空き計算資源となった計算資源20に、新たなBlueスライスを作成し、仮想マシン40に流入するフローの宛先を切り替える動作を繰り返す。これにより、更新対象の仮想マシン40と同数の計算資源20を持っておく必要がなくなり、余剰資源を抑えることが可能になる。
以上、本発明の第3の実施形態において、更新対象の仮想マシン40に1つのフローが流入する場合を例に説明したが、複数のフローが流入している状況でも本発明は適用可能である。更新対象の仮想マシン40に複数のフローが流入する場合には、流入する全てのフローに対して、要件を満たすような経路候補および移動先候補を用いる。
以上、本発明の実施形態を説明したが、本発明は、上記したそれぞれの実施形態に限定されるものではない。本発明は、各実施形態の変形・置換・調整に基づいて実施できる。
また、本発明は、各実施形態を任意に組み合わせて実施することもできる。即ち、本発明は、本明細書の全ての開示内容、技術的思想に従って実現できる各種変形、修正を含む。
また、本発明は、SDN(Software−Defined Network)の技術分野にも適用可能である。
また、本発明の実施形態において、運用装置のコンピュータ、CPU又はMPU(Micro−Processing Unit)等が、上述した各実施形態の機能を実現するソフトウェア(プログラム)を実行してもよい。運用装置のコンピュータ、CPU又はMPU等は、例えばCD−R(Compact Disc Recordable)等の各種記憶媒体又はネットワークを介して、上述した各実施形態の機能を実現するソフトウェア(プログラム)を取得してもよい。運用装置が取得するプログラムや該プログラムを記憶した記憶媒体は、本発明を構成することになる。なお、該ソフトウェア(プログラム)は、例えば、運用装置に含まれる所定の記憶部に、予め記憶されていてもよい。運用装置のコンピュータ、CPU又はMPU等は、取得したソフトウェア(プログラム)のプログラムコードを読み出して実行してもよい。
以上、各実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2016年3月30日に出願された日本出願特願2016−066980を基礎とする優先権を主張し、その開示の全てをここに取り込む。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
[付記1]
仮想マシンを順番に更新するための更新手順を決定する更新手順計算手段と、
決定された前記更新手順に従って、複数の前記仮想マシンの更新を実行する更新実行手段と、を含み、
前記更新手順計算手段は、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出された更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定する
運用装置。
[付記2]
前記更新手順計算手段は、前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
付記1に記載の運用装置。
[付記3]
前記更新手順計算手段は、複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
付記1又は2に記載の運用装置。
[付記4]
前記更新手順計算手段は、前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
付記3に記載の運用装置。
[付記5]
前記更新手順計算手段は、前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
付記3又は4に記載の運用装置。
[付記6]
前記更新手順計算手段は、
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
付記3乃至5のいずれかに記載の運用装置。
[付記7]
仮想マシンが構成される計算資源と、
前記仮想マシンの更新を指示する運用装置と、を含み、
前記運用装置は、
複数の前記仮想マシンを順番に更新するための更新手順を決定する更新手順計算手段と、
決定された前記更新手順に従って、複数の前記仮想マシンの更新を実行する更新実行手段と、を含み、
前記更新手順計算手段は、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出した更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定する
通信システム。
[付記8]
前記更新手順計算手段は、前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
付記7に記載の通信システム。
[付記9]
前記更新手順計算手段は、複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
付記7又は8に記載の通信システム。
[付記10]
前記更新手順計算手段は、前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
付記9に記載の通信システム。
[付記11]
前記更新手順計算手段は、前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
付記9又は10に記載の通信システム。
[付記12]
前記更新手順計算手段は、
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
付記9乃至11のいずれかに記載の通信システム。
[付記13]
仮想マシンを順番に更新するための更新方法であって、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出された更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定し、
決定された前記更新の順番に従って、複数の前記仮想マシンの更新を実行する
ことを含む更新方法。
[付記14]
前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
ことをさらに含む付記13に記載の更新方法。
[付記15]
複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
ことをさらに含む付記13又は14に記載の更新方法。
[付記16]
前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む付記15に記載の更新方法。
[付記17]
前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む付記15又は16に記載の更新方法。
[付記18]
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
ことをさらに含む付記15乃至17のいずれかに記載の更新方法。
[付記19]
仮想マシンを順番に更新するための更新方法であって、
複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
抽出した更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定し、
決定された前記更新の順番に従って、複数の前記仮想マシンの更新を実行する
ことを含む更新方法。
[付記20]
前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
ことをさらに含む付記19に記載の更新方法。
[付記21]
複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
ことをさらに含む付記19又は20に記載の更新方法。
[付記22]
前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む付記21に記載の更新方法。
[付記23]
前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
ことをさらに含む付記21又は22に記載の更新方法。
[付記24]
抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
ことをさらに含む付記21乃至23のいずれかに記載の更新方法。
10 ノード
20 計算資源
30 ノード間リンク
40 仮想マシン
50 計算資源用リンク
60 運用装置
61 トポロジ情報保持部
611 ネットワークトポロジ管理テーブル
62 経路候補保持部
621 通信経路候補上ノードテーブル
622 通信経路候補上リンクテーブル
63 フロー情報保持部
631 フロー情報テーブル
64 更新手順計算部
65 更新実行部
66 経路計算部
70 外部ネットワーク

Claims (24)

  1. 仮想マシンを順番に更新するための更新手順を決定する更新手順計算手段と、
    決定された前記更新手順に従って、複数の前記仮想マシンの更新を実行する更新実行手段と、を含み、
    前記更新手順計算手段は、
    複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
    抽出された更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定する
    運用装置。
  2. 前記更新手順計算手段は、前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
    請求項1に記載の運用装置。
  3. 前記更新手順計算手段は、複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
    請求項1又は2に記載の運用装置。
  4. 前記更新手順計算手段は、前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
    請求項3に記載の運用装置。
  5. 前記更新手順計算手段は、前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
    請求項3又は4に記載の運用装置。
  6. 前記更新手順計算手段は、
    抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
    請求項3乃至5のいずれかに記載の運用装置。
  7. 仮想マシンが構成される計算資源と、
    前記仮想マシンの更新を指示する運用装置と、を含み、
    前記運用装置は、
    複数の前記仮想マシンを順番に更新するための更新手順を決定する更新手順計算手段と、
    決定された前記更新手順に従って、複数の前記仮想マシンの更新を実行する更新実行手段と、を含み、
    前記更新手順計算手段は、
    複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
    抽出した更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定する
    通信システム。
  8. 前記更新手順計算手段は、前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
    請求項7に記載の通信システム。
  9. 前記更新手順計算手段は、複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
    請求項7又は8に記載の通信システム。
  10. 前記更新手順計算手段は、前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
    請求項9に記載の通信システム。
  11. 前記更新手順計算手段は、前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
    請求項9又は10に記載の通信システム。
  12. 前記更新手順計算手段は、
    抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
    請求項9乃至11のいずれかに記載の通信システム。
  13. 仮想マシンを順番に更新するための更新方法であって、
    複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
    抽出された更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定し、
    決定された前記更新の順番に従って、複数の前記仮想マシンの更新を実行する
    ことを含む更新方法。
  14. 前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
    ことをさらに含む請求項13に記載の更新方法。
  15. 複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
    ことをさらに含む請求項13又は14に記載の更新方法。
  16. 前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
    ことをさらに含む請求項15に記載の更新方法。
  17. 前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
    ことをさらに含む請求項15又は16に記載の更新方法。
  18. 抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
    ことをさらに含む請求項15乃至17のいずれかに記載の更新方法。
  19. 仮想マシンを順番に更新するための更新方法であって、
    複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出し、
    抽出した更新先の計算資源の候補に基づいて、複数の前記仮想マシンそれぞれの更新先の計算資源と、複数の前記仮想マシンの更新の順番とを決定し、
    決定された前記更新の順番に従って、複数の前記仮想マシンの更新を実行する
    ことを含む更新方法。
  20. 前記仮想マシンが起動されていない計算資源を、最初に更新する仮想マシンの更新先の計算資源として決定する
    ことをさらに含む請求項19に記載の更新方法。
  21. 複数の前記仮想マシンそれぞれに流入するフローに基づいて、複数の前記仮想マシンそれぞれに対して更新先の計算資源の候補を抽出する
    ことをさらに含む請求項19又は20に記載の更新方法。
  22. 前記フローの送信元の仮想マシンが通信可能な計算資源を、前記更新先の計算資源の候補として抽出する
    ことをさらに含む請求項21に記載の更新方法。
  23. 前記フローの通信に関する条件を満たす計算資源を、前記更新先の計算資源の候補として抽出する
    ことをさらに含む請求項21又は22に記載の更新方法。
  24. 抽出した更新先の計算資源の候補のうち、前記仮想マシンの更新に必要な時間が前記フローの遅延許容時間を超えない計算資源を、更新先の計算資源として決定する
    ことをさらに含む請求項21乃至23のいずれかに記載の更新方法。
JP2018509070A 2016-03-30 2017-03-21 運用装置、通信システムおよび更新方法 Pending JPWO2017169947A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016066980 2016-03-30
JP2016066980 2016-03-30
PCT/JP2017/011097 WO2017169947A1 (ja) 2016-03-30 2017-03-21 運用装置、通信システムおよび更新方法

Publications (1)

Publication Number Publication Date
JPWO2017169947A1 true JPWO2017169947A1 (ja) 2019-02-07

Family

ID=59965206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018509070A Pending JPWO2017169947A1 (ja) 2016-03-30 2017-03-21 運用装置、通信システムおよび更新方法

Country Status (3)

Country Link
US (1) US20190108050A1 (ja)
JP (1) JPWO2017169947A1 (ja)
WO (1) WO2017169947A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6969077B2 (ja) * 2016-08-23 2021-11-24 日本電気株式会社 仮想マシン制御装置とその制御方法、及び、管理装置とその制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3960961B2 (ja) * 2003-09-19 2007-08-15 富士通株式会社 ソフトウェアに修正情報を適用する装置および方法
US20140019970A1 (en) * 2011-03-28 2014-01-16 Hideaki Okamoto Virtual machine management system and virtual machine management method
JP5976603B2 (ja) * 2013-07-22 2016-08-23 日本電信電話株式会社 統合制御装置および統合制御方法
CN103703724B (zh) * 2013-08-15 2015-06-10 华为技术有限公司 一种资源发放方法

Also Published As

Publication number Publication date
US20190108050A1 (en) 2019-04-11
WO2017169947A1 (ja) 2017-10-05

Similar Documents

Publication Publication Date Title
JP6470838B2 (ja) ソフトウェア定義型ネットワーキングにおけるデータ転送方法、装置、およびシステム
US9900221B2 (en) Controlling a topology of a network
US10893108B2 (en) Maintaining application state of mobile endpoint device moving between virtualization hosts based on sharing connection-based metadata
CN102884763B (zh) 跨数据中心的虚拟机迁移方法、服务控制网关及系统
Moradi et al. SoftMoW: Recursive and reconfigurable cellular WAN architecture
CN106464528B (zh) 用于通信网络中的无接触编配的方法、介质、及装置
TW202026896A (zh) 在網路路由環境中的非同步物件管理機制
ES2614863T3 (es) Control de servicio en nube informática y arquitectura de gestión extendida para conectarse al estrato de red
JP6619096B2 (ja) ファイアウォールクラスタ
US20160006642A1 (en) Network-wide service controller
CN104584491A (zh) 提供分布式虚拟路由和交换(dvrs)的系统和方法
US11444840B2 (en) Virtualized networking application and infrastructure
WO2015167479A1 (en) Efficient routing in software defined networks
CN105162704A (zh) Overlay网络中组播复制的方法及装置
JP2011160363A (ja) コンピュータシステム、コントローラ、スイッチ、及び通信方法
JP2017212759A (ja) パケット転送装置、制御装置、通信システム、通信方法及びプログラム
CN109587286A (zh) 一种设备接入控制方法及装置
CN108400922B (zh) 虚拟局域网络配置系统与方法及其计算机可读存储介质
JP5904285B2 (ja) 通信システム、仮想ネットワーク管理装置、通信ノード、通信方法及びプログラム
JP4815547B2 (ja) データ同期システム、データ同期方法、及び同期管理サーバ
JP5436597B2 (ja) 仮想化ネットワークインフラ制御システム及び方法
EP2983333B1 (en) A system and method for providing routes to physical residential gateways
Tu et al. Splicing MPLS and OpenFlow tunnels based on SDN paradigm
WO2017169947A1 (ja) 運用装置、通信システムおよび更新方法
JP5889813B2 (ja) 通信システムおよびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180912