JP5515889B2 - 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム - Google Patents

仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム Download PDF

Info

Publication number
JP5515889B2
JP5515889B2 JP2010058006A JP2010058006A JP5515889B2 JP 5515889 B2 JP5515889 B2 JP 5515889B2 JP 2010058006 A JP2010058006 A JP 2010058006A JP 2010058006 A JP2010058006 A JP 2010058006A JP 5515889 B2 JP5515889 B2 JP 5515889B2
Authority
JP
Japan
Prior art keywords
virtual machine
host
computer
configuration information
migration
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.)
Expired - Fee Related
Application number
JP2010058006A
Other languages
English (en)
Other versions
JP2011192049A (ja
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
Priority to JP2010058006A priority Critical patent/JP5515889B2/ja
Publication of JP2011192049A publication Critical patent/JP2011192049A/ja
Application granted granted Critical
Publication of JP5515889B2 publication Critical patent/JP5515889B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)

Description

本発明は、仮想マシンのマイグレーションを行う仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラムに関する。
近年、仮想マシン(VM:Virtual Machine )の利用範囲が拡大し、無停止のシステムやミッションクリティカルなシステムを構成するときに利用される機会が増加している。一方で、仮想マシンの機能が増加し、様々なケースで利用されるにつれ、仮想マシンはより複雑化してきている。仮想マシンが複雑化すると、メンテナンスの難易度が上がる。メンテナンスの難易度が上がることによって、仮想マシンのホストのハードウェアやオペレーティングシステム(OS:Operating System)などに対するメンテナンスのコストが増加する。
ホストのメンテナンスを実施する場合には、そのホストにある(ホスト上の)全ての仮想マシンが影響を受ける。ホスト上の仮想マシンが提供するサービスを停止させずにホストのメンテナンスを実施するためには、そのホスト上の全ての仮想マシンを一時的にマイグレーション(移動)させることが必要である。
技術者が手動で仮想マシンのマイグレーションを行う方法では、仮想マシンが多くなるにつれて手間が増え、コストも増加する。従って、管理コストを下げるために、仮想マシンのマイグレーションを容易にする技術が求められている。
特許文献1には、仮想マシンのマイグレーション先のホストを決定する仮想マシンシステムが記載されている。特許文献1に記載された仮想マシンシステムでは、管理サーバが、仮想化ソフトウェアの種類や仮想マシンのマイグレーションに要する時間などを考慮してマイグレーション先のホストを決定する。
特開2008−217302号公報(段落0014,0069−0075)
しかし、特許文献1に記載された仮想マシンシステムでは、所定の情報に基づいて算出した評価値に従って、確実にマイグレーション先のホストを決定することができるが、決定先のホストで他の仮想マシンが運用中だった場合に、運用中の仮想マシンによって使用されているリソース状況が考慮されていないために、マイグレーションの実行時に、仮想マシンによるリソース(例えば、CPUパワー)の奪い合いが起きる可能性がある。
そこで、本発明は、リソースを確実に確保して仮想マシンのマイグレーションを実行する仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラムを提供することを目的とする。
本発明による仮想マシンシステムは、計算機に1つ以上の仮想マシンが構築された仮想マシンシステムであって、計算機は、仮想マシンごとのシステム情報を含む仮想マシン構成情報を収集し、複数の他の計算機から各計算機の空き容量情報を含むホスト構成情報を収集する情報収集部と、情報収集部によって収集された仮想マシン構成情報とホスト構成情報とに基づいて、仮想マシンのマイグレーション先の他の計算機を決定する決定部と、決定部によって決定されたマイグレーション先の他の計算機に、仮想マシンをマイグレーションする実行部とを含み、決定部は、収集された仮想マシン構成情報とホスト構成情報とに基づいて、仮想マシンに割り当てる使用メモリ量および使用CPUコア数を修正した場合のシミュレーションを行い、マイグレーションを実行可能なマイグレーション先の他の計算機を決定し、実行部は、決定部によってマイグレーション先の他の計算機が決定された場合のシミュレーションと同じ使用メモリ量および使用CPUコア数を用いて、仮想マシンを決定された他の計算機にマイグレーションすることを特徴とする。
本発明による自動マイグレーション方法は、計算機に1つ以上の仮想マシンが構築された仮想マシンシステムにおける自動マイグレーション方法であって、仮想マシンごとのシステム情報を含む仮想マシン構成情報を収集し、複数の他の計算機から各計算機の空き容量情報を含むホスト構成情報を収集し、収集された仮想マシン構成情報とホスト構成情報とに基づいて、仮想マシンに割り当てる使用メモリ量および使用CPUコア数を修正した場合のシミュレーションを行い、マイグレーションを実行可能なマイグレーション先の他の計算機を決定し、マイグレーション先の他の計算機が決定された場合のシミュレーションと同じ使用メモリ量および使用CPUコア数を用いて、仮想マシンを決定された他の計算機にマイグレーションすることを特徴とする。
本発明による自動マイグレーションプログラムは、計算機に1つ以上の仮想マシンが構築された仮想マシンシステムに、仮想マシンごとのシステム情報を含む仮想マシン構成情報を収集する処理と、複数の他の計算機から各計算機の空き容量情報を含むホスト構成情報を収集する処理と、収集された仮想マシン構成情報とホスト構成情報とに基づいて、仮想マシンに割り当てる使用メモリ量および使用CPUコア数を修正した場合のシミュレーションを行い、マイグレーションを実行可能なマイグレーション先の他の計算機を決定する処理と、マイグレーション先の他の計算機が決定された場合のシミュレーションと同じ使用メモリ量および使用CPUコア数を用いて、仮想マシンを決定された他の計算機にマイグレーションする処理とを実行させることを特徴とする。
本発明によれば、リソースを確実に確保して、自動で仮想マシンのマイグレーションを実行することができる。
本発明による仮想マシンシステムの一実施形態であるホストの構成例を示すブロック図である。 仮想マシンのマイグレーションが行われた場合の、図1に示すホストの構成例を示すブロック図である。 仮想マシンのマイグレーションが行われる場合の、図1に示すホストの動作を示すUMLアクティビティ図である。 仮想マシンのマイグレーション先を決定する処理を示すUMLアクティビティ図である。 仮想マシンのパラメータを修正することなしに、ホストに仮想マシンを割り当てるシミュレーションの処理を示すUMLアクティビティ図である。 仮想マシンのパラメータを修正して、ホストに仮想マシンを割り当てるシミュレーションの処理を示すUMLアクティビティ図である。 本発明による仮想マシンシステムの主要部を示すブロック図である。
図1は、本発明による仮想マシンシステムの一実施形態であるホストの構成例を示すブロック図である。図1を参照して、本発明による仮想マシンシステムの一実施形態であるホスト10の構成を説明する。
ホスト10,20,30は、それぞれのリソースを1つ以上の仮想マシンに割り当てて、各ホスト上に1つ以上の仮想マシンを構築し、運用することができる。ホスト10,20,30では、それぞれ仮想マシンを運用中であるとする。ホスト10,20,30は、ネットワーク線50によって接続され、それぞれ通信可能である。
ホスト10は、仮想マシン11a,11b,11cを含む。ホスト10では、仮想マシン管理ソフトウェア12が動作しており、ホスト10の制御部(図示せず)は、仮想マシン管理ソフトウェア12のプログラムに従って、仮想マシン11a,11b,11cを制御する(以降、簡単に、ホスト10が仮想マシン11a,11b,11cを管理する、と表現する。)。
ホスト10は、仮想マシン管理ソフトウェア12の動作によって、ホスト10のハードウェア情報や仮想マシン11a,11b,11cの構成情報などを収集する。例えば、ホスト10は、ホスト10のCPUコア数、ホスト10のCPU数、ホスト10のIPアドレス、ホスト10の総メモリ容量、ホスト10のCPU使用率、仮想マシン11a,11b,11cそれぞれのCPU使用率、および仮想マシン11a,11b,11cそれぞれのメモリ容量を収集しているとする。なお、仮想マシン管理ソフトウェア12は、仮想マシンを構築する機能、および仮想マシンのマイグレーション先を決定する機能を備えている。
仮想マシン11a,11b,11cは、それぞれのOSのディスクイメージを共有ストレージ40に格納する。
ホスト20は、1台以上の仮想マシン(図示せず)を含む。ホスト20では、仮想マシン管理ソフトウェア22が動作している。ホスト20は、ホスト20上の仮想マシンを管理する。ホスト20は、仮想マシン管理ソフトウェア22の動作によって、ホスト20のハードウェア情報や、ホスト20上の仮想マシンのそれぞれの構成情報などを収集する。ホスト20上の仮想マシンは、それぞれのOSのディスクイメージを共有ストレージ40に格納する。
ホスト30は、1台以上の仮想マシン(図示せず)を含む。ホスト30では、仮想マシン管理ソフトウェア32が動作している。ホスト30は、ホスト30上の仮想マシンを管理する。ホスト30は、仮想マシン管理ソフトウェア32の動作によって、ホスト30のハードウェア情報や、ホスト30上の仮想マシンのそれぞれの構成情報などを収集する。ホスト30上の仮想マシンは、それぞれのOSのディスクイメージを共有ストレージ40に格納する。
なお、各ホストは、他のホストが仮想マシン管理ソフトウェアの動作によって収集した各構成情報をネットワーク線50を介して取得することができる。具体的には、例えば、ホスト10は、ホスト20のCPUコア数、CPU数、IPアドレス、の総メモリ容量、CPU使用率、ホスト20上のそれぞれの仮想マシンのCPU使用率およびメモリ容量などを取得することができる。ホスト10は、ホスト30に対しても同様の情報を取得することができる。
共有ストレージ40は、ストレージネットワーク線51,52,53によって、それぞれホスト10,20,30に接続される記憶装置である。共有ストレージ40は、ホスト10,20,30からアクセス可能である。
また、共有ストレージ40に格納される仮想マシンのOSのディスクイメージは、当該仮想マシンが含まれるホスト以外のホストからもアクセス可能であるとする。すなわち、例えば、共有ストレージ40に格納されている仮想マシン11aのOSのディスクイメージは、ホスト10からだけでなく、ホスト20およびホスト30からもアクセスすることができる。
図2は、仮想マシンのマイグレーションが行われた場合の、図1に示すホストの構成例を示すブロック図である。図2を参照して、図1に示すホスト10上の仮想マシン11a,11b,11cに対してマイグレーションが行われた場合のホスト10,20,30の構成を説明する。
例えば、ホスト10のメンテナンスを実施するために、ホスト10上の仮想マシン11a,11b,11cに対してマイグレーションが行われるとする。まず、仮想マシン11a,11b,11cのマイグレーション先が決定される。仮想マシンのマイグレーション先の決定方法については、図4〜図6を参照して後述する。ここでは、仮想マシン11aはホスト20に割り当てられ、仮想マシン11b,11cはホスト30に割り当てられたとする。
次に、決定されたマイグレーション先に従って、仮想マシン11a,11b,11cは、割り当て先の各ホストに移動される。その結果、図2に示すように、仮想マシン11aはホスト20上の仮想マシン21aとなり、仮想マシン11bはホスト30上の仮想マシン31bとなり、仮想マシン11cはホスト30上の仮想マシン31cとなる。
図3は、仮想マシンのマイグレーションが行われる場合の、図1に示すホストの動作を示すUML(Unified Modeling Language )アクティビティ図である。図3を参照して、ホスト10のメンテナンスを実施するために、ホスト10上の仮想マシン11a,11b,11cのマイグレーションが行われるときに、図1に示すホスト10,20,30が行う動作の概要を説明する。
まず、ホスト10においてマイグレーションを行いたい仮想マシンが指定される(ステップS11)。例えば、マイグレーションを行いたい仮想マシンに、仮想マシン11a,11b,11cを指定する。
次に、ホスト10は、ネットワーク線50を介して、他のホスト(例えば、ホスト20,30)との間で通信を行う。ホスト10は、ホスト20およびホスト30から、それぞれのホスト20,30におけるホストのハードウェア情報や、ホスト上の仮想マシンの構成情報などの動作状況を取得する(ステップS12)。
ステップS12において取得した他のホストにおける動作状況に基づいて、ホスト10は、仮想マシン11a,11b,11c装置のそれぞれのマイグレーション先を決定する(ステップS13)。マイグレーション先を決定する詳細な処理は、図4〜図6を参照して後述する。
ホスト10は、ステップS13において決定されたマイグレーション先に、それぞれの仮想マシンのマイグレーションを実施する(ステップS14)。なお、マイグレーションを実施する前に、ホスト10は、仮想マシン管理ソフトウェア12によって収集されているデータのうち、ホスト10上の仮想マシンの設定を示す情報を、例えば、ホスト10の格納部(図示せず)または共有ストレージ40に格納しておく。
ホスト10およびマイグレーション先のホスト20,30は、ステップS14においてホスト10からホスト20,30にマイグレーションが実施されたという情報を保持する(ステップS15)。なお、各ホストは、IPアドレスなどの識別可能なIDをそれぞれ所有する。各ホストは、例えば、それぞれのホストのIDとマイグレーションの実施状況とを対応付けることによって、情報を保持することができる。
仮想マシン11a,11b,11cのホスト10からのマイグレーションが完了しているので、ホスト10においてメンテナンスを実施することができる(ステップS16)。
ステップS16においてホスト10のメンテナンスが終了した後に、マイグレーションを行う前の環境に仮想マシン環境を戻したい場合には、ホスト10は、ステップS14において格納されたホスト10上の仮想マシンの設定を示す情報を参照する。そして、マイグレーションを行う前のホスト10の仮想マシンの設定に従って、マイグレーション先のホスト20,30に、マイグレーションが行われた仮想マシンをホスト10に戻すように通知する(ステップS17)。
ステップS17において通知を受けたマイグレーション先のホスト20,30は、マイグレーションが行われた仮想マシン11a,11b,11cをホスト10に戻す(ステップS18)。その結果、仮想マシン11a,11b,11cは、再びホスト10上で運用される。なお、仮想マシンがホスト10上に戻されたあとは、ホスト10は、マイグレーション前の仮想マシンの設定を示す情報を消去してもよい。
このような仮想マシンシステムでは、ユーザがマイグレーションしたい仮想マシンを指定するだけで、仮想マシンのマイグレーションの実施を自動で実行することができる。従って、マイグレーションの実施は技術者が手動で行っていた従来の方法に比べ、処理を自動化できて便利である。
また、このような仮想マシンシステムでは、ホストのメンテナンスなどのために、一時的に仮想マシンのマイグレーションを行いたい場合には、ステップS16〜S18の動作を行うことによって、仮想マシンシステムの構成をマイグレーションの実施前の構成に復元することができる。
図4は、仮想マシンのマイグレーション先を決定する処理を示すUMLアクティビティ図である。図4を参照して、図3のステップS13に示されたマイグレーション先の決定処理を詳細に説明する。例えば、マイグレーションを行う仮想マシンとして、図1に示すホスト10上の仮想マシン11a,11b,11cが指定されたとする。また、仮想マシンの割り当ての指標となるパラメータの算出には、ホストおよび仮想マシンに関するCPUのコア数、CPU使用率およびメモリ容量を用いる。
まず、ホスト10は、ホスト10上の全ての仮想マシン(仮想マシン11a,11b,11c)に割り当てられているコア数の合計(合計コア数)を算出する(ステップS21)。次に、ホスト10は、ホスト10上の全ての仮想マシンに割り当てられているメモリの合計(合計メモリ容量)を算出する(ステップS22)。
ホスト10は、ステップS21,S22で算出したホスト10の合計コア数および合計メモリ容量に基づいて、ホスト10上の全ての仮想マシンで必要とされる物理容量の最大量を算出し、算出した物理容量と、他のホストのメモリの空き容量の合計(合計空き容量)とを比較する(ステップS23)。以降では省略のために、「ホスト10の合計コア数および合計メモリ容量と、他のホストの合計空き容量とを比較する。」などの表現を用いる。
ステップS23において、ホスト10の合計コア数および合計メモリ容量が他のホストの合計空き容量よりも少なかった場合には、ホスト10は、当該他のホストにホスト10上の仮想マシンを、パラメータを修正することなしに、そのまま割り当てることができるか否かをシミュレートする(ステップS24)。なお、ステップS24のシミュレーションの詳細な処理については、図5を参照して後述する。
ステップS24のシミュレーションにおいて、仮想マシンを割り当てることができた場合には、割り当てることができたホストをホスト10の仮想マシンのマイグレーション先とする。
ステップS23において、ホスト10の合計コア数および合計メモリ容量が他のホストの合計空き容量以上であった場合、または、ステップS24において、仮想マシンの割り当て先が見つからなかった場合には、ホスト10は、ホスト10上の全仮想マシンについて、平均メモリ使用量の合計を算出する(ステップS25)。
そして、ホスト10は、ステップS25で算出した平均メモリ使用量の合計と、他のホストの合計空き容量とを比較する(ステップS26)。
ステップS26において、ホスト10の他のホストの合計空き容量が、ホスト10上の全仮想マシンの平均メモリ使用量の合計以上であった場合には、ホスト10は、ホスト10上の全仮想マシンについて、CPU使用率の合計を算出する(ステップS27)。ここで、「CPU使用率」は、「平均CPU使用率×コア数」で求められる値とし、100を超える値になってもよい。例えば、平均CPU使用率が60%で、コア数が4つ割り当てられた仮想マシンのCPU使用率は、240となる。
そして、ホスト10は、ステップS27で算出したCPU使用率の合計と、他のホストの空きコア数の合計を100倍したものとを比較する(ステップS28)。
ステップS26において、ホスト10の他のホストの合計空き容量が、ホスト10上の全仮想マシンの平均メモリ使用量の合計よりも少なかった場合、または、ステップS28において、空きコア数の合計を100倍したものが、ホスト10上の全仮想マシンのCPU使用率の合計よりも少なかった場合には、割り当ての対象外として処理を終了する。
ステップS28において、空きコア数の合計を100倍したものが、ホスト10上の全仮想マシンのCPU使用率の合計以上であった場合には、ホスト10上の仮想マシンのパラメータ修正を行い、仮想マシンのシステム構成を変更して、当該他のホストに割り当てることができるか否かをシミュレートする(ステップS29)。なお、ステップS29のシミュレーションの詳細な処理については、図6を参照して後述する。
ステップS29のシミュレーションにおいて、仮想マシンを割り当てることができた場合には、割り当てることができたホストをホスト10の仮想マシンのマイグレーション先とする。ステップS24のシミュレーションにおいて、仮想マシンを割り当てることができなかった場合には、割り当ての対象外として処理を終了する。
なお、図4の処理において、「割り当ての対象外」と判定された場合は、マイグレーションを実施すると、別の仮想マシンを運用している他のホストのパフォーマンスに影響を与えると判断されたことを意味する。本発明による仮想マシンシステムは、マイグレーション先のホストのパフォーマンスにできるだけ影響を与えずに、マイグレーションを行うことを目的の1つとしているので、このような場合には、割り当ての対象外と判定する。
図5は、仮想マシンのパラメータを修正することなしに、ホストに仮想マシンを割り当てるシミュレーションの処理を示すUMLアクティビティ図である。図5を参照して、図4のステップS24におけるシミュレーションの処理を詳細に説明する。
まず、ホスト10は、第1キーをコア数、第2キーをメモリ容量として、マイグレーションを実施する仮想マシン、すなわち、ホスト10上の全仮想マシンを降順にソートする(ステップS31)。その結果、ホスト10上の全仮想マシンは、仮想マシンごとに必要とする物理容量の最大量が大きい順に並べられる。ホスト10は、ステップS31においてソートした仮想マシンソート結果をテーブルなどの形式でホスト10の格納部に格納する。
次に、ホスト10は、第1キーを空きコア数、第2キーを空きメモリ容量として、マイグレーション先の候補となるホスト、すなわち、ネットワーク線50によって接続されているホスト10以外の全てのホストを降順にソートする(ステップS32)。その結果、ホスト10以外の全てのホストは、仮想メモリに割り当てることが可能な物理容量が大きい順に並べられる。ホスト10は、ステップS32においてソートしたホストソート結果をテーブルなどの形式でホスト10の格納部に格納する。
ホスト10は、ステップS31およびステップS32におけるソート結果に、仮想マシン番号mおよびホスト番号nを定義する(ステップS33)。例えば、ホスト10上の仮想マシンがM台あるとすると、仮想マシン番号mは、0から順にM−1までの整数が当てられる。ホスト10以外の全てのホストがN台あるとすると、ホスト番号nは、0から順にN−1までの整数が当てられる。また、仮想マシン番号mおよびホスト番号nは初期値を0とする。なお、仮想マシン番号mが当てられた仮想マシンを仮想マシンmと呼び、ホスト番号nが当てられたホストをホストnと呼ぶ。
ホスト10は、全仮想マシンに対して、後述のステップS35〜S39に示す処理を行う(ステップS34)。すなわち、仮想マシン番号mが0からM−1の間、ステップS35〜S39に示す処理を繰り返す。ただし、場合によって、ステップS40〜S43に示す処理も繰り返し実行される。
ステップS35〜S43における処理を説明する。まず、ホスト10は、仮想マシン番号mを固定したまま、仮想マシンmをマイグレーションできるホストが見つかるまでは、ホスト10以外の全てのホストに対して、後述のステップS36〜S37に示す処理を行う(ステップS35)。すなわち、仮想マシン番号mについて、ホスト番号nが0からN−1の間、ステップS36〜S37に示す処理を繰り返す。
ステップS35において、仮想マシンmについて、ホスト10以外の全てのホストに対する処理が終了していない場合に、ホスト10は、仮想マシンmがホストnにマイグレーションできるか否か判定する(ステップS36)。仮想マシンmがホストnにマイグレーションできるか否かは、仮想マシンmに割り当てられているコア数とメモリ容量とが、ホストnの空き容量内に収まるか否かによって判定される。
ステップS36において、仮想マシンmがホストnにマイグレーションできないと判定した場合には、ホスト10は、ホスト番号をn+1にして(ステップS37)、ステップS35に戻って次のホストに対する処理を行う。
ステップS36において、仮想マシンmがホストnにマイグレーションできると判定した場合には、ホスト10は、仮想マシンmをホストnに割り当てることを割り当てデータとして記録する(ステップS38)。記録された割り当てデータは、格納部に格納される。また、ホスト10は、格納部に格納されているホストソート結果に対して、記録された割り当てを反映させる。具体的には、例えば、ホストソート結果のホストnのデータに対して、仮想マシンmが必要とする物理容量だけ減算し、格納部に再格納する。
そして、ホスト10は、仮想マシン番号をm+1に、ホスト番号を0にして(ステップS39)、ステップS34に戻って次の仮想マシンに対する処理を行う。
S36〜S39に示す処理が繰り返されて、ステップS35において、仮想マシンmについて、ホスト10以外の全てのホストに対する処理が終了した場合には、仮想マシンmのマイグレーション先ホストが見つからなかったことを意味する。そのとき、ホスト10は、仮想マシン番号mが0か否かを確認し、ステップS31における仮想マシンソート結果の最初の仮想マシンであるか否かを判定する(ステップS40)。
ステップS40において、仮想マシン番号mが0で、最初の仮想マシンであると判定された場合には、ホスト10は、割り当て例が見つからなかったとして、シミュレーションを終了する。
ステップS40において、仮想マシン番号が0以外で、最初の仮想マシンではないと判定された場合には、ホスト10は、仮想マシン番号をm−1にして、1つ前の仮想マシンに戻る(ステップS41)。このとき、1つ前の仮想マシンは、マイグレーションできるホストが見つかっていて、ステップS38に示す処理で、割り当てるホスト(例えば、ホスト番号n1とする)が記録されている。
ステップS41において仮想マシン番号をm−1にすると、ホスト10は、ホスト番号を(n1+1)にして、仮想マシン(m−1)の割り当て先として記録されたホストn1の次のホストにする(ステップS42)。
ホスト10は、格納部に格納されている割り当てデータに対して、仮想マシン(m−1)とホストn1との記録を削除する。また、ホスト10は、格納部に格納されているホストソート結果に対して、削除された割り当てを反映させる(ステップS43)。具体的には、例えば、ホストソート結果のホストn1のデータに対して、仮想マシン(m−1)の割り当てを記録するときに減算された物理容量を戻し、格納部に再格納する。
そして、ステップS34に戻り、仮想マシン番号(m−1)の仮想マシンについて、ホスト番号(n1+1)のホストに対する処理を行う。
ステップS34において、仮想マシン番号がMとなった場合には、ホスト10上の全仮想マシンについて、マイグレーションできるホストが見つかったことを示すので、割り当て例が見つかったとしてシミュレーションを終了する。このとき、ホスト10上の全仮想マシンに、パラメータの修正を行うことなく、割り当てが記録された各ホストにマイグレーションを実行することができる。
図6は、仮想マシンのパラメータを修正して、ホストに仮想マシンを割り当てるシミュレーションの処理を示すUMLアクティビティ図である。図6を参照して、図4のステップS29におけるシミュレーションの処理を詳細に説明する。
まず、ホスト10は、仮想マシンの割り当て指標Pを算出する(ステップS51)。例えば、割り当て指標Pは、P=(ホスト10上の全仮想マシンのCPU使用率の合計/ホスト10以外の全ホストの空きCPUコア数×100)で示される計算式によって算出される。ホスト10は、算出した割り当て指標Pを格納部に格納する。
次に、ホスト10は、図5のステップS31〜S33に示す処理と同様に、ホスト10上の全仮想マシンのソート(ステップS52)と仮想マシンソート結果の格納、ホスト10以外の全ホストのソート(ステップS53)とホストソート結果の格納、および仮想マシン番号m,ホスト番号nの定義と割り当て(ステップS54)を行う。なお、仮想マシン番号mが当てられた仮想マシンを仮想マシンmと呼び、ホスト番号nが当てられたホストをホストnと呼ぶ。
ホスト10は、全仮想マシンに対して、後述のステップS56〜S62に示す処理を行う(ステップS55)。すなわち、仮想マシン番号mが0からM−1の間、ステップS56〜S62に示す処理を繰り返す。ただし、場合によって、ステップS63〜S66に示す処理も繰り返し実行される。
ステップS56〜S66における処理を説明する。まず、ホスト10は、仮想マシン番号mを固定したまま、仮想マシンmをマイグレーションできるホストが見つかるまでは、ホスト10以外の全てのホストに対して、後述のステップS57〜S59に示す処理を行う(ステップS56)。すなわち、仮想マシン番号mについて、ホスト番号nが0からN−1の間、ステップS57〜S59に示す処理を繰り返す。
ステップS56において、仮想マシンmについて、ホスト10以外の全てのホストに対する処理が終了していない場合に、ホスト10は、ホストnのリソース状況と割り当て指標Pを比較する(ステップS57)。具体的には、(ホストnのCPU使用率の合計/ホストnの空きCPUコア数×100)で算出される値(ホストnのリソース指数)が、割り当て指標Pよりも大きいか否かを比較する。
ステップS57において、ホストnのリソース指数が割り当て指標Pよりも大きかった場合には、ホスト10は、仮想マシンmをホストnにマイグレーションできないと判定し、ホスト番号をn+1にして(ステップS58)、ステップS56に戻って次のホストに対する処理を行う。
ステップS57において、ホストnのリソース指数が割り当て指標P以下であった場合は、ホスト10は、マイグレーション後の仮想マシンmに割り当てる使用メモリ量Xmを決定する(ステップS59)。具体的には、使用メモリ量Xmは、Xm=((仮想マシンmの平均メモリ使用量/Q)+1)×Mで示される計算式によって算出される。なお、Qは、割り当てられるメモリの最小単位を示す定数である。
ステップS59において決定された仮想マシンmの使用メモリ量が、ホストnの空きメモリ容量を超えているときには、容量オーバーであるから、ホスト10は、仮想マシンmをホストnにマイグレーションできないと判定し、ステップS58に進み、次のホストに対する処理を行う。
ステップS59において決定された仮想マシンmの使用メモリ量が、ホストnの空きメモリ容量以内である場合には、ホスト10は、仮想マシンmをホストnにマイグレーションできると判定する。ホスト10は、マイグレーション後の仮想マシンmに割り当てる使用コア数Ymを決定する(ステップS60)。具体的には、使用コア数Ymは、Ym=(仮想マシンmのCPU使用率/100)+1で示される計算式によって算出される(“/”の計算結果は、除算の商を表すものとする。除算の余りは切り捨てられる。)。
ホスト10は、仮想マシンmをホストnに割り当てることを割り当てデータとして記録する(ステップS61)。記録された割り当てデータは、格納部に格納される。また、ホスト10は、格納部に格納されているホストソート結果に対して、記録された割り当てを反映させる。具体的には、例えば、ホストソート結果のホストnのデータに対して、使用メモリXmと使用コア数Ymに基づいて仮想マシンmのために確保する必要がある物理容量を減算し、格納部に再格納する。
そして、ホスト10は、仮想マシン番号をm+1に、ホスト番号を0にして(ステップS62)、ステップS55に戻って次の仮想マシンに対する処理を行う。
S57〜S62に示す処理が繰り返されて、ステップS56において、仮想マシンmについて、ホスト10以外の全てのホストに対する処理が終了した場合には、仮想マシンmのマイグレーション先ホストが見つからなかったことを意味する。そのとき、ホスト10は、仮想マシン番号が0か否かを確認し、ステップS52における仮想マシンソート結果の最初の仮想マシンであるか否かを判定する(ステップS63)。
ステップS63において、仮想マシン番号が0で、最初の仮想マシンであると判定された場合には、ホスト10は、割り当て例が見つからなかったとして、シミュレーションを終了する。
ステップS63において、仮想マシン番号が0以外で、最初の仮想マシンではないと判定された場合には、ホスト10は、仮想マシン番号をm−1にして、1つ前の仮想マシンに戻る(ステップS64)。このとき、1つ前の仮想マシンは、マイグレーションできるホストが見つかっていて、ステップS61に示す処理で、割り当てるホスト(例えば、ホスト番号n2とする)が記録されている。
ステップS64において仮想マシン番号をm−1にすると、ホスト10は、ホスト番号を(n2+1)にして、仮想マシン(m−1)の割り当て先として記録されたホストn2の次のホストにする(ステップS65)。
ホスト10は、格納部に格納されている割り当てデータに対して、仮想マシン(m−1)とホストn2との記録を削除する。また、ホスト10は、格納部に格納されているホストソート結果に対して、削除された割り当てを反映させる(ステップS66)。具体的には、例えば、ホストソート結果のホストn2のデータに対して、仮想マシン(m−1)の割り当てを記録するときに減算された物理容量を戻し、格納部に再格納する。
そして、ステップS55に戻り、仮想マシン番号(m−1)の仮想マシンについて、ホスト番号(n2+1)のホストに対する処理を行う。
ステップS55において、仮想マシン番号がMとなった場合には、ホスト10上の全仮想マシンについて、マイグレーションできるホストが見つかったことを示すので、割り当て例が見つかったとしてシミュレーションを終了する。このとき、ホスト10上の全仮想マシンに、それぞれパラメータを修正したうえで、割り当てが記録された各ホストにマイグレーションを実行することができる。
なお、図5および図6では、仮想マシンの割り当て先のホストのシミュレーションにおいて、ホストおよび仮想マシンに関するCPUのコア数、CPU使用率およびメモリ容量を用いたが、CPUの種類や周波数などを考慮して仮想マシンの割り当て先のホストをシミュレーションしてもよい。
このように、仮想マシンシステムであるホスト10は、仮想マシンのパラメータを変更せずにマイグレーションする場合に、マイグレーション先のホスト上ですでに運用中である他の仮想マシンに割り当てられているリソース以外のリソースを仮想マシンに割り当てるので、マイグレーションを行ったときに、運用中の他の仮想マシンとリソースを奪い合うといった悪影響を抑えることができる。
また、ホスト10は、マイグレーション先の候補となるホストに空き容量が足りないなどして、仮想マシンのパラメータを変更せずにマイグレーションを行うことができない場合には、仮想マシンのパラメータを変更してシステム構成を変更し、マイグレーション先を探すことができる。そして、仮想マシンのパラメータを変更してマイグレーションする場合にも、マイグレーション先のホスト上ですでに運用中である他の仮想マシンに割り当てられているリソースを変更することなく、使用されていないリソースを仮想マシンに割り当てるので、マイグレーションを行ったときに、運用中の他の仮想マシンとリソースを奪い合うといった悪影響を抑えることができる。
そして、このような仮想マシンシステムによれば、待機用のハードウェアを用意しなくても、仮想マシンの運用を中断することなしに、オンラインのまま、仮想マシンシステムのメンテナンスを実施することができる。
さらに、このような仮想マシンシステムは、仮想マシンのマイグレーションを自動で行うことができるので、技術者の手間を軽減することができ、マイグレーション時の人的な操作ミスによる障害の発生を抑止することもできる。
なお、図6では、仮想マシンの割り当て先のホストのシミュレーションにおいて、仮想マシンの割り当て指標Pを用いたが、例えば、割り当て指標Pに0以上の係数を掛けて算出される割り当て指標P’を用いてもよい。このような割り当て指標P’を用いることによって、仮想マシンシステムは、仮想マシンシステムにかかる負荷を任意に調整したシミュレーション(例えば、少し負荷がかかってもマイグレーションしたい場合のシミュレーションなど)を実行することができる。
図7は、本発明による仮想マシンシステムの主要部を示すブロック図である。図7に示すように、仮想マシンシステムは、計算機1(例えば、図1に示すホスト10に相当)に1つ以上の仮想マシン2,3(例えば、図1に示す仮想マシン11a,11bに相当)が構築された仮想マシンシステムであって、計算機は、仮想マシンごとのシステム情報を含む仮想マシン構成情報(例えば、実施形態において仮想マシン管理ソフトウェア12の動作によって収集されるホスト10のハードウェア情報や仮想マシン11a,11b,11cの構成情報に相当)を収集し、複数の他の計算機4,5(例えば、図1に示すホスト20,30に相当)から各計算機の空き容量情報を含むホスト構成情報(例えば、実施形態においてホスト10がホスト20から取得できる各構成情報に相当)を収集する情報収集部6(例えば、図1に示す管理ソフトウェア12のプログラムに従って動作する制御部に相当)と、情報収集部6によって収集された仮想マシン構成情報とホスト構成情報とに基づいて、仮想マシン2,3のマイグレーション先の他の計算機4,5を決定する決定部7(例えば、図1に示す管理ソフトウェア12のプログラムに従って動作する制御部に相当)と、決定部7によって決定されたマイグレーション先の他の計算機4,5に、仮想マシン2,3をマイグレーションする実行部8(例えば、図1に示す管理ソフトウェア12のプログラムに従って動作する制御部に相当)とを含むように構成されている。
また、仮想マシンシステムの一実施形態として記載された上記のホストでは、以下の(1)〜(5)に示すような仮想マシンシステムも開示されている。
(1)マイグレーションを行う前の仮想マシン構成情報を格納する格納部(例えば、実施形態の格納部(図示せず)に相当)を備え、実行部は、決定部によって決定されたマイグレーション先の他の計算機に仮想マシンをマイグレーションして、所定の処理(例えば、ホストのメンテナンス)が完了したあとに、格納部に格納された仮想マシン構成情報を参照し、マイグレーション先の他の計算機に、マイグレーションを行う前の配置状態に復元するために仮想マシンを戻すように通知する(例えば、図3のステップS17に示す動作によって実現される。)仮想マシンシステム。
(2)決定部は、仮想マシン構成情報とホスト構成情報とに基づいて、仮想マシンのシステムを構成する所定のパラメータを修正した場合のシミュレーションを行い(例えば、図6に示すシミュレーションの動作によって実現される。)、マイグレーションを実行可能なマイグレーション先の他の計算機を決定し、実行部は、決定部によってマイグレーション先の他の計算機が決定された場合のシミュレーションと同じ修正パラメータを用いて、仮想マシンを決定された他の計算機にマイグレーションする仮想マシンシステム。
(3)決定部は、計算機のCPU使用率の合計と空きCPUコア数とに基づいて算出した割り当て指標(例えば、実施形態における割り当て指標Pに相当)を判断基準の1つに用いて、仮想マシンのシステムを構成する所定のパラメータを修正した場合のシミュレーションを行う(例えば、図6に示すシミュレーションの動作によって実現される。)仮想マシンシステム。
(4)情報収集部は、CPUコア数、CPU使用率およびメモリ使用量を含む仮想マシン構成情報を収集する仮想マシンシステム。
(5)情報収集部は、計算機の空きCPUコア数および空きメモリ容量を含むホスト構成情報を収集する仮想マシンシステム。
1 計算機
2,3 仮想マシン
4,5 (他の)計算機
6 情報収集部
7 決定部
8 実行部
10,20,30 ホスト
11a,11b,11c,21a,31b,31c 仮想マシン
12,22,32 仮想マシン管理ソフトウェア
40 共有ストレージ
50 ネットワーク線
51,52,53 ストレージネットワーク線

