JP2017049772A - 移動制御プログラム、移動制御装置及び移動制御方法 - Google Patents
移動制御プログラム、移動制御装置及び移動制御方法 Download PDFInfo
- Publication number
- JP2017049772A JP2017049772A JP2015172095A JP2015172095A JP2017049772A JP 2017049772 A JP2017049772 A JP 2017049772A JP 2015172095 A JP2015172095 A JP 2015172095A JP 2015172095 A JP2015172095 A JP 2015172095A JP 2017049772 A JP2017049772 A JP 2017049772A
- Authority
- JP
- Japan
- Prior art keywords
- information
- virtual machine
- machine
- movement
- virtual
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】仮想マシンの再配置に伴う仮想マシンの移動順序を決定する移動制御プログラム、移動制御装置及び移動制御方法を提供する。
【解決手段】移動情報及び第1状態情報に基づき、移動先の物理マシンに移動可能な仮想マシンに移動を指示し、移動先の物理マシンへの移動を指示していない仮想マシンのうち、移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに退避を指示し、仮想マシンの退避後における、システムを構成する複数の物理マシン及び複数の仮想マシンのそれぞれについて、仮想マシンの移動の可否を判定する第2状態情報を取得し、移動情報及び前記第2状態情報に基づき、移動先の物理マシンへの移動を指示していない仮想マシンのうち、移動先の物理マシンに移動可能な仮想マシンに移動を指示する。
【選択図】図6
【解決手段】移動情報及び第1状態情報に基づき、移動先の物理マシンに移動可能な仮想マシンに移動を指示し、移動先の物理マシンへの移動を指示していない仮想マシンのうち、移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに退避を指示し、仮想マシンの退避後における、システムを構成する複数の物理マシン及び複数の仮想マシンのそれぞれについて、仮想マシンの移動の可否を判定する第2状態情報を取得し、移動情報及び前記第2状態情報に基づき、移動先の物理マシンへの移動を指示していない仮想マシンのうち、移動先の物理マシンに移動可能な仮想マシンに移動を指示する。
【選択図】図6
Description
本発明は、移動制御プログラム、移動制御装置及び移動制御方法に関する。
近年、物理マシンの性能向上に伴い、複数の仮想マシン(VM:Virtual Machine)を1つの物理マシンに集約する仮想化技術の研究が進められている。この仮想化技術は、例えば、仮想化ソフトウエア(以下、ハイパバイザとも呼ぶ)が物理マシンを複数の仮想マシンに割当てて、各仮想マシンにインストールされたアプリケーションプログラム(以下、アプリケーションとも呼ぶ)によるサービスの提供を可能にする。
上記のような仮想マシンにおいて、仮想マシンの管理を行う管理者(以下、単に管理者とも呼ぶ)は、必要に応じて物理マシン間における仮想マシンの移動を行う(以下、これをマイグレーションとも呼ぶ)。これにより、管理者は、例えば、利用者によるサービスの利用状況に応じて仮想マシンの再配置を行うことが可能になる。そのため、管理者は、物理マシンの物理リソースの効率的な活用等を実現することが可能になる(例えば、特許文献1乃至3参照)。
上記のような仮想マシンの移動を行う場合、管理者は、例えば、各仮想マシンが動作する物理マシンのうち、物理リソースの残余がある物理マシンに対して仮想マシンの移動を行う。しかしながら、この場合、仮想マシンを移動することができる物理マシンは、現状で物理リソースに残余のある物理マシンに限られる。そのため、仮想マシンの移動が行われた後における各仮想マシンの配置は、物理マシンの物理リソースを効率的に使用する観点から最適な仮想マシンの配置でない場合がある。
これに対し、管理者は、例えば、最適化ソルバ等の数理計画法を活用することにより、物理マシンの物理リソースの最も効率的に使用することができる仮想マシンの配置(以下、最適配置とも呼ぶ)を予め決定することが可能である。しかしながら、数理計画法によって算出される仮想マシンの配置は、各仮想マシンの移動中における各物理マシンの物理リソースの残余の状況が考慮されていない。そのため、管理者は、仮想マシンを最適配置に再配置するための仮想マシンの移動順序を特定することが困難な場合がある。
そこで、一つの側面では、仮想マシンの再配置に伴う仮想マシンの移動順序を決定する移動制御プログラム、移動制御装置及び移動制御方法を提供することを目的とする。
実施の形態の一つの態様によれば、コンピュータに、情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第1状態情報とを取得し、前記移動情報及び前記第1状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示し、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示し、前記仮想マシンの退避後における、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第2状態情報を取得し、前記移動情報及び前記第2状態情報に基づき、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する、ことを実行させる。
一つの側面によれば、仮想マシンの再配置に伴う仮想マシンの移動順序を決定する。
[情報処理システムの構成]
図1は、情報処理システム10の全体構成を示す図である。図1に示す情報処理システム10は、例えば、利用者にサービスを提供するための業務システムである。図1に示す情報処理システム10において、情報処理装置1と、物理マシン2とがデータセンターDC内に設けられている。そして、利用者端末11は、インターネットやイントラネット等のネットワークを介して、データセンターDCとアクセス可能になっている。
図1は、情報処理システム10の全体構成を示す図である。図1に示す情報処理システム10は、例えば、利用者にサービスを提供するための業務システムである。図1に示す情報処理システム10において、情報処理装置1と、物理マシン2とがデータセンターDC内に設けられている。そして、利用者端末11は、インターネットやイントラネット等のネットワークを介して、データセンターDCとアクセス可能になっている。
物理マシン2は、例えば、複数の物理マシンから構成される。各物理マシンは、CPU(Central Computing Unit)と、メモリ(DRAM:Dynamic Random Access Memory)と、ハードディスク(HDD:Hard Disk Drive)等の大容量メモリとを有する。そして、物理マシン2の物理リソースは、複数の仮想マシン3に割当てられる。
情報処理装置1は、仮想マシン3とアクセス可能であり、物理マシン2内に作成された仮想マシン3の管理を行うものである。情報処理装置1は、例えば、仮想マシン3によって作成されるものであってもよい。
仮想マシン3では、そのインフラをネットワーク経由で利用者に提供するもの(以下、クラウドサービスとも呼ぶ)である。
クラウドサービスは、コンピュータシステムを構築し稼働させるための基盤、すなわち、仮想マシン3やネットワーク等のインフラストラクチャを、ネットワーク経由で提供するサービスである。また、利用者は、例えば、利用者端末11を介して、仮想マシン3に必要な仕様、例えば、CPUのクロック周波数、メモリの容量、ハードディスクの容量及びネットワークの通信帯域幅を選択し、それらについてクラウド利用契約を締結する。さらに、利用者は、例えば、利用者端末11を介して、仮想マシン3の稼働状態を監視や、仮想マシン3に対する操作等を可能にする。
仮想化ソフトウエア4は、情報処理装置1からの指示に応じて、物理マシン2のCPU、メモリ、ハードディスク及びネットワークを割当てることにより、仮想マシン3を動作させる基盤ソフトウエアである。仮想化ソフトウエア4は、例えば、物理マシン2で動作する。
[物理マシンに配備された仮想マシンの具体例]
次に、物理マシン2に配備された仮想マシン3の具体例について説明を行う。図2から図3は、物理マシン2に配備された仮想マシン3の具体例を説明する図である。
次に、物理マシン2に配備された仮想マシン3の具体例について説明を行う。図2から図3は、物理マシン2に配備された仮想マシン3の具体例を説明する図である。
図2に示す例において、データセンターDCには、物理マシン2A、2B、2C、2D、2E及び2Fが配備されている。そして、物理マシン2Aには、仮想マシン3A及び仮想マシン3Bが配備され、物理マシン2Bには、仮想マシン3Cが配備されている。また、物理マシン2D、2E及び2Fには、それぞれ仮想マシン3D、3E及び3Fが配備されている。
なお、図2に示す例において、物理マシン2Aにおける「物理マシン(0,1)」は、物理マシン2Aのメモリの空き容量が「0(GB)」であって、ディスクの空き容量が「1(GB)」であることを示している。そして、図2に示す例において、仮想マシン3Aにおける「仮想マシン(1,2)」は、仮想マシン3Aが動作するために必要なメモリの使用容量が「1(GB)」であって、ディスクの使用容量が「2(GB)」であることを示している。なお、図2における他の物理マシン2及び仮想マシン3についての説明は省略する。
そして、図2に示すような仮想マシン3において、管理者は、必要に応じて物理マシン2間における仮想マシン3の移動を行う。これにより、管理者は、例えば、利用者によるサービスの利用状況に応じて仮想マシン3の再配置を行うことが可能になる。そのため、管理者は、物理マシン2の物理リソースの効率的な活用等を実現することが可能になる
具体的に、仮想マシン3の移動を行う場合、管理者は、例えば、各仮想マシン3が動作する物理マシン2のうち、物理リソースの残余がある物理マシン2に対して仮想マシン3の移動を行う。しかしながら、この場合、仮想マシン3が移動することができる物理マシン2は、現状で物理リソースに残余のある物理マシン2に限られる。そのため、仮想マシン3の移動後における各仮想マシン3の配置は、例えば、物理マシン2の物理リソースを効率的に使用する観点から、最適な仮想マシン3の配置ではない場合がある。
具体的に、仮想マシン3の移動を行う場合、管理者は、例えば、各仮想マシン3が動作する物理マシン2のうち、物理リソースの残余がある物理マシン2に対して仮想マシン3の移動を行う。しかしながら、この場合、仮想マシン3が移動することができる物理マシン2は、現状で物理リソースに残余のある物理マシン2に限られる。そのため、仮想マシン3の移動後における各仮想マシン3の配置は、例えば、物理マシン2の物理リソースを効率的に使用する観点から、最適な仮想マシン3の配置ではない場合がある。
これに対し、管理者は、例えば、数理計画法(例えば、最適化ソルバ)を活用する場合がある。これにより、管理者は、図3の各矢印が示すように、物理マシン2の物理リソースの最も効率的に使用することができる仮想マシン3の最適配置を算出することが可能になる。しかしながら、数理計画法によって算出される仮想マシン3の配置は、各仮想マシン3の移動中における各物理マシン2の物理リソースの残余の状況が考慮されていない。
具体的に、図3に示す例において、管理者は、仮想マシン3A及び仮想マシン3Bを物理マシン2Aから物理マシン2Eに移動する必要がある。そして、仮想マシン3A及び仮想マシン3Bのメモリの使用容量の合計は、「2(GB)」であり、仮想マシン3A及び仮想マシン3Bのディスクの使用容量の合計は、「3(GB)」である。したがって、仮想マシン3A及び仮想マシン3Bを物理マシン2Aから物理マシン2Eに移動するためには、物理マシン2Eのメモリの空き容量が「2(GB)」以上であり、ディスクの空き容量が「3(GB)」以上である必要がある。
しかしながら、図3に示す例において、物理マシン2Eのメモリの空き容量は「1(GB)」であり、ディスクの空き容量は「2(GB)」である。そのため、仮想マシン3A及び仮想マシン3Bは、図3に示すように、物理マシン2Eに対して同時に移動することができない。すなわち、仮想マシン3A及び仮想マシン3Bのうち、直ちに物理マシン2Eに移動できない仮想マシン3については、仮想マシン3Eが物理マシン2Eから物理マシン2Dに移動した後に移動する必要がある。
また、図3に示す例において、管理者は、仮想マシン3Cを物理マシン2Bから物理マシン2Fに移動する必要があり、仮想マシン3Fを物理マシン2Fから物理マシン2Bに移動する必要がある。そして、仮想マシン3Cのメモリの使用容量は、「2(GB)」であり、仮想マシン3Cのディスクの使用容量は、「2(GB)」である。また、仮想マシン3Fのメモリの使用容量の合計は、「2(GB)」であり、仮想マシン3Fのディスクの使用容量の合計は、「2(GB)」である。したがって、仮想マシン3Cを物理マシン2Bから物理マシン2Fに移動するためには、物理マシン2Fのメモリの空き容量が「2(GB)」以上であり、ディスクの空き容量が「2(GB)」以上である必要がある。また、仮想マシン3Fを物理マシン2Fから物理マシン2Bに移動するためには、物理マシン2Bのメモリの空き容量が「2(GB)」以上であり、ディスクの空き容量が「2(GB)」以上である必要がある。
しかしながら、図3に示す例において、物理マシン2Fのメモリの空き容量が「0(GB)」であり、ディスクの空き容量が「1(GB)」である。また、図3に示す例において、物理マシン2Bのメモリの空き容量が「0(GB)」であり、ディスクの空き容量が「0(GB)」である。そのため、仮想マシン3C及び仮想マシン3Fは、それぞれ移動先の物理マシン2に対して同時に移動することができない。
さらに、図3に示す例において、管理者は、仮想マシン3Dを物理マシン2Dから物理マシン2Aに移動する必要がある。そして、仮想マシン3Dのメモリの使用容量は、「1(GB)」であり、仮想マシン3Dのディスクの使用容量は、「1(GB)」である。したがって、仮想マシン3Dを物理マシン2Dから物理マシン2Aに移動するためには、物理マシン2Aのメモリの空き容量が「1(GB)」以上であり、ディスクの空き容量が「1(GB)」以上である必要がある。
しかしながら、図3に示す例において、物理マシン2Aのメモリの空き容量が「0(GB)」であり、ディスクの空き容量が「1(GB)」である。そのため、仮想マシン3Dは、物理マシン2Aに対して移動することができない。すなわち、仮想マシン3Dは、この場合、物理マシン2Aへの移動を、仮想マシン3Aまたは仮想マシン3Bが物理マシン2Aから物理マシン2Eに移動した後に行う必要がある。
そのため、管理者は、数理計画法を活用して最適配置を算出した場合、仮想マシン3を最適配置に再配置するための仮想マシン3の移動順序を特定することが困難な場合がある。
そこで、本実施の形態における情報処理装置1は、物理マシン2間で移動する複数の仮想マシン3のうち、移動先の物理マシン2に移動可能な仮想マシン3に移動を指示する。そして、情報処理装置1は、移動先の物理マシン2への移動を指示していない仮想マシン3のうち、移動先の物理マシン2以外の物理マシン2への退避可能な仮想マシン3に退避を指示する。その後、情報処理装置1は、移動先の物理マシン2への移動を指示していない仮想マシン3のうち、移動先の物理マシン2に移動可能な仮想マシン3に、移動先の物理マシンへ2の移動を指示する。
すなわち、情報処理装置1は、移動先の物理マシン2に移動可能な仮想マシン3の全てについて移動を行った後、移動先の物理マシン2に移動することはできない仮想マシン3であって、移動先以外の物理マシン2に退避可能な仮想マシン3の退避を行う。
これにより、情報処理装置1は、移動先の物理マシン2に移動することができる仮想マシン3を発生させることが可能になる。そのため、情報処理装置1は、数理計画法によって算出された仮想マシン3の最適配置に従って、仮想マシン3の再配置を行うことができる可能性を高めることが可能になる。
[情報処理装置のハードウエア構成]
次に、情報処理装置1のハードウエア構成について説明する。図4は、情報処理装置1のハードウエア構成を説明する図である。
次に、情報処理装置1のハードウエア構成について説明する。図4は、情報処理装置1のハードウエア構成を説明する図である。
情報処理装置1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体(ストレージ)104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、記憶媒体104内のプログラム格納領域(図示しない)に、仮想マシン3の移動を制御する処理(以下、移動制御処理とも呼ぶ)を行うためのプログラム110を記憶する。
CPU101は、図4に示すように、プログラム110の実行時に、プログラム110を記憶媒体104からメモリ102にロードし、プログラム110と協働して移動制御処理を行う。
記憶媒体104は、例えば、移動制御処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。また、外部インターフェース103は、物理マシン2と通信を行う。
[情報処理装置のソフトウエア構成]
次に、情報処理装置1のソフトウエア構成について説明する。図5は、図4の情報処理装置1の機能ブロック図である。CPU101は、プログラム110と協働することにより、配置決定部111と、情報取得部112と、移動順序決定部113と、情報管理部114と、移動指示部115と、依存仮想マシン群特定部116して動作する。
次に、情報処理装置1のソフトウエア構成について説明する。図5は、図4の情報処理装置1の機能ブロック図である。CPU101は、プログラム110と協働することにより、配置決定部111と、情報取得部112と、移動順序決定部113と、情報管理部114と、移動指示部115と、依存仮想マシン群特定部116して動作する。
また、図5に示すように、情報格納領域130には、移動対象情報131(以下、単に移動情報131とも呼ぶ)と、状態情報132と、移動決定情報133と、移動未完了情報134とが記憶されている。さらに、図5に示すように、情報格納領域130には、残余物理リソース情報135と、依存仮想マシン情報136と、依存仮想マシン群情報137とが記憶されている。
配置決定部111は、数理計画法(例えば、最適化ソルバ)を活用することにより、物理マシン2の物理リソースの最も効率的に使用することができる仮想マシン3の最適配置を算出する。そして、配置決定部111は、算出した最適配置に関する情報を含む移動対象情報131を作成する。移動対象情報131は、物理マシン2間において移動する複数の仮想マシン3毎に、仮想マシン3の情報(例えば、仮想マシン3の識別可能な情報)と、仮想マシン3の移動元の物理マシン2の情報と、仮想マシン3の移動先の物理マシン2の情報とを対応付けた情報である。なお、仮想マシン3の移動先の物理マシン2の情報は、各仮想マシン3を最適配置に再配置する場合に、移動する必要がある仮想マシン3の移動先の物理マシン2の情報である。移動対象情報131の具体例については後述する。
情報取得部112は、配置決定部111が作成した移動対象情報131を取得する。また、情報取得部112は、複数の物理マシン2及び複数の仮想マシン3それぞれの状態を示す状態情報132(以下、第1状態情報132aとも呼ぶ)を取得する。状態情報132は、例えば、複数の物理マシン2それぞれの物理リソースの空き容量の情報と、複数の仮想マシン3それぞれが動作するために使用する物理リソースの使用量の情報である。状態情報132の具体例については後述する。
また、情報取得部112は、仮想マシン3の退避後において、仮想マシン3の退避後における状態情報132(以下、第2状態情報132bとも呼ぶ)を取得する。
移動順序決定部113は、情報取得部112が取得した移動対象情報131及び状態情報132(第1状態情報132aまたは第2状態情報132b)に基づき、複数の仮想マシン3のうち、移動先の物理マシン2に移動可能な仮想マシン3を特定する。そして、移動指示部115は、移動順序決定部113が特定した仮想マシン3に対し、移動先の物理マシン2に対する移動を指示する。
また、移動順序決定部113は、移動指示部115が移動先の物理マシン2への移動を指示していない仮想マシン3のうち、移動先の物理マシン2以外の物理マシン2への退避可能な仮想マシン3を特定する。そして、移動指示部115は、移動順序決定部113が特定した仮想マシン3に対して退避を指示する。
情報管理部114は、移動先の物理マシン2への仮想マシン3の移動に伴って、移動決定情報133、移動未完了情報134及び残余物理リソース情報135の更新を行う。移動決定情報133、移動未完了情報134及び残余物理リソース情報135については後述する。
依存仮想マシン群特定部116は、各仮想マシン3を移動先の物理マシン2にそれぞれ移動するために、先に移動する必要がある仮想マシン3(以下、依存仮想マシン31とも呼ぶ)を特定する。そして、依存仮想マシン群特定部116は、特定した依存仮想マシン31の情報を含む依存仮想マシン情報136を作成する。依存仮想マシン情報136の具体例については後述する。
その後、依存仮想マシン群特定部116は、依存仮想マシン31のうち、依存仮想マシン31と、依存仮想マシン31を先に移動することにより移動先の物理マシン2に移動可能になる仮想マシン3との関係が循環する2以上の仮想マシン3からなる依存仮想マシン群32を特定する。具体的に、関係が循環する2以上の仮想マシン3は、依存仮想マシン31のうち、各仮想マシン3が他の仮想マシン3の依存仮想マシン31であり、各仮想マシン3の依存仮想マシン31が他の仮想マシン3である関係を有する2以上の仮想マシン3である。そして、依存仮想マシン群特定部116は、特定した依存仮想マシン群32の情報を含む依存仮想マシン群情報137を作成する。依存仮想マシン群情報137の具体例については後述する。
また、移動順序決定部113は、この場合、移動先の物理マシン2以外の物理マシン2への退避可能な仮想マシン3であって、依存仮想マシン群32それぞれに含まれる1の仮想マシン3に対して、退避を指示する。なお、依存仮想マシン群特定部116は、作成した依存仮想マシン情報136及び依存仮想マシン群情報137を情報格納領域130に記憶するものであってよい。
また、以下、物理マシン2の物理リソースは、物理マシン2のメモリ容量及びディスクの容量であるものとして説明を行うが、物理マシン2の物理リソースは、例えば、CPU数やCPUの使用率等であってもよい。そして、情報処理装置1は、例えば、メモリ容量、ディスク容量、CPU数及びCPU量から選択した1以上の情報を利用することにより、移動制御処理を実行するものであってもよい。
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明する。図6は、第1の実施の形態における移動制御処理の概略を説明するフローチャートである。
次に、第1の実施の形態の概略について説明する。図6は、第1の実施の形態における移動制御処理の概略を説明するフローチャートである。
情報処理装置1は、図6に示すように、仮想マシン3の移動タイミングまで待機する(S1のNO)。仮想マシン3の移動タイミングは、例えば、管理者が仮想マシン3の再配置を行うことを決定したタイミングであってよい。具体的に、仮想マシン3の移動タイミングは、仮想マシン3を配備した物理マシン2のうち、物理リソースの使用率が所定の閾値を上回った物理マシン2が発生したことに伴って、管理者が仮想マシン3の再配置を行うことを決定したタイミングであってよい。
その後、仮想マシン3の移動タイミングになった場合(S1のYES)、情報処理装置1は、仮想マシン3毎に、仮想マシン3の情報と、仮想マシン3の移動元の物理マシン2の情報と、仮想マシン3の移動先の物理マシン2の情報とを対応付けた移動対象情報131を取得する(S2)。また、情報処理装置1は、複数の物理マシン2及び複数の仮想マシン3それぞれの状態を示す第1状態情報132aを取得する(S3)。すなわち、情報処理装置1は、仮想マシン3の移動タイミングになった場合に、仮想マシン3の移動順序(各仮想マシン3を最適配置に再配置するための移動順序)を決定する際に用いる情報の取得を行う。
次に、情報処理装置1は、S2の処理で取得した移動対象情報131及びS3の処理で取得した第1状態情報132aに基づき、複数の仮想マシン3のうち、移動先の物理マシン2に移動可能な仮想マシン3に移動を指示する(S4)。そして、情報処理装置1は、移動先の物理マシン2への移動を指示していない仮想マシン3のうち、移動先の物理マシン2以外の物理マシン2への退避可能な仮想マシン3に、移動先の物理マシン2以外の物理マシン2への退避を指示する(S5)。
すなわち、情報処理装置1は、S4の処理において、仮想マシン3の移動先の物理マシン2のうち、仮想マシン3が動作するために必要な残余物理リソースを有している物理マシン2に対して、仮想マシン3の移動を行う。そのため、S4の処理が完了した後の状態は、仮想マシン3のうち、移動先の物理マシン2に対して移動することができる仮想マシン3が存在しない状態である。ここで、本実施の形態における情報処理装置1は、S5の処理において、仮想マシン3のうち、移動先の物理マシン2に移動することはできない仮想マシン3であるが、移動先以外の物理マシン2に退避することはできる仮想マシン3を退避させる。これにより、情報処理装置1は、移動先の物理マシン2に対して移動することが可能になる仮想マシン3を再び発生させることが可能になる。
そして、情報処理装置1は、複数の物理マシン2及び複数の仮想マシン3のそれぞれについて、仮想マシン3の移動の可否を判定する第2状態情報132bを取得する(S6)。
すなわち、情報処理装置1は、S5の処理において、仮想マシン3の退避を行った結果、移動先の物理マシン2に対して移動することが可能になった仮想マシン3が発生したか否かを判定する必要がある。そのため、情報処理装置1は、S6の処理において、移動先の物理マシン2に対して移動することが可能になった仮想マシン3が発生したか否かを判定するために、S5の処理の後における各物理マシン2や仮想マシン3の情報を含む第2状態情報132bを取得する。
その後、情報処理装置1は、S2の処理で取得した移動対象情報131及びS6の処理で取得した第2状態情報132bに基づき、複数の仮想マシン3のうち、移動先の物理マシン2に移動可能な仮想マシン3に移動を指示する(S7)。これにより、情報処理装置1は管理者が数理計画法を活用することにより算出した最適配置に従いながら、仮想マシン3の再配置を行うことができる可能性を高めることが可能になる。
なお、S7の処理が完了した後に、管理者が算出した仮想マシン3の最適配置が実現されていない場合、情報処理装置1は、仮想マシン3の最適配置が実現されるまでS5からS7の処理を繰り返し行うものであってよい。
このように、情報処理装置1は、仮想マシン3毎に、仮想マシン3の情報と、仮想マシン3の移動元の物理マシン2の情報と、仮想マシン3の移動先の物理マシン2の情報とを対応付けた情報を含む移動対象情報131を取得する。また、情報処理装置1は、複数の物理マシン2及び複数の仮想マシン3それぞれの状態を示す第1状態情報132aを取得する。続いて、情報処理装置1は、移動対象情報131及び第1状態情報132aに基づき、複数の仮想マシン3のうち、移動先の物理マシン2に移動可能な仮想マシン3に、移動先の物理マシン2への移動を指示する。
そして、情報処理装置1は、移動先の物理マシン2への移動を指示していない仮想マシン3のうち、移動先の物理マシン2以外の物理マシン2への退避可能な仮想マシン3に、移動先の物理マシン2以外の物理マシン2への退避を指示する。その後、情報処理装置1は、仮想マシン3の退避後における、複数の物理マシン2及び複数の仮想マシン3のそれぞれについて、仮想マシン3の移動の可否を判定する第2状態情報132bを取得する。さらに、情報処理装置1は、移動対象情報131及び第2状態情報132bに基づき、移動先の物理マシン2への移動を指示していない仮想マシン3のうち、移動先の物理マシン2に移動可能な仮想マシン3に、移動先の物理マシン2への移動を指示する。
すなわち、情報処理装置1は、移動対象情報131及び状態情報132に基づいて、仮想マシン3の退避を行いながら移動先の物理マシン2への移動を順次行う。これにより、情報処理装置1は、例えば、複数の仮想マシン3を同時に移動させることができない場合であっても、管理者が算出した仮想マシン3の最適配置を実現するように、仮想マシン3の再配置を行うことが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図7から図11は、第1の実施の形態における移動制御処理の詳細を説明するフローチャートである。また、図12から図35は、第1の実施の形態における移動制御処理の詳細を説明する図である。図12から図35を参照しながら、図7から図11の移動制御処理を説明する。
次に、第1の実施の形態の詳細について説明する。図7から図11は、第1の実施の形態における移動制御処理の詳細を説明するフローチャートである。また、図12から図35は、第1の実施の形態における移動制御処理の詳細を説明する図である。図12から図35を参照しながら、図7から図11の移動制御処理を説明する。
[配置決定処理]
初めに、例えば、第1の実施の形態における移動制御処理の前に実行される処理であって、仮想マシン3の最適配置を決定する処理(以下、配置決定処理とも呼ぶ)について説明を行う。図7は、第1の実施の形態における配置決定処理を説明するフローチャートである。
初めに、例えば、第1の実施の形態における移動制御処理の前に実行される処理であって、仮想マシン3の最適配置を決定する処理(以下、配置決定処理とも呼ぶ)について説明を行う。図7は、第1の実施の形態における配置決定処理を説明するフローチャートである。
配置決定部111は、図7に示すように、配置決定タイミングまで待機する(S101のNO)。配置決定タイミングは、例えば、管理者が仮想マシン3の再配置を行うことを決定したタイミングであってよい。具体的に、配置決定タイミングは、仮想マシン3を配備した物理マシン2のうち、物理リソースの使用率が所定の閾値を上回った物理マシン2が発生したことに伴って、管理者が仮想マシン3の再配置を行うことを決定したタイミングであってよい。
そして、配置決定タイミングになった場合(S101のYES)、配置決定部111は、仮想マシン3の新たな配置(最適配置)を算出(決定)する(S102)。具体的に、配置決定部111は、例えば、数理計画法等を活用することにより、物理マシン2の物理リソースを効率的に使用することができる仮想マシン3の最適配置を算出する。
その後、情報管理部114は、S102の処理で算出した仮想マシン3の最適配置に基づき、移動対象情報131を作成する(S103)。具体的に、配置決定部111は、仮想マシン3毎に、仮想マシン3の情報と、仮想マシン3の移動元の物理マシン2の情報と、仮想マシン3の移動先の物理マシン2の情報とを対応付けることにより、移動対象情報131を作成する。以下、移動対象情報131の具体例について説明を行う。
図12は、移動対象情報131の具体例を説明する図である。以下、配置決定部111が、図2で説明した仮想マシン3の配置を、図3で説明した仮想マシン3の配置に変更することを決定した場合について説明を行う。なお、以下、図2等で説明した物理マシン2A、2B、2C、2D、2E及び2Fを、それぞれ物理マシンA、B、C、D、E及びF、または、それぞれ単にA、B、C、D、E及びFとも表記する。また、以下、図2等で説明した仮想マシン3A、3B、3C、3D、3E及び3Fを、それぞれ仮想マシンA、B、C、D、E及びF、または、それぞれ単にA、B、C、D、E及びFとも表記する。
図12に示す移動対象情報131は、移動対象情報131に含まれる各情報を識別する「情報ID」と、各仮想マシン3の名称を示す「仮想マシン名」と、各仮想マシン3が動作するために使用するメモリの使用容量を示す「メモリ使用容量」とを項目として有する。また、図12に示す移動対象情報131は、各仮想マシン3が動作するために使用するディスクの使用容量を示す「ディスク使用容量」と、移動元の物理マシン2の名称を示す「移動元物理マシン名」とを項目として有する。さらに、図12に示す移動対象情報131は、移動先の物理マシン2の名称を示す「移動先物理マシン名」と、退避先の物理マシン2の名称を示す「退避先物理マシン名」と、退避が行われたか否かを示すフラグである「退避フラグ」とを有する。
具体的に、図12に示す移動対象情報131において、「情報ID」が「1」である情報には、「仮想マシン名」として「仮想マシンB」が設定され、「メモリ使用容量」として「1(GB)」が設定され、「ディスク使用容量」として「1(GB)」が設定されている。また、図12に示す移動対象情報131において、「情報ID」が「1」である情報には、「移動元物理マシン名」として「A」が設定され、「移動先物理マシン名」として「E」が設定され、「退避先物理マシン」がブランクになっている。さらに、図12に示す移動対象情報131において、「情報ID」が「1」である情報には、「退避フラグ」として「0」が設定されている。図12の他の情報については説明を省略する。
なお、情報管理部114は、図12に示す移動対象情報131に含まれる各情報について、図12に示すように、「メモリ使用容量」に設定された値と、「ディスク使用容量」に設定された値との合計値(以下、単に合計値とも呼ぶ)が小さい順に並び替えを行うものであってよい。具体的に、図12に示す移動対象情報131には、仮想マシンB(合計値が「2」)、仮想マシンD(合計値が「2」)、仮想マシンE(合計値が「2」)、仮想マシンA(合計値が「3」)、仮想マシンC(合計値が「4」)及び仮想マシンF(合計値が「4」)の順で情報が設定されている。これにより、情報管理部114は、合計値が小さい順に仮想マシン3の移動を行うことが可能になる。そのため、情報管理部114は、各仮想マシン3の移動の平均所要時間を抑えることが可能になる。
一方、情報管理部114は、図12に示す移動対象情報131に含まれる各情報について、「メモリ使用容量」に設定された値と、「ディスク使用容量」に設定された値との合計値が大きい順に並び替えを行うものであってよい。これにより、情報管理部114は、合計値が大きい順に仮想マシン3の移動を行うことが可能になる。そのため、情報管理部114は、仮想マシン3の移動の全体所要時間を抑えることが可能になる。
また、情報管理部114は、図12に示す移動対象情報131に含まれる各情報について、以下の式(1)に従った評価値をそれぞれ算出し、算出した評価値の小さい順(大きい順)に並び替えるものであってもよい。
評価値 = 「メモリ使用容量」に設定された値 ×(移動対象情報131に含まれる各情報の「メモリ使用容量」に設定された値の平均値 / 移動対象情報131に含まれる各情報の「ディスク使用容量」に設定された値の平均値)+「ディスク使用容量」に設定された値 ・・・ 式(1)
さらに、情報管理部114は、仮想マシン3の移動元の物理マシン2と移動先の物理マシン2との関係にある物理マシン2をグループ化させるものであってもよい。そして、情報管理部114は、各グループに属する物理マシン2に配備された仮想マシン3の移動が順に行われるように、図12に示す移動対象情報131に含まれる各情報を並び替えるものであってもよい。
具体的に、図3に示す例において、物理マシンA、D及びEは、仮想マシンA、B、D及びEの移動元の物理マシン2または移動先の物理マシン2である。また、物理マシンB及びFは、仮想マシンC及びFの移動元の物理マシン2または移動先の物理マシン2である。そのため、情報管理部114は、例えば、物理マシンA、D及びEを第1グループとし、物理マシンB及びFを第2グループとする。そして、情報管理部114は、例えば、第1グループの物理マシン2に配備された仮想マシンA、B、D及びEと、第2グループの物理マシン2に配備された仮想マシンB及びFとが可能な限り交互に並ぶように、図12に示す移動対象情報131に含まれる各情報を並び替える。
これにより、移動指示部115は、移動先の物理マシン2への仮想マシン3の移動を、可能な限り並行して行うことが可能になる。そのため、移動指示部115は、移動先の物理マシン2への仮想マシン3の移動の所要時間を短縮することが可能になる。
なお、情報管理部114は、作成した各グループに関する情報を情報格納領域130に記憶するものであってもよい。これにより、移動指示部115は、情報格納領域130に記憶された各グループに関する情報を参照することで、移動先の物理マシン2への仮想マシン3の移動を可能な限り並行して行うことが可能になる。
図7に戻り、情報管理部114は、S103の処理で作成した移動対象情報131を情報格納領域130に記憶する(S104)。これにより、移動順序決定部113は、後述するように、仮想マシン3の移動順序を決定することが可能になる。
[移動制御処理の詳細]
次に、第1の実施の形態における移動制御処理の詳細について説明を行う。図8から図11は、第1の実施の形態における移動制御処理の詳細を説明するフローチャートである。
次に、第1の実施の形態における移動制御処理の詳細について説明を行う。図8から図11は、第1の実施の形態における移動制御処理の詳細を説明するフローチャートである。
情報取得部112は、図8に示すように、仮想マシン3の移動タイミングまで待機する(S11のNO)。そして、仮想マシン3の移動タイミングになった場合(S11のYES)、情報取得部112は、情報格納領域130に記憶された移動対象情報131を取得する(S12)。また、情報取得部112は、複数の物理マシン2及び複数の仮想マシン3のそれぞれの状態を示す第1状態情報132aを取得する(S13)。以下、第1状態情報132aの具体例について説明を行う。なお、以下、物理マシン2に関する第1状態情報132aを物理マシン状態情報141aとも呼び、仮想マシン3に関する第1状態情報132aを仮想マシン状態情報142aとも呼ぶ。
図13は、物理マシン状態情報141aの具体例を説明する図である。図13に示す物理マシン状態情報141aは、物理マシン状態情報141aに含まれる各情報を識別する「情報ID」と、各物理マシン2のメモリの空き容量を示す「メモリ空き容量」とを項目として有する。また、図13に示す物理マシン状態情報141aは、各物理マシン2のディスクの空き容量を示す「ディスクの空き容量」と、各物理マシン2に配備されている仮想マシン3の名称を示す「仮想マシン名」とを項目として有する。
具体的に、図13に示す物理マシン状態情報141aにおいて、「情報ID」が「1」である情報には、「物理マシン名」として「物理マシンA」が設定されている。また、図13に示す物理マシン状態情報141aにおいて、「情報ID」が「1」である情報には、「メモリ空き容量」として「0(GB)」が設定され、「ディスク空き容量」として「1(GB)」が設定され、「仮想マシン名」として「A,B」が設定されている。図13の他の情報については説明を省略する。
また、図14は、仮想マシン状態情報142aの具体例を説明する図である。図14に示す仮想マシン状態情報142aは、仮想マシン状態情報142aに含まれる各情報を識別する「情報ID」と、各仮想マシン3が動作するために必要なメモリの使用容量を示す「メモリ空き容量」とを項目として有する。また、図14に示す仮想マシン状態情報142aは、各仮想マシン3が動作するために必要なディスクの使用容量を示す「ディスクの空き容量」と、各仮想マシン3が配備されている物理マシン2の名称を示す「仮想マシン名」とを項目として有する。
具体的に、図14に示す仮想マシン状態情報142aにおいて、「情報ID」が「1」である情報には、「仮想マシン名」として「仮想マシンA」が設定されている。また、図14に示す物理マシン状態情報132bにおいて、「情報ID」が「1」である情報には、「メモリ使用容量」として「1(GB)」が設定され、「ディスク使用容量」として「2(GB)」が設定され、「物理マシン名」として「A」が設定されている。図14の他の情報については説明を省略する。
図8に戻り、情報取得部112は、S12の処理で取得した移動対象情報131及びS13で取得した第1状態情報132aに基づき、残余物理リソース情報135を作成する(S14)。残余物理リソース情報135は、各物理マシン2の現在の残余物理リソースに関する情報である。そして、情報取得部112は、S14の処理で作成した残余物理リソース情報135を情報格納領域130に記憶する(S15)。以下、残余物理リソース情報135の具体例について説明を行う。
図15は、残余物理リソース情報135の具体例を説明する図である。図15に示す残余物理リソース情報135は、残余物理リソース情報135に含まれる各情報を識別する「情報ID」と、各物理マシン2の名称を示す「物理マシン名」とを項目として有する。また、図15に示す残余物理リソース情報135は、各物理マシン2のメモリの空き容量を示す「メモリ空き容量」と、各物理マシン2のディスクの空き容量を示す「ディスクの空き容量」とを項目として有する。
具体的に、図15に示す残余物理リソース情報135において、「情報ID」が「1」である情報には、「物理マシン名」として「物理マシンA」が設定されている。また、図15に示す残余物理リソース情報135において、「情報ID」が「1」である情報には、「メモリ空き容量」として「0(GB)」が設定され、「ディスク空き容量」として「1(GB)」が設定されている。図15の他の情報については説明を省略する。
図9に戻り、移動順序決定部113は、移動対象情報131に含まれている全ての情報を抽出済であるか否かを判定する(S21)。その結果、全ての情報が抽出済ではない場合(S21のNO)、移動順序決定部113は、移動対象情報131に含まれる情報を1組取得する(S22)。具体的に、移動順序決定部113は、図12に示す移動対象情報131に含まれる情報から1行分に対応する情報を取得する。
そして、移動順序決定部113は、S22の処理で抽出した情報に対応する仮想マシン3が移動先の物理マシン2に移動可能であるか否かを判定する(S23)。その結果、移動先の物理マシン2に移動可能である場合(S23のYES)、移動順序決定部113は、S22の処理で抽出した情報を移動決定情報133に追加する(S24)。
さらに、情報管理部114は、S22の処理で抽出した情報に基づき、残余物理リソース情報135を更新する(S25)。すなわち、情報管理部114は、移動先の物理マシン2に移動可能であると判定した仮想マシン3を移動先の物理マシン2に移動したと仮定して、残余物理リソース情報135の更新を行う。
一方、S22の処理で抽出した情報に対応する仮想マシン3が移動先の物理マシン2に移動可能でない場合(S23のNO)、情報管理部114は、S22の処理で抽出した情報を移動未完了情報134に追加する(S26)。
これにより、情報管理部114は、移動先の物理マシン2に移動を行うことができる仮想マシン3に関する情報と、現状では移動先の物理マシン2に移動を行うことができない仮想マシン3に関する情報とを分けて管理することが可能になる。
なお、以下、S15の処理が行われた後、S21の処理において移動対象情報131に含まれている全ての情報を抽出済であると判定されるまで行われる処理を、移動仮想マシン決定処理とも呼ぶ。
[1回目の移動仮想マシン決定処理の具体例]
次に、移動仮想マシン決定処理の具体例について説明を行う。図16から図20は、1回目に実行される移動仮想マシン決定処理の具体例を説明する図である。
次に、移動仮想マシン決定処理の具体例について説明を行う。図16から図20は、1回目に実行される移動仮想マシン決定処理の具体例を説明する図である。
図12に示す移動対象情報131において、移動順序決定部113は、初めに、「情報ID」が「1」である情報(「仮想マシン名」が「仮想マシンB」である情報)を抽出する(S22)。そして、移動順序決定部113は、「情報ID」が「1」の「メモリ使用容量」に設定された情報である「1(GB)」と、「ディスク使用容量」に設定された情報である「1(GB)」とを取得する。また、移動順序決定部113は、「情報ID」が「1」の「移動先物理マシン名」に設定された情報である「E(物理マシンE)」を取得する。
その後、移動順序決定部113は、図15で説明した残余物理リソース情報135を参照し、「物理マシン名」が「物理マシンE」である情報の「メモリ空き容量」に設定された情報である「1(GB)」と、「ディスク空き容量」に設定された情報である「2(GB)」とを取得する。
ここで、移動順序決定部113が取得した情報のうち、仮想マシンBの情報の「メモリ使用容量」及び「ディスク使用容量」に設定された情報は、それぞれ物理マシンEの「メモリ空き容量」及び「ディスク空き容量」に設定された情報よりも小さい。そのため、移動順序決定部113は、S23の処理で抽出した情報に対応する仮想マシン3である仮想マシンBが、移動先の物理マシンである物理マシンEに移動可能であると判定する(S23のYES)。
したがって、移動順序決定部113は、図16に示すように、S22の処理で抽出した情報(図12に示す移動対象情報131のうちの「仮想マシン名」が「仮想マシンB」である情報)を、移動決定情報133として情報格納領域130に記憶する(S24)。また、移動順序決定部113は、図17の下線部分に示すように、図15に示す残余物理リソース情報135における物理マシンEのメモリ空き容量である「1(GB)」を、仮想マシンBのメモリ使用容量である「1(GB)」を減算した値である「0(GB)」に更新する(S25)。さらに、移動順序決定部113は、図17の下線部分に示すように、図15に示す残余物理リソース情報135における物理マシンEのディスク空き容量である「2(GB)」を、仮想マシンBのディスク使用容量である「1(GB)」を減算した値である「1(GB)」に更新する(S25)。
その後、移動順序決定部113は、図12に示す移動対象情報131に含まれる全ての情報が抽出済になるまで、S21からS26の処理の実行を繰り返す。その結果、移動順序決定部113は、S23の処理において、仮想マシンB(図12に示す移動対象情報131の「情報ID」が「1」である情報)及び仮想マシンE(図12に示す移動対象情報131の「情報ID」が「3」である情報)が移動可能であると判定する。また、移動順序決定部113は、仮想マシンD(図12に示す移動対象情報131の「情報ID」が「2」である情報)及び仮想マシンA(図12に示す移動対象情報131の「情報ID」が「4」である情報)が移動可能でないと判定する。さらに、移動順序決定部113は、仮想マシンC(図12に示す移動対象情報131の「情報ID」が「5」である情報)及び仮想マシンF(図12に示す移動対象情報131の「情報ID」が「6」である情報)が移動可能でないと判定する。
したがって、移動順序決定部113は、図18の下線部分に示すように、図12に示す移動対象情報131のうちの「情報ID」が「3」である情報を、図16に示す移動決定情報133に対する追加情報として情報格納領域130に記憶する(S24)。また、移動順序決定部113は、図19の下線部分に示すように、図17で説明した残余物理リソース情報135の物理マシンDのメモリ空き容量である「3(GB)」を、仮想マシンEのメモリ使用容量である「1(GB)」を減算した値である「2(GB)」に更新する(S25)。さらに、移動順序決定部113は、図19の下線部分に示すように、図17に示す残余物理リソース情報135の物理マシンDのディスク空き容量である「3(GB)」を、仮想マシンEのディスク使用容量である「1(GB)」を減算した値である「2(GB)」に更新する(S25)。
また、移動順序決定部113は、図20に示すように、図12に示す移動対象情報131のうちの「情報ID」が「2」及び「4」から「6」である情報を、移動未完了情報134として情報格納領域130に記憶する(S26)。
なお、移動順序決定部113は、移動未完了情報134を情報格納領域130に記憶する際に、移動未完了情報134に含まれる各情報の並び替えを行うものであってよい。具体的に、移動順序決定部113は、この場合、図12で説明した第1グループの物理マシン2に配備された仮想マシンA、B、D及びEと、図12で説明した第2グループの物理マシン2に配備された仮想マシンB及びFとを特定する。そして、移動順序決定部113は、第1グループの物理マシン2に配備された仮想マシン3と第2グループの物理マシン2に配備された仮想マシン3とが可能な限り交互に並ぶように、移動未完了情報134の各情報を並び替える。これにより、移動指示部115は、後述するように、移動未完了情報134に含まれる情報を新たな移動対象情報131として作成した場合に、移動先の物理マシン2への仮想マシン3の移動を、可能な限りグループ毎に並行して行うことが可能になる。そのため、移動指示部115は、移動先の物理マシン2への仮想マシン3の移動の所要時間を短縮することが可能になる。
また、移動対象情報131は、「メモリ使用容量」及び「ディスク使用容量」の項目を有しないものであってもよい。この場合、移動順序決定部113は、S23の処理において、図14で説明した仮想マシン状態情報142aを参照することにより、各仮想マシン3に対応する「メモリ使用容量」及び「ディスク使用容量」に設定された情報を取得するものであってよい。
図9に戻り、移動対象情報131に含まれている全ての情報を抽出済である場合(S21のYES)、移動順序決定部113は、図10に示すように、移動未完了情報134に含まれる全ての情報が抽出済であるか否かを判定する(S31)。その結果、移動未完了情報134に含まれる全ての情報が抽出済でない場合(S31のNO)、移動順序決定部113は、移動未完了情報134に含まれる情報を1組取得する(S32)。具体的に、移動順序決定部113は、図20に示す移動未完了情報134に含まれる情報から1行分に対応する情報を取得する。
そして、移動順序決定部113は、S32の処理で抽出した情報に対応する仮想マシン3が移動先以外の物理マシン2に退避可能であるか否かを判定する(S33)。その結果、移動先以外の物理マシン2に退避可能である場合(S33のYES)、移動順序決定部113は、S32の処理で抽出した情報を移動決定情報133に追加する(S34)。また、移動順序決定部113は、この場合、S32の処理で抽出した情報に基づき、残余物理リソース情報135を更新する(S35)。さらに、移動順序決定部113は、この場合、S32の処理で抽出した情報に基づき、移動未完了情報134を更新する(S36)。
すなわち、移動順序決定部113は、移動先の物理マシン2に現状では移動を行うことができない仮想マシン3であるが、移動先以外の物理マシン2に退避可能な仮想マシン3については退避を行う。これにより、移動順序決定部113は、後述するように、移動先の物理マシン2に現状では移動を行うことができない仮想マシン3であっても、移動先の物理マシン2に移動することができるようになる仮想マシン3を発生させることが可能になる。
一方、S32の処理で抽出した情報に対応する仮想マシン3が移動先以外の物理マシン2に退避可能でない場合(S33のNO)、移動順序決定部113は、図20に示す移動未完了情報134に含まれる全ての情報を抽出するまで、S31以降の処理を繰り返し実行する。
なお、以下、S21の処理において移動対象情報131に含まれている全ての情報を抽出済であると判定された後、S31の処理において移動未完了情報134に含まれる全ての情報が抽出済であると判定されるまでの処理を、退避仮想マシン決定処理とも呼ぶ。
[1回目の退避仮想マシン決定処理の具体例]
次に、1回目に実行される退避仮想マシン決定処理の具体例について説明を行う。図21から図26は、1回目に実行される退避仮想マシン決定処理の具体例を説明する図である。
次に、1回目に実行される退避仮想マシン決定処理の具体例について説明を行う。図21から図26は、1回目に実行される退避仮想マシン決定処理の具体例を説明する図である。
図20に示す移動未完了情報134において、移動順序決定部113は、初めに、「情報ID」が「1」である情報(「仮想マシン名」が「仮想マシンD」である情報)を抽出する(S32)。
そして、移動順序決定部113は、「情報ID」が「1」の「メモリ使用容量」に設定された情報である「1(GB)」と、「ディスク使用容量」に設定された情報である「1(GB)」とを取得する。さらに、移動順序決定部113は、図19に示す残余物理リソース情報135を参照し、情報の取得を行った仮想マシンDを退避させることができる物理マシン2を特定する。具体的に、図19に示す残余物理リソース情報135において、例えば、「情報ID」が「3」である情報(「物理マシン名」が「物理マシンC」である情報)の「メモリ空き容量」及び「ディスク空き容量」は、それぞれ「1(GB)」及び「1(GB)」である。そのため、仮想マシンDのメモリ使用容量及びディスク使用容量は、それぞれ物理マシンCのメモリ空き容量及びディスク空き容量よりも小さい。したがって、移動順序決定部113は、S23の処理で抽出した情報に対応する仮想マシン3である仮想マシンDが、移動先以外の物理マシン2である物理マシンCに退避可能であると判定する(S33のYES)。
なお、移動順序決定部113は、S33の処理において、移動未完了情報134に含まれる情報のうち、「退避フラグ」に「1」が設定されている情報に対応する仮想マシン3については、移動先以外の物理マシン2に退避しないものであってもよい。これにより、移動順序決定部113は、退避する必要のない仮想マシン3の退避が繰り返し行われることを防止し、移動先の物理マシン2に対する仮想マシン3の移動を効率的に行うことが可能になる。
ただし、移動順序決定部113は、移動決定情報133に情報が含まれていない場合に限り、移動未完了情報134に含まれる情報のうち、「退避フラグ」に「1」が設定されている情報に対応する仮想マシン3についても退避を行うものであってよい。すなわち、S33の処理を行う際に、移動決定情報133に情報が含まれていない場合、後述するように、情報処理装置1は、管理者が算出した最適配置に従った仮想マシン3の再配置に失敗する可能性が高い。そのため、移動順序決定部113は、この場合、「退避フラグ」に「1」が設定されている情報に対応する仮想マシン3についても、退避を行う仮想マシン3の対象とするものであってよい。これにより、移動順序決定部113は、最適配置に従った仮想マシン3の再配置を行うことができる可能性を高めることが可能になる。
そして、移動順序決定部113は、図21の下線部分に示すように、S32の処理で抽出した情報(「仮想マシン名」が「仮想マシンD」である情報)を移動決定情報133として情報格納領域130に記憶する(S34)。具体的に、移動順序決定部113は、図21の下線部分に示すように、図20に示す移動未完了情報134の「情報ID」が「1」である情報を、移動決定情報133の「情報ID」が「3」である情報として設定する。
ここで、移動順序決定部113は、この場合、図21の下線部分に示すように、移動決定情報133の「情報ID」が「3」である情報の「退避先物理マシン名」に、仮想マシンDの退避を行った物理マシンCを示す「C」を設定する。これにより、移動順序決定部113は、退避した後の仮想マシンDを移動先の物理マシン2に移動させる際に、移動元となる物理マシン2の情報を適切に管理することが可能になる。また、移動順序決定部113は、図21の下線部分に示すように、「退避フラグ」に「1」を設定する。これにより、移動順序決定部113は、S33の処理を再度実行する際に、移動先以外の物理マシン2に既に退避している仮想マシン3(退避することが既に決定している仮想マシン3)を特定することが可能になる。
また、移動順序決定部113は、図22の下線部分に示すように、図19に示す残余物理リソース情報135の物理マシンCのメモリ空き容量である「1(GB)」を、仮想マシンDのメモリ使用容量である「1(GB)」を減算した値である「0(GB)」に更新する(S35)。そして、移動順序決定部113は、図22の下線部分に示すように、図19に示す残余物理リソース情報135の物理マシンCのディスク空き容量である「1(GB)」を、仮想マシンDのディスク使用容量である「1(GB)」を減算した値である「0(GB)」に更新する(S35)。
さらに、移動順序決定部113は、図23の下線部分に示すように、仮想マシンDの「移動元物理マシン名」に設定される情報を、仮想マシンDが退避を行う仮想マシン3である仮想マシンCに更新する。これにより、移動順序決定部113は、仮想マシンDの退避に行うことによる仮想マシンDの状態を移動未完了情報134に反映させることが可能になる。
その後、移動順序決定部113は、図20に示す移動未完了情報134に情報に含まれる全ての情報が抽出済になるまで、S31からS36の処理の実行を繰り返す。その結果、移動順序決定部113は、S33の処理において、仮想マシンD(「情報ID」が「1」である情報)及び仮想マシンC(「情報ID」が「3」である情報)が退避可能であると判定する。また、移動順序決定部113は、仮想マシンA(「情報ID」が「2」である情報)及び仮想マシンF(「情報ID」が「4」である情報)が退避可能でないと判定する。
したがって、移動順序決定部113は、図24の下線部分に示すように、図20に示す移動未完了情報134の「情報ID」が「3」である情報を、移動決定情報133の「情報ID」が「4」である情報として情報格納領域130に記憶する(S34)。この場合、移動順序決定部113は、図24の下線部分に示すように、移動決定情報133の「情報ID」が「4」である情報の「退避先物理マシン名」に、仮想マシンCの退避を行った物理マシンDを示す「D」を設定し、「退避フラグ」に「1」を設定する。
そして、移動順序決定部113は、図25の下線部分に示すように、図22で説明した残余物理リソース情報135の物理マシンDのメモリ空き容量である「2(GB)」を、仮想マシンCのメモリ使用容量である「2(GB)」を減算した値である「0(GB)」に更新する(S35)。さらに、移動順序決定部113は、図25の下線部分に示すように、図22に示す残余物理リソース情報135の物理マシンDのディスク空き容量である「2(GB)」を、仮想マシンCのディスク使用容量である「2(GB)」を減算した値である「0(GB)」に更新する(S35)。
また、移動順序決定部113は、図26の下線部分に示すように、移動未完了情報134の「情報ID」が「3」である情報の「移動元物理マシン名」を、仮想マシンCを退避する物理マシン2である物理マシンDを示す「D」に更新する(S36)。
すなわち、S32の処理で抽出した情報に対応する仮想マシン3が移動先以外の物理マシン2に退避可能である場合(S33のYES)、移動順序決定部113は、S32の処理で抽出した情報に対応する仮想マシン3の情報を移動決定情報133に追加する(S34)。一方、移動順序決定部113は、この場合、S32の処理で抽出した情報に対応する仮想マシン3の情報を移動未完了情報134から排除しない(S35)。
これにより、移動順序決定部113は、S32の処理で抽出した情報に対応する仮想マシン3について、移動先以外の物理マシン2に対して退避した後、再度、移動先の物理マシン2に対して移動する必要がある仮想マシン3として管理することが可能になる。
図10に戻り、移動未完了情報134に含まれる全ての情報が抽出済である場合(S31のYES)、移動順序決定部113は、図11に示すように、移動決定情報133に情報が含まれているかを判定する(S41)。その結果、移動決定情報133に情報が含まれている場合(S41のNO)、移動指示部115は、移動決定情報133に情報が含まれる仮想マシン3の移動を指示する(S42)。すなわち、移動指示部115は、S23の処理で移動先の物理マシン2に移動可能であると判定された仮想マシン3の移動と、S33の処理で移動先以外の物理マシン2に退避可能であると判定された仮想マシン3の退避を指示する。
そして、移動順序決定部113は、移動未完了情報134に情報が含まれているかを判定する(S44)。その結果、移動未完了情報134に情報が含まれている場合(S44のNO)、移動順序決定部113は、S42の処理で移動した仮想マシン3の情報に基づき、残余物理リソース情報135を更新する(S45)。すなわち、S42の処理において仮想マシン3の移動が完了した場合、移動が完了した仮想マシン3が使用していた移動元の物理マシン2の物理リソースは解放される。そのため、移動順序決定部113は、S45の処理において、残余物理リソース情報135の更新を行う。
また、移動順序決定部113は、この場合、移動未完了情報134に含まれる情報に基づき、移動対象情報131を更新する(S46)。そして、移動順序決定部113は、S21以降の処理(移動仮想マシン決定処理及び退避仮想マシン決定処理)を再度実行する。すなわち、S44の処理において、移動未完了情報134に情報が存在している場合、移動先の物理マシン2に対する各仮想マシン3の移動が完了していないことになる。そのため、移動順序決定部113は、この場合、移動未完了情報134に存在していた情報を移動対象情報131として、S21以降の処理を再度実行する。
一方、移動決定情報133に情報が含まれていない場合(S41のYES)、移動指示部115は、S42の処理で移動を指示した仮想マシン3に、移動元の物理マシン2への移動を指示する(S43)。そして、移動指示部115は、移動制御処理を終了する。すなわち、S41の処理において、移動決定情報133に情報が存在しない場合、移動先の物理マシン2に移動可能であると判定された仮想マシン3だけでなく、移動先以外の物理マシン2に退避可能であると判定された仮想マシン3も存在しないことになる。そのため、この場合、移動指示部115は、各仮想マシン3の稼働を継続させた状態で、配置決定部111が算出した仮想マシン3の配置を実現することはできないと判定する。したがって、移動指示部115は、この場合、例えば、仮想マシン3を移動制御処理が開始される前の状態に戻し、移動制御処理を終了(異常終了)する。
また、S42の処理において仮想マシン3の移動を指示した後、移動未完了情報134に情報が存在しない場合(S41のNO、S42、S44のYES)、移動順序決定部113は、移動制御処理を終了する。すなわち、この場合、移動順序決定部113は、移動先の物理マシン2に移動すべき全ての仮想マシン3の移動が完了したと判定し、移動制御処理を終了(正常終了)する。
なお、以下、S31の処理において全ての情報が抽出済であると判定された後、S43またはS46の処理が行われるまで、または、S44の処理において移動未完了情報134に情報が存在しないと判定されるまでの処理を、仮想マシン移動処理とも呼ぶ。
[1回目の仮想マシン移動処理の具体例]
次に、1回目に実行される仮想マシン移動処理の具体例について説明を行う。図27及び図28は、1回目に実行される仮想マシン移動処理の具体例を説明する図である。
次に、1回目に実行される仮想マシン移動処理の具体例について説明を行う。図27及び図28は、1回目に実行される仮想マシン移動処理の具体例を説明する図である。
移動順序決定部113は、初めに、図24に示す移動決定情報133に含まれる全ての情報(「情報ID」が「1」から「4」である情報)の移動を行う(S42)。
その後、図26に示すように、移動未完了情報134に情報が存在しているため(S44のNO)、移動順序決定部113は、図24に示す移動決定情報133を参照する。そして、移動順序決定部113は、S42の処理で移動を行った仮想マシン3の「メモリ使用容量」、「ディスク使用容量」及び「移動元物理マシン名」に設定された情報を取得する。具体的に、移動順序決定部113は、図24に示す移動決定情報133から、仮想マシンBの「メモリ使用容量」として「1(GB)」を取得し、「ディスク使用容量」として「1(GB)」を取得し、「移動元物理マシン名」として「A(物理マシンA)」を取得する。また、移動順序決定部113は、仮想マシンEの「メモリ使用容量」として「1(GB)」を取得し、「ディスク使用容量」として「1(GB)」を取得し、「移動元物理マシン名」として「E(物理マシンE)」を取得する。また、移動順序決定部113は、仮想マシンDの「メモリ使用容量」として「1(GB)」を取得し、「ディスク使用容量」として「1(GB)」を取得し、「移動元物理マシン名」として「D(物理マシンD)」を取得する。さらに、移動順序決定部113は、仮想マシンCの「メモリ使用容量」として「2(GB)」を取得し、「ディスク使用容量」として「2(GB)」を取得し、「移動元物理マシン名」として「B(物理マシンB)」を取得する。
そして、移動順序決定部113は、移動決定情報133から取得した情報に基づき、残余物理リソース情報135を更新する(S45)。具体的に、移動順序決定部113は、図25における物理マシンAの「メモリ空き容量」に設定された値である「0(GB)」と、図26における仮想マシンAの「メモリ使用容量」に設定された値である「1(GB)」とを取得する。そして、移動順序決定部113は、図27の下線部分に示すように、物理マシンAの「メモリ空き容量」に、「0(GB)」と「1(GB)」とを加算した値である「1(GB)」を設定する。また、移動順序決定部113は、図25における物理マシンAの「ディスク空き容量」に設定された値である「1(GB)」と、図26における仮想マシンAの「ディスク使用容量」に設定された値である「1(GB)」とを取得する。そして、移動順序決定部113は、図27の下線部分に示すように、物理マシンAの「ディスク空き容量」に、「1(GB)」と「1(GB)」とを加算した値である「2(GB)」を設定する。さらに、移動順序決定部113は、図27の下線部分に示すように、物理マシンB、D及びEについても同様に、残余物理リソース情報135の更新を行う。
その後、移動順序決定部113は、図28に示すように、図26に示す移動未完了情報134に含まれる情報を、新たな移動対象情報131をして作成する(S46)。
[2回目の移動仮想マシン決定処理の具体例]
次に、2回目に実行される移動仮想マシン決定処理の具体例について説明を行う。図29から図31は、2回目に実行される移動仮想マシン決定処理の具体例を説明する図である。
次に、2回目に実行される移動仮想マシン決定処理の具体例について説明を行う。図29から図31は、2回目に実行される移動仮想マシン決定処理の具体例を説明する図である。
図28に示す移動対象情報131において、移動順序決定部113は、初めに、「情報ID」が「1」である情報(「仮想マシン名」が「仮想マシンD」である情報)を抽出する(S22)。そして、移動順序決定部113は、「情報ID」が「1」の「メモリ使用容量」に設定された情報である「1(GB)」と、「ディスク使用容量」に設定された情報である「1(GB)」とを取得する。さらに、移動順序決定部113は、「情報ID」が「1」の「移動先物理マシン名」に設定された情報である「A(物理マシンA)」を取得する。
その後、移動順序決定部113は、図27に示す残余物理リソース情報135を参照し、「物理マシン名」に設定された情報が「物理マシンA」である情報の「メモリ空き容量」に設定された情報である「1(GB)」と、「ディスク空き容量」に設定された情報である「2(GB)」とを取得する。
ここで、移動順序決定部113が取得した情報のうち、仮想マシンDのメモリ使用容量及びディスク使用容量は、それぞれ物理マシンAのメモリ空き容量及びディスク空き容量よりも小さい。そのため、移動順序決定部113は、S23の処理で抽出した情報に対応する仮想マシン3である仮想マシンDが、移動先の物理マシン2である物理マシンAに移動可能であると判定する(S23のYES)。したがって、移動順序決定部113は、S22の処理で抽出した情報(「仮想マシン名」が「仮想マシンD」である情報)を移動決定情報133として情報格納領域130に記憶する(S24)。
また、移動順序決定部113は、図27に示す残余物理リソース情報135の物理マシンAのメモリ空き容量である「1(GB)」を、仮想マシンDのメモリ使用容量である「1(GB)」を減算した値である「0(GB)」に更新する(S25)。さらに、移動順序決定部113は、図27に示す残余物理リソース情報135の物理マシンAのディスク空き容量である「2(GB)」を、仮想マシンDのディスク使用容量である「1(GB)」を減算した値である「1(GB)」に更新する(S25)。
その後、移動順序決定部113は、図28に示す移動対象情報131に含まれる全ての情報が抽出済になるまで、S21からS26の処理の実行を繰り返す。その結果、移動順序決定部113は、S23の処理において、仮想マシンD(図28に示す移動対象情報131の「情報ID」が「1」である情報)及び仮想マシンA(図28に示す移動対象情報131の「情報ID」が「3」である情報)が移動可能であると判定する。また、移動順序決定部113は、S23の処理において、仮想マシンF(図28に示す移動対象情報131の「情報ID」が「4」である情報)が移動可能であると判定する。また、移動順序決定部113は、S23の処理において、仮想マシンC(図28に示す移動対象情報131の「情報ID」が「2」である情報)が移動可能でないと判定する。
したがって、移動順序決定部113は、図29に示すように、図28の移動対象情報131のうち、「情報ID」が「1」、「3」及び「4」である情報を移動決定情報133として情報格納領域130に記憶する(S24)。
また、移動順序決定部113は、図30の下線部分に示すように、図27に示す残余物理リソース情報135における物理マシンAのメモリ空き容量である「1(GB)」を、仮想マシンDのメモリ使用容量である「1(GB)」を減算した値である「0(GB)」に更新する(S25)。さらに、移動順序決定部113は、図30の下線部分に示すように、図27に示す残余物理リソース情報135における物理マシンAのディスク空き容量である「2(GB)」を、仮想マシンEのディスク使用容量である「1(GB)」を減算した値である「1(GB)」に更新する。同様に、移動順序決定部113は、図30の下線部分に示すように、図27に示す残余物理リソース情報135における物理マシンBのメモリ空き容量である「2(GB)」を「0(GB)」に更新し、物理マシンBのディスク空き容量である「2(GB)」を「0(GB)」に更新する。また、移動順序決定部113は、図30の下線部分に示すように、図27に示す残余物理リソース情報135における物理マシンEのメモリ空き容量である「1(GB)」を「0(GB)」に更新し、物理マシンEのディスク空き容量である「2(GB)」を「0(GB)」に更新する(S25)。
また、移動順序決定部113は、図31に示すように、図28の移動対象情報131のうち、「情報ID」が「2」である情報を移動未完了情報134として情報格納領域130に記憶する(S26)。
[2回目の退避仮想マシン決定処理の具体例]
次に、2回目に実行される退避仮想マシン決定処理の具体例について説明を行う。
次に、2回目に実行される退避仮想マシン決定処理の具体例について説明を行う。
図31に示す移動未完了情報134において、移動順序決定部113は、初めに、「情報ID」が「1」である情報(「仮想マシン名」が「仮想マシンC」である情報)を抽出する(S32)。そして、移動順序決定部113は、「情報ID」が「1」の「メモリ使用容量」に設定された情報である「2(GB)」と、「ディスク使用容量」に設定された情報である「2(GB)」とを取得する。
さらに、移動順序決定部113は、図30に示す残余物理リソース情報135を参照し、情報の取得を行った仮想マシンCを退避させることができる物理マシン2を特定する。
ここで、物理マシンA、B、C及びE(仮想マシンCの移動元の物理マシン2及び移動先の物理マシン2以外の物理マシン2)には、仮想マシンCを退避させることができる物理マシン2は存在しない。そのため、移動順序決定部113は、S23で抽出した情報に対応する仮想マシン3である仮想マシンCは、移動先以外の物理マシン2である物理マシンCに退避可能でないものと判定する(S33のNO)。そして、図31に示す移動未完了情報134に含まれる情報の全てが抽出済であるため、移動順序決定部113は、S41以降の処理を実行する(S31のYES)。
[2回目の仮想マシン移動処理の具体例]
次に、2回目に実行される仮想マシン移動処理の具体例について説明を行う。図32及び図33は、2回目に実行される仮想マシン移動処理の具体例を説明する図である。
次に、2回目に実行される仮想マシン移動処理の具体例について説明を行う。図32及び図33は、2回目に実行される仮想マシン移動処理の具体例を説明する図である。
移動順序決定部113は、初めに、図29に示す移動決定情報133に含まれる全ての情報(「情報ID」が「1」から「3」である情報)の移動を行う(S42)。
その後、図31に示すように、移動未完了情報134に情報が存在しているため(S44のNO)、移動順序決定部113は、図29に示す移動決定情報133を参照する。そして、移動順序決定部113は、S42の処理で移動を行った仮想マシン3の「メモリ使用容量」、「ディスク使用容量」及び「移動元物理マシン名」に設定された情報を取得する。具体的に、移動順序決定部113は、図29に示す移動決定情報133から、仮想マシンDの「メモリ使用容量」として「1(GB)」を取得し、「ディスク使用容量」として「1(GB)」を取得し、「移動元物理マシン名」として「C」を取得する。また、移動順序決定部113は、仮想マシンAの「メモリ使用容量」として「1(GB)」を取得し、「ディスク使用容量」として「2(GB)」を取得し、「移動元物理マシン名」として「A」を取得する。さらに、移動順序決定部113は、仮想マシンFの「メモリ使用容量」として「2(GB)」を取得し、「ディスク使用容量」として「2(GB)」を取得し、「移動元物理マシン名」として「F(物理マシンF)」を取得する。
そして、移動順序決定部113は、移動決定情報133から取得した情報に基づき、残余物理リソース情報135を更新する(S45)。具体的に、移動順序決定部113は、図30における物理マシンCの「メモリ空き容量」に設定された値である「0(GB)」と、図29における仮想マシンDの「メモリ使用容量」に設定された値である「1(GB)」とを取得する。そして、移動順序決定部113は、図32の下線部分に示すように、物理マシンCの「ディスク空き容量」に、「0(GB)」と「1(GB)」とを加算した値である「1(GB)」を設定する。また、移動順序決定部113は、図30における物理マシンCの「ディスク空き容量」に設定された値である「0(GB)」と、図29における仮想マシンDの「ディスク使用容量」に設定された値である「1(GB)」とを取得する。そして、移動順序決定部113は、図32の下線部分に示すように、物理マシンAの「ディスク空き容量」に、「0(GB)」と「1(GB)」とを加算した値である「1(GB)」を設定する。そして、移動順序決定部113は、図32の下線部分に示すように、仮想マシンA及びFに対応する情報についても同様に、残余物理リソース情報135の更新を行う。
その後、移動順序決定部113は、図33に示すように、図31に示す移動未完了情報134に含まれる情報を、新たな移動対象情報131をして作成する(S46)。
[3回目の移動仮想マシン決定処理の具体例]
次に、3回目に実行される移動仮想マシン決定処理の具体例について説明を行う。図34及び図35は、3回目に実行される移動仮想マシン決定処理の具体例を説明する図である。
次に、3回目に実行される移動仮想マシン決定処理の具体例について説明を行う。図34及び図35は、3回目に実行される移動仮想マシン決定処理の具体例を説明する図である。
図33に示す移動対象情報131において、移動順序決定部113は、初めに、「情報ID」が「1」である情報(「仮想マシン名」が「仮想マシンC」である情報)を抽出する(S22)。そして、移動順序決定部113は、「情報ID」が「1」の「メモリ使用容量」に設定された情報である「2(GB)」と、「ディスク使用容量」に設定された情報である「2(GB)」とを取得する。さらに、移動順序決定部113は、「情報ID」が「1」の「移動先物理マシン名」に設定された情報である「F(物理マシンF)」を取得する。
その後、移動順序決定部113は、図32に示す残余物理リソース情報135を参照し、「物理マシン名」に設定された情報が「物理マシンF」である情報の「メモリ空き容量」に設定された情報である「2(GB)」と、「ディスク空き容量」に設定された情報である「3(GB)」とを取得する。
ここで、移動順序決定部113が取得した情報のうち、仮想マシンCのメモリ使用容量及びディスク使用容量は、それぞれ物理マシンFのメモリ空き容量及びディスク空き容量よりも小さい。そのため、移動順序決定部113は、S23の処理で抽出した情報に対応する仮想マシン3である仮想マシンCが、移動先の物理マシン2である物理マシンFに移動可能であると判定する(S23のYES)。
したがって、移動順序決定部113は、図34に示すように、S22で抽出した情報(「仮想マシン名」が「仮想マシンC」である情報)を移動決定情報133として情報格納領域130に記憶する(S24)。また、移動順序決定部113は、図35の下線部分に示すように、図32に示す残余物理リソース情報135の物理マシンFのメモリ空き容量である「2(GB)」から、仮想マシンCのメモリ使用容量である「2(GB)」を減算した値である「0(GB)」に更新する(S25)。さらに、移動順序決定部113は、図35の下線部分に示すように、図32に示す残余物理リソース情報135の物理マシンFのディスク空き容量である「3(GB)」から、仮想マシンCのディスク使用容量である「2(GB)」を減算した値である「1(GB)」に更新する(S25)。
ここで、図33に示す移動対象情報131に含まれる全ての情報は抽出済である(S21のYES)。また、移動順序決定部113は、図34に示すように、図33に示す移動対象情報131に含まれる全ての情報を、移動決定情報133として情報格納領域130に記憶しているため、移動未完了情報134には、情報が含まれていない状態である(S31のYES)。そのため、移動順序決定部113は、S41以降の処理(仮想マシン移動処理)を実行する。
[3回目の仮想マシン移動処理の具体例]
次に、3回目に実行される仮想マシン移動処理の具体例について説明を行う。
次に、3回目に実行される仮想マシン移動処理の具体例について説明を行う。
移動指示部115は、初めに、図34に示す移動決定情報133に含まれる全ての情報(「情報ID」が「1」である情報)の移動を行う(S42)。
ここで、移動未完了情報134には、情報が存在していない(S44のYES)。そのため、移動順序決定部113は、移動先の物理マシン2に送信する必要がある仮想マシン3の全てを、それぞれの移動先の物理マシン2に送信したものと判定する。したがって、移動順序決定部113は、移動制御処理を終了(正常終了)する。
このように、情報処理装置1は、仮想マシン3毎に、仮想マシン3の情報と、仮想マシン3の移動元の物理マシン2の情報と、仮想マシン3の移動先の物理マシン2の情報とを対応付けた情報を含む移動対象情報131を取得する。また、情報処理装置1は、複数の物理マシン2及び複数の仮想マシン3それぞれの状態を示す第1状態情報132aを取得する。続いて、情報処理装置1は、移動対象情報131及び第1状態情報132aに基づき、複数の仮想マシン3のうち、移動先の物理マシン2に移動可能な仮想マシン3に、移動先の物理マシン2への移動を指示する。
そして、情報処理装置1は、移動先の物理マシン2への移動を指示していない仮想マシン3のうち、移動先の物理マシン2以外の物理マシン2への退避可能な仮想マシン3に、移動先の物理マシン2以外の物理マシン2への退避を指示する。その後、情報処理装置1は、仮想マシン3の退避後における、複数の物理マシン2及び複数の仮想マシン3のそれぞれについて、仮想マシン3の移動の可否を判定する第2状態情報132bを取得する。さらに、情報処理装置1は、移動対象情報131及び第2状態情報132bに基づき、移動先の物理マシン2への移動を指示していない仮想マシン3のうち、移動先の物理マシン2に移動可能な仮想マシン3に、移動先の物理マシン2への移動を指示する。
すなわち、情報処理装置1は、移動対象情報131及び状態情報132に基づいて、仮想マシン3の退避を行いながら移動先の物理マシン2への移動を順次行う。これにより、情報処理装置1は、例えば、複数の仮想マシン3を同時に移動させることができない場合であっても、管理者が算出した仮想マシン3の最適配置を実現するように仮想マシン3の再配置を行うことが可能になる。
[第2の実施の形態における移動制御処理]
次に、第2の実施の形態における移動制御処理について説明を行う。
次に、第2の実施の形態における移動制御処理について説明を行う。
第1の実施の形態のS42の処理において、移動指示部115は、移動制御処理が正常終了するか異常終了するかの判定(S41のYES、S44のYES)が行われる前に、移動先の物理マシン2に対する仮想マシン3の移動を行っている。これによって、移動指示部115は、全ての仮想マシン3の移動の所要時間を短縮することが可能になる。
これに対し、第2の実施の形態における移動指示部115は、S42の処理を行わず、移動制御処理が正常終了すると判定された後(S44の処理においてYESの判定が行われた後)に、移動先の物理マシン2への仮想マシン3の移動を行う。これにより、移動指示部115は、移動制御処理が異常終了した場合において、S42の処理で移動先の物理マシン2に対して移動を指示した仮想マシン3に対して、移動元の物理マシン2への移動を指示する処理(S43)を行う必要がなくなる。そのため、管理者は、移動制御処理が異常終了した場合における情報処理装置1の処理負担を軽減させることが可能になる。以下、第2の実施の形態における移動制御処理について説明を行う。
図36は、第2の実施の形態における移動制御処理の詳細を説明するフローチャートである。なお、図36は、第1の実施の形態における図11に対応する図である。そのため、以下、図11で説明した処理と異なる内容の処理についてのみ説明を行う。
図36に示すように、移動指示部115は、移動決定情報133に含まれる情報が存在し、移動未完了情報134に含まれる情報が存在しない場合に、移動決定情報133に情報が含まれる仮想マシン3の移動を指示する(S51のNO、S54のYES、S52)。また、移動指示部115は、移動決定情報133に含まれる情報が存在しない場合であっても、S43の処理に対応する処理を行わない(S51のYES)。
これにより、管理者は、移動制御処理が異常終了した場合における情報処理装置1の処理負担を軽減させることが可能になる。
[第3の実施の形態における移動制御処理]
次に、第3の実施の形態における移動制御処理について説明を行う。
次に、第3の実施の形態における移動制御処理について説明を行う。
第1の実施の形態のS33の処理において、移動順序決定部113は、S32の処理で抽出した情報に対応する仮想マシン3が移動先以外の物理マシン2に退避可能であるか否かを判定する。そして、退避可能である場合に、移動順序決定部113は、S32の処理で抽出した情報に対応する仮想マシン3の退避を指示する(S34、S42)。すなわち、第1の実施の形態における移動順序決定部113は、移動制御処理を終了させるために必要な退避であるか否かに関わらず、退避可能な全ての仮想マシン3の退避を行う。
これに対し、第3の実施の形態における移動順序決定部113は、移動制御処理を正常終了させるために必要な退避のみを行う。これにより、移動順序決定部113は、移動制御処理が正常終了するまでに行われる仮想マシン3の退避の回数を抑えることが可能になる。そのため、移動順序決定部113は、移動制御処理を効率的に行うことが可能になる。以下、第3の実施の形態における移動制御処理について説明を行う。
図37から図39は、第3の実施の形態における移動制御処理の詳細を説明するフローチャートである。また、図40から図55は、第3の実施の形態における移動制御処理の詳細を説明する図である。図40から図55を参照しながら、図3の実施の形態における移動制御処理の説明を行う。
[依存仮想マシン群特定処理]
初めに、第3の実施の形態における移動制御処理のうち、依存仮想マシン群情報137を作成する処理(以下、依存仮想マシン群特定処理とも呼ぶ)について説明を行う。
初めに、第3の実施の形態における移動制御処理のうち、依存仮想マシン群情報137を作成する処理(以下、依存仮想マシン群特定処理とも呼ぶ)について説明を行う。
依存仮想マシン群特定部116は、依存仮想マシン群特定タイミングまで待機する(S61のNO)。依存仮想マシン群特定タイミングは、退避仮想マシン決定処理が行われる前のタイミングであってよい。すなわち、依存仮想マシン群特定処理は、退避仮想マシン決定処理が行われる毎に、退避仮想マシン決定処理が行われる前のタイミングにおいて実行されるものであってよい。その後、依存仮想マシン群タイミングになった場合(S61のYES)、依存仮想マシン群特定部116は、依存仮想マシン情報136を作成する(S62)。以下、依存仮想マシン情報136の具体例について説明を行う。
[依存仮想マシン情報の具体例]
初めに、依存仮想マシン情報136を作成する際に用いられる依存グラフについて説明を行う。依存グラフは、移動先の物理マシン2に移動する必要がある仮想マシン3と、各仮想マシン3の依存仮想マシン31との関係(以下、この関係を依存関係とも呼ぶ)を示すグラフである。具体的に、依存グラフを作成する場合、依存仮想マシン群特定部116は、情報処理システム10を構成する物理マシン2毎の依存グラフである部分依存グラフを作成する。以下、部分依存グラフの具体例について説明を行う。なお、以下、仮想マシン3A、3B、3C、3D、3E及び3Fを、それぞれVM−A、VM−B、VM−C、VM−D、VM−E及びVM−Fとも表記する。また、以下、物理マシン2A、2B、2C、2D、2E及び2Fの部分依存グラフを、それぞれ部分依存グラフA、B、C、D、E及びFとも表記する。
初めに、依存仮想マシン情報136を作成する際に用いられる依存グラフについて説明を行う。依存グラフは、移動先の物理マシン2に移動する必要がある仮想マシン3と、各仮想マシン3の依存仮想マシン31との関係(以下、この関係を依存関係とも呼ぶ)を示すグラフである。具体的に、依存グラフを作成する場合、依存仮想マシン群特定部116は、情報処理システム10を構成する物理マシン2毎の依存グラフである部分依存グラフを作成する。以下、部分依存グラフの具体例について説明を行う。なお、以下、仮想マシン3A、3B、3C、3D、3E及び3Fを、それぞれVM−A、VM−B、VM−C、VM−D、VM−E及びVM−Fとも表記する。また、以下、物理マシン2A、2B、2C、2D、2E及び2Fの部分依存グラフを、それぞれ部分依存グラフA、B、C、D、E及びFとも表記する。
図40は、部分依存グラフを具体例である。図40に示す部分依存グラフは、図2に示す各仮想マシン3を、図3に示すように移動する際における依存関係を示す部分依存グラフである。
具体的に、図2に示す例において、物理マシン2Aには、仮想マシン3A及び仮想マシン3Bが配備されている。そして、仮想マシン3A及び仮想マシン3Bの移動先の物理マシン2である物理マシン2Eのメモリの空き容量は「1(GB)」であり、ディスクの空き容量は「2(GB)」である。また、仮想マシン3Aのメモリの使用容量は「1(GB)」であり、ディスクの使用容量は「2(GB)」であり、仮想マシン3Bのメモリの使用容量は「1(GB)」であり、ディスクの使用容量は「1(GB)」である。そのため、図2に示す例において、仮想マシン3A及び仮想マシン3Bのうちの1台の仮想マシン3のみが物理マシン2Eに移動可能である。そして、仮想マシン3A及び仮想マシン3Bの両方を物理マシン2Eに移動するためには、物理マシン2Eに配備されている仮想マシン3Eが、移動先の物理マシン2である物理マシン2Dに先に移動する必要がある。すなわち、この場合、仮想マシン3A及び仮想マシン3Bのうちの1台は、仮想マシン3Eに対して依存関係を有していることになる。
そのため、依存仮想マシン群特定部116は、図40の部分依存グラフEに示すように、例えば、各物理マシン2に配備されている仮想マシン3を示す上段部分に、VM−Eを設定する。また、依存仮想マシン群特定部116は、各仮想マシン3の移動が行われた後に各物理マシン2に配備される仮想マシン3を示す下段部分に、VM−A及びVM−Bを設定する。そして、依存仮想マシン群特定部116は、例えば、VM−A及びVM−Bのうちの1台の仮想マシン3であるVM−Bが、VM−Eに対して依存関係を有することを示す矢印(VM−EからVM−Bに延びる矢印)を設定する。なお、VM−Eに対する依存関係は、VM−A及びVM−Bのうちの1台の仮想マシン3のみが有する。そのため、図40に示す例において、依存仮想マシン群特定部116は、VM−EからVM−Aに延びる矢印を設定しない。
また、図3に示す例において、物理マシン2Eには、仮想マシン3Eが配備されている。そして、仮想マシン3Eの移動先の物理マシン2である物理マシン2Dのメモリの空き容量は「3(GB)」であり、ディスクの空き容量は「3(GB)」である。また、仮想マシン3Eのメモリの使用容量は「1(GB)」であり、ディスクの使用容量は「1(GB)」である。したがって、図2に示す例において、仮想マシン3Eは、他の仮想マシン3の移動を待つことなく物理マシン2に対して移動可能な状態である。すなわち、仮想マシン3Eは、この場合、他の仮想マシン3に対して依存関係を有していない状態である。
そのため、依存仮想マシン群特定部116は、図40の部分依存グラフDに示すように、例えば、上段にVM−Dを設定し、下段にVM−Eを設定する。また、VM−Eは、VM−Dに対して依存関係を有していない。そのため、依存仮想マシン群特定部116は、VM−DからVM−Eに延びる矢印を設定しない。図40に示す他の部分依存フラグについては説明を省略する。以下、図40で説明した部分依存グラフを用いて依存グラフを作成する際の具体例について説明を行う。
図41は、依存グラフの具体例である。依存仮想マシン群特定部116は、図41に示すように、図40で説明した部分依存グラフのいずれかに含まれる矢印をまとめることにより、依存グラフを作成する。すなわち、依存仮想マシン群特定部116は、図41に示すように、各仮想マシン3をそれぞれ1つのみ設定し、図40で説明した部分依存グラフのいずれかに含まれる矢印それぞれを設定することにより、依存グラフを作成する。
具体的に、図41に示す依存グラフにおいて、VM−Dは、VM−Aに対して依存関係を有しており、VM−Bは、VM−Eに対して依存関係を有している。また、図41に示す依存グラフにおいて、VM−Cは、VM−Fに対して依存関係を有しており、VM−Fは、VF−Cに対して依存関係を有している。すなわち、図41に示す依存グラフにおいて、VM−C及びVM−Fは、一方の仮想マシン3が他の仮想マシン3の依存仮想マシン31である関係にある(以下、これを依存関係の循環とも呼ぶ)。そのため、VM−C及びVM−Fは、少なくともいずれか1つの仮想マシン3が、現在配備されている物理マシン2(移動元の物理マシン2)及び移動先の物理マシン2以外の物理マシン2に退避しない限り、それぞれの移動先の物理マシン2に移動することができない状態である。したがって、VM−C及びVM−Fのうちの少なくとも1つの仮想マシン3は、移動制御処理を正常終了させるために、現在配備されている物理マシン2及び移動先の物理マシン2以外の物理マシン2に退避する必要がある。
次に、依存仮想マシン情報136の具体例について説明を行う。図42は、依存仮想マシン情報136の具体例を説明する図である。図42に示す依存仮想マシン情報136は、依存仮想マシン情報136に含まれる各情報を識別する「情報ID」と、各仮想マシン3を識別する「仮想マシン名」とを項目として有する。また、図42に示す依存仮想マシン情報136は、各仮想マシン3が依存関係にある依存仮想マシン31を識別する「依存仮想マシン名」を項目として有する。
具体的に、図42に示す依存仮想マシン情報136の内容は、図41で説明した依存グラフの内容に対応している。具体的に、図42に示す依存仮想マシン情報136において、「仮想マシン名」が「仮想マシンB」である情報(「情報ID」が「2」である情報)の「依存仮想マシン名」は、「仮想マシンE」である。また、図42に示す依存仮想マシン情報136において、「仮想マシン名」が「仮想マシンC」である情報(「情報ID」が「3」である情報)の「依存仮想マシン名」は、「仮想マシンF」である。一方、図42に示す依存仮想マシン情報136において、「仮想マシン名」が「仮想マシンA」である情報(「情報ID」が「1」である情報)の「依存仮想マシン名」には、「なし」が設定されている。図42の他の情報については説明を省略する。
図37に戻り、依存仮想マシン群特定部116は、S62の処理で作成した依存仮想マシン情報136を参照し、依存仮想マシン群32の情報である依存仮想マシン群情報137を作成する(S63)。以下、依存仮想マシン群情報137の具体例について説明を行う。
[依存仮想マシン群情報の具体例]
図43は、依存仮想マシン群情報137の具体例を説明する図である。図43に示す依存仮想マシン群情報137は、依存仮想マシン群情報137に含まれる各情報を識別する「情報ID」と、各依存仮想マシン群32に含まれる依存仮想マシン31を識別する「依存仮想マシン名」とを項目として有する。
図43は、依存仮想マシン群情報137の具体例を説明する図である。図43に示す依存仮想マシン群情報137は、依存仮想マシン群情報137に含まれる各情報を識別する「情報ID」と、各依存仮想マシン群32に含まれる依存仮想マシン31を識別する「依存仮想マシン名」とを項目として有する。
図41で説明した依存グラフまたは図42で説明した依存仮想マシン情報136において、依存関係が循環している依存仮想マシン31は、仮想マシン3C及び仮想マシン3Fである。そのため、依存仮想マシン群特定部116は、仮想マシン3C及び仮想マシン3Fが依存仮想マシン群32を形成する依存仮想マシン31として特定する。したがって、依存仮想マシン群特定部116は、図43の依存仮想マシン群情報137に示すように、「情報ID」が「1」である情報の「依存仮想マシン名」に、「仮想マシンC、仮想マシンF」を設定する。
これにより、依存仮想マシン群特定部116は、移動制御処理を終了するために最低限退避しなければならない依存仮想マシン31を含む依存仮想マシン群32を特定して管理することが可能になる。
[第3の実施の形態における移動制御処理]
次に、第3の実施の形態における移動制御処理の詳細について説明を行う。図38は、第3の実施の形態における移動制御処理の詳細を説明するフローチャートである。具体的に、図38は、第1の実施の形態における退避仮想マシン決定処理(図10)に対応する図である。なお、図38に示すフローチャートにおいて、S71、S72、S74からS76の処理は、図10で説明したS31、S32、S34からS36の処理と同じ内容の処理である。そのため、S71、S72、S74からS76の処理についての詳細な説明については省略する。
次に、第3の実施の形態における移動制御処理の詳細について説明を行う。図38は、第3の実施の形態における移動制御処理の詳細を説明するフローチャートである。具体的に、図38は、第1の実施の形態における退避仮想マシン決定処理(図10)に対応する図である。なお、図38に示すフローチャートにおいて、S71、S72、S74からS76の処理は、図10で説明したS31、S32、S34からS36の処理と同じ内容の処理である。そのため、S71、S72、S74からS76の処理についての詳細な説明については省略する。
図38に示すように、第3の実施の形態における移動順序決定部113は、S72の処理で抽出した情報に対応する仮想マシン3が退避仮想な仮想マシン3であって、S63の処理で特定した依存仮想マシン群32に含まれる仮想マシン3であるか否かを判定する(S73)。その結果、退避仮想な仮想マシン3であって依存仮想マシン群32に含まれる仮想マシン3である場合(S73のYES)、移動順序決定部113は、第1の実施の形態の場合と同様に、S74以降の処理を行う。また、退避仮想な仮想マシン3であるが依存仮想マシン群32に含まれる仮想マシン3でない場合(S73のNO)、S31以降の処理を繰り返し実行する。
これにより、移動順序決定部113は、移動制御処理が終了するまでに行われる仮想マシン3の退避の回数を抑えることが可能になる。そのため、移動順序決定部113は、この場合、移動制御処理を効率的に行うことが可能になる。
なお、以下、依存仮想マシン群特定処理は、図43で説明した依存仮想マシン群情報137は、1回目の退避仮想マシン決定処理が行われる前に作成されたものとして説明を行う。
[1回目の退避仮想マシン決定処理及び仮想マシン移動処理の具体例]
次に、1回目に実行される退避仮想マシン決定処理及び仮想マシン移動処理の具体例について説明を行う。図44から図47は、1回目に実行される退避仮想マシン決定処理及び仮想マシン移動処理の具体例を説明する図である。なお、以下、1回目に実行される移動仮想マシン決定処理が実行された後に実行される退避仮想マシン決定処理及び仮想マシン移動処理の具体例について説明を行う。
次に、1回目に実行される退避仮想マシン決定処理及び仮想マシン移動処理の具体例について説明を行う。図44から図47は、1回目に実行される退避仮想マシン決定処理及び仮想マシン移動処理の具体例を説明する図である。なお、以下、1回目に実行される移動仮想マシン決定処理が実行された後に実行される退避仮想マシン決定処理及び仮想マシン移動処理の具体例について説明を行う。
図20に示す移動未完了情報134において、移動順序決定部113は、初めに、「情報ID」が「1」である情報(「仮想マシン名」が「仮想マシンD」である情報)を抽出する(S72)。
そして、移動順序決定部113は、「情報ID」が「1」の「メモリ使用容量」に設定された情報である「1(GB)」と、「ディスク使用容量」に設定された情報である「1(GB)」とを取得する。さらに、移動順序決定部113は、図19に示す残余物理リソース情報135を参照し、情報の取得を行った仮想マシンDを退避させることができる物理マシン2を特定する。具体的に、図19に示す残余物理リソース情報135において、例えば、「情報ID」が「3」である情報(「物理マシン名」が「物理マシンC」である情報)の「メモリ空き容量」及び「ディスク空き容量」は、それぞれ「1(GB)」及び「1(GB)」である。そのため、仮想マシンDのメモリ使用容量及びディスク使用容量は、それぞれ物理マシンCのメモリ空き容量及びディスク空き容量よりも小さい。
ここで、第3の実施の形態における移動順序決定部113は、図43で説明した依存仮想マシン群情報137を参照し、「依存仮想マシン名」に「仮想マシンD」が設定されているか否かを判定する(S73)。具体的に、移動順序決定部113は、仮想マシンDが依存仮想マシン群32に含まれる仮想マシン3であるか否かを判定する。
そして、図43に示す依存仮想マシン群情報137の「依存仮想マシン名」には、「仮想マシンD」が設定されていない。そのため、移動順序決定部113は、S72の処理で抽出した情報に対応する仮想マシン3である仮想マシンDの退避を行わないことを決定する(S73のNO)。すなわち、この場合、移動順序決定部113は、移動制御処理を終了させるために、仮想マシンDの退避が必要ないと判定する。これにより、移動順序決定部113は、移動制御処理を終了させるために要する仮想マシン3の退避の回数を抑えることが可能になる。
次に、移動順序決定部113は、図20に示す移動未完了情報134における「情報ID」が「2」である情報(「仮想マシン名」が「仮想マシンC」である情報)を抽出する(S72)。
そして、移動順序決定部113は、「情報ID」が「2」の「メモリ使用容量」に設定された情報である「2(GB)」と、「ディスク使用容量」に設定された情報である「2(GB)」とを取得する。さらに、移動順序決定部113は、図19に示す残余物理リソース情報135を参照し、情報の取得を行った仮想マシンAを退避させることができる物理マシン2を特定する。具体的に、図19に示す残余物理リソース情報135において、「情報ID」が「4」である情報(「物理マシン名」が「物理マシンD」である情報)の「メモリ空き容量」及び「ディスク空き容量」は、それぞれ「2(GB)」及び「2(GB)」である。そのため、仮想マシンAのメモリ使用容量及びディスク使用容量は、それぞれ物理マシンDのメモリ空き容量及びディスク空き容量よりも小さい。
ここで、移動順序決定部113は、図43で説明した依存仮想マシン群情報137を参照し、「依存仮想マシン名」に「仮想マシンC」が設定されているか否かを判定する。具体的に、移動順序決定部113は、仮想マシンDが依存仮想マシン群32に含まれる仮想マシン3であるか否かを判定する。
そして、図43に示す依存仮想マシン群情報137の「依存仮想マシン名」には、「仮想マシンC」が設定されている。そのため、移動順序決定部113は、S72の処理で抽出した情報に対応する仮想マシン3である仮想マシンCの退避を行うことを決定する(S73のYES)。
その後、移動順序決定部113は、図44の下線部分に示すように、S72で抽出した情報(「仮想マシン名」が「仮想マシンC」である情報)を移動決定情報133として情報格納領域130に記憶する(S34)。具体的に、移動順序決定部113は、図44の下線部分に示すように、図20に示す移動未完了情報134の「情報ID」が「2」である情報を、移動決定情報133の「情報ID」が「3」である情報として設定する。
ここで、移動順序決定部113は、第1の実施の形態の場合と同様に、図44の下線部分に示すように、移動決定情報133の「情報ID」が「3」である情報の「退避先物理マシン名」に、仮想マシンCの退避を行った物理マシンDを示す「D」を設定する。これにより、移動順序決定部113は、退避した後の仮想マシンCを移動先の物理マシン2に移動させる際に、移動元となる物理マシン2の情報を適切に管理することが可能になる。また、移動順序決定部113は、第1の実施の形態の場合と同様に、図44の下線部分に示すように、「退避フラグ」に「1」を設定する。これにより、移動順序決定部113は、S73の処理を再度実行する際に、移動先以外の物理マシン2に既に退避している仮想マシン3(退避することが既に決定している仮想マシン3)を特定することが可能になる。
また、移動順序決定部113は、第1の実施の形態の場合と同様に、図45の下線部分に示すように、図19に示す残余物理リソース情報135の物理マシンDのメモリ空き容量である「2(GB)」を、仮想マシンDのメモリ使用容量である「2(GB)」を減算した値である「0(GB)」に更新する(S75)。そして、移動順序決定部113は、図45の下線部分に示すように、図19に示す残余物理リソース情報135の物理マシンDのディスク空き容量である「2(GB)」を、仮想マシンDのディスク使用容量である「2(GB)」を減算した値である「0(GB)」に更新する(S75)。
さらに、移動順序決定部113は、第1の実施の形態の場合と同様に、図46の下線部分に示すように、仮想マシンCの「移動元物理マシン名」に設定される情報を、仮想マシンCが退避を行う仮想マシン3である仮想マシンDに更新する。これにより、移動順序決定部113は、仮想マシンCの退避に行うことによる仮想マシンCの状態を移動未完了情報134に反映させることが可能になる。
その後、移動順序決定部113は、図20に示す移動未完了情報134に情報に含まれる全ての情報が抽出済になるまで、S71からS76の処理の実行を繰り返す。その結果、移動順序決定部113は、S73の処理において、仮想マシンA(「情報ID」が「3」である情報)及び仮想マシンF(「情報ID」が「4」である情報)の退避を行わない旨の判定を行う(S73のNO)。
なお、図43に示す依存仮想マシン群情報137において、「情報ID」が「1」である情報の「依存仮想マシン名」には、「仮想マシンC、仮想マシンF」が設定されている。一方、図44に示す移動決定情報133において、仮想マシンCの退避は決定している。ここで、仮想マシンC及び仮想マシンFにおける依存関係の循環は、仮想マシンCの退避を行うことにより解消している。そのため、仮想マシンCの退避が決定した後においては、仮想マシンFの退避を行う必要はなくなる。したがって、移動順序決定部113は、例えば、仮想マシンCの退避が決定したことに基づき、仮想マシンFの退避を行わない旨の判定を行うものであってもよい(S73のNO)。
また、移動順序決定部113は、S73の処理において、例えば、図42で説明した依存仮想マシン情報136を参照し、仮想マシンC及び仮想マシンFのうち、依存仮想マシン31の数が多い仮想マシン3を優先的に退避させるものであってもよい。これにより、移動順序決定部113は、移動制御処理を効率的に行うことが可能になる。
その後、情報管理部114は、図46で説明した移動未完了情報134に含まれる情報に基づき、図47に示すように、移動対象情報131を更新する(S46)。
[2回目の依存仮想マシン群決定処理の具体例]
次に、2回目に実行される依存仮想マシン群決定処理(2回目の退避仮想マシン決定処理の前に実行される依存仮想マシン群決定処理)の具体例について説明を行う。図48から図50は、2回目に実行される依存仮想マシン群決定処理の具体例を説明する図である。
次に、2回目に実行される依存仮想マシン群決定処理(2回目の退避仮想マシン決定処理の前に実行される依存仮想マシン群決定処理)の具体例について説明を行う。図48から図50は、2回目に実行される依存仮想マシン群決定処理の具体例を説明する図である。
図48は、2回目に実行される依存仮想マシン群決定処理によって作成される依存グラフの具体例である。具体的に、図48に示す依存グラフにおいて、VM−Cは、VM−Fに対して依存関係を有している。また、図48に示す依存グラフにおいて、依存関係の循環は発生していない。すなわち、図48に示す各仮想マシン3は、移動制御処理を終了させるために、現在配備されている物理マシン2(移動元の物理マシン2)及び移動先の物理マシン2以外の物理マシン2に退避する必要がない。なお、VM−A及びVM−Eは、既に移動先の仮想マシン3に移動している仮想マシン3であるため、図48に示す依存グラフには設定されない。
次に、依存仮想マシン情報136の具体例について説明を行う。図49は、2回目に実行される依存仮想マシン群決定処理によって作成される依存仮想マシン情報136の具体例を説明する図である。なお、VM−A及びVM−Eは、既に移動先の仮想マシン3に移動している仮想マシン3であるため、図49に示す依存仮想マシン情報136には設定されない。
具体的に、図49に示す依存仮想マシン情報136において、「仮想マシン名」が「仮想マシンC」である情報(「情報ID」が「3」である情報)の「依存仮想マシン名」は、「仮想マシンF」である。そして、その他の「依存仮想マシン名」には、依存仮想マシン31が存在しないことを示す「なし」が設定されている。なお、図48に示す依存グラフにおいて、依存関係が存在しない。そのため、依存仮想マシン群特定部116は、この場合、依存仮想マシン群情報137を作成しない。
そして、移動指示部115は、第1の実施の形態と同様に、仮想マシンD、仮想マシンA及び仮想マシンFに対し、それぞれ移動先の物理マシン2に対する移動を指示する(S42)。すなわち、移動指示部115は、この場合、図49に示す依存仮想マシン情報136において、依存仮想マシン31が存在しない仮想マシン3を移動先の物理マシン2に移動する。
その後、情報管理部114は、図50に示すように、移動対象情報131の更新を行う(S46)。
[3回目の依存仮想マシン群決定処理の具体例]
次に、3回目に実行される依存仮想マシン群決定処理(3回目の退避仮想マシン決定処理の前に実行される依存仮想マシン群決定処理)の具体例について説明を行う。図51及び図52は、3回目に実行される依存仮想マシン群決定処理の具体例を説明する図である。
次に、3回目に実行される依存仮想マシン群決定処理(3回目の退避仮想マシン決定処理の前に実行される依存仮想マシン群決定処理)の具体例について説明を行う。図51及び図52は、3回目に実行される依存仮想マシン群決定処理の具体例を説明する図である。
図51は、3回目に実行される依存仮想マシン群決定処理によって作成される依存グラフの具体例である。具体的に、図51に示す依存グラフには、VM−Cのみが存在するため、依存関係は存在しない。
次に、依存仮想マシン情報136の具体例について説明を行う。図52は、3回目に実施される依存仮想マシン群決定処理によって作成される依存仮想マシン情報136の具体例を説明する図である。
具体的に、図52に示す依存仮想マシン情報136において、「仮想マシン名」が「仮想マシンC」である情報(「情報ID」が「3」である情報)の「依存仮想マシン名」には、「なし」が設定されている。そして、図51に示す依存グラフにおいて、依存関係が存在しない。そのため、依存仮想マシン群特定部116は、依存仮想マシン群情報137を作成しない。
そして、移動指示部115は、第1の実施の形態と同様に、仮想マシンCに対し、移動先の物理マシン2への移動を指示する(S42)。すなわち、移動指示部115は、この場合、図52に示す依存仮想マシン情報136において、依存仮想マシン31が存在しない仮想マシン3を移動先の物理マシン2に移動する。これにより、移動指示部115は、移動制御処理を正常終了することが可能になる(S44のYES)。
[S62の処理の詳細]
次に、S62の処理の詳細について説明する。依存仮想マシン群特定部116が依存仮想マシン31の特定を行う場合に、依存仮想マシン31として特定可能な仮想マシン3の組み合わせが複数存在する場合がある。
次に、S62の処理の詳細について説明する。依存仮想マシン群特定部116が依存仮想マシン31の特定を行う場合に、依存仮想マシン31として特定可能な仮想マシン3の組み合わせが複数存在する場合がある。
この場合、依存仮想マシン群特定部116は、移動制御処理が正常終了するまでに、仮想マシン3の退避仮想マシン決定処理と、移動仮想マシン決定処理とを実行する回数が最も少ない組み合わせを、依存仮想マシン31として特定するものであってよい。これにより、依存仮想マシン群特定部116は、移動制御処理を効率的に行うことが可能になる。以下、S62の処理の詳細について説明する。
初めに、依存仮想マシン群特定部116は、図39に示すように、依存仮想マシン31として特定可能な仮想マシン3の組み合わせが複数存在するか否かを判定する(S81)。そして、組み合わせが複数存在する場合(S81のYES)、依存仮想マシン群特定部116は、移動制御処理が正常終了するまでに、退避仮想マシン決定処理及び移動仮想マシン決定を行う回数が最も少ない組み合わせが複数存在するか否かを判定する(S82)。
その結果、各処理を行う回数が最も少ない組み合わせが複数存在する場合(S82のYES)、依存仮想マシン群特定部116は、仮想マシン3の退避を指示する回数が最も少ない組み合わせに対応する仮想マシン3を依存仮想マシン31として特定する(S83)。具体的に、依存仮想マシン群特定部116は、例えば、移動制御処理が正常終了するまでに、仮想マシン3の退避を指示する回数が最も少ない組み合わせに対応する仮想マシン3を依存仮想マシン31として特定する。
一方、各処理を行う回数が最も少ない組み合わせが複数存在しない場合(S82のNO)、依存仮想マシン群特定部116は、退避仮想マシン決定処理及び移動仮想マシン決定処理を行う回数が最も少ない組み合わせに対応する仮想マシン3を、依存仮想マシン31として特定する(S84)。具体的に、依存仮想マシン群特定部116は、例えば、移動制御処理が正常終了するまでに、退避仮想マシン決定処理及び移動仮想マシン決定処理を行う回数が最も少ない組み合わせに対応する仮想マシン3を、依存仮想マシン31として特定する。
そして、仮想マシン群特定部116は、S83またはS84の処理によって特定された依存仮想マシン31の情報を含む依存仮想マシン情報136を作成する(S85)。
なお、退避を指示する回数が最も少ない組み合わせが複数存在する場合、仮想マシン群特定部116は、例えば、複数存在した組み合わせから任意の組み合わせを選択し、選択した組み合わせに対応する仮想マシン3を依存仮想マシン31として特定するものであってよい。
[依存仮想マシンとして特定可能な仮想マシンの組み合わせが複数存在する場合の具体例]
次に、依存仮想マシン31として特定可能な仮想マシン3の組み合わせが複数存在する場合の具体例について説明を行う。図53から図55は、依存仮想マシン31として特定可能な仮想マシン3の組み合わせが複数存在する場合の具体例を説明する図である。
次に、依存仮想マシン31として特定可能な仮想マシン3の組み合わせが複数存在する場合の具体例について説明を行う。図53から図55は、依存仮想マシン31として特定可能な仮想マシン3の組み合わせが複数存在する場合の具体例を説明する図である。
図40に示す部分依存グラフEにおいて、VM−Bは、VM−Eに対して依存関係を有している。ここで、図2に示す仮想マシン3の状態は、仮想マシン3A及び仮想マシン3Bのうちの1台のみが仮想マシン3Eに対して依存関係を有している状態である。そのため、仮想マシン群特定部116は、VM−AがVM−Eに対する依存関係を有するように部分依存グラフEを作成することも可能である。
また、図40に示す部分依存グラフAにおいて、VM−Dは、VM−Aに対して依存関係を有している。ここで、図3に示す仮想マシン3の状態は、仮想マシン3Dが仮想マシン3A及び仮想マシン3Bのうちの1台の仮想マシン3Eに対して依存関係を有している状態である。そのため、仮想マシン群特定部116は、VM−DがVM−Bに対する依存関係を有するように部分依存グラフAを作成することも可能である。
すなわち、仮想マシン群特定部116は、部分依存グラフE及び部分依存グラフAの作成方法によって、図41に示す依存グラフの他に、図53から図55に示す依存グラフ(4種類の依存グラフ)を作成することが可能になる。具体的に、図53に示す依存グラフは、VM−AがVM−Eに対して依存関係を有しており、VM−DがVM−Bに対して依存関係を有している場合の依存グラフである。また、図54に示す依存グラフは、VM−AがVM−Eに対して依存関係を有しており、VM−DがVM−Aに対して依存関係を有している場合の依存グラフである。さらに、図55に示す依存グラフは、VM−BがVM−Eに対して依存関係を有しており、VM−DがVM−Bに対して依存関係を有している場合の依存グラフである。
そのため、依存仮想マシン群特定部116は、例えば、S81からS84の処理を行うことにより、図41、図53から図55に示す依存グラフのうち、1種類の依存グラフを選択する。そして、依存仮想マシン群特定部116は、例えば、選択した依存グラフに対応する依存仮想マシン情報136及び依存仮想マシン群情報137を作成する(S85、S63)。これにより、依存仮想マシン群特定部116は、依存仮想マシン31として特定可能な仮想マシン3の組み合わせが複数ある場合であっても、移動制御処理を実行することが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
コンピュータに、
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第1状態情報とを取得し、
前記移動情報及び前記第1状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示し、
前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示し、
前記仮想マシンの退避後における、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第2状態情報を取得し、
前記移動情報及び前記第2状態情報に基づき、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する、
ことを実行させることを特徴とする移動制御プログラム。
コンピュータに、
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第1状態情報とを取得し、
前記移動情報及び前記第1状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示し、
前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示し、
前記仮想マシンの退避後における、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第2状態情報を取得し、
前記移動情報及び前記第2状態情報に基づき、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する、
ことを実行させることを特徴とする移動制御プログラム。
(付記2)
付記1において、
前記第1状態情報及び前記第2状態情報は、前記複数の物理マシンそれぞれの物理リソースの空き容量の情報と、前記複数の仮想マシンそれぞれが動作するために使用する物理リソースの使用量の情報である、
ことを特徴とする移動制御プログラム。
付記1において、
前記第1状態情報及び前記第2状態情報は、前記複数の物理マシンそれぞれの物理リソースの空き容量の情報と、前記複数の仮想マシンそれぞれが動作するために使用する物理リソースの使用量の情報である、
ことを特徴とする移動制御プログラム。
(付記3)
付記2において、
前記第1状態情報に基づき仮想マシンの移動を指示する処理では、前記複数の仮想マシンのうち、前記物理リソースの使用量が、前記移動先の物理マシンにおける前記物理リソースの空き容量よりも小さい仮想マシンを、前記移動先の物理マシンに移動可能な仮想マシンとする、
ことを特徴とする移動制御プログラム。
付記2において、
前記第1状態情報に基づき仮想マシンの移動を指示する処理では、前記複数の仮想マシンのうち、前記物理リソースの使用量が、前記移動先の物理マシンにおける前記物理リソースの空き容量よりも小さい仮想マシンを、前記移動先の物理マシンに移動可能な仮想マシンとする、
ことを特徴とする移動制御プログラム。
(付記4)
付記2において、
前記第1状態情報に基づき仮想マシンの移動を指示する処理では、前記複数の仮想マシンのうち、前記物理リソースの使用量が大きい仮想マシンから順に移動を指示する、
ことを特徴とする移動制御プログラム。
付記2において、
前記第1状態情報に基づき仮想マシンの移動を指示する処理では、前記複数の仮想マシンのうち、前記物理リソースの使用量が大きい仮想マシンから順に移動を指示する、
ことを特徴とする移動制御プログラム。
(付記5)
付記2において、
前記第1状態情報に基づき仮想マシンの移動を指示する処理では、前記複数の仮想マシンのうち、前記物理リソースの使用量が小さい仮想マシンから順に移動を指示する、
ことを特徴とする移動制御プログラム。
付記2において、
前記第1状態情報に基づき仮想マシンの移動を指示する処理では、前記複数の仮想マシンのうち、前記物理リソースの使用量が小さい仮想マシンから順に移動を指示する、
ことを特徴とする移動制御プログラム。
(付記6)
付記1において、
前記仮想マシンに退避を指示する処理では、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しない場合、前記仮想マシンの移動の終了する、
ことを特徴とする移動制御プログラム。
付記1において、
前記仮想マシンに退避を指示する処理では、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しない場合、前記仮想マシンの移動の終了する、
ことを特徴とする移動制御プログラム。
(付記7)
付記1において、
前記仮想マシンの退避を指示する処理では、前記移動先の物理マシンへの移動を指示していない仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンが存在しない場合、前記移動先の物理マシンへの移動を指示した仮想マシンに対して、前記移動元の物理マシンへの再移動を指示し、前記仮想マシンの移動の終了する、
ことを特徴とする移動制御プログラム。
付記1において、
前記仮想マシンの退避を指示する処理では、前記移動先の物理マシンへの移動を指示していない仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンが存在しない場合、前記移動先の物理マシンへの移動を指示した仮想マシンに対して、前記移動元の物理マシンへの再移動を指示し、前記仮想マシンの移動の終了する、
ことを特徴とする移動制御プログラム。
(付記8)
付記1において、さらに、
前記第2状態情報に基づき仮想マシンの移動を指示する処理の後、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在する場合、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しなくなるまで、または、前記移動先の物理マシンへの移動を指示していない仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンが存在しなくなるまで、前記仮想マシンの退避を指示する処理、前記第2状態情報を取得する処理及び前記第2状態情報に基づき仮想マシンの移動を指示する処理を繰り返し行う、
ことをコンピュータに実行させることを特徴とする移動制御プログラム。
付記1において、さらに、
前記第2状態情報に基づき仮想マシンの移動を指示する処理の後、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在する場合、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しなくなるまで、または、前記移動先の物理マシンへの移動を指示していない仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンが存在しなくなるまで、前記仮想マシンの退避を指示する処理、前記第2状態情報を取得する処理及び前記第2状態情報に基づき仮想マシンの移動を指示する処理を繰り返し行う、
ことをコンピュータに実行させることを特徴とする移動制御プログラム。
(付記9)
付記1において、さらに、
前記退避を指示する処理の前に、前記複数の仮想マシンを前記移動先の物理マシンにそれぞれ移動するために、先に移動する必要がある仮想マシンである依存仮想マシンを特定し、
特定した前記依存仮想マシンのうち、前記依存仮想マシンと、前記依存仮想マシンを先に移動することにより前記移動先の物理マシンに移動可能になる仮想マシンとの関係が循環する2以上の仮想マシンからなる1以上の依存仮想マシン群を特定し、
前記退避を指示する処理では、前記退避可能な仮想マシンであって、前記1以上の依存仮想マシン群にそれぞれ含まれる1の仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示する、
ことを特徴とする移動制御プログラム。
付記1において、さらに、
前記退避を指示する処理の前に、前記複数の仮想マシンを前記移動先の物理マシンにそれぞれ移動するために、先に移動する必要がある仮想マシンである依存仮想マシンを特定し、
特定した前記依存仮想マシンのうち、前記依存仮想マシンと、前記依存仮想マシンを先に移動することにより前記移動先の物理マシンに移動可能になる仮想マシンとの関係が循環する2以上の仮想マシンからなる1以上の依存仮想マシン群を特定し、
前記退避を指示する処理では、前記退避可能な仮想マシンであって、前記1以上の依存仮想マシン群にそれぞれ含まれる1の仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示する、
ことを特徴とする移動制御プログラム。
(付記10)
付記9において、
前記関係が循環する2以上の仮想マシンは、特定した前記依存仮想マシンのうち、前記2以上の仮想マシンに含まれる各仮想マシンが前記2以上の仮想マシンに含まれる他の仮想マシンの前記依存仮想マシンであり、前記2以上の仮想マシンに含まれる各仮想マシンの前記依存仮想マシンが前記2以上の仮想マシンに含まれる他の仮想マシンである関係を有する2以上の仮想マシンである、
ことを特徴とする移動制御プログラム。
付記9において、
前記関係が循環する2以上の仮想マシンは、特定した前記依存仮想マシンのうち、前記2以上の仮想マシンに含まれる各仮想マシンが前記2以上の仮想マシンに含まれる他の仮想マシンの前記依存仮想マシンであり、前記2以上の仮想マシンに含まれる各仮想マシンの前記依存仮想マシンが前記2以上の仮想マシンに含まれる他の仮想マシンである関係を有する2以上の仮想マシンである、
ことを特徴とする移動制御プログラム。
(付記11)
付記9において、
前記依存仮想マシンを特定する処理では、前記依存仮想マシンとして特定可能な仮想マシンの組み合わせが複数存在する場合、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しなくなるまでに、前記仮想マシンの退避を指示する処理及び前記第2状態情報に基づき仮想マシンの移動を指示する処理を行う回数が最も少ない組み合わせに対応する仮想マシンを、前記依存仮想マシンとして特定する、
ことを特徴とする移動制御プログラム。
付記9において、
前記依存仮想マシンを特定する処理では、前記依存仮想マシンとして特定可能な仮想マシンの組み合わせが複数存在する場合、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しなくなるまでに、前記仮想マシンの退避を指示する処理及び前記第2状態情報に基づき仮想マシンの移動を指示する処理を行う回数が最も少ない組み合わせに対応する仮想マシンを、前記依存仮想マシンとして特定する、
ことを特徴とする移動制御プログラム。
(付記12)
付記11において、
前記依存仮想マシンを特定する処理では、前記仮想マシンの退避を指示する処理及び前記第2状態情報に基づき仮想マシンの移動を指示する処理を行う回数が最も少ない組み合わせが複数存在する場合、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しなくなるまでに、前記移動先の物理マシン以外の物理マシンへの退避の指示の回数が最も少ない組み合わせに対応する仮想マシンを、前記依存仮想マシンとして特定する、
ことを特徴とする移動制御プログラム。
付記11において、
前記依存仮想マシンを特定する処理では、前記仮想マシンの退避を指示する処理及び前記第2状態情報に基づき仮想マシンの移動を指示する処理を行う回数が最も少ない組み合わせが複数存在する場合、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しなくなるまでに、前記移動先の物理マシン以外の物理マシンへの退避の指示の回数が最も少ない組み合わせに対応する仮想マシンを、前記依存仮想マシンとして特定する、
ことを特徴とする移動制御プログラム。
(付記13)
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第1状態情報とを取得する情報取得部と、
前記移動情報及び前記第1状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する移動指示部と、を有し、
前記移動指示部は、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示し、
前記情報取得部は、前記仮想マシンの退避後における、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第2状態情報を取得し、
前記移動指示部は、前記移動情報及び前記第2状態情報に基づき、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する、
ことを特徴とする移動制御装置。
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第1状態情報とを取得する情報取得部と、
前記移動情報及び前記第1状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する移動指示部と、を有し、
前記移動指示部は、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示し、
前記情報取得部は、前記仮想マシンの退避後における、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第2状態情報を取得し、
前記移動指示部は、前記移動情報及び前記第2状態情報に基づき、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する、
ことを特徴とする移動制御装置。
(付記14)
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第1状態情報とを取得し、
前記移動情報及び前記第1状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示し、
前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示し、
前記仮想マシンの退避後における、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第2状態情報を取得し、
前記移動情報及び前記第2状態情報に基づき、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する、
ことを特徴とする移動制御方法。
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第1状態情報とを取得し、
前記移動情報及び前記第1状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示し、
前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示し、
前記仮想マシンの退避後における、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第2状態情報を取得し、
前記移動情報及び前記第2状態情報に基づき、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する、
ことを特徴とする移動制御方法。
1:情報処理装置 2:物理マシン
3:仮想マシン 4:仮想化ソフトウエア
11:利用者端末
3:仮想マシン 4:仮想化ソフトウエア
11:利用者端末
Claims (12)
- コンピュータに、
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第1状態情報とを取得し、
前記移動情報及び前記第1状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示し、
前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示し、
前記仮想マシンの退避後における、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第2状態情報を取得し、
前記移動情報及び前記第2状態情報に基づき、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する、
ことを実行させることを特徴とする移動制御プログラム。 - 請求項1において、
前記第1状態情報及び前記第2状態情報は、前記複数の物理マシンそれぞれの物理リソースの空き容量の情報と、前記複数の仮想マシンそれぞれが動作するために使用する物理リソースの使用量の情報である、
ことを特徴とする移動制御プログラム。 - 請求項2において、
前記第1状態情報に基づき仮想マシンの移動を指示する処理では、前記複数の仮想マシンのうち、前記物理リソースの使用量が、前記移動先の物理マシンにおける前記物理リソースの空き容量よりも小さい仮想マシンを、前記移動先の物理マシンに移動可能な仮想マシンとする、
ことを特徴とする移動制御プログラム。 - 請求項1において、
前記仮想マシンに退避を指示する処理では、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しない場合、前記仮想マシンの移動の終了する、
ことを特徴とする移動制御プログラム。 - 請求項1において、
前記仮想マシンの退避を指示する処理では、前記移動先の物理マシンへの移動を指示していない仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンが存在しない場合、前記移動先の物理マシンへの移動を指示した仮想マシンに対して、前記移動元の物理マシンへの再移動を指示し、前記仮想マシンの移動の終了する、
ことを特徴とする移動制御プログラム。 - 請求項1において、さらに、
前記第2状態情報に基づき仮想マシンの移動を指示する処理の後、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在する場合、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しなくなるまで、または、前記移動先の物理マシンへの移動を指示していない仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンが存在しなくなるまで、前記仮想マシンの退避を指示する処理、前記第2状態情報を取得する処理及び前記第2状態情報に基づき仮想マシンの移動を指示する処理を繰り返し行う、
ことをコンピュータに実行させることを特徴とする移動制御プログラム。 - 請求項1において、さらに、
前記退避を指示する処理の前に、前記複数の仮想マシンを前記移動先の物理マシンにそれぞれ移動するために、先に移動する必要がある仮想マシンである依存仮想マシンを特定し、
特定した前記依存仮想マシンのうち、前記依存仮想マシンと、前記依存仮想マシンを先に移動することにより前記移動先の物理マシンに移動可能になる仮想マシンとの関係が循環する2以上の仮想マシンからなる1以上の依存仮想マシン群を特定し、
前記退避を指示する処理では、前記退避可能な仮想マシンであって、前記1以上の依存仮想マシン群にそれぞれ含まれる1の仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示する、
ことを特徴とする移動制御プログラム。 - 請求項7において、
前記関係が循環する2以上の仮想マシンは、特定した前記依存仮想マシンのうち、前記2以上の仮想マシンに含まれる各仮想マシンが前記2以上の仮想マシンに含まれる他の仮想マシンの前記依存仮想マシンであり、前記2以上の仮想マシンに含まれる各仮想マシンの前記依存仮想マシンが前記2以上の仮想マシンに含まれる他の仮想マシンである関係を有する2以上の仮想マシンである、
ことを特徴とする移動制御プログラム。 - 請求項7において、
前記依存仮想マシンを特定する処理では、前記依存仮想マシンとして特定可能な仮想マシンの組み合わせが複数存在する場合、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しなくなるまでに、前記仮想マシンの退避を指示する処理及び前記第2状態情報に基づき仮想マシンの移動を指示する処理を行う回数が最も少ない組み合わせに対応する仮想マシンを、前記依存仮想マシンとして特定する、
ことを特徴とする移動制御プログラム。 - 請求項9において、
前記依存仮想マシンを特定する処理では、前記仮想マシンの退避を指示する処理及び前記第2状態情報に基づき仮想マシンの移動を指示する処理を行う回数が最も少ない組み合わせが複数存在する場合、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しなくなるまでに、前記移動先の物理マシン以外の物理マシンへの退避の指示の回数が最も少ない組み合わせに対応する仮想マシンを、前記依存仮想マシンとして特定する、
ことを特徴とする移動制御プログラム。 - 情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第1状態情報とを取得する情報取得部と、
前記移動情報及び前記第1状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する移動指示部と、を有し、
前記移動指示部は、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示し、
前記情報取得部は、前記仮想マシンの退避後における、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第2状態情報を取得し、
前記移動指示部は、前記移動情報及び前記第2状態情報に基づき、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する、
ことを特徴とする移動制御装置。 - 情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第1状態情報とを取得し、
前記移動情報及び前記第1状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示し、
前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシン以外の物理マシンへの退避可能な仮想マシンに、前記移動先の物理マシン以外の物理マシンへの退避を指示し、
前記仮想マシンの退避後における、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第2状態情報を取得し、
前記移動情報及び前記第2状態情報に基づき、前記移動先の物理マシンへの移動を指示していない仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンに、前記移動先の物理マシンへの移動を指示する、
ことを特徴とする移動制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015172095A JP2017049772A (ja) | 2015-09-01 | 2015-09-01 | 移動制御プログラム、移動制御装置及び移動制御方法 |
US15/245,225 US20170060616A1 (en) | 2015-09-01 | 2016-08-24 | Migration controlling method and migration controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015172095A JP2017049772A (ja) | 2015-09-01 | 2015-09-01 | 移動制御プログラム、移動制御装置及び移動制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017049772A true JP2017049772A (ja) | 2017-03-09 |
Family
ID=58095582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015172095A Pending JP2017049772A (ja) | 2015-09-01 | 2015-09-01 | 移動制御プログラム、移動制御装置及び移動制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170060616A1 (ja) |
JP (1) | JP2017049772A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110247838A (zh) * | 2018-03-07 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 消息处理方法、装置、服务器和存储介质 |
CN110347483B (zh) * | 2018-04-08 | 2021-05-11 | 中兴通讯股份有限公司 | 物理机到虚拟机迁移方法、装置及存储介质 |
CN108804210B (zh) * | 2018-04-23 | 2021-05-25 | 北京奇艺世纪科技有限公司 | 一种云平台的资源配置方法及装置 |
WO2023150975A1 (zh) * | 2022-02-10 | 2023-08-17 | 富士通株式会社 | Iab宿主设备以及传输迁移回退方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9092250B1 (en) * | 2006-10-27 | 2015-07-28 | Hewlett-Packard Development Company, L.P. | Selecting one of plural layouts of virtual machines on physical machines |
US8321862B2 (en) * | 2009-03-20 | 2012-11-27 | Oracle America, Inc. | System for migrating a virtual machine and resource usage data to a chosen target host based on a migration policy |
US8370560B2 (en) * | 2009-11-16 | 2013-02-05 | International Business Machines Corporation | Symmetric live migration of virtual machines |
US8832683B2 (en) * | 2009-11-30 | 2014-09-09 | Red Hat Israel, Ltd. | Using memory-related metrics of host machine for triggering load balancing that migrate virtual machine |
US8874457B2 (en) * | 2010-11-17 | 2014-10-28 | International Business Machines Corporation | Concurrent scheduling of plan operations in a virtualized computing environment |
JP2015011569A (ja) * | 2013-06-28 | 2015-01-19 | 株式会社東芝 | 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム |
US9935865B2 (en) * | 2014-06-23 | 2018-04-03 | Infosys Limited | System and method for detecting and preventing service level agreement violation in a virtualized environment |
US9946564B2 (en) * | 2015-06-23 | 2018-04-17 | International Business Machines Corporation | Adjusting virtual machine migration plans based on alert conditions related to future migrations |
US9600331B1 (en) * | 2015-08-24 | 2017-03-21 | International Business Machines Corporation | Virtual machine placement in a cloud computing environment based on factors including optimized processor-memory affinity |
-
2015
- 2015-09-01 JP JP2015172095A patent/JP2017049772A/ja active Pending
-
2016
- 2016-08-24 US US15/245,225 patent/US20170060616A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20170060616A1 (en) | 2017-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018026042A (ja) | 移動制御プログラム、移動制御装置及び移動制御方法 | |
US10635664B2 (en) | Map-reduce job virtualization | |
US9436516B2 (en) | Virtual machines management apparatus, virtual machines management method, and computer readable storage medium | |
US20130339956A1 (en) | Computer system and optimal arrangement method of virtual machine in computer system | |
JP6075226B2 (ja) | プログラム、仮想マシン管理方法および情報処理装置 | |
CN106133693B (zh) | 虚拟机的迁移方法、装置及设备 | |
JP2017049772A (ja) | 移動制御プログラム、移動制御装置及び移動制御方法 | |
JP5872433B2 (ja) | 仮想マシン配置装置および仮想マシン配置方法 | |
US9854037B2 (en) | Identifying workload and sizing of buffers for the purpose of volume replication | |
CN111124475A (zh) | 存储管理的方法、电子设备和计算机可读存储介质 | |
CN106681839B (zh) | 弹性计算动态分配方法 | |
US10810054B1 (en) | Capacity balancing for data storage system | |
US20200174830A1 (en) | Systems and methods for organizing on-demand migration from private cluster to public cloud | |
JP2009176103A (ja) | 仮想ネットワークシステムのnic接続制御方法とシステムおよびプログラム | |
JP5855724B1 (ja) | 仮想機器管理装置、仮想機器管理方法及び仮想機器管理プログラム | |
Wu et al. | Live migration improvements by related dirty memory prediction in cloud computing | |
JP2009237859A (ja) | 仮想マシン管理システム | |
US10241822B2 (en) | Information processing apparatus for moving virtual machine and method of moving virtual machine | |
CN112154416B (zh) | 虚拟机配置方法以及用于实施该方法的虚拟机配置装置 | |
JP2017068314A (ja) | 導入判定プログラム、導入判定装置及び導入判定方法 | |
US10831525B2 (en) | Intelligent assignment of virtual machines to compute only or hyper converged nodes | |
JP6374841B2 (ja) | 仮想マシン配置装置および仮想マシン配置方法 | |
JP2020123003A (ja) | 仮想化基盤および仮想化基盤のスケーリング管理方法 | |
CN107423114B (zh) | 一种基于服务分类的虚拟机动态迁移方法 | |
US20220229689A1 (en) | Virtualization platform control device, virtualization platform control method, and virtualization platform control program |