(57)【特許請求の範囲】
【請求項１】
複数のディスク装置を備えたストレージ装置と、前記ディスク装置を用いて仮想マシンを構成するためのプログラムを実行するサーバ装置とを有する情報処理システムを管理する管理装置の制御プログラムであって、
前記管理装置に、
前記サーバ装置に新たな仮想マシンを実行させるためのプログラムに基づいて、過去に構成された複数の仮想マシンに関するプログラムがそれぞれ割り当てられたディスク装置に対するアクセス頻度を取得し、
前記取得した複数の仮想マシンのアクセス頻度のばらつき度合いを示す分散値を算出し、
前記分散値が所定値よりも小さい場合、前記新たな仮想マシンを構成するためのプログラムを割り当てるディスク装置を前記ディスク装置へのアクセス頻度に基づいて決定し、
前記分散値が前記所定値以上の場合、前記新たな仮想マシンを構成するためのプログラムを割り当てるディスク装置を前記ディスク装置の空き容量に基づいて決定し、
前記新たな仮想マシンを構成するためのプログラムを前記決定したディスク装置に割り当てる、
処理を実行させること特徴とする制御プログラム。
【請求項２】
複数のディスク装置を備えたストレージ装置と、前記ディスク装置を用いて仮想マシンを構成するためのプログラムを実行するサーバ装置とを有する情報処理システムを管理する管理装置の制御方法において、
前記管理装置が、
前記サーバ装置に新たな仮想マシンを実行させるためのプログラムに基づいて、過去に構成された複数の仮想マシンに関するプログラムがそれぞれ割り当てられたディスク装置に対するアクセス頻度を取得し、
前記取得した複数の仮想マシンのアクセス頻度のばらつき度合いを示す分散値を算出し、
前記分散値が所定値よりも小さい場合、前記新たな仮想マシンを構成するためのプログラムを割り当てるディスク装置を前記ディスク装置へのアクセス頻度に基づいて決定し、
前記分散値が前記所定値以上の場合、前記新たな仮想マシンを構成するためのプログラムを割り当てるディスク装置を前記ディスク装置の空き容量に基づいて決定し、
前記新たな仮想マシンを構成するためのプログラムを前記決定したディスク装置に割り当てる、
ことを特徴とする制御方法。
【請求項３】
複数のディスク装置を備えたストレージ装置と、前記ディスク装置を用いて仮想マシンを構成するためのプログラムを実行するサーバ装置とを有する情報処理システムを管理する管理装置において、
前記サーバ装置に新たな仮想マシンを実行させるためのプログラムに基づいて、過去に構成された複数の仮想マシンに関するプログラムがそれぞれ割り当てられたディスク装置に対するアクセス頻度を格納する格納部を有し、
前記取得した複数の仮想マシンのアクセス頻度のばらつき度合いを示す分散値を算出し、
前記分散値が所定値よりも小さい場合、前記新たな仮想マシンを構成するためのプログラムを割り当てるディスク装置を前記ディスク装置へのアクセス頻度に基づいて決定し、
前記分散値が前記所定値以上の場合、前記新たな仮想マシンを構成するためのプログラムを割り当てるディスク装置を前記ディスク装置の空き容量に基づいて決定し、
前記新たな仮想マシンを構成するためのプログラムを前記決定したディスク装置に割り当てる処理を行う処理部と
を有すること特徴とする管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置の制御プログラム、制御方法及び管理装置に関する。
【背景技術】
【０００２】
物理サーバとストレージ装置とをネットワーク接続する技術がある。この技術は、ＩＰ−ＳＡＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ‐  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＦＣ−ＳＡＮ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ−Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等、物理サーバとストレージ装置との間をＩＰネットワークで接続したものである。このＩＰネットワークで接続された物理サーバとストレージ装置は、各々が搭載するネットワーク機器に応じてＩＰアドレスなどのネットワークアドレスが付与され、当該ネットワークアドレスを使用して通信を行っている。
【０００３】
近年、物理サーバにて、複数の仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を稼働させ、当該ＶＭからネットワーク上のストレージ装置へのアクセスを行うことが可能となっている。新たなＶＭを物理サーバ上で稼働させる（以下、物理サーバ上で、新たなＶＭを稼働させることを「以下物理サーバ上で稼働するＶＭゲストと称し、かつ、ＶＭゲストを物理マシン上で稼働させる設定を行うことを「ＶＭゲストを生成すると称する」）には、新たに稼働させるＶＭゲストを稼働させるためのプログラム等のデータなどを格納する記憶領域を設定する。上記したような物理サーバとストレージとを組み合わせたシステムにおいて、ＶＭゲストの記憶領域は、ストレージシステム内の共有ディスクの何れかに設定する。また、この際、過去に生成したＶＭゲストにおける各種設定を元にして新たなＶＭゲストを生成することが行われる。
【０００４】
この時、新たなＶＭゲスト用のデータを配置する共有ディスクは、空き容量やディスクＩ／Ｏの負荷状況を基に、システムの管理者に決定される。
【０００５】
ＶＭゲストを生成する方法としては、事前に生成してあるＶＭゲストのバックアップファイルであるＶＭゲストイメージを用いる方法と、ＶＭゲストイメージを用いずにユーザが全てのスペック情報を設定する方法とがある。また、事前に生成済みの同一のＶＭゲストイメージを基にした複数のＶＭゲストのディスクＩ／Ｏの負荷の情報を保存しておき、該保存されている負荷の情報を基に、新たに生成するＶＭのディスクＩ／Ｏの負荷を予測することも行われている。
【０００６】
即ち、システムの管理者は、ストレージシステム内の各共有ディスクにおけるディスクＩ／Ｏの負荷状況と、新たに生成するＶＭによるディスクＩ／Ｏの負荷の予測値を参考にして、生成するＶＭゲストのデータを格納する領域が設定される。
【０００７】
先行技術文献としては、下記のものがある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−５０３０３号公報
【特許文献２】特開２００７−１６４３０４号公報
【特許文献３】特開２００７−３２３２４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
事前に生成済みの同一のＶＭゲストイメージを基にした複数のＶＭゲストのディスクＩ／Ｏの負荷の情報を保存し、該保存した負荷の情報を基に、新たに生成するＶＭゲストのディスクＩ／Ｏの負荷を予測する場合、以下の課題がある。即ち、新たに生成されるＶＭゲストは、過去と同じ仕様のＶＭゲストを生成しても、ＶＭゲストを動作させるユーザの処理によって、ディスクＩ／Ｏの負荷が変わってしまうことがある。これに対応するため、過去複数回生成したＶＭゲストのディスクＩ／Ｏ負荷の平均を取ることも考えられる。しかしながら、過去に生成したＶＭのディスクＩ／Ｏの負荷が各々で大きく異なっている場合（以下、この場合を「ばらつきが大きい」と称する。）、過去のＶＭゲストのディスクＩ／Ｏ負荷の平均と、実際に生成したＶＭゲストのディスクＩ／Ｏ負荷が大きく異なることがある。
【００１０】
１つの側面では、本発明は、ディスクＩ／Ｏの負荷のばらつきが大きいＶＭゲストの配置先の適正化を図ることのできる管理サーバを提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、複数のディスク装置を備えたストレージ装置と、前記ディスク装置を用いて仮想マシンを構成するためのプログラムを実行するサーバ装置とを有する情報処理システムを管理する管理装置の制御プログラムは、前記管理装置に、前記サーバ装置に所定の仮想マシンを実行させるためのプログラムに基づいて、過去に構成された複数の仮想マシンに関するプログラムがそれぞれ割り当てられたディスク装置に対するアクセス頻度を取得し、前記取得した複数の仮想マシンのアクセス頻度のばらつき度合いを示す分散値を算出し、前記分散値が所定値以上の場合、前記新たな仮想マシンを構成するためのプログラムを割り当てるディスク装置を前記ディスク装置の空き容量に基づいて決定し、前記新たな仮想マシンを構成するためのプログラムを前記決定したディスク装置に割り当てる処理を実行させる。
【発明の効果】
【００１２】
１実施形態によれば、ディスクＩ／Ｏの負荷のばらつきが大きいＶＭゲストの配置先の適正化を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】情報処理システムを示す図（その１）である。
【図２】ＶＭホストを示す図である。
【図３】管理サーバを示す図である。
【図４】情報処理システムを示す図（その２）である。
【図５】テーブルを示す図である。
【図６】テーブル更新処理を示すフローチャートである。
【図７】ＶＭゲストの生成処理を示すフローチャートである。
【図８】配置ディスク決定処理を示すフローチャート（その１）である。
【図９】配置ディスク決定処理を示すフローチャート（その２）である。
【図１０】共有ディスクの状態を示す図（その１）である。
【図１１】共有ディスクの状態を示す図（その２）である。
【図１２】共有ディスクの状態を示す図（その３）である。
【発明を実施するための形態】
【００１４】
以下、本実施形態における情報処理システムについて説明する。
【００１５】
図１は、本実施形態における情報処理システムを示す図である。情報処理システムは、複数のＶＭホスト１００、ネットワーク２００、管理サーバ３００及びストレージ装置４００を有する。複数のＶＭホスト１００、管理サーバ３００及びストレージ装置４００は、ネットワーク２００によって互いに接続される。ＶＭホスト１００は、ＶＭゲストを実行する。管理サーバ３００は、ＶＭホスト１００及びストレージ装置４００の管理を行う。ストレージ装置４００は、複数の共有ディスクを有し、データを格納する。
【００１６】
図２は、本実施形態におけるＶＭホストを示す図である。ＶＭホスト１００は、ＣＰＵ２０１、主記憶装置２０２、システムコントローラ２０３、バス２０４、ネットワークコントローラ２０７、電源２０９、ディスクコントローラ２１２及びハードディスク２１３を有する。ＶＭホスト１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１によって制御されている。
【００１７】
ＣＰＵ２０１及び主記憶装置２０２には、システムコントローラ２０３が接続されている。システムコントローラ２０３は、ＣＰＵ２０１と主記憶装置２０２との間のデータ転送や、ＣＰＵ２０１とバス２０４との間のデータ転送を制御する。さらに、システムコントローラ２０３には、バス２０４を介して、ネットワークコントローラ２０７及びディスクコントローラ２１２が接続されている。
【００１８】
主記憶装置２０２には、ＣＰＵ２０１に実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置２０２には、ＣＰＵ２０１による処理に必要な各種データが格納される。主記憶装置２０２には、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられる。
【００１９】
ディスクコントローラ２１２には、ハードディスク２１３が接続されている。ディスクコントローラ２１２は、ハードディスク２１３を制御する。
【００２０】
ハードディスク２１３は、ＣＰＵ２０１が主記憶装置２０２上でＶＭゲストを実行するためのＶＭゲストイメージ３１００、ＣＰＵ２０１に当該ＶＭゲストイメージ３１００の呼び出しなどの制御を行わせる制御プログラム２０００及び各種データを格納する。また、ハードディスク２１３は、ＣＰＵ２０１が主記憶装置２０２上で過去に実行したＶＭゲストに対応するＶＭゲストイメージも格納する。ＶＭゲストイメージ３１００とは、インストールデータをバックアップしたプログラムである。ＶＭゲストイメージ３１００はＣＰＵの個数、メモリ容量やＯＳやアプリケーション等のディスクのデータを有している。ＣＰＵ２０１は、これらデータをストレージ装置４００が有する共有ディスクの格納領域に割り当てることで、ＶＭゲストを構成する。ＣＰＵ２０１は、過去に実行したＶＭゲストに対応するＶＭゲストイメージに基づいて、新たにＶＭゲストを構成することができる。
【００２１】
ネットワークコントローラ２０７は、図１に示したＶＭホスト１００、情報処理装置２００及びストレージ装置４００と接続されており、ＶＭホスト１００、情報処理装置２００及びストレージ装置４００との間で、データの送受信を行う。電源２０９は、不図示の電源線を介してＶＭホスト１００内の各ハードウェアに対して電力を供給する。
【００２２】
このようなハードウェアによって、ＶＭホスト１００の処理機能を実現することができる。
【００２３】
図３は、本実施形態における管理サーバを示す図である。管理サーバ３００は、ＣＰＵ２２１、主記憶装置２２２、システムコントローラ２２３、バス２２４、ネットワークコントローラ２２７、電源２２９、ディスクコントローラ２３２及びハードディスク２３３を有する。管理サーバ３００は、ＣＰＵ２２１によって制御されている。
【００２４】
ＣＰＵ２２１及び主記憶装置２２２には、システムコントローラ２２３が接続されている。システムコントローラ２２３は、ＣＰＵ２２１と主記憶装置２２２との間のデータ転送や、ＣＰＵ２２１とバス２２４との間のデータ転送を制御する。さらに、システムコントローラ２２３には、バス２２４を介して、ネットワークコントローラ２２７及びディスクコントローラ２３２が接続されている。
【００２５】
主記憶装置２２２には、ＣＰＵ２２１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、主記憶装置２２２には、ＣＰＵ２２１による処理に必要な各種データが格納される。主記憶装置２２２には、例えば、ＲＡＭが用いられる。
【００２６】
ディスクコントローラ２３２には、ハードディスク２３３が接続されている。ディスクコントローラ２３２は、ハードディスク２３３を制御する。
【００２７】
ハードディスク２３３は、ＣＰＵ２２１が主記憶装置２２２上で実行するアプリケーションプログラム１０００、ＣＰＵ２２１に当該アプリケーションプログラム１０００の呼び出しなどの制御を行わせる制御プログラム４０００及び各種データを格納する。また、ハードディスク２３３は、テーブル５００を格納する。なお、テーブル５００については後述する。
【００２８】
ネットワークコントローラ２２７は、図１に示したＶＭホスト１００及びストレージ装置４００と接続されており、ＶＭホスト１００及びストレージ装置４００との間で、データの送受信を行う。電源２２９は、不図示の電源線を介して管理サーバ３００内の各ハードウェアに対して電力を供給する。
【００２９】
このようなハードウェアによって、管理サーバ３００の処理機能を実現することができる。
【００３０】
図４に図１において示した本実施形態における情報処理システムを示す。ＶＭホスト１００のＣＰＵ２０１が、主記憶装置２０２にて制御プログラム２０００を実行することで、ＶＭホスト１００にて、ＶＭゲストが実行される。ＶＭホスト１００それぞれにおいて、例えば、「ＶＭＡ」１１０、「ＶＭＢ」１２０及び「ＶＭＣ」１３０が実行される。
【００３１】
ストレージ装置４００は、例えば、記憶領域である「共有ディスク０」４１０、「共有ディスク１」４２０及び「共有ディスク２」４３０を有する。「共有ディスク０」４１０乃至「共有ディスク２」４３０はデータを記憶する。「共有ディスク０」４１０は「ＶＭＡ」１１０に関するデータが、「共有ディスク１」４２０は「ＶＭＢ」１２０に関するデータが、「共有ディスク２」４３０は「ＶＭＣ」１３０に関するデータが、それぞれ割り当てられている。
【００３２】
図５は、テーブル５００を示す。テーブル５００は、ＩＤ５０２と、イメージ５０４と、ゲスト５０６と、共有ディスク５０８と、Ｉ／Ｏ５１０とを対応付けて有する。ＩＤ５０２は、ＶＭゲストを識別する情報である。イメージ５０４は、ＶＭゲストを生成する際に基にするＶＭゲストイメージの名称を示す。ゲスト５０６は、対応するＶＭゲストイメージから生成したＶＭゲストの名称を示す。共有ディスク５０８は、生成したＶＭゲストを割り当てた共有ディスクの名称を示す。Ｉ／Ｏ５１０は、対応する共有ディスクへのＶＭホストからの単位時間当たりのアクセス数を示す。
【００３３】
管理サーバ３００は、ＶＭホスト１００が実行するＶＭゲストからＩＤ５０２と、イメージ５０４と及びゲスト５０６を取得し、テーブル５００に書き込む。また、管理サーバ３００は、ストレージ装置４００からＶＭホスト１００が生成したＶＭゲストが割り当てられた共有ディスクの名称を取得し、テーブル５００に書き込む。さらに、管理サーバ３００は、ＶＭホスト１００が生成したＶＭゲストが割り当てられた共有ディスクのディスクＩ／Ｏを取得し、テーブル５００に書き込む。
【００３４】
図６は、テーブルの更新処理を示すフローチャートである。
【００３５】
Ｓ１０１において、管理サーバ３００のＣＰＵ２２１は、共有ディスクに割り当てられたあるＶＭゲストに対してディスクＩ／Ｏを要求する。管理サーバ３００のＣＰＵ２２１は、処理をＳ１０２へ移行する。
【００３６】
Ｓ１０２において、管理サーバ３００のＣＰＵ２２１は、共有ディスクに割り当てられたディスクＩ／Ｏを要求したＶＭゲストからディスクＩ／Ｏを取得する。管理サーバ３００のＣＰＵ２２１は、処理をＳ１０３へ移行する。
【００３７】
Ｓ１０３において、管理サーバ３００のＣＰＵ２２１は、取得したディスクＩ／Ｏをテーブル５００に書き込む。管理サーバ３００のＣＰＵ２２１は、処理をＳ１０４へ移行する。
【００３８】
Ｓ１０４において、管理サーバ３００のＣＰＵ２２１は、全てのＶＭゲストに対して、ディスクＩ／Ｏの要求処理を実施したか否かを判定する。全てのＶＭゲストに対して、ディスクＩ／Ｏの要求処理を実施した場合、管理サーバ３００のＣＰＵ２２１は、処理を終了する。一方、全てのＶＭゲストに対して、ディスクＩ／Ｏの要求処理を実施していない場合、管理サーバ３００のＣＰＵ２２１は、処理をＳ１０１に戻す。
【００３９】
図７は、ＶＭゲストの生成処理を示すフローチャートである。
【００４０】
Ｓ２０１において、管理サーバ３００のＣＰＵ２２１は、新たに生成するＶＭゲストの基になるＶＭゲストイメージが指定されているか否かを判定する。新たに生成するＶＭゲストの基になるＶＭゲストイメージが指定されている場合、管理サーバ３００のＣＰＵ２２１は、処理をＳ２０２へ移行する。一方、新たに生成するＶＭゲストの基になるＶＭゲストイメージが指定されていない場合、管理サーバ３００のＣＰＵ２２１は、処理をＳ２０５へ移行する。
【００４１】
Ｓ２０２において、管理サーバ３００のＣＰＵ２２１は、テーブル５００を参照して指定されたＶＭゲストイメージに基づいて過去に生成したＶＭゲストのディスクＩ／Ｏのばらつき度合いを示す分散値を算出する。管理サーバ３００のＣＰＵ２２１は、処理をＳ２０３へ移行する。
【００４２】
Ｓ２０３において、管理サーバ３００のＣＰＵ２２１は、Ｓ２０２において算出した分散値が基準値以上であるか否かを判定する。Ｓ２０２において算出した分散値が基準値以上である場合、管理サーバ３００のＣＰＵ２２１は、処理をＳ２０４へ移行する。一方、Ｓ２０２において算出した分散値が基準値未満である場合、管理サーバ３００のＣＰＵ２２１は、処理をＳ２０５へ移行する。生成するＶＭゲストはＶＭゲストイメージの指定がある場合、ディスクＩ／Ｏのばらつきが大きい場合と小さい場合とがある。同一のＶＭゲストイメージを基にＶＭゲストを生成しても、当該生成したＶＭゲストが例えば、アプリサーバに使用されたり、ＤＢサーバに使用されたりと用途が異なることで、共有ディスクのディスクＩ／Ｏにばらつきが生じる。
【００４３】
Ｓ２０４において、管理サーバ３００のＣＰＵ２２１は、テーブル５００を参照して、基にするＶＭゲストのディスクＩ／Ｏから新たに生成するＶＭゲストのディスクＩ／Ｏを見積もり、新たに生成するＶＭゲストを割り当てる共有ディスクを決定する。管理サーバ３００のＣＰＵ２２１は、処理をＳ２０６へ移行する。Ｓ２０２において算出した分散値が基準値未満の場合、指定されたＶＭゲストイメージに基づいて新たに生成するＶＭゲストのディスクＩ／Ｏのばらつきは小さく、新たに生成するＶＭゲストのディスクＩ／Ｏを予想することができる。そのため、管理サーバ３００のＣＰＵ２２１は、新たに生成するＶＭゲストのディスクＩ／Ｏの予想値に基づいて、ディスクＩ／Ｏを平準化するように共有ディスクに新たに生成するＶＭゲストを割り当てる。
【００４４】
Ｓ２０５において、管理サーバ３００のＣＰＵ２２１は、共有ディスクの状態により、新たに生成するＶＭゲストに関するプログラムを割り当てる共有ディスクを決定する。管理サーバ３００のＣＰＵ２２１は、処理をＳ２０６へ移行する。Ｓ２０２において算出した分散値が基準値以上の場合、指定されたＶＭゲストイメージに基づいて新たに生成するＶＭゲストのディスクＩ／Ｏのばらつきは大きく、新たに生成するＶＭゲストのディスクＩ／Ｏを予想することができない。そのため、管理サーバ３００のＣＰＵ２２１は、共有ディスクに空き領域があれば、ＶＭゲストを稼働させる処理能力に余裕があるものとして、新たに生成するＶＭゲストに関するプログラムを残り容量の大きい共有ディスクに割り当てる。また、Ｓ２０５において、新たに生成するＶＭゲストの基になるＶＭゲストイメージが指定されていない場合、新たに生成するＶＭゲストに関するプログラムを残り容量の大きい共有ディスクに割り当てる。
【００４５】
Ｓ２０６において、ＶＭホスト１００のＣＰＵ２０１は、ＶＭゲストを生成し、生成したＶＭゲストに関する所定のデータをＳ２０４またはＳ２０５において決定した共有ディスクに割り当てる。ＶＭホスト１００のＣＰＵ２０１は、ＶＭゲストイメージ指定がある場合、ユーザによって指定されたＶＭゲストイメージに基づいてＶＭゲストを生成する。ユーザは、新たに生成するＶＭゲストとハードウェアスペックが似ているＶＭゲストイメージを指定すれば良い。また、ＶＭホスト１００のＣＰＵ２０１は、ＶＭゲストイメージ指定がない場合、ユーザによって指定されるＣＰＵの個数、メモリの個数及びハードディスクの個数等のハードウェアスペックに基づいてＶＭゲストを生成する。ＶＭホスト１００のＣＰＵ２０１は、処理を終了する。
【００４６】
図８は、図７におけるＳ２０４の配置ディスク決定処理を示すフローチャートである。
【００４７】
Ｓ３０１において、管理サーバ３００のＣＰＵ２２１は、指定されたＶＭゲストに関するデータが割り当てられている共有ディスクのディスクＩ／Ｏの平均値を算出する。管理サーバ３００のＣＰＵ２２１は、処理をＳ３０２へ移行する。
【００４８】
Ｓ３０２において、管理サーバ３００のＣＰＵ２２１は、全体のディスクＩ／Ｏの平均値を算出する。管理サーバ３００のＣＰＵ２２１は、処理をＳ３０３へ移行する。
【００４９】
Ｓ３０３において、管理サーバ３００のＣＰＵ２２１は、共有ディスクの容量の平均値を算出する。管理サーバ３００のＣＰＵ２２１は、処理をＳ３０４へ移行する。
【００５０】
Ｓ３０４において、管理サーバ３００のＣＰＵ２２１は、１ディスクあたりのディスクＩ／Ｏ目標値を算出する。管理サーバ３００のＣＰＵ２２１は、処理をＳ３０５へ移行する。
【００５１】
Ｓ３０５において、管理サーバ３００のＣＰＵ２２１は、共有ディスクのディスクＩ／Ｏの平均値を算出する。管理サーバ３００のＣＰＵ２２１は、処理をＳ３０６へ移行する。
【００５２】
Ｓ３０６において、管理サーバ３００のＣＰＵ２２１は、指定されたＶＭゲストを生成した場合の平均値を算出する。管理サーバ３００のＣＰＵ２２１は、処理をＳ３０７へ移行する。
【００５３】
Ｓ３０７において、管理サーバ３００のＣＰＵ２２１は、ディスクＩ／Ｏを共有ディスクの容量で割り、単位サイズあたりの目標値を算出する。管理サーバ３００のＣＰＵ２２１は、処理をＳ３０８へ移行する。
【００５４】
Ｓ３０８において、管理サーバ３００のＣＰＵ２２１は、全ての共有ディスクに対して処理を実施したか否かを判定する。全ての共有ディスクに対して処理を実施した場合、管理サーバ３００のＣＰＵ２２１は、処理をＳ３０９へ移行する。一方、全ての共有ディスクに対して処理を実施していない場合、管理サーバ３００のＣＰＵ２２１は、処理をＳ３０５へ戻す。
【００５５】
Ｓ３０９において、管理サーバ３００のＣＰＵ２２１は、目標値と平均値との差分の割合が少ない共有ディスクを選択する。管理サーバ３００のＣＰＵ２２１は、処理を終了する。
【００５６】
図９は、図７におけるＳ２０５の配置ディスク決定処理を示すフローチャートである。
【００５７】
Ｓ４０１において、管理サーバ３００のＣＰＵ２２１は、共有ディスクに占めるＶＭゲストに関するデータの割合を算出する。管理サーバ３００のＣＰＵ２２１は、処理をＳ４０２へ移行する。
【００５８】
Ｓ４０２において、管理サーバ３００のＣＰＵ２２１は、共有ディスクの現在の使用割合を算出する。管理サーバ３００のＣＰＵ２２１は、処理をＳ４０３へ移行する。
【００５９】
Ｓ４０３において、管理サーバ３００のＣＰＵ２２１は、Ｓ４０１及びＳ４０２において算出した値の和が最も小さい共有ディスクを選択する。管理サーバ３００のＣＰＵ２２１は、処理を終了する。
【００６０】
続いて、図１０乃至図１２を用いて、ディスクＩ／Ｏを予測できない場合に、共有ディスクの残り容量に基づいてＶＭゲストイメージに関するデータを配置する方法について説明する。
【００６１】
図１０は、共有ディスクの状態を示す図である。図１０の上段に示すように、共有ディスクＡのディスクＩ／Ｏは２００、共有ディスクＢのディスクＩ／Ｏは１００であるとし、共有ディスクＡにはＶＭ１に関するデータが、共有ディスクＢにはＶＭ２に関するデータ及びＶＭ３に関するデータが割り当てられているとする。また、ＶＭ１に関するデータが割り当てられている共有ディスクＡの残り容量の方が、ＶＭ２に関するデータ及びＶＭ３に関するデータが割り当てられている共有ディスクＢの残り容量よりも大きいとする。なお、ＶＭ１、ＶＭ２及びＶＭ３は同一のあるＶＭゲストイメージから生成されたＶＭゲストである。ここで、同一のあるＶＭゲストイメージから新たにＶＭ４を生成したとする。
【００６２】
図１０の中段に示すように、ＶＭ１乃至ＶＭ４はばらつきがあるＶＭゲストイメージから生成しているので、新たに生成されたＶＭ４に関するデータは、残り容量が大きい共有ディスクＡに割り当てられる。ばらつきがあるＶＭから生成されたＶＭ４に関するデータはディスクＩ／Ｏ及びデータ量にもばらつきがあるため、共有ディスクＡに割り当てるまで、実際のディスクＩ／Ｏ及びデータ量が分からない。ここで、ＶＭ４に関するデータを実際に共有ディスクＡに割り当てることで、共有ディスクＡのディスクＩ／Ｏは２５０になったとする。この時、共有ディスクＢには、ＶＭ４を格納する空き容量があるとする。
【００６３】
図１０の下段に示すように、ＶＭ４に関するデータを一旦共有ディスクＡに割り当ててから、共有ディスクＢに再度割り当てることで、共有ディスクＡと共有ディスクＢのディスクＩ／Ｏを平準化する。
【００６４】
図１１は、共有ディスクの状態を示す図である。図１１の上段に示すように、共有ディスクＡのディスクＩ／Ｏは２００、共有ディスクＢのディスクＩ／Ｏは１００であるとし、共有ディスクＡにはＶＭ１に関するデータが、共有ディスクＢにはＶＭ２に関するデータ及びＶＭ３に関するデータが割り当てられているとする。また、ＶＭ１に関するデータが割り当てられている共有ディスクＡの残り容量の方が、ＶＭ２に関するデータ及びＶＭ３に関するデータが割り当てられている共有ディスクＢの残り容量よりも大きいとする。なお、ＶＭ１、ＶＭ２及びＶＭ３は同一のあるＶＭゲストイメージから生成されたＶＭゲストである。ここで、同一のあるＶＭゲストイメージから新たにＶＭ４を生成したとする。
【００６５】
図１１の中段に示すように、ＶＭ１乃至ＶＭ４はばらつきがあるＶＭゲストイメージから生成しているので、新たに生成されたＶＭ４に関するデータは、残り容量が大きい共有ディスクＡに割り当てられる。ばらつきがあるＶＭから生成されたＶＭ４に関するデータはディスクＩ／Ｏ及びデータ量にもばらつきがあるため、共有ディスクＡに割り当てるまで、実際のディスクＩ／Ｏ及びデータ量が分からない。ここで、ＶＭ４に関するデータを実際に共有ディスクＡに割り当てることで、共有ディスクＡのディスクＩ／Ｏは３５０になったとする。この時、共有ディスクＢには、ＶＭ４を格納する空き容量がないとする。
【００６６】
図１１の下段に示すように、ＶＭ４に関するデータを共有ディスクＡに割り当てることで、共有ディスクＢの残り容量を確保しておき、また新たに生成するＶＭを共有ディスクＢに割り当てることで、共有ディスクＡと共有ディスクＢのディスクＩ／Ｏを平準化する。
【００６７】
図１２は、共有ディスクの状態を示す図である。図１２の上段に示すように、共有ディスクＡのディスクＩ／Ｏは２００、共有ディスクＢのディスクＩ／Ｏは１００であるとし、共有ディスクＡにはＶＭ５に関するデータが、共有ディスクＢにはＶＭ２に関するデータ及びＶＭ３に関するデータが割り当てられているとする。また、ＶＭ５に関するデータが割り当てられている共有ディスクＡの残り容量の方が、ＶＭ２に関するデータ及びＶＭ３に関するデータが割り当てられている共有ディスクＢの残り容量よりも大きいとする。なお、ＶＭ５、ＶＭ２及びＶＭ３は同一のあるＶＭから生成されたＶＭでゲストある。ここで、同一のあるＶＭゲストイメージから新たにＶＭ４を生成したとする。
【００６８】
図１２の中段に示すように、ＶＭ２乃至ＶＭ５はばらつきがあるＶＭゲストイメージから生成しているので、新たに生成されたＶＭ４に関するデータは、残り容量が大きい共有ディスクＡに割り当てられる。ばらつきがあるＶＭから生成されたＶＭ４に関するデータはディスクＩ／Ｏ及びデータ量にもばらつきがあるため、共有ディスクＡに割り当てるまで、実際のディスクＩ／Ｏ及びデータ量が分からない。ここで、ＶＭ４に関するデータを実際に共有ディスクＡに割り当てることで、共有ディスクＡのディスクＩ／Ｏは３５０になったとする。この時、共有ディスクＢには、ＶＭ４に関するデータを格納する空き容量があるとする。さらに、ＶＭ４に関するデータを共有ディスクＢに割り当てると、共有ディスクＢにさらに新たなＶＭを割り当てる空き容量を確保できないとする。
【００６９】
図１２の下段に示すように、ＶＭ４に関するデータを一旦共有ディスクＡに割り当ててから、共有ディスクＢに再度割り当てることで、共有ディスクＡと共有ディスクＢのディスクＩ／Ｏを平準化する。共有ディスクＡのディスクＩ／Ｏを小さく、かつ空き容量を十分に確保しておくことで、また新たに生成するＶＭを共有ディスクＢに割り当てることで、共有ディスクＡと共有ディスクＢのディスクＩ／Ｏを平準化する。
【００７０】
以上、本発明の例示的な実施の形態の情報処理システムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００７１】
１００  ＶＭホスト
１１０、１２０、１３０  ＶＭゲスト
２００  ネットワーク
２０１、２２１  ＣＰＵ
２０２、２２２  主記憶装置
２０３、２２３  システムコントローラ
２０４、２２４  バス
２０７、２２７  ネットワークコントローラ
２０９、２２９  電源
２１２、２３２  ディスクコントローラ
２１３、２３３  ハードディスク
３００  管理サーバ
４００  ストレージ装置
４１０、４２０、４３０  共有ディスク
５００  テーブル
５０２  ＩＤ
５０４  イメージ
５０６  ゲスト
５０８  共有ディスク
５１０  ディスクＩ／Ｏ
１０００  アプリケーションプログラム
２０００、４０００  制御プログラム
３１００  ＶＭゲストイメージ
【図１】
0005910215.tif 000002
【図２】
0005910215.tif 000003
【図３】
0005910215.tif 000004
【図４】
0005910215.tif 000005
【図５】
0005910215.tif 000006
【図６】
0005910215.tif 000007
【図７】
0005910215.tif 000008
【図８】
0005910215.tif 000009
【図９】
0005910215.tif 000010
【図１０】
0005910215.tif 000011
【図１１】
0005910215.tif 000012
【図１２】
0005910215.tif 000013