Claims (6)

  1. 計算機に1つ以上の仮想マシンが構築された仮想マシンシステムであって、
    前記計算機は、
    仮想マシンごとのシステム情報を含む仮想マシン構成情報を収集し、複数の他の計算機から各計算機の空き容量情報を含むホスト構成情報を収集する情報収集部と、
    前記情報収集部によって収集された仮想マシン構成情報とホスト構成情報とに基づいて、仮想マシンのマイグレーション先の他の計算機を決定する決定部と、
    前記決定部によって決定されたマイグレーション先の他の計算機に、前記仮想マシンをマイグレーションする実行部とを含み、
    前記決定部は、収集された前記仮想マシン構成情報と前記ホスト構成情報とに基づいて、前記仮想マシンに割り当てる使用メモリ量および使用CPUコア数を修正した場合のシミュレーションを行い、マイグレーションを実行可能なマイグレーション先の他の計算機を決定し、
    前記実行部は、前記決定部によってマイグレーション先の他の計算機が決定された場合のシミュレーションと同じ使用メモリ量および使用CPUコア数を用いて、前記仮想マシンを前記決定された他の計算機にマイグレーションする
    ことを特徴とする仮想マシンシステム。
  2. 決定部は、仮想マシンが構築された計算機のCPU使用率の合計と複数の他の計算機の空きCPUコア数とに基づいて算出した割り当て指標を判断基準の1つに用いて、仮想マシンに割り当てる使用メモリ量および使用CPUコア数を修正した場合のシミュレーションを行う
    請求項記載の仮想マシンシステム。
  3. 情報収集部は、CPUコア数、CPU使用率およびメモリ使用量を含む仮想マシン構成情報を収集する
    請求項1または請求項2記載の仮想マシンシステム。
  4. 情報収集部は、複数の他の計算機の空きCPUコア数および空きメモリ容量を含むホスト構成情報を収集する
    請求項1から請求項のうちのいずれか1項に記載の仮想マシンシステム。
  5. 計算機に1つ以上の仮想マシンが構築された仮想マシンシステムにおける自動マイグレーション方法であって、
    仮想マシンごとのシステム情報を含む仮想マシン構成情報を収集し、
    複数の他の計算機から各計算機の空き容量情報を含むホスト構成情報を収集し、
    収集された前記仮想マシン構成情報と前記ホスト構成情報とに基づいて、前記仮想マシンに割り当てる使用メモリ量および使用CPUコア数を修正した場合のシミュレーションを行い、マイグレーションを実行可能なマイグレーション先の他の計算機を決定し、
    前記マイグレーション先の他の計算機が決定された場合のシミュレーションと同じ使用メモリ量および使用CPUコア数を用いて、前記仮想マシンを前記決定された他の計算機にマイグレーションする
    ことを特徴とする自動マイグレーション方法。
  6. 計算機に1つ以上の仮想マシンが構築された仮想マシンシステムに、
    仮想マシンごとのシステム情報を含む仮想マシン構成情報を収集する処理と、
    複数の他の計算機から各計算機の空き容量情報を含むホスト構成情報を収集する処理と、
    収集された前記仮想マシン構成情報と前記ホスト構成情報とに基づいて、前記仮想マシンに割り当てる使用メモリ量および使用CPUコア数を修正した場合のシミュレーションを行い、マイグレーションを実行可能なマイグレーション先の他の計算機を決定する処理と、
    前記マイグレーション先の他の計算機が決定された場合のシミュレーションと同じ使用メモリ量および使用CPUコア数を用いて、前記仮想マシンを前記決定された他の計算機にマイグレーションする処理とを実行させるための
    自動マイグレーションプログラム。
