(57)【要約】【課題】特定の仮想サーバをマイグレーション対象から外して性能劣化を抑制すること。【解決手段】情報処理装置１０１は、物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の特定の仮想サーバの性能劣化率を参照して、各仮想サーバに割り当てられた仮想ＣＰＵの数と仮想ＣＰＵの稼働率とに基づいて、特定の仮想サーバの性能劣化率が閾値αを超える前の物理サーバの負荷状態に関する第１指標値を算出する。情報処理装置１０１は、物理サーバ上で特定の仮想サーバを起動中に、物理サーバ上の各仮想サーバに割り当てられた仮想ＣＰＵの数と仮想ＣＰＵの稼働率とに基づいて、物理サーバの負荷状態に関する第２指標値を算出する。情報処理装置１０１は、算出した第２指標値が第１指標値を超えた場合、特定の仮想サーバ以外の仮想サーバに対して、他の物理サーバへのマイグレーションを実施する。【選択図】図１
2020008964.tif 000002
【特許請求の範囲】
【請求項１】
物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の前記特定の仮想サーバの性能劣化率を参照して、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記特定の仮想サーバの性能劣化率が閾値を超える前の前記物理サーバの負荷状態に関する第１指標値を算出し、
前記物理サーバ上で前記特定の仮想サーバを起動中に、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記物理サーバの負荷状態に関する第２指標値を算出し、
算出した前記第２指標値が、算出した前記第１指標値を超えた場合に、前記物理サーバ上で動作する仮想サーバのうち、前記特定の仮想サーバ以外の仮想サーバに対して他の物理サーバへのマイグレーションを実施する、
処理をコンピュータに実行させることを特徴とするマイグレーション管理プログラム。
【請求項２】
前記他の物理サーバは、マイグレーション先として予め準備された専用の物理サーバである、ことを特徴とする請求項１に記載のマイグレーション管理プログラム。
【請求項３】
前記物理サーバの稼働率が閾値未満となった場合、前記他の物理サーバ上のいずれかの仮想サーバに対して前記物理サーバへのマイグレーションを実施する、
処理を前記コンピュータに実行させることを特徴とする請求項２に記載のマイグレーション管理プログラム。
【請求項４】
物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の前記特定の仮想サーバの性能劣化率を参照して、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記特定の仮想サーバの性能劣化率が閾値を超える前の前記物理サーバの負荷状態に関する第１指標値を算出し、
前記物理サーバ上で前記特定の仮想サーバを起動中に、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記物理サーバの負荷状態に関する第２指標値を算出し、
算出した前記第２指標値が、算出した前記第１指標値を超えた場合に、前記物理サーバ上で動作する仮想サーバのうち、前記特定の仮想サーバ以外の仮想サーバに対して他の物理サーバへのマイグレーションを実施する、
処理をコンピュータが実行することを特徴とするマイグレーション方法。
【請求項５】
物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の前記特定の仮想サーバの性能劣化率を参照して、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記特定の仮想サーバの性能劣化率が閾値を超える前の前記物理サーバの負荷状態に関する第１指標値を算出する第１の算出部と、
前記物理サーバ上で前記特定の仮想サーバを起動中に、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記物理サーバの負荷状態に関する第２指標値を算出する第２の算出部と、
前記第２の算出部によって算出された前記第２指標値が、前記第１の算出部によって算出された前記第１指標値を超えた場合に、前記物理サーバ上で動作する仮想サーバのうち、前記特定の仮想サーバ以外の仮想サーバに対して他の物理サーバへのマイグレーションを実施するマイグレーション制御部と、
を含むことを特徴とするマイグレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイグレーション管理プログラム、マイグレーション方法およびマイグレーションシステムに関する。
【背景技術】
【０００２】
近年、１台の物理サーバに複数の仮想サーバを構築する運用は、物理サーバの性能向上に伴って急速に普及している。物理サーバ上で動作させる仮想サーバへのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリなどの計算資源の分配は、例えば、仮想環境を構築するオペレーティングシステムの管理者によって決定される。
【０００３】
先行技術としては、システム全体の最適化のためのマイグレーションポリシーだけでなく、アプリケーションに依存するマイグレーションポリシーをユーザが定義でき、両ポリシーを考慮しながら、アプリケーションが稼働する仮想マシンを稼働させたまま、他のサーバに移動することを制御するものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１１６８５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、物理サーバ間での負荷分散を行うにあたり、性能を保証すべき仮想サーバのマイグレーションが発生して、当該仮想サーバの性能劣化を引き起こしてしまう場合がある。
【０００６】
一つの側面では、本発明は、特定の仮想サーバをマイグレーション対象から外して性能劣化を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様では、物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の前記特定の仮想サーバの性能劣化率を参照して、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記特定の仮想サーバの性能劣化率が閾値を超える前の前記物理サーバの負荷状態に関する第１指標値を算出し、前記物理サーバ上で前記特定の仮想サーバを起動中に、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記物理サーバの負荷状態に関する第２指標値を算出し、算出した前記第２指標値が、算出した前記第１指標値を超えた場合に、前記物理サーバ上で動作する仮想サーバのうち、前記特定の仮想サーバ以外の仮想サーバに対して他の物理サーバへのマイグレーションを実施する、マイグレーション管理プログラムが提供される。
【発明の効果】
【０００８】
本発明の一側面によれば、特定の仮想サーバをマイグレーション対象から外して性能劣化を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかるマイグレーション方法の一実施例を示す説明図である。
【図２】図２は、仮想サーバの稼働状況の時系列変化を示す説明図（その１）である。
【図３】図３は、仮想サーバの性能値の時系列変化を示す説明図（その１）である。
【図４】図４は、仮想サーバの稼働状況の時系列変化を示す説明図（その２）である。
【図５】図５は、仮想サーバの性能値の時系列変化を示す説明図（その２）である。
【図６】図６は、マイグレーションシステム６００のシステム構成例を示す説明図である。
【図７】図７は、情報処理装置１０１のハードウェア構成例を示すブロック図である。
【図８】図８は、稼働状況ＤＢ６２０の記憶内容の一例を示す説明図である。
【図９】図９は、ホスト情報ＤＢ６３０の記憶内容の一例を示す説明図である。
【図１０】図１０は、情報処理装置１０１の機能的構成例を示すブロック図である。
【図１１】図１１は、負荷閾値テーブル１１００の記憶内容の一例を示す説明図である。
【図１２】図１２は、仮想サーバの稼働状況の予測例を示す説明図（その１）である。
【図１３】図１３は、仮想サーバの稼働状況の予測例を示す説明図（その２）である。
【図１４】図１４は、仮想サーバのマイグレーション例を示す説明図である。
【図１５】図１５は、情報処理装置１０１のマイグレーション管理処理手順の一例を示すフローチャートである。
【図１６】図１６は、閾値決定処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかるマイグレーション管理プログラム、マイグレーション方法およびマイグレーションシステムの実施の形態を詳細に説明する。
【００１１】
（実施の形態）
図１は、実施の形態にかかるマイグレーション方法の一実施例を示す説明図である。図１において、情報処理装置１０１は、物理サーバ間での仮想サーバのマイグレーションを制御するコンピュータである。物理サーバは、自装置のハードウェア資源を仮想化して、複数の異なるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を実行可能なコンピュータである。自装置のハードウェア資源とは、例えば、ＣＰＵ、メモリ、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）などである。
【００１２】
具体的には、例えば、物理サーバは、自装置のハードウェア資源を分割して構築される実行環境で動作する仮想サーバによってＯＳを稼働させることができる。仮想サーバとは、物理的なコンピュータのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。マイグレーションとは、物理サーバ上で動作している仮想サーバを別の物理サーバに移行することである。
【００１３】
ここで、計算資源を有効活用すべく、できるだけ少ない物理サーバで、できるだけ多くの仮想サーバを運用することは重要である。例えば、仮想サーバを提供するサービスを行うにあたり、できるだけ少ない物理サーバで、できるだけ多くの仮想サーバを運用することは、利益の最大化につながる。
【００１４】
また、計算資源を有効活用する手段として、物理サーバ間のマイグレーションによる負荷分散がある。マイグレーションによる負荷分散は、全体最適化には必要不可欠な技術である。例えば、仮想サーバの稼働状況を監視し、物理サーバに対する負荷が大きいと判断したときに、別の物理サーバに仮想サーバを移動することで負荷分散を行う。
【００１５】
この際、負荷分散を効率的に行うという観点から、物理サーバ上で動作する仮想サーバのうち、負荷が相対的に大きい仮想サーバをマイグレーション対象とする手法がある。しかし、この手法では、運用者（サービス提供者）の意図に基づくマイグレーションができないだけでなく、仮想サーバの使用者（サービス利用者）の意図も反映されない。
【００１６】
すなわち、使用者や運用者がマイグレーションさせたくない仮想サーバがあっても、その意図を反映することができない。一方で、仮想サーバを移動する際には、マイグレーションによって仮想サーバの性能が低下してしまう場合がある。このため、運用者や使用者の都合等に応じてマイグレーション対象から除外する仮想サーバを選べないことは利便性の低下を招くおそれがある。
【００１７】
そこで、本実施の形態では、マイグレーションによる負荷分散を行うにあたり、運用者や使用者の都合等に応じて特定の仮想サーバをマイグレーション対象から除外して、特定の仮想サーバの性能劣化を抑制するマイグレーション方法について説明する。
【００１８】
以下、情報処理装置１０１の処理例について説明する。なお、下記（１）〜（３）の処理のうち、下記（１）の処理は、例えば、物理サーバの運用開始前、すなわち、使用者による仮想サーバの使用開始前に行われる。また、下記（２）および（３）の処理は、物理サーバの運用中、すなわち、使用者による仮想サーバの使用中に行われる。
【００１９】
（１）情報処理装置１０１は、物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバの性能劣化率が閾値αを超える前の物理サーバの負荷状態に関する第１指標値を算出する。ここで、特定の仮想サーバは、マイグレーション対象から除外する仮想サーバであり、任意に指定可能である。特定の仮想サーバとしては、例えば、ＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）を結んだ仮想サーバが指定される。
【００２０】
仮想サーバの性能劣化率とは、仮想サーバの絶対性能に対する劣化度合いを示す。仮想サーバの絶対性能は、物理サーバにおいて仮想サーバを唯一起動させたとき、もしくは、他の仮想サーバが全てアイドル状態のときに得られる性能である。閾値αは、任意に設定可能であり、絶対性能に対してどれだけの性能劣化を許容するかを示す。例えば、閾値αを「α＝１０％」とすると、絶対性能に対して１０％までの性能劣化を許容することを意味する。
【００２１】
また、物理サーバの負荷状態に関する指標値とは、物理サーバにどの程度の負荷がかかっているかをあらわす指標である。物理サーバの負荷状態に関する指標値は、物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と仮想ＣＰＵの稼働率とに基づいて算出することができる。
【００２２】
具体的には、例えば、まず、情報処理装置１０１は、物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の特定の仮想サーバの性能劣化率を特定する。ただし、物理サーバは、物理サーバ上で動作する仮想サーバに割り当てられた仮想ＣＰＵの総数が、物理サーバが有する物理コア（ＣＰＵコア）の数を上回る、いわゆる、オーバーコミット状態である場合を想定する。
【００２３】
図１の例では、物理サーバＰＭ１上で仮想サーバＶＭ１，ＶＭ２を運用する場合を想定する。ここでは、物理サーバＰＭ１が有する物理コアの数を「１６」とする。また、仮想サーバＶＭ１に割り当てられた仮想ＣＰＵの数を「１２」とし、仮想サーバＶＭ２に割り当てられた仮想ＣＰＵの数を「８」とする。
【００２４】
また、マイグレーション対象から除外する特定の仮想サーバを仮想サーバＶＭ１とする。この場合、情報処理装置１０１は、物理サーバＰＭ１上で動作する仮想サーバのうち、仮想サーバＶＭ１以外の仮想サーバの稼働率を段階的に変化させた際の仮想サーバＶＭ１の性能劣化率を特定する。
【００２５】
なお、仮想サーバＶＭ１の性能劣化率を特定するにあたり、物理サーバＰＭ１上で動作させる仮想サーバは、運用時と異なる仮想サーバであってもよい。ただし、物理サーバＰＭ１上で動作させる仮想サーバの数、マイグレーション対象から除外する仮想サーバの数、および、各仮想サーバに割り当てる仮想ＣＰＵの数は、運用時と同一であることが好ましい。
【００２６】
より詳細に説明すると、例えば、情報処理装置１０１は、実際に物理サーバＰＭ１上に仮想サーバＶＭ１，ＶＭ２を起動し、仮想サーバＶＭ２の稼働率を段階的に上昇させた際の仮想サーバＶＭ１の性能値を測定する。この際、仮想サーバＶＭ１の稼働率は固定としてもよい。
【００２７】
また、情報処理装置１０１は、仮想サーバＶＭ１の絶対性能を測定する。仮想サーバＶＭ１の絶対性能とは、物理サーバＰＭ１において、仮想サーバＶＭ１を唯一起動させたとき、もしくは、他の仮想サーバが全てアイドル状態のときに得られる仮想サーバＶＭ１の性能値である。
【００２８】
そして、情報処理装置１０１は、測定した仮想サーバＶＭ１の絶対性能に対する、測定した仮想サーバＶＭ１の性能値の割合を算出することにより、仮想サーバＶＭ１の性能劣化率を特定する。これにより、仮想サーバＶＭ２の稼働率を段階的に上昇させた際の仮想サーバＶＭ１の性能劣化率を特定することができる。
【００２９】
なお、仮想サーバＶＭ２の稼働率を段階的に上昇させた際の仮想サーバＶＭ１の性能劣化率については、図２および図３を用いて後述する。
【００３０】
つぎに、情報処理装置１０１は、特定した仮想サーバＶＭ１の性能劣化率を参照して、仮想サーバＶＭ１の性能劣化率が閾値αを超える前の物理サーバＰＭ１の負荷状態に関する第１指標値を算出する。閾値αを「α＝１０％」とすると、情報処理装置１０１は、仮想サーバＶＭ１の性能劣化率が１０％を超える前の物理サーバＰＭ１の負荷状態に関する第１指標値を算出する。
【００３１】
ここで、第１指標値は、これ以上物理サーバＰＭ１に負荷がかかると、仮想サーバＶＭ１の性能劣化率が閾値αを超えてしまうといえる物理サーバＰＭ１の負荷状態をあらわす。換言すれば、物理サーバＰＭ１の負荷状態に関する指標値が第１指標値を超えたことをもって、仮想サーバＶＭ１の性能が許容範囲を超えて低下する予兆として捉えることができる。
【００３２】
より詳細に説明すると、例えば、情報処理装置１０１は、仮想サーバＶＭ２の稼働率を段階的に変化させた複数の状態のうち、仮想サーバＶＭ１の性能劣化率が閾値αを超えるときの状態変化を特定する。そして、情報処理装置１０１は、閾値αを超える直前の状態における物理サーバＰＭ１の負荷状態に関する指標値を第１指標値として算出する。
【００３３】
この際、情報処理装置１０１は、物理サーバＰＭ１の負荷状態に関する指標値として、例えば、下記式（１）を用いて、実総仮想ＣＰＵ数を算出することにしてもよい。ただし、ｎは、仮想サーバに割り当てられた仮想ＣＰＵの数（ｖＣＰＵ数）である。Ｎは、物理サーバ上で動作する仮想サーバの数である。ＶＭCPUutilは、仮想サーバのＣＰＵ稼働率である。ＶＭCPUutilは、百分率ではなく比率であらわす。ｉは、「ｉ＝１，２，…，Ｎ」である。
【００３４】
実総仮想ＣＰＵ数＝ΣｎＶＭiCPUutil
＝（ｎ1＊ＶＭ1CPUutil＋ｎ2＊ＶＭ2CPUutil＋…＋ｎN＊ＶＭNCPUutil）
・・・（１）
【００３５】
ｎＶＭCPUutilは、仮想サーバに割り当てられる仮想ＣＰＵの数は異なることがあることを考慮して、ｖＣＰＵ数とＣＰＵ稼働率との積によって、仮想サーバの実際の稼働率をあらわした値である。したがって、上記式（１）により得られる実総仮想ＣＰＵ数は、物理サーバにかかる実際の負荷をあらわしているといえる。実総仮想ＣＰＵ数が、物理サーバが有する物理コアの数を超えると、ＣＰＵ不足による待ち時間が生じて、物理サーバ上で動作する仮想サーバの性能が低下することを意味する。
【００３６】
なお、情報処理装置１０１は、物理サーバの負荷状態に関する指標値として、実総仮想ＣＰＵ数から、マイグレーション対象から除外する特定の仮想サーバのｎＶＭ値（ｎＶＭCPUutil）を引いた値を算出することにしてもよい。この場合、算出される指標値は、特定の仮想サーバ以外の仮想サーバの実行にどれだけ物理サーバの負荷がかかっているかをあらわすものとなる。
【００３７】
（２）情報処理装置１０１は、物理サーバ上で特定の仮想サーバを起動中に、物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と仮想ＣＰＵの稼働率とに基づいて、物理サーバの負荷状態に関する第２指標値を算出する。すなわち、情報処理装置１０１は、特定の仮想サーバの運用中に、物理サーバにどの程度の負荷がかかっているかをあらわす指標値を算出する。
【００３８】
図１の例では、情報処理装置１０１は、物理サーバＰＭ１上で動作する各仮想サーバＶＭ１，ＶＭ２に割り当てられた仮想ＣＰＵの数と仮想ＣＰＵの稼働率とに基づいて、物理サーバＰＭ１の負荷状態に関する第２指標値を随時算出する。具体的には、例えば、情報処理装置１０１は、物理サーバＰＭ１の負荷状態に関する第２指標値として、上記式（１）を用いて、実総仮想ＣＰＵ数を随時算出する。
【００３９】
（３）情報処理装置１０１は、算出した第２指標値が、算出した第１指標値を超えた場合に、物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバに対して他の物理サーバへのマイグレーションを実施する。
【００４０】
ここで、第２指標値が第１指標値を超えたということは、特定の仮想サーバの性能が許容範囲を超えて劣化する可能性が高い状態であるといえる。このため、情報処理装置１０１は、第２指標値が第１指標値を超えたことに応じて、特定の仮想サーバ以外の仮想サーバに対して他の物理サーバへのマイグレーションを実施する。
【００４１】
図１の例では、第２指標値（実総仮想ＣＰＵ数）が第１指標値（実総仮想ＣＰＵ数）を超えた場合に、物理サーバＰＭ１上で動作する仮想サーバＶＭ１，ＶＭ２のうち、仮想サーバＶＭ１以外の仮想サーバＶＭ２に対して他の物理サーバＰＭ２へのマイグレーションを実施する。
【００４２】
これにより、仮想サーバＶＭ１が許容できない程度まで性能劣化する前のタイミングで、仮想サーバＶＭ２を他の物理サーバＰＭ２へマイグレーションして、仮想サーバＶＭ１の性能劣化を抑制することができる。また、物理サーバＰＭ１，ＰＭ２間のマイグレーションによる負荷分散により全体最適化を図ることができる。
【００４３】
ここで、図２および図３を用いて、仮想サーバＶＭ２の稼働率を段階的に上昇させた際の仮想サーバＶＭ１の性能劣化率について説明する。
【００４４】
図２は、仮想サーバの稼働状況の時系列変化を示す説明図（その１）である。また、図３は、仮想サーバの性能値の時系列変化を示す説明図（その１）である。図２において、実験結果２００は、物理サーバＰＭ１上で動作する仮想サーバＶＭ１，ＶＭ２のうち、仮想サーバＶＭ２の稼働率を段階的に上昇させた際の仮想サーバＶＭ１，ＶＭ２の稼働状況（状態１〜４）を示す。
【００４５】
フラグ「＃」は、マイグレーション対象から除外する特定の仮想サーバであることを示す。ｖＣＰＵ数は、仮想サーバＶＭ１，ＶＭ２に割り当てられた仮想ＣＰＵの数である。例えば、１つの仮想ＣＰＵの最大性能は、物理サーバＰＭ１が有する１つの物理コアの最大性能に相当する。ここでは、物理サーバＰＭ１は、仮想サーバＶＭ１，ＶＭ２に割り当てられた仮想ＣＰＵの総数「２０」が、物理コアの数「１６」を上回るオーバーコミット状態である。
【００４６】
ＣＰＵ稼働率は、仮想サーバに割り当てられた仮想ＣＰＵの稼働率である。ｎＶＭは、ｖＣＰＵ数とＣＰＵ稼働率との積によって、仮想サーバの実際の稼働率をあらわした値である。性能劣化率は、仮想サーバの絶対性能に対する劣化度合いを示す。
【００４７】
ここで、状態１は、仮想サーバＶＭ１のＣＰＵ稼働率が「６７％」、仮想サーバＶＭ２のＣＰＵ稼働率が「２５％」の状態である。状態２は、仮想サーバＶＭ１のＣＰＵ稼働率が「６７％」、仮想サーバＶＭ２のＣＰＵ稼働率が「５０％」の状態である。状態３は、仮想サーバＶＭ１のＣＰＵ稼働率が「６７％」、仮想サーバＶＭ２のＣＰＵ稼働率が「７５％」の状態である。状態４は、仮想サーバＶＭ１のＣＰＵ稼働率が「６７％」、仮想サーバＶＭ２のＣＰＵ稼働率が「１００％」の状態である。
【００４８】
図３において、グラフ３０１は、仮想サーバＶＭ１の性能値の時系列変化を示す。グラフ３０２は、仮想サーバＶＭ２の性能値の時系列変化を示す。性能値は、値が高いほど、仮想サーバの性能が高いことを示す。なお、各仮想サーバＶＭ１，ＶＭ２の性能値は、既存のベンチマークを用いて測定することができる。
【００４９】
図３中、期間Ｔ１は、仮想サーバＶＭ１，ＶＭ２が同一の物理サーバＰＭ１上で動作している期間を示す。丸数字１〜４は、状態１〜４の期間に対応している。期間Ｔ２は、仮想サーバＶＭ２が物理サーバＰＭ１から物理サーバＰＭ２にマイグレーションされ、仮想サーバＶＭ１が物理サーバＰＭ１上で動作し、仮想サーバＶＭ２が物理サーバＰＭ２上で動作している期間を示す。
【００５０】
グラフ３０１によれば、期間Ｔ１において、仮想サーバＶＭ２のＣＰＵ稼働率が上昇するにつれて、仮想サーバＶＭ１の性能値が低下していることがわかる。また、期間Ｔ２において、物理サーバＰＭ１上で仮想サーバＶＭ１を唯一起動させたときの性能値（絶対性能）を特定することができる。
【００５１】
グラフ３０２によれば、期間Ｔ１において、仮想サーバＶＭ２のＣＰＵ稼働率が上昇するにつれて、仮想サーバＶＭ２の性能値が上昇していることがわかる。また、期間Ｔ２において、物理サーバＰＭ２上でＣＰＵ稼働率を変化させつつ仮想サーバＶＭ２を唯一起動させたときの性能値（絶対性能）を特定することができる。
【００５２】
ここで、期間Ｔ１において、仮想サーバＶＭ２のＣＰＵ稼働率が上昇するにつれて、仮想サーバＶＭ１の性能値が急激に低下するポイントがある。例えば、状態１から状態２に変化したときは、仮想サーバＶＭ１の性能値は、低下しているものの急激に低下しているわけではない。
【００５３】
一方で、状態２から状態３に変化したときは、仮想サーバＶＭ１の性能値は急激に低下しており、性能劣化率が「２９．１％」となっている。性能劣化率は、仮想サーバＶＭ１の絶対性能に対する性能値の割合、例えば、「（仮想サーバの性能値／仮想サーバの絶対性能）×１００」によってあらわされる。
【００５４】
このように、物理サーバ上に複数の仮想サーバが共存している環境下では、ある仮想サーバの性能値は、他の仮想サーバの稼働率の上昇に応じて線形に変化するわけではないことがわかる。換言すれば、物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させることで、特定の仮想サーバの性能値が急激に低下するポイントを特定することができる。
【００５５】
例えば、仮想サーバＶＭ１の性能劣化率に関する閾値αを「α＝１０％」とする。すなわち、仮想サーバＶＭ１の絶対性能に対して１０％までの性能劣化を許容するとする。図２および図３の例では、各状態１〜４の仮想サーバＶＭ１の性能劣化率は、「１．２％⇒３．４％⇒２９．１％⇒３４．７％」と変化している。
【００５６】
この場合、状態２から状態３に遷移したときに、仮想サーバＶＭ１の性能値が急激に低下して、性能劣化率が「２９．１％」となり、閾値αを超える。このため、情報処理装置１０１は、状態１〜４のうちの状態２を、仮想サーバＶＭ１の性能劣化率が閾値αを超える前の状態として特定する。
【００５７】
そして、情報処理装置１０１は、状態２のときの物理サーバＰＭ１の負荷状態に関する指標値を、第１指標値として算出する。具体的には、例えば、情報処理装置１０１は、上記式（１）を用いて、物理サーバの負荷状態に関する指標値として、実総仮想ＣＰＵ数を算出する。
【００５８】
図２の例では、状態２のときの物理サーバＰＭ１の実総仮想ＣＰＵ数は、「１２（＝８＋４）」となる。このため、第１指標値は、「１２」となる。
【００５９】
ただし、物理サーバの負荷状態に関する指標値として、実総仮想ＣＰＵ数から、マイグレーション対象から除外する特定の仮想サーバのｎＶＭ値（ｎＶＭCPUutil）を引いた値を算出することにしてもよい。この場合、状態２のときの物理サーバＰＭ１の負荷状態に関する第１指標値は、状態２のときの物理サーバＰＭ１の実総仮想ＣＰＵ数「１２」から、仮想サーバＶＭ１のｎＶＭ値「８」を引いた値「４」となる。
【００６０】
なお、仮想サーバＶＭ１，ＶＭ２のうち、仮想サーバＶＭ２を、マイグレーション対象から除外する特定の仮想サーバとした場合には、情報処理装置１０１は、仮想サーバＶＭ１の稼働率を段階的に変化させて、仮想サーバＶＭ２の性能値の時系列変化を特定する。
【００６１】
ここで、図４および図５を用いて、仮想サーバＶＭ１の稼働率を段階的に上昇させた際の仮想サーバＶＭ２の性能劣化率について説明する。ただし、ここでは図２に示した実験結果２００の一部（状態１，２）を流用して、仮想サーバＶＭ２の性能劣化率について説明する。
【００６２】
図４は、仮想サーバの稼働状況の時系列変化を示す説明図（その２）である。また、図５は、仮想サーバの性能値の時系列変化を示す説明図（その２）である。図４において、実験結果４００は、仮想サーバＶＭ１の稼働率を段階的に変化させた際の仮想サーバＶＭ１，ＶＭ２の稼働状況を示す。ここでは、仮想サーバＶＭ１，ＶＭ２の稼働状況が、状態１，２の後、状態５，６に遷移した場合を想定する。
【００６３】
図５において、グラフ５０１は、仮想サーバＶＭ１の性能値の時系列変化を示す。グラフ５０２は、仮想サーバＶＭ２の性能値の時系列変化を示す。図５中、期間Ｔ３は、仮想サーバＶＭ１，ＶＭ２が同一の物理サーバＰＭ１上で動作している期間を示す。期間Ｔ４は、仮想サーバＶＭ２が物理サーバＰＭ１から物理サーバＰＭ２にマイグレーションされ、仮想サーバＶＭ１が物理サーバＰＭ１上で動作し、仮想サーバＶＭ２が物理サーバＰＭ２上で動作している期間を示す。丸数字５，６は、状態５，６の期間に対応している。
【００６４】
ここで、仮想サーバＶＭ２の性能劣化率に関する閾値αを「１０％」とする。図４および図５の例では、状態５の仮想サーバＶＭ２の性能劣化率は、「８％」である。また、状態１の仮想サーバＶＭ２の性能劣化率は、「１０％」である。このため、情報処理装置１０１は、状態５を、仮想サーバＶＭ２の性能劣化率が閾値「１０％」を超える前の状態として特定する。
【００６５】
そして、情報処理装置１０１は、状態５のときの物理サーバＰＭ１の負荷状態に関する指標値を、第１指標値として算出する。図４の例では、状態５のときの物理サーバＰＭ１の実総仮想ＣＰＵ数は、「８（＝６＋２）」となる。このため、第１指標値は、「８」となる。
【００６６】
（マイグレーションシステム６００のシステム構成例）
つぎに、実施の形態にかかるマイグレーションシステム６００のシステム構成例について説明する。
【００６７】
図６は、マイグレーションシステム６００のシステム構成例を示す説明図である。図６において、マイグレーションシステム６００は、情報処理装置１０１と、物理サーバＰＭ１〜ＰＭｍ（ｍ：２以上の自然数）と、待機サーバＳＴと、を含む。マイグレーションシステム６００において、情報処理装置１０１、物理サーバＰＭ１〜ＰＭｍおよび待機サーバＳＴは、ネットワーク６１０を介して相互に通信可能に接続される。ネットワーク６１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００６８】
以下の説明では、物理サーバＰＭ１〜ＰＭｍのうちの任意の物理サーバを「物理サーバＰＭｊ」と表記する場合がある（ｊ＝１，２，…，ｍ）。また、物理サーバＰＭ１〜ＰＭｍのうちの物理サーバＰＭｊとは異なる他の物理サーバを「物理サーバＰＭｋ」と表記する場合がある（ｋ≠ｊ、ｋ＝１，２，…，ｍ）。
【００６９】
情報処理装置１０１は、稼働状況ＤＢ（Ｄａｔａｂａｓｅ）６２０およびホスト情報ＤＢ６３０を有し、物理サーバ間での仮想サーバのマイグレーションを制御する。稼働状況ＤＢ６２０およびホスト情報ＤＢ６３０の記憶内容については、図８および図９を用いて後述する。
【００７０】
物理サーバＰＭｊは、自装置のハードウェア資源を分割して構築される実行環境で動作する仮想サーバによってＯＳを稼働させることができるコンピュータである。待機サーバＳＴは、マイグレーション先として予め準備された専用の物理サーバである。図６では、待機サーバＳＴは、１台のみ表記したが、２台以上であってもよい。
【００７１】
以下の説明では、物理サーバＰＭｊ上で動作する仮想サーバを「仮想サーバＶＭ１〜ＶＭｎ」と表記する場合がある（ｎ：２以上の自然数）。また、仮想サーバＶＭ１〜ＶＭｎのうちの任意の仮想サーバを「仮想サーバＶＭｉ」と表記する場合がある（ｉ＝１，２，…，ｎ）。
【００７２】
なお、ここでは、情報処理装置１０１を、物理サーバＰＭ１〜ＰＭｍとは別体に設けることにしたが、これに限らない。例えば、情報処理装置１０１は、物理サーバＰＭｊによって実現されることにしてもよい。
【００７３】
（情報処理装置１０１のハードウェア構成例）
図７は、情報処理装置１０１のハードウェア構成例を示すブロック図である。図７において、情報処理装置１０１は、ＣＰＵ７０１と、メモリ７０２と、Ｉ／Ｆ７０３と、ディスクドライブ７０４と、ディスク７０５と、を有する。また、各構成部は、バス７００によってそれぞれ接続される。
【００７４】
ここで、ＣＰＵ７０１は、情報処理装置１０１の全体の制御を司る。ＣＰＵ７０１は、複数のコアを有していてもよい。メモリ７０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭがＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムを記憶し、ＲＯＭがアプリケーションプログラムを記憶し、ＲＡＭがＣＰＵ７０１のワークエリアとして使用される。メモリ７０２に記憶されるプログラムは、ＣＰＵ７０１にロードされることで、コーディングされている処理をＣＰＵ７０１に実行させる。
【００７５】
Ｉ／Ｆ７０３は、通信回線を通じてネットワーク６１０に接続され、ネットワーク６１０を介して外部のコンピュータ（例えば、図６に示した物理サーバＰＭ１〜ＰＭｍ、待機サーバＳＴ）に接続される。そして、Ｉ／Ｆ７０３は、ネットワーク６１０と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ７０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００７６】
ディスクドライブ７０４は、ＣＰＵ７０１の制御に従ってディスク７０５に対するデータのリード／ライトを制御する。ディスク７０５は、ディスクドライブ７０４の制御で書き込まれたデータを記憶する。ディスク７０５としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００７７】
なお、情報処理装置１０１は、上述した構成部のほかに、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、入力装置、ディスプレイ等を有することにしてもよい。また、図６に示した物理サーバＰＭ１〜ＰＭｍ、待機サーバＳＴについても、情報処理装置１０１と同様のハードウェア構成により実現することができる。
【００７８】
（各種ＤＢ６２０，６３０の記憶内容）
つぎに、図８および図９を用いて、情報処理装置１０１が有する各種ＤＢ６２０，６３０の記憶内容について説明する。各種ＤＢ６２０，６３０は、例えば、図７に示したメモリ７０２、ディスク７０５などの記憶装置により実現される。
【００７９】
図８は、稼働状況ＤＢ６２０の記憶内容の一例を示す説明図である。図８において、稼働状況ＤＢ６２０は、ホスト名、仮想サーバ名、フラグ、ｖＣＰＵ数、ＣＰＵ稼働率およびタイムスタンプのフィールドを有し、各フィールドに情報を設定することで、稼働状況情報（例えば、稼働状況情報８００−１〜８００−１０）をレコードとして記憶する。
【００８０】
ここで、ホスト名は、物理サーバＰＭｊを一意に識別する識別子である。仮想サーバ名は、物理サーバＰＭｊ上で動作する仮想サーバＶＭｉを一意に識別する識別子である。なお、仮想サーバ名「ＶＭｊ−ｉ」は、物理サーバＰＭｊ上で動作する仮想サーバＶＭｉを示す。
【００８１】
フラグは、マイグレーション対象から除外する仮想サーバであるか否かを示すフラグである。フラグには、「１」または「０」が設定される。フラグ「１」は、マイグレーション対象から除外する仮想サーバであることを示す。フラグ「０」は、マイグレーション対象から除外する仮想サーバではないことを示す。
【００８２】
ｖＣＰＵ数は、仮想サーバＶＭｉに割り当てられた仮想ＣＰＵの数である。ＣＰＵ稼働率は、仮想サーバに割り当てられた仮想ＣＰＵの稼働率である（単位：％）。タイムスタンプは、ＣＰＵ稼働率が測定された日時を示す。
【００８３】
例えば、稼働状況情報８００−１は、物理サーバＰＭ１上で動作する仮想サーバＶＭ１のフラグ「１」、ｖＣＰＵ数「２」、ＣＰＵ稼働率「１００％」およびタイムスタンプ「２０１８／０６／１８  ０９：００：００」を示す。
【００８４】
図９は、ホスト情報ＤＢ６３０の記憶内容の一例を示す説明図である。図９において、ホスト情報ＤＢ６３０は、ホスト名、物理コア数および仮想サーバ構成のフィールドを有し、各フィールドに情報を設定することで、ホスト情報（例えば、ホスト情報９００−１，９００−２）をレコードとして記憶する。
【００８５】
ここで、ホスト名は、物理サーバＰＭｊを一意に識別する識別子である。物理コア数は、物理サーバＰＭｊが有する物理コア（ＣＰＵコア）の数である。仮想サーバ構成は、物理サーバＰＭｊ上で動作させる仮想サーバに関する構成情報である。例えば、仮想サーバ構成は、仮想サーバの数やｖＣＰＵ数、マイグレーション対象から除外する仮想サーバの情報などを含む。より具体的には、例えば、仮想サーバ構成には、物理サーバＰＭｊ上で動作する仮想サーバＶＭｉの仮想サーバ名、フラグ、ｖＣＰＵ数などが含まれていてもよい。フラグは、マイグレーション対象から除外する仮想サーバであるか否かを示す情報である。
【００８６】
（情報処理装置１０１の機能的構成例）
図１０は、情報処理装置１０１の機能的構成例を示すブロック図である。図１０において、情報処理装置１０１は、取得部１００１と、第１の算出部１００２と、第２の算出部１００３と、マイグレーション制御部１００４と、を含む。取得部１００１〜マイグレーション制御部１００４は制御部となる機能であり、具体的には、例えば、図７に示したメモリ７０２、ディスク７０５などの記憶装置に記憶されたプログラムをＣＰＵ７０１に実行させることにより、または、Ｉ／Ｆ７０３により、その機能を実現する。各機能部の処理結果は、例えば、メモリ７０２、ディスク７０５などの記憶装置に記憶される。ただし、情報処理装置１０１の各機能部は、マイグレーションシステム６００内の複数のコンピュータにより実現されることにしてもよい。
【００８７】
取得部１００１は、ホスト情報を取得する。ここで、ホスト情報は、物理サーバＰＭｊに関する情報であり、例えば、物理サーバＰＭｊが有する物理コアの数や周波数などを含む。また、ホスト情報は、例えば、物理サーバＰＭｊ上で動作させる仮想サーバに関する構成情報を含む。具体的には、例えば、取得部１００１は、物理サーバＰＭ１〜ＰＭｍそれぞれからホスト情報を受信することにより、受信したホスト情報を取得する。
【００８８】
取得されたホスト情報は、例えば、図９に示したホスト情報ＤＢ６３０に記憶される。なお、取得部１００１は、不図示の入力装置を用いたユーザの操作入力により、ホスト情報を取得することにしてもよい。ユーザは、例えば、マイグレーションシステム６００の管理者である。
【００８９】
また、取得部１００１は、仮想サーバ情報を取得する。ここで、仮想サーバ情報は、物理サーバＰＭｊ上で動作する仮想サーバＶＭｉに関する情報である。仮想サーバ情報は、例えば、仮想サーバＶＭｉの仮想サーバ名、フラグ、ｖＣＰＵ数、ＣＰＵ稼働率などを含む。フラグは、マイグレーション対象から除外する仮想サーバであるか否かを示す。
【００９０】
具体的には、例えば、取得部１００１は、物理サーバＰＭｊから、物理サーバＰＭｊ上で動作する各仮想サーバＶＭｉの仮想サーバ情報を受信することにより、受信した各仮想サーバＶＭｉの仮想サーバ情報を取得する。仮想サーバ情報を取得する処理は、例えば、数分程度の時間間隔で定期的に実施される。
【００９１】
取得された仮想サーバ情報は、例えば、物理サーバＰＭｊのホスト名およびタイムスタンプと対応付けて、図８に示した稼働状況ＤＢ６２０に記憶される。タイムスタンプの日時は、例えば、仮想サーバ情報の受信日時であってもよい。
【００９２】
第１の算出部１００２は、物理サーバＰＭｊ上で動作する仮想サーバＶＭ１〜ＶＭｎのうち、特定の仮想サーバの性能劣化率が閾値αを超える前の物理サーバＰＭｊの負荷状態に関する第１指標値を算出する。ここで、特定の仮想サーバは、マイグレーション対象から除外する仮想サーバである。
【００９３】
具体的には、例えば、まず、第１の算出部１００２は、物理サーバＰＭｊ上で動作する仮想サーバＶＭ１〜ＶＭｎのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の特定の仮想サーバの性能劣化率を特定する。ただし、物理サーバＰＭｊは、オーバーコミット状態である場合を想定する。
【００９４】
より詳細に説明すると、例えば、第１の算出部１００２は、物理サーバＰＭｊ上に仮想サーバＶＭ１〜ＶＭｎを起動する。そして、第１の算出部１００２は、仮想サーバＶＭ１〜ＶＭｎのうち、特定の仮想サーバ以外の仮想サーバの稼働率（ＣＰＵ稼働率）を段階的に変化させた際の特定の仮想サーバの性能値を測定する。この際、特定の仮想サーバの稼働率は、固定値としてもよい。固定値は、例えば、１００％であってもよく、また、特定の仮想サーバの運用時の稼働状況を考慮して設定してもよい。
【００９５】
また、第１の算出部１００２は、特定の仮想サーバの絶対性能を測定する。例えば、第１の算出部１００２は、物理サーバＰＭｊ上に特定の仮想サーバを唯一起動させ、特定の仮想サーバに割り当てた各仮想ＣＰＵに負荷を与えることにより、特定の仮想サーバの絶対性能を測定する。なお、仮想サーバの絶対性能は、仮想サーバに割り当てる仮想ＣＰＵの数が増えるにつれて高くなる関係にある。
【００９６】
そして、第１の算出部１００２は、測定した特定の仮想サーバの絶対性能に対する、測定した特定の仮想サーバの性能値の割合を算出することにより、特定の仮想サーバの性能劣化率を特定する。これにより、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の特定の仮想サーバの性能劣化率を特定することができる。
【００９７】
つぎに、第１の算出部１００２は、特定した特定の仮想サーバの性能劣化率を参照して、特定の仮想サーバの性能劣化率が閾値αを超える前の物理サーバＰＭｊの負荷状態に関する第１指標値を算出する。第１指標値は、これ以上物理サーバＰＭｊに負荷がかかると、特定の仮想サーバの性能が低下して、特定の仮想サーバの性能劣化率が閾値αを超えてしまう、物理サーバＰＭｊの負荷状態をあらわす指標である。
【００９８】
以下の説明では、物理サーバＰＭｊの負荷状態に関する第１指標値を「物理サーバＰＭｊの負荷閾値Ｌｊ」と表記する場合がある。
【００９９】
より詳細に説明すると、例えば、第１の算出部１００２は、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に上昇させた複数の状態のうち、特定の仮想サーバの性能劣化率が閾値αを超えるときの状態変化を特定する。そして、第１の算出部１００２は、閾値αを超える直前の状態における物理サーバＰＭｊの負荷状態に関する指標値を、物理サーバＰＭｊの負荷閾値Ｌｊとして算出する。
【０１００】
ここで、物理サーバＰＭｊの負荷状態に関する指標値は、例えば、上記式（１）を用いて得られる実総仮想ＣＰＵ数であってもよい。また、物理サーバＰＭｊの負荷状態に関する指標値は、実総仮想ＣＰＵ数から、マイグレーション対象から除外する特定の仮想サーバのｎＶＭ値（ｎＶＭCPUutil）を引いた値を算出することにしてもよい。この際、マイグレーション対象から除外する仮想サーバが複数存在する場合には、物理サーバＰＭｊの負荷状態に関する指標値は、実総仮想ＣＰＵ数から、マイグレーション対象から除外する複数の仮想サーバのｎＶＭ値の合計を引いた値としてもよい。
【０１０１】
これにより、物理サーバＰＭｊ上の各仮想サーバＶＭｉのｖＣＰＵ数とＣＰＵ稼働率との積で表現した指標をもとに、特定の仮想サーバを許容できない程度まで性能劣化させない負荷閾値Ｌｊを予め知ることができる。
【０１０２】
算出された物理サーバＰＭｊの負荷閾値Ｌｊは、例えば、図１１に示すような負荷閾値テーブル１１００に記憶される。負荷閾値テーブル１１００は、例えば、メモリ７０２、ディスク７０５などの記憶装置により実現される。
【０１０３】
図１１は、負荷閾値テーブル１１００の記憶内容の一例を示す説明図である。図１１において、負荷閾値テーブル１１００は、ホスト名および負荷閾値のフィールドを有し、各フィールドに情報を設定することで、負荷閾値情報（例えば、負荷閾値情報１１００−１，１１００−２）をレコードとして記憶する。
【０１０４】
ここで、ホスト名は、物理サーバＰＭｊを一意に識別する識別子である。負荷閾値は、特定の仮想サーバの性能劣化率が閾値αを超える前の物理サーバＰＭｊの負荷状態に関する第１指標値である。例えば、負荷閾値情報１１００−１は、物理サーバＰＭ１の負荷閾値Ｌ１を示す。
【０１０５】
第２の算出部１００３は、物理サーバＰＭｊ上で特定の仮想サーバを起動中に、物理サーバＰＭｊの負荷状態に関する第２指標値を算出する。具体的には、例えば、第２の算出部１００３は、物理サーバＰＭｊ上で動作する各仮想サーバＶＭ１〜ＶＭｎに割り当てられた仮想ＣＰＵの数と仮想ＣＰＵの稼働率とに基づいて、物理サーバＰＭｊの負荷状態に関する第２指標値を随時算出する。
【０１０６】
例えば、物理サーバＰＭｊの負荷閾値Ｌｊ（第１指標値）を、上記式（１）を用いて得られる実総仮想ＣＰＵ数とする。この場合、第２の算出部１００３は、図８に示した稼働状況ＤＢ６２０を参照して、各仮想サーバＶＭ１〜ＶＭｎの最新のｖＣＰＵ数とＣＰＵ稼働率とを特定する。つぎに、第２の算出部１００３は、上記式（１）を用いて、特定した各仮想サーバＶＭ１〜ＶＭｎのｖＣＰＵ数とＣＰＵ稼働率とに基づいて、現在の実総仮想ＣＰＵ数を算出する。そして、第２の算出部１００３は、算出した現在の実総仮想ＣＰＵ数を第２指標値とする。
【０１０７】
また、物理サーバＰＭｊの負荷閾値Ｌｊ（第１指標値）を、上記式（１）を用いて得られる実総仮想ＣＰＵ数から、マイグレーション対象から除外する特定の仮想サーバのｎＶＭ値（ｎＶＭCPUutil）を引いた値とする。この場合、第２の算出部１００３は、例えば、算出した現在の実総仮想ＣＰＵ数から、特定の仮想サーバのｎＶＭ値（ｎＶＭCPUutil）を引いた値を第２指標値として算出する。
【０１０８】
マイグレーション制御部１００４は、算出された第２指標値が、算出された物理サーバＰＭｊの負荷閾値Ｌｊ（第１指標値）を超えたか否かを判断する。物理サーバＰＭｊの負荷閾値Ｌｊは、例えば、図１１に示した負荷閾値テーブル１１００から特定される。ここで、第２指標値が負荷閾値Ｌｊ以下の場合、マイグレーション制御部１００４は、物理サーバＰＭｊから他の物理サーバへのマイグレーションは実施しない。
【０１０９】
一方、第２指標値が負荷閾値Ｌｊを超えた場合には、マイグレーション制御部１００４は、物理サーバＰＭｊ上で動作する仮想サーバＶＭ１〜ＶＭｎのうち、特定の仮想サーバ以外の仮想サーバＶＭｉに対して他の物理サーバへのマイグレーションを実施する。
【０１１０】
具体的には、例えば、マイグレーション制御部１００４は、稼働状況ＤＢ６２０を参照して、物理サーバＰＭｊ上で動作する仮想サーバＶＭ１〜ＶＭｎのうち、フラグ「０」のいずれかの仮想サーバＶＭｉをマイグレーション対象として選択する。この際、マイグレーション制御部１００４は、例えば、フラグ「０」の仮想サーバのうち、最も稼働率（ｎＶＭ＝ｖＣＰＵ数×ＣＰＵ稼働率）が高い仮想サーバＶＭｉをマイグレーション対象として選択することにしてもよい。
【０１１１】
そして、マイグレーション制御部１００４は、選択した仮想サーバＶＭｉに対して他の物理サーバへのマイグレーションを実施する。この際、マイグレーション制御部１００４は、例えば、物理サーバＰＭｊのオーバーコミット状態が解消されるように、マイグレーション対象を繰り返し選択して、他の物理サーバへのマイグレーションを実施することにしてもよい。
【０１１２】
他の物理サーバは、例えば、図６に示した待機サーバＳＴであってもよい。待機サーバＳＴは、マイグレーション先として予め準備された専用の物理サーバである。例えば、待機サーバＳＴには、初期状態ではいずれの仮想サーバも起動されていない。さらに、待機サーバＳＴは、実総仮想ＣＰＵ数が所定値以下となるように稼働率が制限される。
【０１１３】
また、他の物理サーバは、マイグレーション先候補となる複数の物理サーバのうち、稼働率が閾値β未満の物理サーバＰＭｋであってもよい。マイグレーション先候補となる複数の物理サーバは、例えば、物理サーバＰＭ１〜ＰＭｍのうち、マイグレーション元の物理サーバＰＭｊを除く物理サーバである。物理サーバの稼働率は、例えば、上記式（１）を用いて得られる実総仮想ＣＰＵ数によってあらわすことができる。また、閾値βは、任意に設定可能であり、例えば、物理サーバが有する物理コア数の半分程度の値に設定される。
【０１１４】
また、マイグレーション制御部１００４は、物理サーバＰＭｊの稼働率が閾値β未満となった場合、待機サーバＳＴ上のいずれかの仮想サーバに対して、物理サーバＰＭｊへのマイグレーションを実施することにしてもよい。これにより、例えば、実総仮想ＣＰＵ数が物理コア数の５０％に満たないような物理サーバＰＭｊに対して、待機サーバＳＴ上の仮想サーバを移動して稼働率を上げることができる。
【０１１５】
また、第２の算出部１００３は、一定時間ｔ経過後の物理サーバＰＭｊ上で動作する各仮想サーバＶＭ１〜ＶＭｎの稼働率を予測することにしてもよい。ここで、仮想サーバＶＭｉの稼働率の時間変化には、周期性が現れることが多い。例えば、仮想サーバＶＭｉの使い方によっては、１日単位で周期性が現れることもあれば、１週間単位で現れることもある。
【０１１６】
そこで、第２の算出部１００３は、例えば、仮想サーバＶＭｉの過去の稼働状況を参照して、仮想サーバＶＭｉの稼働率の周期的な時系列変化を特定する。仮想サーバＶＭｉの過去の稼働状況は、例えば、稼働状況ＤＢ６２０内の仮想サーバＶＭｉのＣＰＵ稼働率から特定される。そして、第２の算出部１００３は、特定した稼働率の周期的な時系列変化に基づいて、現時点から一定時間ｔ経過後の仮想サーバＶＭｉの稼働率を予測する。
【０１１７】
なお、仮想サーバの稼働率を予測する技術としては、例えば、「Ｅｎｅｒｇｙ−ａｗａｒｅ  ｓｃｈｅｄｕｌｉｎｇ  ｏｆ  ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅｓ  ｉｎ  ｈｅｔｅｒｏｇｅｎｅｏｕｓ  ｃｌｏｕｄ  ｃｏｍｐｕｔｉｎｇ  ｓｙｓｔｅｍｓ：Ｆｕｔｕｒｅ  Ｇｅｎｅｒａｔｉｏｎ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ，ｖｏｌ  ７４．２０１７」、「Ｓｅｒｖｉｃｅ  Ｃｌｕｓｔｅｒｉｎｇ  ｆｏｒ  Ａｕｔｏｎｏｍｉｃ  Ｃｌｏｕｄｓ  Ｕｓｉｎｇ  Ｒａｎｄｏｍ  Ｆｏｒｅｓｔ：ＣＣＧｒｉｄ２０１５」、「Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｃｏｎｓｏｌｉｄａｔｉｏｎ  ｗｉｔｈ  Ｍｕｌｔｉｐｌｅ  Ｕｓａｇｅ  Ｐｒｅｄｉｃｔｉｏｎ  ｆｏｒ  Ｅｎｅｒｇｙ−Ｅｆｆｉｃｉｅｎｔ  Ｃｌｏｕｄ  Ｄａｔａ  Ｃｅｎｔｅｒｓ：ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｓｅｒｖｉｃｅｓ  Ｃｏｍｐｕｔｉｎｇ，２０１７」などを参照することができる。
【０１１８】
つぎに、第２の算出部１００３は、予測した各仮想サーバＶＭ１〜ＶＭｎの稼働率に基づいて、一定時間ｔ経過後の物理サーバＰＭｊの負荷状態に関する第３指標値を算出することにしてもよい。第３指標値は、例えば、上記式（１）を用いて得られる一定時間ｔ経過後の実総仮想ＣＰＵ数である。
【０１１９】
また、マイグレーション制御部１００４は、算出された第３指標値が閾値γを超えたか否かを判断することにしてもよい。ここで、第３指標値は、例えば、一定時間ｔ経過後の実総仮想ＣＰＵ数である。閾値γは、任意に設定可能であり、例えば、物理サーバＰＭｊが有する物理コアの数に設定される。一定時間ｔ経過後の実総仮想ＣＰＵ数が、物理サーバＰＭｊが有する物理コアの数を超えるということは、一定時間ｔ経過後にＣＰＵ不足による待ち時間が生じて、物理サーバＰＭｊ上で動作する仮想サーバＶＭｉの性能が低下することを意味する。
【０１２０】
そこで、マイグレーション制御部１００４は、算出された第２指標値が物理サーバＰＭｊの負荷閾値Ｌｊを超え、かつ、算出された第３指標値が閾値γを超えた場合に、特定の仮想サーバ以外の仮想サーバＶＭｉに対して、他の物理サーバへのマイグレーションを実施することにしてもよい。
【０１２１】
これにより、現在の物理サーバＰＭｊが、これ以上負荷がかかると特定の仮想サーバの性能劣化率が閾値αを超えてしまう状態であり、かつ、一定時間ｔ経過後に負荷が上昇して性能劣化が起こると予測された場合に、マイグレーションを実施することができる。
【０１２２】
また、算出された第３指標値が、限界値を超えている場合がある。ここで、限界値とは、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた複数の状態のうち、特定の仮想サーバの性能劣化率が閾値αを超えたときの状態における物理サーバＰＭｊの負荷状態に関する指標値である。図２に示した例では、限界値は、状態３における物理サーバＰＭ１の負荷状態に関する指標値に相当する。
【０１２３】
そこで、マイグレーション制御部１００４は、算出された第３指標値が限界値を超えている場合には、特定の仮想サーバ以外の仮想サーバＶＭｉに対して他の物理サーバへのマイグレーションを実施することにしてもよい。これにより、一定時間ｔ経過後に特定の仮想サーバの性能劣化率が閾値αを超えると予測された場合に、マイグレーションを実施することができる。
【０１２４】
（マイグレーションシステム６００の動作例）
つぎに、マイグレーションシステム６００の動作例について説明する。ここでは、物理サーバＰＭｊ上にマイグレーション対象から除外する仮想サーバが複数存在する場合を想定する。
【０１２５】
図１２および図１３は、仮想サーバの稼働状況の予測例を示す説明図である。図１２において、状態Ｘは、図８に示した稼働状況情報８００−１〜８００−１０から特定される、物理サーバＰＭ１上で動作している仮想サーバＶＭ１〜ＶＭ１０の稼働状況を示す。
【０１２６】
ここで、物理サーバＰＭ１の物理コア数は「１６」である（図９参照）。また、物理サーバＰＭ１上の仮想サーバＶＭ１〜ＶＭ１０に割り当てられたｖＣＰＵ数の合計（仮想ＣＰＵの総数）は、「２０」である。このため、物理サーバＰＭ１は、オーバーコミット状態である。
【０１２７】
また、状態Ｘにおける物理サーバＰＭ１の負荷状態に関する第２指標値を、上記式（１）を用いて得られる実総仮想ＣＰＵ数とする。この場合、第２指標値は、「１０．８」となる。このため、状態Ｘでは、オーバーコミット状態ではあるものの、「実総仮想ＣＰＵ数（１０．８）＜物理コア数（１６）」となっており、ＣＰＵ不足による性能劣化は生じていない。
【０１２８】
ただし、ここでは、第２指標値「１０．８」は、物理サーバＰＭ１の負荷閾値Ｌ１（第１指標値）を超えているとする。すなわち、物理サーバＰＭ１は、これ以上負荷がかかると、フラグ「１」の仮想サーバＶＭ１，ＶＭ６の性能劣化率が閾値αを超えてしまう状態であるといえる。
【０１２９】
また、ここでは、ＣＰＵ不足による性能劣化を判断するにあたり、物理サーバＰＭ１の物理コア数「１６」から、フラグ「１」の仮想サーバＶＭ１，ＶＭ６のｖＣＰＵ数の合計「４」を減算した「対象総ｖＣＰＵ数」という指標を導入する。ここでは、対象総ｖＣＰＵ数は、「１２」となる。
【０１３０】
図１３において、状態Ｙは、状態Ｘの１０分後の仮想サーバＶＭ１〜ＶＭ１０の稼働率（ＣＰＵ稼働率）の予測結果を示す。ここで、状態Ｙにおける物理サーバＰＭ１の負荷状態に関する第３指標値を、上記式（１）を用いて得られる実総仮想ＣＰＵ数から、フラグ「１」の仮想サーバＶＭ１，ＶＭ６のｎＶＭ値を引いた値とする。
【０１３１】
この場合、第３指標値は、「１２．８（＝１６．６−（２＋１．８））」となる。この第３指標値が対象総ｖＣＰＵ数を超えていれば、状態Ｘの１０分後の状態Ｙにおいて性能劣化が生じると予測される。ここでは、「第３指標値（１２．８）＞対象総ｖＣＰＵ数（１２）」となっているため、状態Ｘの１０分後の状態Ｙにおいて性能劣化が生じると予測される。
【０１３２】
これらのことから、物理サーバＰＭ１は、状態Ｘにおいて、これ以上負荷がかかるとフラグ「１」の仮想サーバＶＭ１，ＶＭ６の性能劣化率が閾値αを超えてしまう状態であり、かつ、１０分後に負荷が上昇して性能劣化が起こると予測される状態である。この場合、情報処理装置１０１は、物理サーバＰＭ１上の仮想サーバＶＭ１，ＶＭ６以外の仮想サーバに対して、他の物理サーバへのマイグレーションを実施する。
【０１３３】
図１４は、仮想サーバのマイグレーション例を示す説明図である。ここでは、物理サーバＰＭ１のオーバーコミット状態を解消するように、物理サーバＰＭ１上の仮想サーバＶＭ１，ＶＭ６以外の仮想サーバＶＭ８〜ＶＭ１０に対して、待機サーバＳＴへのマイグレーションを実施した場合を想定する。
【０１３４】
この場合、物理サーバＰＭ１のオーバーコミット状態が解消される。このため、マイグレーション後において、たとえ物理サーバＰＭ１の負荷閾値Ｌ１（第１指標値）を第２指標値が超えているとしても、今後すぐに仮想サーバＶＭ１，ＶＭ６の性能劣化率が閾値αを超えるような状態は回避できているといえる。
【０１３５】
（情報処理装置１０１のマイグレーション管理処理手順）
つぎに、情報処理装置１０１のマイグレーション管理処理手順について説明する。情報処理装置１０１のマイグレーション管理処理は、例えば、物理サーバＰＭ１〜ＰＭｍに含まれる物理サーバＰＭｊごとに実行される。
【０１３６】
図１５は、情報処理装置１０１のマイグレーション管理処理手順の一例を示すフローチャートである。図１５のフローチャートにおいて、まず、情報処理装置１０１は、物理サーバＰＭｊのホスト情報を取得する（ステップＳ１５０１）。つぎに、情報処理装置１０１は、物理サーバＰＭｊの負荷閾値Ｌｊを決定する閾値決定処理を実行する（ステップＳ１５０２）。
【０１３７】
なお、閾値決定処理の具体的な処理手順については、図１６を用いて後述する。また、ステップＳ１５０２の閾値決定処理の実行が完了すると、情報処理装置１０１は、例えば、物理サーバＰＭｊでの全仮想サーバの実行を一旦終了させて、運用開始待ちとなる。
【０１３８】
つぎに、情報処理装置１０１は、物理サーバＰＭｊの運用開始指示があったか否かを判断する（ステップＳ１５０３）。なお、物理サーバＰＭｊの運用開始指示は、例えば、マイグレーションシステム６００の管理者により行われる。ここで、情報処理装置１０１は、物理サーバＰＭｊの運用開始指示を待つ（ステップＳ１５０３：Ｎｏ）。
【０１３９】
そして、情報処理装置１０１は、物理サーバＰＭｊの運用開始指示があった場合（ステップＳ１５０３：Ｙｅｓ）、物理サーバＰＭｊ上に仮想サーバＶＭ１〜ＶＭｎを起動して、仮想サーバＶＭ１〜ＶＭｎの運用を開始する（ステップＳ１５０４）。つぎに、情報処理装置１０１は、物理サーバＰＭｊから、物理サーバＰＭｊで動作する各仮想サーバＶＭｉの仮想サーバ情報を取得する（ステップＳ１５０５）。
【０１４０】
そして、情報処理装置１０１は、取得した各仮想サーバＶＭｉの仮想サーバ情報に基づいて、物理サーバＰＭｊがオーバーコミット状態であるか否かを判断する（ステップＳ１５０６）。ここで、オーバーコミット状態ではない場合（ステップＳ１５０６：Ｎｏ）、情報処理装置１０１は、ステップＳ１５０５に戻る。この際、情報処理装置１０１は、一定時間（例えば、５分）待って、ステップＳ１５０５に戻ることにしてもよい。
【０１４１】
一方、オーバーコミット状態の場合（ステップＳ１５０６：Ｙｅｓ）、情報処理装置１０１は、取得した各仮想サーバＶＭｉの仮想サーバ情報に基づいて、物理サーバＰＭｊの負荷状態に関する負荷指標値を算出する（ステップＳ１５０７）。算出される負荷指標値は、上述した「第２指標値」に相当する。
【０１４２】
そして、情報処理装置１０１は、算出した物理サーバＰＭｊの負荷指標値が、決定された物理サーバＰＭｊの負荷閾値Ｌｊを超えたか否かを判断する（ステップＳ１５０８）。ここで、負荷指標値が負荷閾値Ｌｊを超えていない場合（ステップＳ１５０８：Ｎｏ）、情報処理装置１０１は、ステップＳ１５０５に戻る。この際、情報処理装置１０１は、一定時間待って、ステップＳ１５０５に戻ることにしてもよい。
【０１４３】
一方、負荷指標値が負荷閾値Ｌｊを超えた場合（ステップＳ１５０８：Ｙｅｓ）、情報処理装置１０１は、取得した各仮想サーバＶＭｉの仮想サーバ情報に基づいて、フラグ「０」の仮想サーバＶＭｉを選択する（ステップＳ１５０９）。そして、情報処理装置１０１は、選択した仮想サーバＶＭｉに対して他の物理サーバへのマイグレーションを実施して（ステップＳ１５１０）、ステップＳ１５０５に戻る。
【０１４４】
これにより、特定の仮想サーバが許容できない程度まで性能劣化する前のタイミングで、特定の仮想サーバ以外の仮想サーバを他の物理サーバへマイグレーションして、特定の仮想サーバの性能劣化を抑制することができる。
【０１４５】
つぎに、図１６を用いて、図１５に示したステップＳ１５０２の閾値決定処理の具体的な処理手順について説明する。
【０１４６】
図１６は、閾値決定処理の具体的処理手順の一例を示すフローチャートである。図１６のフローチャートにおいて、まず、情報処理装置１０１は、取得した物理サーバＰＭｊのホスト情報に基づいて、物理サーバＰＭｊ上に仮想サーバＶＭ１〜ＶＭｎを起動する（ステップＳ１６０１）。
【０１４７】
つぎに、情報処理装置１０１は、物理サーバＰＭｊ上の仮想サーバＶＭ１〜ＶＭｎのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の特定の仮想サーバの性能値を測定する（ステップＳ１６０２）。特定の仮想サーバは、マイグレーション対象から除外する仮想サーバである。
【０１４８】
つぎに、情報処理装置１０１は、特定の仮想サーバの絶対性能を測定する（ステップＳ１６０３）。特定の仮想サーバの絶対性能は、物理サーバＰＭｊにおいて、特定の仮想サーバを唯一起動させ、または、他の仮想サーバを全てアイドル状態にして測定される。そして、情報処理装置１０１は、測定した特定の仮想サーバの絶対性能に対する、測定した特定の仮想サーバの性能値の割合を算出することにより、特定の仮想サーバの性能劣化率を特定する（ステップＳ１６０４）。
【０１４９】
つぎに、情報処理装置１０１は、特定した特定の仮想サーバの性能劣化率を参照して、特定の仮想サーバの性能劣化率が閾値αを超える前の物理サーバＰＭｊの負荷状態に関する第１指標値を算出する（ステップＳ１６０５）。そして、情報処理装置１０１は、算出した第１指標値を、物理サーバＰＭｊの負荷閾値Ｌｊに決定して（ステップＳ１６０６）、閾値決定処理を呼び出したステップに戻る。
【０１５０】
これにより、物理サーバＰＭｊにこれ以上負荷がかかると、特定の仮想サーバの性能劣化率が閾値αを超えてしまうときの物理サーバＰＭｊの負荷状態をあらわす指標値を、物理サーバＰＭｊの負荷閾値Ｌｊに決定することができる。
【０１５１】
以上説明したように、実施の形態にかかる情報処理装置１０１によれば、物理サーバＰＭｊ上で動作する仮想サーバＶＭ１〜ＶＭｎのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の特定の仮想サーバの性能劣化率を参照して、各仮想サーバＶＭｉに割り当てられた仮想ＣＰＵの数と仮想ＣＰＵの稼働率とに基づいて、特定の仮想サーバの性能劣化率が閾値αを超える前の物理サーバＰＭｊの負荷状態に関する第１指標値（負荷閾値Ｌｊ）を算出することができる。また、情報処理装置１０１によれば、物理サーバＰＭｊ上で特定の仮想サーバを起動中に、物理サーバＰＭｊの負荷状態に関する第２指標値を算出することができる。第２指標値の算出は、物理サーバＰＭｊ上で特定の仮想サーバを起動中に随時（例えば、５分間隔）行われる。そして、情報処理装置１０１によれば、算出した第２指標値が第１指標値を超えた場合に、物理サーバＰＭｊ上で動作する仮想サーバＶＭ１〜ＶＭｎのうち、特定の仮想サーバ以外の仮想サーバＶＭｉに対して他の物理サーバへのマイグレーションを実施することができる。
【０１５２】
これにより、特定の仮想サーバが許容できない程度まで性能劣化する前のタイミングで、特定の仮想サーバ以外の仮想サーバを他の物理サーバへマイグレーションして、特定の仮想サーバの性能劣化を抑制することができる。また、物理サーバ間のマイグレーションによる負荷分散により全体最適化を図ることができる。
【０１５３】
また、情報処理装置１０１によれば、物理サーバＰＭｊ上の特定の仮想サーバ以外の仮想サーバＶＭｉに対して、マイグレーション先として予め準備された待機サーバＳＴへのマイグレーションを実施することができる。これにより、マイグレーション先となる物理サーバの選定にかかる処理負荷や処理時間を軽減して、マイグレーションによる負荷分散を円滑に行うことができる。
【０１５４】
また、情報処理装置１０１によれば、物理サーバＰＭｊの稼働率が閾値β未満となった場合、待機サーバＳＴ上のいずれかの仮想サーバに対して、物理サーバＰＭｊへのマイグレーションを実施することができる。これにより、例えば、実総仮想ＣＰＵ数が物理コア数の５０％に満たないような物理サーバＰＭｊに対して、待機サーバＳＴ上の仮想サーバを移動して稼働率を上げることができる。
【０１５５】
また、情報処理装置１０１によれば、物理サーバＰＭｊ上の特定の仮想サーバ以外の仮想サーバＶＭｉに対して、マイグレーション先候補となる物理サーバＰＭ１〜ＰＭｍ（物理サーバＰＭｊは除く）のうち、稼働率が閾値β未満の物理サーバＰＭｋへのマイグレーションを実施することができる。これにより、物理サーバＰＭ１〜ＰＭｍの物理サーバ間で負荷の平準化を図ることができる。
【０１５６】
また、情報処理装置１０１によれば、物理サーバＰＭｊ上で動作する各仮想サーバＶＭｉの過去の稼働状況を参照して、一定時間ｔ経過後の各仮想サーバＶＭｉの稼働率を予測し、予測した一定時間ｔ経過後の各仮想サーバＶＭｉの稼働率に基づいて、一定時間ｔ経過後の物理サーバＰＭｊの負荷状態に関する第３指標値（例えば、実総仮想ＣＰＵ数）を算出することができる。そして、情報処理装置１０１によれば、算出した第２指標値が第１指標値（負荷閾値Ｌｊ）を超え、かつ、算出した第３指標値が閾値γ（例えば、物理コア数）を超えた場合に、特定の仮想サーバ以外の仮想サーバＶＭｉに対してマイグレーションを実施することができる。
【０１５７】
これにより、現在の物理サーバＰＭｊが、これ以上負荷がかかると特定の仮想サーバの性能劣化率が閾値αを超えてしまう状態であり、かつ、一定時間ｔ経過後に負荷が上昇して性能劣化が起こると予測された場合に、マイグレーションを実施することができる。
【０１５８】
これらのことから、実施の形態にかかるマイグレーションシステム６００によれば、マイグレーションによる負荷分散を行うにあたり、運用者や使用者の都合等に応じて特定の仮想サーバをマイグレーション対象から除外して、特定の仮想サーバの性能劣化を抑制することができる。
【０１５９】
なお、本実施の形態で説明したマイグレーション方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本マイグレーション管理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本マイグレーション管理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１６０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６１】
（付記１）物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の前記特定の仮想サーバの性能劣化率を参照して、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記特定の仮想サーバの性能劣化率が閾値を超える前の前記物理サーバの負荷状態に関する第１指標値を算出し、
前記物理サーバ上で前記特定の仮想サーバを起動中に、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記物理サーバの負荷状態に関する第２指標値を算出し、
算出した前記第２指標値が、算出した前記第１指標値を超えた場合に、前記物理サーバ上で動作する仮想サーバのうち、前記特定の仮想サーバ以外の仮想サーバに対して他の物理サーバへのマイグレーションを実施する、
処理をコンピュータに実行させることを特徴とするマイグレーション管理プログラム。
【０１６２】
（付記２）前記他の物理サーバは、マイグレーション先として予め準備された専用の物理サーバである、ことを特徴とする付記１に記載のマイグレーション管理プログラム。
【０１６３】
（付記３）前記物理サーバの稼働率が閾値未満となった場合、前記他の物理サーバ上のいずれかの仮想サーバに対して前記物理サーバへのマイグレーションを実施する、
処理を前記コンピュータに実行させることを特徴とする付記２に記載のマイグレーション管理プログラム。
【０１６４】
（付記４）前記他の物理サーバは、マイグレーション先候補となる複数の物理サーバのうち、稼働率が閾値未満の物理サーバである、ことを特徴とする付記１または２に記載のマイグレーション管理プログラム。
【０１６５】
（付記５）前記物理サーバ上で動作する各仮想サーバの過去の稼働状況を参照して、一定時間経過後の前記各仮想サーバの稼働率を予測し、
予測した前記一定時間経過後の前記各仮想サーバの稼働率に基づいて、前記一定時間経過後の前記物理サーバの負荷状態に関する第３指標値を算出する、
処理を前記コンピュータに実行させ、
前記マイグレーションを実施する処理は、
算出した前記第２指標値が前記第１指標値を超え、かつ、算出した前記第３指標値が閾値を超えた場合に、前記マイグレーションを実施する、ことを特徴とする付記１〜４のいずれか一つに記載のマイグレーション管理プログラム。
【０１６６】
（付記６）前記物理サーバは、前記物理サーバ上で動作する仮想サーバに割り当てられた仮想ＣＰＵの総数が、前記物理サーバが有する物理コアの数を上回る状態である、ことを特徴とする付記１〜５のいずれか一つに記載のマイグレーション管理プログラム。
【０１６７】
（付記７）前記特定の仮想サーバの性能劣化率が閾値を超える前の前記物理サーバの負荷状態は、前記特定の仮想サーバ以外の仮想サーバの稼働率を段階的に上昇させた複数の状態のうち、前記特定の仮想サーバの性能劣化率が前記閾値を超える直前の状態における前記物理サーバの負荷状態である、ことを特徴とする付記１〜６のいずれか一つに記載のマイグレーション管理プログラム。
【０１６８】
（付記８）前記第２指標値を算出する処理は、
前記物理サーバ上で前記特定の仮想サーバを起動中に、前記物理サーバの負荷状態に関する第２指標値を随時算出する、ことを特徴とする付記１〜７のいずれか一つに記載のマイグレーション管理プログラム。
【０１６９】
（付記９）物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の前記特定の仮想サーバの性能劣化率を参照して、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記特定の仮想サーバの性能劣化率が閾値を超える前の前記物理サーバの負荷状態に関する第１指標値を算出し、
前記物理サーバ上で前記特定の仮想サーバを起動中に、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記物理サーバの負荷状態に関する第２指標値を算出し、
算出した前記第２指標値が、算出した前記第１指標値を超えた場合に、前記物理サーバ上で動作する仮想サーバのうち、前記特定の仮想サーバ以外の仮想サーバに対して他の物理サーバへのマイグレーションを実施する、
処理をコンピュータが実行することを特徴とするマイグレーション方法。
【０１７０】
（付記１０）物理サーバ上で動作する仮想サーバのうち、特定の仮想サーバ以外の仮想サーバの稼働率を段階的に変化させた際の前記特定の仮想サーバの性能劣化率を参照して、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記特定の仮想サーバの性能劣化率が閾値を超える前の前記物理サーバの負荷状態に関する第１指標値を算出する第１の算出部と、
前記物理サーバ上で前記特定の仮想サーバを起動中に、前記物理サーバ上で動作する各仮想サーバに割り当てられた仮想ＣＰＵの数と前記仮想ＣＰＵの稼働率とに基づいて、前記物理サーバの負荷状態に関する第２指標値を算出する第２の算出部と、
前記第２の算出部によって算出された前記第２指標値が、前記第１の算出部によって算出された前記第１指標値を超えた場合に、前記物理サーバ上で動作する仮想サーバのうち、前記特定の仮想サーバ以外の仮想サーバに対して他の物理サーバへのマイグレーションを実施するマイグレーション制御部と、
を含むことを特徴とするマイグレーションシステム。
【符号の説明】
【０１７１】
１０１  情報処理装置
２００，４００  実験結果
３０１，３０２，５０１，５０２  グラフ
６００  マイグレーションシステム
６１０  ネットワーク
６２０  稼働状況ＤＢ
６３０  ホスト情報ＤＢ
７００  バス
７０１  ＣＰＵ
７０２  メモリ
７０３  Ｉ／Ｆ
７０４  ディスクドライブ
７０５  ディスク
１００１  取得部
１００２  第１の算出部
１００３  第２の算出部
１００４  マイグレーション制御部
１１００  負荷閾値テーブル
【図１】
2020008964.tif 000003
【図２】
2020008964.tif 000004
【図３】
2020008964.tif 000005
【図４】
2020008964.tif 000006
【図５】
2020008964.tif 000007
【図６】
2020008964.tif 000008
【図７】
2020008964.tif 000009
【図８】
2020008964.tif 000010
【図９】
2020008964.tif 000011
【図１０】
2020008964.tif 000012
【図１１】
2020008964.tif 000013
【図１２】
2020008964.tif 000014
【図１３】
2020008964.tif 000015
【図１４】
2020008964.tif 000016
【図１５】
2020008964.tif 000017
【図１６】
2020008964.tif 000018