(57)【要約】【課題】仮想計算機から出力される履歴情報における履歴時刻を補正することを目的とする。【解決手段】物理計算機１００で実行されている仮想計算機１０から、システム内業務履歴情報を取得し、統合管理サーバ２００が、仮想ＯＳ１４１から、仮想ＯＳ時刻を含む稼動性能情報を取得し、物理ＯＳ１５０から、物理ＯＳ時刻を含む稼動性能情報を取得し、２つの稼動性能情報の相関係数を算出し、相関係数が所定の値以上であれば、仮想ＯＳ時刻を、物理ＯＳ時刻に対応付け、対応付けされた物理ＯＳ時刻を、ログ日時とすることを特徴とする。【選択図】図２
2010140340.tif 000002
【特許請求の範囲】
【請求項１】
物理計算機で実行されている仮想計算機から、履歴時刻を含む履歴情報を取得して、前記履歴時刻の補正を行う履歴時刻補正装置による履歴時刻補正方法であって、
前記物理計算機では、前記仮想計算機のＯＳである仮想ＯＳが実行されており、
前記履歴時刻補正装置が、
前記仮想ＯＳを実行している前記仮想計算機の稼動状況を、当該仮想ＯＳで計時されている仮想ＯＳ時刻を用いて監視した時系列の監視データである第１の機器情報と、
前記仮想ＯＳを実行している前記仮想計算機の稼動状況を、基準時刻を用いて監視した時系列の監視データである第２の機器情報と、の相関係数を算出し、
前記相関係数が所定の値以上であれば、前記第１の機器情報における仮想ＯＳ時刻を、前記第２の機器情報における基準時刻に、対応付け、
前記仮想ＯＳ時刻に基づく前記履歴時刻を、当該仮想ＯＳ時刻と対応付けされた前記基準時刻に基づくものとする
ことを特徴とする履歴時刻補正方法。
【請求項２】
前記基準時刻は、前記物理計算機で実行されている前記仮想ＯＳ以外のＯＳである物理ＯＳで計時されている時刻である
ことを特徴とする請求項１に記載の履歴時刻補正方法。
【請求項３】
前記第１の機器情報と、前記第２の機器情報は、時系列の量的データであり、
前記履歴時刻補正装置が、
前記第１の機器情報および前記第２の機器情報を構成する点の増減関係を基に、変局点となっている点を抽出し、
前記変局点となっている点で、新たな第１の機器情報および第２の機器情報を生成した後、前記第１の機器情報と、前記第２の機器情報と、の相関係数を算出する
ことを特徴とする請求項１に記載の履歴時刻補正方法。
【請求項４】
前記履歴情報は、前記仮想ＯＳにおけるログ情報、前記仮想計算機へのアクセスシステム管理者数、前記仮想計算機で実行されているアプリケーションの使用人数または前記仮想計算機に設定されているデータベースの容量である
ことを特徴とする請求項１に記載の履歴時刻補正方法。
【請求項５】
前記稼動状況は、前記仮想計算機におけるＣＰＵ使用量またはメモリ使用量である
ことを特徴とする請求項１に記載の履歴時刻補正方法。
【請求項６】
請求項１から請求項５のいずれか一項に記載の履歴時刻補正方法をコンピュータに実行させることを特徴とするプログラム。
【請求項７】
物理計算機で実行されている仮想計算機から、履歴時刻を含む履歴情報を取得して、前記履歴時刻の補正を行う履歴時刻補正装置であって、
前記物理計算機では、前記仮想計算機のＯＳである仮想ＯＳが実行されており、
前記仮想ＯＳを実行している前記仮想計算機の稼動状況を、当該仮想ＯＳで計時されている仮想ＯＳ時刻を用いて監視した時系列の監視データである第１の機器情報と、
前記仮想ＯＳを実行している前記仮想計算機の稼動状況を、基準時刻を用いて監視した時系列の監視データである第２の機器情報と、の相関係数を算出し、
前記相関係数が所定の値以上であれば、前記第１の機器情報における仮想ＯＳ時刻を、前記第２の機器情報における基準時刻に、対応付ける時刻補正部と、
前記仮想ＯＳ時刻に基づく前記履歴時刻を、当該仮想ＯＳ時刻と対応付けされた前記基準時刻に基づくものとする履歴管理部と
を有することを特徴とする履歴時刻補正装置。
【請求項８】
前記基準時刻は、前記物理計算機で実行されている前記仮想ＯＳ以外のＯＳである物理ＯＳで計時されている時刻である
ことを特徴とする請求項７に記載の履歴時刻補正装置。
【請求項９】
前記第１の機器情報と、前記第２の機器情報は、時系列の量的データであり、
前記第１の機器情報および前記第２の機器情報を構成する点の増減関係を基に、変局点となっている点を抽出し、
前記変局点となっている点で、新たな第１の機器情報および第２の機器情報を生成する変局点抽出部をさらに有し
前記時刻補正部は、前記第１の機器情報と、前記第２の機器情報と、の相関係数を算出する機能を
をさらに有することを特徴とする請求項７に記載の履歴時刻補正装置。
【請求項１０】
前記履歴情報は、前記仮想ＯＳにおけるログ情報、前記仮想計算機へのアクセスシステム管理者数、前記仮想計算機で実行されているアプリケーションの使用人数または前記仮想計算機に設定されているデータベースの容量である
ことを特徴とする請求項７に記載の履歴時刻補正装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、履歴時刻補正方法、プログラムおよび履歴時刻補正装置の技術に関する。
【背景技術】
【０００２】
近年、ＩＴ（Information Technology）システムの高度化・複雑化に伴い、計算機システムで使用されるサーバ数が増加し、運用管理コストや管理負荷が増大してきている。また、サーバにはピーク時の負荷での応答性能などを保証するよう余裕を持ったリソースの搭載が必要とされる。しかしながら、サーバの全稼動時間から見ると有効にリソースを活用しているとは言い難い場合が多い。
そこで、システムリソースの有効活用によるコスト削減や運用負荷の低減に対するニーズが高まってきている。
このようなニーズに対する技術の１つとして、サーバ仮想化技術がある。サーバ仮想化技術は、１台の物理的なサーバのリソースを分割して何台もの仮想的なサーバ（仮想サーバ）を動作させる技術である。
【０００３】
特許文献１には、複数の仮想計算機が物理計算機上で動作する計算機システムにおいて、ＮＴＰ（Network Time Protocol）サーバから時刻情報を取得した上で、仮想計算機と物理計算機のそれぞれのＯＳ（Operating System）が備え個別に動いている時計の時刻差分を格納する時刻差分テーブルとログを取得するログ取得部を備え、時刻差分テーブルに格納された時刻差分に基づいて、各仮想計算機から取得したログのタイムスタンプを修正し、仮想計算機のログを物理計算機の時間体系に統一させた上で取得する計算機システム、ログ収集方法およびコンピュータプログラムが開示されている。
【特許文献１】特開２００６−２８５８７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このような仮想計算機は物理計算機と変わらない動作をすることができる。仮想計算機には、物理計算機と同じようにＯＳやアプリケーションをインストールすることができる。物理計算機の物理ＯＳ上で動く仮想計算機のアプリケーションが、物理計算機に備わっている物理的なリソースを分割し、仮想的なリソースである仮想リソースとして、それぞれの仮想計算機に割り当てる。仮想計算機上の仮想ＯＳは、割り当てられた仮想リソースを使用して作動する。
【０００５】
計算機システムにおいては、計算機システム上で動作している業務プログラムに不正な操作やデータの改ざん等が行われていないかをチェックする監査の目的や、または障害発生時や保守時の現象の解析の目的で、業務プログラムのログ（業務履歴ログ）を収集する必要が生じる。
また、仮想ＯＳおよび物理ＯＳは、それぞれ時計を備え、個別に動いている。仮想ＯＳや、物理ＯＳから取得した業務履歴ログの解析には、時刻が重要な要素となるが、各ＯＳ上の時計は個別に動いており時計の精度も高くないことなどから、同一の物理計算機上の物理ＯＳ、仮想ＯＳにおけるそれぞれの時計の時刻が同一時刻を示し続けることは容易ではない。
【０００６】
そのため、複数の仮想計算機上で業務プログラムが連携して動作する計算機システムの場合、個々の仮想計算機の業務プログラムの業務履歴ログだけでは、不正な操作やデータの改ざん等が行われていないかをチェックする監査や、障害や保守時の解析ができなく、各仮想計算機の業務履歴ログを収集し時間体系順に並べかえた計算機システム内の業務履歴ログが必要となる。
【０００７】
計算機の内蔵時計の多くは構成部品として水晶を用いており、その水晶の品質のばらつきの問題で通常でもプラスマイナス１０万分の１秒から１万分の１秒（１秒あたり）以内のずれが生じる。さらに、水晶は熱による影響を受けやすく、計算機内の温度が高くなるほど内蔵時計の時刻のずれが発生する。こうして、物理計算機においても内蔵時計は１日数秒は前後することが多い。
さらに、物理計算機で実行されている物理ＯＳ、および仮想計算機で実行されている仮想ＯＳでは、それぞれ時計アプリケーションが作動しており、それぞれの時計アプリケーションが内蔵時計（水晶時計）を規準として時刻を刻んでいる。物理計算機の物理リソースを割り当てられて動作する仮想計算機は、物理計算機の物理リソースを、複数の仮想計算機で使用することから他の仮想計算機の使用状況により影響を受けることがあり、物理リソースの負荷が高くなると仮想計算機の動作が遅くなったり、場合によっては、時刻が飛ぶことが多々ある。例えば、動作していない仮想計算機は、リソースの有効活用のために仮想計算機を完全に停止することがしばしば行われる。このようなときは、仮想ＯＳで実行されている時計アプリケーションも停止してしまうため、物理ＯＳや、他の仮想ＯＳで作動している時計アプリケーションが刻んでいる時刻との間にズレが生じてしまう。
このようにして、仮想計算機が刻んでいる仮想ＯＳ時計は、物理計算機が刻んでいる物理ＯＳ時計と比べても時刻にズレが生じやすい。
【０００８】
仮想計算機の業務履歴ログは、仮想ＯＳ時計の時刻と共に保存される。複数の仮想計算機の業務履歴ログを収集し、各仮想計算機における業務履歴ログを作成する場合、各仮想計算機の仮想ＯＳ時計に時刻の差異が生じていると、それぞれの業務履歴ログの発生の順序が実際の動作と異なることがあり、監査や障害解析の役に立たなくなることがある。
そこで、特許文献１では、ＮＴＰサーバから時刻を取得し内蔵時計の時間を合わせる時刻補正ツールを使用して、各仮想計算機の内蔵時計の時刻に差異が発生しないようにしている。
しかし、分、秒単位に業務履歴ログが出力される計算機システムの場合、業務履歴ログが出力される毎に時刻補正ツールがＮＴＰサーバから時刻を取得し内蔵時計を合わせるのでは、時刻補正ツールの動作自体がシステムに高負荷となり、業務に支障をきたすなどの問題が発生しやすく、適用は困難である。
【０００９】
このような背景に鑑みて本発明がなされたのであり、本発明は、仮想計算機から出力される履歴情報における履歴時刻を補正することを目的とする。
【課題を解決するための手段】
【００１０】
前記課題を解決するため、本発明は、物理計算機で実行されている仮想計算機から、履歴時刻を含む履歴情報を取得して、前記履歴時刻の補正を行う履歴時刻補正装置による履歴時刻補正方法であって、前記物理計算機では、前記仮想計算機のＯＳである仮想ＯＳが実行されており、前記履歴時刻補正装置が、前記仮想ＯＳを実行している前記仮想計算機の稼動状況を、当該仮想ＯＳで計時されている仮想ＯＳ時刻を用いて監視した時系列の監視データである第１の機器情報と、前記仮想ＯＳを実行している前記仮想計算機の稼動状況を、基準時刻を用いて監視した時系列の監視データである第２の機器情報と、の相関係数を算出し、前記相関係数が所定の値以上であれば、前記第１の機器情報における仮想ＯＳ時刻を、前記第２の機器情報における基準時刻に、対応付け、前記仮想ＯＳ時刻に基づく前記履歴時刻を、当該仮想ＯＳ時刻と対応付けされた前記基準時刻に基づくものとすることを特徴とする。
その他の手段については、実施形態中において適宜記載する。
【発明の効果】
【００１１】
本発明によれば、仮想計算機から出力される履歴情報における履歴時刻を補正することができる。
【発明を実施するための最良の形態】
【００１２】
次に、本発明を実施するための最良の形態（「実施形態」という）について、適宜図面を参照しながら詳細に説明する。なお、本実施形態において、プログラムが動作主体となっている場合、そのプログラムがコンピュータに対象となる処理を行わせていることを示すものとする。
【００１３】
《システム》
図１は、本実施形態に係る計算機システムの構成例を示す図である。各装置の詳細な説明は、図２で後記する。
計算機システム１は、ネットワーク４００を介して互いに接続された物理計算機１００、統合管理サーバ２００（履歴時刻補正装置）およびＮＴＰサーバ３００を有してなる。
物理計算機１００は、複数の仮想計算機１０（仮想計算機α１１、仮想計算機β１２、仮想計算機γ１３、・・・）を実行しており、各仮想計算機１０において情報を処理している計算機である。統合管理サーバ２００は、物理計算機１００で実行されている仮想計算機１０から収集した業務履歴ログ１６４〜１６６（図３で後記：請求項における履歴情報）の時刻合わせを行う機能を有している。ＮＴＰサーバ３００は、各仮想計算機１０へ一定時間（本実施形態では６０分）毎に時刻情報を送り、各仮想計算機１０では、ＮＴＰサーバ３００から受け取った時刻情報に従って一定時間毎に時刻補正を行っている。なお、ＮＴＰサーバ３００は、省略可能である。
【００１４】
図２は、本実施形態に係る計算機システムの詳細な構成例を示す図である。なお、図２において、図１と同様の構成要素については、同一の符号を付して説明を省略する。また、図２において、仮想計算機γ１３に関するリソースおよびプログラム構成は、仮想計算機α１１、仮想計算機β１２と同様であるため、図３で詳細な説明を行うこととし、図２では省略してある。
ここで、ＮＴＰサーバ３００は、通信インタフェース３０１を介して、ネットワーク４００に接続している。
【００１５】
（物理計算機）
物理計算機１００は、バスを介して接続されているメモリ１０１、記憶装置１０２、ＣＰＵ（Central Processing Unit）１０３および通信インタフェース１０４を有してなる。メモリ１０１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置からなり、記憶装置１０２は、ＨＤ（Hard Disk）や、フラッシュメモリなどの不揮発性記憶装置からなる。さらに、物理計算機１００には、画面表示を行うためのディスプレイ１０５が接続されている。
【００１６】
物理計算機１００はメモリ１０１上に仮想化システム管理プログラム１５２を有し、この仮想化システム管理プログラム１５２は、メモリ１０１上に仮想計算機α１１（図１）、仮想計算機β１２（図１）、・・・などの仮想計算機１０を作成することができる。この際、メモリ１０１に空きがある限り、仮想化システム管理プログラム１５２は複数の仮想計算機１０を作成することができる。仮想化システム管理プログラム１５２は、リソース割当制御プログラム１５３を用いてメモリ１０１内に仮想計算機α用メモリ１１０、仮想計算機β用メモリ１２０などの仮想計算機用メモリ１４０を作成し、それぞれを対応する各仮想計算機１０（図１）に割り当てる。この際、リソース割当制御プログラム１５３は、メモリ１０１に空きがある限り複数の仮想計算機用メモリ１４０を作成し、割り当てることができる。
【００１７】
同様に、リソース割当制御プログラム１５３は、記憶装置１０２内に仮想計算機α用記憶領域１６１、仮想計算機β用記憶領域１６２などの仮想計算機用記憶領域１６７を作成し、それぞれを対応する仮想計算機１０に割り当てる。この際、記憶装置１０２に空き領域がある限り、複数の仮想計算機用記憶領域１６７を割り当てることができる。
【００１８】
さらに、リソース割当制御プログラム１５３は、ＣＰＵ１０３上に仮想計算機α用ＣＰＵ１７１、仮想計算機β用ＣＰＵ１７２などの仮想計算機用ＣＰＵ１７３を作成し、それぞれを対応する仮想計算機１０に割り当てる。この際、リソース割当制御プログラム１５３は、ＣＰＵ１０３に空きがある限り、複数の仮想計算機１０用のＣＰＵ１７３を割り当てることができる。
こうして仮想化システム管理プログラム１５２は、仮想計算機用メモリ１４０、仮想計算機用記憶領域１６７、仮想計算機用ＣＰＵ１７３を使用し、物理計算機１００と同様の動作をする仮想計算機１０を設定することができる。
【００１９】
仮想ＯＳ１４１の１つである仮想ＯＳα１１１、仮想ＯＳα１１１用のプログラム１１３、時刻補正ツールプログラム（以下、時刻補正ツール１１４（１４４）と記載）は、仮想計算機α用記憶領域１６１に格納されていた各プログラムが、仮想計算機α用メモリ１１０上に展開され、仮想計算機α用ＣＰＵ１７１によって実行されることにより具現化する。仮想ＯＳα１１１は、仮想ＯＳα１１１における時刻を計時する仮想ＯＳ時計１１２（１４２）を有している。仮想計算機α１１は、仮想計算機α用メモリ１１０上で時刻補正ツール１４４およびプログラム１１３を動作させる。プログラム１１３の詳細は、図３で後記する。
【００２０】
同様に、仮想ＯＳ１４１の１つである仮想ＯＳβ１２１、仮想ＯＳβ１２１用のプログラム１２３、時刻補正ツール１２４（１４４）は、仮想計算機β用記憶領域１６２に格納されていた各プログラムが、仮想計算機β用メモリ１２０上に展開され、仮想計算機β用ＣＰＵ１７２によって実行されることにより具現化する。そして、仮想ＯＳβ１２１は、仮想ＯＳβ１２１における時刻を計時する仮想ＯＳ時計１２２（１４２）を有している。仮想計算機β１２は、仮想計算機β用メモリ１２０上で時刻補正ツール１２４（１４４）およびプログラム１２３を動作させる。プログラム１２３の詳細は、図３で後記する。
【００２１】
仮想計算機α用メモリ１１０や、仮想計算機β用メモリ１２０で実行されている時刻補正ツール１４４は、一定時間毎（本実施形態では６０分毎）にＮＴＰサーバ３００（図１）より時刻情報を取得して仮想ＯＳ時計１４２の時刻を合わせる。こうして、時刻補正ツール１４４は各仮想ＯＳ１４１の仮想ＯＳ時計１４２の時刻を合わせる。なお、仮想ＯＳ時計１４２によって、計時される時刻を仮想ＯＳ時刻と記載する。
【００２２】
また、物理ＯＳ１５０は、仮想ＯＳ１４１とは異なるＯＳであり、仮想化システム管理プログラム１５２や、時刻補正ツール１５４（１４４）や、プログラム１５５を実行する機能を有する。物理ＯＳ１５０は、基準時刻としての物理ＯＳにおける時刻（物理ＯＳ時刻）を計時する物理ＯＳ時計１５１を有している。
プログラム１５５は、図３において後記する。物理計算機１００の構成については、図３を参照して、さらに詳細に説明する。
なお、物理ＯＳ１５０、時刻補正ツール１５４（１４４）およびプログラム１５５は、記憶装置１０２に格納されている各プログラムが、メモリ１０１に展開され、ＣＰＵ１０３によって実行されることにより具現化する。
【００２３】
ここで、時刻補正ツール１５４（１４４）は、一定時間毎（本実施形態では６０分毎）にＮＴＰサーバ３００（図１）より時刻を取得して物理ＯＳ時計１５１の時刻を合わせる。こうして、時刻補正ツール１５４（１４４）は、物理ＯＳ１５０が有する物理ＯＳ時計１５１の時刻を合わせる。なお、物理ＯＳ時計１５１で計時される時刻を物理ＯＳ時刻と記載する。
【００２４】
しかし、同一の物理計算機１００上で複数の仮想計算機１０が動作する場合、時刻補正ツール１４４が、例えば６０分毎にＮＴＰサーバ３００から時刻情報を取得し、それぞれの物理ＯＳ時計１５１、仮想ＯＳ時計１４２の時刻を合わせたとしても、同一の物理計算機１００のリソースを複数の仮想計算機１０に割り当てるため時刻の差異が生じるのは避けられない。つまり、前記したように、リソースの有効活用のために動作していない仮想計算機１０を完全に停止することがしばしば行われる。このようなときは、仮想ＯＳ１４１で実行されている時計アプリケーションも停止してしまうため、物理ＯＳ１５０や、他の仮想ＯＳ１４１で作動している時計アプリケーションが刻んでいる時刻との間にズレが生じてしまう。要するに、ＮＴＰサーバ３００から時刻情報を取得する６０分の間に、仮想計算機１０が完全に停止した状況が生じると、結果として仮想ＯＳ時計１４２の時刻のズレが生じてしまうことになる。
【００２５】
（統合管理サーバ）
統合管理サーバ２００は、仮想計算機１０における業務履歴ログ１６４〜１６６（図３）の時刻合わせを行う機能を有しており、バスを介して接続されているメモリ２０１、記憶装置２０２（記憶部）、ＣＰＵ（Central Processing Unit）２０３および通信インタフェース２０４を有してなる。メモリ２０１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置からなり、記憶装置２０２は、ＨＤ（Hard Disk）や、フラッシュメモリなどの不揮発性記憶装置からなる。さらに、統合管理サーバ２００には、画面表示を行うためのディスプレイ２０５が接続されている。
【００２６】
メモリ２０１には、物理計算機１００で実行されている仮想ＯＳ１４１や、物理ＯＳ１５０とは、別のＯＳである物理ＯＳ２１０が記憶装置２０２より展開され、ＣＰＵ２０３によって実行されて具現化している。この物理ＯＳ２１０内にも、物理ＯＳ時計２１１を有している。また、一定時間（本実施形態では、６０分）毎にＮＴＰサーバ３００より取得した時刻情報に従って物理ＯＳ時計２１１の時刻（物理ＯＳ時刻）を合わせる時刻補正ツール２１２、そして、図４で詳細に説明するプログラム２１３が、記憶装置２０２より展開され、ＣＰＵ２０３によって実行されることによって具現化している。
【００２７】
（物理計算機の詳細）
図３は、本実施形態に係る物理計算機の詳細な構成の例を示す図である。なお、図３において、図２に記載の通信インタフェース１０４およびＣＰＵ１０３は、省略されており、仮想ＯＳ１４１における仮想ＯＳ時計１４２、および物理ＯＳ１５０における物理ＯＳ時計１５１も省略されている。その他の構成要素において、図２と同様の構成要素については、図２と同一の符号を付して説明を省略する。
仮想計算機α用メモリ１１０には、図２のプログラム１１３として、業務履歴収集プログラム１４５、稼動性能収集プログラム１４６および業務プログラムＡ１１５などが展開され、仮想計算機α用ＣＰＵ１７１（図２）によって実行されている。
同様に、仮想計算機β用メモリ１２０には、図２のプログラム１２３として、業務履歴収集プログラム１４５および稼動性能収集プログラム１４６、業務プログラムＢ１２５などが展開され、仮想計算機β用ＣＰＵ１７２（図２）によって実行されている。
また、図２において省略されていた仮想計算機γ用メモリ１３０には、仮想ＯＳ１４１の１つである仮想ＯＳγ１３１、時刻補正ツール１３４（１４４）、業務履歴収集プログラム１４５、および稼動性能収集プログラム１４６、業務プログラムＡ１１５などが展開され、仮想計算機γ用ＣＰＵ（図示せず）によって実行されている。
【００２８】
仮想計算機α用メモリ１１０に展開されている業務履歴収集プログラム１４５は、業務プログラムＡ１１５が、操作や動作の結果について仮想ＯＳα１１１向けに出力する業務履歴ログを収集し、仮想計算機α用記憶領域１６１内へ蓄積する（図３の符号１６４）。
仮想計算機α用メモリ１１０に展開されている稼動性能収集プログラム１４６は、仮想ＯＳα１１１を介して、仮想計算機α１１が使用している仮想計算機α用メモリ１１０、仮想計算機α用記憶領域１６１、仮想計算機α用ＣＰＵ１７１などの、仮想計算機α１１に関するリソースの稼動性能情報を一定時間（本実施形態では１分）毎に収集し、統合管理サーバ２００の稼動性能管理プログラム２２３（図４）へ送信する。このとき、統合管理サーバ２００の稼動性能管理プログラム２２３（図４）は、受信した稼動性能情報を記憶装置２０２内へ蓄積する（図４の符号２５２：第１の機器情報）。
業務プログラムＡ１１５は、仮想計算機α１１における業務を提供するアプリケーションプログラムである。
【００２９】
仮想計算機β用メモリ１２０に展開されている業務履歴収集プログラム１４５は、業務プログラムＢ１２５が。操作や動作の結果について仮想ＯＳβ１２１向けに出力する業務履歴ログを収集し、仮想計算機β用記憶領域１６２内へ蓄積する（図３の符号１６５）。
仮想計算機β用メモリ１２０に展開されている稼動性能収集プログラム１４６は、仮想ＯＳβ１２１を介して、仮想計算機β１２が使用している仮想計算機β用メモリ１２０、仮想計算機β用記憶領域１６２、仮想計算機β用ＣＰＵ１７２などのリソースの稼動性能情報を一定時間（本実施形態では１分）毎に収集し、統合管理サーバ２００の稼動性能管理プログラム２２３（図４）へ送信する。このとき、統合管理サーバ２００の稼動性能管理プログラム２２３（図４）は、受信した稼動性能情報を記憶装置２０２内へ蓄積する（図４の符号２５２）。
業務プログラムＢ１２５は、仮想計算機β１２における業務を提供するアプリケーションプログラムである。
【００３０】
仮想計算機γ用メモリ１３０に展開されている業務履歴収集プログラム１４５は、業務プログラムＡ１１５が、操作や動作の結果について仮想ＯＳγ１３１向けに出力する業務履歴ログを収集し、仮想計算機γ用記憶領域１６３内へ蓄積する（符号１６６）。
仮想計算機γ用メモリ１３０に展開されている稼動性能収集プログラム１４６は、仮想ＯＳγ１３１を介して、仮想計算機γ１３が使用している仮想計算機γ用メモリ１３０、仮想計算機γ用記憶領域１６３、仮想計算機γ用ＣＰＵ（図示せず）など、リソースの稼動性能情報を一定時間（本実施形態では１分）毎に収集し、統合管理サーバ２００の稼動性能管理プログラム２２３（図４）へ送信する。統合管理サーバ２００の稼動性能管理プログラム２２３（図４）は、受信した稼動性能情報を、記憶装置２０２内へ蓄積する（図４の符号２５２）。なお、ここでは、仮想計算機γ１３（図１）において仮想計算機α１１と同じ業務プログラムＡ１１５が実行されているものとする。
【００３１】
仮想ＯＳ稼動性能収集プログラム１５６は、仮想化システム管理プログラム１５２を介して、仮想化システム管理プログラム１５２が割り当てた各仮想計算機１０の仮想計算機用メモリ１４０や、記憶装置１０２における仮想計算機用記憶領域１６７、仮想計算機用ＣＰＵ１７３（図２）などのリソースの稼動性能情報を一定時間（本実施形態では、１分）毎に収集し、統合管理サーバ２００の稼動性能管理プログラム２２３（図４）へ送信する。統合管理サーバ２００の稼動性能管理プログラム２２３は、受信した稼動性能情報を記憶装置２０２（図４）内へ稼動性能情報２５３（第２の機器情報）として蓄積する。なお、仮想ＯＳ稼動性能収集プログラム１５６は、記憶装置１０２からメモリ１０１に展開され、ＣＰＵ１０３（図２）が実行することによって具現化する。
つまり、稼動性能収集プログラム１４６が、仮想ＯＳ１４１内からみたリソースの使用状況を収集するのに対し、仮想ＯＳ稼動性能収集プログラム１５６は、仮想ＯＳ１４１外からみた各仮想計算機１０におけるリソースの使用状況を収集する。
【００３２】
（統合管理サーバの詳細）
図４は、本実施形態に係る統合管理サーバの詳細な構成の例を示す図である。なお、図４において、図２に示されている通信インタフェース２０４およびＣＰＵ２０３は、省略されており、物理ＯＳ２１０および物理ＯＳ時計２１１も省略されている。その他の構成要素において、図２と同様の構成要素については、図２と同一の符号を付して説明を省略する。
業務履歴管理プログラム２２１は、各仮想計算機用記憶領域１６７に格納されている業務履歴ログ１６４〜１６６を収集し、記憶装置２０２内へシステム内業務履歴ログ２５１として格納する。業務履歴管理プログラム２２１内の補正時刻生成プログラム２２２（時刻補正部）は、各仮想計算機１０におけるリソースの使用状況の情報である稼動性能情報２５２，２５３を取得し、ＯＳ時刻マッピングテーブル２５４を作成し、作成したＯＳ時刻マッピングテーブル２５４を記憶装置２０２に格納させる。ここで、符号２５２は、仮想計算機用メモリ１４０における稼動性能収集プログラム１４６が収集した稼動性能情報であり、符号２５３は、仮想計算機用メモリ１４０外における仮想ＯＳ稼動性能収集プログラム１５６が収集した稼動性能情報である。
【００３３】
さらに、業務履歴管理プログラム２２１は、記憶装置２０２に格納されているＯＳ時刻マッピングテーブル２５４を用いて、システム内業務履歴ログ２５１の時刻を補正する。さらに、業務履歴管理プログラム２２１は、補正した業務履歴ログをディスプレイ２０５に補正後業務履歴ログ画面２６１として表示する。
また、稼動性能管理プログラム２２３（稼動性能管理部）は、記憶装置２０２内に格納されている稼動性能情報２５２の情報をディスプレイ２０５に稼動性能グラフ２６２として表示する。
なお、図２における統合管理サーバ２００のプログラム２１３は、業務履歴管理プログラム２２１、稼動性能管理プログラム２２３および補正時刻生成プログラム２２２であり、これらのプログラム２２１〜２２３は、記憶装置２０２からメモリ２０１に展開され、ＣＰＵ２０３（図２）によって実行されて具現化する。
【００３４】
《業務履歴ログ》
図５および図６は、本実施形態に係る業務履歴ログの例を示す図であり、図５は、物理計算機における各仮想計算機用記憶領域に格納されている業務履歴ログを示し、図６は、統合管理サーバにおけるシステム内業務履歴ログを示している。
図５に示す業務履歴ログ１６４は、各仮想計算機１０における業務履歴収集プログラム１４５が、業務プログラムで行われた操作の履歴や、動作完了や、障害発生など仮想ＯＳ１４１に対して出力するログの内容を格納している。図５では、例として仮想計算機α１１から取得された業務履歴ログ１６４を示している。
業務履歴ログ１６４には、ログ日時（カラム５０１：請求項における履歴時刻）が含まれる他、業務履歴ログ１６４の出力元となっている業務プログラム名（出力元：カラム５０２）、業務履歴ログの種類（カラム５０３）、業務履歴ログ１６４のメッセージ（業務ログメッセージ：カラム５０４）、業務履歴ログ１６４が出力された仮想計算機１０名（カラム５０５）が含まれる。
カラム５０１のログ日時は、ログが出力された仮想ＯＳ時計１４２における日時情報が記録される。カラム５０２の業務履歴ログ１６４の出力元には、該当するログを出力した業務プログラムの名称、（ここでは「業務プログラムＡ」、「業務プログラムＢ」）などが記録される。カラム５０３の業務履歴ログ１６４の種類は、該当するログの内容が示す状態である。「異常」はエラーの発生を、「警告」はプログラムの動作を止めるものではないが正常の動作と異なる状態の発生を、「情報」は動作の正常終了の発生などを示す。なお、図５の例では、「情報」のみが登録されている。カラム５０４の業務履歴ログメッセージは、該当するログが出力されたときに、仮想計算機１０がシステム管理者に向けて出力したメッセージの内容である。
【００３５】
図６に示すシステム内業務履歴ログ２５１は、統合管理サーバ２００の業務履歴管理プログラム２２１が、各仮想計算機１０から取得した業務履歴ログ１６４〜１６６（図３）をまとめて生成した業務履歴ログである。システム内業務履歴ログ２５１は、各仮想計算機１０から集められた業務履歴ログ１６４〜１６６が、ログ日時に関して昇順となるよう格納されている。なお、図６における各カラム６０１〜６０５は、図５のカラム５０１〜５０５と対応するため、説明を省略する。
【００３６】
《稼動性能収集処理》
図７は、本実施形態に係る稼動性能収集処理の流れを示すフローチャートである。
図７は、稼動性能収集プログラム１４６が各仮想ＯＳ１４１から仮想化システム管理プログラム１５２によって割り当てられたＣＰＵ使用量などのリソースの稼動状況（稼動性能情報２５２）を収集する処理である。
【００３７】
まず、稼動性能収集プログラム１４６が起動されると、稼動性能収集プログラム１４６は、稼動性能情報２５２を収集する間隔をそれぞれの仮想ＯＳ１４１上で設定されている図示しない設定ファイルから取得する（Ｓ１０１）。
次に、稼動性能収集プログラム１４６は、仮想ＯＳ時計１４２の時刻（仮想ＯＳ時刻）を取得する（Ｓ１０２）。
そして、稼動性能収集プログラム１４６は、図示しない入力装置を介して、稼動性能収集プログラム１４６の停止指示が入力されたか否かを判定する（Ｓ１０３）。
ステップＳ１０３の結果、停止指示が入力された場合（Ｓ１０３→Ｙｅｓ）、稼動性能収集プログラム１４６は、処理を終了する。
【００３８】
ステップＳ１０３の結果、停止指示が入力されていない場合（Ｓ１０３→Ｎｏ）、稼動性能収集プログラム１４６は、ステップＳ１０２で仮想ＯＳ１４１より取得した仮想ＯＳ時刻（現在の仮想ＯＳ時刻）と、前回、稼動性能情報２５２を取得した仮想ＯＳ時刻との差が、ステップＳ１０１で取得した稼動性能情報２５２を収集する間隔以上であるか否かを判定することによって、現在の仮想ＯＳ時刻が稼動性能情報２５２を収集する時刻であるか否かを判定する（Ｓ１０４）。なお、初回時であれば、ステップＳ１０４は「Ｙｅｓ」となる。
ステップＳ１０４の結果、現在の仮想ＯＳ時刻が、稼動性能情報２５２の収集時刻ではない場合（Ｓ１０４→Ｎｏ）、稼動性能収集プログラム１４６は一定時間待機した（Ｓ１０７）後、ステップＳ１０２へ処理を戻す。
【００３９】
ステップＳ１０４の結果、現在の仮想ＯＳ時刻が、稼動性能情報２５２の収集時刻である場合（Ｓ１０４→Ｙｅｓ）、稼動性能収集プログラム１４６は、仮想ＯＳ１４１からＣＰＵ使用量などといったリソースの使用状況の情報である稼動性能情報２５２（第１の機器情報）を取得する（Ｓ１０５）。
そして、稼動性能収集プログラム１４６は、統合管理サーバ２００の稼動性能管理プログラム２２３へネットワーク４００を介して取得した稼動性能情報２５２を送信した（Ｓ１０６）後、稼動性能収集プログラム１４６は、ステップＳ１０７の処理を行う。
稼動性能情報２５２を送信された統合管理サーバ２００の稼動性能管理プログラム２２３は、受信した稼動性能情報２５２を記憶装置２０２へ格納する。
【００４０】
図８は、本実施形態に係る稼動性能情報の例を示す図であり、（ａ）は、仮想ＯＳαにおける稼動性能情報を示し、（ｂ）は、仮想ＯＳβにおける稼動性能情報を示し、（ｃ）は、仮想ＯＳγにおける稼動性能情報を示している。
図８（ａ），（ｂ），（ｃ）におけるカラムの構造は共通であるので、各カラムには、同一の符号を付して、まとめて説明する。
稼動性能情報２５２には、収集日時（カラム８０１）が含まれる他、ＣＰＵ使用量（カラム８０２）、ＣＰＵ使用率（カラム８０３）、メモリ使用率（カラム８０４）、ディスク使用率（カラム８０５）などが含まれる。
カラム８０１の収集日時は、稼動性能情報２５２が稼動性能収集プログラム１４６により収集された時点の仮想ＯＳ時刻が記録される。カラム８０２のＣＰＵ使用量は、該当する仮想計算機１０が使用している仮想計算機用ＣＰＵ１７３の使用量であり、単位はＭＨｚである。カラム８０３のＣＰＵ使用率は、該当する仮想計算機１０が使用している仮想計算機用ＣＰＵ１７３の全体に対する割合であり、単位は％である。カラム８０４のメモリ使用率は、該当する仮想計算機１０が使用している仮想計算機用メモリ１４０の全体に対する割合であり、単位は％である。カラム８０５のディスク使用率は、該当する仮想計算機１０が使用しているディスク（仮想計算機用記憶領域１６７）の全体に対する割合であり、単位は％である。この他にも、メモリ使用量などが収集され、格納されてもよい。仮想ＯＳ１４１のＣＰＵ使用量の取得、メモリ使用量の取得、仮想ＯＳ１４１のＣＰＵ使用率の算出、メモリ使用率の算出は既存の技術であるため、詳細な説明を省略する。
【００４１】
図９および図１０は、本実施形態に係る稼動性能情報２５２のうちのＣＰＵ使用量と、収集日時との関係を示したグラフの例である。
図９および図１０において、縦軸は、ＣＰＵ使用量を示し、横軸は時刻（日時）を示す。
図９は、図７で収集した稼動性能情報２５２のうちＣＰＵ使用量を収集した時刻順にプロットしたものであり、図１０は、図９においてプロットした点を線で結ぶことによってグラフ化したものである。このように稼動性能情報２５２は、前記仮想計算機１０の稼動状況（ＣＰＵ使用量）を、当該仮想ＯＳで計時されている仮想ＯＳ時刻を用いて監視した時系列の監視データである。物理ＯＳからみた稼動性能情報２５３も同様である。
統合管理サーバ２００の稼動性能管理プログラム２２３は、図９および図１０に示すグラフを稼動性能グラフ２６２（図４）としたディスプレイ２０５に描画させてもよい。
図１０のような稼動性能グラフをディスプレイ２０５に描画することにより、システム管理者は仮想計算機１０のＣＰＵ使用量の推移をグラフとして確認することができる。
さらに、稼動性能管理プログラム２２３は、稼動性能情報２５２のＣＰＵ使用量だけでなく、ＣＰＵ使用率や、メモリ使用率や、ディスク使用率や、メモリ使用量なども同様に稼動性能グラフとしてディスプレイ２０５上に表示させることができるが、ここでは省略する。
【００４２】
《仮想ＯＳ稼動性能収集処理》
次に、図１〜図４を参照しつつ、図１１に沿って物理ＯＳ１５０側からみたリソース状況の情報（稼動性能情報２５３：第２の機器情報）を収集する仮想ＯＳ稼動性能収集処理を説明する。
図１１は、本実施形態に係る物理ＯＳからみた稼動性能収集処理の流れを示す
まず、仮想ＯＳ稼動性能収集プログラム１５６が起動されると、仮想ＯＳ稼動性能収集プログラム１５６は、稼動性能情報２５３を収集する間隔を物理ＯＳ１５０上に保存されている設定ファイルから取得する（Ｓ２０１）。
次に、仮想ＯＳ稼動性能収集プログラム１５６は、物理ＯＳ１５０から物理ＯＳ時刻を取得する（Ｓ２０２）。
続いて、仮想ＯＳ稼動性能収集プログラム１５６は、図示しない入力装置を介して、仮想ＯＳ稼動性能収集プログラム１５６の停止指示が入力されたか否かを判定する（Ｓ２０３）。
ステップＳ２０３の結果、停止指示が入力された場合（Ｓ２０３→Ｙｅｓ）、仮想ＯＳ稼動性能収集プログラム１５６は、処理を終了する。
【００４３】
ステップＳ２０３の結果、停止指示が入力されていない場合（Ｓ２０３→Ｙｅｓ）、仮想ＯＳ稼動性能収集プログラム１５６は、ステップＳ２０２で物理ＯＳ１５０より取得した物理ＯＳ時刻（現在の物理ＯＳ時刻）と、前回、稼動性能情報２５３を取得した物理ＯＳ時刻との差が、ステップＳ２０１で取得した稼動性能情報２５３を収集する間隔以上であるか否かを判定することによって、現在の物理ＯＳ時刻が稼動性能を収集する時刻であるか否かを判定する（Ｓ２０４）。なお、初回時であれば、ステップＳ２０４は「Ｙｅｓ」となる。
ステップＳ２０４の結果、現在の物理ＯＳ時刻が、稼動性能情報２５３の収集時刻ではない場合（Ｓ２０４→Ｎｏ）、仮想ＯＳ稼動性能収集プログラム１５６は一定時間停止した（Ｓ２０９）後、ステップＳ２０２へ処理を戻す。
【００４４】
ステップＳ２０４の結果、現在の物理ＯＳ時刻が、稼動性能情報２５３の収集時刻である場合（Ｓ２０４→Ｙｅｓ）、仮想ＯＳ稼動性能収集プログラム１５６は、仮想化システム管理プログラム１５２から実行されている仮想ＯＳ数を取得する（Ｓ２０５）。
次に、仮想ＯＳ稼動性能収集プログラム１５６は、すべての仮想ＯＳ１４１の稼動性能情報２５３を取得したか否かを判定する（Ｓ２０６）。具体的には、後記するステップＳ２０７の処理を行う毎に、ステップＳ２０５で取得した仮想ＯＳ１４１数から１減算していき、ステップＳ２０６の段階で仮想ＯＳ１４１数が「０」となっているか否かを判定する。
ステップＳ２０６の結果、すべての仮想ＯＳ１４１の稼動性能情報２５３を取得している場合（Ｓ２０６→Ｙｅｓ）、仮想ＯＳ稼動性能収集プログラム１５６は一定時間待機した（Ｓ２０９）後、ステップＳ２０２へ処理を戻す。
【００４５】
ステップＳ２０６の結果、すべての仮想ＯＳ１４１の稼動性能情報２５３を取得していない場合（Ｓ２０６→Ｎｏ）、すなわち、取得していない仮想ＯＳ１４１がある場合、仮想ＯＳ稼動性能収集プログラム１５６は、仮想化システム管理プログラム１５２からＣＰＵ使用量などといったリソースの使用状況の情報である仮想ＯＳ１４１の稼動性能情報２５３（第２の機器情報）を取得する（Ｓ２０７）。ステップＳ２０７が、図７のステップＳ１０５と異なる点は、図７のステップＳ１０５では、仮想ＯＳ１４１から稼動性能情報２５２を取得したが、ステップＳ２０７では、仮想化システム管理プログラム１５２から稼動性能情報２５３を収集することである。このとき、仮想ＯＳ稼動性能収集プログラム１５６は、収集対象となる仮想ＯＳ１４１を仮想ＯＳ１４１の識別子の昇順などの規準で選択する。また、ステップＳ２０７で取得される稼動性能情報２５３のデータ構造は、図８で示したデータ構造と同じである。ただし、収集日時（カラム８０１）には稼動性能情報２５３を収集した時点における物理ＯＳ時刻が登録される。ここで、ＣＰＵ使用量などのリソースの使用状況の情報は、既存の技術であるため、詳細な説明を省略する。
【００４６】
次に、仮想ＯＳ稼動性能収集プログラム１５６は、ステップＳ２０７で収集した稼動性能情報２５３（つまり、物理ＯＳ１５０からみた仮想ＯＳ１４１のリソース使用状況の情報）を統合管理サーバ２００へ送信する（Ｓ２０８）。その後、仮想ＯＳ稼動性能収集プログラム１５６は、ステップＳ２０６へ処理を戻す。
【００４７】
《ＣＰＵ使用量のグラフ》
図１２は、本実施形態に係る各仮想ＯＳにおけるＣＰＵ使用量のグラフであり、（ａ）は、仮想ＯＳαのＣＰＵ使用量、（ｂ）は、仮想ＯＳβのＣＰＵ使用量、（ｃ）は、仮想ＯＳγのＣＰＵ使用量を示す。
なお、図１２（ａ），（ｂ），（ｃ）において、煩雑になるのを避けるため図示していないが、すべてのグラフに関し、横軸が時刻を示し、縦軸がＣＰＵ使用量を示している。また、図１２（ａ），（ｂ），（ｃ）において、上段のグラフが各仮想ＯＳ１４１からみた各仮想ＯＳ１４１のＣＰＵ使用量（図７の処理で取得された稼動性能情報２５２におけるＣＰＵ使用量）であり、下段のグラフが物理ＯＳ１５０からみた各仮想ＯＳ１４１のＣＰＵ使用量（図１１の処理で取得された稼動性能情報２５３におけるＣＰＵ使用量）である。以下、稼動性能情報２５２におけるＣＰＵ使用量を仮想ＯＳからみたＣＰＵ使用量と記載し、稼動性能情報２５３におけるＣＰＵ使用量を物理ＯＳからみたＣＰＵ使用量と記載することとする。
図１２に示すように、仮想ＯＳ１４１からみた仮想ＯＳ１４１のＣＰＵ使用量のグラフと、物理ＯＳ１５０からみた仮想ＯＳ１４１のＣＰＵ使用量のグラフとは、形状が異なっている。これは、前記した理由によって物理ＯＳ時刻と、仮想ＯＳ時刻との間にズレが生じているためである。
このことを図１３を参照して、詳細に説明する。
【００４８】
図１３は、仮想ＯＳαにおけるＣＰＵ使用量のグラフを示す図であり、（ａ）は、仮想ＯＳαからみた仮想ＯＳαのＣＰＵ使用量を示すグラフであり、（ｂ）は、物理ＯＳからみた仮想ＯＳαのＣＰＵ使用量を示すグラフである。つまり、図１３（ａ），（ｂ）は、それぞれ図１２（ａ）の上段および下段のグラフを示している。図１３のグラフは、横軸が時刻を示しており、縦軸がＣＰＵ使用量を示している。
仮想ＯＳα１１１からみた仮想ＯＳα１１１のＣＰＵ使用量は、前記した仮想ＯＳ１４１の特性、すなわちリソースの有効活用のために、稼動していない仮想ＯＳ１４１は時計機能も含めて完全に停止することにより時間の連続性が保証されない場合がある。すなわち、点１３０２と、点１３０３との間のようにＣＰＵ使用量も不連続にしか取得できない場合がある。
図１３では２つのグラフの横軸の時間軸を同一の時刻としてＣＰＵ使用量を描画しているが、仮想ＯＳα１１１における仮想ＯＳ時刻と、物理ＯＳ時刻が同一である保証はなく、例えば、グラフの上下の２０：１０分に相当するＣＰＵ使用量１３０１，１３１１を比較しても、この２つのＣＰＵ使用量１３０１，１３１１は同一の瞬間のＣＰＵ使用量とは限らない。他の時刻２０：１１，２０：２０，２０：２５，２０：３０についても同様である。
【００４９】
そこで、このような物理ＯＳ時刻と、仮想ＯＳ時刻との間のズレを補正するため、本実施形態では、統合管理サーバ２００が、図６の処理で収集した稼動性能情報２５２（仮想ＯＳ１４１からみた稼動性能情報２５２）に含まれるＣＰＵ使用量と、図１１の処理で収集した稼動性能情報２５３（物理ＯＳ１５０からみた稼動性能情報２５３）に含まれるＣＰＵ使用量について、相関関係を求める。そして、統合管理サーバ２００が、相関度の高い、つまり相関係数が大きくなるＣＰＵ使用量のデータ群を算出し、その２点間の時刻から物理ＯＳ時刻と仮想ＯＳ時刻とのマッピングを行う。なお、ＣＰＵ使用量の代わりに、メモリ使用量など時間と共に推移し、かつ各仮想計算機１０において絶対量を示す（つまり、仮想ＯＳ１４１からみても、物理ＯＳ１５０からみても同じ値となる）情報を用いることもできる。
【００５０】
《業務履歴管理処理》
図１〜図４を参照しつつ、図１４に沿って業務履歴管理処理の説明を行う。
図１４は、本実施形態に係る業務履歴管理処理の流れを示すフローチャートである。
図１４は、まず、業務履歴管理プログラム２２１が補正時刻生成プログラム２２２を呼び出し、稼動性能管理プログラム２２３から仮想ＯＳ１４１からみたＣＰＵ使用量、および物理ＯＳ１５０からみた仮想ＯＳ１４１のＣＰＵ使用量を稼動性能情報２５２，２５３から取得し、仮想ＯＳ１４１からみたＣＰＵ使用量と物理ＯＳ１５０からみた仮想ＯＳ１４１のＣＰＵ使用量の相関関係を求め、ＯＳ時刻マッピングテーブル２５４を生成する処理手順を示したフローチャートである。
なお、本実施形態において、図１４の処理は、所定時間（本実施形態では１時間）毎に行われる処理であるが、管理者の入力開始指示によって開始される処理でもよい。
【００５１】
まず、業務履歴管理プログラム２２１は、空のＯＳ時刻マッピングテーブル２５４を生成する。
次に、業務履歴管理プログラム２２１は、稼動性能情報２５２，２５３に、前回のログ時刻の補正から１時間分のデータが存在しているか否かを判定する（Ｓ３０１）。つまり、業務履歴管理プログラム２２１は、前回のログ時刻の補正時から１時間分の稼動性能情報２５２，２５３がたまったか否かを判定する。ここで、前回のログ時刻の補正時から１時間分の稼動性能情報２５２，２５３がたまったか否かを判定するのは、各仮想ＯＳ１４１は、それぞれ時刻補正ツール１４４を用いて、６０分毎にＮＴＰサーバ３００から時刻情報を取得し、それぞれの仮想ＯＳ時計１４２の時刻を合わせることを想定しているからである。これにより、物理ＯＳ時計１５１の時刻と、各仮想ＯＳ時計１４２の時刻は、１時間以上のずれがないことになる。なお、１時間に１回程度なら、時刻補正ツール１４４の動作自体が計算機システム１に高負荷となることはなく、業務に支障をきたすことはない。
ステップＳ３０１の結果、稼動性能情報２５２，２５３に、前回のログ時刻の補正から１時間分のデータが存在していない場合（Ｓ３０１→Ｎｏ）、業務履歴管理プログラム２２１は、一定時間待機した（Ｓ３０４）後、ステップＳ３０１へ処理を戻す。
【００５２】
ステップＳ３０１の結果、稼動性能情報２５２，２５３に、前回のログ時刻の補正から１時間分のデータが存在している場合（Ｓ３０１→Ｙｅｓ）、業務履歴管理プログラム２２１は、相関関係をチェックする時間帯における物理ＯＳ１５０からみた仮想ＯＳ１４１のＣＰＵ使用量と、仮想ＯＳ１４１からみた仮想ＯＳ１４１のＣＰＵ使用量を取得する（Ｓ３０２）。
そして、業務履歴管理プログラム２２１は、取得した物理ＯＳ１５０からみた仮想ＯＳ１４１のＣＰＵ使用量の集合（以後、物理収集結果２５６と呼ぶ）、仮想ＯＳ１４１から収集した仮想ＯＳ１４１のＣＰＵ使用量の集合（以後、仮想収集結果２５５と呼ぶ）および２つのＣＰＵ使用量の相関関係をチェックする時間帯を引数として補正時刻生成処理を開始する（Ｓ３０３）。ステップＳ３０３の処理については、図１５を参照して後記する。
【００５３】
《補正時刻生成処理》
次に、図１〜図４および図１３を参照しつつ、図１５に沿って補正時刻生成処理を説明する。
図１５は、本実施形態に係る補正時刻生成処理の流れを示すフローチャートである。
図１５では、補正時刻生成プログラム２２２が、仮想ＯＳ１４１からみた仮想ＯＳ１４１のＣＰＵ使用量、および物理ＯＳ１５０からみた仮想ＯＳ１４１のＣＰＵ使用量の相関関係からＯＳ時刻マッピングテーブル２５４（図１７で後記）を生成する処理を説明する。
仮想ＯＳ１４１からみたＣＰＵ使用量は、稼動性能収集プログラム１４６によって１分毎に稼動性能情報２５２として収集されている。この際、稼動性能収集プログラム１４６は収集した稼動性能情報２５２と共に、稼動性能収集プログラム１４６が動作している仮想計算機１０における仮想ＯＳ時刻を対にして格納している。仮想ＯＳ時刻は、前記したように通常の時刻に対して前後したり、時刻が飛ぶことが多々ある。従って、稼動性能収集プログラム１４６は、１分ごとに稼動性能情報２５２を収集しているが、仮想ＯＳ時刻が前後したり飛んだりするため、稼動性能情報２５２も時間が飛んだ際は収集できず、常に連続したデータとは限らない（図１３（ａ）参照）。
【００５４】
このような仮想ＯＳ時刻を補正するため、まず、補正時刻生成プログラム２２２は、仮想収集結果２５５から時間が連続したＣＰＵ使用量の連続データを取得する（Ｓ４０１）。時間が連続したＣＰＵ使用量の連続データとは、図１３（ａ）における符号１３２１および符号１３２２で示す範囲である。ここでは、符号１３２１を連続データとした例で説明する。
次に、補正時刻生成プログラム２２２は、物理収集結果２５６において、ステップＳ４０１で取得した連続データと相関関係をチェックする開始時刻を「０分」に設定する（Ｓ４０２）。
【００５５】
次に、補正時刻生成プログラム２２２は、チェック開始時刻より取得した連続データと同数のチェックデータ（ＣＰＵ使用量）を図１４のステップＳ３０３の段階で引数として渡された物理収集結果２５６から取得する（Ｓ４０３）。つまり、ここで、連続データとは、仮想ＯＳ１４１からみた仮想ＯＳ１４１のＣＰＵ使用量であり、チェックデータとは、物理ＯＳ１５０からみた仮想ＯＳ１４１のＣＰＵ使用量である。図１３を参照して説明すると、図１３（ａ）における符号１３２１の範囲にあるＣＰＵ使用量のデータを連続データとするときは、図１３（ｂ）の符号１３３１から２個分のデータをチェックデータとする。同様に、図１３（ａ）における符号１３２２の範囲にあるＣＰＵ使用量のデータを連続データとするときは、図１３（ｂ）における符号１３３１から１４個分のデータをチェックデータとする。
【００５６】
次に、補正時刻生成プログラム２２２は、ステップＳ４０３で取得した仮想収集結果２５５の連続データと、物理収集結果２５６のチェックデータとの相関係数を算出する（Ｓ４０４）。また、相関係数とは２つの変量の相関関係の強弱の程度、関係の向きを計量化したものであり、本実施形態では「ピアソンの積率相関係数」を用いて相関係数を算出するものとする。「ピアソンの積率相関係数」以外の算出方法を用いて相関係数を算出してもよいことは、当然である。
【００５７】
そして、補正時刻生成プログラム２２２は、ステップＳ４０５で求めた相関係数の絶対値と、仮想収集結果２５５における連続データの開始時刻と、物理収集結果２５６のチェックデータの開始時刻を引数として、登録判定処理を開始する（Ｓ４０５）。登録判定処理では、ステップＳ４０４で算出した相関係数が十分大きいか否かを判定することにより、ＯＳ時刻マッピングテーブル２５４へ登録を行うか否かの判定を行うための情報を出力する。なお、ステップＳ４０５の処理については、図１６を参照して後記する。
次に、補正時刻生成プログラム２２２は、ステップＳ４０５における登録判定処理の結果を用いて、ＯＳ時刻マッピングテーブル２５４への登録条件を満たすか否かを判定する（Ｓ４０６）。
ステップＳ４０６の結果、登録条件を満たさない場合（Ｓ４０６→Ｎｏ）、つまり、ステップＳ４０４で算出した相関係数が十分な値ではなく、チェックした仮想収集結果２５５の連続データと物理収集結果２５６のチェックデータのＣＰＵ使用量の値の推移に高い相関関係が見られない場合など、補正時刻生成プログラム２２２は、物理収集結果２５６におけるチェック開始時刻を１分進める（Ｓ４０９）。図１３（ｂ）を参照して説明すると、チェック開始が符号１３３１からであったものを、符号１３３２をチェック開始時刻、つまりチェックデータの開始とする。そして、補正時刻生成プログラム２２２は、時刻をずらした物理収集結果２５６のチェックデータと、再度仮想収集結果２５５の連続データと高い相関関係があるかチェックを行うべく、ステップＳ４０３へ処理を戻す。
【００５８】
ステップＳ４０６の結果、登録条件を満たす場合（Ｓ４０６→Ｙｅｓ）、つまり、仮想収集結果２５５の連続データと、高い相関関係のある物理収集結果２５６のチェックデータが見つかった場合など、補正時刻生成プログラム２２２は、仮想収集結果２５５の連続データの開始時刻（図１２（ａ）の符号１３０１の時刻）と、物理収集結果２５６のチェック開始時刻（図１２（ｂ）の符号１３３１の時刻）とは同時刻であると判定し、仮想収集結果２５５の連続データのデータ数分、ＯＳ時刻マッピングテーブル２５４（図１７で後記）の仮想ＯＳ１４１の時刻欄へ物理ＯＳ時刻を記録する（Ｓ４０７）。つまり、補正時刻生成プログラム２２２は、図１３（ａ）における符号１３０１の時刻を、図１３（ｂ）における符号１３３１の時刻とし、図１３（ａ）における符号１３０２の時刻を、図１３（ｂ）の符号１３３２の時刻として補正する。
【００５９】
そして、補正時刻生成プログラム２２２は、取得した仮想収集結果２５５におけるすべてのＣＰＵ使用量についてＯＳ時刻マッピングテーブル２５４へマッピングしたか否かを判定する（Ｓ４０８）。
ステップＳ４０８の結果、仮想収集結果２５５におけるすべてのＣＰＵ使用量が、ＯＳ時刻マッピングテーブル２５４へマッピングされていない場合（Ｓ４０８→Ｎｏ）、補正時刻生成プログラム２２２は、ステップＳ４０１へ処理を戻し、新たな仮想収集結果２５５の連続データに関して、ステップＳ４０１〜ステップＳ４０９の処理を行う
ステップＳ４０８の結果、仮想収集結果におけるすべてのＣＰＵ使用量についてＯＳ時刻マッピングテーブル２５４へマッピングした場合（Ｓ４０８→Ｙｅｓ）、補正時刻生成プログラム２２２は、図１４のステップＳ３０３へリターンする。
【００６０】
《登録判定処理》
次に、図１〜図４を参照しつつ、図１６に沿って、図１５のステップＳ４０５における登録判定処理を説明する。
図１６は、本実施形態に係る登録判定処理の流れを示すフローチャートである。
まず、補正時刻生成プログラム２２２は、図１５のステップＳ４０５で引数として渡された相関係数の絶対値（図１５のステップＳ４０５から渡された引数）が予め設定してある閾値以上であるか否かを判定する（Ｓ５０１）。相関係数は−１から１までの値を取り、絶対値が１に近いほど相関関係が強い。一般に相関係数の強さを評価する場合、絶対値が０．７以上の場合に強い相関があると言える。つまり、通常絶対値０．７を閾値とする。しかし、もともと同一のＣＰＵ使用量を、仮想ＯＳ１４１上からみた場合と物理ＯＳ１５０上からみた場合の比較であるため、値が近く相関関係が高い場合が多いはずなので、本実施形態では相関係数の絶対値が０．９以上の場合に、相関係数の値が大きいとする。つまり、絶対値０．９を閾値とする。なお、閾値が０．９に限らないことは当然である。
以下、「相関係数」とは「相関係数の絶対値」を示すこととする。
【００６１】
ステップＳ５０１の結果、相関係数が閾値以上である場合（Ｓ５０１→Ｙｅｓ）、補正時刻生成プログラム２２２は、仮想収集結果２５５の連続データと、物理収集結果２５６のチェックデータ間に高い相関関係があったとして、物理収集結果２５６のチェック開始時刻をチェックデータのマッピング開始時刻とする（Ｓ５０２）。つまり、図１３を参照して説明すると、図１３（ｂ）における符号１３３１の時刻と、図１３（ａ）における符号１３０１の時刻は一致しているとし、符号１３３１の時刻をマッピング開始時刻とする。そして、補正時刻生成プログラム２２２は、ＯＳ時刻マッピングテーブル２５４への登録条件を満たすと判定し（Ｓ５０３）、図１５のステップＳ４０５にリターンする、この場合、図１５のステップＳ４０６は「Ｙｅｓ」が選択される。
【００６２】
ステップＳ５０１の結果、相関係数が閾値未満である場合（Ｓ５０１→Ｎｏ）、補正時刻生成プログラム２２２は、物理収集結果２５６のチェックデータの最終時刻がチェック時間帯の最終時刻であるか判定する（Ｓ５０４）。ここで、チェック時間帯とは、図１４のステップＳ３０２で取得した物理収集結果２５６に格納されているデータが示す時間である。本実施形態では、６０分となる。ステップＳ５０４では、チェックデータの最終時刻が、チェック時間帯の最終時刻である場合、つまり、物理収集結果２５６における最後のデータである場合、その時間以降の物理収集結果２５６がないため、補正時刻生成プログラム２２２は、それ以上、物理収集結果２５６におけるチェック開始時刻を１分進めて再度相関関係を求めることができないためである。
【００６３】
ステップＳ５０４の結果、チェックデータの最終時刻がチェック時間帯の最終時刻でなない場合（Ｓ５０４→Ｎｏ）、物理収集結果２５６にまだチェックすべきデータが存在するので、補正時刻生成プログラム２２２は、保存している相関係数の値が、図１５のステップＳ４０４で算出した相関係数の値より大きいか否かを判定する（Ｓ５０５）。ここで、保存している相関係数とは、後記するステップＳ５０６の処理で保存している相関係数である。これは、相関係数が閾値に届かないものの、高い値を示しているチェックデータと、連続データとのペアを保存しておき、物理収集結果２５６におけるデータのすべての相関係数を算出しても、閾値以上を示すチェックデータと、連続データとのペアが存在しない場合に、保存しておいたチェックデータと、連続データとのペアを時刻補正に用いる目的で行われる。登録判定処理が、初めて実行された場合など、保存している相関係数がない場合、補正時刻生成プログラム２２２は、保存している相関係数の値を０としておく。つまり、保存している相関係数がない場合、補正時刻生成プログラム２２２は、ステップＳ５０５で「Ｙｅｓ」と判定する。
【００６４】
ステップＳ５０５の結果、相関係数が保存している相関係数（前の時間に求めた相関係数）の値以下であった場合（Ｓ５０５→Ｎｏ）、補正時刻生成プログラム２２２は、前の時間の物理収集結果２５６のチェック開始時刻（保存しているチェック開始時刻）の方が仮想収集結果２５５の連続データと物理収集結果２５６のチェックデータと時刻のマッピングを取るのにふさわしいと判定する。このため、補正時刻生成プログラム２２２は、前の時間に求めた相関係数およびその相関係数を求めた際の物理収集結果２５６のチェック開始時刻を、そのまま保存しておく必要がある。つまり、ステップＳ５０５で「Ｎｏ」が選択された場合、補正時刻生成プログラム２２２は、なにも処理を行わずに、補正時刻生成プログラム２２２は、ＯＳ時刻マッピングテーブル２５４への登録条件を満たさないと判定し（Ｓ５０７）、図１５のステップＳ４０５にリターンする。この場合、図１５のステップＳ４０６は「Ｎｏ」が選択される。
【００６５】
ステップＳ５０５の結果、相関係数が保存している相関係数の値より大きい場合（Ｓ５０５→Ｙｅｓ）、補正時刻生成プログラム２２２は、図１５のステップＳ４０４で算出した相関係数と、物理収集結果２５６のチェック開始時刻をマッピング候補時刻として記憶装置２０２に保存する（Ｓ５０６）。そして、補正時刻生成プログラム２２２は、ＯＳ時刻マッピングテーブル２５４への登録条件を満たさないと判定し（Ｓ５０７）、図１５のステップＳ４０５にリターンする、この場合、図１５のステップＳ４０６は「Ｎｏ」が選択される。
【００６６】
ステップＳ５０４の結果、チェックデータの最終時刻がチェック時間帯の最終時刻である場合（Ｓ５０４→Ｙｅｓ）、ステップＳ５０６で保存していたマッピング候補時刻をチェックデータのマッピング開始時刻とする（Ｓ５０８）。つまり、補正時刻生成プログラム２２２は、物理収集結果２５６のすべてのデータに関し相関係数を算出しても、閾値以上を示す値が算出されなかったので、保存しておいた連続データと、チェックデータとを用いて仮想ＯＳ時刻の補正を行う。そして、補正時刻生成プログラム２２２は、ＯＳ時刻マッピングテーブル２５４への登録条件を満すと判定し（Ｓ５０３）、図１５のステップＳ４０５にリターンする、この場合、図１５のステップＳ４０６は「Ｙｅｓ」が選択される。
【００６７】
業務履歴管理プログラム２２１および補正時刻生成プログラム２２２は、図１４〜図１６で示したフローチャートでの処理手順を物理計算機１００で実行されている各仮想ＯＳ１４１のそれぞれについて実行し、算出された仮想収集結果２５５と物理収集結果２５６のＣＰＵ使用量について相関関係を求め、物理ＯＳ時刻と各仮想ＯＳ時刻のマッピングを行い、ＯＳ時刻マッピングテーブル２５４を完成させる。こうして、統合管理サーバ２００は、時刻の補正を行うデータを求める。
【００６８】
このように、仮想ＯＳ１４１からみたＣＰＵ使用量と、物理ＯＳ１５０からみた仮想ＯＳ１４１のＣＰＵ使用量の相関関係を求め、対応する（相関係数が高い値を示す）それぞれの仮想ＯＳ時刻、物理ＯＳ時刻を対応付けてＯＳ時刻マッピングテーブル２５４へ出力する。
【００６９】
《ＯＳ時刻マッピングテーブル》
図１７は、本実施形態に係るＯＳ時刻マッピングテーブルの例を示す図である。
ＯＳ時刻マッピングテーブル２５４は、各仮想ＯＳ１４１からみたＣＰＵ使用量と、物理ＯＳ１５０からみたそれぞれの仮想ＯＳ１４１のＣＰＵ使用量の相関関係を求め、相関関係の高かったＣＰＵ使用量における対の時刻をマッピングし、テーブル化したものである。
ＯＳ時刻マッピングテーブル２５４には、仮想ＯＳα１１１、仮想ＯＳβ１２１および仮想ＯＳγ１３１の時刻（仮想ＯＳ時刻：カラム１７０２〜１７０４）が、物理ＯＳ１５０の時刻（物理ＯＳ時刻：カラム１７０１）と対応付けられて保存されている。
例えば、レコード１７１１では、仮想ＯＳα１１１の時刻「０８／０８／０５  ２０：２２」、仮想ＯＳβ１２１の時刻「０８／０８／０５  ２０：１７」および仮想ＯＳγ１３１の時刻「０８／０８／０５  ２０：３６」が、物理ＯＳ１５０の時刻「０８／０８／０５  ２０：１７」に対応することを示している。つまり、仮想ＯＳα１１１において「０８／０８／０５  ２０：２２」に取得された業務履歴ログの収集日時は、物理ＯＳ１５０の時刻「０８／０８／０５  ２０：１７」に相当することを意味している。他の仮想ＯＳ１４１についても同様である。
なお、仮想ＯＳ１４１の時刻におけるハイフン（「−」）は、仮想ＯＳ時刻が、時刻飛びなどを起こしており、物理ＯＳ時刻に相当するＣＰＵ量を仮想ＯＳ１４１上で収集できず、存在しないことを示している。さらに、仮想ＯＳ１４１の時刻におけるハイフン（「−」）は、収集時には、物理ＯＳ時刻に対応する仮想ＯＳ時刻が取得されたものの、マッピングの結果、他の物理ＯＳ時刻と対応付けられたため、該当する仮想ＯＳ時刻が空欄となってしまったことも示している。例えば、欄１７１２のハイフン（「−」）は、仮想ＯＳ時刻の収集時において「０８／０８／０５  ２０：２１」の仮想ＯＳ時刻が取得されていたが、マッピングの結果、この仮想ＯＳ時刻は、行１７１３に示すように「０８／０８／０５」の物理ＯＳ時刻と対応付けられたため、欄１７１２は空欄となったことを示している。
つまり、仮想ＯＳ１４１の時刻におけるハイフン（「−」）は、リソースの有効利用のために仮想計算機１０が完全に停止しており、ＣＰＵ使用量を含む稼動性能情報２５２が存在しないか、補正時刻生成プログラム２２２が、高い相関関係を示す物理ＯＳ時刻を検出することができなかったことを示している。
【００７０】
《システム内業務履歴ログへの補正時刻追加処理》
次に、図１〜図４を参照しつつ、図１８に沿ってシステム内業務履歴ログ２５１へ補正時刻を追加する処理を説明する。
図１８は、本実施形態に係るシステム内業務履歴ログへの補正時刻追加処理の流れを示すフローチャートである。
図１８では、業務履歴管理プログラム２２１が、補正時刻生成プログラム２２２によって生成されたＯＳ時刻マッピングテーブル２５４を用いて、システム内業務履歴ログ２５１に補正時刻を追加する。なお、図１８の処理は、図１４〜図１６の処理が行われた後、行われてもよいし、システム管理者の開始指示が図示しない入力装置を介して入力された際に行われてもよいし、予め設定されている一定時間毎に行われてもよい。
【００７１】
まず、業務履歴管理プログラム２２１は、補正時刻が追加されていない取得可能なシステム内業務履歴ログ２５１があるか否かを判定する（Ｓ６０１）。
ステップＳ６０１の結果、補正時刻が追加されていない取得可能なシステム内業務履歴ログ２５１がない場合（Ｓ６０１→Ｎｏ）、業務履歴管理プログラム２２１は、処理を終了する。
ステップＳ６０１の結果、補正時刻が追加されていない取得可能なシステム内業務履歴ログ２５１がある場合（Ｓ６０１→Ｙｅｓ）、業務履歴管理プログラム２２１は記憶装置２０２から図６に示すシステム内業務履歴ログ２５１を取得する（Ｓ６０２）。
次に、業務履歴管理プログラム２２１は、ＯＳ時刻マッピングテーブル２５４（図１７）から、仮想計算機１０名とログ日時に相当する物理ＯＳ１５０の時刻（カラム１７０１）を取得する（Ｓ６０３）。具体的には、業務履歴管理プログラム２２１は、システム内業務履歴ログ２５１において処理の対象となっているレコードの仮想計算機１０名を取得すると、取得した仮想計算機１０名で実行している仮想ＯＳ１４１に仮想ＯＳ１４１名を問い合わせる。そして、業務履歴管理プログラム２２１は、問い合わせの結果、取得した仮想ＯＳ１４１名と、仮想計算機１０名に対応しているログ日時をキーとして、ＯＳ時刻マッピングテーブル２５４を検索し、対応している物理ＯＳ１５０の時刻を取得する。
【００７２】
そして、業務履歴管理プログラム２２１は、システム内業務履歴ログ２５１に補正後時刻のフィールドを追加し、この追加した補正後時刻のフィールドに取得した物理ＯＳ１５０の時刻を書き込む（Ｓ６０４）ことにより、図１９で後記する補正後システム内業務履歴ログを生成する。
その後、業務履歴管理プログラム２２１は、ステップＳ６０１へ処理を戻す。業務履歴管理プログラム２２１は、ステップＳ６０１の取得可能なシステム内業務履歴ログ２５１がなくなるまで、システム内業務履歴ログ２５１への補正時刻追加処理を繰り返す。
【００７３】
《補正後システム内業務履歴ログ》
図１９は、本実施形態に係る補正後システム内業務履歴ログの例を示す図である。
補正後システム内業務履歴ログは、図６に示すシステム内業務履歴ログに補正後日時のフィールド（カラム１９０１）が追加された構成である。その他のフィールドは、図６と同様であるので、同一の符号を付して説明を省略する。前記したように、補正後日時には、ＯＳ時刻マッピングテーブル２５４において、対象となる仮想ＯＳ１４１に係るログ日時に対応する物理ＯＳ１５０の時刻が登録される。
このように、業務履歴管理プログラム２２１は、追加した補正後日時で並びかえた補正後システム内業務履歴ログを統合管理サーバ２００のディスプレイ２０５に表示することで、システム管理者は、物理ＯＳ時刻で一元的な時系列の業務履歴ログを閲覧することができ、管理を一元化することが可能となる。
なお、本実施形態では、図６に示すシステム内業務履歴ログ２５１に補正後日時のフィールドを追加したが、これに限らず、図６に示すシステム内業務履歴ログ２５１のログ日時を、対応する物理ＯＳ時刻で置換してもよい。
また、本実施形態では物理ＯＳ時刻を基準時刻として、仮想ＯＳ時刻と対応付ける構成としたが、これに限らず、例えば、外部装置から時刻を取得し、これを基準時刻としてもよい。
【００７４】
なお、本実施形態では、非ブレード構造の物理計算機１００を想定しているが、ブレード構造を有していてもよい。ブレード構造の場合、ブレード毎に仮想計算機１０が実行されるが、仮想計算機１０で動作する時計もブレード毎に設置される。ブレード上の時計は個々に作動するため、それぞれの時計が計時する時刻にズレが生じてくる。そこで、物理計算機１００で実行されている物理ＯＳ時計１５１や、特定のブレードにおける時計を規準とし、他のブレードで計時されている時刻を合わせるようにしてもよい。
【００７５】
《別の実施形態１》
次に、図４を参照しつつ、図２０および図２１に沿って、本実施形態に係る別の実施形態１を説明する。
ここでは、仮想ＯＳ１４１からみたＣＰＵ使用量と、物理ＯＳ１５０からみた仮想ＯＳ１４１のＣＰＵ使用量の相関関係を求める際、高い相関が出ない場合の対応策として、ＣＰＵ使用量の変局点を抽出し、ＣＰＵ使用量の変局点のみのグラフで相関関係を求める方法について説明する。
図２０は、本実施形態に係る変局点を説明するための図であり、（ａ）は、変局点以外の点を含むグラフ、（ｂ）は、変局点のみの点を含むグラフを示す。
図２０（ａ），（ｂ）において、横軸は時刻を示し、縦軸はＣＰＵ使用量を示す。
ここで、変局点とは、ＣＰＵ使用量が前の値からの変位の向きが変わる点である。つまり、変局点とは、増加していたＣＰＵ使用量が減少に転じた点、または増加していたＣＰＵ使用量が増加も減少もなく変化しなかった点である。減少傾向からも同様で、図２０（ａ）における黒い点で示したＣＰＵ使用量の値が変局点である。
変局点でない白い点で示したＣＰＵ使用量のデータを省き、残ったＣＰＵ使用量の値を線で繋いだグラフが図２０（ｂ）に示すグラフである。このように変局点のみで描画したグラフは、ＣＰＵ使用量の値の変化を顕著に表すことができ、高い相関係数を示すことが可能になる場合が多い。
【００７６】
図２１は、本実施形態に係る変局点の抽出処理の流れを示すフローチャートである。
なお、図１４〜図１６の処理において高い相関を示すＣＰＵ使用量が検出されなかった場合、図２１の処理を、図１４におけるステップＳ３０１とステップＳ３０２との間で行うことにより、変局点を除いたデータを用いて相関係数の算出を再度行うものである。また、図２１の処理は、仮想ＯＳ１４１からみた仮想ＯＳ１４１のＣＰＵ使用量、物理ＯＳ１５０からみた仮想ＯＳ１４１のＣＰＵ使用量の両方に対して行うものとする。また、図２１の処理を行う際には、図１６のステップＳ５０６では、ステップＳ５０１の閾値よりも低い閾値を設定し、補正時刻生成プログラム２２２は、この設定した閾値未満であれば保存しないこととしてもよい。
【００７７】
まず、変局点抽出部としての業務履歴管理プログラム２２１は、稼動性能情報２５２，２５３から時間の早い順にＣＰＵ使用量を取得し、取得したＣＰＵ使用量を「チェック点１」、「チェック点２」とする（Ｓ７０１）。つまり、ＣＰＵ使用量のデータにおける最初のデータを「チェック点１」とし、２番目のデータを「チェック点２」とする。
対象とするデータの先頭のデータは無条件に変局点とするため、業務履歴管理プログラム２２１は、「チェック点１」を変局点とする（Ｓ７０２）。
次に、業務履歴管理プログラム２２１は、取得可能なＣＰＵ使用量があるか否かを判定する（Ｓ７０３）。つまり、「チェック点２」のデータが、最後のデータでないか否かを判定する。
【００７８】
ステップＳ７０３の結果、取得可能なＣＰＵ使用量がない場合（Ｓ７０３→Ｎｏ）、業務履歴管理プログラム２２１は、以下の処理において変局点リストに該当するＣＰＵ使用量および時刻以外のデータを物理収集結果２５６および仮想収集結果２５５から除外し（Ｓ７１６）、図１４のステップＳ３０２へ処理をリターンする。つまり、業務履歴管理プログラム２２１は、変局点となっているデータを抽出し、新たな稼動性能情報２５２，２５３を生成する。
ステップＳ７０３の結果、取得可能なＣＰＵ使用量がある場合（Ｓ７０３→Ｙｅｓ）、業務履歴管理プログラム２２１は、「チェック点２」の次のＣＰＵ使用量を取得し、「チェック点３」とする（Ｓ７０４）。ここまでで、業務履歴管理プログラム２２１は、３つの連続したデータを取得する。
そして、業務履歴管理プログラム２２１は、「チェック点２」から「チェック点１」を引いた結果を「結果１」とし、この「結果１」の値が正値、負値、０（ゼロ）値のいずれであるのかを判定する（Ｓ７０５）。つまり、業務履歴管理プログラム２２１は、「チェック点２」のＣＰＵ使用量から、「チェック点１」のＣＰＵ使用量を引いた値が正値、負値、０（ゼロ）値のいずれであるのかを判定する。
【００７９】
ステップＳ７０５の結果、負値であると判定した場合（Ｓ７０５→負）、業務履歴管理プログラム２２１は、「結果１」を−１とする（Ｓ７０６）。
ステップＳ７０５の結果、０（ゼロ）値であると判定した場合（Ｓ７０５→０）、業務履歴管理プログラム２２１は、「結果１」を０（ゼロ）とし（Ｓ７０７）、ステップＳ７０５の結果、正値であると判定した場合（Ｓ７０５→正）、業務履歴管理プログラム２２１は、「結果１」を１とする（Ｓ７０８）。
【００８０】
ステップＳ７０６、ステップＳ７０７またはステップＳ７０８の後、業務履歴管理プログラム２２１は、「チェック点３」から「チェック点２」を引いた結果を「結果２」とし、この「結果２」の値が正値、負値、０（ゼロ）値のいずれであるのかを判定する（Ｓ７０９）。つまり、業務履歴管理プログラム２２１は、「チェック点３」のＣＰＵ使用量から、「チェック点２」のＣＰＵ使用量を引いた値が正値、負値、０（ゼロ）値のいずれであるのかを判定する。
ステップＳ７０９の結果、負値であると判定された場合（Ｓ７０９→負）、業務履歴管理プログラム２２１は、「結果２」を−１とする（Ｓ７１０）。
ステップＳ７０９の結果、０（ゼロ）値であると判定した場合（Ｓ７０９→０）、業務履歴管理プログラム２２１は、「結果２」を０（ゼロ）とし（Ｓ７１１）、ステップＳ７０９の結果、正値であると判定した場合（Ｓ７０９→正）、業務履歴管理プログラム２２１は、「結果２」を１とする（Ｓ７１２）。
【００８１】
次に、業務履歴管理プログラム２２１は、「結果１」と「結果２」とを比較し、「結果１」と「結果２」とが同じ値であるか否かを判定する（Ｓ７１３）。
ステップＳ７１３の結果、「結果１」と、「結果２」との値が同じである場合（Ｓ７１３→Ｙｅｓ）、「チェック点１」と、「チェック点２」を結んだ線、および「チェック点２」と、「チェック点３」を結んだ線は、傾きの方向が同じであるため、「チェック点２」は変局点ではない。従って、業務履歴管理プログラム２２１は、「チェック点２」を変局点とすることなくステップＳ７１５へ処理を進める。
ステップＳ７１３の結果、「結果２」と、「結果２」との値が同じではない場合（Ｓ７１３→Ｎｏ）、「チェック点１」と、「チェック点２」を結んだ線、および「チェック点２」と、「チェック点３」を結んだ線は、傾きの方向が異なっているため、「チェック点２」は変局点である。従って、業務履歴管理プログラム２２１は、「チェック点２」を変局点とし（Ｓ７１４）、該当するＣＰＵ使用量および時刻情報の組を変局点リストに記憶する。ステップＳ７１３で「Ｎｏ」が選択されるのは、「チェック点２」から「チェック点１」を減算した結果と、「チェック点３」から「チェック点２」を減算した結果とで、数の正負を示す符号が変化している場合である。
そして、業務履歴管理プログラム２２１は、「チェック点２」を新たな「チェック点１」とし、「チェック点３」を新たな「チェック点２」として（Ｓ７１５）、ステップＳ７０３へ処理を戻し、ステップＳ７０３で取得可能なＣＰＵ使用量がなくなるまで変局点の抽出処理を繰り返す。
【００８２】
なお、図２１の説明は、稼動性能情報２５２，２５３から変局点を抽出する方法の一例であり、例えば業務履歴管理プログラム２２１が微分係数が０となる点、もしくは、微分係数が０ではない値から、０となる点などを使用してもよい。
【００８３】
このように変局点に該当する各ＣＰＵ使用量を使用して、業務履歴管理プログラム２２１および補正時刻生成プログラム２２２は、図１４〜図１６で示した処理手順にてＯＳ時刻マッピングテーブル２５４を生成する処理を行う。変局点以外のデータを含む処理で高い相関関係が得られない場合でも、変局点に該当するデータのみを使用することで高い相関関係を得る可能性が高くなり、ＯＳ時刻マッピングテーブル２５４を得られる可能性を高くすることができる。
【００８４】
《別の実施形態２》
図２２〜図２４に沿って、本実施形態に係る別の実施形態２を説明する。
前記した実施形態では、システム内業務履歴ログ２５１に補正時刻を追加し、仮想ＯＳ１４１から出力されるシステム内業務履歴ログ２５１を、物理ＯＳ時刻により、一元的な系列順として並びかえる例を示したが、本発明における仮想ＯＳ時刻の補正は、システム内業務履歴ログ２５１だけではなく、仮想計算機１０におけるＷｅｂ／ＡＰ（Application）サーバへのアクセス数や、データベース１６７容量の推移や、ＥＲＰ（Enterprise Planning Package）プログラム１４８およびグループウェア１４９における利用者数などの情報（以下、履歴情報２５７と記載する）についても適用できる。
【００８５】
図２２は、本実施形態に係る物理計算機の構成例を示す図である。
図２２において、図３と同様の構成要素については同一の符号を付して説明を省略する。
図２２の物理計算機１００ａが、図３の物理計算機１００と異なる点は以下の点である。まず、仮想計算機α用メモリ１１０ａにおいて、業務プログラムＡ１１５の代わりにＷｅｂ／ＡＰサーバプログラム１４７が実行されている。また、仮想計算機β用メモリ１２０ａにおいて、業務プログラムＢ１２５の代わりにＷｅｂ／ＡＰサーバプログラム１４７およびＥＲＰプログラム１４８が実行されている。さらに、仮想計算機γ用メモリ１３０ａにおいて、業務プログラムＡ１１５の代わりにＷｅｂ／ＡＰサーバプログラム１４７や、グループウェア１４９が実行されている。さらに、仮想計算機α用記憶領域１６１ａにはデータベース１６７が格納されている。また、仮想計算機α用メモリ１１０ａには、データベース容量の推移などのデータベースに関する履歴情報２５７を出力するデータベース管理プログラム１７０が実行されている。なお、図２２において、図３における業務履歴種集プログラム１４５が省略されている。
【００８６】
複数の仮想ＯＳ１４１上で動作するＷｅｂ／ＡＰサーバプログラム１４７や、データベース管理プログラム１７０などのアプリケーションは、それぞれの接続可能セッション数やデータベース容量などの推移について、システム負荷を把握する面から適切に管理する必要がある。しかし、これらのアプリケーションを仮想ＯＳ１４１上で動作させる場合、それぞれのアプリケーションにおけるシステムリソース使用量や履歴情報２５７などは仮想ＯＳ時刻に基づいて記録される。従って、前記した理由により、異なる仮想ＯＳ１４１上で実行されている同じ種類のアプリケーションの履歴情報２５７を対比させた際、対比した履歴情報２５７それぞれが同一の時間に記録されたものであるとは限らない。そこで、本実施形態では、前記した実施形態と同様にＣＰＵ使用量などの稼動性能情報２５２，２５３を用いて、仮想ＯＳ時刻と、物理ＯＳ時刻とのマッピングを行い、このマッピングを用いてＷｅｂ／ＡＰサーバプログラム１４７へのアクセス数などの履歴情報２５７における仮想ＯＳ時刻を補正する。
【００８７】
図２３は、本実施形態に係る統合管理サーバの構成例を示す図である。
なお、図２３において図４と同様の構成要素については、同一の符号を付して説明を省略する。
図２３の統合管理サーバ２００ａが、図４の統合管理サーバ２００と異なる点は以下の点である。
まず、メモリ２０１ａにおいて業務履歴管理プログラム２２１の代わりに、履歴情報２５７の管理を行う履歴情報管理プログラム２２４が実行されている。そして、記憶装置２０２ａには、システム内業務履歴ログ２５１の代わりに履歴情報２５７が格納されている。また、ディスプレイ２０５には、時刻を補正された補正後履歴情報グラフ２６３が表示されている。
【００８８】
履歴情報管理プログラム２２４は、各仮想計算機１０で実行されているＷｅｂ／ＡＰサーバプログラム１４７や、データベース管理プログラム１７０などから、時刻情報と対応付けられた接続可能セッション数やデータベース容量の情報を取得し、記憶装置２０２ａの履歴情報２５７に格納する。履歴情報には、時刻情報（請求項における履歴時刻）、接続可能セッション数やデータベース容量の情報、情報の送信元となっている仮想計算機１０の情報とが対応付けられて格納されている。
【００８９】
なお、図２２の物理計算機１００ａのハードウェア構成、図２３の統合管理サーバ２００ａのハードウェア構成、およびその他の計算機システム１の装置については、図２と同様であるため図示および説明を省略する。さらに、本実施形態に係る処理は、システム内業務履歴ログ２５１が、履歴情報２５７に置き換わる以外は、前記した実施形態と同様であるため処理の説明も省略する。
【００９０】
《履歴情報の時刻補正の結果》
図２４は、本実施形態に係る履歴情報グラフの例を示す図であり、（ａ）は、時刻補正前、（ｂ）は、時刻補正後の例を示す。
なお、図２４において、横軸は時刻を示し、縦軸はＷｅｂ／ＡＰサーバプログラム１４７に対する同時接続ユーザ数の合計を示す。
図２４は、履歴情報管理プログラム２２４により、収集されたＷｅｂ／ＡＰサーバプログラム１４７の接続ユーザ数をグラフ表示したものである。
ここで、図２４（ａ）における線２４０３は、仮想計算機β１２上で動作するＷｅｂ／ＡＰサーバプログラム１４７への接続中のユーザ数のグラフである。また、図２４（ａ）における線２４０２は仮想計算機α１１上で動作するＷｅｂ／ＡＰサーバプログラム１４７への接続ユーザ数に、同一時刻の仮想計算機β１２上におけるＷｅｂ／ＡＰサーバプログラム１４７への接続中のユーザ数を加算したグラフである。さらに、図２４（ａ）における線２４０１は、仮想計算機γ１３上で動作するＷｅｂ／ＡＰサーバプログラム１４７への接続中のユーザ数に、同一時刻の仮想計算機β１２と仮想計算機α１１上におけるＷｅｂ／ＡＰサーバプログラム１４７への接続中のユーザ数を加算したグラフである。各グラフ間における縦の線は、同一時刻のデータであることを示している。
また、線２４０４は、この計算機システム１に設定された最大同時接続ユーザ数を表す閾値を示し、線２４０２の各点が、線２４０４を越えない限り、接続を要求したユーザに対するすべての処理が保証されるよう性能設計がされている。
【００９１】
図２４（ａ）に示すグラフのように、それぞれの仮想ＯＳ時刻に従ってグラフ表示した場合は同時に接続しているユーザ数の合計（線２４０２）は、最大同時接続ユーザ数（線２４０４）を超えておらず、問題があるようには見えない。
【００９２】
しかし、図２４（ｂ）のグラフのように、物理ＯＳ時刻で補正した場合、各線における値が横方向（時間軸方向）にずれる。ここで、線２４０１ａ，２４０２ａ，２４０３ａは、図２４（ａ）における線２４０１，２４０２，２４０３における仮想ＯＳ時刻が補正されることにより、時間軸方向にずれた線である。
図２４（ｂ）における各線２４０１ａ，２４０２ａ，２４０３ａに示すように物理ＯＳ１５０上の時刻のマッピングに合わせて前後することで、その時々の接続ユーザ数の合計が図２４（ａ）のグラフとは異なってくる。例えば、グラフ中の時刻２０：２２ではシステム上の最大同時接続ユーザ数（線２４０４）の値を超えており、その他にも時刻２０：２０や時刻２０：３０などでも最大同時接続ユーザ数（線２４０４）に近い値となっていることが分かる。
【００９３】
このように複数の仮想計算機上のアプリケーションの履歴情報２５７についても、仮想ＯＳ時刻を物理ＯＳ時刻に補正するなどしてグラフ表示することにより、例えば、以下のことが分かる。図２４（ａ）における時刻２０：２２のように、時刻補正前では最大同時接続ユーザ数（線２４０４）の線を越えていない状態でも、時刻補正により、図２４（ｂ）に示すように実際には最大同時接続ユーザ数（線２４０４）を超えた状態となっており、接続できなくなるユーザが生じていることが分かる。これにより、この計算機システム１のリソースや性能などの見直しを図らなければならない状態であることを、システム管理者は読み取ることができるようになる。
【００９４】
同様に、アプリケーションのリソース使用量や履歴情報について、仮想ＯＳ１４１から取得したＣＰＵ使用量と物理ＯＳ１５０から取得したＣＰＵ使用量の相関関係から生成したＯＳ時刻マッピングテーブル２５４を用いて、リソース使用量や履歴情報に補正後時刻を追加し、補正後時刻で並びかえてグラフ表示することにも適用できる。
また、システム内業務履歴ログ２５１やアプリケーションのシステムリソース使用量、履歴情報だけでなく、タイムスタンプを持つファイルや受送信日時を有する電子メールなどについても適用できる。
【００９５】
本実施形態によれば、物理計算機１００の内蔵時計の時刻とは異なる時刻の内蔵時計を有する仮想計算機１０上で動作する仮想計算機１０上の業務プログラムの業務履歴ログを、分、秒単位に業務履歴ログが出力されＮＴＰサーバ３００を利用した時刻合わせでは時間を合わせきれない場合でも物理計算機１００の内蔵時計の時間体系に統一させた上で取得できる。つまり、システム内業務履歴ログ２５１や、仮想計算機１０におけるＷｅｂ／ＡＰサーバへのアクセス数や、データベース１６７容量の推移や、ＥＲＰ（Enterprise Planning Package）プログラム１４８およびグループウェア１４９における利用者数などの情報における時刻を補正することができる。これにより、仮想計算機１０から出力される業務履歴ログを一元的な時系列順にした管理が可能となる。
【図面の簡単な説明】
【００９６】
【図１】本実施形態に係る計算機システムの構成例を示す図である。
【図２】本実施形態に係る計算機システムの詳細な構成例を示す図である。
【図３】本実施形態に係る物理計算機の詳細な構成の例を示す図である。
【図４】本実施形態に係る統合管理サーバの詳細な構成の例を示す図である。
【図５】物理計算機における各仮想計算機用記憶領域に格納されている業務履歴ログの構成例を示す図である。
【図６】統合管理サーバにおけるシステム内業務履歴ログの構成例を示す図である。
【図７】本実施形態に係る稼動性能収集処理の流れを示すフローチャートである。
【図８】本実施形態に係る稼動性能情報の例を示す図であり、（ａ）は、仮想ＯＳαにおける稼動性能情報を示し、（ｂ）は、仮想ＯＳβにおける稼動性能情報を示し、（ｃ）は、仮想ＯＳγにおける稼動性能情報を示している。
【図９】本実施形態に係る稼動性能情報のうちのＣＰＵ使用量と、収集日時との関係を示したグラフの例である。
【図１０】本実施形態に係る稼動性能情報のうちのＣＰＵ使用量と、収集日時との関係を示したグラフの例である。
【図１１】本実施形態に係る物理ＯＳからみた稼動性能収集処理の流れを示すフローチャートである。
【図１２】本実施形態に係る各仮想ＯＳにおけるＣＰＵ使用量のグラフであり、（ａ）は、仮想ＯＳαのＣＰＵ使用量、（ｂ）は、仮想ＯＳβのＣＰＵ使用量、（ｃ）は、仮想ＯＳγのＣＰＵ使用量を示す。
【図１３】仮想ＯＳαにおけるＣＰＵ使用量のグラフを示す図であり、（ａ）は、仮想ＯＳα１１１からみた仮想ＯＳαのＣＰＵ使用量を示すグラフであり、（ｂ）は、物理ＯＳ１５０からみた仮想ＯＳαのＣＰＵ使用量を示すグラフである。
【図１４】本実施形態に係る業務履歴管理処理の流れを示すフローチャートである。
【図１５】本実施形態に係る補正時刻生成処理の流れを示すフローチャートである。
【図１６】本実施形態に係る登録判定処理の流れを示すフローチャートである。
【図１７】本実施形態に係るＯＳ時刻マッピングテーブルの例を示す図である。
【図１８】本実施形態に係るシステム内業務履歴ログへの補正時刻追加処理の流れを示すフローチャートである。
【図１９】本実施形態に係る補正後システム内業務履歴ログの例を示す図である。
【図２０】本実施形態に係る変局点を説明するための図であり、（ａ）は、変局点以外の点を含むグラフ、（ｂ）は、変局点のみの点を含むグラフを示す。
【図２１】本実施形態に係る変局点の抽出処理の流れを示すフローチャートである。
【図２２】本実施形態に係る物理計算機の構成例を示す図である。
【図２３】本実施形態に係る統合管理サーバの構成例を示す図である。
【図２４】本実施形態に係る履歴情報グラフの例を示す図であり、（ａ）は、時刻補正前、（ｂ）は、時刻補正後の例を示す。
【符号の説明】
【００９７】
１      計算機システム
１００  物理サーバ
１４１  仮想ＯＳ
１４２  仮想ＯＳ時計
１４６  稼動性能収集プログラム
１５０  物理ＯＳ
１５１  物理ＯＳ時計
１５６  仮想ＯＳ稼動性能収集プログラム
１６４〜１６６  業務履歴ログ
２００  統合管理サーバ（時刻補正装置）
２２１  業務履歴管理プログラム（変局点抽出部）
２２２  補正時刻生成プログラム（時刻補正部）
２２３  稼動性能管理プログラム（稼動性能管理部）
２５１  システム内業務履歴ログ
２５２，２５３  稼動性能情報
２５４  ＯＳ時刻マッピングテーブル
【図１】
2010140340.tif 000003
【図２】
2010140340.tif 000004
【図３】
2010140340.tif 000005
【図４】
2010140340.tif 000006
【図５】
2010140340.tif 000007
【図６】
2010140340.tif 000008
【図７】
2010140340.tif 000009
【図８】
2010140340.tif 000010
【図９】
2010140340.tif 000011
【図１０】
2010140340.tif 000012
【図１１】
2010140340.tif 000013
【図１２】
2010140340.tif 000014
【図１３】
2010140340.tif 000015
【図１４】
2010140340.tif 000016
【図１５】
2010140340.tif 000017
【図１６】
2010140340.tif 000018
【図１７】
2010140340.tif 000019
【図１８】
2010140340.tif 000020
【図１９】
2010140340.tif 000021
【図２０】
2010140340.tif 000022
【図２１】
2010140340.tif 000023
【図２２】
2010140340.tif 000024
【図２３】
2010140340.tif 000025
【図２４】
2010140340.tif 000026