JP2010058006A 2010-03-15 2010-03-15 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム Expired - Fee Related JP5515889B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010058006A JP5515889B2 (ja) 2010-03-15 2010-03-15 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010058006A JP5515889B2 (ja) 2010-03-15 2010-03-15 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム

Publications (2)

Publication Number Publication Date
JP2011192049A JP2011192049A (ja) 2011-09-29
JP5515889B2 true JP5515889B2 (ja) 2014-06-11

Family

ID=44796880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010058006A Expired - Fee Related JP5515889B2 (ja) 2010-03-15 2010-03-15 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム

Country Status (1)

Country Link
JP (1) JP5515889B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013080346A (ja) * 2011-10-03 2013-05-02 Daiwa Securities Group Inc 情報処理装置、保守作業支援方法および保守作業支援用プログラム
FR2982386B1 (fr) * 2011-11-08 2016-05-27 Bull Sas Procede, programme d'ordinateur et dispositif d'allocation de ressources informatiques d'un cluster pour l'execution d'un travail soumis audit cluster
JP5870809B2 (ja) * 2012-03-28 2016-03-01 日本電気株式会社 仮想化システム、管理用ホスト計算機、ストレージシステムのファームウェアアップデート方法、及びストレージシステムのファームウェアアップデートプログラム
JP6075226B2 (ja) 2013-06-26 2017-02-08 富士通株式会社 プログラム、仮想マシン管理方法および情報処理装置
JP6277069B2 (ja) * 2014-06-17 2018-02-07 日本電信電話株式会社 仮想機器管理装置、仮想機器管理方法及び仮想機器管理プログラム
JP6969282B2 (ja) * 2017-10-25 2021-11-24 富士通株式会社 情報処理装置、情報処理システムおよび情報処理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005004676A (ja) * 2003-06-16 2005-01-06 Fujitsu Ltd 適応型分散処理システム
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
JP4438807B2 (ja) * 2007-03-02 2010-03-24 日本電気株式会社 仮想マシンシステム、管理サーバ、仮想マシン移行方法及びプログラム
JP4744480B2 (ja) * 2007-05-30 2011-08-10 株式会社日立製作所 仮想計算機システム
JP5035011B2 (ja) * 2008-02-22 2012-09-26 日本電気株式会社 仮想サーバ管理装置および仮想サーバ管理方法

