(57)【要約】ネットワーク（４）を介して複数のサーバ装置（３）に接続された仮想マシン管理装置（１）は、管理端末（２）からの要求に従って、新規の仮想マシンをサーバ装置（３）に生成する。その際、仮想マシン管理装置（１）は、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置（３）に配置される適切度を示すスコアを記憶する配置規則表（１６）を参照して、新規の仮想マシンを配置可能な１以上のサーバ装置について、新規の仮想マシンを当該サーバ装置に配置する適切度を示す指標値を計算し、該計算した指標値を参照して新規の仮想マシンの配置先を決定する。
2007136021.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク（４）を介して複数のサーバ装置（３）に接続された仮想マシン管理装置（１）であって、
仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを記憶する配置規則表（１６）と、
新規の仮想マシンを配置可能な１以上のサーバ装置を選択し、該選択したサーバ装置について新規の仮想マシンを配置する場合における指標値を前記スコアを用いて計算し、該計算した指標値を参照して新規の仮想マシンの配置先を決定する仮想マシン配置決定手段（１３）と、
を備えることを特徴とする仮想マシン管理装置。
【請求項２】
前記仮想マシン配置決定手段（１３）は、新規の仮想マシンを配置可能なサーバ装置として、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置を選択することを特徴とする、請求の範囲第１項に記載の仮想マシン管理装置。
【請求項３】
前記仮想マシン配置決定手段（１３）から呼び出されることにより、サーバ装置（３）上の既存の仮想マシン（３３）を他のサーバ装置に移動させることにより、新規の仮想マシンを配置可能なサーバ装置を生成する仮想マシン移動決定手段（１４）を備えることを特徴とする、請求の範囲第２項に記載の仮想マシン管理装置。
【請求項４】
前記仮想マシン移動決定手段（１４）は、新規の仮想マシンを配置可能なサーバ装置を生成できる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して仮想マシンの移動方法を決定することを特徴とする、請求の範囲第３項に記載の仮想マシン管理装置。
【請求項５】
前記仮想マシン配置決定手段（１３）は、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置が存在しない場合に前記仮想マシン移動決定手段（１４）を呼び出すことを特徴とする、請求の範囲第３項に記載の仮想マシン管理装置。
【請求項６】
新規の仮想マシンの配置とは独立に、サーバ装置上の仮想マシンを他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う移動手段（１８；１Ａ）を備えることを特徴とする、請求の範囲第１項に記載の仮想マシン管理装置。
【請求項７】
前記移動手段（１８；１Ａ）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシン（３３）の停止ごとに動作することを特徴とする、請求の範囲第６項に記載の仮想マシン管理装置。
【請求項８】
仮想マシンの種別ごとに、その種別の仮想マシン（３３）が配置されているサーバ装置（３）から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集するサーバ監視手段（１１）と、
該サーバ監視手段（１１）で収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する配置規則生成手段（１２）と
を備えることを特徴とする、請求の範囲第１項に記載の仮想マシン管理装置。
【請求項９】
ネットワーク（４）を介して複数のサーバ装置（３）に接続された仮想マシン管理装置（１）であって、
仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを記憶する配置規則表（１６）と、
既存の仮想マシンの移動を伴わない新規の仮想マシンの配置方法、および、既存の仮想マシンの移動を伴う新規の仮想マシンの配置方法の各候補を選択し、該選択した各候補について、当該配置方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して新規の仮想マシンの配置先を決定する仮想マシン配置・移動決定手段（１７）と、
を備えることを特徴とする仮想マシン管理装置。
【請求項１０】
新規の仮想マシンの配置とは独立に、サーバ装置（３）上の仮想マシン（３３）を他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う移動手段（１８；１Ａ）を備えることを特徴とする、請求の範囲第９項に記載の仮想マシン管理装置。
【請求項１１】
前記移動手段（１８；１Ａ）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシンの停止ごとに動作することを特徴とする、請求の範囲第１０項に記載の仮想マシン管理装置。
【請求項１２】
仮想マシンの種別ごとに、その種別の仮想マシンが配置されているサーバ装置から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集するサーバ監視手段（１１）と、
該サーバ監視手段（１１）で収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する配置規則生成手段（１２）と
を備えることを特徴とする、請求の範囲第９項に記載の仮想マシン管理装置。
【請求項１３】
ネットワーク（４）を介して複数のサーバ装置（３）に接続されたコンピュータ（１）により前記サーバ装置（３）上の仮想マシン（３３）を管理する方法であって、
前記コンピュータ（１）が、新規の仮想マシンを配置可能な１以上のサーバ装置を選択する第１のステップ（Ｓ１３１，Ｓ１３２）と、
前記コンピュータ（１）が、前記選択した各サーバ装置について、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを配置規則表（１６）から参照して、新規の仮想マシンを当該サーバ装置（３）に配置する適切度を示す指標値を計算する第２のステップ（Ｓ１３３）と、
前記コンピュータ（１）が、前記計算した指標値を参照して新規の仮想マシンの配置先を決定する第３のステップ（Ｓ１３４）と、
を含むことを特徴とする仮想マシン管理方法。
【請求項１４】
前記第１のステップ（Ｓ１３１）では、新規の仮想マシンを配置可能なサーバ装置として、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置（３）を選択することを特徴とする、請求の範囲第１３項に記載の仮想マシン管理方法。
【請求項１５】
前記第１のステップでは、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置が存在しない場合（Ｓ１３２のＮＯ）、サーバ装置（３）上の既存の仮想マシン（３３）を他のサーバ装置に移動させる（Ｓ１４１〜Ｓ１４７）ことにより、新規の仮想マシンを配置可能なサーバ装置の生成を試みる（Ｓ１３６）ことを特徴とする、請求の範囲第１１項に記載の仮想マシン管理方法。
【請求項１６】
前記第１のステップ（Ｓ１４１〜Ｓ１４７）では、新規の仮想マシンを配置可能なサーバ装置を生成できる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して仮想マシンの移動方法を決定することを特徴とする、請求の範囲第１５項に記載の仮想マシン管理方法。
【請求項１７】
前記コンピュータ（１）が、新規の仮想マシンの配置とは独立に、サーバ装置（３）上の仮想マシン（３３）を他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う第４のステップ（Ｓ１４１ｂ〜Ｓ１４７）をさらに含むことを特徴とする、請求の範囲第１３項に記載の仮想マシン管理方法。
【請求項１８】
前記第４のステップ（Ｓ１４１ｂ〜Ｓ１４７）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシン（３３）の停止ごとに開始することを特徴とする、請求の範囲第１７項に記載の仮想マシン管理方法。
【請求項１９】
前記コンピュータ（１）が、仮想マシン（３３）の種別ごとに、その種別の仮想マシンが配置されているサーバ装置（３）から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集する第５のステップ（Ｓ１１１〜Ｓ１１３）と、
前記コンピュータ（１）が、前記収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する第６のステップ（Ｓ１２１〜Ｓ１２５）と
をさらに含むことを特徴とする、請求の範囲第１３項に記載の仮想マシン管理方法。
【請求項２０】
ネットワーク（４）を介して複数のサーバ装置（３）に接続されたコンピュータ（１）により前記サーバ装置（３）上の仮想マシン（３３）を管理する方法であって、
前記コンピュータ（１）が、既存の仮想マシンの移動を伴わない新規の仮想マシンの配置方法、および、既存の仮想マシンの移動を伴う新規の仮想マシンの配置方法の各候補を選択する第１のステップ（Ｓ１７１，Ｓ１７２，Ｓ１７４〜Ｓ１７６）と、
前記コンピュータ（１）が、前記選択した各候補について、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを配置規則表（１６）から参照して、当該配置方法の適切度を示す指標値を計算する第２のステップ（Ｓ１７３，Ｓ１７７）と、
前記コンピュータ（１）が、前記計算した指標値を参照して新規の仮想マシンの配置先を決定する第３のステップ（Ｓ１７９，Ｓ１７１０）と
を含むことを特徴とする仮想マシン管理方法。
【請求項２１】
前記コンピュータ（１）が、新規の仮想マシンの配置とは独立に、サーバ装置（３）上の仮想マシン（３３）を他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う第４のステップ（Ｓ１４１ｂ〜Ｓ１４７）をさらに含むことを特徴とする、請求の範囲第２０項に記載の仮想マシン管理方法。
【請求項２２】
前記第４のステップ（Ｓ１４１ｂ〜Ｓ１４７）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシン（３３）の停止ごとに開始することを特徴とする、請求の範囲第２１項に記載の仮想マシン管理方法。
【請求項２３】
前記コンピュータ（１）が、仮想マシン（３３）の種別ごとに、その種別の仮想マシンが配置されているサーバ装置（３）から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集する第５のステップ（Ｓ１１１〜Ｓ１１３）と、
前記コンピュータ（１）が、前記収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する第６のステップ（Ｓ１２１〜Ｓ１２５）と
をさらに含むことを特徴とする、請求の範囲第２０項に記載の仮想マシン管理方法。
【請求項２４】
ネットワーク（４）を介して複数のサーバ装置（３）に接続されたコンピュータ（１）に、
新規の仮想マシンを配置可能な１以上のサーバ装置を選択する第１の処理（Ｓ１３１，Ｓ１３２）と、
前記選択した各サーバ装置について、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを配置規則表（１６）から参照して、新規の仮想マシンを当該サーバ装置に配置する適切度を示す指標値を計算する第２の処理（Ｓ１３３）と、
前記計算した指標値を参照して新規の仮想マシンの配置先を決定する第３の処理（Ｓ１３４）と
を行わせるためのプログラム。
【請求項２５】
前記第１の処理（Ｓ１３１）では、新規の仮想マシンを配置可能なサーバ装置として、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置（３）を選択することを特徴とする、請求の範囲第２４項に記載のプログラム。
【請求項２６】
前記第１の処理では、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置が存在しない場合（Ｓ１３２のＮＯ）、サーバ装置（３）上の既存の仮想マシン（３３）を他のサーバ装置に移動させる（Ｓ１４１〜Ｓ１４７）ことにより、新規の仮想マシンを配置可能なサーバ装置の生成を試みる（Ｓ１３６）ことを特徴とする、請求の範囲第２５項に記載のプログラム。
【請求項２７】
前記第１の処理（Ｓ１４１〜Ｓ１４７）では、新規の仮想マシンを配置可能なサーバ装置を生成できる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して仮想マシンの移動方法を決定することを特徴とする、請求の範囲第２６項に記載のプログラム。
【請求項２８】
前記コンピュータ（１）に、さらに、新規の仮想マシンの配置とは独立に、サーバ装置（３）上の仮想マシン（３３）を他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う第４の処理（Ｓ１４１ｂ〜Ｓ１４７）を行わせることを特徴とする、請求の範囲第２４項に記載のプログラム。
【請求項２９】
前記第４の処理（Ｓ１４１ｂ〜Ｓ１４７）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシン（３３）の停止ごとに開始することを特徴とする、請求の範囲第２８項に記載の仮想マシン管理方法。
【請求項３０】
前記コンピュータ（１）に、さらに、
仮想マシン（３３）の種別ごとに、その種別の仮想マシンが配置されているサーバ装置（３）から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集する第５の処理（Ｓ１１１〜Ｓ１１３）と、
前記収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する第６の処理（Ｓ１２１〜Ｓ１２５）と
を行わせることを特徴とする、請求の範囲第２４項に記載のプログラム。
【請求項３１】
ネットワーク（４）を介して複数のサーバ装置（３）に接続されたコンピュータ（１）に、
既存の仮想マシンの移動を伴わない新規の仮想マシンの配置方法、および、既存の仮想マシンの移動を伴う新規の仮想マシンの配置方法の各候補を選択する第１の処理（Ｓ１７１，Ｓ１７２，Ｓ１７４〜Ｓ１７６）と、
前記選択した各候補について、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを配置規則表（１６）から参照して、当該配置方法の適切度を示す指標値を計算する第２の処理（Ｓ１７３，Ｓ１７７）と、
前記計算した指標値を参照して新規の仮想マシンの配置先を決定する第３の処理（Ｓ１７９，Ｓ１７１０）と
を行わせることを特徴とするプログラム。
【請求項３２】
前記コンピュータ（１）に、さらに、新規の仮想マシンの配置とは独立に、サーバ装置（３）上の仮想マシン（３３）を他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う第４の処理（Ｓ１４１ｂ〜Ｓ１４７）を行わせることを特徴とする、請求の範囲第３１項に記載のプログラム。
【請求項３３】
前記第４の処理（Ｓ１４１ｂ〜Ｓ１４７）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシン（３３）の停止ごとに開始することを特徴とする、請求の範囲第３２項に記載の仮想マシン管理方法。
【請求項３４】
前記コンピュータ（１）に、さらに、
仮想マシン（３３）の種別ごとに、その種別の仮想マシンが配置されているサーバ装置（３）から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集する第５の処理（Ｓ１１１〜Ｓ１１３）と、
前記収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する第６の処理（Ｓ１２１〜Ｓ１２５）と
を行わせることを特徴とする、請求の範囲第３１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想マシン管理装置および仮想マシン管理方法に関し、特に仮想マシン上で動作するプログラムの負荷特性に基づいて物理マシンへの仮想マシンの配置方法を動的に決定する仮想マシン管理装置および仮想マシン管理方法に関する。
【背景技術】
【０００２】
従来、単一のサーバ装置上で複数のオペレーティングシステム（ＯＳ）を動作させることにより、１台のコンピュータを仮想的に複数台のサーバとして使うことのできる仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）技術が知られている。ここで、単一のサーバ装置とは、ワークステーションやパーソナルコンピュータ等のコンピュータを指す。この種の技術を適用した製品として、ヴイエムウェア社による「ＶＭＷａｒｅ  ＥＳＸ  Ｓｅｒｖｅｒ」、マイクロソフト社による「Ｖｉｒｔｕａｌ  Ｓｅｒｖｅｒ」、および米国ＸｅｎＳｏｕｒｃｅ社による「Ｘｅｎ」などが知られている。これらの製品では、ＶＭ生成用のコマンドを発行することにより新たな仮想マシンを、サーバ装置上に生成することができる。
また、サーバ装置がネットワークを通じて複数台接続された分散プロセッサ環境において、或るサーバ装置に生成された仮想マシンを他のサーバ装置に移動させる技術が知られている。仮想マシンの移動技術を記載した文献としては、例えば、特開平１０−２８３２１０号公報（以下、「特許文献１」と呼ぶ）がある。また、ＶＭｗａｒｅではｖＭｏｔｉｏｎ、Ｘｅｎではｍｉｇｒａｔｉｏｎとして仮想マシンの移動機能を提供している。
このようにサーバ装置が複数台に分散した環境において、仮想マシンを新たに生成する場合、従来は、特開２００５−１１５６５３号公報（以下、「特許文献２」と呼ぶ）に記載されるように、リソースに余裕のあるサーバ装置をランダムに選択する方法が採用されている。ここで、特許文献２では、リソースに余裕のあるサーバ装置が１台も存在しない場合は、仮想マシンの新規生成を断念し、エラーメッセージを表示する。また、特許文献２では、新規仮想マシンの生成とは非同期に、既存の仮想マシンの所定時間毎のパフォーマンスを示す実測データに基づいて、各仮想マシンを複数のサーバ装置の何れかで稼動させた場合の各時間における各仮想マシンのパフォーマンス値の合計が最大となる仮想マシンとサーバ装置の組合せを算出し、この算出した組合せに対して各仮想マシンの再配置を行うようにしている。
上述したように従来は、仮想マシンの新規作成時、リソースに余裕のあるサーバ装置をランダムに選択して仮想マシンを作成している。このため、以下のような課題がある。
第１の課題は、新規に生成された仮想マシンが十分な性能を発揮できず、また、既存の他の仮想マシンに悪影響を与える恐れが多いことである。その理由は、ランダムに選択したサーバ装置が、新規仮想マシンの生成に最適なサーバ装置である確率は非常に低いためである。
第２の課題は、仮想マシンの新規作成が行えない恐れが多いことである。その理由は、リソースに余裕のあるサーバ装置が１つも存在しなければ、仮想マシンの新規作成が行えないからである。
【発明の開示】
【０００３】
本発明の第１の目的は、適切なサーバ装置に仮想マシンを作成できるようにすることにある。
本発明の第２の目的は、仮想マシンの新規作成を可能な限り行えるようにすることにある。
本発明の第１の仮想マシン管理装置は、ネットワークを介して複数のサーバ装置に接続された仮想マシン管理装置であって、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを記憶する配置規則表と、新規の仮想マシンを配置可能な１以上のサーバ装置を選択し、該選択したサーバ装置について新規の仮想マシンを配置する場合における指標値を前記スコアを用いて計算し、該計算した指標値を参照して新規の仮想マシンの配置先を決定する仮想マシン配置決定手段とを備えることを特徴とする。
本発明の第２の仮想マシン管理装置は、第１の仮想マシン管理装置において、新規の仮想マシンを配置可能なサーバ装置として、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置を選択することを特徴とする。
本発明の第３の仮想マシン管理装置は、第２の仮想マシン管理装置において、前記仮想マシン配置決定手段から呼び出されることにより、サーバ装置上の既存の仮想マシンを他のサーバ装置に移動させることにより、新規の仮想マシンを配置可能なサーバ装置を生成する仮想マシン移動決定手段を備えることを特徴とする。
本発明の第４の仮想マシン管理装置は、第３の仮想マシン管理装置において、前記仮想マシン移動決定手段は、新規の仮想マシンを配置可能なサーバ装置を生成できる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して仮想マシンの移動方法を決定することを特徴とする。
本発明の第５の仮想マシン管理装置は、第３または第４の仮想マシン管理装置において、前記仮想マシン配置決定手段は、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置が存在しない場合に前記仮想マシン移動決定手段を呼び出すことを特徴とする。
本発明の第６の仮想マシン管理装置は、ネットワークを介して複数のサーバ装置に接続された仮想マシン管理装置であって、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを記憶する配置規則表と、既存の仮想マシンの移動を伴わない新規の仮想マシンの配置方法、および、既存の仮想マシンの移動を伴う新規の仮想マシンの配置方法の各候補を選択し、該選択した各候補について、当該配置方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して新規の仮想マシンの配置先を決定する仮想マシン配置・移動決定手段とを備えることを特徴とする。
本発明の第７の仮想マシン管理装置は、第１または第６の仮想マシン管理装置において、新規の仮想マシンの配置とは独立に、サーバ装置上の仮想マシンを他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う移動手段を備えることを特徴とする。
本発明の第８の仮想マシン管理装置は、第７の仮想マシン管理装置において、前記移動手段は、一定時間ごと、サーバ装置あるいは仮想マシンのリソースが予め定められた一定の条件に達するごと、または仮想マシンの停止ごとに動作することを特徴とする。
本発明の第９の仮想マシン管理装置は、第１または第６の仮想マシン管理装置において、仮想マシンの種別ごとに、その種別の仮想マシンが配置されているサーバ装置から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集するサーバ監視手段と、該サーバ監視手段で収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表に記憶する配置規則生成手段とを備えることを特徴とする。
本発明の第１の仮想マシン管理方法は、ネットワークを介して複数のサーバ装置に接続されたコンピュータにより前記サーバ装置上の仮想マシンを管理する方法であって、前記コンピュータが、新規の仮想マシンを配置可能な１以上のサーバ装置を選択する第１のステップと、前記コンピュータが、前記選択した各サーバ装置について、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを配置規則表から参照して、新規の仮想マシンを当該サーバ装置に配置する適切度を示す指標値を計算する第２のステップと、前記コンピュータが、前記計算した指標値を参照して新規の仮想マシンの配置先を決定する第３のステップとを含むことを特徴とする。
本発明の第２の仮想マシン管理方法は、第１の仮想マシン管理方法において、前記第１のステップでは、新規の仮想マシンを配置可能なサーバ装置として、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置を選択することを特徴とする。
本発明の第３の仮想マシン管理方法は、第２の仮想マシン管理方法において、前記第１のステップでは、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置が存在しない場合、サーバ装置上の既存の仮想マシンを他のサーバ装置に移動させることにより、新規の仮想マシンを配置可能なサーバ装置の生成を試みることを特徴とする。
本発明の第４の仮想マシン管理方法は、第３の仮想マシン管理方法において、前記第１のステップでは、新規の仮想マシンを配置可能なサーバ装置を生成できる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して仮想マシンの移動方法を決定することを特徴とする。
本発明の第５の仮想マシン管理方法は、ネットワークを介して複数のサーバ装置に接続されたコンピュータにより前記サーバ装置上の仮想マシンを管理する方法であって、前記コンピュータが、既存の仮想マシンの移動を伴わない新規の仮想マシンの配置方法、および、既存の仮想マシンの移動を伴う新規の仮想マシンの配置方法の各候補を選択する第１のステップと、前記コンピュータが、前記選択した各候補について、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを配置規則表から参照して、当該配置方法の適切度を示す指標値を計算する第２のステップと、前記コンピュータが、前記計算した指標値を参照して新規の仮想マシンの配置先を決定する第３のステップとを含むことを特徴とする。
本発明の第６の仮想マシン管理方法は、第１または第５の仮想マシン管理方法において、前記コンピュータが、新規の仮想マシンの配置とは独立に、サーバ装置上の仮想マシンを他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う第４のステップをさらに含むことを特徴とする。
本発明の第７の仮想マシン管理方法は、第６の仮想マシン管理方法において、前記第４のステップは、一定時間ごと、サーバ装置あるいは仮想マシンのリソースが予め定められた一定の条件に達するごと、または仮想マシンの停止ごとに開始することを特徴とする。
本発明の第８の仮想マシン管理方法は、第１または第５の仮想マシン管理方法において、前記コンピュータが、仮想マシンの種別ごとに、その種別の仮想マシンが配置されているサーバ装置から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集する第５のステップと、前記コンピュータが、前記収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表に記憶する第６のステップとをさらに含むことを特徴とする。
本発明にあっては、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを用いて、新規の仮想マシンを配置可能な１以上のサーバ装置のそれぞれについて、新規の仮想マシンを当該サーバ装置に配置する適切度を示す指標値を計算し、この計算した指標値を参照して新規の仮想マシンの配置先を決定する。これにより、リソースに余裕のあるサーバ装置をランダムに選択する場合に比べて、より適切なサーバ装置に新規の仮想マシンを配置することができる。
上記のスコアは、例えば、仮想マシンの種別ごとに、その種別の仮想マシンが配置されているサーバ装置から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集し、この収集された情報と予め定められたスコア生成規則とから作成することができる。スコア生成規則としては、例えば、リソースの競合が少ないほど、また相互の通信が多いほど、数値の大きなスコアを算出する規則が用いられる。
新規の仮想マシンを配置可能な１以上のサーバ装置の候補としては、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置にのみ限定しても良いが、既存の仮想マシンを他のサーバ装置に移動させることにより新規の仮想マシンを配置可能なサーバ装置も候補に含めれば、新規の仮想マシンの配置に成功する確率を高めることができる。このとき、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置が存在しない場合に限って、既存の仮想マシンを他のサーバ装置に移動させることにより新規の仮想マシンを配置可能なサーバ装置の生成を試みるようにすれば、新規仮想マシンの配置時における既存仮想マシンへの影響を抑えることができる。また新規の仮想マシンを配置可能な１以上のサーバ装置の候補を選択する際に、既存の仮想マシンの移動を伴わない新規の仮想マシンの配置方法、および、既存の仮想マシンの移動を伴う新規の仮想マシンの配置方法の各候補を選択することも可能である。さらに、新規の仮想マシンの配置とは独立に、サーバ装置上の仮想マシンを他のサーバ装置へ移動させるようにしても良い。
本発明によれば、新規な仮想マシンを適切なサーバ装置、すなわち、新規に生成された仮想マシンが十分に性能を発揮でき、また、既存の他の仮想マシンに悪影響を与える恐れが少ないサーバ装置に作成することができる。その理由は、新規の仮想マシンを配置可能な１以上のサーバ装置のそれぞれについて、新規の仮想マシンを当該サーバ装置に配置する適切度を示す指標値を計算し、この計算した指標値を参照して新規の仮想マシンの配置先を決定するためである。
また、新規の仮想マシンを配置可能な１以上のサーバ装置の候補として、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置以外に、既存の仮想マシンを他のサーバ装置に移動させることにより新規の仮想マシンを配置可能なサーバ装置なども含める構成にあっては、仮想マシンの新規作成に失敗する確率を低減することが可能となる。
【図面の簡単な説明】
【０００４】
図１は本発明の第１の実施の形態による仮想マシン管理装置を含む情報処理システムのブロック図である。
図２は本発明の第１の実施の形態による情報処理システムにおけるサーバ装置の内部構成を示すブロック図である。
図３は本発明の第１の実施の形態による仮想マシン管理装置におけるサーバ監視手段の動作手順を示すフローチャートである。
図４は本発明の第１の実施の形態による仮想マシン管理装置における資源情報ＤＢに格納されるサーバ装置情報の一例を示す図である。
図５は本発明の第１の実施の形態による仮想マシン管理装置における資源情報ＤＢに格納される仮想マシン情報の一例を示す図である。
図６は本発明の第１の実施の形態による仮想マシン管理装置における資源情報ＤＢに格納されるサービス情報の一例を示す図である。
図７は本発明の第１の実施の形態による仮想マシン管理装置におけるＶＭ配置規則生成手段の動作手順を示すフローチャートである。
図８は本発明の第１の実施の形態による仮想マシン管理装置における配置規則表に格納される情報の一例を示す図である。
図９は本発明の第１の実施の形態による仮想マシン管理装置におけるＶＭ配置決定手段の動作手順を示すフローチャートである。
図１０は本発明の第１の実施の形態による仮想マシン管理装置におけるＶＭ移動決定手段の動作手順を示すフローチャートである。
図１１は本発明の第１の実施の形態による仮想マシン管理装置におけるＶＭ移動決定手段による可能な移動方法の判別方法を説明するための図である。
図１２は本発明の第１の実施の形態による仮想マシン管理装置におけるＶＭ移動決定手段によるスコア差分計算の例を示すための図である。
図１３は本発明の第２の実施の形態による仮想マシン管理装置を含む情報処理システムのブロック図である。
図１４は本発明の第２の実施の形態による仮想マシン管理装置におけるＶＭ配置・移動決定手段の動作手順を示すフローチャートである。
図１５は本発明の第２の実施の形態による仮想マシン管理装置におけるＶＭ配置・移動決定手段が実行する、既存ＶＭの移動を伴わない新規ＶＭの配置方法とそのスコア計算の詳細な動作手順を示すフローチャートである。
図１６は本発明の第２の実施の形態による仮想マシン管理装置におけるＶＭ配置・移動決定手段が実行する、既存ＶＭの移動を伴う新規ＶＭの配置方法とそのスコア計算の詳細な動作手順を示すフローチャートである。
図１７は本発明の第２の実施の形態による仮想マシン管理装置におけるＶＭ配置・移動決定手段が実行する、既存ＶＭの移動を伴う新規ＶＭの配置方法の具体例を示す図である。
図１８は本発明の第３の実施の形態による仮想マシン管理装置を含む情報処理システムのブロック図である。
図１９は本発明の第３の実施の形態による仮想マシン管理装置におけるＶＭ定期移動決定手段の動作手順を示すフローチャートである。
図２０は本発明の第４の実施の形態による仮想マシン管理装置のブロック図である。
図２１は本発明の第４の実施の形態による仮想マシン管理装置におけるＶＭ停止手段の動作手順を示すフローチャートである。
【発明を実施するための最良の形態】
【０００５】
次に、本発明を実施するための最良の形態について、図面を参照して詳細に説明する。
図１を参照すると、本発明の第１の実施の形態に係る情報処理システムは、仮想マシン管理装置１と、管理端末２と、複数のサーバ装置３と、ネットワーク４とから構成される。
仮想マシン管理装置１は、プログラム制御により動作するコンピュータであり、サーバ監視手段１１と、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）配置規則生成手段１２と、ＶＭ配置決定手段１３と、ＶＭ移動決定手段１４と、資源情報ＤＢ（Ｄａｔａｂａｓｅ）１５と、配置規則表１６とから構成される。
サーバ監視手段１１は、各サーバ装置３中のサーバエージェント（後述）を介して、管理対象の情報処理システムを構成する各サーバ装置３、仮想マシン、サービスの稼動状況を取得し、その内容を資源情報ＤＢ１５に格納する手段である。ここで、各仮想マシン上では、１つまたは複数のアプリケーションソフトウェアが稼動する。単一の仮想マシン上で動作するアプリケーションソフトウェア群を総称して、サービス（Ｓｅｒｖｉｃｅ）と呼ぶ。各サービスは名前により区別される。複数の仮想マシン上で同一のサービスが稼動することもある。このように、各仮想マシンとその上で稼動するサービスとは１対１に対応する。従って、仮想マシンの配置先を決定することと、サービスの配置先を決定することとは等価である。また、仮想マシンの種別とサービスの種別とは等価である。
ＶＭ配置規則生成手段１２は、資源情報ＤＢ１５に格納された情報を元に、サービスの種類（仮想マシンの種類）の組合せ毎にその組合せのサービスの種類どうし（仮想マシンの種類どうし）が同じサーバ装置３に配置される適切度を示すスコアを生成し、その内容をＶＭ配置規則表１６に格納する手段である。
ＶＭ配置決定手段１３は、資源情報ＤＢ１５に格納されたサーバ装置情報と仮想マシン情報、およびＶＭ配置規則表１６の内容を元に、新規に生成する仮想マシンの配置先となるサーバ装置３を決定する手段である。
ＶＭ移動決定手段１４は、新規の仮想マシンを起動するのに必要な資源を確保するために、稼働中の仮想マシンを別のサーバ装置３に移動させる手段である。
管理端末２は、キーボードやマウスなどの入力装置と、ディスプレイなどの出力装置を備える端末（コンソール）である。管理端末２は、仮想マシン管理装置１に接続して、運用管理者によって入力された各種操作を仮想マシン管理装置１に送信する機能と、各種操作の実行状況と情報システムの稼動状況を仮想マシン管理装置１から受信して、出力装置に出力する機能を有する。ここで、各種操作には、新規の仮想マシンの作成と、稼働中の仮想マシンの破棄とを含む。
サーバ装置３は、プログラム制御により動作するコンピュータである。図２を参照すると、サーバ装置３は、サーバエージェント３１と、仮想マシンモニタ（Ｈｙｐｅｒｖｉｓｏｒ）３２と、複数の仮想マシン３３とから構成される。
サーバエージェント３１は、仮想マシンモニタ３２および仮想マシン３３からハードウェアとソフトウェアの稼働状況を取得する機能と、仮想マシンモニタ３２に対して仮想マシンの生成、破棄、他のサーバ装置３への移動を要求する機能を有する。
仮想マシンモニタ３２は、サーバ装置３が有するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリ（Ｍａｉｎ  Ｍｅｍｏｒｙ）などのハードウェア資源を各仮想マシン３３に配分するとともに、仮想マシン３３の生成および破棄を制御する機能を有する。
各仮想マシン３３上では、前述したように、１種類のサービス（１つまたは複数のアプリケーションソフトウェア）が稼動する。
ネットワーク４は、仮想マシン管理装置１と複数のサーバ装置３とを接続するネットワークである。図１では管理端末２はネットワーク４には接続されていないものの、管理端末２がネットワーク４を介して仮想マシン管理装置１と接続する構成でも、発明の本質は影響を受けない。
＜本実施の形態の構成の具体例＞
以下に、本実施の形態の構成の具体例を挙げる。
仮想マシン管理装置１の具体例は、イーサネット（登録商標）などのネットワーク接続手段を備えるコンピュータであって、Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘなどのＯＳが動作する。さらに、サーバ監視手段１１、ＶＭ配置規則生成手段１２、ＶＭ配置決定手段１３、ＶＭ移動決定手段１４の各手段が、ＯＳ上のソフトウェアモジュールとして動作する。資源情報ＤＢ１５および配置規則表１６には、ＯｒａｃｌｅやＤＢ２、ＭｙＳＱＬなどのＤＢ製品、あるいはメモリ上に資源情報および配置規則（スコア）の情報を格納するソフトウェアモジュールを用いる。各手段１１〜１４と資源情報ＤＢ１５および配置規則表１６との間の相互作用は、プログラミング言語における関数（ｆｕｎｃｔｉｏｎ，ｐｒｏｃｅｄｕｒｅ，ｓｕｂｒｏｕｔｉｎｅ，ｍｅｔｈｏｄ）を用いて実現される。あるいは、ＴＣＰ／ＩＰなどの通信プロトコルと、その上のＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）あるいはＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）などの通信プロトコルを組合せて実現しても良い。
管理端末２の具体例は、キーボードとマウスからなる入力装置と、液晶表示装置と、仮想マシン管理装置１との接続手段とを備える端末装置である。典型的な例は、Ｗｉｎｄｏｗｓが動作するパーソナルコンピュータ（ＰＣ）であり、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒなどのウェブ・ブラウザを通して仮想マシン管理装置１に接続する。この例では、図１のように仮想マシン管理装置１と管理端末２が直結しているが、その必要性は必ずしもなく、ネットワーク４に管理端末２が接続する形態でも良い。
サーバ装置３の具体例は、イーサネット（登録商標）などのネットワーク接続手段を備えるコンピュータであって、ＶＭｗａｒｅ  ＧＳＸ  Ｓｅｒｖｅｒ、ＶＭｗａｒｅ  ＥＳＸ  Ｓｅｒｖｅｒ、Ｘｅｎなどの仮想マシンモニタ３２と、それらの仮想マシンモニタ３２によって制御される１つ以上の仮想マシン３３が稼動する。各仮想マシン３３では、Ｗｉｎｄｏｗｓ  Ｓｅｒｖｅｒ、Ｒｅｄ  Ｈａｔ  Ｅｎｔｅｒｐｒｉｓｅ  Ｌｉｎｕｘ、Ｓｏｌａｒｉｓ、ＨＰ−ＵＸなどのＯＳが稼動する。さらに、その上で稼動するサービスとして、Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ，Ａｐａｃｈｅ  ＨＴＴＰ  Ｓｅｒｖｅｒなどのウェブ・サーバ、Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ（登録商標）Ｂｅａｎｓ（ＥＪＢ）などのアプリケーション・コンテナ、ＯｒａｃｌｅやＤＢ２、ＭｙＳＱＬなどのデータベース管理システム（ＤＢＭＳ，Ｄａｔａｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）が稼動する。
サーバ装置３におけるサーバエージェント３１の構成は、仮想マシンモニタ３２の種類に依存する。ＶＭｗａｒｅ  ＧＳＸ  Ｓｅｒｖｅｒのように、ホストＯＳ上で動作する仮想マシンモニタ３２を用いる場合、サーバエージェント３１はホストＯＳ上のソフトウェアとして動作する。一方、ＶＭｗａｒｅ  ＥＳＸ  ＳｅｒｖｅｒやＸｅｎのように、ホストＯＳを必要としない種類の仮想マシンモニタ３２を用いる場合には、仮想マシンモニタ３２中のソフトウェアモジュールとしてサーバエージェント３１を動作させるか、Ｘｅｎ  Ｄｏｍａｉｎ０などの特権仮想マシン上のプロセスとしてサーバエージェント３１を動作させる構成を取る。
ネットワーク４の具体例は、イーサネット（登録商標）によるローカルエリアネットワーク（ＬＡＮ）、およびインターネットである。
次に、フローチャートを用いて、本実施の形態の全体の動作について詳細に説明する。
＜サーバ監視手段１１の動作手順＞
図３は、仮想マシン管理装置１におけるサーバ監視手段１１の動作手順を示すフローチャートである。本手順は以下のステップから構成される。
まず、サーバ監視手段１１は、管理下の各サーバ装置３が備えるサーバエージェント３１から、各サーバ装置３、その上で動作する仮想マシン３３、およびそれらの仮想マシン３３上で稼動するサービスに関する情報を稼働状況として取得する（ステップＳ１１１）。ここで取得する稼動状況には以下の種類の情報が含まれる。
ａ）各サーバ装置３が備えるハードウェア資源など、各サーバ装置３自体に関する情報（以下、「サーバ装置情報」と呼ぶ）
ｂ）各サーバ装置３上で稼動する仮想マシン３３の名称、その仮想マシン３３が使用するハードウェア資源、およびその仮想マシン３３上で稼動するサービスの名称（以下、「仮想マシン情報」と呼ぶ）
ｃ）稼働中の各サービスについて、他のサービスとの通信履歴
次に、サーバ監視手段１１は、ステップＳ１１１で取得した稼働状況を元に、各サービスを特徴づける指標（以下、「サービス情報」と呼ぶ）を集計する（ステップＳ１１２）。サービス情報は、以下の２種類の指標から構成される。
１）負荷パターン：サービスが使用するハードウェア資源
２）通信パターン：サービスと別のサービスの間での相互作用
同一種類のサービスが複数の仮想マシン上で稼動している場合には、サーバ監視手段１１は、それらの仮想マシンについての指標の平均値を、そのサービスについての指標とする。
次に、サーバ監視手段１１は、ステップＳ１１１で取得したサーバ装置情報と仮想マシン情報、およびステップＳ１１２で集計したサービス情報を、資源情報ＤＢ１５に格納する（ステップＳ１１３）。
＜負荷パターン／通信パターンの具体例＞
以下に、ステップＳ１１２で集計する負荷パターンと通信パターンの具体例を示す。
負荷パターンの具体例は、以下の数値からなる組である。
ａ）過去一定期間（例えば５分間）における平均ＣＰＵ使用率（以下、「平均ＣＰＵ使用率」）
ｂ）過去一定期間（例えば１時間）における最大ＣＰＵ使用率（以下、「最大ＣＰＵ使用率」）
ｃ）過去一定期間（例えば５分間）における平均メモリ使用量（以下、「平均メモリ使用量」）
ｄ）過去一定期間（例えば１時間）における最大メモリ使用量（以下、「最大メモリ使用量」）
通信パターンの具体例は、過去一定期間（例えば１０分間）におけるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）セッションの回数（以下、「接続頻度」と呼ぶ。）である。
＜資源情報ＤＢに格納される情報の具体例＞
以下に、ステップＳ１１３で資源情報ＤＢ１５に格納する情報の具体例を示す。
図４は、サーバ装置情報の具体例である。この例では、管理対象のサーバ装置３はｈｏｓｔ０１，ｈｏｓｔ０２，ｈｏｓｔ０３の計３台あり、それらの各サーバ装置３についてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の種類、物理メモリ量、ホストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の各情報を示している。
図５は、仮想マシン情報の具体例である。この例では、ｖｍ０１からｖｍ０６の６つの仮想マシン３３について、その仮想マシン３３が所属するサーバ装置３のホスト名、割当ＣＰＵ使用率、割当メモリ使用量、ゲストＯＳ、その仮想マシン３３上で稼動するサービスの名称、の各情報が格納される。ここで、割当ＣＰＵ使用率と割当メモリ使用量は、その仮想マシン３３が使うことを許された最大のＣＰＵ使用率とメモリ容量を意味する。
図６は、サービス情報の具体例である。この例では、ショッピングサービス、ブログサービス（ウェブログサービス、ｂｌｏｇ／ｗｅｂｌｏｇ  ｓｅｒｖｉｃｅ）、ログ解析サービス、課金サービス、商品情報ＤＢ（Ｄａｔａｂａｓｅ）、アクセスログの６種類のサービスについて、平均／最大ＣＰＵ使用率、平均／最大メモリ使用量、接続先サービス／接続頻度の各情報が格納されている。
ここで、平均／最大ＣＰＵ使用率とは、過去の一定期間内において、そのサービスが消費したＣＰＵ使用率の平均値と最大値を指す。同様に、平均／最大メモリ使用量は、過去一定期間内における、そのサービスによるメモリ使用量の平均値と最大値を指す。接続先サービス／接続頻度とは、過去の一定期間において、そのサービスと通信を行ったサービス名と、その接続回数の平均値を指す。同一種別のサービスが複数の仮想マシン上で稼動する可能性があるために、接続頻度の値は必ずしも整数とは限らない。
＜ＶＭ配置規則生成手段１２の動作手順＞
図７は、仮想マシン管理装置１におけるＶＭ配置規則生成手段１２の動作手順を示すフローチャートである。ＶＭ配置規則生成手段１２は、管理端末２からの起動命令により、あるいはタイマによる起動によって、本手順の実行を開始する。本手順は以下のステップから構成される。
まず、ＶＭ配置規則生成手段１２は、配置規則表１６に記録済みのすべての情報を消去して、初期状態にする（ステップＳ１２１）。配置規則表１６には、２種類のサービスからなる対（同一種類のサービス同士からなる対もありうる）と、その対に割り当てるスコア（点数、優先度）が記録される。スコアは整数または実数の値を取る。この数値が大きいほど、対に含まれるサービスを優先して同一のサーバ装置３上で稼動させることを意味する。ステップＳ１２１実行直後では、配置規則表１６は空である。
次に、ＶＭ配置規則生成手段１２は、資源情報ＤＢ１５に記録されたサービス情報を読み込み、そこに含まれるサービス名のすべての可能な対からなる集合Ｓを作成する（ステップＳ１２２）。
次に、ＶＭ配置規則生成手段１２は、集合Ｓから１つのサービス対を取り出す（ステップＳ１２３）。もし集合Ｓ中のすべてのサービス対を取り出した後であれば、ＶＭ配置規則生成手段１２の動作を終了する。以降のステップでは、ここで取り出したサービス対を（ａ，ｂ）と表記する。
次に、ＶＭ配置規則生成手段１２は、資源情報ＤＢ１５に記録された、サービスａとｂについての負荷パターンおよび通信パターンを用いて、サービス対（ａ，ｂ）に割り当てるスコアを算出する（ステップＳ１２４）。ここで用いる負荷パターンと通信パターンは、サーバ監視手段１１のステップＳ１１２において抽出されたものである。
本ステップＳ１２４では、ＶＭ配置規則生成手段１２は、資源情報ＤＢ１５中のサービス情報のうち、サービスａおよびｂについての要素に対して、「スコア生成関数」と呼ぶ関数を適用することによって、スコアを算出する。スコア生成関数は、以下の性質を満たす形で定義される。
１）同一種類のハードウェア資源（例えばＣＰＵ使用率）を多く使用するサービス同士の対には、低いスコアを割り当てる。その理由は、それらの対を同じサーバ装置に配置すると、リソースの競合が頻発して所望の性能が発揮されないためである。さらに、使用する資源の絶対量が多いほど低いスコアを割り当てる。
２）サービス対の相互作用の度合いが大きいほど、そのサービス対に対して高いスコアを割り当てる。その理由は、それらの対を同じサーバ装置に配置した方が、通信コストが小さくなることと、ネットワーク４に流れる通信量が小さくなるためである。
すなわち、スコア生成関数は、リソースの競合が少ないほど、また相互の通信が多いほど、数値の大きなスコアを算出する関数である。
次に、ＶＭ配置規則生成手段１２は、ステップＳ１２３で取り出したサービス対（ａ，ｂ）と、ステップＳ１２４で算出したスコアとからなる組を、配置規則表１６に追加する（ステップＳ１２５）。このステップの後、ステップＳ１２３以降の手順を繰り返す。
図８に配置規則表１６の一例を示す。この例では、ショッピングサービス、ブログサービス、ログ解析サービス、課金サービス、商品情報ＤＢ、アクセスログの６種類のサービスの任意の２種類の組合せ毎にスコアが設定されている。
＜ＶＭ配置決定手段１３の動作手順＞
ＶＭ配置決定手段１３は、入力として新規の仮想マシン上で実行すべきサービスの情報（サービス種別、使用するハードウェア資源など）を管理端末２から受け取り、そのために必要な仮想マシン３３を最適なサーバ装置３上に生成する機能を持つ。以下では、入力として与えられるサービスの情報を指して、「仮想マシン起動要求」と呼ぶ。
図９は、仮想マシン管理装置１におけるＶＭ配置決定手段１３の動作手順を示すフローチャートである。本手順は以下のステップから構成される。
まず、ＶＭ配置決定手段１３は、資源情報ＤＢ１５に記録されたサーバ装置情報と仮想マシン情報を検索して、仮想マシン起動要求に含まれる条件を満たすサーバ装置３のリストを取得する（ステップＳ１３１）。
ここで、仮想マシン起動要求の内容と、それに対応する本ステップＳ１３１における処理の具体例を示す。例として、ＶＭ配置決定手段１３に対して、以下の内容を含む仮想マシン起動要求が渡された場合を考える。
ａ）サービス名：「ショッピングサービス」
ｂ）ＣＰＵ種別：Ｘｅｏｎ
ｃ）割当ＣＰＵ使用率：２０％
ｄ）割当メモリ使用量：２５６ＭＢ（Ｍｅｇａｂｙｔｅｓ、メガバイト）
本ステップＳ１３１で取り出すサーバ装置３は、以下の条件（１），（２）をともに満たすものである。
（１）サーバ装置情報におけるＣＰＵ種別の項目が、仮想マシン起動要求中のＣＰＵ種別（すなわちＸｅｏｎ）と一致していること。サーバ装置情報の内容が図４に示すものである場合、ｈｏｓｔ０１が該当する。
（２）空きＣＰＵ使用率および空きメモリ使用量が、仮想マシン起動要求中の割当ＣＰＵ使用率（２０％）および割当メモリ使用量（２５６ＭＢ）に等しいか、上回ること。
あるサーバ装置３の空きＣＰＵ使用率と空きメモリ使用量は、以下の式によって計算される。
空きＣＰＵ使用率＝１００−当該サーバ装置上で稼働中の仮想マシンについての割当ＣＰＵ使用率の合計
空きメモリ使用量＝当該サーバ装置の物理メモリ量−当該サーバ装置上で稼働中の仮想マシンについての割当メモリ使用量の合計
したがって、サーバ装置内容と仮想マシン情報の内容がそれぞれ図４、図５に示すものである場合、これらの数値は以下のようになる。
ｈｏｓｔ０１：
空きＣＰＵ使用率＝１００−（４０＋４０）＝２０（％）
空きメモリ使用量＝４−（１．５＋１．５）＝１（ＧＢ（Ｇｉｇａｂｙｔｅｓ、ギガバイト））ｈｏｓｔ０２：
空きＣＰＵ使用率＝１００−（４０＋５０）＝１０（％）
空きメモリ使用量＝２−（１＋１）＝０（ＧＢ）
ｈｏｓｔ０３：
空きＣＰＵ使用率＝１００−（２０＋３０）＝５０（％）
空きメモリ使用量＝８−（２＋２）＝４（ＧＢ）
ゆえに、空きＣＰＵと空きメモリ使用量に関する条件については、ｈｏｓｔ０１とｈｏｓｔ０３の２つのサーバ装置３が満たしている。第１の条件と合わせると、ｈｏｓｔ０１のみが本ステップで取り出される。
次に、ＶＭ配置決定手段１３は、ステップＳ１３１において検索結果に１つ以上の要素が含まれているかどうか、すなわちサービスを配置することが可能なサーバ装置３が存在するか否かを調べる（ステップＳ１３２）。もし配置可能なサーバ装置３があれば、ステップＳ１３３以降に進む。そうでない場合には、ＶＭ配置決定手段１３は、後述するＶＭ移動決定手段１４を適用して、既存の仮想マシン３３の移動を試みた後、ステップＳ１３６に移る。既存の仮想マシンの移動手順（ステップＳ１４１−１４７）については、後述の「ＶＭ移動決定手段１４」についての項で詳細に説明する。
ステップＳ１３６では、ＶＭ配置決定手段１３は、ＶＭ移動決定手段１４による仮想マシンの移動に成功したかどうかを確かめる。
もし移動に成功した場合には、ＶＭ配置決定手段１３は、ステップＳ１３１に戻って、仮想マシン起動要求の処理を再度試みる。移動に失敗した場合、すなわち仮想マシン起動要求の実行に必要なサーバ装置３を確保できなかった場合には、ＶＭ配置決定手段１３は、仮想マシン起動要求の実行に失敗して処理を終了する。
ステップＳ１３２において、配置可能なサーバ装置３を少なくとも１台検出した場合、ＶＭ配置決定手段１３は、以下の手順により、その中から配置先のサーバ装置３を選択する。
まず、ＶＭ配置決定手段１３は、配置規則表１６の内容を適用して、可能な配置先サーバ装置３のそれぞれについてスコアを算出する（ステップＳ１３３）。スコアの算出は、新規に起動するサービス名と、配置先候補のサーバ装置３上で稼働中の各サービスの対について、配置規則表１６に記載されたスコアの和を取ることによって行う。例えば、新規に起動するサービス名が「ショッピングサービス」であり、配置先候補のサービス装置３上で稼動中のサービスが「課金サービス」と「アクセルログ」である場合、図８を参照すると、ショッピングサービスと課金サービスの対のスコアは−１、ショッピングサービスとアクセスログの対のスコアは＋１なので、合計スコアは（−１）＋（＋１）＝０である。ここで、新規に起動するサービス名と同じサービス名のサービスが配置規則表１６に存在しなかった場合、ＶＭ配置決定手段１３は、すべての既存サービスとの組合せについて、所定のスコア（例えば−１）を付与する。
ステップＳ１３４では、ＶＭ配置決定手段１３は、ステップＳ１３３で計算されたスコアが最大になる場合のサーバ装置３を、新規サービスの配置先として選択する。例えば、合計スコアが−１と＋３の２つの配置先サーバ装置があれば、合計スコア＋３のサーバ装置を新規サービスの配置先に選択する。
次に、ＶＭ配置決定手段１３は、Ｓ１３４で選択したサーバ装置３上のサーバエージェント３１に対して、新規サービスを稼動させるための仮想マシン３３の起動を要求し、処理を終了する（ステップＳ１３５）。サーバ装置３上への新規仮想マシンの生成は、既存技術を用いて行えるため、その詳細な説明は省略する。
＜ＶＭ移動決定手段１４の動作手順＞
図１０は、仮想マシン管理装置１におけるＶＭ移動決定手段１４の動作手順を示すフローチャートである。ＶＭ移動決定手段１４を用いるのは、現在の仮想マシン配置状態では、ＶＭ配置決定手段１３が受け取った仮想マシン起動要求を実行することができない場合である（図９、ステップＳ１３２において、配置可能なサーバ装置３がない場合に相当する）。
以下、図１０のフローチャートを用いて、ＶＭ移動決定手段１４の動作手順を説明する。
まず、ＶＭ移動決定手段１４は、資源情報ＤＢ１５に格納されたサーバ装置情報の中から、仮想マシンの移動元となり得るサーバ装置３からなる集合を作成する（ステップＳ１４１）。以降では、これらのサーバ装置３の集合をＮと表記する。ここで、Ｎに含まれるサーバ装置３は、その上で少なくとも１つの仮想マシンが動作し、かつそれらを別のサーバ装置３に移動することによって、新規仮想マシンの生成に必要な資源が確保できるサーバ装置３である。例えば、サービス名：「ショッピングサービス」、ＣＰＵ種別：Ｘｅｏｎ、割当ＣＰＵ使用率：２０％、割当メモリ使用量：２５６ＭＢの仮想マシン起動要求の場合、資源情報ＤＢ１５に格納されたサーバ装置情報の中から、ＣＰＵ種別がＸｅｏｎで、かつ、物理メモリ量が２５６ＭＢ以上あるサーバ装置３が候補となる。
次に、ＶＭ移動決定手段１４は、Ｎの中に、少なくとも１台のサーバ装置３が含まれるかどうかを調べる（ステップＳ１４２）。含まれる場合にはステップＳ１４３に、含まれない場合にはＳ１４５に進む。
ステップＳ１４３では、ＶＭ移動決定手段１４は、Ｎから単一のサーバ装置３についての情報を取り出す。さらに、ＶＭ移動決定手段１４は、ここで取り出したサーバ装置３の情報を、Ｎから取り除く。
次に、ＶＭ移動決定手段１４は、Ｓ１４３で取り出したサーバ装置３上で稼動する各仮想マシン３３について、可能な移動方法のそれぞれについてのスコア差分を計算する（ステップＳ１４４）。
ここで、可能な移動方法とは、仮想マシンを移動することにより新規仮想マシンに必要な資源が確保でき、かつ移動対象となる仮想マシンに必要な資源が確保できるような移動方法（すなわち、仮想マシンとその移動先サーバ装置の対）を指す。単一の移動方法の中に、仮想マシンと移動先サーバ装置の対が複数含まれる可能性もある。すなわち、一つのサーバ装置上の複数の仮想マシンを同時に同じあるいは異なる別のサーバ装置へ移動させる場合も含まれる。可能な移動方法の具体例については後述する。
また、スコア差分とは、既存の仮想マシン移動の前後で、配置規則表１６を適用した場合のスコアの差を指す。ある移動方法についてのスコア差分が大きいほど、その移動方法は好ましいと言える。スコア差分の計算方法についての具体例は後述する。
ステップＳ１４４が終了すると、ＶＭ移動決定手段１４は、ステップＳ１４２に戻り、別のサーバ装置３を移動元とする移動方法についてのスコア差分の計算を試みる。
ステップＳ１４５では、ＶＭ移動決定手段１４は、ステップＳ１４２からＳ１４４までの手順において、可能な移動方法について少なくとも１つスコア差分を計算したかどうかを調べる。条件に当てはまる場合はステップＳ１４６に進む。それ以外の場合は仮想マシンの移動に失敗したため、ＶＭ移動決定手段１４はＶＭ移動決定手順の処理を終了する。
ステップＳ１４６では、ＶＭ移動決定手段１４は、ステップＳ１４２からＳ１４４までに計算した各移動方法について、スコア差分を最大化するものを選択する。
最後に、Ｓ１４６で選択した移動方法を実行するために、ＶＭ移動決定手段１４は、移動元のサーバ装置３上のサーバエージェント３１と、移動先のサーバ装置３上のサーバエージェント３１のそれぞれについて、仮想マシン移動を要求する（ステップＳ１４７）。或るサーバ装置３から別のサーバ装置３への仮想マシンの移動は、既存技術を用いて行えるため、その詳細な説明は省略する。
＜可能な仮想マシン移動方法の判別例＞
以下に、ステップＳ１４４において、可能な仮想マシン移動方法を判別する具体例を示す。
図１１は、ステップＳ１４３において、移動元のサーバ装置３としてサーバ装置Ａを取り出した後で、サーバ装置Ａ上の仮想マシンＶＭ１の可能な移動方法を判断する状況を示している。ここでは、仮想マシン起動要求として、起動対象のサービス（ここでは、「ブログサービス」）には割当メモリ使用量として１ＧＢ以上が必要であるという条件が含まれると仮定する。さらに、サーバ装置Ａ−Ｄはどれも１ＧＢの物理メモリを備えており、既存の仮想マシンＶＭ１−ＶＭ５にはそれぞれ０．５ＧＢの割当メモリ使用量が割当てられていると仮定する。
割当メモリ使用量のみを判断基準とすると、サーバ装置Ａ上の仮想マシンＶＭ１を、サーバ装置ＢおよびＣに移動することは可能であるが、サーバ装置Ｄに移動することはできない。その理由は、サーバ装置Ｄ上では割当メモリ使用量０．５ＧＢを占有するＶＭがすでに２つ動作中だからである。
したがって、サーバ装置Ａ上の仮想マシンＶＭ１についての可能な移動方法は、以下の２通りである。
１）移動対象：ＶＭ１、移動先：サーバ装置Ｂ
２）移動対象：ＶＭ１、移動先：サーバ装置Ｃ
以上の例では、説明の便宜上、割当メモリ使用量のみを判断基準としたが、実際には割当ＣＰＵ使用率などの他の要因を総合的に判断して、可能な仮想マシン移動方法を判別することになる。
＜スコア差分の計算例＞
以下に、ステップＳ１４４におけるスコア差分の計算方法の例を示す。
図１２は、サーバ装置ｈｏｓｔ０１上で稼動する仮想マシンｖｍ０１を、別のサーバ装置ｈｏｓｔ０２に移動する操作を示している。ｈｏｓｔ０１ではｖｍ０１，ｖｍ０２，ｖｍ０３の３つの仮想マシンが稼動しており、それらの仮想マシン上でそれぞれショッピングサービス、ブログサービス、アクセスログが動作する。また、ｈｏｓｔ０２では仮想マシンｖｍ０４が稼動しており、その上で商品情報ＤＢが動作する。
図８の配置規則表を適用すると、ｖｍ０１をｈｏｓｔ０１からｈｏｓｔ０２に移動することによるスコア差分は以下のように計算できる。
１）ショッピングサービスとブログサービスの組合せはスコア−１なので、ｖｍ０１をｈｏｓｔ０１から除去することによるスコア差分は＋１となる。
２）ショッピングサービスとアクセスログの組合せはスコア＋１なので、ｖｍ０１をｈｏｓｔ０１から除去することによるスコア差分は−１となる。
３）ショッピングサービスと商品情報ＤＢの組合せはスコア−２なので、ｖｍ０１をｈｏｓｔ０２に追加することによるスコア差分は−２となる。
以上から、ｖｍ０１の移動全体についてのスコア差分は、（＋１）＋（−１）＋（−２）＝−２となる。
＜第１の実施の形態の効果＞
次に、本実施の形態による仮想マシン管理装置の効果について説明する。
本実施の形態の仮想マシン管理装置によれば、新規な仮想マシンを適切なサーバ装置、すなわち、新規に生成された仮想マシンが十分に性能を発揮でき、また、既存の他の仮想マシンに悪影響を与える恐れが少ないサーバ装置に作成することができる。その理由は、新規な仮想マシンと同じサーバ装置上の他の既存の仮想マシンとの組合せがより適切なサーバ装置を新規な仮想マシンの配置先として選択しているためである。
また本実施の形態の仮想マシン管理装置によれば、新規仮想マシンの生成に失敗する確率を小さくすることができる。その理由は、新規作成予定の仮想マシンに必要なリソースを確保できるサーバ装置が存在しなかった場合、既存の仮想マシンの他サーバ装置への移動により新規作成予定の仮想マシンに必要なリソースを有する状態のサーバ装置の生成を試みるからである。特に本実施の形態の仮想マシン管理装置では、仮想マシンの配置の適切度の改善度合いが最も良い仮想マシンの移動方法を決定しているため、新規作成予定の仮想マシンに必要なリソースを有する状態のサーバ装置の生成と同時に、仮想マシンのより適切な再配置が可能になる効果がある。
＜第２の実施の形態＞
図１３を参照すると、本発明の第２の実施の形態に係る情報処理システムは、図１に示した第１の実施の形態に係る情報処理システムと比較して、仮想マシン管理装置１がＶＭ配置決定手段１３およびＶＭ移動決定手段１４の代わりにＶＭ配置・移動決定手段１７を備えている点で相違する。
第１の実施の形態に係る情報処理システムにおける仮想マシン管理装置では、新規仮想マシンを配置する際、まず、すべてのサーバ装置群のうち現時点でリソースに余裕のあるサーバ装置の中から新規仮想マシンの配置先の選択を試み、それが不可能である場合に、現時点ではリソースに余裕はないが既存仮想マシンを他のサーバ装置に移動させればリソースに余裕が出るサーバ装置群の中からより適切なサーバ装置を新規仮想マシンの配置先に選択していた。
これに対して、本実施の形態に係る情報処理システムにおける仮想マシン管理装置１のＶＭ配置・移動決定手段１７は、既存の仮想マシンの移動を伴わない配置方法と移動を伴う配置方法との双方を考慮し、その中から最適な配置方法を選択する。ここで、既存の仮想マシンの移動を伴わない配置方法とは、現時点でリソースに余裕のあるサーバ装置の中から新規仮想マシンの配置先を選択する方法である。他方、既存の仮想マシンの移動を伴う配置方法とは、現時点でリソースに余裕があるかどうかを問わず、既存の仮想マシンの移動を行った移動元サーバ装置あるいは移動先サーバ装置のうちリソースに余裕のあるサーバ装置の中から新規仮想マシンの配置先を選択する方法である。
以下では、第１の実施の形態の仮想マシン管理装置との相違点を中心に本実施の形態の仮想マシン管理装置の動作を説明する。
＜第２の実施の形態におけるＶＭ配置・移動決定手段１７の動作手順＞
図１４、図１５、図１６を参照して、本実施の形態における仮想マシン管理装置１のＶＭ配置・移動決定手段１７の動作手順を説明する。なお、図１４は、ＶＭ配置・移動決定手段１７の動作全体を示すフローチャートであり、図１５と図１６は、図１４におけるステップＳ１７１−Ｓ１７３およびＳ１７４−Ｓ１７７の詳細を示すフローチャートである。
まず、ＶＭ配置・移動決定手段１７は、既存の仮想マシンの移動を伴わないことを前提として、新規仮想マシンについての可能な配置先サーバ装置の候補を生成し、そのスコアを算出する（ステップＳ１７１−Ｓ１７３）。本手順は、以下の３つのステップからなる。
まず、ＶＭ配置・移動決定手段１７は、資源情報ＤＢ１５に記録されたサーバ装置情報と仮想マシン情報を検索して、仮想マシン起動要求に含まれる条件を満たすサーバ装置のリストを取得する（ステップＳ１７１）。このステップＳ１７１は、第１の実施の形態におけるＶＭ配置決定手段１３の動作手順（図９）におけるステップＳ１３１と同様である。
次に、ＶＭ配置・移動決定手段１７は、ステップＳ１７１の検索結果に１つ以上の要素が含まれているかどうかを調べる（ステップＳ１７２）。条件に該当する場合にはステップＳ１７３に進み、そうでない場合にはステップＳ１７４に進む。
ステップＳ１７３では、ＶＭ配置・移動決定手段１７は、配置規則表１６の内容を適用して、可能な配置先サーバ装置３のそれぞれについてスコアを算出する。ここでの処理は、第１の実施の形態におけるＶＭ配置決定手段１３における図９のステップＳ１３３と同様である。
次に、ＶＭ配置・移動決定手段１７は、既存の仮想マシンの移動と新規の仮想マシンの配置との組合せによる移動・配置方法の候補を生成し、そのスコアを計算する（ステップＳ１７４−Ｓ１７７）。本手順は、以下のステップから構成される。
まず、ＶＭ配置・移動決定手段１７は、資源情報ＤＢ１５に格納されたサーバ装置情報の中から、仮想マシンの移動元となり得るサーバ装置からなる集合Ｎを生成する（ステップＳ１７４）。ここでの処理は、第１の実施の形態におけるＶＭ移動決定手段１４の動作手順（図１０）におけるステップＳ１４１と同様である。
次に、ＶＭ配置・移動決定手段１７は、Ｎの中に、少なくとも１台のサーバ装置３が含まれるかどうかを調べる（ステップＳ１７５）。含まれる場合にはステップＳ１７６に進み、含まれない場合にはステップＳ１７８に進む。
ステップＳ１７６では、ＶＭ配置・移動決定手段１７は、Ｎから単一のサーバ装置３についての情報を取り出すとともに、取り出したサーバ装置３の情報をＮから取り除く（図１０のステップＳ１４３と同様）。
次に、ＶＭ配置・移動決定手段１７は、ステップＳ１７６で取り出したサーバ装置３上で稼動する各仮想マシン３３について、可能な移動・配置方法の候補を生成するとともに、そのスコアを計算する（ステップＳ１７７）。
ここで、移動・配置方法とは、既存の仮想マシンの移動と、新規の仮想マシンの配置とを組合せた操作を指す。単一の移動・配置方法は、以下の３つの要素により指定される。
ａ）移動対象の仮想マシン
ｂ）移動先のサーバ装置
ｃ）新規仮想マシンの配置先サーバ装置
移動・配置方法は、可能な移動方法を含んでいなければならない。すなわち、移動先のサーバ装置は、移動対象の仮想マシンの動作に必要な資源を備えていなければならない。さらに、新規仮想マシンの配置先サーバ装置は、新規仮想マシンの動作に必要な資源を備えていなければならない。ここで、新規仮想マシンの配置先サーバ装置は、移動対象の仮想マシンの移動元のサーバ装置である場合と、移動先のサーバ装置である場合とが考えられる。
それぞれの移動・配置方法について、以下の方法でスコアを算出する。
１）移動・配置方法に含まれる移動方法について、スコア差分を算出する。このスコア差分は、第１の実施の形態における図１０のステップＳ１４４と同様に行う。
２）移動・配置方法に含まれる新規仮想マシン配置方法について、スコアを算出する。このスコアは、第１の実施の形態における図９のステップＳ１３３と同様に行う。
３）１および２の結果の和を、移動・配置方法のスコアとする。
本ステップＳ１７７において、ＶＭ配置・移動決定手段１７は、すべての移動・配置方法について可能性を調べる代わりに、何らかのヒューリスティックを用いて調査対象を削減しても良い。ここでのヒューリスティックの一例を以下に示す。
ａ）移動対象の仮想マシンと、移動先のサーバ装置については、すべての組合せについて可能性を調べる。
ｂ）新規仮想マシンの配置先サーバ装置は、移動元のサーバ装置（すなわち、ステップＳ１７６でＮから取り出したサーバ装置）に固定する。
本ステップＳ１７７の終了後、ＶＭ配置・移動決定手段１７は、ステップＳ１７５に戻り、Ｓ１７５以降の処理を繰り返す。
ステップＳ１７４−Ｓ１７７の処理が終了した後で、ＶＭ配置・移動決定手段１７は、可能な配置方法の候補（ステップＳ１７１−Ｓ１７３で生成されたもの）、あるいは可能な移動・配置方法（ステップＳ１７４−１７７で生成されたもの）が存在するかどうかを確かめる（ステップＳ１７８）。条件に該当する場合にはＳ１７９に進み、該当しない場合には新規仮想マシンの配置に失敗したので、処理を終了する。
ステップＳ１７９では、ＶＭ配置・移動決定手段１７は、可能な仮想マシン配置方法、あるいは移動・配置方法の中から、スコアを最大化するものを選択する。ここでは、移動を伴わない配置方法と、移動・配置方法についてのスコアを直接比較する以外の比較方法を取っても良い。例えば、移動を伴わない配置方法に一定のスコアを加算することにより、移動を伴わない配置方法を優先するようにしても良い。
最後に、ＶＭ配置・移動決定手段１７は、ステップＳ１７９で選択した仮想マシン配置方法あるいは移動・配置方法を実行する（ステップＳ１７１０）。ここで、選択した操作が移動・配置方法である場合には、ＶＭ配置・移動決定手段１７は、図１０のステップＳ１４７と同様の手順により、サーバエージェント３１に対して仮想マシン３３の移動を要求する。さらに、ＶＭ配置・移動決定手段１７は、仮想マシン３３の移動の有無に関わらず、図９のステップＳ１３５と同様の手順により、サーバエージェント３１に対して仮想マシン３３の起動を要求する。
図１７に、本手順による仮想マシン移動・配置操作の具体例を示す。この図は、ｈｏｓｔ０１，ｈｏｓｔ０２，ｈｏｓｔ０３の３台のサーバ装置３からなるシステムにおいて、新規の仮想マシンｖｍ０５を配置する状況を示している。ここで、既存仮想マシンの移動元のサーバ装置３に新規仮想マシンを配置することを前提とすると、既存仮想マシンｖｍ０１の移動を含む移動・配置方法は以下の２種類である。
１）移動対象：ｖｍ０１、移動先：ｈｏｓｔ０２、新規仮想マシンの配置先：ｈｏｓｔ０１
２）移動対象：ｖｍ０１、移動先：ｈｏｓｔ０３、新規仮想マシンの配置先：ｈｏｓｔ０１
＜第２の実施の形態の効果＞
本実施の形態の仮想マシン管理装置によれば、新規な仮想マシンを適切なサーバ装置、すなわち、新規に生成された仮想マシンが十分に性能を発揮でき、また、既存の他の仮想マシンに悪影響を与える恐れが少ないサーバ装置に作成することができる。その理由は、新規な仮想マシンと同じサーバ装置上の他の既存の仮想マシンとの組合せがより適切なサーバ装置を新規な仮想マシンの配置先として選択しているためである。
また本実施の形態の仮想マシン管理装置によれば、新規仮想マシンの生成に失敗する確率を小さくすることができる。その理由は、新規作成予定の仮想マシンに必要なリソースを確保できるサーバ装置だけでなく、既存の仮想マシンの他サーバ装置への移動により新規作成予定の仮想マシンに必要なリソースを有する状態のサーバ装置も含めて、新規仮想マシンの配置先を選択しているからである。
さらに本実施の形態の仮想マシン管理装置によれば、新規に仮想マシンを配置する際に、現状において新規仮想マシンに必要な空きリソースを有するサーバ装置かどうかに関係なく、既存の仮想マシンの移動を同時に試みることにより、効率的な資源配分が可能となる。
＜第３の実施の形態＞
図１８を参照すると、本発明の第３の実施の形態に係る情報処理システムは、図１に示した第１の実施の形態に係る情報処理システムと比較して、仮想マシン管理装置１がＶＭ定期移動決定手段１８をさらに備えている点で相違する。
第１の実施の形態に係る情報処理システムの仮想マシン管理装置１では、既存の仮想マシンの再配置が行われるケースは、新規仮想マシンの配置時に限られていた。これに対して、本実施の形態に係る情報処理システムの仮想マシン管理装置１は、新規の仮想マシンの配置と独立して、ＶＭ定期移動決定手段１８により一定時間毎に既存の仮想マシンの再配置を行う。
以下では、第１の実施の形態の仮想マシン管理装置との相違点を中心に本実施の形態の仮想マシン管理装置の動作を説明する。
＜ＶＭ定期移動決定手段１８の動作手順＞
以下では、図１９のフローチャートを用いて、本実施の形態における仮想マシン管理装置１のＶＭ定期移動決定手段１８の動作手順を説明する。
ＶＭ定期移動決定手段１８は、図１９に示される処理を前回実行し終えた時刻から一定時間が経過すると、再び図１９に示される処理を開始する。
まず、ＶＭ定期移動決定手段１８は、資源情報ＤＢ１５に格納された仮想マシン情報を参照して、稼働中の全仮想マシン３３からなる集合を取得する（ステップＳ１４１ｂ）。以降では、これらの仮想マシン３３の集合をＭと表記する。
次に、ＶＭ定期移動決定手段１８は、Ｍの中に少なくとも１つの仮想マシン３３が含まれることを確認する（ステップＳ１４２ｂ）。条件に該当する場合にはステップＳ１４３ｂに進み、該当しない場合にはステップＳ１４５ｂに進む。
ステップＳ１４３ｂでは、ＶＭ定期移動決定手段１８は、Ｍから単一の仮想マシン３３についての情報を取り出す。さらに、ＶＭ定期移動決定手段１８は、ここで取り出した仮想マシン３３の情報を、Ｍから取り除く。
次に、ＶＭ定期移動決定手段１８は、ステップＳ１４３ｂで取り出した仮想マシンについて、可能な移動方法のそれぞれについてのスコア差分を計算する（ステップＳ１４４ｂ）。本ステップＳ１４４ｂにおける「可能な移動方法」とは、移動対象の仮想マシンと、移動先のサーバ装置上で稼働中のすべての仮想マシンについて、それらの仮想マシン上で動作しているサービスが使用する資源についての条件（ＣＰＵ使用率、メモリ量など）を満たす、仮想マシンと移動先サーバ装置の対を意味する。また、スコア差分の計算は、ＶＭ移動決定手段１４と同様に行う。本ステップ終了後、ステップＳ１４２ｂに戻る。
ステップＳ１４５ｂでは、ＶＭ定期移動決定手段１８は、ステップＳ１４２ｂ−Ｓ１４４ｂでスコア差分を計算した移動方法のうち、スコア差分が予め定められた閾値以上であるような移動方法が少なくとも１つあるかどうかを確認する。条件に該当する場合にはステップＳ１４６に進み、該当しない場合には、ＶＭ定期移動決定手段１８の今回の処理を終了する。ここで用いる閾値は０以上の定数であり、事前に値が決められている。
ステップＳ１４６では、ＶＭ定期移動決定手段１８は、スコア差分が予め定められた閾値以上である１以上の移動方法の中からスコア差分を最大化する移動方法を選択する。このステップＳ１４６において選択する移動方法の数は任意に設定することができる。選択方法の一例としては、あらかじめ決めておいた数の移動方法を、スコア差分の大きい順に選択する方法がある。別の選択方法としては、ステップＳ１４５ｂで用いた閾値以上のスコア差分を持つすべての移動方法を選択する方法がある。さらに別の選択方法としては、ステップＳ１４５ｂで用いた閾値以上のスコア差分を持つ移動方法の中から事前に決めた数だけ選択し、かつ別の閾値以上のスコア差分を持つすべての移動方法を選択する方法がある。
最後に、ＶＭ定期移動決定手段１８は、決定した移動元および移動先のサーバ装置３におけるサーバエージェント３１に対して、選択した移動方法の実行を要求する（ステップＳ１４７）。ステップＳ１４６およびＳ１４７の動作は、ＶＭ移動決定手段１４の動作手順（図１０）におけるＳ１４６とＳ１４７と同じである。
＜第３の実施の形態の効果＞
本実施の形態の仮想マシン管理装置によれば、第１の実施の形態の仮想マシン管理装置と同様の効果が得られるとともに、稼働中の仮想マシン３３の再配置を定期的に試みるため、仮想マシン３３への資源配分を常に最適化することができる。このことにより、各仮想マシン３３上で稼動するサービスの性能が向上する。
なお、本実施の形態の仮想マシン管理装置は以下のような変更が可能である。
ＶＭ定期移動決定手段１８は一定時間ごとに図１９に示される処理を実行するものとしたが、サーバ装置３や仮想マシン３３のリソースが予め定められた一定の条件に達した場合に、図１９に示される処理を開始するようにしても良い。
ＶＭ配置決定手段１３およびＶＭ移動決定手段１４の代わりに、第２の実施の形態におけるＶＭ配置・移動決定手段１７と同様な手段を仮想マシン管理装置１に備える構成であっても良い。
＜第４の実施の形態＞
図２０を参照すると、本発明の第４の実施の形態に係る情報処理システムは、図１に示した第１の実施の形態に係る情報処理システムと比較して、仮想マシン管理装置１がＶＭ停止手段１９および停止時ＶＭ移動決定手段１Ａをさらに備えている点で相違する。
第１の実施の形態による仮想マシン管理装置では、既存の仮想マシンの再配置が行われるケースは、新規仮想マシンの配置時に限られていた。これに対して本実施の形態による仮想マシン管理装置は、ＶＭ停止手段１９によりサーバ装置３上の仮想マシン３３が停止された時点で、停止時ＶＭ移動決定手段１Ａにより、仮想マシン３３が停止したサーバ装置３へ他のサーバ装置３上の仮想マシン３３を移動させることで再配置を行う。
以下では、第１の実施の形態の仮想マシン管理装置との相違点を中心に本実施の形態の仮想マシン管理装置の動作を説明する。
＜ＶＭ停止手段１９の動作手順＞
ＶＭ停止手段１９は、管理端末２から、停止対象の仮想マシン名を含む仮想マシン停止要求を受け取る。ＶＭ停止手段１９は、仮想マシン停止要求に従って仮想マシンを停止するとともに、停止時ＶＭ移動決定手段１Ａを呼び出して既存の仮想マシンを移動させる機能を持つ。
図２１は、本実施の形態の仮想マシン管理装置におけるＶＭ停止手段１９の動作手順を示すフローチャートである。以下に、本動作手順の詳細を説明する。
まず、ＶＭ停止手段１９は、停止対象の仮想マシン３３が稼動するサーバ装置３上のサーバエージェント３１に対して、当該仮想マシン３３の停止を要求する（ステップＳ１９１）。
次に、ＶＭ停止手段１９は、停止時ＶＭ移動決定手段１Ａを用いて、稼働中の仮想マシン３３の移動を試みる（ステップＳ１４１ｂ−Ｓ１４７）。ここでの停止時ＶＭ移動決定手段１Ａの動作は、第３の実施の形態におけるＶＭ定期移動決定手段１８の動作（図１９）と比較し、以下の点が異なる以外は同じである。
１）ステップＳ１４１ｂにおいて、移動対象の仮想マシン３３の集合Ｍには、停止対象の仮想マシン３３と同一のサーバ装置３上で動作している仮想マシン３３を含めない。
２）ステップＳ１４４ｂにおいて、可能な移動方法には、停止対象の仮想マシン３３が動作していたサーバ装置３を移動先とする移動方法のみを含める。
＜第４の実施の形態の効果＞
本実施の形態の仮想マシン管理装置によれば、第１の実施の形態の仮想マシン管理装置と同様の効果が得られるとともに、仮想マシン３３の停止時に他の仮想マシン３３の再配置を試みることで、仮想マシン３３への資源配分を最適化することができる。このことにより、各仮想マシン３３上で稼動するサービスの性能が向上する。
なお、ＶＭ配置決定手段１３およびＶＭ移動決定手段１４の代わりに、第２の実施の形態の仮想マシン管理装置におけるＶＭ配置・移動決定手段１７と同様な手段、あるいは第３の実施の形態の仮想マシン管理装置におけるＶＭ定期移動決定手段１８と同様な手段を仮想マシン管理装置１に備える構成であっても良い。
以上本発明の実施の形態について説明したが、本発明は以上の実施の形態にのみ限定されず、その他各種の付加変更が可能である。また、また、本発明の仮想マシン管理装置は、その有する機能をハードウェア的に実現することは勿論、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における仮想マシン管理装置として機能させ、前述した処理を実行させる。
【産業上の利用可能性】
【０００６】
本発明によれば、企業情報システムを構成するサーバ資源を一元的に管理する運用管理ミドルウェアといった用途に適用できる。また、複数の個人や法人ユーザに対してサーバ資源を貨し出すホスティングサービスおよびアプリケーションサービスプロバイダ（ＡＳＰ、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）を構成する資源管理ソフトウェアといった用途にも適用できる。
【図１】
2007136021.tif 000003
【図２】
2007136021.tif 000004
【図３】
2007136021.tif 000005
【図４】
2007136021.tif 000006
【図５】
2007136021.tif 000007
【図６】
2007136021.tif 000008
【図７】
2007136021.tif 000009
【図８】
2007136021.tif 000010
【図９】
2007136021.tif 000011
【図１０】
2007136021.tif 000012
【図１１】
2007136021.tif 000013
【図１２】
2007136021.tif 000014
【図１３】
2007136021.tif 000015
【図１４】
2007136021.tif 000016
【図１５】
2007136021.tif 000017
【図１６】
2007136021.tif 000018
【図１７】
2007136021.tif 000019
【図１８】
2007136021.tif 000020
【図１９】
2007136021.tif 000021
【図２０】
2007136021.tif 000022
【図２１】
2007136021.tif 000023
【手続補正書】
【提出日】平成19年10月25日(2007.10.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワーク（４）を介して複数のサーバ装置（３）に接続された仮想マシン管理装置（１）であって、
仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを記憶する配置規則表（１６）と、
新規の仮想マシンを配置可能な１以上のサーバ装置を選択し、該選択したサーバ装置について新規の仮想マシンを配置する場合における指標値を前記スコアを用いて計算し、該計算した指標値を参照して新規の仮想マシンの配置先を決定する仮想マシン配置決定手段（１３）であって、新規の仮想マシンを配置可能なサーバ装置として、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置を選択する前記仮想マシン配置決定手段（１３）と、
前記仮想マシン配置決定手段（１３）から呼び出されることにより、サーバ装置（３）上の既存の仮想マシン（３３）を他のサーバ装置に移動させることにより、新規の仮想マシンを配置可能なサーバ装置を生成する仮想マシン移動決定手段（１４）と、
を備えることを特徴とする仮想マシン管理装置。
【請求項２】
（削除）
【請求項３】
（削除）
【請求項４】
前記仮想マシン移動決定手段（１４）は、新規の仮想マシンを配置可能なサーバ装置を生成できる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して仮想マシンの移動方法を決定することを特徴とする、請求の範囲第１項に記載の仮想マシン管理装置。
【請求項５】
前記仮想マシン配置決定手段（１３）は、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置が存在しない場合に前記仮想マシン移動決定手段（１４）を呼び出すことを特徴とする、請求の範囲第１項に記載の仮想マシン管理装置。
【請求項６】
新規の仮想マシンの配置とは独立に、サーバ装置上の仮想マシンを他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う移動手段（１８；１Ａ）を備えることを特徴とする、請求の範囲第１項に記載の仮想マシン管理装置。
【請求項７】
前記移動手段（１８；１Ａ）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシン（３３）の停止ごとに動作することを特徴とする、請求の範囲第６項に記載の仮想マシン管理装置。
【請求項８】
仮想マシンの種別ごとに、その種別の仮想マシン（３３）が配置されているサーバ装置（３）から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集するサーバ監視手段（１１）と、
該サーバ監視手段（１１）で収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する配置規則生成手段（１２）と
を備えることを特徴とする、請求の範囲第１項に記載の仮想マシン管理装置。
【請求項９】
ネットワーク（４）を介して複数のサーバ装置（３）に接続された仮想マシン管理装置（１）であって、
仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを記憶する配置規則表（１６）と、
既存の仮想マシンの移動を伴わない新規の仮想マシンの配置方法、および、既存の仮想マシンの移動を伴う新規の仮想マシンの配置方法の各候補を選択し、該選択した各候補について、当該配置方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して新規の仮想マシンの配置先を決定する仮想マシン配置・移動決定手段（１７）と、
を備えることを特徴とする仮想マシン管理装置。
【請求項１０】
新規の仮想マシンの配置とは独立に、サーバ装置（３）上の仮想マシン（３３）を他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う移動手段（１８；１Ａ）を備えることを特徴とする、請求の範囲第９項に記載の仮想マシン管理装置。
【請求項１１】
前記移動手段（１８；１Ａ）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシンの停止ごとに動作することを特徴とする、請求の範囲第１０項に記載の仮想マシン管理装置。
【請求項１２】
仮想マシンの種別ごとに、その種別の仮想マシンが配置されているサーバ装置から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集するサーバ監視手段（１１）と、
該サーバ監視手段（１１）で収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する配置規則生成手段（１２）と
を備えることを特徴とする、請求の範囲第９項に記載の仮想マシン管理装置。
【請求項１３】
ネットワーク（４）を介して複数のサーバ装置（３）に接続されたコンピュータ（１）により前記サーバ装置（３）上の仮想マシン（３３）を管理する方法であって、
前記コンピュータ（１）が、新規の仮想マシンを配置可能な１以上のサーバ装置を選択する第１のステップ（Ｓ１３１，Ｓ１３２）と、
前記コンピュータ（１）が、前記選択した各サーバ装置について、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを配置規則表（１６）から参照して、新規の仮想マシンを当該サーバ装置（３）に配置する適切度を示す指標値を計算する第２のステップ（Ｓ１３３）と、
前記コンピュータ（１）が、前記計算した指標値を参照して新規の仮想マシンの配置先を決定する第３のステップ（Ｓ１３４）と、
を含み、
前記第１のステップ（Ｓ１３１）では、新規の仮想マシンを配置可能なサーバ装置として、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置（３）を選択し、
前記第１のステップでは、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置が存在しない場合（Ｓ１３２のＮＯ）、サーバ装置（３）上の既存の仮想マシン（３３）を他のサーバ装置に移動させる（Ｓ１４１〜Ｓ１４７）ことにより、新規の仮想マシンを配置可能なサーバ装置の生成を試みる（Ｓ１３６）ことを特徴とする仮想マシン管理方法。
【請求項１４】
（削除）
【請求項１５】
（削除）
【請求項１６】
前記第１のステップ（Ｓ１４１〜Ｓ１４７）では、新規の仮想マシンを配置可能なサーバ装置を生成できる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して仮想マシンの移動方法を決定することを特徴とする、請求の範囲第１３項に記載の仮想マシン管理方法。
【請求項１７】
前記コンピュータ（１）が、新規の仮想マシンの配置とは独立に、サーバ装置（３）上の仮想マシン（３３）を他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う第４のステップ（Ｓ１４１ｂ〜Ｓ１４７）をさらに含むことを特徴とする、請求の範囲第１３項に記載の仮想マシン管理方法。
【請求項１８】
前記第４のステップ（Ｓ１４１ｂ〜Ｓ１４７）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシン（３３）の停止ごとに開始することを特徴とする、請求の範囲第１７項に記載の仮想マシン管理方法。
【請求項１９】
前記コンピュータ（１）が、仮想マシン（３３）の種別ごとに、その種別の仮想マシンが配置されているサーバ装置（３）から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集する第６のステップ（Ｓ１１１〜Ｓ１１３）と、
前記コンピュータ（１）が、前記収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する第６のステップ（Ｓ１２１〜Ｓ１２５）と
をさらに含むことを特徴とする、請求の範囲第１３項に記載の仮想マシン管理方法。
【請求項２０】
ネットワーク（４）を介して複数のサーバ装置（３）に接続されたコンピュータ（１）により前記サーバ装置（３）上の仮想マシン（３３）を管理する方法であって、
前記コンピュータ（１）が、既存の仮想マシンの移動を伴わない新規の仮想マシンの配置方法、および、既存の仮想マシンの移動を伴う新規の仮想マシンの配置方法の各候補を選択する第１のステップ（Ｓ１７１，Ｓ１７２，Ｓ１７４〜Ｓ１７６）と、
前記コンピュータ（１）が、前記選択した各候補について、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを配置規則表（１６）から参照して、当該配置方法の適切度を示す指標値を計算する第２のステップ（Ｓ１７３，Ｓ１７７）と、
前記コンピュータ（１）が、前記計算した指標値を参照して新規の仮想マシンの配置先を決定する第３のステップ（Ｓ１７９，Ｓ１７１０）と
を含むことを特徴とする仮想マシン管理方法。
【請求項２１】
前記コンピュータ（１）が、新規の仮想マシンの配置とは独立に、サーバ装置（３）上の仮想マシン（３３）を他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う第４のステップ（Ｓ１４１ｂ〜Ｓ１４７）をさらに含むことを特徴とする、請求の範囲第２０項に記載の仮想マシン管理方法。
【請求項２２】
前記第４のステップ（Ｓ１４１ｂ〜Ｓ１４７）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシン（３３）の停止ごとに開始することを特徴とする、請求の範囲第２１項に記載の仮想マシン管理方法。
【請求項２３】
前記コンピュータ（１）が、仮想マシン（３３）の種別ごとに、その種別の仮想マシンが配置されているサーバ装置（３）から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集する第５のステップ（Ｓ１１１〜Ｓ１１３）と、
前記コンピュータ（１）が、前記収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する第６のステップ（Ｓ１２１〜Ｓ１２５）と
をさらに含むことを特徴とする、請求の範囲第２０項に記載の仮想マシン管理方法。
【請求項２４】
ネットワーク（４）を介して複数のサーバ装置（３）に接続されたコンピュータ（１）に、
新規の仮想マシンを配置可能な１以上のサーバ装置を選択する第１の処理（Ｓ１３１，Ｓ１３２）と、
前記選択した各サーバ装置について、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを配置規則表（１６）から参照して、新規の仮想マシンを当該サーバ装置に配置する適切度を示す指標値を計算する第２の処理（Ｓ１３３）と、
前記計算した指標値を参照して新規の仮想マシンの配置先を決定する第３の処理（Ｓ１３４）と
を行わせるためのプログラムであって、
前記第１の処理（Ｓ１３１）では、新規の仮想マシンを配置可能なサーバ装置として、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置（３）を選択し、
前記第１の処理では、新規の仮想マシンに必要なリソースを現に確保できるサーバ装置が存在しない場合（Ｓ１３２のＮＯ）、サーバ装置（３）上の既存の仮想マシン（３３）を他のサーバ装置に移動させる（Ｓ１４１〜Ｓ１４７）ことにより、新規の仮想マシンを配置可能なサーバ装置の生成を試みる（Ｓ１３６）ことを特徴とするプログラム。
【請求項２５】
（削除）
【請求項２６】
（削除）
【請求項２７】
前記第１の処理（Ｓ１４１〜Ｓ１４７）では、新規の仮想マシンを配置可能なサーバ装置を生成できる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して仮想マシンの移動方法を決定することを特徴とする、請求の範囲第２４項に記載のプログラム。
【請求項２８】
前記コンピュータ（１）に、さらに、新規の仮想マシンの配置とは独立に、サーバ装置（３）上の仮想マシン（３３）を他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う第４の処理（Ｓ１４１ｂ〜Ｓ１４７）を行わせることを特徴とする、請求の範囲第２４項に記載のプログラム。
【請求項２９】
前記第４の処理（Ｓ１４１ｂ〜Ｓ１４７）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシン（３３）の停止ごとに開始することを特徴とする、請求の範囲第２８項に記載の仮想マシン管理方法。
【請求項３０】
前記コンピュータ（１）に、さらに、
仮想マシン（３３）の種別ごとに、その種別の仮想マシンが配置されているサーバ装置（３）から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集する第５の処理（Ｓ１１１〜Ｓ１１３）と、
前記収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する第６の処理（Ｓ１２１〜Ｓ１２５）と
を行わせることを特徴とする、請求の範囲第２４項に記載のプログラム。
【請求項３１】
ネットワーク（４）を介して複数のサーバ装置（３）に接続されたコンピュータ（１）に、
既存の仮想マシンの移動を伴わない新規の仮想マシンの配置方法、および、既存の仮想マシンの移動を伴う新規の仮想マシンの配置方法の各候補を選択する第１の処理（Ｓ１７１，Ｓ１７２，Ｓ１７４〜Ｓ１７６）と、
前記選択した各候補について、仮想マシン種別の組合せ毎にその組合せの仮想マシン種別どうしが同じサーバ装置に配置される適切度を示すスコアを配置規則表（１６）から参照して、当該配置方法の適切度を示す指標値を計算する第２の処理（Ｓ１７３，Ｓ１７７）と、
前記計算した指標値を参照して新規の仮想マシンの配置先を決定する第３の処理（Ｓ１７９，Ｓ１７１０）と
を行わせることを特徴とするプログラム。
【請求項３２】
前記コンピュータ（１）に、さらに、新規の仮想マシンの配置とは独立に、サーバ装置（３）上の仮想マシン（３３）を他のサーバ装置へ移動させる移動方法の各候補について、当該移動方法の適切度を示す指標値を前記スコアを用いて計算し、該計算した指標値を参照して既存の仮想マシンの移動を行う第４の処理（Ｓ１４１ｂ〜Ｓ１４７）を行わせることを特徴とする、請求の範囲第３１項に記載のプログラム。
【請求項３３】
前記第４の処理（Ｓ１４１ｂ〜Ｓ１４７）は、一定時間ごと、サーバ装置（３）あるいは仮想マシン（３３）のリソースが予め定められた一定の条件に達するごと、または仮想マシン（３３）の停止ごとに開始することを特徴とする、請求の範囲第３２項に記載の仮想マシン管理方法。
【請求項３４】
前記コンピュータ（１）に、さらに、
仮想マシン（３３）の種別ごとに、その種別の仮想マシンが配置されているサーバ装置（３）から当該仮想マシンのリソースの使用状況と他の仮想マシンとの間の通信状況とを収集する第５の処理（Ｓ１１１〜Ｓ１１３）と、
前記収集された情報と予め定められたスコア生成規則とから前記スコアを生成して前記配置規則表（１６）に記憶する第６の処理（Ｓ１２１〜Ｓ１２５）と
を行わせることを特徴とする、請求の範囲第３１項に記載のプログラム。
【国際調査報告】
2007136021.tif 000024
2007136021.tif 000025
2007136021.tif 000026
2007136021.tif 000027
2007136021.tif 000028
2007136021.tif 000029