[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2010117760A - 仮想マシン移動管理サーバおよび仮想マシン移動方法 - Google Patents

仮想マシン移動管理サーバおよび仮想マシン移動方法 Download PDF

Info

Publication number
JP2010117760A
JP2010117760A JP2008288593A JP2008288593A JP2010117760A JP 2010117760 A JP2010117760 A JP 2010117760A JP 2008288593 A JP2008288593 A JP 2008288593A JP 2008288593 A JP2008288593 A JP 2008288593A JP 2010117760 A JP2010117760 A JP 2010117760A
Authority
JP
Japan
Prior art keywords
virtual machine
machine
physical machine
migration
physical
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.)
Granted
Application number
JP2008288593A
Other languages
English (en)
Other versions
JP4839361B2 (ja
Inventor
Nozomi Okabayashi
希 岡林
Yoji Iwata
陽司 岩田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008288593A priority Critical patent/JP4839361B2/ja
Publication of JP2010117760A publication Critical patent/JP2010117760A/ja
Application granted granted Critical
Publication of JP4839361B2 publication Critical patent/JP4839361B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】システム全体の負荷を分散させ、効率よく安全に仮想マシンを配置および移動する。
【解決手段】仮想マシン122および物理マシン120の負荷の変化を、高次方程式等の近似式によって把握または分析することで、物理マシン120のリソース不足の事前検出、および中長期的に見て適切な仮想マシン122の配置および移動を実現する。加えて、ネットワークの負荷の変化も高次方程式等の近似式によって把握または分析することで、仮想マシン122、物理マシン120、ネットワークにおいて負荷が偏らないように、仮想マシン122の移動をスケジューリングする。特に、物理マシン120や仮想マシン122におけるCPU負荷のピークの重複はできるだけ回避された移動スケジュールを組む。
【選択図】図1

Description

本発明は、仮想化環境を実現するシステムにおける仮想マシンの配置および移動を管理する技術に関する。
従来は、特許文献1に記載されているように、複数の仮想マシンを複数の物理マシンに配置する際、仮想マシンや物理マシンのパフォーマンスのデータの測定値をそのまま比較し、最適なパフォーマンスとなる配置を算出していた。
特開2005−115653号公報
このような従来技術では、パフォーマンス値の最大または最少を考慮して仮想マシンを配置することはできるとしているが、負荷のピークの重複による負荷の偏りを低減または回避して仮想マシンを配置することはできない。一般に、ピーク時は負荷の変動の幅が大きく、異なる業務の同時刻のピーク同士を同一物理マシンで実行すると負荷の変動が一層大きくなり、リソース不足になるリスクが大きくなる、という課題がある。
また、オンデマンドな仮想マシンの移動検討および移動実施においては、仮想マシンの移動が同時多発し、これによりネットワーク負荷が増大する、という課題がある。
このような課題が存在している以上、従来技術によるパフォーマンスは決して最適とはいえない。
前記事情を鑑みて、本発明では、システム全体の負荷を分散させ、効率よく安全に仮想マシンを配置および移動することを目的とする。
本発明では、仮想マシン、物理マシン、必要に応じてネットワークの負荷の変化等を考慮し、仮想マシンの移動スケジュールを事前に決定する。
具体的には、仮想マシン、物理マシン、必要に応じてネットワークの負荷のサイクル(経時変化)を、関数を使用して把握・分析する。これらの複数の関数の和や差の値、交点の有無等を判断の根拠にして、物理マシンのリソース不足の事前検出、および中長期的に見て適切な仮想マシンの配置を実現する。さらに、仮想マシンを移動する場合も、仮想マシンや物理マシン等、移動に関係するシステムの負荷のサイクルを、関数を使用して把握・分析し、負荷が偏らない(ピークを作らない)ように、移動をスケジューリングする。
詳細は後記する。
本発明により、システム全体の負荷を分散させ、効率よく安全に仮想マシンを配置および移動することができる。
以下、本発明を実施するための最良の形態(以下、実施形態という。)を図面に基づいて詳細に説明する。
本発明は、過去の実績から今後の傾向を算出し、この傾向を元に、今後の仮想化環境を最適化するシステムである。仮想化環境の最適化とは、リソース不足や負荷の偏りが発生しない仮想化環境を実現することである。本システムでは、仮想化環境を最適化するために、定期的に仮想化環境を分析し、リソース不足の恐れがある物理マシンの事前検出、仮想マシンの適切な配置、仮想マシンを移動する際のスケジューリングなどをおこなう。
また、本システムは本システム単独で使用するほか、オンデマンドで仮想マシンを移動するシステムと併用することも可能である。オンデマンドで仮想マシンを移動したために物理マシンのリソース不足が懸念される場合でも、本システムが定期的に最適化するため、事前にリソース不足を回避できる。
≪構成≫
図1は、本実施形態の一例である、仮想マシン移動システム(以下、単に、「システム」と称する場合もある。)の構成を示すものである。本実施形態では、ネットワーク140で通信可能に接続された管理サーバ100と物理マシン120で実現されている。また、管理サーバ100には、HDD(Hard Disk Drive:記憶部)130が接続されている。
管理サーバ100は、メモリ(記憶部)101、CPU(Central Processing Unit:制御部)113、NIC(Network Interface Card)114、I/O(Input/Output)115を備える。
メモリ101には、CPU113による実行を具現化する処理部として、高次方程式処理部103、移動判定部107および移動処理部110が備えられている。
高次方程式処理部103には、高次方程式算出部104、閾値超え判定部105およびピーク重複判定部106、といった処理部が備えられている。
移動判定部107には、移動仮想マシン候補選出部108、移動先物理マシン候補選出部109、といった処理部が備えられている。
移動処理部110は、スケジュール調整部111、移動実行部112、といった処理部が備えられている。
これら処理部による機能については後記する。
HDD130には、CPU使用率測定データテーブル131、係数表テーブル132、CPU使用率の高次方程式テーブル133、仮想/物理マシンの相関テーブル134、マシンの各種閾値テーブル135、ピーク判定値テーブル136および移動スケジュールテーブル137が格納される。管理サーバ100はI/O115を介してこれらの各種テーブルにあるデータを取得したり、これらの各種テーブルに対してデータの登録を実行したりする。
物理マシン120は、メモリ121、CPU123、NIC124を備える。メモリ121には、1以上の仮想マシン122が格納される。換言すれば、物理マシン120は、1以上の仮想マシンを構成する機能を備えている。
本実施形態では、高次方程式を算出したり仮想マシン122の移動要否およびそのタイミングを判定したりするためのデータとしてCPU123の使用率を使用しているが、メモリ121の使用率やI/O使用率等、他のデータを使用しても良い。
また、本実施形態では、高次方程式処理部103やCPU使用率測定データテーブル131、係数表テーブル132、CPU使用率の高次方程式テーブル133、マシンの各種閾値テーブル135が管理サーバ100のHDD130に格納されているが、これらは物理マシン120または他のマシンに格納されていても良い。
≪各種テーブルの詳細≫
次に、HDD130に格納された各種テーブルの詳細について説明する。
図2から図8は、HDD130に格納される各種テーブル131から137のデータ構造を図示したものである。
図2に示すCPU使用率測定データテーブル131は、物理マシン120のCPU123を使用する仮想マシン122のCPU使用率を、仮想マシン122のリソース使用率として定期的に測定したデータを格納するテーブルである。CPU使用率測定データテーブル131には、CPUの利用率の測定を行う月日が登録される日付1311、その月日において定期的に測定を行うと定めた時刻において測定されたCPU使用率(%)が登録される測定値1312、といったフィールドが備えられている。CPU使用率測定データテーブル131は、仮想マシン122ごとに設けられており、物理マシン120は、その物理マシン120上の仮想マシン122のCPU使用率を周知の方法で測定することができ、その測定したデータを管理サーバ100に送信することにより、このテーブルが作成される。
なお、CPU使用率測定データテーブル131に登録される測定データは、前記のように仮想マシン122のものであっても良いし、物理マシン120のものであっても良い。また、仮想マシン移動システム全体のものであっても良い。
図3に示す係数表テーブル132は、システムを構成する物理マシン120の性能差を補正する係数を格納するテーブルである。係数表テーブル132には、物理マシン120を識別する機能を有する名称が登録される物理マシン1321、その物理マシン120のスペック(仕様情報)を示し、その物理マシンに使用されているCPUのクロック周波数(GHz)が登録されるCPU1322、前記スペックに応じて各物理マシン間の性能差を補正する係数が登録される係数1323、といったフィールドが備えられている。係数1323に登録される係数の測定方法としては、例えば、ベンチマークによる測定方法がある。
図4に示すCPU使用率の高次方程式テーブル133は、仮想マシン122のCPU使用率のサイクルを高次方程式で近似表現したものを格納するテーブルである。CPU使用率の高次方程式テーブル133には、CPUの利用率の測定を行われた日(曜日等)や月等が登録される日付1331と、前記高次方程式における各項の係数が登録される項1332、といったフィールドが備えられている。高次方程式の算出に使用するデータは、CPU使用率測定データテーブル131を係数表テーブル132で補正したデータである。そして、そのデータを基に、例えば、最小二乗法を用いて前記高次方程式を算出する。なお、CPU使用率の高次方程式テーブル133に登録される高次方程式は、物理マシン120のものであっても良い。
本実施形態では、日単位、週単位、月単位の高次方程式を保持しているが、必要に応じて年単位も加えたり、日単位だけ保持したりしても良い。
また、本実施形態では、仮想マシンおよび物理マシンのCPU使用率のサイクルを近似するために高次方程式を使用しているが、三角関数や複素関数、指数対数関数等、他の関数を使用しても良い。
図5に示す仮想/物理マシンの相関テーブル134は、どの物理マシンがどの仮想マシンを有しているか、という相関関係を格納するテーブルである。また、このテーブルは、物理マシンおよび仮想マシンごとにフラグを立てるための領域を保持している。仮想/物理マシンの相関テーブル134には、本システムを構成する物理マシンを識別する機能を有する名称が登録される物理マシン名1341、その物理マシンに割り当てるフラグが登録される物理マシン用フラグ1342、当該物理マシン上の仮想マシンを識別する機能を有する名称が登録される仮想マシン名1343、その仮想マシンに割り当てるフラグが登録される仮想マシン用フラグ1344、といったフィールドが備えられている。
本実施形態では、物理マシン用フラグ1342の使用目的は、移動先物理マシン候補選出部109における仮想マシンの移動先候補(移動先物理マシン候補)の目印を設定することである。ある物理マシンが仮想マシンの移動先候補として決定した場合、当該物理マシン用フラグ1342には「1」というフラグが登録され、そうでない場合には、「0」というフラグが登録される。また、仮想マシン用フラグ1344の使用目的は、移動仮想マシン候補選出部108により優先的に移動する仮想マシン候補(移動仮想マシン候補)の目印を設定することである。ある仮想マシンが移動仮想マシン候補として決定した場合、当該仮想マシン用フラグ1344には「1」というフラグが登録され、そうでない場合には、「0」というフラグが登録される。これ等の他にも、移動禁止の仮想マシンやメンテナンス予定の物理マシンの目印を設定すること等を目的に、これらのフラグを使用しても良い。
図6に示すマシンの各種閾値テーブル135は、物理マシンおよび仮想マシンごとに、仮想化環境の実現に関するある目的を果たすときの許容範囲を示す閾値を格納するテーブルである。具体的には、このテーブルは、仮想マシンを稼働(配置)するという目的および仮想マシンを移動するという目的を果たしても良いとするリソースの使用率を示すCPU使用率(%)の上限を格納する。基本的には、本システムは、この上限を超えてしまうような目的を遂行する処理は実行しない。
マシンの各種閾値テーブル135には、本システムを構成する物理マシンおよび仮想マシンを識別する機能を有する名称が登録されるマシン1353、仮想マシンの稼動に関する上限を示すCPU使用率が登録される仮想マシン稼動上限(第1の閾値)1351、仮想マシンの移動に関する上限を示すCPU使用率が登録される仮想マシン移動上限(第2の閾値)1352、といったフィールドが備えられている。
仮想マシン稼働上限1351は、物理マシンにのみ設定される。仮想マシン稼働上限は、物理マシン上で仮想マシンを稼働した際に、各仮想マシンに十分にCPUリソース(資源)を割り当てられる、と考えられる物理マシンのCPU使用率の上限である。仮想マシン稼働上限1351の値を超えた場合は、その物理マシンから別の物理マシンへ、仮想マシンをいくつか移動することが望ましい。
仮想マシン移動上限1352は、物理マシンおよび仮想マシンに設定される。仮想マシン移動上限は、物理マシンにおいては、その物理マシン上の他の仮想マシン等に影響を与えずに安全に仮想マシンを移動できる、と考えられるCPU使用率の上限である。また、仮想マシンにおいては、実行中のアプリケーション等に影響を与えずに安全にその仮想マシンを移動できる、と考えられるCPU使用率の上限である。仮想マシン移動上限1352の値を超えた場合は、仮想マシンの移動に時間がかかったり、失敗したりする可能性がある。
これらのCPU使用率は、高次方程式の値と比較するためのものである。また、これらのCPU使用率を設定する際は、物理マシンのオーバーヘッドやマージンを加味して設定することが望ましい。
本実施形態では、閾値としてCPU使用率を使用しているが、メモリ使用率やI/O使用率等の他のデータを使用しても良い。
また、本実施形態では、仮想マシン稼働上限1351と仮想マシン移動上限1352の2つのみを保持しているが、同時実行可能な仮想マシンの数等の他の値を保持しても良い。
図7に示すピーク判定値テーブル136は、高次方程式で表現したCPU使用率のサイクルのうち、どの部分を負荷のピークとして定義するかを示した値を格納するテーブルである。ピーク判定値テーブル136は、負荷のピークを定義する判定値が登録される判定値1361といったフィールドが備えられている。本実施形態では、高次方程式の値を、その最小値を0、最大値を1とした場合、0.85以上になる部分をピークとして定義している。つまり、判定値1361に登録される判定値を0.85とする。
図8に示す移動スケジュールテーブル137は、仮想マシンの移動スケジュールを格納するテーブルである。具体的には、どの仮想マシンをどの物理マシンからどの物理マシンに何時に移動するか、また、移動にかかる時間は何分か、という情報が移動スケジュールとして定まる。そのために、移動スケジュールテーブル137には、仮想マシンの移動の開始時刻が登録される開始時刻1371、仮想マシンの移動時間が登録される移動時間1372、移動する仮想マシンを識別する機能を有する名称が登録される仮想マシン1373、仮想マシンの移動元である物理マシンを識別する機能を有する名称が登録される移動元物理マシン1374、仮想マシンの移動先である物理マシンを識別する機能を有する名称が登録される移動先物理マシン1375、といったフィールドが備えられている。
≪高次方程式の概要≫
図9から図11を参照して、高次方程式算出部104で算出する高次方程式の概要について説明する。具体的には、CPU使用率測定データテーブル131のデータから、CPU使用率における仮想マシンの高次方程式を算出する。さらに、仮想マシンの高次方程式から物理マシンの高次方程式を算出する。なお、CPU使用率に限らず、メモリ使用率やI/O使用率も下記と同様の手順で算出できる。
図9は、CPU使用率の測定データであって物理マシンのスペックを考慮して補正したものをプロットしたグラフを図示したものである。仮想マシン122のCPU使用率の測定データは、CPU使用率測定データテーブル131に登録されるが、この登録されたデータに対して、係数表テーブル132の係数1323に登録された係数を用いて補正がなされる。その結果、その補正がなされた補正済のCPU使用率データのプロット201が、CPU使用率(%)の軸と、時刻tの軸からなるグラフ上になされる。
図10は、仮想マシンの高次方程式およびそのグラフを図示したものである。この高次方程式F(x)202は、補正済のCPU使用率データのプロット201を基に、例えば最小二乗法を用いて求められる。本実施形態では、この仮想マシンの最大CPU使用率は40%であり、高次方程式F(x)202で描かれる、仮想マシンの高次方程式のグラフ203は、6時の少し前と18時の少し後に最大となっている。また、この仮想マシンを安全に移動できるのはCPU使用率が15%(仮想マシン移動上限)以下になる23時から0時付近と12時前後である。
図11は、物理マシンの高次方程式およびその物理マシン上の仮想マシンの高次方程式およびそれらのグラフを図示したものである。太線が物理マシンの高次方程式のグラフ204、細線がこの物理マシン上の仮想マシンの高次方程式のグラフ203である。仮想マシンの高次方程式の和が物理マシンの高次方程式である。本実施形態では、この物理マシン上の仮想マシンの移動が必要になるのは、物理マシンのCPU使用率が85%(仮想マシン稼動上限)を超えた時であり、18時頃までに仮想マシンの移動が必要であることが示されている。また、この物理マシンから仮想マシンを安全に移動、またはこの物理マシンに仮想マシンを安全に移動できるのは、CPU使用率が65%(仮想マシン移動上限)以下になる23時から0時付近と12時前後である。
高次方程式算出部104では、物理マシンごとのスペックを考慮し、CPU使用率測定データテーブル131の値を補正してから高次方程式を算出する。そのため、仮想化環境に多種多様の物理マシンがある場合でも、物理マシン間の性能差を気にすることなく高次方程式を活用できる。
また、仮想マシンの高次方程式から物理マシンの高次方程式を算出するため、物理マシンのCPU使用率を測定する機能を必要としない。ただ、物理マシンのCPU使用率を測定し、仮想マシンの高次方程式を用いることなく、物理マシンの高次方程式を直接算出するようにしても良い。
また、仮想マシンおよび物理マシンのCPU使用率のサイクルを高次方程式でCPU使用率の高次方程式テーブル133に保持するため、すべてを測定データのまま保持するよりも長期間のデータを保持できる。
なお、図9に示した補正済のCPU使用率データのプロットや、図10、図11に示した、仮想マシンまたは物理マシンの高次方程式は、実際に測定されたCPU使用率から求めたものなので、過去のある期間、図9〜図11のグラフでは1日間、に亘ったCPU使用率である。しかし、本システムの運用状況は、1日の間で変化することはほとんどない、という現状を踏まえれば、これらのプロットや高次方程式は、将来のある期間、例えば1日間(曜日別の1日間も含む)、1週間、1ヶ月間に亘って実現し得るCPU使用率のサイクル(経時変化)を表しているといえる。
≪処理≫
図12は、仮想マシン移動システムにおける仮想化環境を最適化する処理の流れを示す図である。CPU113は仮想化環境を最適化するため、定期的に、リソース不足になる可能性がある物理マシンを検出し、必要に応じて仮想マシンの移動を検討および実施する。
以下に述べる動作は、管理サーバ100のメモリ(記憶部)101に格納されたプログラム(処理部)が記憶領域にロードされ、CPU(制御部)113により実行されることにより、管理サーバ100上に具現化される各処理部による実行とされるものである。また、各プログラムは予め記憶部(HDD130を含む)に格納されても良いし、他の記憶媒体または通信媒体(ネットワークまたはネットワークを伝搬する搬送波)を介して、必要なときに導入されても良い。
図12の処理は、定刻において、CPU113からの命令がなされたことにより開始する(ステップS301)。
まず、仮想/物理マシンの相関テーブル134にあるすべての物理マシンを、ループ処理を実行することにより調査する(ステップS302⇔ステップS310)。このループ処理を通じて、リソース不足になる可能性がある物理マシンを検出する。
次に、CPU使用率の高次方程式テーブル133から取得した仮想マシンの高次方程式を用いて、図11を参照して説明した手順により物理マシンの高次方程式を取得し、そしてマシンの各種閾値テーブル135の仮想マシン稼動上限1351から当該物理マシンの仮想マシン稼動上限を取得する(ステップS303)。
次に、閾値超え判定を実行し、取得した物理マシンの高次方程式が、取得した仮想マシン稼動上限として示される閾値を超えるか否かを判定する(ステップS105A)。閾値超え判定部105は、閾値超え判定による判定結果を出力する(ステップS304)。
前記判定結果が、物理マシンの高次方程式が仮想マシン稼動上限として示される閾値を超えるものでない場合(ステップS304でNo(超えない))、この物理マシンはリソース不足になる可能性はないものと判断し、この物理マシンに対する処理を終了し(ステップS310)、他の物理マシンについてループ処理(ステップS302⇔ステップS310)を行う。すべての物理マシンについて行っていれば、ステップS112Aに進む。一方、物理マシンの高次方程式が仮想マシン稼動上限として示さされる閾値を超えるものである場合(ステップS304でYes(超える))、この物理マシンはリソース不足になる可能性があるものと判断し、ステップS108Aに進む。
リソース不足になる可能性があると判断された物理マシンについては、移動仮想マシン候補選出部108による移動仮想マシン候補選出が実行される(ステップS108A)。次に、移動仮想マシン候補選出により選出したすべての仮想マシンを、ループ処理を実行することにより調査する(ステップS305⇔ステップS309)。このループ処理を通じて、移動する仮想マシンを検出する。
次に、移動先物理マシン候補選出を実行し、移動先物理マシン候補が見つかるか否かを判定する(ステップS109A)。移動先物理マシン候補選出部109は、移動先物理マシン候補選出による判定結果を出力する(ステップS307)。
前記判定結果が、移動先物理マシン候補が見つからなかったとするものである場合(ステップS307で「失敗」)、その仮想マシンの移動をキャンセルするために移動スケジュールテーブル137における該当箇所(レコード)を削除し(ステップS306)、ステップS109Aに戻り、他の移動先物理マシン候補を探す。なお、移動先物理マシン候補が1つもなかった場合には、当該仮想マシンについては、仮想マシンの移動は不可と判断し、仮想化環境を最適化の処理は失敗したものとして終了する。
一方、前記判定結果が、移動先物理マシン候補が見つかったとするものである場合(ステップS307で「成功」)、移動先物理マシン候補の選出に成功したと判断し、ステップS111Aに進む。
移動先物理マシン候補の選出に成功した仮想マシンについては、スケジュール調整を実行し、対象とする仮想マシンが移動先物理マシン候補に移動するスケジュールの調整が可能か否かを判定する(ステップS111A)。スケジュールの調整部111は、スケジュール調整による判定結果を出力する(ステップS308)。
前記判定結果が、スケジュールの調整が不可能とするものである場合(ステップS308で「失敗」)、たとえば他のスケジュールと時間が重なった場合、その仮想マシンの移動をキャンセルするために移動スケジュールテーブル137における該当箇所(レコード)を削除し(ステップS306)、ステップS109Aに戻り、他の移動先物理マシン候補を探す。なお、移動先物理マシン候補が1つもなかった場合には、当該仮想マシンについては、仮想マシンの移動は不可と判断し、仮想化環境を最適化の処理は失敗したものとして終了する。
一方、前記判定結果が、スケジュールの調整が可能とするものである場合(ステップS308で「成功」)、スケジュールの調整に成功したと判断し、当該レコードは移動スケジュールテーブル137に残り、この仮想マシンに対する処理を終了し(ステップS309)、他の選出した仮想マシンについてループ処理(ステップS305⇔ステップS309)を行う。すべての選出した仮想マシンについて行っていれば、ステップS310に進む。これにより、どの仮想マシンをどの物理マシンからどの物理マシンに何時に移動するか、移動スケジュールテーブル137に登録される。
次に、調整が成功したスケジュールに従って、仮想マシンの移動を実行する(ステップS313)。この実行は、移動実行部112によってなされる。
最後に、仮想マシンの移動が完了すれば、移動スケジュールテーブル137における該当箇所(レコード)を削除し(ステップS311)、仮想化環境を最適化の処理は成功したものとして終了する(ステップS312)。
本処理により、定期的に仮想化環境を最適化するため、オンデマンドな仮想マシンの移動で仮想化環境の最適化が崩れたとしても、一定期間後に再度最適化でき、中長期的に見ても安定した仮想化環境を実現できる。
図13から図18は、図12の流れをさらに詳細化したものであり、図1に示す各処理部(105、106、108、109、111)の流れ(図12のステップS105A、ステップS108A、ステップS109A、ステップS111Aおよび図15のステップS106A参照)である。
図13は、閾値超え判定(ステップS105A)の詳細な流れを示す図である。具体的には、CPU使用率の高次方程式テーブル133のデータから算出した物理マシンの高次方程式(以下、図13の説明において、単に、「高次方程式」と称する)が、マシンの各種閾値テーブル135から取得した閾値(つまり、仮想マシン稼動上限)を超えるかどうかを判定する。なお、高次方程式と閾値はあらかじめ与えられており、それらを取得した時点で本処理が開始する(ステップS401)。
与えられた閾値は物理マシン120のスペックに依存している。そこで閾値を補正するため、係数表テーブル132の係数1323に登録された値(つまり、係数)をかけて新閾値とする(ステップS402)。
次に、F(x)=[新閾値]のグラフと、G(x)=[高次方程式]のグラフをそれぞれ設定し、両者が交わるか否かを判定する(ステップS403)。両者が交われば(ステップS403でYes)、高次方程式は閾値を超えると判定し(ステップS404)、本処理を終了する(ステップS406)。一方、両者が交わらなければ(ステップS403でNo)、高次方程式は閾値を超えないと判定し(ステップS405)、本処理を終了する(ステップS406)。
このように閾値超え判定部105では、物理マシンごとのスペックを考慮し、閾値を補正しているため、高次方程式と閾値を適切に比較することができる。
ここで、後記の説明のために、仮想化環境を最適化に重大な影響を及ぼす負荷のピークの重複に関する概要を説明しておく。負荷のピークの重複とは、複数の仮想マシンまたは物理マシンの高次方程式が有するCPU使用率の極大付近が重複することを意味する。
図14は、2つの高次方程式のピークの個所が重複するかどうかの判定であるピーク重複判定の概要を説明する図である。
ピーク重複判定の対象となる2つの高次方程式は、その最大値と最小値が異なる可能性がある(511、512参照)。そこで各高次方程式の最大値と最小値がそれぞれ0.5と0になるように、高次方程式を補正する(513、514参照)。G(x)=[補正後の2つの高次方程式の和]とすると、G(x)の最大値と最小値はそれぞれ1と0になる(515、516の太線)。G(x)がピークの判定値を超えなければピークは重複しないと判定し(515参照)、ピークの判定値を超えればピークが重複すると判定する(516参照)。ピークの判定値は、ピーク判定値テーブル136に登録された値であり、ピーク重複判定は、ピーク重複判定部106が実行する。
図15は、図14を実現するピーク重複判定の詳細な流れを示す図である。具体的には、CPU使用率の高次方程式テーブル133から取得した2つの高次方程式(物理マシンの高次方程式でも良いし、または、仮想マシンの高次方程式でも良い。)のそれぞれのピークの個所が重複するか否かを判定する。なお、ピークの重複を分析する2つの高次方程式は、あらかじめ与えられており、それらを取得した時点で本処理が開始する(ステップS501)。
まず、各高次方程式のピークの箇所を明確にするため、各高次方程式を補正する(ステップS502)。具体的には、F(x)=[高次方程式]が0≦F(x)≦0.5になるように補正(例えば、スケール変換の補正)する。なお、このときのxの定義域は日単位、週単位などによって決まる。より具体的には、例えば日付1331に登録された値からなる単位で決まる。なお、前記補正を行った高次方程式を補正済高次方程式と称する。
ここで、G(x)を、G(x)=[2つの補正済高次方程式の和]とする(ステップS503)。続いて、ピーク判定値テーブル136からピークの判定値を取得し(ステップS504)、閾値超え判定をおこなう(ステップS105A)。閾値超え判定部105は、閾値超え判定による判定結果を出力する(ステップS505)。なお、この閾値超え判定は、図13に示したものに準ずる。
前記判定結果が閾値である判定値を超えているものであれば(ステップS505でYes)、ピークが重なると判定し(ステップS506)、本処理を終了する(ステップS508)。一方、前記判定結果が閾値である判定値を超えているものでなければ(ステップS505でNo)、ピークが重ならないと判定し(ステップS507)、本処理を終了する(ステップS508)。
このようにピーク重複判定部106では、比較する高次方程式を補正するため、最大値が異なる2つの高次方程式でも、ピークの重複を適切に判定することができる。
図16は、移動仮想マシン候補選出(ステップS108A)の詳細な流れを示す図である。具体的には、リソース不足が懸念される物理マシンから、どの仮想マシンを移動すれば良いかを選出する。その際、物理マシンとピークが重複する仮想マシンを優先的に選出する。なお、リソース不足が懸念される物理マシンはあらかじめ与えられており、それを取得した時点で本処理が開始する(ステップS601)。
まず、与えられた物理マシンが有する仮想マシンの情報を取得するため、仮想/物理マシンの相関テーブル134を参照し、その物理マシン上の仮想マシン一覧と、CPU使用率の高次方程式テーブル133を参照し、当該物理マシンおよび各仮想マシンの高次方程式と、いずれかの仮想マシンを移動した後も、まだ物理マシンのリソースが不足するかどうかを確認するため、マシンの各種閾値テーブル135を参照し、仮想マシン稼動上限1351に登録された値、つまり仮想マシン稼動上限と、をそれぞれ取得する(ステップS602)。
次に、前記仮想マシン一覧として取得したすべての仮想マシンを、ループ処理を実行することにより調査する(ステップS603⇔ステップS606)。このループ処理を通じて、移動できる可能性がある仮想マシンを検出する。
移動する仮想マシンは、物理マシン(移動元物理マシン)とピークが重複するものが望ましい。そこで、取得したすべての仮想マシンについて、物理マシンとピークが重複するかどうかピーク重複判定をする(ステップS106A)。ピーク重複判定部106は、ピーク重複判定による判定結果を出力する(ステップS604)。
前記判定結果が、対象とする仮想マシンが物理マシンとピークが重複するものである場合(ステップS604でYes)、当該仮想マシンについて仮想/物理マシンの相関テーブル134の仮想マシン用フラグ1344にフラグを立てる(ステップS605)。一方、前記判定結果が、対象とする仮想マシンが物理マシンとピークが重複するものでない場合(ステップS604でNo)、特に仮想マシン用フラグ1344を立てることはない。そして、他の仮想マシンについてピーク重複判定を行っていなければそれを行う。すべての仮想マシンについて行っていれば、ステップS607に進む。
次に、前記ピーク重複判定が済んだすべての仮想マシンを、ループ処理を実行することにより調査する(ステップS607⇔ステップS611)。このループ処理を通じて、移動できる可能性がある仮想マシンを検出する。ただし、フラグが立っている仮想マシンから優先的にループ処理を行う。
まず、対象とする仮想マシンを、移動仮想マシン候補とし、移動スケジュールテーブル137に仮想マシン(つまり、自分自身)を仮想マシン1373に、移動元物理マシン(つまり、当該仮想マシンが現時点で存在する物理マシン)を移動元物理マシン1374に登録する(ステップS608)。
次に、登録した仮想マシンについて、G(x)=[物理マシンの高次方程式]−[追加した仮想マシンの高次方程式]となるG(x)を求める(ステップS609)。
次に、G(x)が、マシンの各種閾値テーブル135の仮想マシン稼動上限1352から取得した仮想マシン稼動上限(閾値)を超えているか判定する(ステップS105A)。閾値超え判定部105は、閾値超え判定による判定結果を出力する(ステップS610)。なお、この閾値超え判定は、図13に示したものに準ずる(F(x)は仮想マシン稼動上限を物理マシンのスペックに応じて補正した新閾値)。
前記判定結果が、閾値である仮想マシン稼動上限を超えるものである場合(ステップS610でYes)、他の仮想マシンについてステップS608からステップS105Aの処理を繰り返す。これにより、G(x)の最大値は次第に小さくなっていき、基本的には、閾値以下になるまで繰り返される。
前記判定結果が、閾値である仮想マシン稼動上限を超えるものでない場合(ステップS610でNo)、本処理を終了する(ステップS612)。結果的には、閾値を超えていた間にループ処理された仮想マシンが移動仮想マシン候補として選出される。
このように移動仮想マシン候補選出部108では、物理マシンとピークが重複する仮想マシンから優先的に移動していくため、効率的に物理マシンのピークの最大値を低減できる。また、これにより、物理マシンの時間的な負荷の偏りが軽減できる。
本実施形態では、物理マシンとピークが重複する仮想マシンを、優先的に移動する仮想マシンとしているが、ピークが最も遅く来る仮想マシンを優先的に移動する仮想マシンとする等、他の方法で優先順位を付けても良い。
図17は、移動先物理マシン候補選出(ステップS109A)の詳細な流れを示す図である。具体的には、移動仮想マシン候補選出部108で選出され、移動スケジュールテーブル137に登録されている各仮想マシンを移動する先の物理マシン(移動先物理マシン)を選出する。その際、仮想マシンとピークが重複しない物理マシンを優先的に選出する。なお、移動スケジュールテーブル137から、移動する仮想マシン(移動仮想マシン)、移動元物理マシンはあらかじめ取得しており、それらを取得した時点で本処理が開始する(ステップS701)。
まず、物理マシンの情報を取得するため、仮想/物理マシンの相関テーブル134を参照し、物理マシン一覧と、CPU使用率の高次方程式テーブル133を参照し、移動仮想マシンと各物理マシンの高次方程式と、移動仮想マシンを移動した結果、リソース不足にならないことを事前に確認するため、マシンの各種閾値テーブル135を参照し、仮想マシン稼動上限1351に登録された値、つまり各物理マシンの仮想マシン稼動上限とを、それぞれ取得する(ステップS702)。
次に、前記物理マシン一覧として取得した、移動元物理マシン以外のすべての物理マシンを、ループ処理を実行することにより調査する(ステップS703⇔ステップS707)。このループ処理を通じて、移動先となる可能性がある物理マシンを検出する。
移動先物理マシンは、移動仮想マシンの移動後もリソースが不足しない物理マシンを選出するものとする。具体的には、まず、対象とする物理マシンにおいて、G(x)=[物理マシンの高次方程式]+[移動仮想マシンの高次方程式]となるG(x)を求める(ステップS704)。
次に、G(x)が、マシンの各種閾値テーブル135の仮想マシン稼動上限1351から取得した仮想マシン稼動上限(閾値)を超えるかどうかを判定する(ステップS105A)。閾値超え判定部105は、閾値超え判定による判定結果を出力する(ステップS705)。なお、この閾値超え判定は、図13に示したものに準ずる(F(x)は仮想マシン稼動上限を、対象とする物理マシンのスペックに応じて補正した新閾値)。
前記判定結果が、閾値である仮想マシン稼動上限を超えないものである場合(ステップS705でNo)、当該物理マシンは移動先物理マシンの候補とし、仮想/物理マシンの相関テーブル134の当該物理マシン用フラグ1342にフラグを立てる(ステップS706)。一方、前記判定結果が、閾値である仮想マシン稼動上限を超えるものである場合(ステップS705でYes)、特に物理マシン用フラグ1342を立てることはない。そして、他の物理マシンについて閾値超え判定を行っていなければそれを行う。移動先物理マシン以外のすべての物理マシンについて行っていれば。ステップS708に進む。
次に、すべての物理マシンにおいて、仮想マシン移動後のリソース不足を確認後、仮想/物理マシンの相関テーブル134の物理マシン用フラグ1342においてフラグが1つでも立っているか否か判定する(ステップS708)。フラグが1つも立っていなければ(ステップS708でNo)、適切な移動先の物理マシンがないため、移動先物理マシンの選出に失敗したと判定し(ステップS715)、本処理を終了する(ステップS716)。
一方、仮想/物理マシンの相関テーブル134の物理マシンのフラグ1342にフラグが1つでも立っていれば(ステップS708でYes)、その中から適切な移動先物理マシンを選出すべく、ステップS709に進む。
次に、フラグが立っている物理マシンを、ループ処理を実行することにより調査する(ステップS709⇔ステップS711)。このループ処理を通じて、適切な移動先物理マシンを検出する。ただし、高次方程式G(x)=[物理マシンの高次方程式]+[移動仮想マシンの高次方程式]の最大値が小さい物理マシンから優先的にループ処理を行う。
次に、対象とするすべての物理マシンについて、移動仮想マシンとピークが重複するかどうかピーク重複判定をする(ステップS106A)。ピーク重複判定部106は、ピーク重複判定による判定結果を出力する(ステップS710)。
前記判定結果が、対象とする物理マシンが移動仮想マシンとピークが重複するものである場合(ステップS710でYes)、G(x)=[物理マシンの高次方程式]+[移動仮想マシンの高次方程式]の最大値、つまりCPU負荷が一番小さい物理マシンを移動先物理マシンとして選出し(ステップS712)、ステップS713に進む。
一方、前記判定の判定結果が、対象とする物理マシンが移動仮想マシンとピークが重複しないものである場合は(ステップS710でNo)、そのままステップS713に進む。
次に、ピークが重複する物理マシンのうちCPU負荷が最も小さい物理マシン、またはピークが重複しない物理マシンを、移動先物理マシンとして決定し、決定した移動先物理マシンを移動スケジュールテーブル137の移動先物理マシン1375に登録し(ステップS713)、適切な移動先の物理マシンがあったため、移動先物理マシン候補の選出が成功したと判定し(ステップS714)、本処理を終了する(ステップS716)。
このように移動先物理マシン候補選出部109では、仮想マシンとピークが重複しない物理マシンを優先的に移動先物理マシン候補とするため、物理マシンの時間的な負荷の偏りが軽減できる。また、ピークが重複しない物理マシンがなかったとしても、リソース使用率の最大値が最も小さい物理マシンを移動先物理マシン候補とするため、マシンごとの負荷の偏りが軽減できる。
本実施形態では、仮想マシンと物理マシンのピークが重複しないことを最優先事項としているが、リソース使用率が小さいこと等、他の条件を最優先事項としても良い。
図18は、スケジュール調整(ステップS111A)の詳細な流れを示す図である。具体的には、移動スケジュールテーブル137に新しく登録された移動スケジュールについて、他の移動スケジュールとかぶらないように、新しい移動スケジュールを組む。この際、移動に関係する仮想マシンおよび物理マシンのCPU使用率が低い時間帯を選んで、移動スケジュールを組む。なお、移動スケジュールテーブル137から、移動仮想マシン、移動元物理マシン、移動先物理マシンはあらかじめ取得しているおり、それらを取得した時点で本処理が開始する(ステップS801)。
まず、仮想マシン移動できる時間を算出するため、CPU使用率の高次方程式テーブル133を参照し、移動仮想マシン、移動元物理マシン、移動先物理マシンの高次方程式を取得し、マシンの各種閾値テーブル135を参照し、移動仮想マシン、移動元物理マシン、移動先物理マシンの仮想マシン移動上限1352に登録された値、つまり仮想マシン移動上限と、仮想マシンの移動にかかる時間を算出するため、物理マシン120から仮想マシン122のファイルサイズ(容量)を取得する(ステップS802)。
次に、移動仮想マシン、移動元物理マシン、移動先物理マシンにおいて、仮想マシンを安全に移動可能な時間帯、つまり、各高次方程式が各仮想マシン移動上限を下回る時間帯であるか否か判定する。このとき、それらが同じ時間帯であるかも含めて判定する(ステップS803)。各高次方程式が同じ時間帯に各仮想マシン移動上限を下回らない場合(ステップS803でNo)、仮想マシンを安全に移動できる時間帯がないものとして、スケジュール調整が失敗したと判定し(ステップS811)、本処理を終了する(ステップS812)。
高次方程式が同じ時間帯に各仮想マシン移動上限を下回る場合(ステップS803でYes)、つまり、仮想マシンを安全に移動できる時間帯がある場合は、取得した仮想マシンのファイルサイズから仮想マシンの移動にかかる時間を算出する。
次に、算出した時間に対して、仮想マシンを安全に移動できると判断した時間帯の時間幅が、仮想マシンを移動するのに十分な時間幅であるか否か判定する(ステップS805)。たとえば、仮想マシンの移動時間に10分かかる場合、仮想マシンを安全に移動できる時間帯も10分以上の時間幅が必要である。
移動にかかる時間に対して時間幅が短い場合(ステップS805でNo)、仮想マシンを安全に移動できる時間帯がないものとして、スケジュール調整が失敗したと判定し(ステップS811)、本処理を終了する(ステップS812)。
一方、仮想マシンを安全に移動できる時間帯の時間幅が移動にかかる時間に対して十分な時間幅がある場合(ステップS805でYes)、仮想マシンを安全に移動できる時間帯があるものとし、移動スケジュールテーブル137に移動仮想マシンのその時間帯の開始時刻と移動時間を登録する(ステップS806)。
次に、移動スケジュールテーブル137に登録した移動スケジュールと決定済みの他の移動スケジュール(決定済み移動スケジュール)を開始時刻でソートする(ステップS807)。
次に、登録した移動スケジュールと同じ時刻に仮想マシンを移動する決定済み移動スケジュールがあるか否か判定する(ステップS808)。同じ時刻の決定済み移動スケジュールがなければ(ステップS808でNo)、スケジュール調整が成功したと判定し(ステップS810)、本処理を終了する(ステップS812)。
一方、同じ時刻の決定済み移動スケジュールがあれば(ステップS808でYes)、登録した移動スケジュールと決定済み移動スケジュールにおいて、同じ物理マシンが関係しているか否かを判定する(ステップS809)。同じ物理マシンが関係していれば(ステップS809でYes)、移動が衝突してしまうため、前記登録したスケジュールは実施できないものとし、スケジュール調整が失敗したと判定し(ステップS811)、本処理を終了する(ステップS812)。
逆に、同じ物理マシンが関係していなければ(ステップS809でNo)、同じ時刻の移動スケジュールでも、関係する物理マシンが異なることを意味し、移動が衝突しないため、スケジュール調整が成功したと判定し(ステップS810)、本処理を終了する(ステップS812)。
なお、移動が衝突するとは、2つの移動スケジュールにおいて、仮想マシンを移動する時刻の全部または一部が同時刻であり、かつ同じ物理マシン(移動元物理マシンおよび移動先物理マシンの少なくとも一つ)を使用することをいう。
本実施形態では、登録した移動スケジュールが決定済み移動スケジュールと衝突する場合、登録した移動スケジュールを失敗と判定し、当該処理をキャンセルした。しかし、登録した移動スケジュールまたは他の決定済み移動スケジュールの移動可能な時間帯を再計算して移動スケジュールし直すことも可能である。
また、移動先物理マシンを変更して、移動スケジュールし直すことも可能である。
≪まとめ≫
本実施形態により、システム全体の負荷を分散させ、効率よく安全に仮想マシンを配置および移動することができる。
基本的に負荷のピークの重複は避けるようにして移動スケジュールを調整するので、リソース不足になるリスクは大きく軽減される。
オンデマンドな仮想マシンの移動検討および移動実施がなされたとしても、その後になされる定期的な移動スケジュールの調整により、最適な移動スケジュールが組まれる。そのため、仮想マシンの移動の同時多発が回避でき、ネットワーク負荷は縮小する。
≪その他≫
以上本発明の実施形態についての一例を示したが、本発明は、これに限定されず、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
例えば、本実施形態では、仮想マシンと物理マシンの負荷を考慮しているが、この他にこれらに対するネットワークの負荷を考慮に入れても良い。この場合において、物理マシンを識別する識別情報は、本実施形態のような物理マシン名ではなく、対応するネットワークの識別情報である。また、物理マシンの仕様情報を用いる代わりに、対応するネットワークの仕様情報を用いる。また、仮想マシンの負荷を近似的に表現する関数を算出する代わりに、対応するネットワークの負荷を近似的に表現する関数を算出する。ネットワークの負荷は、主に、そのネットワーク上を経由するパケットのパケット量から算出される。
また、本実施形態の仮想マシンは、一つの物理マシン上に構成されているものを扱った(例えば、図5参照)。しかし、複数の物理マシン上に構成される仮想マシンに対しても本発明を適用することは可能である。この場合において、その仮想マシンのファイルサイズが各物理マシンにどの程度の割合で占められているかを示す数値を登録するフィールドを図5の仮想/物理マシンの相関テーブル134に備えるようにすれば、物理マシンの仕様情報だけでなく、前記割合も考慮してCPU使用率を補正する等の処理を経て仮想マシンの高次方程式を生成することが可能である。
その他、ハードウェア、ソフトウェア、各フローチャートなどの具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
本実施形態の一例である、仮想マシン移動システムの構成を示すものである。 CPU使用率測定データテーブルのデータ構造を図示したものである。 係数表テーブルのデータ構造を図示したものである。 CPU使用率の高次方程式テーブルのデータ構造を図示したものである。 仮想/物理マシンの相関テーブルのデータ構造を図示したものである。 マシンの各種閾値テーブルのデータ構造を図示したものである。 ピーク判定値テーブルのデータ構造を図示したものである。 移動スケジュールテーブルのデータ構造を図示したものである。 CPU使用率の測定データであって物理マシンのスペックを考慮して補正したものをプロットしたグラフを図示したものである。 仮想マシンの高次方程式およびそのグラフを図示したものである。 物理マシンの高次方程式およびその物理マシン上の仮想マシンの高次方程式およびそれらのグラフを図示したものである。 仮想マシン移動システムにおける仮想化環境の最適化の流れを示す図である。 閾値超え判定の流れを示す図である。 ピーク重複判定の概要を説明する図である。 ピーク重複判定の詳細な流れを示す図である。 移動仮想マシン候補選出の詳細な流れを示す図である。 移動先物理マシン候補選出の詳細な流れを示す図である。 スケジュール調整の詳細な流れを示す図である。
符号の説明
100 管理サーバ
120 物理マシン
122 仮想マシン
104 高次方程式算出部
105 閾値超え判定部
106 ピーク重複判定部
108 移動仮想マシン候補選出部
109 移動先物理マシン候補選出部
111 スケジュール調整部
112 移動実行部
131 CPU使用率測定データテーブル
132 係数表テーブル
133 CPU使用率の高次方程式テーブル
134 仮想/物理マシンの相関テーブル
135 マシンの各種閾値テーブル
136 ピーク判定値テーブル
137 移動スケジュールテーブル

Claims (10)

  1. 1以上の仮想マシンを有する複数の物理マシンと通信可能に接続し、ある物理マシン上の仮想マシンを他の物理マシン上に移動する制御を実行する仮想マシン移動管理サーバにおいて、
    前記仮想マシンに対する負荷と、前記負荷が測定された時期と、を対応付けた負荷情報と、
    前記物理マシン上の仮想マシンを稼動したときに、前記仮想マシンに十分な資源を割り当てることを可能とする、前記物理マシンに対する負荷に関する稼動の上限を物理マシンごとに定めた第1の閾値と、
    前記仮想マシンを安全に移動することを可能とする、前記物理マシンまたは前記仮想マシンに対する負荷に関する移動の上限を物理マシンまたは仮想マシンごとに定めた第2の閾値と、
    少なくとも、前記移動がなされる仮想マシンである移動仮想マシンの識別情報、前記仮想マシンの移動元となる物理マシンである移動元物理マシンの識別情報、前記仮想マシンの移動先となる物理マシンである移動先物理マシンの識別情報、および前記仮想マシンの容量から定まる前記仮想マシンの移動に要する移動時間、を対応付けた移動スケジュール情報と、
    を記憶する記憶部と、
    前記物理マシンから当該物理マシン上の仮想マシンに対する負荷を定期的に取得し、前記取得した負荷に基づいて前記負荷情報を生成する制御と、
    前記生成された負荷情報に基づいて、前記仮想マシンに対する負荷の経時変化を近似表現した仮想マシン用関数および前記物理マシンに対する負荷の経時変化を近似表現した物理マシン用関数を生成する制御と、
    前記物理マシン用関数が当該第1の閾値を超える物理マシンが存在すれば、当該物理マシンを前記移動元物理マシンとし、前記移動元物理マシンの識別情報を前記移動スケジュール情報に登録する制御と、
    前記移動元物理マシン上の仮想マシンの全部または一部を前記移動仮想マシンの候補とし、前記候補となった移動仮想マシンの識別情報を前記移動スケジュール情報に登録する制御と、
    前記移動仮想マシンを移動することにより、移動先となる物理マシンの前記物理マシン用関数と前記移動仮想マシンの前記仮想マシン関数との和が前記移動先となる物理マシンに定めた第1の閾値を超えない物理マシンが存在すれば、当該物理マシンを前記移動先物理マシンの候補とし、前記候補となった前記移動先物理マシンの識別情報を前記移動スケジュール情報に登録する制御と、
    前記スケジュール情報に登録された、前記移動元物理マシンの前記物理マシン用関数と、前記移動仮想マシンの前記仮想マシン関数と、前記移動先物理マシンの前記物理マシン用関数とが、それぞれ前記移動元物理マシンに定めた第2の閾値と、前記移動仮想マシンに定めた第2の閾値と、前記移動先物理マシンに定めた第2の閾値とを超えない時間帯が存在し、かつ、前記移動仮想マシンの移動時間が前記時間帯に含まれれば、前記時間帯において前記移動仮想マシンを移動する制御と、
    を実行する制御部と、
    を有する
    ことを特徴とする仮想マシン移動管理サーバ。
  2. 前記記憶部は、
    前記物理マシンの識別情報と、前記物理マシンの仕様情報と、前記仕様情報に基づいて定めた係数と、を対応付けた係数情報を記憶し、
    前記制御部は、
    前記係数情報の係数を、当該物理マシン上の仮想マシンの前記仮想マシン用関数に作用させ、または当該物理マシンの前記物理マシン用関数に作用させることにより、前記仮想マシン用関数または前記物理マシン用関数を補正する制御を実行する
    ことを特徴とする請求項1に記載の仮想マシン移動管理サーバ。
  3. 前記制御部は、
    前記移動元物理マシンの前記物理マシン用関数に含まれるピークと重複する、前記移動仮想マシンの前記仮想マシン用関数に含まれるピークが存在すれば、当該仮想マシンを前記移動仮想マシンの候補であると優先的に定める制御を実行する
    ことを特徴とする請求項1に記載の仮想マシン移動管理サーバ。
  4. 前記制御部は、
    前記移動仮想マシンの前記仮想マシン用関数に含まれるピークと重複する、前記移動先物理マシンの前記物理マシン用関数に含まれるピークが存在すれば、当該物理マシン以外の物理マシンを前記移動先物理マシンの候補であると優先的に定める制御を実行する
    ことを特徴とする請求項1に記載の仮想マシン移動管理サーバ。
  5. 前記制御部は、
    前記記憶部に記憶された新たな移動スケジュール情報に含まれる移動時間が、既に決定した他の移動スケジュール情報に含まれる移動時間と全部または一部で重複し、かつ、新たな移動スケジュール情報に含まれる移動元物理マシンの識別情報および移動先物理マシンの識別情報の少なくとも一つがそれぞれ、既に決定した他の移動スケジュール情報に含まれる移動元物理マシンの識別情報および移動先物理マシンの識別情報と一致するとき、当該新たな移動スケジュール情報に基づいた仮想マシンの移動の制御は実行しない
    ことを特徴とする請求項1に記載の仮想マシン移動管理サーバ。
  6. 1以上の仮想マシンを有する複数の物理マシンと通信可能に接続し、ある物理マシン上の仮想マシンを他の物理マシン上に移動する制御を実行する仮想マシン移動管理サーバにおける仮想マシン移動方法において、
    前記仮想マシン移動管理サーバの記憶部は、
    前記仮想マシンに対する負荷と、前記負荷が測定された時期と、を対応付けた負荷情報と、
    前記物理マシン上の仮想マシンを稼動したときに、前記仮想マシンに十分な資源を割り当てることを可能とする、前記物理マシンに対する負荷に関する稼動の上限を物理マシンごとに定めた第1の閾値と、
    前記仮想マシンを安全に移動することを可能とする、前記物理マシンまたは前記仮想マシンに対する負荷に関する移動の上限を物理マシンまたは仮想マシンごとに定めた第2の閾値と、
    少なくとも、前記移動がなされる仮想マシンである移動仮想マシンの識別情報、前記仮想マシンの移動元となる物理マシンである移動元物理マシンの識別情報、前記仮想マシンの移動先となる物理マシンである移動先物理マシンの識別情報、および前記仮想マシンの容量から定まる前記仮想マシンの移動に要する移動時間、を対応付けた移動スケジュール情報と、
    を記憶しており、
    前記仮想マシン移動管理サーバの制御部は、
    前記物理マシンから当該物理マシン上の仮想マシンに対する負荷を定期的に取得し、前記取得した負荷に基づいて前記負荷情報を生成するステップと、
    前記生成された負荷情報に基づいて、前記仮想マシンに対する負荷の経時変化を近似表現した仮想マシン用関数および前記物理マシンに対する負荷の経時変化を近似表現した物理マシン用関数を生成するステップと、
    前記物理マシン用関数が当該第1の閾値を超える物理マシンが存在すれば、当該物理マシンを前記移動元物理マシンとし、前記移動元物理マシンの識別情報を前記移動スケジュール情報に登録するステップと、
    前記移動元物理マシン上の仮想マシンの全部または一部を前記移動仮想マシンの候補とし、前記候補となった移動仮想マシンの識別情報を前記移動スケジュール情報に登録するステップと、
    前記移動仮想マシンを移動することにより、移動先となる物理マシンの前記物理マシン用関数と前記移動仮想マシンの前記仮想マシン関数との和が前記移動先となる物理マシンに定めた第1の閾値を超えない物理マシンが存在すれば、当該物理マシンを前記移動先物理マシンの候補とし、前記候補となった前記移動先物理マシンの識別情報を前記移動スケジュール情報に登録するステップと、
    前記スケジュール情報に登録された、前記移動元物理マシンの前記物理マシン用関数と、前記移動仮想マシンの前記仮想マシン関数と、前記移動先物理マシンの前記物理マシン用関数とが、それぞれ前記移動元物理マシンに定めた第2の閾値と、前記移動仮想マシンに定めた第2の閾値と、前記移動先物理マシンに定めた第2の閾値とを超えない時間帯が存在し、かつ、前記移動仮想マシンの移動時間が前記時間帯に含まれれば、前記時間帯において前記移動仮想マシンを移動するステップと、
    を実行する
    ことを特徴とする仮想マシン移動方法。
  7. 前記仮想マシン移動管理サーバの記憶部は、
    前記物理マシンの識別情報と、前記物理マシンの仕様情報と、前記仕様情報に基づいて定めた係数と、を対応付けた係数情報を記憶し、
    前記仮想マシン移動管理サーバの制御部は、
    前記係数情報の係数を、当該物理マシン上の仮想マシンの前記仮想マシン用関数に作用させ、または当該物理マシンの前記物理マシン用関数に作用させることにより、前記仮想マシン用関数または前記物理マシン用関数を補正するステップを実行する
    ことを特徴とする請求項6に記載の仮想マシン移動方法。
  8. 前記仮想マシン移動管理サーバの制御部は、
    前記移動元物理マシンの前記物理マシン用関数に含まれるピークと重複する、前記移動仮想マシンの前記仮想マシン用関数に含まれるピークが存在すれば、当該仮想マシンを前記移動仮想マシンの候補であると優先的に定めるステップを実行する
    ことを特徴とする請求項6に記載の仮想マシン移動方法。
  9. 前記仮想マシン移動管理サーバの制御部は、
    前記移動仮想マシンの前記仮想マシン用関数に含まれるピークと重複する、前記移動先物理マシンの前記物理マシン用関数に含まれるピークが存在すれば、当該物理マシン以外の物理マシンを前記移動先物理マシンの候補であると優先的に定めるステップを実行する
    ことを特徴とする請求項6に記載の仮想マシン移動方法。
  10. 前記仮想マシン移動管理サーバの制御部は、
    前記記憶部に記憶された新たな移動スケジュール情報に含まれる移動時間が、既に決定した他の移動スケジュール情報に含まれる移動時間と全部または一部で重複し、かつ、新たな移動スケジュール情報に含まれる移動元物理マシンの識別情報および移動先物理マシンの識別情報の少なくとも一つがそれぞれ、既に決定した他の移動スケジュール情報に含まれる移動元物理マシンの識別情報および移動先物理マシンの識別情報と一致するとき、当該新たな移動スケジュール情報に基づいた仮想マシンの移動のステップは実行しない
    ことを特徴とする請求項6に記載の仮想マシン移動方法。
JP2008288593A 2008-11-11 2008-11-11 仮想マシン移動管理サーバおよび仮想マシン移動方法 Expired - Fee Related JP4839361B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008288593A JP4839361B2 (ja) 2008-11-11 2008-11-11 仮想マシン移動管理サーバおよび仮想マシン移動方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008288593A JP4839361B2 (ja) 2008-11-11 2008-11-11 仮想マシン移動管理サーバおよび仮想マシン移動方法

Publications (2)

Publication Number Publication Date
JP2010117760A true JP2010117760A (ja) 2010-05-27
JP4839361B2 JP4839361B2 (ja) 2011-12-21

Family

ID=42305419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008288593A Expired - Fee Related JP4839361B2 (ja) 2008-11-11 2008-11-11 仮想マシン移動管理サーバおよび仮想マシン移動方法

Country Status (1)

Country Link
JP (1) JP4839361B2 (ja)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096601A (zh) * 2011-02-11 2011-06-15 浪潮(北京)电子信息产业有限公司 一种虚拟机迁移的管理方法和系统
JP2011257792A (ja) * 2010-06-04 2011-12-22 Fujitsu Ltd ネットワークシステム,管理サーバおよび仮想マシンの配置方法
JP2012038157A (ja) * 2010-08-09 2012-02-23 Sanken Electric Co Ltd 電源装置、プログラムおよび制御方法
WO2012127633A1 (ja) 2011-03-22 2012-09-27 富士通株式会社 移動管理装置、移動管理方法および移動管理プログラム
JP2012198671A (ja) * 2011-03-18 2012-10-18 Fujitsu Advanced Engineering Ltd システム管理装置、システム管理方法及びシステム管理プログラム
JP2012198631A (ja) * 2011-03-18 2012-10-18 Ntt Data Corp 仮想マシン配置装置、仮想マシン配置方法、仮想マシン配置プログラム
WO2012144647A1 (ja) * 2011-04-20 2012-10-26 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法、及び、プログラム
JP2013148984A (ja) * 2012-01-17 2013-08-01 Fujitsu Ltd プログラム、仮想マシン制御方法、情報処理装置および情報処理システム
JP2013175177A (ja) * 2012-02-26 2013-09-05 Palo Alto Research Center Inc データセンタにおけるQoS認識バランシング
JP2013182303A (ja) * 2012-02-29 2013-09-12 Nec Corp 仮想マシン管理システム、方法、およびプログラム
JP2013196062A (ja) * 2012-03-15 2013-09-30 Fujitsu Ltd 情報処理装置
JP2013206321A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd 管理装置、資源管理方法、資源管理プログラム及び情報処理システム
JP2014006739A (ja) * 2012-06-25 2014-01-16 Fujitsu Ltd プログラム、管理サーバおよび仮想マシン移動制御方法
JP2014038458A (ja) * 2012-08-15 2014-02-27 Toshiba Corp スケジューリング装置、システム、方法およびプログラム
WO2014199476A1 (ja) * 2013-06-12 2014-12-18 富士通株式会社 中継装置、中継プログラム、及び中継方法
US9104495B2 (en) 2012-12-11 2015-08-11 International Business Machines Corporation Shared resource segmentation
JP2015152984A (ja) * 2014-02-12 2015-08-24 日本電信電話株式会社 仮想マシン配置装置及び方法及びプログラム
JP2015184965A (ja) * 2014-03-25 2015-10-22 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理システム
US9235439B2 (en) 2012-03-19 2016-01-12 Fujitsu Limited Management server, patch scheduling method, and recording medium
US9652332B2 (en) 2012-11-07 2017-05-16 Fujitsu Limited Information processing apparatus and virtual machine migration method
JP2019046162A (ja) * 2017-09-01 2019-03-22 富士通株式会社 管理装置、情報処理システムおよびプログラム
US10680904B2 (en) 2017-04-17 2020-06-09 Fujitsu Limited Determining periodicity of operation status information to predict future operation statuses of resources of the information processing devices
CN113672392A (zh) * 2021-08-25 2021-11-19 国家电网有限公司信息通信分公司 能耗优化的方法及装置、电子设备及计算机可读存储介质
WO2023021554A1 (ja) * 2021-08-16 2023-02-23 日本電信電話株式会社 移動先決定装置、物理サーバ、移動先決定システム、移動先決定方法、及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003157177A (ja) * 2001-11-22 2003-05-30 Hitachi Ltd 仮想計算機システム及びプログラム
WO2007136021A1 (ja) * 2006-05-24 2007-11-29 Nec Corporation 仮想マシン管理装置、仮想マシン管理方法およびプログラム
WO2008102739A1 (ja) * 2007-02-23 2008-08-28 Nec Corporation 仮想サーバシステム及び物理サーバ選択方法
JP2009537894A (ja) * 2006-05-18 2009-10-29 マイクロソフト コーポレーション 作業負荷特性に基づいたホストへの仮想マシンのデプロイ
JP2010044596A (ja) * 2008-08-13 2010-02-25 Nec Corp 負荷制御システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003157177A (ja) * 2001-11-22 2003-05-30 Hitachi Ltd 仮想計算機システム及びプログラム
JP2009537894A (ja) * 2006-05-18 2009-10-29 マイクロソフト コーポレーション 作業負荷特性に基づいたホストへの仮想マシンのデプロイ
WO2007136021A1 (ja) * 2006-05-24 2007-11-29 Nec Corporation 仮想マシン管理装置、仮想マシン管理方法およびプログラム
WO2008102739A1 (ja) * 2007-02-23 2008-08-28 Nec Corporation 仮想サーバシステム及び物理サーバ選択方法
JP2010044596A (ja) * 2008-08-13 2010-02-25 Nec Corp 負荷制御システム

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789044B2 (en) 2010-06-04 2014-07-22 Fujitsu Limited Network system, management server, and virtual machine deployment method
JP2011257792A (ja) * 2010-06-04 2011-12-22 Fujitsu Ltd ネットワークシステム,管理サーバおよび仮想マシンの配置方法
JP2012038157A (ja) * 2010-08-09 2012-02-23 Sanken Electric Co Ltd 電源装置、プログラムおよび制御方法
CN102096601A (zh) * 2011-02-11 2011-06-15 浪潮(北京)电子信息产业有限公司 一种虚拟机迁移的管理方法和系统
JP2012198671A (ja) * 2011-03-18 2012-10-18 Fujitsu Advanced Engineering Ltd システム管理装置、システム管理方法及びシステム管理プログラム
JP2012198631A (ja) * 2011-03-18 2012-10-18 Ntt Data Corp 仮想マシン配置装置、仮想マシン配置方法、仮想マシン配置プログラム
WO2012127633A1 (ja) 2011-03-22 2012-09-27 富士通株式会社 移動管理装置、移動管理方法および移動管理プログラム
US9244731B2 (en) 2011-03-22 2016-01-26 Fujitsu Limited Migration management apparatus and migration management method
CN103502942A (zh) * 2011-04-20 2014-01-08 日本电气株式会社 虚拟机管理设备、虚拟机管理方法及其程序
JP5729466B2 (ja) * 2011-04-20 2015-06-03 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法、及び、プログラム
WO2012144647A1 (ja) * 2011-04-20 2012-10-26 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法、及び、プログラム
US9710295B2 (en) 2011-04-20 2017-07-18 Nec Corporation Grouping and placement of virtual machines based on similarity and correlation of functional relations
US10140142B2 (en) 2011-04-20 2018-11-27 Nec Corporation Grouping and placement of virtual machines based on similarity and correlation of functional relations
JP2013148984A (ja) * 2012-01-17 2013-08-01 Fujitsu Ltd プログラム、仮想マシン制御方法、情報処理装置および情報処理システム
JP2013175177A (ja) * 2012-02-26 2013-09-05 Palo Alto Research Center Inc データセンタにおけるQoS認識バランシング
JP2013182303A (ja) * 2012-02-29 2013-09-12 Nec Corp 仮想マシン管理システム、方法、およびプログラム
JP2013196062A (ja) * 2012-03-15 2013-09-30 Fujitsu Ltd 情報処理装置
US9235439B2 (en) 2012-03-19 2016-01-12 Fujitsu Limited Management server, patch scheduling method, and recording medium
JP2013206321A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd 管理装置、資源管理方法、資源管理プログラム及び情報処理システム
JP2014006739A (ja) * 2012-06-25 2014-01-16 Fujitsu Ltd プログラム、管理サーバおよび仮想マシン移動制御方法
US9378056B2 (en) 2012-06-25 2016-06-28 Fujitsu Limited Management server, and virtual machine move control method
JP2014038458A (ja) * 2012-08-15 2014-02-27 Toshiba Corp スケジューリング装置、システム、方法およびプログラム
US9652332B2 (en) 2012-11-07 2017-05-16 Fujitsu Limited Information processing apparatus and virtual machine migration method
US9104495B2 (en) 2012-12-11 2015-08-11 International Business Machines Corporation Shared resource segmentation
US9582336B2 (en) 2012-12-11 2017-02-28 International Business Machines Corporation Shared resource segmentation
WO2014199476A1 (ja) * 2013-06-12 2014-12-18 富士通株式会社 中継装置、中継プログラム、及び中継方法
JPWO2014199476A1 (ja) * 2013-06-12 2017-02-23 富士通株式会社 中継装置、中継プログラム、及び中継方法
JP6052407B2 (ja) * 2013-06-12 2016-12-27 富士通株式会社 中継装置、中継プログラム、及び中継方法
JP2015152984A (ja) * 2014-02-12 2015-08-24 日本電信電話株式会社 仮想マシン配置装置及び方法及びプログラム
JP2015184965A (ja) * 2014-03-25 2015-10-22 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理システム
US10680904B2 (en) 2017-04-17 2020-06-09 Fujitsu Limited Determining periodicity of operation status information to predict future operation statuses of resources of the information processing devices
JP2019046162A (ja) * 2017-09-01 2019-03-22 富士通株式会社 管理装置、情報処理システムおよびプログラム
WO2023021554A1 (ja) * 2021-08-16 2023-02-23 日本電信電話株式会社 移動先決定装置、物理サーバ、移動先決定システム、移動先決定方法、及びプログラム
CN113672392A (zh) * 2021-08-25 2021-11-19 国家电网有限公司信息通信分公司 能耗优化的方法及装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
JP4839361B2 (ja) 2011-12-21

Similar Documents

Publication Publication Date Title
JP4839361B2 (ja) 仮想マシン移動管理サーバおよび仮想マシン移動方法
WO2011105091A1 (ja) 制御装置、管理装置、制御装置のデータ処理方法、およびプログラム
US8745210B2 (en) Migration control apparatus and migration control method
US10055252B2 (en) Apparatus, system and method for estimating data transfer periods for job scheduling in parallel computing
US9384053B2 (en) Task allocation optimization system, task allocation optimization method, and non-transitory computer readable medium storing task allocation optimization program
US20080222644A1 (en) Risk-modulated proactive data migration for maximizing utility in storage systems
CN111443870B (zh) 一种数据处理的方法、设备及存储介质
US9286107B2 (en) Information processing system for scheduling jobs, job management apparatus for scheduling jobs, program for scheduling jobs, and method for scheduling jobs
US20090313631A1 (en) Autonomic workload planning
Cai et al. Critical path-based iterative heuristic for workflow scheduling in utility and cloud computing
US20160006640A1 (en) Management computer, allocation management method, and non-transitory computer readable storage medium
JP2017211788A (ja) 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム
JP2017151656A (ja) 並列処理装置、電力係数算出プログラムおよび電力係数算出方法
Joseph et al. Analysis of dynamic due-date assignment models in a flexible manufacturing system
US20160187018A1 (en) Method, medium, and system
US20220253334A1 (en) Scheduling control apparatus, scheduling control method and program
US20140107809A1 (en) Method and a system for online and dynamic schedule configuration of control applications in a distributed control system
JP2009217373A (ja) 情報処理装置、情報処理方法及びプログラム
US9195515B1 (en) Method and system for process load balancing
CN112580816A (zh) 机器学习训练资源管理
JP6689316B2 (ja) 計算機システム及び学習制御方法
Oliner et al. Probabilistic qos guarantees for supercomputing systems
US10747546B2 (en) Distributed allocation device, distributed allocation system, and distributed allocation method
JP2017049940A (ja) スケジュール更新装置及びスケジュール更新プログラム
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110810

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: 20110906

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111003

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees