(57)【要約】【課題】  ソフトウェアを複数の仮想マシン上で稼動させる場合、システム全体での処理性能が契約処理性能を超えないように制御することができるソフトウェア管理装置等を提供する。【解決手段】  第１の仮想マシン上で稼動した第１のソフトウェアの処理性能と、第２の仮想マシン上で稼動中の第２のソフトウェアの処理性能とを計測または収集する処理性能計測部と、前記計測した処理性能が契約処理性能を超えない範囲で、前記第１の仮想マシン上で稼動中の第１のソフトウェアの処理性能を制限する処理性能制限値を設定する処理性能制限値設定部と、を有するソフトウェア管理装置である。【選択図】図１
2018205874.tif 000002
【特許請求の範囲】
【請求項１】
第１の仮想マシン上で稼動した第１のソフトウェアの処理性能と、第２の仮想マシン上で稼動中の第２のソフトウェアの処理性能とを計測または収集する処理性能計測部と、
前記計測した処理性能が契約処理性能を超えない範囲で、前記第１の仮想マシン上で稼動中の第１のソフトウェアの処理性能を制限する処理性能制限値を設定する処理性能制限値設定部と、を有するソフトウェア管理装置。
【請求項２】
請求項１において、
前記第１の仮想マシンの処理性能を表す第１の処理性能値と第２の処理性能値とを受信する処理性能情報受信部と、
前記処理性能情報受信部が異なる時間に受信した複数の前記第１の処理性能値と複数の前記第２の処理性能値としきい値とに基づいて、前記第１の仮想マシンの処理性能を予測する処理性能予測部と、をさらに有するソフトウェア管理装置。
【請求項３】
請求項２において、
前記処理性能計測部は、前記処理性能情報受信部が異なる時間に受信した複数の前記第１の処理性能値と複数の前記第２の処理性能値とに基づいて、縦軸が第１の処理性能値、横軸が第２の処理性能値である座標系における、第１の処理性能値と第２の処理性能値との相関関係を求め、求めた相関関係を参照して、第１の処理性能値の限界値である前記しきい値に対応する第２の処理性能値を、前記第１の仮想マシンの処理性能として予測するソフトウェア管理装置。
【請求項４】
請求項１又は２において、
前記処理性能制限値は、前記第１の仮想マシンに割り当てられたリソース量の削減に用いられる値であるソフトウェア管理装置。
【請求項５】
請求項３において、
前記リソース量は、仮想メモリ量であるソフトウェア管理装置。
【請求項６】
請求項１において、
前記契約処理性能及び前記第２の仮想マシンの処理性能に基づいて、前記契約処理性能を超えずに利用可能な残処理性能を算出する残処理性能算出部をさらに有し、
前記処理性能制限値設定部は、算出した前記残処理性能及び予測した前記第１の仮想マシンの処理性能に基づいて算出される前記処理性能制限値を設定するソフトウェア管理装置。
【請求項７】
請求項６において、
前記残処理性能算出部は、前記契約処理性能から前記第２の仮想マシンの処理性能を減じることで前記残処理性能を算出し、
前記処理性能制限値設定部は、算出した前記残処理性能を予測した前記第１の仮想マシンの処理性能で除算することで算出される前記処理性能制限値を設定するソフトウェア管理装置。
【請求項８】
請求項１から６において、
設定した前記処理性能制限値を、前記第１の仮想マシンを実行する物理マシンに送信する処理性能制限値送信部をさらに有するソフトウェア管理装置。
【請求項９】
第１の仮想マシン上で稼動した第１のソフトウェアの処理性能と、第２の仮想マシン上で稼動中の第２のソフトウェアの処理性能とを計測または収集する処理性能計測部と、
前記計測した処理性能が契約処理性能を超えない範囲で、前記第１の仮想マシン上で稼動中の第１のソフトウェアの処理性能を制限する処理性能制限値を設定する処理性能制限値設定部と、を有するソフトウェア管理装置と、
前記第１の仮想マシンを実行する物理マシンと、を有するソフトウェア管理システム。
【請求項１０】
第１の仮想マシン上で稼動した第１のソフトウェアの処理性能と、第２の仮想マシン上で稼動中の第２のソフトウェアの処理性能とを計測または収集し、
前記計測した処理性能が契約処理性能を超えない範囲で、前記第１の仮想マシン上で稼動中の第１のソフトウェアの処理性能を制限する処理性能制限値を設定する、
処理をコンピュータに実行させるソフトウェア管理プログラム。
【請求項１１】
第１の仮想マシン上で稼動した第１のソフトウェアの処理性能と、第２の仮想マシン上で稼動中の第２のソフトウェアの処理性能とを計測または収集し、
前記計測した処理性能が契約処理性能を超えない範囲で、前記第１の仮想マシン上で稼動中の第１のソフトウェアの処理性能を制限する処理性能制限値を設定するソフトウェア管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア管理装置、ソフトウェア管理システム、ソフトウェア管理プログラム、及び、ソフトウェア管理方法に関する。
【背景技術】
【０００２】
従来、新たな通信呼が発生した際に、契約リソース量の範囲内に収まっているか否かに基づいて、新たな通信呼を受け付けるか否かを判別するシステムが知られている（例えば、特許文献１参照）。
【０００３】
ところで、近年、ソフトベンダは、ソフトウェアが提供するサービスの処理性能（ライセンス、呼処理性能：BHCA等）に対して対価を受ける。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２３２１３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術においては、ソフトウェアを複数の仮想マシン上で稼動させる場合、システム全体での処理性能が契約処理性能を超えないように制御することができないという課題がある。
【０００６】
そこで、本開示の第１の側面の目的は、ソフトウェアを複数の仮想マシン上で稼動させる場合、システム全体での処理性能が契約処理性能を超えないように制御することができるソフトウェア管理装置、ソフトウェア管理システム、ソフトウェア管理プログラム、及び、ソフトウェア管理方法を提供することにある。
【課題を解決するための手段】
【０００７】
一つの実施の形態は、第１の仮想マシン上で稼動した第１のソフトウェアの処理性能と、第２の仮想マシン上で稼動中の第２のソフトウェアの処理性能とを計測または収集する処理性能計測部と、前記計測した処理性能が契約処理性能を超えない範囲で、前記第１の仮想マシン上で稼動中の第１のソフトウェアの処理性能を制限する処理性能制限値を設定する処理性能制限値設定部と、を有するソフトウェア管理装置である。
【発明の効果】
【０００８】
一つの実施の形態によれば、ソフトウェアを複数の仮想マシン上で稼動させる場合、システム全体での処理性能が契約処理性能を超えないように制御することができるソフトウェア管理装置、ソフトウェア管理システム、ソフトウェア管理プログラム、及び、ソフトウェア管理方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理システム１０の構成を示す図である。
【図２】ライセンスの考え方について説明する図である。
【図３】（ａ）ＶＭ（Ａ）及びＶＭ（Ｂ）が起動している状況、（ｂ）ＶＭ（Ａ）が故障で停止し、新たにＶＭ（Ｃ）が生成され、起動した状況を表す図である。
【図４】ライセンス管理サーバ３０のハードウェア構成を説明する図である。
【図５】パフォーマンスデータテーブル３０ｄ１の一例である。
【図６】利用ライセンス管理テーブル３０ｄ２の一例である。
【図７】ライセンス管理サーバ３０の機能ブロック図である。
【図８】物理サーバ２０Ａのハードウェア構成を説明する図である。
【図９】パフォーマンスデータＰＤの一例である。
【図１０】ソフトウェア管理システム１０の動作例を説明するためのシーケンス図である。
【図１１】ソフトウェア管理システム１０の動作例を説明するためのシーケンス図である。
【図１２】ソフトウェア管理システム１０の動作例を説明するためのシーケンス図である。
【図１３】ライセンス登録情報の削除処理を説明するための図である。
【図１４】ライセンス登録情報の削除処理を説明するための図である。
【図１５】ライセンス登録情報の削除処理を説明するための図である。
【図１６】新規ＶＭ登録処理を説明するための図である。
【図１７】新規ＶＭ登録処理を説明するための図である。
【図１８】ＶＭ（Ｃ）のライセンス量を算出する処理の具体例を説明するための図である。
【図１９】ライセンス超過時の処理の具体例を説明するための図である。
【発明を実施するための形態】
【００１０】
［ソフトウェア管理システムの構成］
図１は、ソフトウェア管理システム１０の全体構成を説明する図である。図１に示すソフトウェア管理システム１０は、例えば、ＳＩＰ(Session Initiation Protocol)プロトコルを利用したIP電話システム、音声通話アーキテクチャとしてＩＭＳ(IP Multimedia Subsystems)が利用されているシステム、又は、ネットワーク機能仮想化技術であるＮＦＶ(Network Functions Virtualization)を利用しているシステムである。
【００１１】
ソフトウェア管理システム１０は、物理サーバ２０Ａ（以下、物理マシン２０Ａともいう）と、物理サーバ２０Ｂ（以下、物理マシン２０Ｂともいう）と、ソフトウェア管理装置３０（以下、ライセンス管理サーバ３０ともいう）と、を有する。物理サーバ２０Ａ、物理サーバ２０Ｂ及びライセンス管理サーバ３０は、それぞれ１台以上の物理マシンによって構成される。
【００１２】
物理サーバ２０Ａ、２０Ｂは、ハイパーバイザ２２ａ、２２ｂ（仮想化環境を生成する専用のソフトウェア）をハードウェア２３ａ、２３ｂ上で動作させる。ハイパーバイザ２２ａ、２２ｂにより、少なくとも１つの仮想サーバ２１ａ〜２１ｃ、２１ｄが生成される。なお、物理サーバは、物理マシンとも呼ばれる。また、仮想サーバは、仮想マシンとも呼ばれる。
【００１３】
仮想サーバ２１ａ〜２１ｃ、２１ｄは、ハイパーバイザ２２ａ、２２ｂにより生成される仮想的なハードウェアであり、一般的なハードウェアと同様に仮想サーバ２１ａ〜２１ｃ、２１ｄ上でＯＳ（ゲストＯＳ）やソフトウェア（本実施形態では、通信制御プログラムやエージェント等）を動作させることができる。仮想サーバ２１ａ〜２１ｃ、２１ｄは、ハイパーバイザ２２ａ、２２ｂによって、ベースとなる物理サーバ２０Ａ、２０Ｂから分離されるため、ＣＰＵ、メモリ、ストレージ、ネットワーク等のリソースを、動的かつ柔軟に割り当てることができる。
【００１４】
物理サーバ２０Ａは、例えば、自装置に生成された仮想マシン２１ａ（以下、ＶＭ（Ａ）ともいう）、仮想マシン２１ｂ（以下、ＶＭ（Ｂ）ともいう）及び仮想マシン２１ｃ（以下、ＶＭ（Ｃ）ともいう）等（以下、これらを総称してＶＭ２１とも呼ぶ）に、ソフトウェア（例えば、通信制御ソフトウェア）をインストールして実行させ、携帯コア網における接続制御を行うＩＢＣＦ（Interconnection Border Control Function：ＩＢＣＦ）の機能を実現する。なお、ＶＭ２１は、管理者からの指示等を受け付けたハイパーバイザ２２ａが、物理サーバ２０Ａのハードリソース２３ａのＣＰＵのコア等を割り当てることによって生成される。また、物理サーバ２０Ａは、例えば、自装置に生成されたＶＭ（Ａ）〜ＶＭ（Ｃ）に、ソフトウェア（例えば、エージェント２４ａ〜２４ｃ）をインストールして実行させ、自仮想マシンの処理性能を表すパフォーマンスデータＰＤをライセンス管理サーバ３０のマネージャ３１に送信する機能を実現する。物理サーバ２０Ｂも同様である。
【００１５】
［ライセンスの考え方］
次に、ライセンスの考え方について説明を行う。図２は、ライセンスの考え方について説明する図である。
【００１６】
従来、図２中左側に示すように、仮想マシン起動後、ベンチマークを実施することで仮想マシンの処理能力を測定し、測定した処理能力に応じたライセンス量を決定し、その後、ソフトウェアを起動することで運用可能となる。このように、仮想マシン起動後、ベンチマークの実施を行うことで、仮想マシンの処理能力を比較的正確に測定できる。
【００１７】
しかしながら、従来手法では、ベンチマークの実施に相当の時間（例えば、数十分）を要するため、例えば、仮想マシン故障時に自動修復機能等を利用して新たな仮想マシンを起動しても、直ちに運用を開始することができず、サービス性が低下するという課題がある。すなわち、起動後、運用可能状態に遷移するまでに時間がかかることはサービス性の低下（柔軟性、継続性）となる。
【００１８】
そこで、本実施形態では、図２中右側に示すように、仮想マシン起動後、ベンチマークの実施やライセンス量の決定を行うことなく、直ちにソフトウェアを起動することで運用を開始する。そして、運用中に、仮想マシンの処理能力を測定し、測定した処理能力に応じたライセンス量を決定する。
【００１９】
例えば、図３（ａ）に示すようにＶＭ（Ａ）及びＶＭ（Ｂ）が起動している状況で、図３（ｂ）に示すようにＶＭ（Ａ）が故障で停止し、新たにＶＭ（Ｃ）が生成され、起動したとする。
【００２０】
ＶＭ（Ｃ）のエージェント２４ｃは、例えば、予め定められた時間（例えば、１時間）経過するごとに、ＶＭ（Ｃ）のパフォーマンスデータＰＤを収集し、収集したパフォーマンスデータＰＤをライセンス管理サーバ３０（マネージャ３１）に対して送信する。なお、ＶＭ（Ａ）及びＶＭ（Ｂ）もＶＭ（Ｃ）と同様の動作を行っている。
【００２１】
ライセンス管理サーバ３０は、ＶＭ（Ｃ）が生成され、生成されたＶＭ（Ｃ）上でソフトウェアが稼動した後に、ＶＭ（Ｂ）の処理性能を含めた全体の処理性能（以下、利用ライセンス量（合計）ともいう）を計測する。この計測は、例えば、ＶＭ（Ｃ）が送信するパフォーマンスデータＰＤに基づいて行う。換言すると、ライセンス管理サーバ３０は、第１の仮想マシン上（例えば、ＶＭ（Ｃ））で稼動した第１のソフトウェア（例えば、通信制御ソフトウェア）の処理性能と、第２の仮想マシン（例えば、ＶＭ（Ｂ））上で稼動中の第２のソフトウェア（例えば、通信制御ソフトウェア）の処理性能とを計測または収集する。
【００２２】
そして、ライセンス管理サーバ３０は、計測した処理性能が契約処理性能（以下、購入ライセンス量ともいう）を超えない範囲で、生成されたＶＭ（Ｃ）上で稼働中の第１のソフトウェアの処理性能を制限する処理性能制限値（以下、調整値ともいう）を設定する。調整値は、ＶＭ（Ｃ）に割り当てられたリソース量の削減に用いられる値である。このリソース量は、例えば、ＶＭ（Ｃ）に割り当てられた仮想メモリ量である。
【００２３】
ライセンス管理サーバ３０は、設定した調整値を、ＶＭ（Ｃ）を実行する物理サーバ２０Ａに送信する。
【００２４】
物理サーバ２０Ａは、調整値を受信すると、ＶＭ（Ｃ）のライセンス（処理能力）を制限する処理を実行する。
【００２５】
これにより、ソフトウェア（例えば、通信制御プログラム）を複数の仮想マシン上で稼動させる場合、システム全体での処理性能が契約処理性能を超えないように制御することができる。
【００２６】
また、従来手法とは異なり、仮想マシン起動後、ベンチマークの実施やライセンス量の決定を行わず、直ちにソフトウェアを起動することで運用を開始するため、サービス性が低下するのを抑制できる。そして、運用中に、仮想マシンの処理能力を測定し、測定した処理能力に応じたライセンス量を決定することができる。
【００２７】
［ライセンス管理サーバのハードウェア構成］
次に、ライセンス管理サーバ３０のハードウェア構成について説明する。図４は、ライセンス管理サーバ３０のハードウェア構成を説明する図である。
【００２８】
ライセンス管理サーバ３０は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、又は、サーバコンピュータである。
【００２９】
ライセンス管理サーバ３０は、プロセッサであるＣＰＵ３０aと、メモリ３０ｂと、外部インターフェース（Ｉ／Ｏユニット）３０ｃと、記憶媒体（ストレージ）３０ｄとを有する。各部は、バス３０ｅを介して互いに接続される。
【００３０】
記憶媒体３０ｄは、図７に示す各機能を実現するためのプログラムを記憶する。
【００３１】
ＣＰＵ３０ａは、記憶媒体３０ｄからメモリ３０ｂに読み出された各種プログラムを実行することで、図７に示す機能等を実現する。各機能の詳細については、後述する。
【００３２】
記憶媒体３０ｄは、例えば、パフォーマンスデータテーブル３０ｄ１、利用ライセンス管理テーブル３０ｄ２、購入ライセンス記憶部３０ｄ３等を有する。
【００３３】
次に、パフォーマンスデータテーブル３０ｄ１について説明する。図５は、パフォーマンスデータテーブル３０ｄ１の一例である。
【００３４】
図５に示すように、パフォーマンスデータテーブル３０ｄ１は、ＶＭ固有の識別情報である「ＵＵＩＤ」と、起動されているＶＭの識別情報である「ＶＭ名」と、ＶＭが起動している物理サーバの識別情報である「物理サーバ名」と、ＶＭに割り当てられている「ＣＰＵコア数」と、ＶＭに割り当てられている「メモリ容量」と、ＶＭに割り当てられているＣＰＵの「ＣＰＵ使用率」と、呼数（ＢＨＣＡ）と、を項目として有する。
【００３５】
なお、以下、パフォーマンスデータテーブル３０ｄ１は、説明の都合上、図１３中左側に示すように、簡略化して表す。図１３中の「Ｈｏｓｔ」は図５中の「物理サーバ名」に相当し、図１３中の「ＰＭＤ」は図５中の「ＣＰＵコア数」及び「メモリ容量」に相当する。
【００３６】
次に、利用ライセンス管理テーブル３０ｄ２について説明する。図６は、利用ライセンス管理テーブル３０ｄ２の一例である。
【００３７】
図６に示すように、利用ライセンス管理テーブル３０ｄ２は、ＶＭ固有の識別情報である「ＵＵＩＤ」と、登録ライセンスの使用を表す「Ｙｅｓ」又は未使用を表す「Ｎｏ」が設定される「利用」と、ライセンス概算システム３２が算出した推定ＢＨＣＡ値が設定される「登録ライセンス」と、を項目として有する。
【００３８】
購入ライセンス記憶部３０ｄ３には、購入ライセンス量が記憶される。
【００３９】
外部インターフェース３０ｃは、ＬＡＮ等のネットワークＮＷを介して物理サーバ２０Ａ等と通信を行う。
【００４０】
［ライセンス管理サーバのソフトウェア構成］
次に、ライセンス管理サーバ３０のソフトウェア構成について説明する。図７は、ライセンス管理サーバ３０の機能ブロック図である。ＣＰＵ３０ａは、記憶媒体３０ｄからメモリ３０ｂに読み出された各種プログラムを実行することで、マネージャ３１、ライセンス概算システム３２、ライセンス制御部３３、ライセンス管理部３４、ＶＭ制御部３５として動作する。
【００４１】
マネージャ３１は、ＶＭ（Ａ）〜ＶＭ（Ｄ）に配置したエージェント２４ａ〜２４ｄが送信したパフォーマンスデータＰＤを受信し、パフォーマンスデータテーブル３０ｄ１に登録する。この場合、マネージャ３１は、本発明の処理性能情報受信部に相当する。
【００４２】
ライセンス概算システム３２は、マネージャ３１が異なる時間に受信した複数のパフォーマンスデータＰＤとしきい値（図１８中のLimit）とに基づいて、仮想マシンの処理性能（以下、ライセンス量ともいう）を予測する。この場合、ライセンス概算システム３２が本発明の処理性能予測部に相当する。例えば、ライセンス概算システム３２は、ＶＭ（Ｃ）のエージェント２４ｃが送信し、マネージャ３１が異なる時間に受信した複数のパフォーマンスデータＰＤとしきい値（図１８中のLimit）とに基づいて、ＶＭ（Ｃ）の処理性能（ライセンス量）を予測する。
【００４３】
ライセンス制御部３３は、ライセンス概算システム３２が算出したＶＭ（Ｃ）の利用ライセンス量を、利用ライセンス管理テーブル３０ｄ２に登録する。
【００４４】
ライセンス管理部３４は、利用ライセンス管理テーブル３０ｄ２、購入ライセンス記憶部３０ｄ３に記憶された購入ライセンスを管理する。また、ライセンス管理部３４は、例えば、図３（ｂ）に示すようにＶＭ（Ａ）が故障で停止し、新たにＶＭ（Ｃ）が生成されて起動し、起動したＶＭ（Ｃ）上でソフトウェアが稼動した後（実行された後）に、ＶＭ（Ｂ）の処理性能を含めた全体の処理性能（以下、利用ライセンス（合計））を計測（算出）する。換言すると、ライセンス管理部３４は、第１の仮想マシン上（例えば、ＶＭ（Ｃ））で稼動した第１のソフトウェア（例えば、通信制御ソフトウェア）の処理性能と、第２の仮想マシン（例えば、ＶＭ（Ｂ））上で稼動中の第２のソフトウェア（例えば、通信制御ソフトウェア）の処理性能とを計測または収集する。この場合、ライセンス管理部３４が本発明の処理性能計測部に相当する。
【００４５】
また、ライセンス管理部３４は、計測した処理性能が契約処理性能（以下、購入ライセンスという）を超えない範囲で、生成された仮想マシン上で稼働中の第１のソフトウェアの処理性能（ライセンス）を制限する処理性能制限値（以下、調整値という）を算出し設定する。この場合、ライセンス管理部３４が本発明の処理性能制限値設定部に相当する。調整値は、仮想マシンに割り当てられたリソース量（例えば、仮想メモリ量）の削減に用いられる値である。
【００４６】
例えば、ライセンス管理部３４は、算出した残ライセンス及び予測した仮想マシンのライセンスに基づいて調整値を算出し設定する。
【００４７】
また、ライセンス管理部３４は、契約処理性能（以下、購入ライセンスという）及び仮想マシンの処理性能に基づいて、購入ライセンスを超えずに利用可能な残処理性能（以下、残ライセンスという）を算出する。この場合、ライセンス管理部３４が本発明の残処理性能算出部に相当する。
【００４８】
また、ライセンス管理部３４は、算出した残ライセンス及び予測した仮想マシンのライセンスに基づいて処理性能制限値（以下、調整値という）を算出する。
【００４９】
ＶＭ制御部３５は、ライセンス概算システム３２が算出した仮想マシンの利用ライセンス量を含む利用ライセンス量（合計）が購入ライセンス量を超えていた場合、コマンド発行を行い、仮想マシンの処理性能制御を行う。この場合、ＶＭ制御部３５が本発明の処理性能制限値送信部に相当する。
【００５０】
［物理サーバ］
次に、物理サーバ２０について説明する。図８は、物理サーバ２０Ａのハードウェア構成を説明する図である。なお、物理サーバ２０Ｂも同様の構成である。
【００５１】
物理サーバ２０Ａは、例えば、デスクトップコンピュータ、ラップトップコンピュータ、又は、サーバコンピュータである。
【００５２】
物理サーバ２０Ａは、プロセッサであるＣＰＵ２０aと、メモリ２０ｂと、外部インターフェース（Ｉ／Ｏユニット）２０ｃと、記憶媒体（ストレージ）２０ｄとを有する。各部は、バス２０ｅを介して互いに接続される。
【００５３】
記憶媒体２０ｄは、物理サーバ２０Ａが実行するＯＳやソフトウェア、ソフトウェアが用いるデータ等を記憶する。
【００５４】
ＣＰＵ２０ａは、記憶媒体２０ｄからメモリ２０ｂに読み出された各種プログラムを実行することで、携帯コア網における接続制御を行うＩＢＣＦ（Interconnection Border Control Function：ＩＢＣＦ）の機能、自仮想マシンの処理性能を表すパフォーマンスデータＰＤをライセンス管理サーバ３０のマネージャ３１に送信する機能等を実現する。各機能の詳細については、後述する。
【００５５】
外部インターフェース２０ｃは、ＬＡＮ等のネットワークＮＷを介してライセンス管理サーバ３０と通信を行う。
【００５６】
［パフォーマンスデータ］
次に、パフォーマンスデータＰＤについて説明する。図９は、パフォーマンスデータＰＤの一例である。
【００５７】
図９に示すように、パフォーマンスデータＰＤは、図５に示すパフォーマンスデータテーブル３０ｄ１と同じ項目を有する。すなわち、パフォーマンスデータＰＤは、ＶＭ固有の識別情報である「ＵＵＩＤ」と、起動されているＶＭの識別情報である「ＶＭ名」と、ＶＭが起動している物理サーバの識別情報である「物理サーバ名」と、ＶＭに割り当てられている「ＣＰＵコア数」と、ＶＭに割り当てられている「メモリ容量」と、ＶＭに割り当てられているＣＰＵの「ＣＰＵ使用率」と、呼数（ＢＨＣＡ）と、を項目として有する。
【００５８】
次に、上記構成のソフトウェア管理システム１０の動作例について図１０〜図１２を参照しながら説明する。図１０〜図１２は、ソフトウェア管理システム１０の動作例を説明するためのシーケンス図である。
【００５９】
［ライセンス登録情報の削除処理］
まず、ライセンス登録情報の削除処理について説明する。図１３〜図１５は、ライセンス登録情報の削除処理を説明するための図である。
【００６０】
以下、ライセンス登録情報の削除処理として、図１３に示すように、ＶＭ（Ａ）及びＶＭ（Ｂ）が起動している状況で、図１４に示すようにＶＭ（Ａ）が故障で停止した場合、停止したＶＭ（Ａ）のライセンス利用を取り消す例について説明する。
【００６１】
なお、パフォーマンスデータテーブル３０ｄ１には、ＶＭ（Ａ）のパフォーマンスデータとして、「ＶＭ名」に「ＶＭ（Ａ）」が設定され、「Ｈｏｓｔ」に「Ａ」が設定され、「ＰＭＤ」に「Ｙｃｏｒｅ」、「ＸＧＢ」が設定されているものとする。また、パフォーマンスデータテーブル３０ｄ１には、ＶＭ（Ｂ）のパフォーマンスデータとして、「ＶＭ名」に「ＶＭ（Ｂ）」が設定され、「Ｈｏｓｔ」に「Ｂ」が設定され、「ＰＭＤ」に「Ｙｃｏｒｅ」、「ＸＧＢ」が設定されているものとする。また、利用ライセンス管理テーブル３０ｄ２には、ＶＭ（Ａ）のライセンスに関する情報として、「ＶＭ名」に「ＶＭ（Ａ）」が設定され、「利用」に「ＹＥＳ」が設定され、「ライセンス」に「３０万」が設定されているものとする。また、ＶＭ（Ｂ）のライセンスに関する情報として、「ＶＭ」に「ＶＭ（Ｂ）」が設定され、「利用」に「ＹＥＳ」が設定され、「ライセンス」に「３０万」が設定されているものとする。また、購入ライセンス記憶部３０ｄ３には、購入ライセンス「６０万」が設定されているものとする。
【００６２】
まず、図１４に示すようにＶＭ（Ａ）が故障により動作を停止した場合（ステップＳ１０）、例えば、ＶＭ（Ａ）は、マネージャ３１に対してＶＭ（Ａ）の故障通知を送信する（ステップＳ１１）。
【００６３】
マネージャ３１は、ＶＭ（Ａ）の故障通知を受信すると、ライセンス概算システム３２に対してＶＭ（Ａ）の故障通知を送信する（ステップＳ１２）。
【００６４】
ライセンス概算システム３２は、ＶＭ（Ａ）の故障通知を受信すると、ライセンス管理部３４に対してＶＭ（Ａ）のライセンス利用が無くなった旨を送信する（ステップＳ１３）。
【００６５】
ライセンス管理部３４は、ＶＭ（Ａ）のライセンス利用が無くなった旨を受信すると、図１５に示すように、利用ライセンス管理テーブル３０ｄ２中の「ＶＭ（Ａ）」に対応する「ＹＥＳ」を「ＮＯ」に更新する（ステップＳ１４）。これにより、ＶＭ（Ａ）のライセンス利用が取り消されたことになる。
【００６６】
［新規ＶＭ登録処理］
次に、新規ＶＭ登録処理について説明する。図１６、図１７は、新規ＶＭ登録処理を説明するための図である。
【００６７】
以下、新規ＶＭ登録処理として、物理マシン２０ＡでＶＭ（Ｃ）が生成された場合（例えば、オートヒーリング）、生成されたＶＭ（Ｃ）を登録する例について説明する。
【００６８】
管理装置（図示せず）からＶＭ（Ｃ）生成のリクエストを受けた場合、物理マシン２０Ａ上にＶＭ（Ｃ）が生成され（ステップＳ１５）、生成されたＶＭ（Ｃ）にソフトウェアがインストールされ（ステップＳ１６）、ＶＭ（Ｃ）の動作、ソフトウェアの動作が再開される。インストールされるソフトウェア（アプリケーションプログラム）は、例えば、通信制御プログラム、エージェントである。このように、ＶＭ（Ｃ）起動後、ベンチマークの実施やライセンス量の決定を行わず、直ちにソフトウェアを起動することで運用を開始するため、従来手法とは異なり、サービス性が低下するのを抑制できる。なお、ＶＭ（Ｃ）は、故障したＶＭ（Ａ）と同一であってもよいし、異なっていてもよい。
【００６９】
次に、ＶＭ（Ｃ）は、マネージャ３１に対してＶＭ（Ｃ）の生成通知を送信する（ステップＳ１７）。
【００７０】
次に、ＶＭ（Ｃ）のエージェント２４ｃは、例えば、予め定められた時間（例えば、１時間）経過するごとに、ＶＭ（Ｃ）のパフォーマンスデータＰＤを収集し、図１６に示すように、収集したパフォーマンスデータＰＤをマネージャ３１に対して送信する（ステップＳ１８）。
【００７１】
次に、マネージャ３１は、パフォーマンスデータＰＤを受信すると、受信したパフォーマンスデータＰＤをライセンス概算システム３２に対して送信し（ステップＳ１９）、ＶＭ（Ｃ）の概算を依頼する。
【００７２】
ライセンス概算システム３２は、パフォーマンスデータＰＤを受信すると、図１６に示すように、受信したパフォーマンスデータＰＤをパフォーマンスデータテーブル３０ｄ１に設定する（ステップＳ２０）。
【００７３】
次に、ライセンス概算システム３２は、予め定められた数のパフォーマンスデータＰＤを受信したか否かを判定する（ステップＳ２１）。
【００７４】
その結果、予め定められた数のパフォーマンスデータを受信したと判定した場合（ステップＳ２１：ＹＥＳ）、ライセンス概算システム３２は、パフォーマンスデータテーブル３０ｄ１からＶＭ（Ｃ）のパフォーマンスデータＰＤを抽出し（ステップＳ２２）、抽出したパフォーマンスデータＰＤに基づいて、ＶＭ（Ｃ）のライセンス量を算出する（ステップＳ２３）。以下、ＶＭ（Ｃ）のライセンス量を算出する処理の具体例について説明を行う。
【００７５】
［ＶＭ（Ｃ）のライセンス量を算出する処理の具体例］
ライセンス概算システム３２は、マネージャ３１が異なる時間に受信した複数のパフォーマンスデータＰＤ（第１の処理性能値を表すＣＰＵ使用率と第２の処理性能値を表す呼数）とに基づいて、縦軸がＣＰＵ使用率、横軸が呼数である座標系における、ＣＰＵ使用率と呼数との相関関係を表す直線を求め、求めた相関関係を表す直線を参照して、ＣＰＵ使用率の限界値であるしきい値（Limit）に対応する呼数を、ＶＭ（Ｃ）の処理性能として算出（予測）する。
【００７６】
図１８は、ＶＭ（Ｃ）のライセンス量を算出する処理の具体例を説明するための図である。
【００７７】
具体的には、図１８に示すように、ライセンス概算システム３２は、Ｓ２２で抽出したパフォーマンスデータＰＤを、縦軸がＣＰＵ使用率、横軸がライセンス（ＢＨＣＡ）である座標系にプロットする。パフォーマンスデータＰＤは、「ＣＰＵ使用率」及び「呼数（ＢＨＣＡ）」によって特定される位置にプロットされる。図１８中の各々のドットは、プロットされたパフォーマンスデータＰＤを表す。
【００７８】
次に、ライセンス概算システム３２は、プロットされたパフォーマンスデータＰＤに基づいて、ＣＰＵ使用率とライセンス（ＢＨＣＡ）との相関関係を表す直線Ｌを算出する。
【００７９】
次に、ライセンス概算システム３２は、算出した直線ＬとＬｉｍｉｔ（システムしきい値）との交点Ｐを求め、求めた交点Ｐに対応するライセンス（ＢＨＣＡ）をＶＭ（Ｃ）のライセンス量（処理限界値）として算出（予測）する。ここでは、ＶＭ（Ｃ）のライセンス量として「４０万」が算出されたものとする。なお、Ｌｉｍｉｔ（システムしきい値）は、通信制御プログラムの安定可動を保証するＣＰＵ使用率のしきい値で、ライセンス管理サーバの記憶媒体３０ｄ等に予め記憶されている。
【００８０】
次に、ライセンス概算システム３２は、ステップＳ２３で算出したＶＭ（Ｃ）のライセンス量を、ライセンス管理部３４に対して送信する（ステップＳ２４）。
【００８１】
ライセンス管理部３４は、ＶＭ（Ｃ）のライセンス量を受信すると、図１７に示すように、利用ライセンス管理テーブル３０ｄ２中の「ＶＭ」に「ＶＭ（Ｃ）」を設定し、「利用」に「ＹＥＳ」を設定し、「ライセンス」に「４０万」を設定する（ステップＳ２５）。これにより、ＶＭ（Ｃ）が登録されたことになる。
【００８２】
［ライセンス超過時の処理］
次に、ライセンス超過時の処理について説明する。図１９は、ライセンス超過時の処理の具体例を説明するための図である。
【００８３】
以下の説明においては、図１７に示すように、購入ライセンスが６０万、利用ライセンスが７０万（ＶＭ（Ｂ）の利用ライセンス３０万＋ＶＭ（Ｃ）の利用ライセンス４０万）で、利用ライセンスが購入ライセンスを超えているものとする。
【００８４】
まず、ライセンス管理部３４は、利用ライセンス管理テーブル３０ｄ２から、「利用」が「ＹＥＳ」の「ライセンス」を抽出し（ステップＳ２６）、抽出した「ライセンス」を合計した利用ライセンス（合計）を算出する（ステップＳ２７）。例えば、図１７の場合、ライセンス管理部３４は、利用ライセンス管理テーブル３０ｄ２から、「利用」が「ＹＥＳ」の「ライセンス」として、「３０万」及び「４０万」を抽出し、抽出した「３０万」及び「４０万」を合計した利用ライセンス（合計）として、「７０万」を算出する。
【００８５】
次に、ライセンス管理部３４は、ステップＳ２７で算出した利用ライセンス（合計）が購入ライセンスを超過しているか否かを判定する（ステップＳ２８）。
【００８６】
その結果、利用ライセンス（合計）が購入ライセンスを超過していると判定された場合（ステップＳ２８：ＹＥＳ）、ライセンス管理部３４は、調整値を算出する（ステップＳ２９）。以下、調整値を算出する処理の具体例について説明を行う。
【００８７】
［調整値を算出する処理の具体例］
ライセンス管理部３４は、契約処理性能（ここでは、購入ライセンス６０万）及び第２の仮想マシンの処理性能（ここでは、ＶＭ（Ｂ）の利用ライセンス３０万）に基づいて、契約処理性能（ここでは、購入ライセンス６０万）を超えずに利用可能な残処理性能（ここでは、残ライセンス）を算出する。具体的には、ライセンス管理部３４は、購入ライセンス（ここでは、６０万）から第２の仮想マシンの処理性能（ここでは、ＶＭ（Ｂ）の利用ライセンス３０万）を減じることで残ライセンス（ここでは、３０万）を算出する（ステップＳ２９）。
【００８８】
次に、ライセンス管理部３４は、ステップＳ２９で算出した残ライセンス及びステップＳ２３で算出（予測）したＶＭ（Ｃ）の処理性能（ここでは、ＶＭ（Ｃ）のライセンス量４０万）に基づいて処理性能制限値（調整値）を算出し（ステップＳ３０）、算出した処理性能制限値を設定する。
【００８９】
具体的には、ライセンス管理部３４は、ステップＳ２９で算出した残ライセンス（ここでは、３０万）をステップＳ２３で算出（予測）した第１の仮想マシンの処理性能（ここでは、ＶＭ（Ｃ）のライセンス量４０万）で除算することで調整値を算出（設定）する。例えば、残ライセンスが３０万、ＶＭ（Ｃ）のライセンス量４０万の場合、ライセンス管理部３４は、調整値として、３／４（３０万／４０万）を算出する。
【００９０】
次に、ライセンス管理部３４は、利用ライセンス（合計）が購入ライセンスを超過しないように、ＶＭ制御部３５に対してＶＭ（Ｃ）の制限要求を送信する（ステップＳ３１）。
【００９１】
ＶＭ制御部３５は、ＶＭ（Ｃ）の制限要求を受信すると、ＶＭ（Ｃ）のライセンス（処理能力）を制限するために、ＶＭ（Ｃ）の識別情報及びステップＳ３０で算出した調整値を設定したコマンドを物理マシン２０Ａに送信する（ステップＳ３２）。
【００９２】
物理マシンＡは、ＶＭ（Ｃ）の識別情報及び調整値を受信すると、ＶＭ（Ｃ）のライセンス（処理能力）を制限する処理を実行する（ステップＳ３３）。以下、ＶＭ（Ｃ）のライセンス（処理能力）を制限する処理の具体例について説明を行う。
【００９３】
［ＶＭ（Ｃ）のライセンス（処理能力）を制限する処理の具体例］
まず、物理サーバ２０Ａのハイパーバイザ２２ａは、受信した識別情報によって識別されるＶＭ（Ｃ）に割り当てられている仮想メモリ量を削減する処理を実行する。削減される仮想メモリは、同時セッション数（回線数）を管理している仮想メモリである。仮想メモリ量は、当初の仮想メモリ量に受信した調整値（ここでは、３／４）を乗算した仮想メモリ量になるように削減される。例えば、当初の仮想メモリ量がＤＧＢ（Ｄには、数値が入る）、受信した調整値が３／４の場合、仮想メモリ量は、（３／４）×ＤＧＢになるように削減される。図１９は、このことを表している。
【００９４】
これにより、当初４０万の処理能力があったＶＭ（Ｃ）のライセンス（処理能力）を、３０万に制限することができる。その結果、利用ライセンス（合計）は、ＶＭ（Ｂ）の３０万とＶＭ（Ｃ）の３０万とを合計した６０万となり、契約ライセンスを超過しないものとなる。
【００９５】
以後、Ｓ１８〜Ｓ３３の処理が繰り返し実行される。
【００９６】
例えば、ＶＭ（Ｃ）のパフォーマンスが変動し、ステップＳ２３において、ＶＭ（Ｃ）のライセンス量として「３０万」が算出されたとする。
【００９７】
この場合、利用ライセンス（合計）が購入ライセンスを超過していると判定されない（ステップＳ２８：ＮＯ）ため、以後、ステップＳ１８〜Ｓ２８（Ｓ２８：Ｎｏ）の処理が繰り返し実行される。これにより、ＶＭ（Ｃ）のライセンスが確定されたことになる。
【００９８】
以上説明したように、本実施形態によれば、ソフトウェア（例えば、通信制御プログラム）を複数の仮想マシン上で稼動させる場合、システム全体での処理性能が契約処理性能を超えないように制御することができる。
【００９９】
また、従来手法とは異なり、仮想マシン起動後、ベンチマークの実施やライセンス量の決定を行わず、直ちにソフトウェアを起動することで運用を開始するため、サービス性が低下するのを抑制できる。そして、運用中に、仮想マシンの処理能力を測定し、測定した処理能力に応じたライセンス量を決定することができる。
【０１００】
また、本実施形態によれば、ライセンス確定を待たずにサーバを運用できる、ライセンス管理システムを導入後も、サーバ起動時のサービス性の低下を抑えることができる、サーバの処理性能を認識し適切なライセンス払い出しが可能となる等の効果も奏する。
【０１０１】
以上の実施の形態をまとめると、以下の付記の通りである。
【０１０２】
（付記１）
第１の仮想マシン上で稼動した第１のソフトウェアの処理性能と、第２の仮想マシン上で稼動中の第２のソフトウェアの処理性能とを計測または収集する処理性能計測部と、
前記計測した処理性能が契約処理性能を超えない範囲で、前記第１の仮想マシン上で稼動中の第１のソフトウェアの処理性能を制限する処理性能制限値を設定する処理性能制限値設定部と、を有するソフトウェア管理装置。
【０１０３】
（付記２）
付記１において、
前記第１の仮想マシンの処理性能を表す第１の処理性能値と第２の処理性能値とを受信する処理性能情報受信部と、
前記処理性能情報受信部が異なる時間に受信した複数の前記第１の処理性能値と複数の前記第２の処理性能値としきい値とに基づいて、前記第１の仮想マシンの処理性能を予測する処理性能予測部と、をさらに有するソフトウェア管理装置。
【０１０４】
（付記３）
付記２において、
前記処理性能計測部は、前記処理性能情報受信部が異なる時間に受信した複数の前記第１の処理性能値と複数の前記第２の処理性能値とに基づいて、縦軸が第１の処理性能値、横軸が第２の処理性能値である座標系における、第１の処理性能値と第２の処理性能値との相関関係を求め、求めた相関関係を参照して、第１の処理性能値の限界値である前記しきい値に対応する第２の処理性能値を、前記第１の仮想マシンの処理性能として予測するソフトウェア管理装置。
【０１０５】
（付記４）
付記１又は２において、
前記処理性能制限値は、前記第１の仮想マシンに割り当てられたリソース量の削減に用いられる値であるソフトウェア管理装置。
【０１０６】
（付記５）
付記３において、
前記リソース量は、仮想メモリ量であるソフトウェア管理装置。
【０１０７】
（付記６）
付記１において、
前記契約処理性能及び前記第２の仮想マシンの処理性能に基づいて、前記契約処理性能を超えずに利用可能な残処理性能を算出する残処理性能算出部をさらに有し、
前記処理性能制限値設定部は、算出した前記残処理性能及び予測した前記第１の仮想マシンの処理性能に基づいて算出される前記処理性能制限値を設定するソフトウェア管理装置。
【０１０８】
（付記７）
付記６において、
前記残処理性能算出部は、前記契約処理性能から前記第２の仮想マシンの処理性能を減じることで前記残処理性能を算出し、
前記処理性能制限値設定部は、算出した前記残処理性能を予測した前記第１の仮想マシンの処理性能で除算することで算出される前記処理性能制限値を設定するソフトウェア管理装置。
【０１０９】
（付記８）
付記１から６において、
設定した前記処理性能制限値を、前記第１の仮想マシンを実行する物理マシンに送信する処理性能制限値送信部をさらに有するソフトウェア管理装置。
【０１１０】
（付記９）
第１の仮想マシン上で稼動した第１のソフトウェアの処理性能と、第２の仮想マシン上で稼動中の第２のソフトウェアの処理性能とを計測または収集する処理性能計測部と、
前記計測した処理性能が契約処理性能を超えない範囲で、前記第１の仮想マシン上で稼動中の第１のソフトウェアの処理性能を制限する処理性能制限値を設定する処理性能制限値設定部と、を有するソフトウェア管理装置と、
前記第１の仮想マシンを実行する物理マシンと、を有するソフトウェア管理システム。
【０１１１】
（付記１０）
第１の仮想マシン上で稼動した第１のソフトウェアの処理性能と、第２の仮想マシン上で稼動中の第２のソフトウェアの処理性能とを計測または収集し、
前記計測した処理性能が契約処理性能を超えない範囲で、前記第１の仮想マシン上で稼動中の第１のソフトウェアの処理性能を制限する処理性能制限値を設定する、
処理をコンピュータに実行させるソフトウェア管理プログラム。
【０１１２】
（付記１１）
第１の仮想マシン上で稼動した第１のソフトウェアの処理性能と、第２の仮想マシン上で稼動中の第２のソフトウェアの処理性能とを計測または収集し、
前記計測した処理性能が契約処理性能を超えない範囲で、前記第１の仮想マシン上で稼動中の第１のソフトウェアの処理性能を制限する処理性能制限値を設定するソフトウェア管理方法。
【符号の説明】
【０１１３】
１０：ソフトウェア管理システム、２０：物理サーバ（物理マシン）、２１ａ〜２１ｄ：仮想サーバ、３０：ソフトウェア管理装置（ライセンス管理サーバ）、３１：マネージャ、３２：ライセンス概算システム、３３：ライセンス制御部、３４：ライセンス管理部、３５：ＶＭ制御部
【図１】
2018205874.tif 000003
【図２】
2018205874.tif 000004
【図３】
2018205874.tif 000005
【図４】
2018205874.tif 000006
【図５】
2018205874.tif 000007
【図６】
2018205874.tif 000008
【図７】
2018205874.tif 000009
【図８】
2018205874.tif 000010
【図９】
2018205874.tif 000011
【図１０】
2018205874.tif 000012
【図１１】
2018205874.tif 000013
【図１２】
2018205874.tif 000014
【図１３】
2018205874.tif 000015
【図１４】
2018205874.tif 000016
【図１５】
2018205874.tif 000017
【図１６】
2018205874.tif 000018
【図１７】
2018205874.tif 000019
【図１８】
2018205874.tif 000020
【図１９】
2018205874.tif 000021