Also Published As

Publication number Publication date
JP2011192049A (ja) 2011-09-29

Similar Documents

Publication Publication Date Title
JP7138126B2 (ja) リソース配置を最適化するための適時性リソース移行
US10924535B2 (en) Resource load balancing control method and cluster scheduler
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
US10789102B2 (en) Resource provisioning in computing systems
US10055252B2 (en) Apparatus, system and method for estimating data transfer periods for job scheduling in parallel computing
JP5515889B2 (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
US20130339956A1 (en) Computer system and optimal arrangement method of virtual machine in computer system
US20120221730A1 (en) Resource control system and resource control method
JP6969282B2 (ja) 情報処理装置、情報処理システムおよび情報処理方法
JP7159887B2 (ja) 仮想化基盤および仮想化基盤のスケーリング管理方法
CN113110914A (zh) 一种基于微服务架构的物联网平台构建方法
US10397315B2 (en) Information processing apparatus and load distribution control method
JP2015007942A (ja) プログラム、仮想マシン管理方法および情報処理装置
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
JPWO2018029781A1 (ja) 管理計算機、性能監視方法及び計算機システム
JP6070371B2 (ja) データ配置プログラム、及び情報処理装置
CN112948279A (zh) 管理存储***中的访问请求的方法、设备和程序产品
CN112000460A (zh) 一种基于改进贝叶斯算法的服务扩缩容的方法及相关设备
JP6620609B2 (ja) 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置
JP6666553B2 (ja) 情報処理装置、ジョブ管理方法およびジョブ管理プログラム
CN112631994A (zh) 数据迁移方法及***
CN115061813A (zh) 集群资源的管理方法、装置、设备及介质
JP5056346B2 (ja) 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム
JP6365027B2 (ja) 割り当てプログラム、割り当て装置、割り当てシステム、及び割り当て方法
JP7332249B2 (ja) 移行先決定プログラム、装置、及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140317

R150 Certificate of patent or registration of utility model

Ref document number: 5515889

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees