(57)【要約】  パッチスケジューリングプログラムは、複数のＶＭ（９２）を制御するＶＭＭ（９１）を複数備える仮想マシンシステム（９）を管理する管理サーバ（１）に、ＶＭの所定の指標に関する傾向が類似する仮想マシンを同じＶＭＭ上に集約し、ＶＭＭ上に集約された各ＶＭの傾向と、各ＶＭが他のＶＭＭ上に移動する場合の移動時間とに基づいて、各ＶＭを移動する期間を決定し、決定した期間にＶＭＭへのパッチの適用をスケジューリングすることとしたので、管理者がＶＭＭにパッチを適用する際に、ＶＭＭ上のＶＭを移動先のＶＭＭへ高速に退避できる。
2013140524.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンを制御する仮想化ソフトウェアを複数備える仮想マシンシステムを管理する管理サーバに、
前記仮想マシンの所定の指標に関する傾向が類似する仮想マシンを同じ前記仮想化ソフトウェア上に集約し、
前記仮想化ソフトウェア上に集約された各仮想マシンの前記傾向と、各仮想マシンが他の仮想化ソフトウェア上に移動する場合の移動時間とに基づいて、各仮想マシンを移動する期間を決定し、決定した期間に前記仮想化ソフトウェアへのパッチの適用をスケジューリングする
処理を実行させることを特徴とするプログラム。
【請求項２】
前記所定の指標をメモリの使用頻度とし、前記仮想マシンにおけるメモリの使用頻度を所定の間隔で前記仮想マシン毎に測定し、測定した結果を記憶部に記録し、
前記集約する処理は、前記仮想化ソフトウェア毎に、前記記憶部に記録されたメモリの使用頻度が他の期間より低い期間を選択し、選択した期間についてメモリの使用頻度のばらつきを算出し、算出したばらつきが最大の仮想化ソフトウェア上の仮想マシンを他の仮想化ソフトウェア上に移動する
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記集約する処理は、算出したばらつきが最大の仮想化ソフトウェア上の仮想マシンであってメモリの使用頻度に関する傾向が類似しない期間に対応する仮想マシンを他の仮想化ソフトウェア上に移動する
ことを特徴とする請求項２に記載のプログラム。
【請求項４】
前記集約する処理は、さらに、移動対象の仮想マシンが仮に移動した場合に移動先の仮想化ソフトウェア上の前記ばらつきが最小となる仮想化ソフトウェアを選択し、選択した仮想化ソフトウェア上に前記移動対象の仮想マシンを移動する
ことを特徴とする請求項３に記載のプログラム。
【請求項５】
前記集約する処理は、繰り返し行われることを特徴とする請求項２から請求項４のいずれか１つに記載のプログラム。
【請求項６】
前記記録する処理は、前記仮想マシンの前記使用頻度を、１日を複数分割した間隔で前記仮想マシン毎に測定し、測定した結果を前記記憶部に記録する
ことを特徴とする請求項２に記載のプログラム。
【請求項７】
前記記録する処理は、前記仮想マシンの前記使用頻度を、複数の所定の間隔で前記仮想マシン毎に測定し、該複数の所定の間隔で測定した結果をそれぞれ前記記憶部に記録し、
前記複数の所定の間隔で記録された情報に基づいて、前記所定の間隔を動的に決定することを特徴とする請求項２に記載のプログラム。
【請求項８】
前記移動する処理によって移動した前記移動対象の仮想マシンと移動元の仮想化ソフトウェアと移動先の仮想化ソフトウェアとを対応付けて前記記憶部に記録し、
外部から出力要求があったときに、前記記録する処理によって記録された、前記移動対象の仮想マシンに関わる情報を出力する
ことを特徴とする請求項２から請求項４のいずれか１つに記載のプログラム。
【請求項９】
複数の仮想マシンを制御する仮想化ソフトウェアを複数備える仮想マシンシステムを管理する管理サーバであって、
前記仮想マシンの所定の指標に関する傾向が類似する仮想マシンを同じ前記仮想化ソフトウェア上に集約する集約部と、
前記集約部によって前記仮想化ソフトウェア上に集約された各仮想マシンの前記傾向と、各仮想マシンが他の仮想化ソフトウェア上に移動する場合の移動時間とに基づいて、各仮想マシンを移動する期間を決定し、決定した期間に前記仮想化ソフトウェアへのパッチの適用をスケジューリングするパッチ適用計画部と
を有することを特徴とする管理サーバ。
【請求項１０】
複数の仮想マシンを制御する仮想化ソフトウェアを複数備える仮想マシンシステムを管理する管理サーバが、
前記仮想マシンの所定の指標に関する傾向が類似する仮想マシンを同じ前記仮想化ソフトウェア上に集約し、
前記仮想化ソフトウェア上に集約された各仮想マシンの前記傾向と、各仮想マシンが他の仮想化ソフトウェア上に移動する場合の移動時間とに基づいて、各仮想マシンを移動する期間を決定し、決定した期間に前記仮想化ソフトウェアへのパッチの適用をスケジューリングする
各処理を実行することを特徴とするパッチスケジューリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム等に関する。
【背景技術】
【０００２】
近年、実行中の仮想マシン（ＶＭ：Virtual  Machine）を自身が構築されているサーバから別のサーバに無停止で移動させる技術が知られている。かかる技術は「ライブマイグレーション」と呼ばれる。ライブマイグレーションでは、管理サーバが稼動中のＶＭのメモリイメージを移動先のサーバにコピーし、コピー中にもメモリの中身は変化しているため、変化した差分を再度コピーする。管理サーバはこれを複数回繰り返した後、最後に移動元のＶＭを一時停止し、最終的な差分をコピーする。そして、管理サーバはＣＰＵ等の状態を移動先にコピーし、コピーした後、移動先のＶＭを再開する。【０００３】
サーバ上の仮想化ソフトウェア（ＶＭＭ：Virtual  Machine  Monitor）に管理者がパッチを適用する際に、ライブマイグレーションの技術が用いられる。具体的に、従来のＶＭＭのパッチ適用について、図１８を参照して説明する。図１８は、従来のＶＭＭのパッチ適用を説明する図である。図１８に示すように、サーバ１には、パッチが未適用のＶＭＭ上にＶＭ１、ＶＭ２およびＶＭ３が構築されている。サーバ１のＶＭＭにパッチを適用するために、管理サーバは、ライブマイグレーションを用いて、ＶＭ１、ＶＭ２およびＶＭ３をそれぞれサーバ１から別のサーバ（ここでは、サーバ２）へ移動する。そして、管理サーバは、サーバ１のＶＭを移動した後、サーバ１上のＶＭＭにパッチを適用する。【０００４】
また、従来の技術として、ＶＭの移動先のサーバを決定する手法が開示されている。かかる手法では、管理サーバが、移動にともなうＶＭのダウンタイムを短縮するために、各サーバから集めた情報に基づきＣＰＵ使用率、メモリ使用量及び移動に必要な時間を考慮して算出した評価値を用いることにより、適切な移動先サーバを決定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２１７３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、管理者がＶＭＭにパッチを適用する際に、管理サーバがＶＭＭ上のＶＭをライブマイグレーションで移動先へ退避するのに、時間がかかるという問題がある。すなわち、管理サーバが、ライブマイグレーションを例えばＶＭのメモリの使用頻度が高いときに行うと、メモリの中身が長時間にわたって変化してしまうので、最終的に差分をコピーするのに、時間がかかってしまう。【０００７】
また、管理サーバが適切な移動先のサーバを決定しても、移動するＶＭのメモリの使用頻度が高い場合にライブマイグレーションすれば、退避するのに、時間がかかってしまうことには変わりがない。【０００８】
１つの側面では、本発明は、管理者が仮想化ソフトウェアにパッチを適用する際に、管理サーバが仮想化ソフトウェア上の仮想マシンを移動先へ高速に退避することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するプログラムは、複数の仮想マシンを制御する仮想化ソフトウェアを複数備える仮想マシンシステムを管理する管理サーバに、前記仮想マシンの所定の指標に関する傾向が類似する仮想マシンを同じ前記仮想化ソフトウェア上に集約し、前記仮想化ソフトウェア上に集約された各仮想マシンの前記傾向と、各仮想マシンが他の仮想化ソフトウェア上に移動する場合の移動時間とに基づいて、各仮想マシンを移動する期間を決定し、決定した期間に前記仮想化ソフトウェアへのパッチの適用をスケジューリングする処理を実行させる。
【発明の効果】
【００１０】
本願の開示するプログラムの一つの態様によれば、管理者が仮想化ソフトウェアにパッチを適用する際に、管理サーバが仮想化ソフトウェア上の仮想マシンを移動先へ高速に退避することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る仮想マシンシステムの構成を示す機能ブロック図である。
【図２】図２は、実施例１に係るＶＭ使用性能テーブルのデータ構造の一例を示す図である。
【図３】図３は、実施例１に係るＶＭトレンド傾向テーブルのデータ構造の一例を示す図である。
【図４】図４は、実施例１に係るＶＭ構成情報テーブルのデータ構造の一例を示す図である。
【図５】図５は、実施例１に係るＶＭＭパッチ管理テーブルのデータ構造の一例を示す図である。
【図６】図６は、実施例１に係るＶＭ移動履歴テーブルのデータ構造の一例を示す図である。
【図７Ａ】図７Ａは、実施例１に係るＶＭ移動計画処理およびＶＭ移動実行処理を具体的に説明するための図（１）である。
【図７Ｂ】図７Ｂは、実施例１に係るＶＭ移動計画処理およびＶＭ移動実行処理を具体的に説明するための図（２）である。
【図７Ｃ】図７Ｃは、実施例１に係るＶＭ移動計画処理およびＶＭ移動実行処理を具体的に説明するための図（３）である。
【図８】図８は、実施例１に係るパッチ適用計画処理を具体的に説明するための図である。
【図９】図９は、実施例１に係るトレンド分析処理の手順を示すフローチャートである。
【図１０】図１０は、実施例１に係るＶＭ移動計画処理の手順を示すフローチャートである。
【図１１】図１１は、移動元のＶＭＭを選択する処理の手順を示すフローチャートである。
【図１２】図１２は、移動するＶＭを選択する処理の手順を示すフローチャートである。
【図１３】図１３は、移動先のＶＭＭを選択する処理の手順を示すフローチャートである。
【図１４】図１４は、実施例１に係るパッチ適用計画処理の手順を示すフローチャートである。
【図１５Ａ】図１５Ａは、パッチスケジューリング参照画面の一例を示す図である。
【図１５Ｂ】図１５Ｂは、ＶＭトレンド参照画面の一例を示す図である。
【図１５Ｃ】図１５Ｃは、ＶＭＭパッチ管理参照画面の一例を示す図である。
【図１５Ｄ】図１５Ｄは、ＶＭ移動履歴参照画面の一例を示す図である。
【図１６Ａ】図１６Ａは、２時間単位のスパンで計測される場合のＶＭ使用性能テーブルのデータ構造を示す図である。
【図１６Ｂ】図１６Ｂは、曜日の１日単位のスパンで計測される場合のＶＭ使用性能テーブルのデータ構造を示す図である。
【図１７】図１７は、パッチスケジューリングプログラムを実行するコンピュータの一例を示す図である。
【図１８】図１８は、従来のＶＭＭのパッチ適用を説明する図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するプログラム、管理サーバおよびパッチスケジューリング方法の実施例を図面に基づいて詳細に説明する。なお、仮想マシンシステムをクラウドコンピューティングに適用した場合について説明するが、実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［実施例１に係る仮想マシンシステムの構成］
図１は、実施例１に係る仮想マシンシステムの構成を示す機能ブロック図である。図１に示すように、仮想マシンシステム９は、管理サーバ１と、複数の物理サーバ２とを有する。複数の物理サーバ２は、クラウド１００上に存在する。【００１４】
ここで、クラウド１００は、ユーザに対して、物理サーバ２によって提供されるサービスを物理的な実体を意識させることなく提供する。物理サーバ２が提供するサービスとは、例えば仮想デスクトップ環境を提供するサービス（ＤａａＳ）であったり、アプリケーションソフトの機能を提供するサービス（ＳａａＳ）であったりするが、これらに限定されるものではない。【００１５】
物理サーバ２は、仮想化ソフトウェア（ＶＭＭ：Virtual  Machine  Monitor）９１と仮想マシン（ＶＭ：Virtual  Machine）９２とを備える。ＶＭＭ９１は、ＶＭ９２を動かすための必要なソフトウェアであり、物理サーバ２に搭載されているＣＰＵ（Central  Processing  Unit）やメモリ等の資源を各ＶＭ９２に割り当てる。なお、ＶＭＭ９１の数は、物理サーバ２の数に対応するが、図示したものに限定されるものではなく、変更可能である。例えば、ＶＭＭ９１の数は、１２８であるが、これに限定されない。また、１台の物理サーバ２上に搭載可能なＶＭ９２の数は、図示したものに限定されるものではなく、変更可能である。例えば、搭載可能なＶＭ９２の数は、２４であるが、これに限定されない。【００１６】
管理サーバ１は、入出力装置３と接続される。さらに、管理サーバ１は、記憶部１０と制御部２０とを有する。記憶部１０は、例えばフラッシュメモリ（Frash  Memory）やＦＲＡＭ（登録商標）（Ferroelectric  Random  Access  Memory）等の不揮発性の半導体メモリ素子等の記憶装置に対応する。そして、記憶部１０は、ＶＭ使用性能テーブル１１と、ＶＭトレンドテーブル１２と、ＶＭ構成情報テーブル１３と、ＶＭＭパッチ管理テーブル１４と、ＶＭ移動履歴テーブル１５とを有する。なお、ＶＭ使用性能テーブル１１は、記憶部の一例として挙げられる。また、各テーブルのデータ構造は、後述するものとする。【００１７】
入出力装置３は、各種要求を入力し、キーボードやマウス、マイク等に対応する。また、入出力装置３は、各種テーブルの内容等を出力し、ディスプレイ（もしくはモニタ、タッチパネル）に対応する。【００１８】
制御部２０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部２０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。さらに、制御部２０は、ＶＭ使用性能計測部２１と、トレンド分析部２２と、ＶＭ移動計画部２３と、ＶＭ移動実行部２４と、パッチ適用計画部２５と、パッチ適用実行部２６とを有する。【００１９】
ＶＭ使用性能計測部２１は、ＶＭ９２の使用性能を所定のスパンで計測し、計測した結果をＶＭ使用性能テーブル１１に記録する。ここで言う使用性能とは、所定の指標の一例として挙げられ、例えばメモリの使用頻度であり、メモリの書き込み頻度、メモリの読み出し頻度やこれらを組み合わせた頻度を意味する。なお、使用性能は、メモリの使用頻度を一例として説明したが、これに限定されず、ＣＰＵの使用率であっても良く、ＶＭ９２の使用性能の期間的な差異が明確になるものであれば良い。以降の説明では、所定の使用性能をメモリの使用頻度であるとして説明する。また、ここで言う所定のスパンとは、例えば１日を昼（８：００〜２０：００）と夜（２０：００〜８：００）とに分けた場合、１２時間を示す。なお、所定のスパンは、１２時間を一例として説明したが、これに限定されず、２時間であっても良いし、４時間であっても良いし、曜日であっても良く、ＶＭ９２の使用性能の期間的な差異が明確になる時間幅であれば良い。以降の説明では、所定のスパンを、１日を昼と夜とに分けた１２時間であるとして説明する。すなわち、所定のスパンで分けられた期間は、昼の期間および夜の期間になる。【００２０】
ここで、ＶＭ使用性能テーブル１１のデータ構造について、図２を参照しながら説明する。図２は、実施例１に係るＶＭ使用性能テーブルのデータ構造の一例を示す図である。図２に示すように、ＶＭ使用性能テーブル１１は、日付１１ｂと、夜１１ｃと、昼１１ｄとをＶＭ名１１ａに対応付けて記憶する。ＶＭ名１１ａは、ＶＭ９２の名称を示す。日付１１ｂは、ＶＭ９２のメモリの使用頻度を計測した日付を示す。夜１１ｃは、ＶＭ９２の計測した夜の期間におけるメモリの使用頻度を示す。昼１１ｃは、ＶＭ９２の計測した昼の期間におけるメモリの使用頻度を示す。一例として、ＶＭ名１１ａが「ＶＭ１」である場合、日付１１ｂとして「９／１」、夜１１ｃとして「１２３２」、昼１１ｄとして「３１３４」と記憶している。【００２１】
図１に戻って、トレンド分析部２２は、ＶＭ使用性能テーブル１１に記憶された情報に基づいて、メモリの使用のトレンドを分析する。ここで言うトレンドとは、メモリの使用頻度が低いという傾向を意味する。例えば、トレンド分析部２２は、ＶＭ使用性能テーブル１１に記憶された昼の期間および夜の期間のメモリの使用頻度に基づいて、それぞれの期間のメモリ使用頻度の平均値を、ＶＭ９２毎に計算する。そして、トレンド分析部２２は、計算した昼の期間および夜の期間のメモリ使用頻度の平均値を用いて、メモリの使用頻度が低い方の期間をトレンドに対応する期間として、ＶＭトレンドテーブル１２に記録する。加えて、トレンド分析部２２は、トレンドに対応する期間におけるメモリの使用頻度の平均値をＶＭトレンドテーブル１２に記録する。なお、トレンドに対応する期間は、「トレンド期間」というものとする。【００２２】
ここで、ＶＭトレンドテーブル１２のデータ構造について、図３を参照しながら説明する。図３は、実施例１に係るＶＭトレンドテーブルのデータ構造の一例を示す図である。図３に示すように、ＶＭトレンドテーブル１２は、トレンド期間１２ｂと、メモリの使用頻度（平均値）１２ｃとをＶＭ名１２ａに対応付けて記憶する。ＶＭ名１２ａは、ＶＭの名称を示す。トレンド期間１２ｂは、トレンドに対応する期間、すなわちトレンド期間を示す。メモリの使用頻度（平均値）１２ｃは、トレンド期間とした期間のメモリの使用頻度の平均値を示す。一例として、ＶＭ名１２ａが「ＶＭ１」である場合、トレンド期間１２ｂとして「夜」、メモリの使用頻度（平均値）１２ｃとして「１１０４」と記憶している。【００２３】
図１に戻って、ＶＭ移動計画部２３は、ＶＭトレンドテーブル１２に記憶された情報に基づいて、ＶＭ９２のメモリの使用頻度に関する傾向が類似するＶＭ９２を同じＶＭＭ９１上に集約する。すなわち、ＶＭ移動計画部２３は、ＶＭＭ９１にパッチを適用する際に、あらかじめ、ＶＭ９２のメモリの使用頻度が低いという傾向が類似するＶＭ９２を同一のＶＭＭ９１上に集める。例えば、ＶＭ移動計画部２３は、ＶＭ９２毎に、ＶＭトレンドテーブル１２に記憶されたトレンド期間１２ｂを選択する。そして、ＶＭ移動計画部２３は、ＶＭＭ９１毎に、ＶＭＭ９１上の各ＶＭ９２のトレンド期間１２ｂについて、メモリの使用頻度のばらつき度を算出する。そして、ＶＭ移動計画部２３は、ばらつき度が最大のＶＭＭ９１を選択する。そして、ＶＭ移動計画部２３は、選択したＶＭＭ９１上のＶＭ９２であって最も数が少ないトレンド期間のＶＭ９２を選択する。すなわち、ＶＭ移動計画部２３は、メモリの使用頻度に関する傾向が類似しないＶＭ９２を選択する。ここで、ＶＭ移動計画部２３は、最も数が少ないトレンド期間が複数ある場合には、どちらのトレンド期間のＶＭ９２を選択しても良い。選択されたＶＭ９２が、移動対象のＶＭとなる。さらに、ＶＭ移動計画部２３は、移動先のＶＭＭ９１を選択するために、移動対象のＶＭ９２が仮に移動した場合に、移動先のＶＭＭ９１上のばらつき度が一番減少するＶＭＭ９１を選択する。ここで、ＶＭ移動計画部２３は、ばらつき度が最小となるＶＭＭ９１が複数ある場合には、例えばＶＭ９２の搭載数が少ないＶＭＭ９１を選択すれば良い。選択されたＶＭＭ９１が、移動先のＶＭＭとなる。なお、ばらつき度は、例えばエントロピーによって求められるが、これに限定されず、分散や標準偏差等によっても求められる。以下の説明では、一例として、ばらつき度をエントロピーとして説明する。【００２４】
ＶＭ移動実行部２４は、ＶＭ移動計画部２３による計画に基づいて、移動対象のＶＭ９２を移動先のＶＭＭ９１に移動（「ライブマイグレーション」と呼ぶ）する。そして、ＶＭ移動実行部２４は、移動元と移動先のＶＭＭ９１上のＶＭ９２を、ＶＭ構成情報テーブル１３に格納する。また、ＶＭ移動実行部２４は、ＶＭ９２を移動した情報を履歴としてＶＭ移動履歴テーブル１５に格納する。なお、ＶＭ移動計画部２３およびＶＭ移動実行部２４は、管理サーバ１のユーザによってあらかじめ定められた回数繰り返される。これにより、メモリ使用頻度が低いという傾向が類似するＶＭ９２を集約するＶＭＭ９１を増やすことができる。例えば、あらかじめ定められた回数は、１日に２回であるが、これに限定されない。【００２５】
ここで、ＶＭ構成情報テーブル１３のデータ構造について、図４を参照しながら説明する。図４は、実施例１に係るＶＭ構成情報テーブルのデータ構造の一例を示す図である。図４に示すように、ＶＭ構成情報テーブル１３は、ＶＭ構成１３ｂをＶＭＭ名１３ａに対応付けて記憶する。ＶＭＭ名１３ａは、ＶＭＭの名称を示す。ＶＭ構成１３ｂは、ＶＭＭ上に構成されたＶＭの名称を示す。一例として、ＶＭＭ名１３ａが「ＶＭＭ１」である場合、ＶＭ構成１３ｂとして「ＶＭ１、ＶＭ２、ＶＭ３」と記憶している。【００２６】
図１に戻って、パッチ適用計画部２５は、ＶＭＭ９１上に集約された各ＶＭ９２のメモリの使用頻度に関する傾向と、各ＶＭ９２が他のＶＭＭ９１上に移動する場合の移動時間とに基づいて、各ＶＭ９２を移動する期間を決定する。そして、パッチ適用計画部２５は、決定した期間にＶＭＭ９１へのパッチの適用をスケジューリングする。例えば、パッチ適用計画部２５は、ＶＭトレンドテーブル１２およびＶＭ構成情報テーブル１３を用いて、各ＶＭＭ９１について、推奨されるパッチ適用時期を求める。一例として、パッチ適用計画部２５は、ＶＭ構成情報テーブル１３から、各ＶＭＭ９１に対応するＶＭ構成１３ｂを読み出す。そして、パッチ適用計画部２５は、各ＶＭＭ９１について、取得したＶＭ構成１３ｂが示すＶＭ９２のトレンド期間１２ｂをＶＭトレンドテーブル１２から読み出す。そして、パッチ適用計画部２５は、トレンド期間１２ｂが示す期間の数を算出し、算出した数が最も大きい期間をパッチ適用時期と決定する。また、パッチ適用計画部２５は、ＶＭＭ９１毎に、ＶＭＭ９１上の各ＶＭ９２のトレンド期間１２ｂについて、メモリの使用頻度のばらつき度を算出する。そして、パッチ適用計画部２５は、ＶＭＭ９１毎に求められた、パッチ適用時期とばらつき度をＶＭＭパッチ管理テーブル１４に格納する。そして、パッチ適用計画部２５は、ＶＭＭパッチ管理テーブル１４に基づいて、ばらつき度が最小のＶＭＭ９１から順番にあらかじめ定めた個数分、ＶＭＭ９１を選択する。そして、パッチ適用計画部２５は、選択したＶＭＭ９１について、それぞれのパッチ適用時期にパッチが適用されるようにスケジューリングする。なお、パッチのスケジューリングの方法として、パッチ適用計画部２５は、例えば、ジョブスケジューラのようなスケジューリングソフトにパッチの適用時期を設定することで実現できる。【００２７】
パッチ適用実行部２６は、パッチ適用計画部２５によるスケジューリングに基づいて、ＶＭＭ９１にパッチを適用する。パッチ適用実行部２６は、ＶＭＭ９１にパッチを適用する際、パッチを適用するＶＭＭ９１上の全てのＶＭ９２を他のＶＭＭ９１に移動する。そして、パッチ適用実行部２６は、ＶＭ９２を移動した情報を履歴としてＶＭ移動履歴テーブル１５に格納する。そして、パッチ適用実行部２６は、全てのＶＭ９２を他のＶＭＭ９１に移動した後、パッチを適用する対象のＶＭＭ９１にパッチの適用を実行する。なお、移動先のＶＭＭ９１の選択方法は、ＶＭ移動計画部２３で移動先のＶＭＭを選択した方法と同様であるので、この説明は、省略する。【００２８】
ここで、ＶＭＭパッチ管理テーブル１４のデータ構造について、図５を参照しながら説明する。図５は、実施例１に係るＶＭＭパッチ管理テーブルのデータ構造の一例を示す図である。図５に示すように、ＶＭＭパッチ管理テーブル１４は、推奨時期１４ｂとエントロピー１４ｃとをＶＭＭ名１４ａに対応付けて記憶する。ＶＭＭ名１４ａは、ＶＭＭの名称を示す。推奨時期１４ｂは、推奨されるパッチの適用時期を示す。エントロピー１４ｃは、各ＶＭ９２のトレンド期間１２ｂについてメモリの使用頻度のばらつき度、すなわちエントロピーを示す。一例として、ＶＭＭ名１４ａが「ＶＭＭ１」である場合、推奨時期１４ｂとして「夜」、エントロピー１４ｃとして「０．２７６」と記憶している。【００２９】
また、ＶＭ移動履歴テーブル１５のデータ構造について、図６を参照しながら説明する。図６は実施例１に係るＶＭ移動履歴テーブルのデータ構造の一例を示す図である。図６に示すように、ＶＭ移動履歴テーブル１５は、日時１５ａと移動ＶＭ１５ｂと移動元ＶＭＭ１５ｃと移動先ＶＭＭ１５ｄとを対応付けて記憶する。日時１５ａは、ＶＭ９２を移動した日時を示す。移動ＶＭ１５ｂは、移動対象のＶＭ９２を示す。移動元ＶＭＭ１５ｃは、移動対象のＶＭ９２の移動元のＶＭＭ９１を示す。移動先ＶＭＭ１５ｄは、移動対象のＶＭ９２の移動先のＶＭＭ９１を示す。一例として、日時１５ａが「９／６  １８：１０：１１」である場合、移動ＶＭ１５ｂとして「ＶＭ５」、移動元ＶＭＭ１５ｃとして「ＶＭＭ１」、移動先ＶＭＭ１５ｄとして「ＶＭＭ５」と記憶している。【００３０】
次に、ＶＭ移動計画部２３によるＶＭ移動計画処理およびＶＭ移動実行部２４によるＶＭ移動実行処理の具体例を、図７Ａ、図７Ｂおよび図７Ｃを参照して説明する。図７Ａ、図７Ｂおよび図７Ｃは、実施例１に係るＶＭ移動計画処理およびＶＭ移動実行処理を具体的に説明するための図である。なお、トレンド分析部２２は、トレンドの分析を実行し、図３に示された内容でＶＭトレンドテーブル１２に記録したとする。【００３１】
図７Ａの左図に示すように、ＶＭ移動計画部２３は、ＶＭＭ毎に、ＶＭＭ上の各ＶＭのトレンド期間１２ｂについて、エントロピーを算出する。ここでは、ＶＭ移動計画部２３は、ＶＭＭ１〜３上の各ＶＭのトレンド期間について、エントロピーを算出する。ＶＭＭ１では、ＶＭの昼のトレンド期間が１個、ＶＭの夜のトレンド期間が２個であるので、エントロピーＨＶＭＭ１は以下のように算出される。
ＨＶＭＭ１＝−１／３ｌｏｇ１／３−２／３ｌｏｇ２／３＝０．２７６
ＶＭＭ２では、ＶＭの昼のトレンド期間が１個、ＶＭの夜のトレンド期間が１個であるので、エントロピーＨＶＭＭ２は以下のように算出される。
ＨＶＭＭ２＝−１／２ｌｏｇ１／２−１／２ｌｏｇ１／２＝０．３０２
ＶＭＭ３では、ＶＭの昼のトレンド期間が０個、ＶＭの夜のトレンド期間が１個であるので、エントロピーＨＶＭＭ３は以下のように算出される。
ＨＶＭＭ３＝−１ｌｏｇ１＝０【００３２】
そして、ＶＭ移動計画部２３は、エントロピー、すなわちメモリの使用頻度のばらつき度が最大のＶＭＭを選択する。ここでは、ＶＭ移動計画部２３は、ＶＭＭ２を選択する。【００３３】
図７Ａの右図に示すように、ＶＭ移動計画部２３は、選択したＶＭＭ上のＶＭであって最も数が少ないトレンド期間のＶＭを選択する。ここでは、ＶＭ移動計画部２３は、選択したＶＭＭ２上のＶＭ４、ＶＭ５のトレンド期間がそれぞれ昼、夜であるので、どちらか一方のＶＭを選択することとし、一例としてＶＭ５を選択している。すなわち、ＶＭ５が移動対象のＶＭとなる。【００３４】
図７Ｂの左図に示すように、ＶＭ移動計画部２３は、移動先のＶＭＭを選択するために、移動対象のＶＭが仮に移動した場合に、移動先のＶＭＭ上のエントロピーが一番減少するＶＭＭを選択する。ここでは、ＶＭ移動計画部２３は、移動対象のＶＭ５がＶＭＭ１に移動した場合のエントロピーＨ´ＶＭＭ１を以下のように算出する。
Ｈ´ＶＭＭ１＝−１／４ｌｏｇ１／４−３／４ｌｏｇ３／４＝０．２４５
また、ＶＭ移動計画部２３は、移動対象のＶＭ５がＶＭＭ３に移動した場合のエントロピーＨ´ＶＭＭ３を以下のように算出する。
Ｈ´ＶＭＭ３＝−１ｌｏｇ１＝０
すると、ＶＭ移動計画部２３は、ＶＭ５をＶＭＭ１に移動した場合、０．２７６から０．２４５に変化し、ＶＭ５をＶＭＭ３に移動した場合、０から０に変化する。したがって、ＶＭ移動計画部２３は、エントロピーが一番減少するのはＶＭＭ１に移動した場合であるので、ＶＭＭ１を選択する。すなわち、ＶＭＭ１が移動先のＶＭＭとなる。【００３５】
その後、図７Ｂの右図に示すように、ＶＭ移動実行部２４は、ＶＭ移動計画部２３による計画に基づいて、移動対象のＶＭ５を移動先のＶＭＭ１に移動する。その後、ＶＭ移動計画部２３およびＶＭ移動実行部２４は、繰り返し行われる。【００３６】
図７Ｃの左図に示すように、ＶＭ移動計画部２３は、同様に、エントロピーが最大のＶＭＭ１を選択し、選択したＶＭＭ１上のＶＭであって最も数が少ないトレンド期間のＶＭ３を選択する。そして、ＶＭ移動計画部２３は、ＶＭ３を他のＶＭＭに移動した場合、エントロピーが一番減少するのは、ここではＶＭＭ２に移動した場合であるので、移動先のＶＭＭとしてＶＭＭ２を選択する。【００３７】
その後、図７Ｃの右図に示すように、ＶＭ移動実行部２４は、ＶＭ移動計画部２３による計画に基づいて、移動対象のＶＭ３を移動先のＶＭＭ２に移動する。【００３８】
次に、パッチ適用計画部２５によるパッチ適用計画処理の具体例を、図８を参照して説明する。図８は、実施例１に係るパッチ適用計画処理を具体的に説明するための図である。なお、トレンド分析部２２は、トレンドの分析を実行し、ＶＭトレンドテーブル１２に記録したとする。また、ＶＭ移動実行部２４は、ＶＭ移動計画部２３によるＶＭの移動計画に基づいて、ＶＭを移動し、移動した結果変更されたＶＭ構成をＶＭ構成情報テーブル１３に記録したとする。【００３９】
図８の左図に、ＶＭトレンドテーブル１２に記録されたＶＭトレンドの内容が示されている。また、ＶＭ構成情報テーブル１３に記録されたＶＭ構成情報が示されている。【００４０】
パッチ適用計画部２５は、ＶＭトレンドの内容およびＶＭ構成情報を用いて、各ＶＭＭについて、推奨されるパッチ適用時期を求める。ここでは、パッチ適用計画部２５は、ＶＭＭ１について、ＶＭ構成情報からＶＭ１〜ＶＭ３を取得する。そして、パッチ適用計画部２５は、ＶＭトレンドの内容からＶＭ１〜ＶＭ３のトレンド期間１２ｂをそれぞれ取得する。そして、パッチ適用計画部２５は、トレンド期間１２ｂが示す期間の数を算出し、算出した数が最も大きい期間を推奨されるパッチ適用時期とする。パッチ適用計画部２５は、夜の期間が２、昼の期間が１であるので、夜の期間を推奨されるパッチ適用時期とする。【００４１】
パッチ適用計画部２５は、同様に、ＶＭＭ２について、夜または昼の期間を推奨されるパッチ適用時期とし、ＶＭＭ３について、夜の期間を推奨されるパッチ適用時期とする。そして、パッチ適用計画部２５は、ＶＭＭ１〜３毎に求められた、推奨されるパッチ適用時期をＶＭＭパッチ管理テーブル１４に格納する。図８の右図に示すように、ＶＭＭパッチ管理テーブル１４には、ＶＭＭ１〜３毎のパッチの推奨時期１４ｂが記憶されている。【００４２】
また、パッチ適用計画部２５は、ＶＭＭ毎に、ＶＭＭ上の各ＶＭのトレンド期間１２ｂについて、エントロピーを算出する。ここでは、ＶＭＭ１では、ＶＭの昼のトレンド期間が１個、ＶＭの夜のトレンド期間が２個であるので、エントロピーは０．２７６と算出される。ＶＭＭ２では、ＶＭの昼のトレンド期間が１個、ＶＭの夜のトレンド期間が１個であるので、エントロピーは０．３０２と算出される。ＶＭＭ３では、ＶＭの昼のトレンド期間が０個、ＶＭの夜のトレンド期間が１個であるので、エントロピーは０と算出される。そして、パッチ適用計画部２５は、ＶＭＭ１〜３毎に求められたエントロピーをＶＭＭパッチ管理テーブル１４に格納する。図８の右図に示すように、ＶＭＭパッチ管理テーブル１４には、ＶＭＭ１〜３毎のエントロピー１４ｃが記憶されている。【００４３】
そして、パッチ適用計画部２５は、ＶＭＭパッチ管理テーブル１４に基づいて、エントロピーが最小のＶＭＭから順番にあらかじめ定めた個数分、ＶＭＭを選択する。そして、パッチ適用計画部２５は、選択したＶＭＭについて、それぞれのパッチの推奨時期にパッチが適用されるようにスケジューリングする。ここでは、あらかじめ定めた個数を１個とすると、パッチ適用計画部２５は、エントロピーが最小のＶＭＭ３を選択し、選択したＶＭＭ３について、夜の期間にパッチが適用されるようにスケジューリングする。【００４４】
［トレンド分析処理の手順］
次に、トレンド分析部２２によるトレンド分析処理の手順について、図９を参照して説明する。図９は、実施例１に係るトレンド分析処理の手順を示すフローチャートである。なお、ＶＭ使用性能計測部２１が、ＶＭ９２のメモリの使用頻度を所定のスパンで計測し、計測した結果をＶＭ使用性能テーブル１１に記録したとする。所定のスパンは、ここでは、１日を昼（８：００〜２０：００）と夜（２０：００〜８：００）とに分けた場合の１２時間であるとする。そして、トレンド分析部２２は、ＶＭ使用性能テーブル１１に記憶された情報が例えば１０日分蓄積されたとき、トレンド分析が要求されたとする。【００４５】
トレンド分析が要求されたトレンド分析部２２は、各ＶＭ９２の期間毎のメモリ使用頻度の平均を計算する（ステップＳ１１）。例えば、トレンド分析部２２は、ＶＭ使用性能テーブル１１に記憶された昼の期間および夜の期間のメモリの使用頻度に基づいて、昼の期間および夜の期間のメモリ使用頻度の平均値を、ＶＭ９２毎に計算する。【００４６】
そして、トレンド分析部２２は、各ＶＭ９２のトレンド期間を抽出する（ステップＳ１２）。例えば、トレンド分析部２２は、計算した昼の期間および夜の期間のメモリ使用頻度の平均値を用いて、メモリの使用頻度が低い方の期間をトレンド期間として抽出する。【００４７】
そして、トレンド分析部２２は、抽出したトレンド期間におけるメモリの使用頻度の平均値を、ＶＭ９２毎に計算する（ステップＳ１３）。そして、トレンド分析部２２は、ＧＭ９２毎に抽出したトレンド期間および計算した平均値をＶＭトレンドテーブル１２に記録する（ステップＳ１４）。【００４８】
［ＶＭ移動計画処理の手順］
次に、ＶＭ移動計画部２３によるＶＭ移動計画処理の手順について、図１０を参照して説明する。図１０は、実施例１に係るＶＭ移動計画処理の手順を示すフローチャートである。なお、入出力装置３からＶＭの移動計画の要求が出されたとする。ＶＭの移動計画の要求は、例えば、１日に２回出される。【００４９】
まず、ＶＭ移動計画部２３は、ＶＭ９２の移動計画が要求されたか否かを判定する（ステップＳ２１）。ＶＭ９２の移動計画が要求されなかったと判定した場合（ステップＳ２１；Ｎｏ）、ＶＭ移動計画部２３は、ＶＭ９２の移動計画が要求されるまで判定処理を繰り返す。一方、ＶＭ９２の移動計画が要求されたと判定した場合（ステップＳ２１；Ｙｅｓ）、ＶＭ移動計画部２３は、移動元のＶＭＭ９１を選択する（ステップＳ２２）。【００５０】
そして、ＶＭ移動計画部２３は、選択したＶＭＭ９１上のＶＭ９２の中から移動するＶＭ９２を選択する（ステップＳ２３）。さらに、ＶＭ移動計画部２３は、選択したＶＭ９２を移動する移動先のＶＭＭ９１を選択する（ステップＳ２４）。【００５１】
［移動元ＶＭＭ選択処理の手順］
次に、図１０におけるステップＳ２２の移動元ＶＭＭ選択処理の手順について、図１１を参照して説明する。図１１は、移動元のＶＭＭを選択する処理の手順を示すフローチャートである。【００５２】
ＶＭ移動計画部２３は、ＶＭ構成情報テーブル１３から、ＶＭ構成情報をＶＭＭ毎に取得する（ステップＳ３１）。そして、ＶＭ移動計画部２３は、ばらつき度が計算されていないＶＭＭ９１を選択する（ステップＳ３２）。なお、ばらつき度は、例えばエントロピーである。【００５３】
続いて、ＶＭ移動計画部２３は、選択したＶＭＭ９１の、メモリの使用頻度のばらつき度を計算する（ステップＳ３３）。例えば、ＶＭ移動計画部２３は、選択したＶＭＭ９１上のＶＭ９２をＶＭ構成情報から選択する。そして、ＶＭ移動計画部２３は、ＶＭトレンドテーブル１２に記憶された、選択ＶＭ９２毎のトレンド期間１２ｂを用いて、選択したＶＭＭ９１上の各ＶＭ９２のトレンド期間１２ｂについて、メモリの使用頻度のばらつき度を算出する。【００５４】
そして、ＶＭ移動計画部２３は、全てのＶＭＭ９１について計算したか否かを判定する（ステップＳ３４）。全てのＶＭＭ９１について計算していないと判定した場合（ステップＳ３４；Ｎｏ）、ＶＭ移動計画部２３は、ステップＳ３２に移行する。一方、全てのＶＭＭ９１について計算したと判定した場合（ステップＳ３４；Ｙｅｓ）、ＶＭ移動計画部２３は、ばらつき度が最大のＶＭＭ９１を選択する（ステップＳ３５）。選択されたＶＭＭ９１が、移動元のＶＭＭとなる。【００５５】
［移動ＶＭ選択処理の手順］
次に、図１０におけるステップＳ２３の移動ＶＭ選択処理の手順について、図１２を参照して説明する。図１２は、移動するＶＭを選択する処理の手順を示すフローチャートである。【００５６】
ＶＭ移動計画部２３は、ＶＭトレンドテーブル１２から、ＶＭトレンドをＶＭ９２毎に取得する（ステップＳ４１）。そして、ＶＭ移動計画部２３は、選択された移動元のＶＭＭ９１上のＶＭ９２をＶＭ構成情報から選択する（ステップＳ４２）。【００５７】
そして、ＶＭ移動計画部２３は、トレンド期間毎のＶＭ９２の数を計算する（ステップＳ４３）。ここでは、ＶＭ移動計画部２３は、トレンド期間となり得るのは、昼の期間と夜の期間であるので、それぞれの期間のＶＭ９２の数を計算する。【００５８】
そして、ＶＭ移動計画部２３は、最も数が少ないトレンド期間のＶＭ９２を選択する（ステップＳ４４）。選択されたＶＭ９２が、移動対象のＶＭとなる。【００５９】
［移動先ＶＭＭ選択処理の手順］
次に、図１０におけるステップＳ２４の移動先ＶＭＭ選択処理の手順について、図１３を参照して説明する。図１３は、移動先のＶＭＭを選択する処理の手順を示すフローチャートである。【００６０】
ＶＭ移動計画部２３は、移動対象のＶＭ９２の移動先になった場合のばらつき度が計算されていないＶＭＭ９１を選択する（ステップＳ５１）。そして、ＶＭ移動計画部２３は、選択したＶＭＭ９１の、メモリの使用頻度のばらつき度を計算する（ステップＳ５２）。例えば、ＶＭ移動計画部２３は、選択したＶＭＭ９１上のＶＭ９２に移動対象のＶＭ９２を加えたＶＭ９２毎のトレンド期間１２ｂを用いて、各ＶＭ９２のトレンド期間１２ｂについて、メモリの使用頻度のばらつき度を計算する。【００６１】
そして、ＶＭ移動計画部２３は、全てのＶＭＭ９１について計算したか否かを判定する（ステップＳ５３）。全てのＶＭＭ９１について計算していないと判定した場合（ステップＳ５３；Ｎｏ）、ＶＭ移動計画部２３は、ステップＳ５１に移行する。【００６２】
一方、全てのＶＭＭ９１について計算したと判定した場合（ステップＳ５３；Ｙｅｓ）、ＶＭ移動計画部２３は、ばらつき度が最も減少するＶＭＭ９１を選択する（ステップＳ５４）。選択されたＶＭＭ９１が、移動先のＶＭＭとなる。その後、ＶＭ移動実行部２４は、ＶＭ移動計画部２３による計画に基づいて、移動対象のＶＭ９２を移動先のＶＭＭ９１に移動する。【００６３】
［パッチ適用計画処理の手順］
次に、パッチ適用計画部２５によるパッチ適用計画処理の手順について、図１４を参照して説明する。図１４は、実施例１に係るパッチ適用計画処理の手順を示すフローチャートである。なお、入出力装置３からパッチの適用計画の要求が出されたとする。パッチの適用計画の要求は、例えばＶＭＭ９１に対して新たにパッチの適用が必要になったときに出される。【００６４】
まず、パッチ適用計画部２５は、パッチの適用計画が要求されたか否かを判定する（ステップＳ６１）。パッチの適用計画が要求されなかったと判定した場合（ステップＳ６１；Ｎｏ）、パッチ適用計画部２５は、パッチの適用計画が要求されるまで判定処理を繰り返す。【００６５】
一方、パッチの適用計画が要求されたと判定した場合（ステップＳ６１；Ｙｅｓ）、パッチ適用計画部２５は、各ＶＭＭの、メモリの使用頻度のばらつき度を計算する（ステップＳ６２）。例えば、パッチ適用計画部２５は、ＶＭ構成情報テーブル１３に記憶されたＶＭＭ９１毎に、ＶＭＭ９１上の各ＶＭ９２のトレンド期間１２ｂについてメモリの使用頻度のばらつき度を、ＶＭトレンドテーブル１２を用いて計算する。【００６６】
続いて、パッチ適用計画部２５は、各ＶＭＭ９１のパッチ適用の推奨時期を計算する（ステップＳ６３）。例えば、パッチ適用計画部２５は、ＶＭトレンドテーブル１２に基づいて、ＶＭＭ９１毎に、それぞれのトレンド期間の数を計算し、計算した数が最も大きいトレンド期間をパッチ適用時期とする。【００６７】
そして、パッチ適用計画部２５は、ばらつき度が最小のＶＭＭ９１を選択する（ステップＳ６４）。そして、パッチ適用計画部２５は、選択したＶＭＭ９１について、推奨時期にパッチが適用されるようにスケジューリングする（ステップＳ６５）。その後、パッチ適用実行部２６は、パッチ適用計画部２５によるスケジューリングに基づいて、選択したＶＭＭ９１にパッチを適用する。【００６８】
なお、上記したパッチスケジューリング処理によって作成および更新された各種テーブルの各内容を、制御部２０は、ＧＵＩ（Graphical  User  Interface）を用いて参照するようにしても良い。図１５Ａは、各種テーブルを参照するためのトップ画面であるパッチスケジューリング参照画面の一例を示す図である。図１５Ｂは、ＶＭトレンドテーブル１２の内容を参照するＶＭトレンド参照画面の一例を示す図である。図１５Ｃは、ＶＭＭパッチ管理テーブル１４の内容を参照するＶＭＭパッチ管理参照画面の一例を示す図である。図１５Ｄは、ＶＭ移動履歴テーブル１５の内容を参照するＶＭ移動履歴参照画面の一例を示す図である。【００６９】
図１５Ａに示すように、パッチスケジューリング参照画面ｇ１には、ＶＭトレンド参照ボタンｇ１１とＶＭＭパッチ管理参照ボタンｇ１２とＶＭ移動履歴参照ボタンｇ１３と終了ボタンｇ１４とが、入出力装置３に表示される。ＶＭトレンド参照ボタンｇ１１は、ＶＭトレンドテーブル１２が参照される際に用いられるボタンである。ＶＭＭパッチ管理参照ボタンｇ１２は、ＶＭＭパッチ管理テーブル１４が参照される際に用いられるボタンである。ＶＭ移動履歴参照ボタンｇ１３は、ＶＭ移動履歴テーブル１５が参照される際に用いられるボタンである。終了ボタンｇ１４は、パッチスケジューリング参照画面ｇ１を終了する際に用いられるボタンである。【００７０】
図１５Ｂに示すように、ＶＭトレンド参照画面ｇ２には、ＶＭ名ｇ２１とトレンド期間ｇ２２とメモリの使用頻度（平均値）ｇ２３と戻るボタンｇ２４とが、入出力装置３に表示される。ＶＭ名ｇ２１、トレンド期間ｇ２２およびメモリの使用頻度（平均値）ｇ２３は、それぞれＶＭトレンドテーブル１２のＶＭ名１２ａ、トレンド期間１２ｂおよびメモリの使用頻度（平均値）１２ｃに対応する。戻るボタンｇ２４は、元のパッチスケジューリング参照画面ｇ１に戻る際に用いられるボタンである。例えば、制御部２０は、ＶＭトレンド参照画面ｇ２の表示要求を受け付けると、ＶＭトレンドテーブル１２に記憶された内容に基づいて表示する。一例として、ＶＭトレンド参照画面ｇ２には、ＶＭ名ｇ２１が「ＶＭ１」である場合、トレンド期間ｇ２２として「夜」、メモリの使用頻度（平均値）ｇ２３として「１１０４」と表示されている。【００７１】
図１５Ｃに示すように、ＶＭＭパッチ管理参照画面ｇ３には、ＶＭＭ名ｇ３１と推奨時期ｇ３２とばらつき度ｇ３３と戻るボタンｇ３４とが、入出力装置３に表示される。ＶＭＭ名ｇ３１、推奨時期ｇ３２およびばらつき度ｇ３３は、それぞれＶＭＭパッチ管理テーブル１４のＶＭＭ名１４ａ、推奨時期１４ｂおよびエントロピー１４ｃに対応する。戻るボタンｇ３４は、元のパッチスケジューリング参照画面ｇ１に戻る際に用いられるボタンである。例えば、制御部２０は、ＶＭＭパッチ管理参照画面ｇ３の表示要求を受け付けると、ＶＭＭパッチ管理テーブル１４に記憶された内容に基づいて表示する。一例として、ＶＭＭパッチ管理参照画面ｇ３には、ＶＭＭ名ｇ３１が「ＶＭＭ１」である場合、推奨時期ｇ３２として「夜」、ばらつき度ｇ３３として「０．２７６」と表示されている。【００７２】
図１５Ｄに示すように、ＶＭ移動履歴参照画面ｇ４には、日時ｇ４１と移動ＶＭｇ４２と移動元ＶＭＭｇ４３と移動先ＶＭＭｇ４４と戻るボタンｇ４５とが、入出力装置３に表示される。日時ｇ４１、移動ＶＭｇ４２、移動元ＶＭＭｇ４３および移動先ＶＭＭｇ４４は、それぞれＶＭ移動履歴テーブル１５の日時１５ａ、移動ＶＭ１５ｂ、移動元ＶＭＭ１５ｃおよび移動先ＶＭＭ１５ｄに対応する。戻るボタンｇ４４は、元のパッチスケジューリング参照画面ｇ１に戻る際に用いられるボタンである。例えば、制御部２０は、ＶＭ移動履歴参照画面ｇ４の表示要求を受け付けると、ＶＭ移動履歴テーブル１５に記憶された内容に基づいて表示する。一例として、ＶＭ移動履歴参照画面ｇ４には、日時ｇ４１が「９／６  １８：１０：１１」である場合、移動ＶＭｇ４２として「ＶＭ５」、移動元ＶＭＭｇ４３として「ＶＭＭ１」、移動先ＶＭＭｇ４４として「ＶＭＭ５」と表示されている。【００７３】
これにより、ユーザは、適宜各種テーブルの内容を参照することで、パッチスケジューリング処理によって実行されたＶＭＭ９１毎のトレンド期間のばらつきを確認することができる。【００７４】
［実施例１の効果］
上記実施例１によれば、管理サーバ１は、ＶＭ９２の所定の指標（例えば、メモリの使用頻度）に関する傾向が類似するＶＭ９２を同じＶＭＭ９１上に集約する。そして、管理サーバ１は、ＶＭＭ９１上に集約された各ＶＭ９２の傾向と、各ＶＭ９２が他のＶＭＭ９１上に移動する場合の移動時間とに基づいて、各ＶＭ９２を移動する期間を決定する。そして、パッチ適用計画部２５は、決定した期間にＶＭＭ９１へのパッチの適用をスケジューリングする。かかる構成によれば、管理サーバ１は、ＶＭＭ９１にパッチが適用される際、当該ＶＭＭ９１上に集約されたＶＭ９２を他のＶＭＭ９１に移動（ライブマイグレーション）する移動時間を短縮することが可能になる。【００７５】
また、上記実施例１によれば、管理サーバ１は、ＶＭＭ９１毎に、ＶＭ使用性能テーブル１１に記録されたメモリの使用頻度が他の期間より低い期間を選択する。そして、管理サーバ１は、選択した期間についてメモリの使用頻度のばらつきを算出する。そして、管理サーバ１は、算出したばらつきが最大のＶＭＭ９１上のＶＭ９２を他のＶＭＭ９１上に移動（ライブマイグレーション）する。かかる構成によれば、管理サーバ１は、ＶＭＭ９１上のＶＭ９２の期間についてのばらつきが最大のＶＭＭ９１上のＶＭ９２を他のＶＭＭ９１上に移動することとしたので、移動元のＶＭＭ９１のメモリの使用頻度のばらつきを小さくすることが可能となる。【００７６】
また、上記実施例１によれば、管理サーバ１は、移動対象のＶＭ９２について、算出したばらつきが最大のＶＭＭ９１上のＶＭ９２であってメモリの使用頻度に関する傾向が類似しない期間に対応するＶＭ９２を他のＶＭＭ９１上に移動する。かかる構成によれば、管理サーバ１は、ばらつきが最大のＶＭＭ９１上の類似しない期間を持つＶＭ９２を他のＶＭＭ９１上に移動するので、移動元のＶＭＭ９１におけるばらつきを小さくできる。この結果、管理サーバ１は、当該ＶＭＭ９１にパッチが適用される際、当該ＶＭＭ９１上のＶＭ９２の移動時間を短縮することができる。【００７７】
また、上記実施例１によれば、管理サーバ１は、さらに、移動対象のＶＭ９２が仮に移動された場合に移動先のＶＭＭ９１上の、メモリの使用頻度のばらつきが最小となるＶＭＭ９１を選択し、選択したＶＭＭ９１上に移動対象のＶＭ９２を移動（ライブマイグレーション）する。かかる構成によれば、管理サーバ１は、移動先のＶＭＭ９１上に、メモリの使用頻度が低い期間が類似するＶＭ９２を集約できるので、当該ＶＭＭ９１にパッチが適用される際、当該ＶＭＭ９１上のＶＭ９２の移動時間を短縮することができる。【００７８】
また、上記実施例１によれば、管理サーバ１は、類似するＶＭ９２を同じＶＭＭ９１上に集約する処理を繰り返し行う。かかる構成によれば、管理サーバ１は、集約する処理を繰り返し行うことで、各ＶＭＭ９１に対して類似するＶＭ９２を精度よく集約できる。この結果、管理サーバ１は、各ＶＭＭ９１に対して、順次パッチを適用する際、各ＶＭＭ９１上のＶＭ９２の移動時間を短縮することができ、全体のパッチ適用時間を短縮できる。
【実施例２】
【００７９】
ところで、実施例１では、管理サーバ１は、ＶＭ使用性能計測部２１によって計測されるスパンを１２時間として、夜の期間および昼の期間を、メモリの使用頻度が低いという傾向を示す期間、すなわちトレンド期間とした。つまり、管理サーバ１は、トレンド期間となり得るスパンを固定とした。しかしながら、管理サーバ１は、これに限定されるものではなく、トレンド期間となり得るスパンを可変とし、動的に選択するようにしても良い。そこで、実施例２では、トレンド期間となり得るスパンを動的に選択する管理サーバ１について説明する。【００８０】
制御部２０は、トレンド期間となり得るスパンを選択する。トレンド期間となり得るスパンは、２時間単位であったり、曜日で区別される１日単位であったりすることができる。例えば、管理サーバ１の記憶部１０は、２種類のＶＭ使用性能テーブル１１を備える。１種類目のＶＭ使用性能テーブル１１は、２時間単位のスパンで計測される場合のテーブルであり、２種類目のＶＭ使用性能テーブル１１は、曜日で区別される１日単位のスパンで計測される場合のテーブルである。そして、制御部２０は、パッチスケジューリング処理を行う前に、各ＶＭ９２のメモリの使用頻度を、２時間のスパンおよび１日のスパンで計測し、計測した結果をそれぞれＶＭ使用性能テーブル１１に記録する。【００８１】
ここで、２種類のＶＭ使用性能テーブル１１のデータ構造について、図１６Ａおよび図１６Ｂを参照しながら説明する。図１６Ａは、２時間単位のスパンで計測される場合のＶＭ使用性能テーブルのデータ構造を示す図である。図１６Ｂは、曜日で区別される１日単位のスパンで計測される場合のＶＭ使用性能テーブルのデータ構造を示す図である。【００８２】
図１６Ａに示すように、ＶＭ使用性能テーブル１１は、時間に対応する０〜２、２〜４、・・・、２２〜２４をＶＭ名に対応付けて記憶する。０〜２は、ＶＭ９２の計測した０時から２時までの期間におけるメモリの使用頻度を示す。２〜４、・・・、２２〜２４は、０〜２と同様に、ＶＭ９２の計測した該当期間におけるメモリの使用頻度を示す。一例として、ＶＭ名が「ＶＭ１」である場合、０〜２として「２００」、２〜４として「３００」、・・・、２２〜２４として「４００」と記憶している。ＶＭ名が「ＶＭ２」である場合、０〜２として「１２０」、２〜４として「１２０」、・・・、２２〜２４として「０」と記憶している。【００８３】
図１６Ｂに示すように、ＶＭ使用性能テーブル１１は、曜日に対応する日、月、火、水、木、金、土をＶＭ名に対応付けて記憶する。日は、ＶＭ９２の計測した日曜日の１日の期間におけるメモリの使用頻度を示す。月、火、水、木、金、土は、日と同様に、ＶＭ９２の計測した該当曜日の１日の期間におけるメモリの使用頻度を示す。一例として、ＶＭ名が「ＶＭ１」である場合、日として「２００」、月として「１１００」、・・・、土として「４００」と記憶している。ＶＭ名が「ＶＭ２」である場合、日として「４００」、月として「３００」、・・・、土として「４００」と記憶している。【００８４】
かかる２種類のＶＭ使用性能テーブル１１に計測された結果を用いて、制御部２０は、トレンド期間となり得るスパンを選択する。例えば、制御部２０は、ＶＭ毎に、トレンド期間となり得るスパンを２時間とした場合に、２時間単位で計測されたメモリ使用頻度の１時間当たりの平均値を計算する。ここでは、ＶＭ１、ＶＭ２について、メモリ使用頻度の平均値は、それぞれ式（１）、式（２）のように表される。
（２００＋３００＋２００＋４００＋１２０＋１００＋１５０＋９００＋１１０＋８００＋６００＋４００）／１２＝７２０  ・・・式（１）
（１２００＋１２００＋１２００＋１２００＋０＋０＋０＋０＋０＋０＋０＋０）／１２＝４００                          ・・・式（２）【００８５】
また、制御部２０は、ＶＭ毎に、トレンド期間となり得るスパンを曜日で区別される１日単位とした場合に、メモリ使用頻度の１日当たりの平均値を計算する。ここでは、ＶＭ１、ＶＭ２について、メモリ使用頻度の１日当たりの平均値は、それぞれ式（３）、式（４）のように表される。
（２００＋１１００＋９００＋７００＋８００＋１０００＋４００）／７＝７１０  ・・・式（３）
（４００＋３００＋４００＋３００＋５００＋５００＋４００）／７＝４００      ・・・式（４）【００８６】
また、制御部２０は、ＶＭ毎に、トレンド期間となり得るスパンを２時間単位とした場合のメモリ使用頻度の平均値と最小値の差を計算する。ここでは、ＶＭ１、ＶＭ２について、メモリ使用頻度の平均値と最小値の差は、それぞれ式（５）、式（６）のように表される。
７２０−２００＝５２０・・・式（５）
４００−０＝４００    ・・・式（６）【００８７】
また、制御部２０は、ＶＭ毎に、トレンド期間となり得るスパンを曜日で区別される１日単位とした場合のメモリ使用頻度の平均値と最小値の差を計算する。ここでは、ＶＭ１、ＶＭ２について、メモリ使用頻度の平均値と最小値の差は、それぞれ式（７）、式（８）のように表される。
７１０−２００＝５１０・・・式（７）
４００−３００＝１００・・・式（８）【００８８】
さらに、制御部２０は、トレンド期間となり得るスパン毎に、メモリ使用頻度の平均値と最小値の差の平均を計算する。ここでは、トレンド期間となり得るスパンを２時間とした場合の平均値は、式（９）のように表される。
（５２０＋４００）／２＝４６０・・・式（９）
また、トレンド期間となり得るスパンを曜日で区別される１日とした場合の平均値は、式（１０）のように表される。
（５１０＋１００）／２＝３０５・・・式（１０）【００８９】
そして、制御部２０は、メモリ使用頻度の平均値と最小値の差の平均が大きい方のスパンを、パッチスケジューリング処理を行う際に用いられる、トレンド期間となり得るスパンとして選択する。すなわち、メモリ使用頻度の平均値と最小値の差の平均が大きければ、メモリ使用頻度がより低い期間をトレンド期間とすることができると推測できるからである。ここでは、式（９）で表された値の方が、式（１０）で表された値より大きいので、制御部２０は、トレンド期間となり得るスパンを２時間と選択する。【００９０】
なお、各ＶＭ９２で実行される業務は、随時変更される場合もある。そこで、制御部２０は、トレンド期間となり得るスパンを選択する処理を適宜行うことが望ましい。【００９１】
［実施例２の効果］
上記実施例２によれば、管理サーバ１は、ＶＭ９２のメモリの使用頻度を、複数のスパンでＶＭ９２毎に測定し、該複数のスパンで測定した結果をそれぞれＶＭ使用性能テーブル１１に記録する。そして、管理サーバ１は、複数のスパンで記録された情報に基づいて、トレンド期間となり得るスパンを動的に決定する。かかる構成によれば、管理サーバ１は、トレンド期間となり得るスパンを動的に決定するので、メモリ使用頻度がより低い期間をトレンド期間とすることが可能となる。【００９２】
［プログラム等］
なお、実施例１、２では、ＶＭＭ９１は、物理サーバ２上に１つ搭載されているとして説明した。しかしながら、ＶＭＭ９１は、これに限定されず、物理サーバ２上に複数搭載されていても良い。【００９３】
また、管理サーバ１は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した制御部２０と、記憶部１０等の各機能を搭載することによって実現することができる。【００９４】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、ＶＭ移動計画部２３とＶＭ移動実行部２４とを１個の部として統合しても良い。一方、パッチ適用実行部２６を、パッチを適用するＶＭＭ９１上のＶＭ９２を移動する移動部と移動した後当該ＶＭＭ９１にパッチを適用するパッチ適用部とに分散しても良い。また、ＶＭ使用性能テーブル１１等の記憶部１０を管理サーバ１の外部装置としてネットワーク経由で接続するようにしても良い。【００９５】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図１に示した管理サーバ１と同様の機能を実現するパッチスケジューリングプログラムを実行するコンピュータの一例を説明する。図１７は、パッチスケジューリングプログラムを実行するコンピュータの一例を示す図である。【００９６】
図１７に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取る読み取り装置２０４と、ネットワーク５を介して他のコンピュータとの間でデータの授受を行うインタフェース装置２０５とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０６と、ハードディスク装置２０７を有する。そして、各装置２０１〜２０７は、バス２０８に接続される。【００９７】
ハードディスク装置２０７は、パッチスケジューリングプログラム２０７ａおよびパッチ制御関連情報２０７ｂを記憶する。ＣＰＵ２０１は、パッチスケジューリングプログラム２０７ａを読み出して、ＲＡＭ２０６に展開する。パッチスケジューリングプログラム２０７ａは、パッチスケジューリングプロセス２０６ａとして機能する。【００９８】
例えば、パッチスケジューリングプロセス２０６ａは、ＶＭ使用性能計測部２１、トレンド分析部２２、ＶＭ移動計画部２３、ＶＭ移動実行部２４、パッチ適用計画部２５、パッチ適用実行部２６に対応する。パッチ制御関連情報２０７ｂは、ＶＭ使用性能テーブル１１、ＶＭトレンドテーブル１２、ＶＭ構成情報テーブル１３、ＶＭＭパッチ管理テーブル１４、ＶＭ移動履歴テーブル１５に対応する。【００９９】
なお、パッチスケジューリングプログラム２０７ａについては、必ずしも最初からハードディスク装置２０７に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからパッチスケジューリングプログラム２０７ａを読み出して実行するようにしても良い。
【符号の説明】
【０１００】
１  管理サーバ
２  物理サーバ
３  入出力装置
９  仮想マシンシステム
１０  記憶部
１１  ＶＭ使用性能テーブル
１２  ＶＭトレンドテーブル
１３  ＶＭ構成情報テーブル
１４  ＶＭＭパッチ管理テーブル
１５  ＶＭ移動履歴テーブル
２０  制御部
２１  ＶＭ使用性能計測部
２２  トレンド分析部
２３  ＶＭ移動計画部
２４  ＶＭ移動実行部
２５  パッチ適用計画部
２６  パッチ適用実行部
９１  ＶＭＭ
９２  ＶＭ
１００  クラウド
【図１】
2013140524.tif 000003
【図２】
2013140524.tif 000004
【図３】
2013140524.tif 000005
【図４】
2013140524.tif 000006
【図５】
2013140524.tif 000007
【図６】
2013140524.tif 000008
【図７Ａ】
2013140524.tif 000009
【図７Ｂ】
2013140524.tif 000010
【図７Ｃ】
2013140524.tif 000011
【図８】
2013140524.tif 000012
【図９】
2013140524.tif 000013
【図１０】
2013140524.tif 000014
【図１１】
2013140524.tif 000015
【図１２】
2013140524.tif 000016
【図１３】
2013140524.tif 000017
【図１４】
2013140524.tif 000018
【図１５Ａ】
2013140524.tif 000019
【図１５Ｂ】
2013140524.tif 000020
【図１５Ｃ】
2013140524.tif 000021
【図１５Ｄ】
2013140524.tif 000022
【図１６Ａ】
2013140524.tif 000023
【図１６Ｂ】
2013140524.tif 000024
【図１７】
2013140524.tif 000025
【図１８】
2013140524.tif 000026
【国際調査報告】
2013140524.tif 000027
2013140524.tif 000028
2013140524.tif 000029