(57)【要約】【課題】新たにインストールする必要があるパッチプログラムを抽出する。【解決手段】複数の仮想マシン上で実行される各プロセスの実行に伴って、各仮想マシンが使用する物理リソースの使用量に関する情報である物理リソース情報を取得し、物理リソース情報に基づき、複数の仮想マシンを１つ以上のグループに分類し、各仮想マシンに適用されているパッチプログラムの情報である適用情報を、グループ毎に取得し、適用情報に、パッチプログラムに含まれる第１パッチプログラムが適用済である仮想マシンと未適用である他の仮想マシンとが含まれるグループが存在することを示す情報が含まれている場合、第１パッチプログラムを、他の仮想マシンに対して適用すべきパッチプログラムとして抽出する。【選択図】図１１
2017004201.tif 000002
【特許請求の範囲】
【請求項１】
パッチプログラムの適用対象である複数の仮想マシン上で実行される各プロセスの実行に伴って、各仮想マシンが使用する物理リソースの使用量に関する情報である物理リソース情報を取得する物理リソース情報取得部と、
取得した前記物理リソース情報に基づき、前記複数の仮想マシンを１つ以上のグループに分類する仮想マシン分類部と、
各仮想マシンに適用されているパッチプログラムの情報である適用情報を、前記グループ毎に取得する適用情報取得部と、
取得した前記適用情報に、前記パッチプログラムに含まれる第１パッチプログラムが適用済である仮想マシンと、前記第１パッチプログラムが未適用である他の仮想マシンとが含まれる前記グループが存在することを示す情報が含まれている場合、前記第１パッチプログラムを、前記他の仮想マシンに対して適用すべきパッチプログラムとして抽出するパッチプログラム抽出部と、を有する、
ことを特徴とするパッチプログラム抽出装置。
【請求項２】
請求項１において、
前記物理リソース情報は、前記複数の仮想マシンに含まれる仮想マシン毎の、前記プロセスをそれぞれ実行した場合におけるＣＰＵの使用率と、前記複数の仮想マシンのそれぞれに割り当てられたＣＰＵの最大使用量とを乗算することにより算出された情報である、
ことを特徴とするパッチプログラム抽出装置。
【請求項３】
請求項１において、
前記仮想マシン分類部は、前記複数の仮想マシンのそれぞれに対応する前記物理リソース情報を入力としたクラスタ分析を行うことにより、前記複数の仮想マシンの分類を行う、
ことを特徴とするパッチプログラム抽出装置。
【請求項４】
請求項１において、
前記パッチプログラム抽出部は、前記適用情報に、前記複数の仮想マシンのうち、前記第１パッチプログラムが適用済である仮想マシンの割合が第１の閾値以上である旨の情報が含まれている場合に、前記第１パッチプログラムの抽出を行う、
ことを特徴とするパッチプログラム抽出装置。
【請求項５】
請求項１において、さらに、
前記第１パッチプログラムが未適用である仮想マシンに対して、抽出した前記第１パッチプログラムの適用を推奨する旨の情報を出力する情報出力部を有する、
ことを特徴とするパッチプログラム抽出装置。
【請求項６】
コンピュータに、
パッチプログラムの適用対象である複数の仮想マシン上で実行される各プロセスの実行に伴って、各仮想マシンが使用する物理リソースの使用量に関する情報である物理リソース情報を取得し、
取得した前記物理リソース情報に基づき、前記複数の仮想マシンを１つ以上のグループに分類し、
各仮想マシンに適用されているパッチプログラムの情報である適用情報を、前記グループ毎に取得し、
取得した前記適用情報に、前記パッチプログラムに含まれる第１パッチプログラムが適用済である仮想マシンと、前記第１パッチプログラムが未適用である他の仮想マシンとが含まれる前記グループが存在することを示す情報が含まれている場合、前記第１パッチプログラムを、前記他の仮想マシンに対して適用すべきパッチプログラムとして抽出する、
処理を実行させることを特徴とするパッチプログラム抽出プログラム。
【請求項７】
パッチプログラムの適用対象である複数の仮想マシン上で実行される各プロセスの実行に伴って、各仮想マシンが使用する物理リソースの使用量に関する情報である物理リソース情報を取得し、
取得した前記物理リソース情報に基づき、前記複数の仮想マシンを１つ以上のグループに分類し、
各仮想マシンに適用されているパッチプログラムの情報である適用情報を、前記グループ毎に取得し、
取得した前記適用情報に、前記パッチプログラムに含まれる第１パッチプログラムが適用済である仮想マシンと、前記第１パッチプログラムが未適用である他の仮想マシンとが含まれる前記グループが存在することを示す情報が含まれている場合、前記第１パッチプログラムを、前記他の仮想マシンに対して適用すべきパッチプログラムとして抽出する、
ことを特徴とするパッチプログラム抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パッチプログラム抽出装置、パッチプログラム抽出プログラム及びパッチプログラム抽出方法に関する。
【背景技術】
【０００２】
利用者に対してサービスを提供する事業者（以下、単に事業者とも呼ぶ）は、利用者に対して各種サービスの提供を行うために、例えば、仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）に業務システムを構築して稼働させる。具体的に、事業者は、仮想マシンにインストールされたアプリケーションやオペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を連携させて、業務システムとして動作させることにより、利用者に対するサービスの提供を行う。
【０００３】
そして、事業者は、必要に応じて、業務システムが稼働している仮想マシンに、アプリケーションのバージョンアップ等を行うためのプログラム（以下、パッチプログラムとも呼ぶ）をインストールする。これにより、事業者は、例えば、業務システムの一部として動作するアプリケーションに内在する不具合の修正等を行うことが可能になる（例えば、特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１６８７１０号公報
【特許文献２】特開２０１４−０１３４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のような業務システムにおいて、事業者は、仮想マシンの管理を行うために、各仮想マシンにインストールされているパッチプログラムを把握する必要がある。
【０００６】
しかしながら、各仮想マシンに割り当てられる物理リソース（仮想マシンが生成されている物理マシンのＣＰＵやメモリ等）は、業務システムの使用状況等によって変化する場合がある。さらに、業務システムの規模によっては、管理する必要がある仮想マシン３の数が膨大になる場合がある。そのため、事業者は、各仮想マシンにインストールされているパッチプログラムの状況を正確に把握することができず、各仮想マシンに対して新たにインストールする必要があるパッチプログラムを特定することができない場合がある。
【０００７】
そこで、一つの側面では、新たにインストールする必要があるパッチプログラムを抽出するパッチプログラム抽出装置、パッチプログラム抽出プログラム及びパッチプログラム抽出方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施の形態の一つの態様によれば、パッチプログラムの適用対象である複数の仮想マシン上で実行される各プロセスの実行に伴って、各仮想マシンが使用する物理リソースの使用量に関する情報である物理リソース情報を取得する物理リソース情報取得部と、
取得した前記物理リソース情報に基づき、前記複数の仮想マシンを１つ以上のグループに分類する仮想マシン分類部と、
各仮想マシンに適用されているパッチプログラムの情報である適用情報を、前記グループ毎に取得する適用情報取得部と、
取得した前記適用情報に、前記パッチプログラムに含まれる第１パッチプログラムが適用済である仮想マシンと、前記第１パッチプログラムが未適用である他の仮想マシンとが含まれる前記グループが存在することを示す情報が含まれている場合、前記第１パッチプログラムを、前記他の仮想マシンに対して適用すべきパッチプログラムとして抽出するパッチプログラム抽出部と、を有する。
【発明の効果】
【０００９】
一つの側面によれば、新たにインストールする必要があるパッチプログラムを抽出する。
【図面の簡単な説明】
【００１０】
【図１】情報処理システム１０の全体構成を示す図である。
【図２】図１で説明した物理マシン２及び仮想マシン３の具体例を説明する図である。
【図３】クラスタ分析の具体例を説明する図である。
【図４】クラスタ分析の具体例を説明する図である。
【図５】クラスタ分析の具体例を説明する図である。
【図６】クラスタ分析の具体例を説明する図である。
【図７】クラスタ分析の具体例を説明する図である。
【図８】クラスタ分析の具体例を説明する図である。
【図９】情報処理装置１のハードウエア構成を説明する図である。
【図１０】図９の情報処理装置１の機能ブロック図である。
【図１１】第１の実施の形態におけるパッチプログラム抽出処理の概略を説明するフローチャート図である。
【図１２】第１の実施の形態におけるパッチプログラム抽出処理の詳細を説明するフローチャート図である。
【図１３】第１の実施の形態におけるパッチプログラム抽出処理の詳細を説明するフローチャート図である。
【図１４】第１の実施の形態におけるパッチプログラム抽出処理の詳細を説明するフローチャート図である。
【図１５】使用率情報１３１の具体例について説明する図である。
【図１６】最大使用量情報１３２の具体例について説明する図である。
【図１７】物理リソース情報１３３の具体例について説明する図である。
【図１８】グループ情報１３４の具体例について説明する図である。
【図１９】適用情報１３５の具体例について説明する図である。
【図２０】出力装置に出力された場合の推奨情報１３６の具体例について説明する図である。
【発明を実施するための形態】
【００１１】
［情報処理システムの構成］
図１は、情報処理システム１０の全体構成を示す図である。図１に示す情報処理システム１０は、情報処理装置１（以下、コンピュータ１またはパッチプログラム抽出装置１とも呼ぶ）と、仮想マシン３が生成される物理マシン２と、利用者端末２０とを有する。仮想マシン３には、インターネットやイントラネット等のネットワークＮＷを介して、利用者端末２０からアクセス可能である。
【００１２】
物理マシン２は、図１の例においては複数の物理マシンから構成されており、各物理マシンは、ＣＰＵやメモリ等の物理リソースを有する。そして、各物理マシン２のリソースは、複数の仮想マシン３に割り当てられる。
【００１３】
情報処理装置１は、仮想マシン３とアクセス可能であり、各仮想マシン３の管理を行う。具体的に、情報処理装置１は、例えば、物理マシン２に生成された仮想マシン３にインストールされているパッチプログラムの管理（パッチプログラムの種類やバージョンの管理等）を行う。なお、情報処理装置１は、物理マシン２と異なる物理マシンに構築されるものであってもよく、物理マシン２に生成された仮想マシン３に構築されるものであってもよい。
【００１４】
仮想マシン３は、例えば、そのインフラをネットワーク経由で利用者に提供するためのもの（以下、クラウドサービスとも呼ぶ）である。クラウドサービスは、コンピュータシステムを構築し稼働させるための基盤、すなわち、仮想マシン３やネットワーク等のインフラストラクチャそのものをネットワーク経由で提供するサービスである。また、利用者は、例えば、利用者端末２０からクラウドサービスポータルサイトにアクセスして、仮想マシンに必要な仕様、例えばＣＰＵのクロック周波数、メモリの容量（ＧＢ）、ハードディスクの容量（ＭＢ／ｓｅｃ、ＩＯＰＳ）、及びネットワークの通信帯域幅（Ｇｂｐｓ）を選択し、それらについてクラウド利用契約を締結する。
【００１５】
そして、仮想マシン３には、例えば、利用者に対してサービスを提供するための業務システムが構築される。これにより、事業者は、利用者に対して各種サービスの提供を行うことが可能になる。
【００１６】
また、仮想化ソフトウエア４は、情報処理装置１からの指示に応じて、物理マシン２の物理リソースを割り当てることにより、仮想マシン３を動作させる基盤ソフトウエアである。仮想化ソフトウエア４は、例えば、物理マシン２で動作する。
【００１７】
図１に示す情報処理システム１０において、各仮想マシン３に割り当てられる物理リソースの量は、仮想マシン３に構築された業務システムの稼働状況によって変化する。さらに、業務システムの規模によっては、管理する必要がある仮想マシン３の数が膨大になる場合がある。そのため、事業者は、各仮想マシン３にインストールされているパッチプログラムの状況を正確に把握することができず、各仮想マシン３に新たにインストールする必要があるパッチプログラムを特定することができない場合がある。
【００１８】
そこで、情報処理装置１は、例えば、物理マシン２に生成された仮想マシン３についてクラスタ分析を行うことにより、各仮想マシン３のグループ分けを行う。具体的に、情報処理装置１は、各仮想マシン３の稼働状況を示す情報を入力としてクラスタ分析を行う。そして、情報処理装置１は、クラスタ分析によりグループ分けされたグループ毎に、パッチプログラムのインストール状況を比較する。
【００１９】
これにより、情報処理装置１は、例えば、同じグループに分類された各仮想マシン３におけるパッチプログラムのインストール状況の差異に関する情報を取得することが可能になる。そのため、情報処理装置１は、同じグループに分類された仮想マシン３において、一部の仮想マシン３のみインストールされていないパッチプログラムが存在した場合、例えば、そのパッチプログラムをインストールすべきパッチプログラムとして抽出することが可能になる。すなわち、情報処理装置１は、この場合、全ての仮想マシン３にインストールされているパッチプログラムについて詳細な検証を行う必要がなくなる。そのため、情報処理装置１は、管理対象の仮想マシン３の数が膨大である場合であっても、仮想マシン３に新たにインストールすべきパッチプログラムの抽出を比較的容易に行うことが可能になる。以下、クラスタ分析の具体例について説明を行う。
【００２０】
［クラスタ分析の具体例］
次に、クラスタ分析の具体例について説明を行う。クラスタ分析は、異なる性質を有する対象（以下、分析対象とも呼ぶ）が含まれる集団の中から、互いに類似する性質を有する分析対象を特定し、グループ化するための手法である。以下、情報処理装置１がクラスタ分析を行う場合の具体例について説明する。なお、以下、ｋ−ｍｅａｎｓ法を用いてクラスタ分析を行うことにより、分析対象を２つのグループに分類する場合について説明を行う。
【００２１】
初めに、図１で説明した仮想マシン３の詳細について説明を行う。図２は、図１で説明した仮想マシン３の具体例を説明する図である。図２に示す物理マシン２には、仮想マシン３Ａ、３Ｂ、３Ｃ、３Ｄ、３Ｅ及び３Ｆが生成されている。そして、図２に示す仮想マシン３Ａ、３Ｂ、３Ｄ及び３Ｅは、Ｗｅｂサーバとして機能する仮想マシンであり、図２に示す仮想マシン３Ｃ及び３Ｆは、アプリケーションサーバ（以下、単にＡＰサーバとも呼ぶ）として機能する仮想マシンである。また、図２に示す各仮想マシンには、各仮想マシンが必要な処理を実行するためのプログラム（１以上のプログラム）がそれぞれインストールされている。
【００２２】
次に、情報処理装置１が仮想マシン３Ａ、３Ｂ、３Ｃ、３Ｄ、３Ｅ及び３Ｆを分析対象としてクラスタ分析を行う場合の具体例について説明を行う。図３から図８は、クラスタ分析の具体例を説明する図である。具体的に、図３から図７に示す２次元座標系において、横軸は、ＣＰＵの使用率である。また、図３から図７に示す２次元座標系において、縦軸は、各仮想マシン３にインストールされているプログラムが実行する際に起動するプロセスの数である。
【００２３】
情報処理装置１は、初めに、各仮想マシン３のＣＰＵの使用率（例えば、ＣＰＵの平均使用率）と、各仮想マシン３にインストールされているプログラムが実行する際に起動するプロセス数（例えば、単位時間当たりに起動する平均プロセス数）とを取得する。そして、情報処理装置１は、図３の２次座標系に示すように、取得した情報に対応する点を設定する。なお、以下、グラフ上における仮想マシン３Ａ、３Ｂ、３Ｃ、３Ｄ、３Ｅ及び３Ｆに対応する点を、単に点Ａ、点Ｂ、点Ｃ、点Ｄ、点Ｅ及び点Ｆとも呼ぶ。
【００２４】
続いて、情報処理装置１は、点Ａ、点Ｂ、点Ｃ、点Ｄ、点Ｅ及び点Ｆの中から重心点（仮の重心点）となる点を決定する。具体的に、情報処理装置１は、例えば、仮想マシン３のグループ分けを行うグループの数と同じ数の重心点を、ランダムで決定する。仮想マシン３のグループ分けを行うグループの数は、例えば、予め事業者が決定して情報処理装置１に入力しておくものであってよい。そして、情報処理装置１は、図４の２次座標系に示すように、重心点として、例えば、点Ａ及び点Ｅを決定する。
【００２５】
次に、情報処理装置１は、点Ａ、点Ｂ、点Ｃ、点Ｄ、点Ｅ及び点Ｆを２つのグループに分類する。具体的に、情報処理装置１は、重心点として決定した点Ａ及び点Ｅ以外の点である点Ｂ、点Ｃ、点Ｄ及び点Ｆを、点Ａを含むグループまたは点Ｅを含むグループのいずれかに分類する。図４に示す２次座標系において、点Ｂ、点Ｃ、点Ｄ及び点Ｆは、いずれも点Ｅよりも点Ａに近い位置に設定されている。そのため、情報処理装置１は、図５の２次座標系に示すように、点Ｂ、点Ｃ、点Ｄ及び点Ｆを点Ａと同じグループ（以下、グループ１１とも呼ぶ）に分類する。また、情報処理装置１は、図５の２次座標系に示すように、点Ｅと同じグループ（以下、グループ１２とも呼ぶ）に、点Ｅ以外の点を分類しない。
【００２６】
その後、情報処理装置１は、図６に示すように、グループ１１及びグループ１２における新たな重心点を決定する。この場合、情報処理装置１は、図４で説明した場合と異なり、各グループに含まれる点の重心の位置を重心点に設定する。以下、グループ１１の新たな重心点を重心点Ｘ１と呼び、グループ１２の新たな重心点を重心点Ｘ２とも呼ぶ。
【００２７】
そして、情報処理装置１は、点Ａ、点Ｂ、点Ｃ、点Ｄ、点Ｅ及び点Ｆについて、再度グループ分けを行う。図６に示す２次座標系において、点Ａ、点Ｂ、点Ｃ及び点Ｅは、それぞれ重心点Ｘ１よりも重心点Ｘ２に近い位置に設定されている。また、図６に示す２次座標系において、点Ｄ及び点Ｆは、それぞれ重心点Ｘ２よりも重心点Ｘ１に近い位置に設定されている。そのため、情報処理装置１は、図７の２次座標系に示すように、点Ａ、点Ｂ、点Ｃ及び点Ｅを同じグループ（以下、グループ２１とも呼ぶ）に分類する。また、情報処理装置１は、図７の２次座標系に示すように、点Ｄ及び点Ｆを同じグループ（以下、グループ２２とも呼ぶ）に分類する。
【００２８】
その後、情報処理装置１は、２つのグループに含まれる点の組み合わせが変わらなくなるまで、図６で説明した重心点の決定と、図７で説明したグループ分けとを繰り返し行う。これにより、情報処理装置１は、仮想マシン３Ａ、３Ｂ、３Ｃ、３Ｄ、３Ｅ及び３Ｆについて、稼働状況が類似する仮想マシン毎にグループ分けを行うことが可能になる。具体的に、情報処理装置１は、図８に示すように、仮想マシン３Ａ、３Ｂ、３Ｃ及び３Ｅと、仮想マシン３Ｄ及び仮想マシン３Ｆとをそれぞれ異なるグループにグループ分けすることが可能になる。なお、例えば、３種類の情報をクラスタ分析の入力とする場合、情報処理装置１は、各情報に対応する点を３次元座標系に設定する。そして、この場合、情報処理装置１は、３次元座標系に設定された情報に基づいてクラスタ分析を行う。
【００２９】
ここで、上記のようなクラスタ分析によって行われるグループ分けは、クラスタ分析を行う際に入力された情報の内容によって結果が左右される。すなわち、図２から図８で説明した例において、情報処理装置１に入力された情報（ＣＰＵの使用率及びプロセス数）の精度が乏しい場合、稼働状況が類似する仮想マシン３毎にグループ分けが行われない場合がある。
【００３０】
具体的に、図２から図８で説明した例において、各仮想マシン３に割り当てられた物理リソース（ＣＰＵのコア数等）が異なる場合がある。このような場合、情報処理装置１が各仮想マシン３から取得したＣＰＵの平均使用率は、各仮想マシン３の稼働状況を正確に反映していない場合がある。そのため、情報処理装置１は、稼働状況が類似する仮想マシン３毎のグループ分けを行うことができない場合がある。
【００３１】
そこで、本実施の形態では、情報処理装置１は、複数の仮想マシン３が使用する物理リソースの情報に基づき、複数の仮想マシン３のグループ分けを行う。そして、あるパッチプログラム（以下、第１パッチプログラムとも呼ぶ）を適用済である仮想マシン３と、未適用である仮想マシン３とを含むグループが存在するか否かを判定する。その結果、適用済である仮想マシン３と未適用である仮想マシン３とを含むグループが存在する場合、情報処理装置１は、第１パッチプログラムを、未適用の仮想マシン３に適用する必要があるパッチプログラムとして抽出する。
【００３２】
すなわち、本実施の形態における情報処理装置１は、各仮想マシン３が実際に使用している物理リソース（例えば、ＣＰＵ）の使用量に関する情報を取得する。具体的に、情報処理装置１は、例えば、各仮想マシン３のＣＰＵの使用率に加え、各仮想マシン３に割り当てられたＣＰＵの最大使用量（最大使用可能量）を取得する。そして、情報処理装置１は、各仮想マシン３のＣＰＵの使用率と、各仮想マシン３に割り当てられたＣＰＵの最大使用量とを反映した物理リソースの情報を作成する。
【００３３】
これにより、情報処理装置１は、作成した物理リソースの情報に基づいて、仮想マシン３のグループ分けを行うことが可能になる。そのため、情報処理装置１は、各仮想マシン３における稼働状況を反映させた情報に基づく形で、仮想マシン３に適用する必要があるパッチプログラムの抽出を行うことが可能になる。したがって、情報処理装置１は、仮想マシン３に適用する必要があるパッチプログラムの抽出を、信頼度高く行うことが可能になる。
【００３４】
［情報処理装置のハードウエア構成］
次に、情報処理装置１のハードウエア構成について説明する。図９は、情報処理装置１のハードウエア構成を説明する図である。
【００３５】
情報処理装置１は、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００３６】
記憶媒体１０４は、記憶媒体１０４内のプログラム格納領域（図示しない）に、仮想マシン３に適用すべきパッチプログラムを抽出する処理（以下、パッチプログラム抽出処理とも呼ぶ）を行うためのプログラム１１０を記憶する。
【００３７】
ＣＰＵ１０１は、図９に示すように、プログラム１１０の実行時に、プログラム１１０を記憶媒体１０４からメモリ１０２にロードし、プログラム１１０と協働してパッチプログラム抽出処理を行う。
【００３８】
記憶媒体１０４は、例えば、パッチプログラム抽出処理を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）を有する。また、外部インターフェース１０３は、物理マシン２と通信を行う。
【００３９】
[情報処理装置のソフトウエア構成]
次に、情報処理装置１のソフトウエア構成について説明する。図１０は、図９の情報処理装置１の機能ブロック図である。ＣＰＵ１０１は、プログラム１１０と協働することにより、物理リソース情報取得部１１１と、仮想マシン分類部１１２と、適用情報取得部１１３と、パッチプログラム抽出部１１４と、情報出力部１１５として動作する。また、情報格納領域１３０には、使用率情報１３１と、最大使用量情報１３２と、物理リソース情報１３３と、グループ情報１３４と、適用情報１３５と、推奨情報１３６とが記憶されている。
【００４０】
物理リソース情報取得部１１１は、各仮想マシン３の物理リソース情報１３３を取得する。物理リソース情報１３３は、パッチプログラムの適用対象である複数の仮想マシン３上で実行される各プロセスの実行に伴って、各仮想マシン３が使用する物理リソースの使用量に関する情報である。
【００４１】
具体的に、物理リソース情報取得部１１１は、例えば、各プロセスを実行した場合における仮想マシン３毎のＣＰＵの使用率（例えば、各プロセスの実行中におけるＣＰＵの平均使用率）である使用率情報１３１を取得する。また、物理リソース情報取得部１１１は、例えば、各仮想マシン３のそれぞれに割り当てられたＣＰＵの単位時間（例えば、１（秒））当たりの最大使用量（処理能力）である最大使用量情報１３２を取得する。
【００４２】
そして、物理リソース情報取得部１１１は、例えば、使用率情報１３１と最大使用量情報１３２とを乗算することにより、例えば、各プロセスの実行に伴う単位時間当たりのＣＰＵの使用量である物理リソース情報１３３を取得する。その後、物理リソース情報取得部１１１は、例えば、使用率情報１３１、最大使用量情報１３２及び物理リソース情報１３３を情報格納領域１３０に記憶するものであってよい。使用率情報１３１、最大使用量情報１３２及び物理リソース情報１３３の具体例については後述する。
【００４３】
仮想マシン分類部１１２は、物理リソース情報取得部１１１が取得した物理リソース情報１３３に基づき、物理マシン２で動作する仮想マシン３を１つ以上のグループに分類する。仮想マシン分類部１１２は、例えば、図２から図８で説明したクラスタ分析を行うことにより、仮想マシン３を１つ以上のグループに分類する。そして、仮想マシン分類部１１２は、例えば、分類したグループの情報であるグループ情報１３４を情報格納領域１３０に記憶する。
【００４４】
適用情報取得部１１３は、各仮想マシン３に既に適用されているパッチプログラムの情報である適用情報１３５を、仮想マシン分類部１１２が分類したグループ毎に取得する。具体的に、適用情報取得部１１３は、例えば、パッチプログラムを提供するソフトウエアベンダーに問い合わせを行うことによって、各仮想マシン３に適用されているパッチプログラムに関する情報を取得するものであってよい。そして、適用情報取得部１１３は、例えば、取得した情報である適用情報１３５を情報格納領域１３０に記憶する。
【００４５】
パッチプログラム抽出部１１４は、適用情報取得部１１３が取得した適用情報１３５に、第１パッチプログラムが適用済である仮想マシン３と、第１パッチプログラムが未適用である仮想マシン３とが含まれるグループが存在することを示す情報が含まれているかを判定する。その結果、適用情報１３５に上記の情報が含まれている場合、パッチプログラム抽出部１１４は、第１パッチプログラムを、第１パッチプログラムが未適用である仮想マシン３に対して適用すべきパッチプログラムであると判定する。そして、パッチプログラム抽出部１１４は、適用すべきパッチプログラムであると判定された第１パッチプログラムの抽出を行う。
【００４６】
情報出力部１１５は、パッチプログラム抽出部１１４が抽出した第１パッチプログラムに関する情報（以下、推奨情報１３６とも呼ぶ）を、情報処理装置１の出力装置（図示しない）や利用者端末２０に出力する。
【００４７】
[第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図１１は、第１の実施の形態におけるパッチプログラム抽出処理の概略を説明するフローチャート図である。
【００４８】
初めに、情報処理装置１は、図１１に示すように、情報抽出タイミングまで待機する（Ｓ１のＮＯ）。情報抽出タイミングは、パッチプログラム抽出処理を行うタイミングである。具体的に、情報抽出タイミングは、例えば、１日１回等の定期的なタイミングであってもよい。
【００４９】
その後、情報抽出タイミングになった場合（Ｓ１のＹＥＳ）、情報処理装置１は、物理リソース情報１３３を取得する（Ｓ２）。そして、情報処理装置１は、Ｓ２で取得した物理リソース情報１３３に基づき、複数の仮想マシン３を１つ以上のグループに分類する（Ｓ３）。
【００５０】
すなわち、物理リソース情報１３３は、物理マシン２が各仮想マシン３に実際に割り当てている物理リソースの使用量に関する情報である。そのため、情報処理装置１は、物理リソース情報１３３に基づくことにより、各仮想マシン３の稼働状況を対等な条件で比較した上で、各仮想マシン３のグループ分けを行うことが可能になる。
【００５１】
また、情報処理装置１は、Ｓ２の処理において、プロセス毎の物理リソース情報１３３を取得する。そして、情報処理装置１は、プロセス毎の物理リソース情報１３３に基づき、各仮想マシン３のグループ分けを行う。そのため、各仮想マシン３に関する詳細な稼働状況に基づいて、仮想マシン３のグループ分けを行うことが可能になる。
【００５２】
これにより、情報処理装置１は、仮想マシン３のグループ分けを行う際に、稼働状況が類似する仮想マシン３を精度高く同じグループに含めることが可能になる。
【００５３】
次に、情報処理装置１は、第１パッチプログラムが適用済である仮想マシン３と、第１パッチプログラムが未適用である他の仮想マシン３とがそれぞれ含まれるグループが存在するか否かを判定する（Ｓ４）。情報処理装置１は、例えば、管理対象であるパッチプログラムの全てについて、各パッチプログラムが適用済である仮想マシン３と、未適用である他の仮想マシン３とがそれぞれ含まれるグループが存在するか否かを判定するものであってよい。
【００５４】
その結果、第１パッチプログラムが適用済である仮想マシン３と未適用である他の仮想マシン３がそれぞれ含まれるグループが存在すると判定した場合（Ｓ４のＹＥＳ）、情報処理装置１は、第１パッチプログラムを他の仮想マシン３に適用すべきと判定する。そして、情報処理装置１は、他の仮想マシン３に適用すべきパッチプログラムとして、第１パッチプログラムを抽出する（Ｓ５）。
【００５５】
すなわち、情報処理装置１は、同じグループに分類された仮想マシン３については、同じパッチプログラムが適用されるものと判定する。そのため、情報処理装置１は、同じグループにおいて、第１パッチプログラムが適用済である仮想マシン３と未適用である仮想マシン３とが存在する場合、未適用である仮想マシン３に第１パッチプログラムを適用する必要があると判定する。これにより、情報処理装置１は、同じグループに分類された仮想マシン３に適用されているパッチプログラムの比較を行うのみで、仮想マシン３に新たに適用する必要があるパッチプログラムの抽出を行うことが可能になる。
【００５６】
一方、第１パッチプログラムが適用済である仮想マシン３と未適用である他の仮想マシン３がそれぞれ含まれるグループが存在しないと判定した場合（Ｓ４のＮＯ）、情報処理装置１は、Ｓ５の処理を実行しない。
【００５７】
このように、第１の実施の形態によれば、情報処理装置１は、各仮想マシン３の物理リソース情報１３３を取得する物理リソース情報取得部１１１を有する。また、情報処理装置１は、取得した物理リソース情報１３３に基づき、複数の仮想マシン３を１つ以上のグループに分類する仮想マシン分類部１１２を有する。
【００５８】
さらに、情報処理装置１は、各仮想マシン３に適用されているパッチプログラムの情報である適用情報１３５を、グループ毎に取得する適用情報取得部１１３を有する。また、情報処理装置１は、取得した適用情報１３５に、第１パッチプログラムが適用済である仮想マシン３と未適用である他の仮想マシン３とが含まれるグループが存在することを示す情報が含まれているか否かを判定するパッチプログラム抽出部１１４を有する。そして、パッチプログラム抽出部１１４は、上記の情報が含まれていると判定した場合、第１パッチプログラムを、他の仮想マシン３に対して適用すべきパッチプログラムとして抽出する。
【００５９】
これにより、情報処理装置１は、各仮想マシン３における稼働状況を反映させた情報に基づく形で、仮想マシン３に適用する必要があるパッチプログラムの抽出を行うことが可能になる。そのため、情報処理装置１は、仮想マシン３に適用する必要があるパッチプログラムの抽出を、信頼度高く行うことが可能になる。
【００６０】
[第１の実施の形態の詳細]
次に、第１の実施の形態の詳細について説明する。図１２から図１４は、第１の実施の形態におけるパッチプログラム抽出処理の詳細を説明するフローチャート図である。また、図１５から図２０は、第１の実施の形態におけるパッチプログラム抽出処理の詳細を説明する図である。図１５から図２０を参照しながら、図１２から図１４のパッチプログラム抽出処理を説明する。
【００６１】
[Ｓ２の処理の詳細]
初めに、図１１で説明したＳ２の処理の詳細について説明する。情報処理装置１の物理リソース情報取得部１１１は、情報抽出タイミングになった場合（図１１のＳ１のＹＥＳ）、各仮想マシン３のＣＰＵの使用率情報１３１を取得する（Ｓ１１）。具体的に、物理リソース情報取得部１１１は、例えば、各仮想マシン３にアクセスすることにより、各仮想マシン３の使用率情報１３１を取得する。また、物理リソース情報取得部１１１は、情報抽出タイミングになった場合（図１１のＳ１のＹＥＳ）、各仮想マシン３のＣＰＵの最大使用量情報１３２を取得する（Ｓ１２）。具体的に、物理リソース情報取得部１１１は、例えば、仮想マシン３が生成された物理マシン２にアクセスすることにより、最大使用量情報１３２を取得する。以下、使用率情報１３１及び最大使用量情報１３２の具体例について説明を行う。
【００６２】
図１５は、使用率情報１３１の具体例について説明する図である。図１５に示す使用率情報１３１は、仮想マシン３上で実行されるプロセスを識別する「プロセス名」を項目として有する。また、図１５に示す使用率情報１３１は、各プロセスをそれぞれ実行した場合における仮想マシン３毎のＣＰＵの使用率を示す「仮想マシン３Ａ」、「仮想マシン３Ｂ」及び「仮想マシン３Ｃ」を有する。同様に、図１５に示す使用率情報１３１は、各プロセスをそれぞれ実行した場合における仮想マシン３毎のＣＰＵの使用率を示す「仮想マシン３Ｄ」、「仮想マシン３Ｅ」及び「仮想マシン３Ｆ」を有する。なお、以下、各仮想マシン３では、それぞれプロセスＰ１、Ｐ２及びＰ３が動作するものとして説明を行う。
【００６３】
具体的に、図１５に示す使用率情報１３１において、「プロセス名」が「Ｐ１」である情報には、「仮想マシン３Ａ」として「９（％）」が設定され、「仮想マシン３Ｂ」として「２０（％）」が設定され、「仮想マシン３Ｃ」として「２（％）」が設定されている。また、図１５に示す使用率情報１３１において、「プロセス名」が「Ｐ１」である情報には、「仮想マシン３Ｄ」として「５（％）」が設定され、「仮想マシン３Ｅ」として「２４（％）」が設定され、「仮想マシン３Ｆ」として「１（％）」が設定されている。図１５に含まれる他の情報については説明を省略する。
【００６４】
図１５に示す使用率情報１３１は、例えば、物理リソース情報取得部１１１が各仮想マシン３にアクセスすることにより取得した情報である。しかしながら、物理マシン２が各仮想マシン３に割り当てるＣＰＵ（例えば、ＣＰＵのコア数）は、仮想マシン３毎に異なる。そのため、仮想マシン分類部１１２は、使用率情報１３１のみを参照して仮想マシン３のグループ分けを行った場合、各仮想マシン３の稼働状況（ＣＰＵの使用量等）を反映させた形での仮想マシン３のグループ分けを行うことができない場合がある。
【００６５】
次に、最大使用量情報１３２の具体例について説明を行う。図１６は、最大使用量情報１３２の具体例について説明する図である。図１６に示す最大使用量情報１３２は、物理マシン２が各仮想マシン３に割り当てたＣＰＵの単位時間当たりの最大使用量をそれぞれ示す「仮想マシン３Ａ」、「仮想マシン３Ｂ」及び「仮想マシン３Ｃ」を有する。同様に、図１５に示す最大使用量情報１３２は、物理マシン２が各仮想マシン３に割り当てたＣＰＵの単位時間当たりの最大使用量をそれぞれ示す「仮想マシン３Ｄ」、「仮想マシン３Ｅ」及び「仮想マシン３Ｆ」を有する。
【００６６】
具体的に、図１６に示す最大使用量情報１３２において、「仮想マシン３Ａ」には「１０．０（ＧＨｚ）」が設定され、「仮想マシン３Ｂ」には「５．０（ＧＨｚ）」が設定され、「仮想マシン３Ｃ」には「５．０（ＧＨｚ）」が設定されている。また、図１６に示す最大使用量情報１３２において、「仮想マシン３Ｄ」には「２２．０（ＧＨｚ）」が設定され、「仮想マシン３Ｅ」には「５．０（ＧＨｚ）」が設定され、「仮想マシン３Ｆ」には「２０．０（ＧＨｚ）」が設定されている。
【００６７】
図１２に戻り、物理リソース情報取得部１１１は、Ｓ１１で取得した使用率情報１３１と、Ｓ１２で取得した最大使用量情報１３２とを乗算して、物理リソース情報１３３を取得する（Ｓ１３）。
【００６８】
すなわち、物理リソース情報取得部１１１は、図１５で説明した使用率情報１３１に加えて、図１６で説明した最大使用量情報１３２を取得する。そして、物理リソース情報取得部１１１は、取得した使用率情報１３１と最大使用量情報１３２とから、物理リソース情報１３３を取得する。これにより、仮想マシン分類部１１２は、後述するように、使用率情報１３１と最大使用量情報１３２とを反映させた物理リソース情報１３３に基づき、各仮想マシン３のグループ分けを行うことが可能になる。以下、物理リソース情報１３３の具体例について説明を行う。
【００６９】
図１７は、物理リソース情報１３３の具体例について説明する図である。図１７に示す物理リソース情報１３３は、仮想マシン３上で実行されるプロセスを識別する「プロセス名」を項目として有する。また、図１７に示す物理リソース情報１３３は、プロセスをそれぞれ実行した場合におけるＣＰＵの使用量を示す「仮想マシン３Ａ」、「仮想マシン３Ｂ」及び「仮想マシン３Ｃ」を有する。同様に、図１７に示す物理リソース情報１３３は、プロセスをそれぞれ実行した場合におけるＣＰＵの使用量を示す「仮想マシン３Ｄ」、「仮想マシン３Ｅ」及び「仮想マシン３Ｆ」を有する。
【００７０】
具体的に、図１７に示す物理リソース情報１３３において、「プロセス名」が「Ｐ１」である情報には、「仮想マシン３Ａ」として「０．９（ＧＨｚ）」が設定され、「仮想マシン３Ｂ」として「１．０（ＧＨｚ）」が設定され、「仮想マシン３Ｃ」として「０．１（ＧＨｚ）」が設定されている。また、図１７に示す物理リソース情報１３３において、「プロセス名」が「Ｐ１」である情報には、「仮想マシン３Ｄ」として「１．１（ＧＨｚ）」が設定され、「仮想マシン３Ｅ」として「１．２（ＧＨｚ）」が設定され、「仮想マシン３Ｆ」として「０．１（ＧＨｚ）」が設定されている。
【００７１】
すなわち、図１５に示す使用率情報１３１は、物理マシン２が各仮想マシン３に割り当てた物理リソース（ＣＰＵ）の差異について考慮されていない情報である。そのため、仮想マシン分類部１１２は、各仮想マシン３のグループ分けを行う際に、図１５に示す使用率情報１３１に含まれる仮想マシン３毎の情報を単純に比較することができない。
【００７２】
これに対し、図１７に示す物理リソース情報１３３は、使用率情報１３１と最大使用量情報１３２とを乗算した算出した情報であり、各プロセスの実行に伴って各仮想マシン３が実際に使用するＣＰＵの使用量に関する情報である。そのため、仮想マシン分類部１１２は、後述するように、各仮想マシン３のグループ分けを行う際に、図１７に示す物理リソース情報１３３に含まれる情報を単純に比較することが可能になる。したがって、仮想マシン分類部１１２は、図１７に示す物理リソース情報１３３を参照することにより、各仮想マシン３のグループ分けを行うことが可能になる。図１７に含まれる他の情報については説明を省略する。
【００７３】
[Ｓ３の処理の詳細]
次に、図１１で説明したＳ３の処理の詳細について説明する。情報処理装置１の仮想マシン分類部１１２は、図１３に示すように、仮想マシン３のそれぞれに対応する物理リソース情報１３３を入力としてクラスタ分析を実行する（Ｓ２１）。そして、仮想マシン分類部１１２は、Ｓ２１で実行したクラスタ分析の結果を参照し、各仮想マシン３のグループ分けを行う（Ｓ２２）。
【００７４】
この場合、仮想マシン分類部１１２は、例えば、図１７で説明した物理リソース情報１３３を参照する。そして、仮想マシン分類部１１２は、仮想マシン３毎に、「プロセス名」が「Ｐ１」の情報に対応する値をＸ座標とし、「プロセス名」が「Ｐ２」の情報に対応する値をＹ座標とし、「プロセス名」が「Ｐ３」の情報に対応する値をＺ座標とした点を、３次元座標系に設定する。具体的に、仮想マシン分類部１１２は、例えば、仮想マシン３Ａに対応する点として、Ｘ座標が「０．９」であり、「Ｙ座標」が「０．３」であり、「Ｚ座標」が「０．１」である点を３次元座標系に設定する。
【００７５】
そして、仮想マシン分類部１１２は、図３から図８において説明したように、図１７の物理リソース情報１３３の情報に対応する点を設定した３次元座標系に含まれる情報に基づくクラスタ分析を行う。
【００７６】
これにより、仮想マシン分類部１１２は、各仮想マシン３の稼働状況を精度高く反映させた形で、各仮想マシン３のグループ分けを行うことが可能になる。以下、図１７に示す物理リソース情報１３３に含まれる情報を入力とした場合におけるグループ情報１３４の具体例について説明する。
【００７７】
図１８は、グループ情報１３４の具体例について説明する図である。図１８に示すグループ情報１３４は、各仮想マシン３を識別する「仮想マシン」と、各仮想マシン３が含まれるグループを識別する「グループ」とを項目として有する。
【００７８】
具体的に、図１８に示すグループ情報１３４は、例えば、図１１及び図１３で説明したＳ３の処理が行われた結果、仮想マシン３Ａ、３Ｂ、３Ｄ、３Ｅがグループ１に分類され、仮想マシン３Ｃ及び３Ｆがグループ２に分類されていることを示す情報を含んでいる。
【００７９】
[Ｓ４及びＳ５の処理の詳細]
次に、図１１で説明したＳ４及びＳ５の処理の詳細について説明する。情報処理装置１のパッチプログラム抽出部１１４は、図１４に示すように、適用情報１３５を取得する（Ｓ３１）。以下、適用情報１３５の具体例について説明を行う。
【００８０】
図１９は、適用情報１３５の具体例について説明する図である。図１９に示す適用情報は、各仮想マシン３の管理を行う管理者を識別する「管理者」と、各仮想マシン３を識別する「仮想マシン」とを項目として有する。また、図１９に示す適用情報は、各仮想マシン３に適用されているパッチプログラムを識別する「パッチプログラム」を項目として有する。
【００８１】
具体的に、図１９に示す適用情報１３５は、例えば、仮想マシン３Ａにパッチプログラム（Ａ）（以下、単にパッチ（Ａ）とも呼ぶ）及びパッチプログラム（Ｂ）（以下、単にパッチ（Ｂ）とも呼ぶ）が適用されている旨の情報を含んでいる。また、図１９に示す適用情報１３５は、例えば、仮想マシン３Ｂにパッチ（Ａ）、パッチ（Ｂ）及びパッチプログラム（Ｃ）（以下、単にパッチ（Ｃ）とも呼ぶ）が適用されている旨の情報を含んでいる。さらに、図１９に示す適用情報１３５は、仮想マシン３Ａ、３Ｂ及び３Ｃの管理者が甲であり、仮想マシン３Ｄ、３Ｅ及び３Ｆの管理者が乙である旨の情報を含んでいる。
【００８２】
すなわち、パッチプログラム抽出部１１４は、後述するように、図１９に示すような適用情報１３５に含まれる情報と、図１８に示すようなグループ情報１３４に含まれる情報とに基づき、各仮想マシン３に新たに適用する必要があるパッチプログラムの抽出を行う。
【００８３】
図１４に戻り、パッチプログラム抽出部１１４は、Ｓ３１で取得した適用情報１３５を参照し、第１パッチプログラムが適用済である仮想マシン３と未適用である他の仮想マシン３とがそれぞれ含まれるグループが存在するか否かを判定する（Ｓ３２）。すなわち、パッチプログラム抽出部１１４は、例えば、パッチ（Ａ）、パッチ（Ｂ）及びパッチ（Ｃ）のそれぞれについて、適用済である仮想マシン３と未適用である他の仮想マシン３とがそれぞれ含まれるグループが存在するか否かを判定する。なお、パッチプログラム抽出部１１４は、各仮想マシン３に適用されているパッチプログラムのうち、一部のパッチプログラムについてのみＳ３２以降の処理を行うものであってもよい。
【００８４】
そして、上記のようなグループが存在すると判定した場合（Ｓ３２のＹＥＳ）、パッチプログラム抽出部１１４は、存在したグループに含まれる仮想マシン３のうち、第１パッチプログラムが適用済の仮想マシン３の割合が第１の閾値以上であるか否かを判定する（Ｓ３３）。その結果、第１パッチプログラムが適用済の仮想マシン３の割合が第１の閾値以上であると判定した場合（Ｓ３３のＹＥＳ）、パッチプログラム抽出部１１４は、第１パッチプログラムを未適用の仮想マシン３に対して適用すべきパッチプログラムとして抽出する（Ｓ３４）。
【００８５】
一方、第１パッチプログラムが適用済である仮想マシン３と、第１パッチプログラムが未適用である他の仮想マシン３とがそれぞれ含まれるグループが存在しない場合（Ｓ３２のＮＯ）、パッチプログラム抽出部１１４は、Ｓ３４の処理を行わない。同様に、第１パッチプログラムが適用済の仮想マシン３の割合が第１の閾値未満であると判定した場合（Ｓ３３のＮＯ）、パッチプログラム抽出部１１４は、Ｓ３４の処理を行わない。以下、図１８で説明したグループ情報１３４と、図１９で説明した適用情報１３５とを参照しながら、Ｓ３２からＳ３４の処理の具体例について説明を行う。なお。以下、第１の閾値が５０（％）であるものとして説明を行う。
【００８６】
[Ｓ３２からＳ３４の処理の具体例]
図１８に示すグループ情報１３４は、仮想マシン３Ａ、３Ｂ、３Ｄ及び３Ｅがグループ１に分類され、仮想マシン３Ｃ及び３Ｆがグループ２に分類される旨の情報を含んでいる。そのため、パッチプログラム抽出部１１４は、グループ毎にパッチプログラムの抽出を行う。
【００８７】
具体的に、パッチプログラム抽出部１１４は、例えば、初めに、図１９に示す適用情報１３５に含まれる情報のうち、グループ１に含まれる仮想マシン（仮想マシン３Ａ、３Ｂ、３Ｄ及び３Ｅ）に対応する情報を参照する。そして、パッチプログラム抽出部１１４は、グループ１に含まれる全ての仮想マシン３に、パッチ（Ａ）が適用されている旨の情報を取得する。そのため、パッチプログラム抽出部１１４は、グループ１に含まれる仮想マシン３のうち、パッチ（Ａ）を新たに適用する必要がある仮想マシン３は存在しないと判定する（Ｓ３２のＮＯ）。したがって、パッチプログラム抽出部１１４は、未適用の仮想マシン３に適用すべきパッチプログラムとして、パッチ（Ａ）の抽出を行わない。
【００８８】
次に、パッチプログラム抽出部１１４は、グループ１に含まれる仮想マシン３のうち、仮想マシン３Ａ、３Ｂ及び３Ｄのみに、パッチ（Ｂ）が適用されている旨の情報を取得する。そのため、パッチプログラム抽出部１１４は、グループ１に含まれる仮想マシン３のうち、パッチ（Ｂ）が適用済である仮想マシン３が７５（％）であると判定する（Ｓ３２のＹＥＳ、Ｓ３３のＹＥＳ）。したがって、パッチプログラム抽出部１１４は、未適用の仮想マシン３である仮想マシン３Ｅに適用すべきパッチプログラムとして、パッチ（Ｂ）の抽出を行う（Ｓ３４）。
【００８９】
さらに、パッチプログラム抽出部１１４は、グループ１に含まれる仮想マシン３のうち、仮想マシン３Ｂのみに、パッチ（Ｃ）が適用されている旨の情報を取得する。そのため、パッチプログラム抽出部１１４は、グループ１に含まれる仮想マシン３のうち、パッチ（Ｃ）が適用済である仮想マシン３が２５（％）であると判定する（Ｓ３２のＹＥＳ、Ｓ３３のＮＯ）。したがって、パッチプログラム抽出部１１４は、未適用の仮想マシン３に適用すべきパッチプログラムとして、パッチ（Ｃ）の抽出を行わない。
【００９０】
次に、パッチプログラム抽出部１１４は、図１９に示す適用情報１３５に含まれる情報のうち、グループ２に含まれる仮想マシン（仮想マシン３Ｃ及び３Ｆ）に対応する情報を参照する。そして、パッチプログラム抽出部１１４は、グループ２に含まれる全ての仮想マシン３に、パッチ（Ａ）が適用されている旨の情報を取得する。そのため、パッチプログラム抽出部１１４は、グループ１に含まれる仮想マシン３のうち、パッチ（Ａ）を新たに適用する必要がある仮想マシンは存在しないと判定する（Ｓ３２のＮＯ）。したがって、パッチプログラム抽出部１１４は、未適用の仮想マシン３に適用すべきパッチプログラムとして、パッチ（Ａ）の抽出を行わない。
【００９１】
さらに、パッチプログラム抽出部１１４は、グループ１に含まれる仮想マシン３のうち、仮想マシン３Ｃのみにパッチ（Ｃ）が適用されている旨の情報を取得する。そのため、パッチプログラム抽出部１１４は、グループ１に含まれる仮想マシン３のうち、パッチ（Ｃ）が適用済である仮想マシン３は、５０（％）であると判定する（Ｓ３２のＹＥＳ、Ｓ３３のＹＥＳ）。したがって、パッチプログラム抽出部１１４は、未適用の仮想マシン３である仮想マシン３Ｅに適用すべきパッチプログラムとして、パッチ（Ｃ）を抽出する（Ｓ３４）。
【００９２】
図１４に戻り、情報出力部１１５は、第１パッチプログラムが未適用である仮想マシン３に対して、Ｓ３４で抽出した第１パッチプログラムの適用を推奨する旨の情報である推奨情報１３６を出力する（Ｓ３５）。以下、情報処理装置１の出力装置（図示しない）に出力された場合の推奨情報１３６の具体例について説明を行う。
【００９３】
図２０は、出力装置に出力された場合の推奨情報１３６の具体例について説明する図である。図２０に示す推奨情報１３６は、例えば、仮想マシン３Ｅにパッチ（Ｂ）を適用し、仮想マシン３Ｆにパッチ（Ｃ）を適用すべき旨の情報を含んでいる。
【００９４】
これにより、各仮想マシン３の管理者（図１９の例では甲または乙）は、自らが管理する仮想マシン３に対して、新たに適用した方が好ましいパッチプログラムの情報を取得することが可能になる。
【００９５】
このように、第１の実施の形態によれば、情報処理装置１は、各仮想マシン３の物理リソース情報１３３を取得する物理リソース情報取得部１１１を有する。また、情報処理装置１は、取得した物理リソース情報１３３に基づき、複数の仮想マシン３を１つ以上のグループに分類する仮想マシン分類部１１２を有する。
【００９６】
さらに、情報処理装置１は、各仮想マシン３に適用されているパッチプログラムの情報である適用情報１３５を、グループ毎に取得する適用情報取得部１１３を有する。また、情報処理装置１は、取得した適用情報１３５に、第１パッチプログラムが適用済である仮想マシン３と未適用である他の仮想マシン３とが含まれるグループが存在することを示す情報が含まれているか否かを判定するパッチプログラム抽出部１１４を有する。そして、パッチプログラム抽出部１１４は、上記の情報が含まれていると判定した場合、第１パッチプログラムを、他の仮想マシン３に対して適用すべきパッチプログラムとして抽出する。
【００９７】
これにより、情報処理装置１は、各仮想マシンにおける稼働状況を正確に反映させた情報に基づく形で、仮想マシンに適用する必要があるパッチプログラムの抽出を行うことが可能になる。そのため、情報処理装置１は、仮想マシンに適用する必要があるパッチプログラムの抽出を、信頼度高く行うことが可能になる。
【００９８】
以上の実施の形態をまとめると、以下の付記のとおりである。
【００９９】
（付記１）
パッチプログラムの適用対象である複数の仮想マシン上で実行される各プロセスの実行に伴って、各仮想マシンが使用する物理リソースの使用量に関する情報である物理リソース情報を取得する物理リソース情報取得部と、
取得した前記物理リソース情報に基づき、前記複数の仮想マシンを１つ以上のグループに分類する仮想マシン分類部と、
各仮想マシンに適用されているパッチプログラムの情報である適用情報を、前記グループ毎に取得する適用情報取得部と、
取得した前記適用情報に、前記パッチプログラムに含まれる第１パッチプログラムが適用済である仮想マシンと、前記第１パッチプログラムが未適用である他の仮想マシンとが含まれる前記グループが存在することを示す情報が含まれている場合、前記第１パッチプログラムを、前記他の仮想マシンに対して適用すべきパッチプログラムとして抽出するパッチプログラム抽出部と、を有する、
ことを特徴とするパッチプログラム抽出装置。
【０１００】
（付記２）
付記１において、
前記物理リソース情報は、前記複数の仮想マシンに含まれる仮想マシン毎の、前記プロセスをそれぞれ実行した場合におけるＣＰＵの使用率と、前記複数の仮想マシンのそれぞれに割り当てられたＣＰＵの最大使用量とを乗算することにより算出された情報である、
ことを特徴とするパッチプログラム抽出装置。
【０１０１】
（付記３）
付記１において、
前記仮想マシン分類部は、前記複数の仮想マシンのそれぞれに対応する前記物理リソース情報を入力としたクラスタ分析を行うことにより、前記複数の仮想マシンの分類を行う、
ことを特徴とするパッチプログラム抽出装置。
【０１０２】
（付記４）
付記１において、
前記パッチプログラム抽出部は、前記適用情報に、前記複数の仮想マシンのうち、前記第１パッチプログラムが適用済である仮想マシンの割合が第１の閾値以上である旨の情報が含まれている場合に、前記第１パッチプログラムの抽出を行う、
ことを特徴とするパッチプログラム抽出装置。
【０１０３】
（付記５）
付記１において、さらに、
前記第１パッチプログラムが未適用である仮想マシンに対して、抽出した前記第１パッチプログラムの適用を推奨する旨の情報を出力する情報出力部を有する、
ことを特徴とするパッチプログラム抽出装置。
【０１０４】
（付記６）
コンピュータに、
パッチプログラムの適用対象である複数の仮想マシン上で実行される各プロセスの実行に伴って、各仮想マシンが使用する物理リソースの使用量に関する情報である物理リソース情報を取得し、
取得した前記物理リソース情報に基づき、前記複数の仮想マシンを１つ以上のグループに分類し、
各仮想マシンに適用されているパッチプログラムの情報である適用情報を、前記グループ毎に取得し、
取得した前記適用情報に、前記パッチプログラムに含まれる第１パッチプログラムが適用済である仮想マシンと、前記第１パッチプログラムが未適用である他の仮想マシンとが含まれる前記グループが存在することを示す情報が含まれている場合、前記第１パッチプログラムを、前記他の仮想マシンに対して適用すべきパッチプログラムとして抽出する、
処理を実行させることを特徴とするパッチプログラム抽出プログラム。
【０１０５】
（付記７）
付記６において、
前記物理リソース情報は、前記複数の仮想マシンに含まれる仮想マシン毎の、前記プロセスをそれぞれ実行した場合におけるＣＰＵの使用率と、前記複数の仮想マシンのそれぞれに割り当てられたＣＰＵの最大使用量とを乗算することにより算出された情報である、
ことを特徴とするパッチプログラム抽出プログラム。
【０１０６】
（付記８）
付記６において、
前記パッチプログラムの抽出を行う処理では、前記適用情報に、前記複数の仮想マシンのうち、前記第１パッチプログラムが適用済である仮想マシンの割合が第１の閾値以上である旨の情報が含まれている場合に、前記第１パッチプログラムの抽出を行う、
ことを特徴とするパッチプログラム抽出プログラム。
【０１０７】
（付記９）
パッチプログラムの適用対象である複数の仮想マシン上で実行される各プロセスの実行に伴って、各仮想マシンが使用する物理リソースの使用量に関する情報である物理リソース情報を取得し、
取得した前記物理リソース情報に基づき、前記複数の仮想マシンを１つ以上のグループに分類し、
各仮想マシンに適用されているパッチプログラムの情報である適用情報を、前記グループ毎に取得し、
取得した前記適用情報に、前記パッチプログラムに含まれる第１パッチプログラムが適用済である仮想マシンと、前記第１パッチプログラムが未適用である他の仮想マシンとが含まれる前記グループが存在することを示す情報が含まれている場合、前記第１パッチプログラムを、前記他の仮想マシンに対して適用すべきパッチプログラムとして抽出する、
ことを特徴とするパッチプログラム抽出方法。
【０１０８】
（付記１０）
付記９において、
前記物理リソース情報は、前記複数の仮想マシンに含まれる仮想マシン毎の、前記プロセスをそれぞれ実行した場合におけるＣＰＵの使用率と、前記複数の仮想マシンのそれぞれに割り当てられたＣＰＵの最大使用量とを乗算することにより算出された情報である、
ことを特徴とするパッチプログラム抽出方法。
【０１０９】
（付記１１）
付記９において、
前記パッチプログラムの抽出を行う工程では、前記適用情報に、前記複数の仮想マシンのうち、前記第１パッチプログラムが適用済である仮想マシンの割合が第１の閾値以上である旨の情報が含まれている場合に、前記第１パッチプログラムの抽出を行う、
ことを特徴とするパッチプログラム抽出方法。
【符号の説明】
【０１１０】
１：情報処理装置                ２：物理マシン
３：仮想マシン                  ４：仮想化ソフトウエア
２０：作業者端末                ＮＷ：ネットワーク
【図１】
2017004201.tif 000003
【図２】
2017004201.tif 000004
【図３】
2017004201.tif 000005
【図４】
2017004201.tif 000006
【図５】
2017004201.tif 000007
【図６】
2017004201.tif 000008
【図７】
2017004201.tif 000009
【図８】
2017004201.tif 000010
【図９】
2017004201.tif 000011
【図１０】
2017004201.tif 000012
【図１１】
2017004201.tif 000013
【図１２】
2017004201.tif 000014
【図１３】
2017004201.tif 000015
【図１４】
2017004201.tif 000016
【図１５】
2017004201.tif 000017
【図１６】
2017004201.tif 000018
【図１７】
2017004201.tif 000019
【図１８】
2017004201.tif 000020
【図１９】
2017004201.tif 000021
【図２０】
2017004201.tif 000022