(57)【特許請求の範囲】
【請求項１】
第１の仮想計算機が動作する第１のサーバ装置と、他のサーバ装置と、管理サーバ装置と、第１の端末とがネットワークを介して接続される計算機システムにおいて、
前記管理サーバ装置は、
前記第１の仮想計算機のユーザが使用する第１の端末から、前記第１の仮想計算機への資源の再配分要求を受け付け、
前記第１の仮想計算機を前記第１のサーバ装置から前記他のサーバ装置へ移動する際の、仮想ディスク転送に伴う前記ネットワークを介した通信の速度低下、前記移動に伴う前記第１の仮想計算機の応答速度の低下、前記資源の再配分により前記第１の仮想計算機の再起動が必要になること、のいずれか一つ以上を、要求された資源の再配分を実行した場合に生じ得る支障として計算し、
計算した前記支障の情報を、前記第１の端末に送信して、前記ユーザへ提示させ、
前記第１の端末から、前記ユーザが前記第１の端末へ入力した、前記支障の情報の提示に対する了承を受信した場合に、要求された前記資源の再配分を開始することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記第１の端末は、
当該第１の端末の画面上に、前記第１の仮想計算機の資源再配分を要求するボタンを表示し、
前記ユーザによる前記ボタンの押下操作に応じて、前記資源の再配分要求を前記管理サーバ装置へ送信することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記管理サーバ装置は、
前記資源の再配分要求を受け付けた場合、
前記第１の仮想計算機による前記第１のサーバ装置の資源利用状況を調べ、
前記資源の種類のいずれか一つがあらかじめ定めた閾値を超えていなければ、前記資源の再配分要求を拒否する応答を、前記第１の端末へ送信することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記管理サーバ装置は、
前記第１の仮想計算機の資源利用状況を調べ、前記資源の種類のいずれか一つがあらかじめ定めた閾値を超えている場合に、前記第１の仮想計算機の移動先となる他のサーバ装置の有無、または、前記第１のサーバ装置上で動作する他の仮想計算機を移動中でないか、を調べ、
前記他のサーバ装置が無い場合、または、他の仮想計算機の移動中である場合に、前記資源の再配分要求を拒否する応答を、前記第１の端末へ送信することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、仮想計算機の資源配分方法及び装置に関する。
【背景技術】
【０００２】
計算機の物理資源を複数の論理資源に見せる仮想化ソフトウェアにより、一台の計算機上に複数の仮想計算機（以下、VMという）を稼動させることができるようになった。また、仮想化ソフトウェアがハードウェアの特性を吸収するため、VMは計算機のハードウェアの特性に依存せず、VMのハードウェア間の移動が容易である。以下、仮想化ソフトウェアを導入し、複数のVMを動作させる計算機をサーバと呼ぶ。
【０００３】
VMに、ユーザの作業領域であるデスクトップを構築するためのOS（基本ソフトウェア）を導入し、ユーザが遠隔操作でVMを利用するという、デスクトップ仮想化の技術が発展してきた。デスクトップをVMで実現することにより、導入・運用・保守コストの削減が可能となる。また、データ・アプリケーションをデータセンタで一箇所にまとめることで、セキュリティの面でも有利となる。
【０００４】
仮想計算機が利用できるハードウェアの資源（CPU処理時間、メモリ量、ディスクアクセス帯域、ネットワーク帯域など）は仮想化ソフトウェアが決定する。配分された資源が不足する場合、仮想計算機の性能が低下する。例えば、仮想計算機上にデスクトップを構成する仮想化デスクトップの場合、CPUの資源が不足すると仮想化デスクトップのユーザの操作に対する反応が遅くなり、ユーザの利用感が低下する。そこで、仮想計算機に配分した資源に不足が生じた場合、ユーザが資源再配分を希望するとすばやく資源を追加配分する仕組みが必要となる。しかし、コスト削減のため、ユーザが資源再配分を特に希望しない場合、仮想計算に不要な資源を追加配分しないことが好ましい。
【０００５】
従来技術（特許文献１）では、ユーザは、最もユーザが日常的に（平均的に）必要とする計算機の処理能力（計算機性能レベル）を予めシステム側に設定（登録）して、自身に割り当てられる個別仮想計算機の資源配分を設定しておき、ユーザが設定した計算機の処理能力（日常的に使用する処理能力（計算機性能レベル））を一時的に上回る、あるいは、下回る処理能力を必要とする場合には、システムに対して資源配分の一時的変更を要求するようにする。ユーザは日常的に必要とする資源を配分された個別仮想計算機によるサービスに対する対価を支払い、ユーザが設定した計算機の処理能力（日常的に使用する処理能力）を一時的に上回る、あるいは、下回る処理能力を必要とした場合には、通常の対価に上乗せし、あるいは、通常の対価を低減して対価を支払うことにより所望のサービスを受ける。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１-１７０６７９号公報（段落００４７）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、仮想計算機の資源を再配分するためには、仮想計算機の再起動、一定時間のサービス停止、さらに、仮想計算機を他のサーバ装置へ移動する場合の一定時間のネットワーク帯域占有、などの支障（以下、副作用と呼ぶ）をユーザへもたらすことがある。しかし、ユーザが事前に副作用を把握し、了承した上でVMの資源の配分を行う仕組みがなく、不利益をもたらすことがあった。
【０００８】
仮想計算機の資源を再配分するためでなく、単に他のサーバ装置へ移動する場合であっても同様の課題がある。
【課題を解決するための手段】
【０００９】
本明細書で開示されるのは、あるサーバ装置で動作する仮想計算機への資源の再配分を行う場合、または、資源の再配分もしくはその他の目的のために、他のサーバ装置へ仮想計算機を移動する場合、の副作用を、事前にユーザへ提示する技術である。
【００１０】
具体的には、仮想計算機および仮想計算機を結ぶネットワーク資源を監視し、仮想計算機の資源再配分の副作用を計算する機能を備えた管理サーバを設け、管理サーバが、仮想計算機の資源再配分を行う前に、副作用を事前にユーザへ提示しユーザの了承を得る仕組みを備える資源配分方法が開示される。
【００１１】
より具体的な態様として開示されるのは、第１の仮想計算機が動作する第１のサーバ装置と、一つ以上の他のサーバ装置と、管理サーバ装置と、第１の端末とがネットワークを介して接続される計算機システムであって、
管理サーバ装置は、
第１の仮想計算機のユーザが使用する第１の端末から、第１の仮想計算機への資源の再配分要求を受け付け、
要求された資源の再配分による副作用を計算し、
計算した副作用の情報を、第１の端末に送信して、ユーザへ提示させ、
第１の端末から、ユーザが第１の端末へ入力した、副作用に対する了承を受信した場合に、
要求された資源の再配分を開始することを特徴とするものである。
【００１２】
さらに、管理サーバ装置は、副作用として、
第１の仮想計算機を第１のサーバ装置から他のサーバ装置へ移動する際の、仮想ディスク転送に伴うネットワークを介した通信の速度低下、移動に伴う第１の仮想計算機の応答速度の低下、資源の再配分により第１の仮想計算機の再起動が必要になること、のいずれか一つ以上、を計算することが開示される。
【００１３】
さらに、第１の端末は、
画面上に、仮想計算機の資源再配分を要求するボタンを表示し、
ユーザによるボタンの押下操作に応じて、資源の再配分要求を管理サーバ装置へ送信することが開示される。
【００１４】
さらに、管理サーバ装置は、
資源の再配分要求を受け付けた場合、
第１の仮想計算機による第１のサーバ装置の資源利用状況を調べ、
資源の種類のいずれか一つがあらかじめ定めた閾値を超えていなければ、資源の再配分要求を拒否する応答を、第１の端末へ送信することが開示される。
【００１５】
さらに、管理サーバ装置は、
第１の仮想計算機の資源利用状況を調べ、資源の種類のいずれか一つがあらかじめ定めた閾値を超えている場合に、第１の仮想計算機の移動先となる他のサーバ装置の有無、または、第１のサーバ装置上で動作する他の仮想計算機を移動中でないか、を調べ、
他のサーバ装置が無い場合、または、他の仮想計算機の移動中である場合に、資源の再配分要求を拒否する応答を、第１の端末へ送信することが開示される。
【００１６】
また、他の態様として開示されるのは、第１の仮想計算機が動作する第１のサーバ装置と、一つ以上の他のサーバ装置と、管理サーバ装置と、第１の端末とがネットワーク,を介して接続される計算機システムであって、
管理サーバ装置は、
第１の仮想計算機による第１のサーバ装置の資源利用率を調べ、
資源の種類のいずれか一つ以上があらかじめ定めた閾値を超えている場合に、資源の再配分による副作用を計算し、
計算した副作用の情報を伴う資源の再配分の提案を、第１の端末に送信して、ユーザへ提示させ、
第１の端末から、ユーザが第１の端末へ入力した、副作用に対する了承を受信した場合に、提案した資源の再配分を開始することを特徴とするものである。
【００１７】
さらに、第１のサーバ装置上で、第１の仮想計算機以外の仮想計算機が一つ以上動作している場合に、管理サーバ装置は、
各々の仮想計算機による第１のサーバ装置の資源利用率を調べ、
資源の種類のいずれか一つ以上があらかじめ定めた閾値を超えている仮想計算機が複数存在する場合、の複数仮想計算機の間に優先順位を付けて、
優先順位に従って、副作用の計算と、資源の再配分の提案と、を実施することが開示される。
【００１８】
また、さらに他の態様として開示されるのは、第１の仮想計算機が動作する第１のサーバ装置と、一つ以上の他のサーバ装置と、管理サーバ装置と、第１の端末とがネットワーク,を介して接続される計算機システムであって、
管理サーバ装置は、
第１のサーバ装置で動作する第１の仮想計算機が利用する資源を調べ、
第１の仮想計算機を他のサーバ装置へ移動可能な場合、移動による副作用を計算し、
計算した副作用の情報を伴う移動の提案を、第１の端末に送信して、ユーザへ提示させ、
第１の端末から、ユーザが第１の端末へ入力した、副作用に対する了承を受信した場合に、提案した移動を行うことを特徴とするものである。
【発明の効果】
【００１９】
開示によれば、仮想計算機の資源再配分による副作用を、ユーザが資源再配分実行前に把握することができる。
【図面の簡単な説明】
【００２０】
【図１】実施例１のシステム構成全体を表す図である。
【図２】実施例におけるサーバ１０２の内部構成を例示する図である。
【図３】実施例におけるVM設定情報２４１の内部構成を例示する図である。
【図４】実施例における資源配分部１１１の内部構成を例示する図である。
【図５】実施例における資源状況DB４０１の内部構成を例示する図である。
【図６】実施例におけるネットワーク経路DB４０２の内部構成を例示する図である。
【図７】実施例における配分閾値表４０３の内部構成を例示する図である。
【図８】実施例における配分記録DB４０４の内部構成を例示する図である。
【図９】実施例における副作用計算DB４０８の内部構成を例示する図である。
【図１０】実施例における配分要求対応部４０５の動作シーケンスを例示するフローチャートである。
【図１１】実施例における配分提案部４０６の動作シーケンスを例示するフローチャートである。
【図１２】実施例における資源配分エージェント１５１の表示画面を例示する図である。
【図１３】実施例におけるシステム動作開始の動作シーケンスを例示するシーケンス図である。
【図１４】実施例におけるシステム動作終了の動作シーケンスを例示するシーケンス図である。
【図１５】実施例におけるユーザから資源再配分要求が来た時の動作シーケンスを例示するシーケンス図である。
【図１６】実施例における複数のユーザから資源再配分要求が来た時の動作シーケンスを例示するシーケンス図である。
【図１７】実施例におけるサーバ負荷が高い時の配分提案の動作シーケンスを例示するシーケンス図である。
【図１８】実施例におけるVMを一カ所にまとめる動作シーケンスを例示するシーケンス図である。
【発明を実施するための形態】
【００２１】
以下、実施例を、図面を用いて説明する
【実施例１】
【００２２】
本実施例では仮想計算機（VM）にユーザの作業環境であるデスクトップを構築し、仮想化デスクトップとして利用する際のVMの資源配分方法の例を説明する。
【００２３】
図１は実施例１のシステム構成を表すものである。本システムは、VMを動作させる複数台のサーバおよびVMの資源を監視、管理する一台の管理サーバを含んで構成される仮想化基盤と、この仮想化基盤上のVMへリモート接続し、VMを遠隔操作する複数台の端末を含んで構成される。端末は広範囲のネットワーク（WAN）を経由して、小範囲ネットワーク（LAN）へ接続し、小範囲ネットワークに接続する仮想化基盤に接続する。本システムの一つの例は、企業のデータセンタにおける仮想化デスクトップを集中管理する基盤と仮想化デスクトップを利用するための端末システムである。この場合、小範囲ネットワーク（LAN）はデータセンタ内のローカルネットワークとなる。
【００２４】
本実施例のシステムについて詳細に説明する。本実施例のシステムは管理サーバ１０１、サーバ１０２に代表されるサーバ装置群、端末１４１に代表される端末群および前記の三者が互いに通信するためのLAN１３２およびWAN１３１というネットワークを含んで構成される。また、本システムのユーザとして端末１４１を利用するユーザ１、端末１４２を利用するユーザ２、端末１４３を利用するユーザ３がいる。サーバ１０２に代表されるサーバ装置群はVMを動作させるための装置である。管理サーバはVMの動作制御、資源配分を管理するための装置である。端末は、ユーザがVMに接続して利用するための装置である。
【００２５】
図２はサーバ１０２の内部構成を例示するものである。サーバ１０２はメモリ２０１、プロセッサ２０２、固定ディスク２０３および通信ハードウェア２０４を含んで構成される計算機上に実現することができる。
【００２６】
プロセッサ（CPU）２０２はデータを処理するための計算機能を持つハードウェアである。最近のプロセッサは、データ処理命令を実行する部分や処理結果を一時的に保存しておく部分などからなる一組のハードウェアであるCPUコアを一つ以上含むことがある。それぞれのCPUコアは独立して動作することができるため、CPUコア数が多いことはCPU性能の向上につながる。図２に示すプロセッサ２０２はコア２５１、コア２５２、コア２５３、コア２５４という４組のCPUコアからなるプロセッサである。
【００２７】
通信ハードウェア２０４はNIC（ネットワークインタフェースカード）など、ネットワーク通信のためのデバイスである。固定ディスク２０３はデータやデータ処理ソフトウェア（プログラム）を格納する不揮発性記憶媒体（例えば磁気ディスク、フラッシュメモリなど）である。メモリ２０１はプログラムを実行する際にプロセッサ２０２が利用する記憶媒体であり、揮発性であっても良い。
【００２８】
固定ディスク２０３には、OS（オペレーティングシステム）２３１と資源監視エージェント１１４と仮想化ソフト１１３とVM１２１の仮想固定ディスクであるVHD２１１、VM１２２の仮想固定ディスクであるVHD２１２、VM１２３の仮想固定ディスクであるVHD２１３と、VM設定情報２４１が格納されている。VM設定情報２４１に関しては後述する。
【００２９】
OS２３１は通信ハードウェア２０４の制御やメモリ２０１の管理をし、仮想化ソフト１１３や資源監視エージェント１１４をメモリ２０１に展開し、実行する機能を備える。
【００３０】
仮想化ソフト１１３は、サーバ１０２上に仮想計算機および仮想化デスクトップを実現するいわゆる仮想化機能を備えたソフトウェアである。仮想化ソフト１１３が後述のVM設定情報２４１を参考し、VMにハードウェア資源を配分し、動作させる。なお、仮想化ソフト１１３は、ほかのサーバのソフトウェアから命令を受けて、その命令によりVMの新規作成、起動、終了、ほかのサーバへの移動などの機能を備える。また、資源監視エージェント１１４は、仮想化ソフト１１３上動作するVMおよびサーバ１０３の資源利用率（CPUのコア毎の利用率、メモリ利用率、固定ディスク（HDD）アクセス帯域の利用率、ネットワーク帯域の利用率）に関する情報を収集し、収集した情報をほかのソフトウェアへ送信する機能を備えるソフトウェアである。ほかのサーバはサーバ１０３と同じ構成である。ただし、サーバごとに処理速度や収容できるVM数が異なることもある。
【００３１】
上記ソフトウェアは、プロセッサ２０２により実行され、上記および以下に説明する機能を実現する。
【００３２】
図３はVM設定情報２４１の内部構造を例示するものである。VM設定情報２４１は仮想化ソフト１１３がVMを起動する時に、それぞれのVMに配分する資源量を示すデータである。まず、ID３０１の列にはサーバ１０２上で稼働しているVMのIDを記載する。プロセッサ３０２はそれぞれのVMが利用するCPUコア数を示す。ディスクアクセス帯域３０３はそれぞれのVMが利用するディスクアクセス帯域を示す。この項目に“共有”が記載される場合は、各VMに個別に帯域が割り当てられず、すべてのVMが一つの通信経路を共有することを意味する。最後に、ネットワーク帯域３０５はそれぞれのVMが利用するネットワークインタフェースの最大通信帯域を示す。この項目に“共有”が記載される場合は、各VMに個別に専用の帯域が割り当てられず、すべてのVMが一つの通信経路を共有することを意味する。
【００３３】
管理サーバ１０１はサーバ群の中のVMの資源配分を管理するためのネットワーク通信が可能な装置である。管理サーバ１０１は、資源配分部１１１を含んで構成される。資源配分部１１１の構成に関しては後述する。
【００３４】
端末の例として端末１４１について説明する。端末１４１の中には資源配分エージェント１５１とVM接続部１６１が配置される。なお、VM接続部１６１はサーバ１０２などのサーバ上のVMに接続してVMの画面を端末１４１の画面で表示する、いわゆる画面転送ソフトウェアである。資源配分エージェント１５１については後述する。ほかの端末は端末１４１と同じ構成である。ただし、端末ごとに処理速度や表示画面のサイズが異なることもある。
【００３５】
上記管理サーバ１０１と端末１４１他の、各処理部や以下に説明する機能も、プロセッサと、記憶装置を備える計算機において、記憶装置に格納されたそれぞれを実現するプログラムをプロセッサが実行することにより実現することができる。
【００３６】
図４は資源配分部１１１の詳細な機能構成を例示する。資源配分部１１１は資源状況DB４０１、ネットワーク経路DB４０２、配分閾値表４０３、配分記録DB４０４、副作用計算DB４０８、配分要求対応部４０５、配分提案部４０６およびVM片寄部４０７を含んで構成する。以下それぞれの要素について説明する。
【００３７】
図５は資源状況DB４０１の構成を例示するものである。資源状況DB４０１は仮想化基盤上の各サーバおよびVMの資源の利用状況を保存するデータベースである。サーバ５０１の列は仮想化基盤の中のサーバのマシン名を記録する。CPU利用率５０２はそれぞれのサーバ上動作しているVMの利用しているCPUコアの利用率および仮想化ソフト自身のCPUコア利用率を記録する。ディスクアクセス帯域利用率５０３はそれぞれのサーバ上動作しているVMの占有するディスクアクセス帯域および仮想化ソフト自身が占有するディスクアクセス帯域を記録する。メモリ利用率５０４はそれぞれのサーバ上動作しているVMが割り当てられたメモリの利用率および仮想化ソフト自身が利用しているメモリ領域の利用率を記録する。ネットワーク帯域利用率５０５はそれぞれのサーバ上動作しているVMの占有するネットワーク帯域および仮想化ソフト自身が占有するネットワーク帯域を記録する。
【００３８】
図６はネットワーク経路DB４０２の構成を例示するものである。ネットワーク経路DB４０２は本システムの仮想化基盤の各サーバの間のネットワーク経路を記憶するデータベースである。ネットワーク経路６０１は始点のサーバと終点のサーバで構成される各ネットワーク経路を記載する。ネットワーク装置６０２はそれぞれのネットワーク経路が通過するネットワーク装置（ルータまたはハブ）の一覧を記録する。
【００３９】
図７は配分閾値表４０３の構成を例示するものである。配分閾値表４０３は各ハードウェア資源に対して、推奨する最大利用率を記録する表である。VMのある資源の利用率がこの最大利用率を超えた場合、VMの性能へ影響が与える可能性があるため資源の再配分を行った方がよいという意味を持つデータである。資源の種類７０１は各ハードウェアの資源の種類を記録する。閾値７０２はそれぞれの資源に対して推奨する最大利用率を記録する。
【００４０】
図８は配分記録DB４０４の構成を例示するものである。配分記録DB４０４は本システムで実施中または実施済みのVMの資源配分を記録するデータベースである。ID８０１の列は資源配分対象のVMのIDを記録する。配分前のサーバ８０２は、配分対象のVMが配分前に稼働したサーバのIDを記録する。配分後のサーバ１０３は配分対象のVMが配分後に稼働したサーバのIDを記録する。配分開始時刻８０４は配分が開始した時刻を記録する。配分終了時刻８０５は配分が終了した場合、その終了時刻を記録し、配分が終了していない場合はその終了予定時刻を記録するものである。
【００４１】
図９は副作用計算DB４０８の構成を例示するものである。副作用計算DB４０８はVMの資源配分に伴うデータ転送作業やソフトウェア設定変更作業など、およびそれらの作業のユーザへの影響を記録するデータベースである。まず、作業ID１１０１は資源配分に必要となる作業項目の区別番号である。作業１１０２は作業の内容の説明となる。ユーザへの影響１１０３はそれぞれの作業が資源配分対象となるVMのユーザへの影響を記載する。計算方法１１０４はそれぞれの作業の所有時間または所有時間の計算方法を記載する。
【００４２】
図１０は配分要求対応部４０５の動作手順を例示するフローチャートである。配分要求対応部４０５はユーザからVMの資源配分要求が来た時に対応する機能である。配分要求対応部４０５は管理サーバ１０１が稼働している間には常時稼働する。
【００４３】
ステップ９０１において、ユーザからの資源配分の要求を待つ。ユーザからの資源配分要求を受け付けた場合、ステップ９０２でまず資源配分を要求したユーザが利用中のVM（以下配分対象VMと呼ぶ）の資源状況を資源状況DB２０６で確認し、配分対象のVMの各資源の中では配分閾値表４０３に示された閾値を超えた資源があるかどうかを確認する。利用率が閾値を超えた資源がない場合は、ステップ９０１０で配分拒否という結果をユーザに返答して、ステップ９０１に戻る。配分拒否の表示方法については後述する。
【００４４】
一方、利用率が閾値を超え不足している資源（以下、不足資源と呼ぶ）がある場合、資源不足を解消するためにステップ９０３以降で再配分を検討する。不足資源は複数があってもよい。
【００４５】
ステップ９０３では、資源状況DB２０６の中から、ステップ９０２で特定した資源不足を解消する資源を提供できるサーバ（以下、配分用のサーバと呼ぶ）を探し、いずれか一つを選択する。
【００４６】
ステップ９０３において、配分用のサーバは、次の条件（１）、（２）、（３）をすべて満たすサーバとしてもよい。
【００４７】
（１）不足資源の資源利用率はA%以下のサーバであること。A%は１０%としてもよい。なお、不足資源が複数存在する時はそれぞれの資源について利用率がA％以下という条件を設けてもよい。また、不足資源が複数存在する時は一部の資源について利用率がA％以下という条件を設けてもよい。
【００４８】
（２）配分対象のVMの稼働中のサーバからのネットワーク経路は、すでに実施中別のVMの配分用に使われるネットワーク経路と重ならないこと。
【００４９】
（３）上記の条件（１）と（２）を満たしたサーバのうち、配分対象のVMの稼働中のサーバからのネットワーク経路の利用するネットワーク装置（ルータやハブなど）の数が最小であること。
【００５０】
上記のように、本実施例においてステップ９０２で、資源配分を要求がある時に、該当VMのどの資源が不足しているか判定する。
【００５１】
ステップ９０４では、ステップ９０３において再配分用のサーバが見付からなかった場合は配分不可という結果をステップ９０５でユーザに返答し、ステップ９０１に戻る。配分不可の表示方法については後述する。一方、ステップ９０３で配分用のサーバが見付かった場合、ステップ９０６で配分を行う場合の副作用を計算する。
【００５２】
ステップ９０７では副作用をユーザへ提示し、ステップ９０８でユーザの了承があるかを確認する。ユーザが了承した場合はステップ９０９で資源再配分を実施する。ユーザが了承しない場合はステップ９０１に戻る。
【００５３】
ステップ９０６、ステップ９０７の詳細については後述する。
【００５４】
上記のように、本実施例においては上記の条件（１）、（２）、（３）を満たさない場合、つまり、
配分用の資源を確保できるサーバがない、または資源配分のためのデータ転送が別の資源配分のデータ転送とネットワーク上またはサーバ上ぶつかる可能性がある場合は配分要求に対応しない。
【００５５】
図１１は配分提案部４０６の動作手順を例示するフローチャートである。配分提案部４０６はB分間隔で定期的にOS２３１に呼び出されて実行するソフトウェアである。Bは１０としてもよい。一回の実行の手順は次のようになる。
【００５６】
まず、ステップ１００１において、配分記録DB４０４で実施中の資源配分があるかどうかを確認する。実行中の資源配分がある場合は終了する。
【００５７】
次に、ステップ１００２において、資源状況DB４０１を参照し、配分閾値表４０３に記載されるいずれか一つ以上の閾値を超える資源を持つVM（以下資源不足のVMと呼ぶ）があるかどうかを確認する。また、使用率が閾値を超えた資源を不足資源と呼ぶ。資源不足のVMがない場合、配分提案部４０６は終了する。資源不足のVMが一つ又は複数ある場合、配分提案部４０６はステップ１００３において資源不足のVMのグループの中で順番を決定する。
【００５８】
ステップ１００３の処理内容について後述する。
【００５９】
ステップ１００４では、ステップ１００３において決められた順番で順位の高いVMを選んでステップ１００５において選んだVMの不足資源を配分する際の副作用を計算する。
【００６０】
ステップ１００６において、ステップ１００５で計算した副作用をユーザへ提示し、選んだVMのユーザの了承を求める。
【００６１】
ステップ１００５の処理は後述するステップ９０３および後述するステップ９０６である。次に、ステップ１００７において、ユーザが資源配分を了承した場合は配分を実施、終了する。一方、選んだVMのユーザが配分を了承しない場合はステップ１００９において、選んだVMを資源不足VMのグループから外し、資源不足VMのグループにVMが残っている場合はステップ１００４に戻り、そうでない場合は終了し、B分後にまたステップ１００１から実施する。
【００６２】
ステップ１００３の処理は以下となる。資源不足のVMのグループの中で優先順位を決める基準として、以下の基準（１）を利用する。
【００６３】
（１）不足資源の利用率が高いVMほど優先順位が高い。
【００６４】
なお、上述の基準（１）の代わりに、下記の基準（２）,基準（３）のいずれかを利用してもよい。
【００６５】
（２）資源再配分に伴うネットワークを使った転送するデータ容量が少ないVMほど優先順位が高い。
【００６６】
（３）組織の中の職位が低いユーザのVMほど優先順位が高い。
【００６７】
（４）システム利用額が低いプランを利用するユーザのVMほど優先順位が高い。
【００６８】
上記のように、本実施例においては資源不足のVMが複数ある場合、管理サーバが資源配資源利用率の高いVMの間に優先順位を付けてその順位で配置提案をユーザへ提示する。
【００６９】
ステップ９０６の詳細処理は以下となる。まず、資源配分対象のVMの現在稼働中のサーバがステップ９０３で選定したサーバと異なった場合は、配分対象のVMをステップ９０３で選定したサーバに移動するための作業を副作用計算DB４０８より選択し、それに対応する計算方法でそれぞれの作業の所有時間を計算する。なお、作業ID１の転送時間の計算において、仮想ディスクサイズはVHD２１１などのファイルの容量であり、転送レート（Transmit_speed）は次の式で計算してもよい。
【００７０】
Transmit_speed=Max_speed/VM_number
ここでMax_speedは再配分対象のVMが稼働中のサーバのネットワークインタフェースの最大通信速度で、VM_numberは再配分対象のVMと同じサーバで稼働しているVM総数である。また、作業ID２の転送時間の計算において、転送レートも上記のTransmit_speedの計算式を利用してもよい。
【００７１】
上記のように、本実施例においてはVMの資源配分時に配分作業がもたらすネットワーク占有、ディスクアクセス帯域占有、VM操作反応の鈍化などという副作用を計算する。
【００７２】
VM片寄部４０７は稼働中のVMを一カ所にまとめて、不要なサーバの電源をオフにして仮想化基盤の消費電力を抑える処理の流れを例示するものである。VM片寄部４０７の詳細処理について後述する。
【００７３】
図１２は資源配分エージェント１５１の表示画面を示す。資源配分エージェント１５１はネットワーク経由で管理サーバ１０１の資源配分部１１１と通信し、資源配分部１１１からの提示情報をユーザへ表示し、また、資源配分部１１１へユーザの選択に関する情報を転送する役割を果たすソフトウェアである。
【００７４】
資源配分エージェント１５１は端末１４１の中で動作し、画面１２０１を表示する。
【００７５】
画面１２０１の中のボタン１２２１はユーザがVMの資源配分を要求する際に押すボタンである。
【００７６】
画面１２０２は配分要求対応部４０５がステップ９１０において配分要求を拒否する場合、資源配分エージェント１５１がユーザに表示する画面である。
【００７７】
画面１２０３は配分要求対応部４０５がステップ９０５において配分ができない場合、資源配分エージェント１５１がユーザへ表示する画面である。
【００７８】
また、画面１０２４は配分要求対応部４０５がステップ９０７において計算した副作用を資源配分エージェント１５１に送った際に、資源配分エージェント１５１がユーザへ表示する画面である。画面１０２４は、資源再配分の効果を表示する表示エリア１２１１と資源再配分の影響を表示する表示範囲１２１２を含めている。資源再配分の効果とは再配分後の資源状況を示すものである。また資源再配分の影響とは、配分要求対応部４０５がステップ９０６において計算した結果を表示するものである。
【００７９】
最後に、画面１２０５は資源配分実施中に資源配分エージェント１５１がユーザへ提示する画面である。画面１２０５中の矢印１２２１は資源配分の進捗状況を示すものである。
【００８０】
図１３は本実施例のシステムの動作開始手順を例示するものである。まず、システム管理者がステップ１３０１において管理サーバを起動し、また、ステップ１３０２においてサーバ１０２、１０３、１０４を起動する。
【００８１】
ステップ１３０３において、管理サーバが資源配分部１１１を起動する。
【００８２】
ステップ１３０４においてサーバ１０２は仮想化ソフト１１３をメモリ上に展開し、仮想化ソフト１１３がさらにVM設定情報２４１を読み取り、VM設定情報２４１に基づきVM１２１、VM１２２およびVM１２３にハードウェアの資源を配分し、動作させる。
【００８３】
ステップ１３０５において、各サーバ１０２、１０３、１０４は資源監視エージェント１１４を起動する。資源監視エージェント１１４はC分ごとに一回等定期的に資源配分部１１１の中の資源状況DB４０１の情報を更新する（ステップ１３０６で更新作業開始）。Cの値は１としてもよい。
【００８４】
ステップ１３０６において、仮想化基盤の起動が完了となる。
【００８５】
次にユーザが仮想化基盤の利用開始手順について説明する。
【００８６】
ステップ１３０７において、ユーザ１が端末１４１を起動し、ステップ１３０８ではユーザ１が端末１４１を利用してVM１２１に接続し、VM１２１の画面操作を開始する。
【００８７】
ステップ１３０９は資源配分エージェント１５１の起動であり、端末１４１がステップ１３０８と同じタイミングで実施する作業である。これでユーザ１がVM１２１の画面操作のための作業が完了する。
【００８８】
ステップ１２１０はユーザ２およびユーザ３がそれぞれVM１２２、VM１２３に接続して操作を開始する。最終的に、ステップ１２１１では、ユーザ１、ユーザ２、ユーザ３がVM１２１、VM１２２、VM１２３をそれぞれ利用する。なお、VM１２１、VM１２２、VM１２３はサーバ１０２で稼働する。これは本実施例のシステムの正常な利用状況である。
【００８９】
図１４は本実施例のシステムの動作終了手順を例示するものである。
【００９０】
ステップ１４００において、ユーザ１、ユーザ２、ユーザ３がVM１２１、VM１２２、VM１２３をそれぞれ利用する。なお、VM１２１、VM１２２、VM１２３はサーバ１０２で稼働している。そこで、まず、ユーザ１が作業終了するとする。
【００９１】
ステップ１４０１でユーザ１がVM１２１の電源をオフにする。次に、ステップ１４０２において、ユーザ１が端末１４１の電源をオフにする。また、ステップ１４０３において、ユーザ２およびユーザ３もそれぞれVM１２２、VM１２３の電源をオフに、端末１４２、端末１４３の電源をオフにする。
【００９２】
ステップ１４０４において、システム管理者はVMが稼働しないサーバ１０２およびその他のサーバ（１０３、１０４）の電源をオフにする。また、管理者がステップ１４０５において管理サーバ１０１の電源をオフにする。これで本実施例のシステムが動作停止する。
【００９３】
図１５は本実施例のシステムにおいて、ユーザからVMの資源配分要求が発生した場合の動作手順を例示するものである。まず、ステップ１５００において、ユーザ１、ユーザ２、ユーザ３がVM１２１、VM１２２、VM１２３をそれぞれ利用する。なお、VM１２１、VM１２２、VM１２３はサーバ１０２で稼働しているとする。
【００９４】
そこで、ステップ１５０１において、サーバ１０２のCPUコア１およびコア２の利用率が９０％に上昇したとする。このCPUの高負荷はユーザ１およびユーザ２のVMの操作感覚へ影響を与える。ユーザ１が、ステップ１５０５において、業務に支障を感じ、ステップ１５０６において、資源配分エージェント１５１の画面１２０１のボタン１２２１に押すことで、VM１２１への資源の再配分を要求する。
【００９５】
一方、ユーザ２は業務に支障を感じず、そのままVM１２２の操作を続行する（ステップ１５０４）。以下はユーザ１の資源配分要求に対する対応の一連の動作について説明する。
【００９６】
まず、配分要求対応部４０５がユーザ１の要求を受け付け、ステップ１５２７では前述のステップ９０２からステップ９０６まで実施し、資源の再配分による副作用を計算する。
【００９７】
そして、ステップ１５０７では、ステップ９０６で計算した副作用の情報を端末１４１の資源配分エージェント１５１に送信し、資源配分エージェント１５１は副作用の情報を用いて画面１２０４を生成し、端末１４１へ表示し、ユーザ１の資源再配分による副作用に対する了承を求める。
【００９８】
ステップ１５０８において、ユーザ１が資源再配分による副作用に対する了承を、端末１４１に入力したとする。すると、ステップ１５０９において、配分要求対応部４０５が画面１２０５を利用してディスク転送の開始をユーザへ通知する。
【００９９】
ステップ１５１０において、サーバ１０２がVM１２１の仮想ディスクVHD２１１をサーバ１０３へ移動する。
【０１００】
ステップ１５３１では、ユーザ１がVHD２１１の移動中VM１２１を操作することが可能だが、ネットワーク通信およびディスクの入出力の性能が低下する。
【０１０１】
ステップ１５１１において、配分要求対応部４０５がユーザへVM移動開始を通知する。通知方法は資源配分エージェントの画面１２０５の矢印１２２１を作業内容の”VMの移動”のところに移動することである。
【０１０２】
ステップ１５１２において、サーバ１０２がVM１２１をサーバ１０３にVMを移動させる。この例ではサーバ１０２がVMを停止させずに移動させる方法を採用するとする。また、サーバ１０２はVM１２１のVM設定情報２４１もサーバ１０３へ転送する。VM移動の間はステップ１５１３においてユーザのVM操作が停止になることがある。
【０１０３】
ステップ１５１４において、サーバ移動完了後、サーバ１０３がVM１２１のVM設定情報のプロセッサ３０２の値を１コアから２コアへ変更する。次に、ステップ１５１５において配分要求対応部４０５が画面１２０５の矢印１２２１を作業内容の”再起動”のところに移動し、再起動をユーザへ通知する。そして、ステップ１５１６においてサーバ１０３がVMを再起動し、資源配分結果を適用する。ユーザ１はステップ１５１７でVM１２１の再起動を待ち、ステップ１５１８においてVM１２１に再接続し、ステップ１５１９においてCPUコア数が２つになったVM１２１の環境を利用する。
【０１０４】
上記のように、本実施例においては資源再配分を実施する前に、資源配分の副作用を計算し（ステップ１５２７）ユーザへ提示する（ステップ１５０７）。ユーザの了承を得た際に（ステップ１５０８）資源配分を実行する。
【０１０５】
また、本実施例においては端末の中に資源配分要求の画面が装置され、ユーザが資源配分を要求する際にはこの画面上のボタン（ボタン１２２１）を押すことで、資源配分要求を送ることができる。
【０１０６】
図１６は実施例のシステムにおいて、複数のユーザから資源再配分要求が来た時の処理の流れを例示するものである。まず、ステップ１６００において、ユーザ１、ユーザ２、ユーザ３がVM１２１、VM１２２、VM１２３をそれぞれ利用する。なお、VM１２１、VM１２２、VM１２３はサーバ１０２で稼働するとする。
【０１０７】
そこで、ステップ１６０１において、サーバ１０２のCPUコア１およびコア２の利用率が９０％に上昇したとする。このCPUの高負荷はユーザ１およびユーザ２のVMの操作感へ影響を与える。そして、ユーザ１の方が業務に支障を感じて、ステップ１６０５において、資源配分を要求する。すると、ステップ１６０６において、配分要求対応部４０５がユーザ１の資源配分要求対応を開始する。
【０１０８】
ステップ１６０６からステップ１６１１までの間は、配分要求対応部４０５が前述のステップ１５０７からステップ１５１８までの一連の処理を行う。しかし、この場合、ユーザ２も業務に支障を感じ、ステップ１６０８に画面１２０１のボタン１２２１を押し、資源配分要求を配分要求対応部４０５へ送る。
【０１０９】
この場合、配分要求対応部４０５がステップ１６０６において、ユーザ２の要求を処理する。具体的に、ステップ１６０９において、前述のステップ９０２から９０６までの流れで処理する。しかし、この場合、配分記録DB４０４にはVM１２２と同じサーバ上で稼働しているVM１２１の資源配分の実施中の記録があるため、ステップ９０４の選択では選択結果が”NO”となり、ステップ９０５が実行される。そのため、ステップ１６１０において、配分要求対応部４０５が資源監視エージェント１１４を介してユーザ２に画面１２０３を提示する。
【０１１０】
図１７は実施例のシステムにおいて、VMの資源利用率が高いが、ユーザから資源再配分要求がない時の処理の流れを例示するものである。まず、ステップ１７００において、ユーザ１、ユーザ２、ユーザ３がVM１２１、VM１２２、VM１２３をそれぞれ利用する。なお、VM１２１、VM１２２、VM１２３は、一つのサーバ１０２で稼働するとする。
【０１１１】
そこで、ステップ１７０１において、サーバ１０２のCPUコア１およびコア２の利用率がそれぞれ９２％と９０％に上昇したとする。このCPUの高負荷はユーザ１およびユーザ２のVMの操作感へ影響を与える。しかし、この場合、ユーザ１、ユーザ２両者とも資源再配分要求を出さずにいた。そこで、ステップ１７０７において、配分提案部４０６がVM１２１およびVM１２２の高いCPU利用率を検出したとする。すると配分提案部４０６は前述のステップ１００３からの処理を実行する。この場合、ステップ１００３においての資源不足VMグループがVM１２１とVM１２２となる。
【０１１２】
ステップ１００４においての順位決定では、VM１２１の方はCPU利用率が高いためステップ１００４においてVM１２１が選ばれる。そして、配分提案部４０６がステップ１００６においてVM１２１のCPUコアを追加時の副作用を計算する。
【０１１３】
ステップ１７１０において配分提案部４０６がステップ１００６で計算した副作用を、画面１２０４を用いてユーザに提示する。
【０１１４】
ステップ１７１０において、ユーザ１がこの再配分の提案を拒否する。すると、配分提案部４０６がステップ１００９でVM１２１を資源不足VMグループから外し、ステップ１００４に戻る。そして、ステップ１７７１では、配分提案部４０６が資源不足VMグループに残っているVM１２２を選んで、副作用を計算しステップ１７１２でユーザ２へ提示する。
【０１１５】
ステップ１７１３において、ユーザ２が資源再配分を了承する。するとステップ１７１４においてVM１２２のCPUのコア数追加作業が行われる。
【０１１６】
上記のように、本実施例においてはVMの資源利用率が高いが、ユーザから資源再配分要求がない時、管理サーバが資源利用率の高いVMのユーザに対して資源再配分の提案を実施する。
【０１１７】
図１８は実施例のシステムにおいて、稼働中のVMを一カ所にまとめて（一ヶ所にまとめることを片寄せと称する）、不要なサーバの電源をオフにして仮想化基盤の消費電力を抑える処理の流れを例示するものである。
【０１１８】
まず、ＶＭ片寄部４０７はステップ1800において常時各サーバ上のＶＭが利用するＣＰＵ利用率５０２、ディスクアクセス帯域利用率５０３、メモリ利用率５０４およびネットワーク帯域利用率５０５を監視し、片寄せできるサーバがあるかを確認する。片寄せできるサーバがあるかを確認するために、次の方法を採用してもよい。
【０１１９】
VM片寄部４０７は以下の条件(1)、(2)、(3)、(4)、(5)をすべて満たす二つのサーバX、Yがあるかを確認する。条件(1)、(2)、(3)、(4)、(5)をすべて満たす二つのサーバX、Yがある場合、サーバX上のVMをサーバYへの片寄せを行う。
【０１２０】
(1)サーバＸ上一つのＶＭだけが稼働している。サーバＹ上は一つ以上のＶＭが稼働している。
(2)サーバＸ上稼働しているＶＭが利用するＣＰＵコア数がサーバＹ上の利用率が0%のコア数よりも少ないは又は等しい。また、サーバＸおよびサーバＹ上の各CPUコアの利用率はＣＰＵの閾値７０２を超えない。
(3)サーバＸ上のＶＭのメモリ利用率とサーバＹのメモリ利用率の総和がメモリ帯域の閾値７０２を超えない。
(4)サーバＸ上のＶＭのディスクアクセス帯域利用率とサーバＹのディスクアクセス帯域利用率の総和がディスクアクセス帯域の閾値７０２を超えない。
(5)サーバＸ上のＶＭのネットワーク帯域利用率とサーバＹのネットワーク帯域利用率の総和がネットワーク帯域の閾値７０２を超えない。
【０１２１】
上述の(1)、(2)、(3)、(4)、(5)をすべて満たす二つのサーバX、Yがある場合、サーバX上のVMをサーバYに移動してもサーバYの資源利用率が閾値を超えないことになり、片寄せが可能になる。なお、一つのサーバXに対して、複数のサーバYが存在する時、もっともＣＰＵの利用率が少ないサーバYを選択してもよい。
【０１２２】
なお、図１８に示す例では、ステップ１８０１において、ユーザ１、ユーザ２、ユーザ３がVM１２１、VM１２２、VM１２３をそれぞれ利用する。なお、VM１２１、VM１２２、VM１２３はサーバ１０２で稼働するとする。またサーバ１０４もステップ１８０２において一つ以上のVMを実行している。
【０１２３】
ステップ１８０３においてユーザ１がVM１２１の電源をオフにし、そしてステップ１８０４においてユーザ２が端末１４１の電源をオフにする。そして、ステップ１８０５おいてユーザ２がVM１２２電源をオフにし、そしてステップ１８０６おいてユーザ２が端末１４２の電源をオフにする。ステップ１８０６の時点でサーバ１０２上に動作するのはVM１２３だけとなっている。
【０１２４】
そこで、ステップ１８０７において、ステップ１８００に記述した検出方法でVM片寄部４０７はサーバ１０２からサーバ１０４へＶＭを片寄できると検出したとする。ステップ１８０８において、VM片寄部４０７は移動対象のＶＭとして、サーバ１０２の中のVM１２３を選択し、サーバ１０２からサーバ１０４へ移動する時の副作用計算をステップ１８０９で行う。
【０１２５】
ステップ１８０９の処理内容はステップ１００５の副作用計算と同じである。そこで、ステップ１８１０においてVM片寄部４０７がユーザ３へサーバ移動の提案を行う。この場合、VM片寄部４７がユーザ３へ画面１２０４を提示する。
【０１２６】
ステップ１８１１において、ユーザがVMのサーバ移動を了承する。すると、ステップ１８１２において、サーバ１０２がVM１２３をサーバ１０３へ移動する。
【０１２７】
ステップ１８１２の処理はステップ１５０７からステップ１５１２までの処理と同じである。VM１２３がサーバ１０４へ移動した後に、ステップ１８１４ではサーバ１０４がVM１２３を動作させる。
【０１２８】
ステップ１８１３において、サーバ１０２上のVMがなくなったため、管理者がサーバ１０２の電源をオフにする。
【０１２９】
上記のように、本実施例においてはユーザの了解を確認した上で管理サーバが動作中のVMを一カ所に片寄せて、VMがなくなったサーバの電源をオフにし、サーバの消費電力を抑えることができる。
【０１３０】
なお、本実施例において資源再配分の履歴（配分記録DB４０４）を参考に、システムが起動時のVMの配置を決定してもよい。例えば、資源再配分の回数が多いVMを同じサーバ上に再配置するまたは均等に各サーバへ配置してもよい。
【０１３１】
なお、上記の実施例は例示に過ぎず、上述の開示に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例において、必ずしも説明したすべての構成を備える必要はない。
【０１３２】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。また、上記の各構成、機能等は、CPUがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、データベースなどの情報は、メモリやHDDなどの記憶装置またはICカード、SDカード、DVDなどの記憶媒体に置くことができる。
【符号の説明】
【０１３３】
１０１：管理サーバ
１０２：仮想化サーバ
１０３：仮想化サーバ
１０４：仮想化サーバ
１２１：仮想計算機
１１３：仮想化ソフト
１１４：資源監視エージェント
１３１：小範囲ネットワーク（LAN）
１１２：広範囲ネットワーク（WAN）
１４１：端末
１５１：資源配置エージェント
１６１：VM接続部
【図１】
0005961402.tif 000002
【図２】
0005961402.tif 000003
【図３】
0005961402.tif 000004
【図４】
0005961402.tif 000005
【図５】
0005961402.tif 000006
【図６】
0005961402.tif 000007
【図７】
0005961402.tif 000008
【図８】
0005961402.tif 000009
【図９】
0005961402.tif 000010
【図１０】
0005961402.tif 000011
【図１１】
0005961402.tif 000012
【図１２】
0005961402.tif 000013
【図１３】
0005961402.tif 000014
【図１４】
0005961402.tif 000015
【図１５】
0005961402.tif 000016
【図１６】
0005961402.tif 000017
【図１７】
0005961402.tif 000018
【図１８】
0005961402.tif 000019