(57)【要約】  新たな仮想マシン（２０ｂ）を作成する際に、前記新たな仮想マシン（２０ｂ）の基となったマスタ情報から作成された既存の仮想マシン（２０ａ）に割り当てられた既存の仮想ディスク（６ａ）へのアクセス頻度に基づき前記新たな仮想マシン（２０ｂ）に割り当てられる新たな仮想ディスク（６ｂ）へのアクセス頻度を推定する推定部（１３ｂ）と、推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスク（４０）の連続した複数の割当単位領域を前記新たな仮想ディスク（６ｂ）のために仮予約する仮予約部（１３ｃ）と、を有する。
2014002162.tif 000002
【特許請求の範囲】
【請求項１】
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定する推定部と、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する仮予約部と、
を有することを特徴とする、ストレージ制御装置。
【請求項２】
前記仮予約部は、前記既存の仮想ディスクの使用量に基づき前記新たな仮想ディスクに割り当てる仮予約実施量を決定し、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域を前記仮予約実施量の分だけ仮予約することを特徴とする、請求項１記載のストレージ制御装置。
【請求項３】
前記仮予約部は、前記新たな仮想ディスクが属する仮想ストレージの未使用量が第２の閾値よりも少ない場合には、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域の仮予約を抑止することを特徴とする、請求項１又は請求項２記載のストレージ制御装置。
【請求項４】
前記仮想ストレージの未使用量が第３の閾値よりも少ない場合に、前記仮想ストレージに属する仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記仮想ストレージに属する仮想ディスクのうちの、前記既存の仮想ディスクへのアクセス頻度が小さい仮想ディスクに対して仮予約された複数の割当単位領域の少なくとも一部を取り消す取消部をさらに有することを特徴とする、請求項３記載のストレージ制御装置。
【請求項５】
前記仮想ディスクごとに、前記既存の仮想ディスクへのアクセス頻度を格納する仮想ディスク管理テーブルを保持する保持部をさらにそなえ、
前記既存の仮想ディスクへのアクセス頻度は、所定期間ごとのアクセス回数と平均データ転送量とを含むことを特徴とする、請求項１〜４のいずれか１項記載のストレージ制御装置。
【請求項６】
前記既存の仮想マシンによる既存の仮想ディスクへのアクセスを実行するとともに、アクセスの履歴を出力する履歴出力部をさらに有し、
前記保持部において、前記アクセスの履歴に基づく前記既存の仮想ディスクへのアクセス頻度が前記仮想ディスク管理テーブルに格納されることを特徴とする、請求項５記載のストレージ制御装置。
【請求項７】
仮想マシンを実行するサーバ装置と、
少なくとも１つの物理ディスクを有する物理ストレージ装置と、
前記サーバ装置及び前記物理ストレージ装置の制御を行なうストレージ制御装置と、をそなえた情報処理装置であって、
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定する推定部と、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する仮予約部と、
前記新たな仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記新たな仮想ディスクのアクセス領域を前記仮予約部により仮予約された前記連続した複数の割当単位領域の少なくとも一部に割り当てる割当部と、
を有することを特徴とする、情報処理装置。
【請求項８】
前記仮予約部は、前記既存の仮想ディスクの使用量に基づき前記新たな仮想ディスクに割り当てる仮予約実施量を決定し、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域を前記仮予約実施量の分だけ仮予約することを特徴とする、請求項７記載の情報処理装置。
【請求項９】
前記仮予約部は、前記新たな仮想ディスクが属する仮想ストレージの未使用量が第２の閾値よりも少ない場合には、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域の仮予約を抑止することを特徴とする、請求項７又は請求項８記載の情報処理装置。
【請求項１０】
前記仮想ストレージの未使用量が第３の閾値よりも少ない場合に、前記仮想ストレージに属する仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記仮想ストレージに属する仮想ディスクのうちの、前記既存の仮想ディスクへのアクセス頻度が小さい仮想ディスクに対して仮予約された複数の割当単位領域の少なくとも一部を取り消す取消部をさらに有することを特徴とする、請求項９記載の情報処理装置。
【請求項１１】
前記割当部は、前記仮想ストレージに属する前記アクセスが発生した仮想ディスクのアクセス領域を、前記取消部によって取り消された前記複数の割当単位領域の少なくとも一部に割り当てることを特徴とする、請求項１０記載の情報処理装置。
【請求項１２】
前記仮想ディスクごとに、前記既存の仮想ディスクへのアクセス頻度を格納する仮想ディスク管理テーブルを保持する保持部をさらにそなえ、
前記既存の仮想ディスクへのアクセス頻度は、所定期間ごとのアクセス回数と平均データ転送量とを含むことを特徴とする、請求項７〜１１のいずれか１項記載の情報処理装置。
【請求項１３】
前記既存の仮想マシンによる既存の仮想ディスクへのアクセスを実行するとともに、アクセスの履歴を出力する履歴出力部をさらに有し、
前記保持部において、前記アクセスの履歴に基づく前記既存の仮想ディスクへのアクセス頻度が前記仮想ディスク管理テーブルに格納されることを特徴とする、請求項１２記載の情報処理装置。
【請求項１４】
仮想マシンに割り当てられた仮想ディスクと、物理ディスクの物理領域との管理を行なうコンピュータに実行させるストレージ制御プログラムであって、
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定し、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する、
処理を前記コンピュータに実行させることを特徴とする、ストレージ制御プログラム。
【請求項１５】
前記仮予約を行なう処理において、前記既存の仮想ディスクの使用量に基づき前記新たな仮想ディスクに割り当てる仮予約実施量を決定し、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域を前記仮予約実施量の分だけ仮予約する、処理を前記コンピュータに実行させることを特徴とする、請求項１４記載のストレージ制御プログラム。
【請求項１６】
前記仮予約を行なう処理において、前記新たな仮想ディスクが属する仮想ストレージの未使用量が第２の閾値よりも少ない場合には、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域の仮予約を抑止する、処理を前記コンピュータに実行させることを特徴とする、請求項１４又は請求項１５記載のストレージ制御プログラム。
【請求項１７】
前記仮想ストレージの未使用量が第３の閾値よりも少ない場合に、前記仮想ストレージに属する仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記仮想ストレージに属する仮想ディスクのうちの、前記既存の仮想ディスクへのアクセス頻度が小さい仮想ディスクに対して仮予約された複数の割当単位領域の少なくとも一部を取り消す、処理を前記コンピュータに実行させることを特徴とする、請求項１６記載のストレージ制御プログラム。
【請求項１８】
仮想マシンに割り当てられた仮想ディスクと、物理ディスクの物理領域との管理を行なうストレージ制御装置における、ストレージ制御方法であって、
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定し、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する、
ことを特徴とする、ストレージ制御方法。
【請求項１９】
前記仮予約を行なう処理において、前記既存の仮想ディスクの使用量に基づき前記新たな仮想ディスクに割り当てる仮予約実施量を決定し、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域を前記仮予約実施量の分だけ仮予約することを特徴とする、請求項１８記載のストレージ制御方法。
【請求項２０】
前記仮予約を行なう処理において、前記新たな仮想ディスクが属する仮想ストレージの未使用量が第２の閾値よりも少ない場合には、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域の仮予約を抑止することを特徴とする、請求項１８又は請求項１９記載のストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、情報処理装置、ストレージ制御プログラム、及びストレージ制御方法に関する。
【背景技術】
【０００２】
ストレージ装置においては、リソースを仮想化して物理的なディスク領域を効率的に利用する仮想化機能が用いられることがある。例えば仮想化機能として、シンプロビジョニング（Thin Provisioning）が知られている。
シンプロビジョニング方式は、仮想ディスクの領域を、例えば５１２ＫＢ等のブロックと呼ばれる領域で管理し、必要に応じて１ブロックずつ追加で物理ディスクに割り当てを行なう。シンプロビジョニング方式は、ユーザが要求した容量（例えば１００ＧＢ）の仮想ディスクを作成した場合、作成と同時に物理的に１００ＧＢ分の全領域を割り当てることはせず、実際にデータが書き込まれる容量に応じて、物理ディスクにブロック単位で動的に仮想領域を割り当てる。【０００３】
なお、関連する技術として、シンプロビジョニング技術を適用した際に、論理ディスクに設定した割り当てポリシーが速度重視か容量重視かに応じて、ストレージ装置がディスクプール領域を異なる割り当て単位で論理ディスクに割り当てる技術が知られている。この技術では、データの書き込み要求があるとＩ／Ｏパターンが判別され、割り当てポリシーが、Ｉ／Ｏパターンに応じて変更される。また、この技術では、定期的に割り当てポリシーに応じてデータ領域の再配置を行なう。例えば、割り当てポリシーが速度重視に設定されている場合、割り当てた領域に、元のデータをコピーし、コピー前のデータ領域を削除することで、不連続なデータ領域を連続なデータ領域とする。【０００４】
また、仮想エミュレータにおいて、１種類以上の仮想サーバの動作状況を保持する技術や、二次記憶装置に格納されたデータを連続・不連続にアクセスするアクセスパターンを解析して、将来アクセスされるデータを予測し、当該データを二次装置から主記憶装置へ先読みする技術も知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−８６４２０号公報
【特許文献２】特開２００１−１９５２７０号公報
【特許文献３】特開平９−１８５４６２号公報
【特許文献４】特開２００８−１８６１７２号公報
【特許文献５】特開平２−７７９４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
シンプロビジョニング方式では、物理ディスクを効率的に利用できる一方で、仮想ディスクに割り当てられる領域が物理ディスク上で分散して存在することになる。このため、シンプロビジョニング方式は、仮想ディスクの全容量をまとめて物理ディスクに割り当てるシックプロビジョニング（Thick Provisioning）方式に比べて、シーケンシャルＩ／Ｏ（Input / Output）性能が低下する場合がある。【０００７】
また、上述した関連する技術では、書き込み要求に応じて、Ｉ／Ｏパターンの判別や割り当てポリシーに応じたディスクプール領域の割り当てが行なわれるため、書き込み要求に係るデータがディスクプール領域に書き込まれるまでに時間がかかり、書き込み処理の性能が低下する場合がある。
１つの側面では、本発明は、仮想ディスクに対して物理ディスクの物理領域の割り当てを行なうストレージ制御装置において、仮想ディスクのアクセス性能の低下を抑止することを目的とする。
【課題を解決するための手段】
【０００８】
一態様のストレージ制御装置は、新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定する推定部と、推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する仮予約部と、を有する。【０００９】
また、一態様の情報処理装置は、仮想マシンを実行するサーバ装置と、少なくとも１つの物理ディスクを有する物理ストレージ装置と、前記サーバ装置及び前記物理ストレージ装置の制御を行なうストレージ制御装置と、をそなえた情報処理装置であって、新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定する推定部と、推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する仮予約部と、前記新たな仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記新たな仮想ディスクのアクセス領域を前記仮予約部により仮予約された前記連続した複数の割当単位領域の少なくとも一部に割り当てる割当部と、を有する。【００１０】
さらに、一態様のストレージ制御プログラムは、仮想マシンに割り当てられた仮想ディスクと、物理ディスクの物理領域との管理を行なうコンピュータに実行させるストレージ制御プログラムであって、新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定し、推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する、処理を前記コンピュータに実行させるものである。【００１１】
さらに、一態様のストレージ制御方法は、仮想マシンに割り当てられた仮想ディスクと、物理ディスクの物理領域との管理を行なうストレージ制御装置における、ストレージ制御方法であって、新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定し、推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する、ものである。
【発明の効果】
【００１２】
一実施形態によれば、仮想ディスクに対して物理ディスクの物理領域の割り当てを行なうストレージ制御装置において、仮想ディスクのアクセス性能の低下を抑止することができる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態に係る情報処理装置の機能構成例を示すブロック図である。
【図２】図１に示す物理ストレージ装置と、仮想ストレージの仮想ディスクとの関係の一例を示す図である。
【図３】図１に示すＤＢが格納する仮想ディスク管理テーブルの一例を示す図である。
【図４】図１に示すＤＢが格納するＶＭゲスト管理テーブルの一例を示す図である。
【図５】図１に示すＤＢが格納する仮想ストレージ管理テーブルの一例を示す図である。
【図６】図１に示すＤＢが格納する物理ディスク管理テーブルの一例を示す図である。
【図７】図１に示す物理ストレージ装置が格納する割当管理テーブルの一例を示す図である。
【図８】図１に示す情報処理装置のハードウェア構成例を示すブロック図である。
【図９】図１に示すストレージ制御装置におけるＶＭゲストの作成時の処理を説明する図である。
【図１０】図１に示すストレージ制御装置における仮予約処理の一例を説明するフローチャートである。
【図１１】図１に示すストレージ制御装置における仮予約処理の一例を説明するフローチャートである。
【図１２】図１に示すストレージ制御装置における仮予約処理の一例を説明するフローチャートである。
【図１３】図１に示すストレージ制御装置における仮予約ブロック使用時の処理の一例を説明するフローチャートである。
【図１４】図１に示すストレージ制御装置における仮予約の取り消し処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して実施の形態を説明する。
〔１〕一実施形態
〔１−１〕情報処理装置の説明
図１は、一実施形態に係る情報処理装置１の機能構成例を示すブロック図であり、図２は、図１に示す物理ストレージ装置４と、仮想ストレージ５の仮想ディスク６との関係の一例を示す図である。図１に示すように、情報処理装置１は、少なくとも１つ（例えば３つ）のサーバ２−１〜２−３，物理ストレージ装置４，及びストレージ制御装置１０を有している。
【００１５】
サーバ（サーバ装置）２−１〜２−３（以下、これらを区別しない場合には単にサーバ２という）はそれぞれ、ハイパバイザ等の仮想化ソフトウェア（図示省略）を実行し、仮想化ソフトウェア上で、少なくとも１つのＶＭ（Virtual Machine；仮想マシン）ゲストを実行する電子計算機である。ＶＭゲストは、サーバ２のリソースの一部を用いて動作する仮想マシンの一例である。また、ＶＭゲスト上では、ゲストＯＳ（Operating System）が実行される。なお、以下、仮想化ソフトウェアをＶＭホストという場合がある。
【００１６】
例えば、図１に示すサーバ２−１は、図示しないＶＭホスト上で、ＶＭゲスト２０ａを実行する。また、ＶＭゲスト２０ａ上ではゲストＯＳが動作する（図示省略）。なお、破線で示すＶＭゲスト２０ｂは、新規に作成されるＶＭゲストを表している。また、図示を省略しているが、図１に示すサーバ２−２，２−３も、サーバ２−１と同様に、それぞれＶＭホスト，及びゲストＯＳが動作するＶＭゲスト２０を実行可能である。以下、ＶＭゲスト２０ａ，２０ｂ及びサーバ２−２，２−３上で実行されるＶＭゲストを区別しない場合には単にＶＭゲスト２０という。
【００１７】
各サーバ２又は後述する管理サーバ３（図７参照）は、ユーザや管理者等からの指示に応じて、所定のサーバ２のＶＭホスト上に、新たにＶＭゲスト２０の作成（配備）を行なうことができる。また、当該サーバ２又は管理サーバ３は、ＶＭゲスト２０を作成する際に、クローニングマスタイメージ等のマスタ情報に基づきゲストＯＳを作成することができる。なお、クローニングマスタイメージとは、ゲストＯＳの基となるイメージデータであり、ゲストＯＳの機能や役割或いはユーザ等に応じてサーバ２又は管理サーバ３の記憶装置に予め複数種類のクローニングマスタイメージが用意される。サーバ２又は管理サーバ３は、複数種類のクローニングマスタイメージの中から、作成するＶＭゲスト２０（ＶＭゲスト２０上で動作するゲストＯＳ）に対応するクローニングマスタイメージを複製（クローニング）してゲストＯＳを作成する。
【００１８】
また、各ＶＭゲスト２０には、それぞれ少なくとも１つの仮想ディスクが割り当てられる。例えば、ＶＭゲスト２０ａには仮想ディスク６ａが割り当てられ、ＶＭゲスト２０ｂには仮想ディスク６ｂが割り当てられる。なお、仮想ディスク６ａ，６ｂは、それぞれ物理ストレージ装置４の物理ディスク４０−１〜４０−３のうちの所定の物理領域に割り当てられる。
【００１９】
ここで、本実施形態の一例としての情報処理装置１は、シンプロビジョニング方式を採用する。以下、図２を参照して、シンプロビジョニング方式における物理ディスク４０−１〜４０−ｍと仮想ディスク６−１〜６−ｎとの関係を説明する。
図２に示すように、物理ストレージ装置４は、少なくとも１つ（例えばｍ個）の物理ディスク４０−１〜４０−ｍ（以下、これらを区別しない場合には単に物理ディスク４０という）を有する。なお、図１には、物理ストレージ装置４が、これらの物理ディスク４０のうちの３つの物理ディスク４０−１〜４０−３を有する例を示している。
【００２０】
物理ディスク４０は、ＨＤＤ（Hard Disk Drive）等の磁気ディスク装置やＳＳＤ（Solid State Drive）等の半導体ドライブ装置等の各種デバイスであり、種々のデータやプログラム等を格納するハードウェアである。
仮想ストレージ５−１〜５−ｉ（以下、これらを区別しない場合には単に仮想ストレージ５という）には、それぞれ少なくとも１つの物理ディスク４０が割り当てられ、割り当てられた物理領域の総容量が仮想ストレージ５の容量として管理される（図５参照）。
【００２１】
仮想ディスク６−１〜６−ｎ（以下、これらを区別しない場合には単に仮想ディスク６という）は、仮想ディスク６が属する仮想ストレージ５の容量を割り当てられて作成される論理ディスクである（図３参照）。これらの仮想ディスク６は、ＶＭゲスト２０が作成される際や、既存のＶＭゲスト２０が追加の仮想ディスク６を要求する際等に、仮想ストレージ５から切り出されてＶＭゲスト２０に対して割り当てられる。なお、図１に示す仮想ディスク６ａは、これらの仮想ディスク６のうちの少なくとも１つの仮想ディスク６を表し、仮想ディスク６ｂは、これらの仮想ディスク６のうちの少なくとも１つの仮想ディスク６を表したものである。
【００２２】
なお、物理ストレージ装置４は、ＶＭゲスト２０からのＩ／Ｏ要求（アクセス要求）に係るアクセス対象の仮想アドレス（仮想ブロック）を、物理ディスク４０における物理アドレス（物理ブロック）に変換又は割り当ててＩ／Ｏ等のアクセスを実行する。このため、物理ストレージ装置４は、後述する割当部４１ａ及び割当管理テーブル４２ａを有している。
【００２３】
ストレージ制御装置１０は、図２に示す上述した物理ディスク４０と仮想ディスク６との関係を管理し、サーバ２及び物理ストレージ装置４の制御を行なう。ストレージ制御装置１０は、例えばサーバ２−１に新たに作成されるＶＭゲスト２０ｂに割り当てられた仮想ディスク６ｂに対して、物理ストレージ装置４が有する物理ディスク４０−１〜４０−３の複数の物理的に連続した物理ブロック（ブロック；割当単位領域）の仮予約を行なう。
【００２４】
〔１−２〕ストレージ制御装置の説明
次に、図１及び図３〜図６を参照しながら、本実施形態に係るストレージ制御装置１０について説明する。なお、図３は、図１に示すＤＢ１４が格納する仮想ディスク管理テーブル１４ａの一例を示す図であり、図４は、ＶＭゲスト管理テーブル１４ｂの一例を示す図である。また、図５は、仮想ストレージ管理テーブル１４ｃの一例を示す図であり、図６は、物理ディスク管理テーブル１４ｄの一例を示す図である。
【００２５】
ストレージ制御装置１０は、図１に示すように、Ｉ／Ｏ要求受付部１１，Ｉ／Ｏ実行部１２，領域割当制御部１３，及びＤＢ（Database）１４を有している。
Ｉ／Ｏ要求受付部１１は、サーバ２の各ＶＭゲスト２０（ゲストＯＳ）において発生したＩ／Ｏ要求を受け付ける。
Ｉ／Ｏ実行部（履歴出力部）１２は、Ｉ／Ｏ要求受付部１１からのＩ／Ｏ要求を実行する。つまり、Ｉ／Ｏ実行部１２は、物理ストレージ装置４に対して、Ｉ／Ｏ要求を発行する。また、Ｉ／Ｏ実行部１２は、所定期間ごとに、或いはアクセスのあったとき等の所定のタイミングで、Ｉ／Ｏ履歴（Ｉ／Ｏ履歴）を領域割当制御部１３に出力する。なお、所定期間ごとにＩ／Ｏ履歴が出力される場合、Ｉ／Ｏ履歴には、少なくとも配備済のＶＭゲスト２０に割り当てられた仮想ディスク６を特定する識別子（仮想ディスク識別子），Ｉ／Ｏ回数（アクセス回数），及び平均データ転送量が含まれる。また、アクセスのあったときにＩ／Ｏ履歴が出力される場合、Ｉ／Ｏ履歴には、少なくとも仮想ディスク識別子，及びデータ転送量が含まれる。
【００２６】
なお、Ｉ／Ｏ要求受付部１１及びＩ／Ｏ実行部１２は、サーバ２ごとにそなえられる。
ＤＢ（保持部）１４は、図３〜図６に示す各テーブル１４ａ〜１４ｄを保持する。
〔１−２−１〕領域割当制御部及び各テーブルの説明
ここで、領域割当制御部１３の構成及びＤＢ１４が保持する各テーブルについて説明する。
【００２７】
領域割当制御部（制御部）１３は、仮想ディスク６に対する物理ディスク４０の連続したブロックの仮予約を制御するものであり、監視部１３ａ，推定部１３ｂ，仮予約部１３ｃ，及び取消部１３ｄを有している。
監視部１３ａは、既存の仮想マシン２０に割り当てられた既存の仮想ディスク６へのアクセスの監視を行ない、監視結果をＤＢ１４に格納する。具体的には、監視部１３ａは、仮想ディスク６へのアクセスのあったときにＩ／Ｏ実行部１２からＩ／Ｏ履歴が出力される場合、仮想ディスク識別子ごとに、所定期間ごとのアクセス回数，及び平均データ転送量等を集計し、監視結果としてＤＢ１４の仮想ディスク管理テーブル１４ａに格納する。なお、ストレージ制御装置１０が所定期間ごとにＩ／Ｏ実行部１２からＩ／Ｏ履歴が出力されるように構成される場合には、監視部１３ａを省略しても良い。監視部１３ａが省略される場合、領域割当制御部１３は、Ｉ／Ｏ実行部１２から出力されたＩ／Ｏ履歴を、仮想ディスク６ごとの監視結果として仮想ディスク管理テーブル１４ａに格納する。
【００２８】
仮想ディスク管理テーブル１４ａは、仮想ディスク６ごとに、監視結果を格納するテーブルであり、仮想ディスク識別子ごとに例えば図３に示す情報が含まれる。ディスク容量は、仮想ディスク６に割り当てられた容量であり、実ディスク使用量は、ディスク容量のうちの実際に物理ディスク４０に割り当て済みの容量であり、状態は、仮想ディスク６が正常か否かを示す情報である。仮想ストレージ識別子は、仮想ストレージ５を特定する情報であり、割り当て先ＶＭゲストは、仮想ディスク６が割り当てられているＶＭゲスト２０を示す情報であって、例えばＶＭゲスト２０を特定するＶＭゲスト識別子が設定される。仮予約実施対象は、仮想ディスク６に対する仮予約が実施されたか否かを示す情報（ＹＥＳ／ＮＯ）であり、仮予約量は、残りの（最新の）仮予約中の容量を示し、仮予約実施量は、仮予約部１３ｃにより仮予約された容量を示す。
【００２９】
Ｉ／Ｏ履歴（１）〜Ｉ／Ｏ履歴（Ｎ）は、所定期間（単位時間；例えば１０分）ごとのＩ／Ｏ履歴をy日間（例えば、７日間）分、計Ｎ個（例えば、１０分間隔で７日間の場合、Ｎ＝１００８）保存したものである。Ｉ／Ｏ履歴数がＮ個を超えた場合には、最も古い履歴が破棄され、新しい履歴が設定される。図３に示す例では、各Ｉ／Ｏ履歴には、Ｉ／Ｏ回数，平均データ転送量，及びＩ／Ｏ履歴が設定された時点での実ディスク割り当て済の容量が含まれる。例えば、“disk0001”のＩ／Ｏ履歴（１）には、Ｉ／Ｏ回数「５回」，平均データ転送量「４ＭＢ」，及び実ディスク割り当て済の容量「３０ＧＢ」が含まれている。
【００３０】
以下、サーバ２−１について着目し、ユーザや管理者等から、新たなＶＭゲスト２０ｂの作成が指示されるとともに、仮想ディスク６ｂ、つまり少なくとも１つの仮想ディスク６の作成が指示された場合を想定する。なお、新たなＶＭゲスト２０ｂは既存のＶＭゲスト２０ａと同じクローニングマスタイメージから作成されるものとする。
推定部１３ｂは、新たなＶＭゲスト２０ｂを作成する際に、既存のＶＭゲスト２０ａに割り当てられた既存の仮想ディスク６ａへのアクセスの監視結果（アクセス頻度）に基づき新たなＶＭゲスト２０ｂに割り当てられる仮想ディスク６ｂへのアクセス量（アクセス頻度）を推定する。ここで、アクセス量は、例えばＩ／Ｏ履歴に含まれるＩ／Ｏ回数と平均データ転送量とに基づいて算出されるアクセスの程度を示す情報であり、例えばアクセス頻度である。
【００３１】
上述のごとく、クローニングマスタイメージとしては、ゲストＯＳの機能や役割等に応じて予め複数種類のものが用意されている。つまり、同じクローニングマスタイメージから作成されるＶＭゲスト２０（ゲストＯＳ）は、互いに挙動も同じような傾向になると予想できる。そこで、本実施形態に係る推定部１３ｂは、作成するＶＭゲスト２０ｂの種類と同じクローニングマスタイメージから過去に配備したＶＭゲスト２０ａを、ＶＭゲスト管理テーブル１４ｂに基づき認識する。そして、推定部１３ｂは、作成するＶＭゲスト２０ｂによる新たな仮想ディスク６ｂへの挙動の傾向（アクセス頻度）を、認識したＶＭゲスト２０ａによる仮想ディスク６ａの使い方、例えば仮想ディスク６ａへのアクセス回数や平均データ転送量等のアクセスの傾向に基づいて推定するのである。
【００３２】
ＶＭゲスト管理テーブル１４ｂには、ＶＭゲスト識別子ごとに例えば図４に示す情報が含まれる。論理ＣＰＵ，論理メモリは、後述するサーバ２のＣＰＵ（Central Processing Unit）２１，メモリ２２（図８参照）からそれぞれ割り当てられた処理能力，論理容量であり、ＶＭホスト識別子は、ＶＭゲスト２０が実行されるＶＭホストを特定する識別子である。クローニングマスタイメージ識別子は、ＶＭゲスト２０の基となったクローニングマスタイメージを特定する情報である。配備日時は、ＶＭゲスト２０が配備（作成）された日時を示す情報である。仮想ディスク識別子は、上述の如くＶＭゲスト２０に割り当てられた仮想ディスク６を特定する情報であり（図３参照）、括弧内には当該ＶＭゲスト２０における仮想ディスク６の接続デバイス名が設定される。なお、図４に示す例では、ＶＭゲスト識別子が“guest0001”及び“guest0005”であるＶＭゲスト２０は、同じクローニングマスタイメージ（クローニングマスタイメージ識別子：“image0001”）から作成されている。
【００３３】
例えば、ユーザや管理者等によりクローニングマスタイメージに基づく新たなＶＭゲスト２０ｂの作成指示が行なわれると、推定部１３ｂは、ＶＭゲスト管理テーブル１４ｂから、作成するＶＭゲスト２０ｂと同じクローニングマスタイメージ識別子のＶＭゲスト２０ａを抽出する。そして、推定部１３ｂは、抽出したＶＭゲスト２０ａに割り当てられた仮想ディスク識別子を基に、仮想ディスク管理テーブル１４ａを参照して、例えばＩ／Ｏ履歴（１）〜（Ｎ）の平均のアクセス量（アクセス頻度）を算出し、算出したアクセス量を、新たな仮想ディスク６ｂへのアクセス量（アクセス頻度）として推定する。なお、アクセス量の算出の手法については、後述する。
【００３４】
仮予約部１３ｃは、推定したアクセス量（アクセス頻度）が閾値（第１閾値）を超える場合に、物理ディスク４０の物理的に連続した複数のブロック（割当単位領域）を、作成する新たな仮想ディスク６に将来割り当てるために、物理ディスク管理テーブル１４ｄにおいて仮予約する。すなわち、仮予約部１３ｃは、推定部１３ｂにより推定されたアクセス量が、第１の閾値を超えるか否かに応じて、物理ディスク４０の連続ブロックの仮予約の実施要否を決定する。つまり、仮予約部１３ｃは、推定部１３ｂによる新たな仮想ディスク６ｂのアクセス量の推定結果に基づき仮予約の実施の要否を決定する。
【００３５】
また、仮予約部１３ｃは、既存の仮想ディスク６ａの使用量の監視結果、例えば仮想ディスク管理テーブル１４ａの実ディスク使用量に基づき新たな仮想ディスク６ｂに割り当てる仮予約実施量を決定し、新たな仮想ディスク６ｂに対する連続した複数のブロックを、決定した仮予約実施量の分だけ仮予約する。つまり、仮予約部１３ｃは、既存の仮想ディスク６ａの実使用量（使用量）に基づき新たな仮想ディスク６ｂに仮予約するサイズを決定する。
【００３６】
物理ディスク管理テーブル１４ｄには、物理ディスク４０を特定する物理ディスク識別子ごとに例えば図６に示す情報が含まれる。ブロック番号は、物理ディスク４０のブロックを特定する番号であり、ブロック番号の最大値は、個々の物理ディスク４０の容量（サイズ）に依存して決まる。状態は、物理ディスク４０が正常か否かを示す情報である。割り当て状態は、ブロック番号に対する仮想ディスク６の割り当ての状態を示す情報であり、例えばブロックに仮想ディスク６が割り当てられていない“未割り当て”，既に仮想ディスク６が割り当てられている“割り当て済”，及び仮予約部１３ｃにより仮予約が行なわれた“仮予約済”等の状態がある。割り当て先仮想ストレージは、当該物理ディスク４０に割り当てられた仮想ストレージ５を特定する情報であり、例えば仮想ストレージ識別子で示される。割り当て先仮想ディスクは、ブロック番号に対して割り当てられた仮想ディスクを特定する情報であり、例えば仮想ディスク識別子で示される。
【００３７】
このように、仮予約部１３ｃは、全ての仮想ディスク６に対してブロックの仮予約を行なわず、推定部１３ｂによって既存のＶＭゲスト２０ａでのＩ／Ｏ履歴（実績）に基づきＩ／Ｏの頻度が高くなると推定された新たな仮想ディスク６ｂを、優先して仮予約の実施対象とする。これにより、物理ディスク４０を効率的に利用できるというシンプロビジョニング方式の長所を活かしつつ、仮予約した連続したブロックに対してシーケンシャルにデータの読み書きが行なえるため、仮予約したＩ／Ｏ性能の劣化を防止することができる。
【００３８】
なお、仮予約部１３ｃは、仮想ストレージ管理テーブル１４ｃを参照して、新たな仮想ディスク６ｂが属する仮想ストレージ５の未使用量が閾値（第２の閾値）よりも小さい場合には、新たな仮想ディスク６ｂに対する連続した複数のブロックの仮予約を抑止しても良い。つまり、仮予約部１３ｃは、仮想ストレージ５の未使用量が第２の閾値（例えば５％）を下回った（枯渇した）場合は、新規の仮予約を中止する。
【００３９】
仮想ストレージ管理テーブル１４ｃは、仮想ストレージ５ごとの使用状況を示したテーブルであり、仮想ストレージ識別子ごとに例えば図５に示す情報が含まれる。容量は、物理ディスク４０から仮想ストレージ５に割り当てられた容量であり、使用量は、仮想ストレージ５に所属する物理ディスク４０のうちの割り当て状態が“割り当て済”であるブロックの容量の総和である（図６参照）。仮予約量は、仮想ストレージ５に所属する物理ディスク４０のうちの割り当て状態が“仮予約済”であるブロックの容量の総和であり、未使用量は、仮想ストレージ５に所属する物理ディスク４０のうちの割り当て状態が“未割り当て”であるブロックの容量の総和である。
【００４０】
なお、仮想ストレージ５の容量は、仮想ストレージ５の使用量，仮予約量，及び未使用量の和となり、仮想ディスク６の容量は、仮想ディスク６の実ディスク使用量，及び仮予約量の和以上となる。
次に、推定部１３ｂ及び仮予約部１３ｃの詳細な動作について説明する。
仮予約部１３ｃは、推定部１３ｂとともに、以下の（ｉ）〜（iv）の処理により、新たに作成する仮想ディスク６ｂに含まれる各仮想ディスク６の仮予約の要否を判断し、以下の（ｖ）の処理により仮予約実施量の決定を行なう。
【００４１】
なお、ユーザや管理者等により、予め新たなＶＭゲスト２０ｂ（ゲストＯＳ）の作成に用いるクローニングマスタイメージと、新たなＶＭゲスト２０ｂに割り当てる仮想ディスク６ｂ及びその接続デバイス名とが指定されたものとする。
（ｉ）  推定部１３ｂが、新たに配備するＶＭゲスト２０ｂと同じクローニングマスタイメージから配備されたＶＭゲスト２０の中から複数（例えば３つ）のＶＭゲスト２０を選択する。例えば、推定部１３ｂは、ＶＭゲスト管理テーブル１４ｂ（図４参照）を参照し、配備後の経過時間が所定時間（例えば１日）以上、かつ、その中で配備後の経過時間が最短・中間・最長のＶＭゲスト２０ａを選ぶ。
【００４２】
（ii）  推定部１３ｂが、新たに配備するＶＭゲスト２０ｂの仮想ディスク６ｂのデバイスパス（接続デバイス名；例えば、scsi0:0，scsi0:1，…，ide0:0等；図４参照）に対応する仮想ディスク６を、仮想ディスク管理テーブル１４ａ（図３参照）に基づき、上記（ｉ）で選んだ各々のＶＭゲスト２０から抽出する。
なお、上記（ｉ）において条件を満たすＶＭゲスト２０が３個未満の場合、又は、上記（ii）において３つのＶＭゲスト２０のいずれかでデバイスパスに対応する仮想ディスク６がなかった場合、推定部１３ｂは、新たに作成するＶＭゲスト２０でのアクセス量を推定する際にヒントとして使う履歴情報が十分に集まっていないと判断し、処理を終了する。これらの場合、仮予約部１３ｃは、当該新たに作成するＶＭゲスト２０に割り当てられる仮想ディスク６に対する仮予約を“否”と判断する。
【００４３】
（iii）  推定部１３ｂは、上記（ii）で抽出した３つの仮想ディスク６の各々に対して、以下の（iii−１）及び（iii−２）処理を行なう。
（iii−１）  仮想ディスク６ごとに、所定時間（例えば１日）の中で、「Ｉ／Ｏ回数×平均データ転送量」が最大のＩ／Ｏ履歴を仮想ディスク管理テーブル１４ａから抽出する。
【００４４】
（iii−２）  仮想ディスク６ごとに、仮想ディスク管理テーブル１４ａに保存されている履歴の日数分だけ、上記（iii−１）の値（Ｉ／Ｏ履歴）を抽出し、その平均値を仮想ディスク６のＩ／Ｏ頻度値（アクセス頻度値）として算出する。なお、ここで算出されるＩ／Ｏ頻度値が、仮予約部１３ｃにより、上述したアクセス量（アクセス頻度）として用いられる。
【００４５】
（iv）  仮予約部１３ｃは、上記（iii）で算出したＩ／Ｏ頻度値が第１の閾値、例えば３０ＭＢを超える場合、仮予約“要”と判断する。一方、仮予約部１３ｃは、Ｉ／Ｏ頻度値が第１の閾値未満の場合、仮予約“否”と判断する。
（ｖ）  次いで、仮予約部１３ｃは、上記（iv）で仮予約“要”となった仮想ディスク６について、仮予約実施量を算出する。具体的には、仮予約部１３ｃは、上記（ii）で抽出した３つの仮想ディスク６について、下記（１）式の計算を行ない、その平均値を、上記（iv）で仮予約“要”となった仮想ディスク６の仮予約実施量とする。なお、下記（１）式において、ｚはＶＭゲスト２０の配備後の日数であり、ｙはＩ／Ｏ履歴に保存されている日数である。
【００４６】
Ｍａｘ（１−ｚ／ｙ，０）×仮予約量＋使用量      ・・・（１）
ここで、（１）式においては、ＶＭゲスト２０の配備後の経過日数が長くなるほど、そのＶＭゲスト２０の仮予約量の信頼性が低下するものとみなされる。つまり、（１）式に従って仮予約実施量が算出されると、経過日数が長いＶＭゲスト２０の仮予約量は、新たな仮想ディスク６ｂの仮予約実施量の算出結果に反映され難くなる。これにより、最近のＶＭゲスト２０の使用状況に重み付けがされた数値が算出されるため、仮予約部１３ｃは、新たな仮想ディスク６に最適な仮予約実施量を設定することができる。
【００４７】
なお、仮想ストレージ５に割り当てられた物理ディスク４０上にある未使用のブロックの連続領域が、上記（ｖ）で算出した仮予約実施量に満たない場合、仮予約部１３ｃは、未使用のブロックの連続領域のうちで最大の範囲を仮予約する。
取消部１３ｄは、仮想ストレージ５の未使用量が閾値（第３の閾値）よりも少ない場合に、仮想ストレージ５に属する仮想ディスク６への物理領域の割り当てを伴うアクセスが発生すると、仮想ディスク６に対して仮予約された複数のブロックの少なくとも一部を取り消す。具体的には、取消部１３ｄは、仮想ストレージ５に属する少なくとも１つの仮想ディスク６のうちの、監視結果から得られるアクセス量、つまり既存の仮想ディスク６へのアクセス頻度が小さい仮想ディスク６に対して仮予約された複数のブロックの少なくとも一部を取り消す。つまり、取消部１３ｄは、仮想ストレージ５の未使用量が第２の閾値（例えば５％）よりも小さい第３の閾値（例えば１％）を下回った（枯渇した）場合（或いは未使用量が０になった場合）、仮予約の一部又は全部を取り消して未割り当ての状態に戻し、実際に物理ディスク４０のブロックを必要とする仮想ディスク６に割り当てられるようにする。
【００４８】
より具体的に、取消部１３ｄは、仮想ストレージ５の未使用量が第３の閾値よりも少なくなると、以下の（vi）及び（vii）の処理により、仮予約を取り消して未使用に戻す。
（vi）  仮想ディスク管理テーブル１４ａに基づいて、未使用量が第３の閾値よりも少なくなった仮想ストレージ５に所属する物理ディスク４０を利用する、全ての仮想ディスク６のＩ／Ｏ頻度値を求めて、Ｉ／Ｏ頻度値の小さい順でソートする。
【００４９】
（vii）  物理ディスク管理テーブル１４ｄに対して、Ｉ／Ｏ頻度値が最も小さい仮想ディスク６の仮予約を取り消す。なお、取消部１３ｄは、Ｉ／Ｏ頻度値が同じ仮想ディスク６が複数ある場合は、仮予約量が大きい方を優先して、仮予約の取り消しを行なう。
このように、仮想ストレージ５の未使用量が枯渇した状況になった場合には、まずは仮予約部１３ｃが仮予約を中止し、続いて取消部１３ｄが実際には使われていない仮予約済のブロックの仮予約を取り消すことで、物理領域を有効利用することができる。
【００５０】
なお、取消部１３ｄは、少なくとも発生したアクセスにより書き込むサイズ以上の領域が空くまで、仮予約されたブロックの取り消しを行なう。
なお、上述した各テーブル１４ａ〜１４ｄは、それぞれＶＭゲスト２０や仮想ディスク６が作成，変更，削除等される際に、領域割当制御部１３により更新される。また、仮想ストレージ５や仮想ディスク６の使用量，仮予約量，状態等は、所定時間ごとや所定のタイミングで、領域割当制御部１３により更新される。
【００５１】
〔１−３〕物理ストレージ装置の説明
次に、図１及び図７を参照しながら、本実施形態に係る物理ストレージ装置４について説明する。なお、図７は、図１に示す物理ストレージ装置４が格納する割当管理テーブル４２ａの一例を示す図である。物理ストレージ装置４は、割当部４１ａを有するとともに、割当管理テーブル４２ａを保持する。
【００５２】
割当管理テーブル４２ａは、仮想ディスク６の仮想アドレス（仮想ブロック）と、物理ディスク４０における物理アドレス（物理ブロック）とを対応付けるテーブルである。割当管理テーブル４２ａは、図７に示すように、図６に示す物理ディスク管理テーブル１４ｄに対して、ブロック番号ごとに割り当てられた仮想ディスク６の仮想ブロック、つまり仮想ディスク６における割当単位領域を対応付けたものである。
【００５３】
割当部４１ａは、ＶＭゲスト２０からのＩ／Ｏ要求（アクセス要求）に係るアクセス対象の仮想ブロックを、割当管理テーブル４２ａに基づき物理ブロックに変換してＩ／Ｏを実行する。また、割当部４１ａは、仮想ディスク６への物理領域の割り当てを伴うアクセスが発生すると、割当管理テーブル４２ａに基づいて、アクセス対象の領域（仮想ブロック）を、当該仮想ディスク６に対して仮予約された連続した複数の物理ブロックの少なくとも一部に割り当てる。なお、割当部４１ａは、割当管理テーブル４２ａにおいて“仮予約済”状態の物理ブロックには、他の仮想ディスク６を割り当てないようにする。
【００５４】
なお、上述のように、仮想ストレージ５の未使用量が第３の閾値よりも少ない場合に、仮想ストレージ５に属する仮想ディスク６への物理領域の割り当てを伴うアクセスが発生すると、取消部１３ｄにより、仮想ディスク６に対して仮予約された複数のブロックの少なくとも一部が取り消される。この場合、割当部４１ａは、当該アクセスに係る仮想ディスク６のアクセス領域を、取消部１３ｄによって取り消された複数の物理ブロックの少なくとも一部に割り当てる。
【００５５】
ここで、物理ディスク管理テーブル１４ｄ及び割当管理テーブル４２ａは、ストレージ制御装置１０及び物理ストレージ装置４により、相互に更新可能である。例えば、ストレージ制御装置１０は、仮予約を実行、又は取り消して物理ディスク管理テーブル１４ｄを更新する際に、同時に、或いは所定のタイミングで、更新内容を割当管理テーブル４２ａに対しても反映する。また、物理ストレージ装置４は、仮想ディスク６への物理領域の割り当て又は削除を伴うアクセスに応じて、論理ブロックと物理ブロックとの割り当て状態を更新する際に、同時に、或いは所定のタイミングで、更新内容を物理ディスク管理テーブル１４ｄに対しても反映する。
【００５６】
このように、物理ストレージ装置４及びストレージ制御装置１０は、少なくとも物理ブロックの割り当て状態を相互に反映させる。これにより、割当部４１ａにより、仮予約部１３ｃによって仮予約されたブロックが他の仮想ディスク６に割り当てられることを抑止できるとともに、仮予約部１３ｃにより、割当部４１ａによって既に他の仮想ディスクに割り当てられた物理ブロックが仮予約されることを抑止できる。
【００５７】
なお、上述した例では、ストレージ制御装置１０が物理ディスク管理テーブル１４ｄを保持し、物理ストレージ装置４が割当管理テーブル４２ａを保持するものとして説明したが、これに限定されるものではない。例えば、物理ストレージ装置４が割当管理テーブル４２ａを保持する一方、ストレージ制御装置１０は物理ディスク管理テーブル１４ｄを保持しなくても良い。この場合、仮予約部１３ｃ及び取消部１３ｄによる仮予約の状態の更新は、ストレージ制御装置１０から割当管理テーブル４２ａに対して行なうこととすれば良い。
【００５８】
また、上述した例では、割当管理テーブル４２ａは、物理ディスク管理テーブル１４ｄに対して仮想ブロックを追加したものとして説明したが、これに限定されるものではない。割当管理テーブル４２ａは、少なくとも物理ディスク４０を特定する情報（例えば物理ディスク識別子），物理ブロック番号，割り当て状態，割り当て先の仮想ディスク６を特定する情報（例えば仮想ディスク識別子），及び仮想ブロックが含まれれば良い。
【００５９】
〔１−４〕情報処理装置のハードウェア構成例
次に、図８を参照して、本実施形態に係る情報処理装置１のハードウェア構成例を説明する。なお、図８は、図１に示す情報処理装置１のハードウェア構成例を示すブロック図である。
図８に示すように、情報処理装置１は、上述した複数のサーバ２（２−１〜２−３），管理サーバ３，及び上述した物理ストレージ装置３を有している。
【００６０】
各サーバ２は、少なくともＣＰＵ２１，メモリ２２，及びネットワークコントローラ２３を有している。すなわち、各サーバ２は、ＶＭホストにより、ＣＰＵ２１やメモリ２２等のリソースを論理的に分割して、それぞれが実行するＶＭゲスト２０に割り当てる。
管理サーバ３は、各サーバ２及び物理ストレージ装置４のリソースの管理や各種制御を実行する電子計算機であり、少なくともＣＰＵ３１，メモリ３２，ネットワークコントローラ３３，及びＨＤＤ３４を有している。
【００６１】
物理ストレージ装置４は、上述した物理ディスク４０を有するとともに、少なくともＣＰＵ４１，メモリ４２，及びネットワークコントローラ４３を有している。
ＨＤＤ３４は、例えばストレージ制御装置１０の後述するＤＢ１４として用いられる。なお、ＨＤＤ３４に代えて、ＳＳＤ等の各種デバイスや不揮発性メモリが用いられても良い。
【００６２】
ＣＰＵ２１，３１，４１は、それぞれ対応するメモリ２２，３２，４２及びネットワークコントローラ２３，３３，４３，並びにＨＤＤ３４とそれぞれバス（及びコントローラ等）を介して接続され、種々の制御や演算を行なう処理装置である。ＣＰＵ２１，３１，４１は、それぞれメモリ２２，３２，４２又は図示しないＲＯＭ（Read Only Memory）等に格納されたプログラムを実行することにより、種々の機能を実現する。
【００６３】
例えば本実施形態に係るＣＰＵ２１は、ＶＭゲスト２０（ゲストＯＳ）を実行する仮想化ソフトウェア（ＶＭホスト）としての機能や、Ｉ／Ｏ要求受付部１１及びＩ／Ｏ実行部１２としての機能を実現する。また、本実施形態に係るＣＰＵ３１は、ストレージ制御装置１０の領域割当制御部１３としての機能を実現する。すなわち、各サーバ２及び管理サーバ３により、本実施形態に係るストレージ制御装置１０が実現される。なお、便宜上、図１では、Ｉ／Ｏ要求受付部１１及びＩ／Ｏ実行部１２をサーバ２の外部に示している。
【００６４】
また、本実施形態に係るＣＰＵ４１は、割当部４１ａとしての機能を実現する。
メモリ２２，３２，４２は、種々のデータやプログラムを一時的に格納する記憶装置であって、ＣＰＵ２１，３１，４１がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。なお、メモリ２２，３２，４２としては、例えばＲＡＭ（Random Access Memory）等の揮発性メモリが挙げられる。
【００６５】
メモリ４２は、割当管理テーブル４２ａを保持する。なお、メモリ４２は、さらに物理ストレージ装置４のキャッシュメモリとして用いられても良い。この場合、メモリ４２は、ＶＭゲスト２０から各物理ディスク４０へ書き込まれるデータ，各物理ディスク４０からＶＭゲスト２０へ読み出されるデータ等を一時的に格納する。
ネットワークコントローラ２３，３３，４３は、接続先のネットワークコントローラとのインタフェース制御を行なうとともに、各種のデータ通信を行なうコントローラである。なお、図８に示す例では、ネットワークコントローラ２３とネットワークコントローラ３３及び４３それぞれとが互いに通信可能に接続されているが、これに限定されるものではない。例えば、図８中、破線で示すように、さらにネットワークコントローラ３３と４３とが互いに通信可能に接続されても良い。
【００６６】
〔１−５〕ストレージ制御装置の動作例
次に、上述の如く構成された情報処理装置１における動作例を、図９〜図１３を参照して説明する。図９は、図１に示すストレージ制御装置１０におけるＶＭゲスト２０の作成時の処理を説明する図である。図１０〜図１２は、図１に示すストレージ制御装置１０における仮予約処理の一例を説明するフローチャートであり、図１３は、仮予約ブロック使用時の処理の一例を説明するフローチャートであり、図１４は、仮予約の取り消し処理の一例を説明するフローチャートである。
【００６７】
〔１−５−１〕仮予約処理
はじめに、図９〜図１２を参照して、ストレージ制御装置１０における仮予約処理の一例を説明する。なお、以下の説明では、サーバ２−１について着目し、サーバ２−１において、仮想化ソフトウェア（ＶＭホスト）上でＶＭゲスト２０−１〜２０−ｐが実行され、新たにＶＭゲスト２０−ｑ（ＶＭゲスト識別子“VM0006”）が作成される場合を想定する。また、新たに作成されるＶＭゲスト２０−ｑは、新たな仮想ディスク６が２つ（接続デバイス名｛“disk0”，“disk1”｝）割り当てられるとともに、クローニングマスタイメージ識別子が“image0001”のクローニングマスタイメージから配備されるものとする。さらに、現在の時刻を“2011-09-26 15:00”とし、仮想ディスク管理テーブル１４ａには、Ｉ／Ｏ履歴が最新の７日間分（ｙ＝７）記録されるものとする。
【００６８】
図９に示すように、ストレージ制御装置１０は、Ｉ／Ｏ要求受付部１１及びＩ／Ｏ実行部１２により、サーバ２で稼動済みのＶＭゲスト２０−１〜２０−ｐのＩ／Ｏ履歴を管理サーバ３に送信し、領域割当制御部１３（監視部１３ａ）は、収集したＩ／Ｏ履歴を管理サーバ３のＨＤＤ（ＤＢ１４）に監視結果として格納する（図９の矢印（１）参照）。
次いで、ユーザや管理者等により、新たなＶＭゲスト２０−ｑの配備が指示されると（図９の矢印（２）参照）、領域割当制御部１３において、推定部１３ｂ及び仮予約部１３ｃによる仮予約の処理が実行される。
【００６９】
具体的には、図１０に示すように、推定部１３ｂにより、新たなＶＭゲスト２０−ｑにクローニングマスタイメージが指定されているか否かが判定され（ステップＳ１）、指定されていない場合は（ステップＳ１のＮｏルート）処理が終了する。一方、新たなＶＭゲスト２０−ｑにクローニングマスタイメージが指定されている場合（ステップＳ１のＹｅｓルート）、推定部１３ｂにより、ＶＭゲスト管理テーブル１４ｂから３つのＶＭゲスト２０が抽出される（ステップＳ２）。
【００７０】
なお、図９に示す例では、推定部１３ｂにより、新たなＶＭゲスト２０−ｑの基となるクローニングマスタイメージ識別子“image0001”により作成された既存のＶＭゲスト２０が、ＶＭゲスト管理テーブル１４ｂに基づき認識される。例えば、クローニングマスタイメージ識別子“image0001”により作成されたＶＭゲスト２０が、ＶＭゲスト２０−１〜２０−ｐのうちで５つ（ＶＭゲスト識別子“VM0001”〜“VM0005”）あり、各々の配備日時及びＶＭ配備後の経過日数が以下の通りであるとする。
【００７１】
“VM0001”：“2011-08-01 09:03”，５６日経過
“VM0002”：“2011-08-10 13:28”，４７日経過
“VM0003”：“2011-08-31 10:41”，２６日経過
“VM0004”：“2011-09-23 23:55”，  ２日経過
“VM0005”：“2011-09-25 19:07”，  ０日経過
推定部１３ｂは、認識したＶＭゲスト２０から、配備時刻が現在時刻から１日以内のものを除き、配備時刻でテーブルをソートして、ソートされた配列の先頭・末尾・中間の要素を抽出する。上記の例では、５つのＶＭゲスト２０のうち、配備後１日以上経過しているＶＭゲスト２０は、“VM0001”〜“VM0004”の４つである。推定部１３ｂは、これら４つのＶＭゲスト２０から配備後の経過時間が最長・中間・最短のＶＭゲスト２０として、“VM0001”，“VM0002”，“VM0004”を選択する。なお、上記の例のように、配備後１日以上経過しているＶＭゲスト数が偶数の場合、推定部１３ｂは、例えば中間の２つのＶＭゲスト２０のうち、ＶＭ配備日時が古い（配備後の経過日数が長い）方を選択する。
【００７２】
次いで、図１０のステップＳ３において、推定部１３ｂにより、３つのＶＭゲスト２０が抽出できたか否かが判定され（ステップＳ３）、抽出できていない場合（ステップＳ３のＮｏルート）、処理が終了する。一方、３つのＶＭゲスト２０が抽出できた場合（ステップＳ３のＹｅｓルート）、図１１のステップＳ４に移行し、仮想ディスク６のデバイスパス（接続デバイス名）の｛“disk0”，“disk1”｝を示す変数ｎに０が代入される。
【００７３】
そして、推定部１３ｂにより、新たに配備するＶＭゲスト２０のｎ番目の仮想ディスク６のデバイスパスが確認される（ステップＳ５）。また、推定部１３ｂにより、仮想ディスク管理テーブル１４ａから、仮想ディスク６を配置する仮想ストレージ５の容量と未使用量とが確認される（ステップＳ６）。
次いで、推定部１３ｂにより、ステップＳ６において確認した仮想ストレージ５の未使用量が、容量と閾値ｇ（第２の閾値）との積よりも大きいか否かが判定され（ステップＳ７）、大きくない場合には（ステップＳ７のＮｏルート）、ステップＳ１５に移行する。
【００７４】
ステップＳ１５では、推定部１３ｂ（又は仮予約部１３ｃ）により、変数ｎがインクリメントされ、ｎがディスク数（ここでは２）以上であるか否かが判定される（ステップＳ１６）。ｎがディスク数以上である場合（ステップＳ１６のＹｅｓルート）、新規配備するＶＭゲスト２０−ｑの全ての仮想ディスク６｛“disk0”，“disk1”｝について判定が終了したため、処理が終了する。一方、ｎがディスク数未満である場合（ステップＳ１６のＮｏルート）、ステップＳ５に移行する。
【００７５】
一方、未使用量が、容量と閾値ｇとの積よりも大きい場合（ステップＳ７のＹｅｓルート）、推定部１３ｂにより、３つのＶＭゲスト２０について、ＶＭゲスト管理テーブル１４ｂから、作成する仮想ディスク６と同じデバイスパスに接続されている仮想ディスク識別子が特定される（ステップＳ８）。
次に、推定部１３ｂにより、３つのＶＭゲスト２０それぞれについて、仮想ディスク識別子が特定できたか否かが判定され（ステップＳ９）、できていない場合（ステップＳ９のＮｏルート）、ステップＳ１５に移行する。一方、３つのＶＭゲスト２０それぞれについて仮想ディスク識別子が特定できた場合（ステップＳ９のＹｅｓルート）、推定部１３ｂにより、３つの仮想ディスク６の各々について、仮想ディスク管理テーブル１４ａのＩ／Ｏ履歴からＩ／Ｏ頻度値が算出される（ステップＳ１０）。
【００７６】
例えば、推定部１３ｂは、選択した各ＶＭゲスト２０について、１日分ずつ「Ｉ／Ｏ回数×平均データ転送量」が最大のＩ／Ｏ履歴を抽出し、仮想ディスク管理テーブル１４ａに保存されている履歴の日数分だけ抽出したＩ／Ｏ履歴を平均して、Ｉ／Ｏ頻度値を算出する。なお、各ＶＭゲスト２０には２つの仮想ディスク６が割り当てられているものとして、ＶＭゲスト２０と対応する各仮想ディスク６｛“disk0”，“disk1”｝のＩ／Ｏ頻度値とを、ＶＭゲスト識別子−ｄｉｓｋ｛disk0のＩ／Ｏ頻度値，disk1のＩ／Ｏ頻度値｝で表わす。例えば推定部１３ｂが各仮想ディスク６について算出したＩ／Ｏ頻度値が以下の通りであったとする。
【００７７】
VM0001-disk｛１０．２ＭＢ，４４．７ＭＢ｝
VM0002-disk｛１３．５ＭＢ，４０．１ＭＢ｝
VM0004-disk｛２２．８ＭＢ，３０．３ＭＢ｝
次いで、推定部１３ｂにより、求めた３つのＩ／Ｏ頻度値の平均が求められる（図１１のステップＳ１１）。上記の例では、
“disk0”：“１５．５ＭＢ”
“disk1”：“３８．４ＭＢ”
となる。なお、“disk0”についての計算は、ｎが０のときに行なわれ、“disk1”についての計算は、ｎが１（ステップＳ１５，Ｓ１６のＮｏルート参照）のときに行なわれる。
【００７８】
これらの各仮想ディスク６のＩ／Ｏ頻度値の平均が、推定部１３ｂにより、新たに作成されるＶＭゲスト２０−ｑに割り当てられる各仮想ディスク６｛“disk0”，“disk1”｝のＩ／Ｏ頻度値（アクセス量）として推定される。
次いで、仮予約部１３ｃにより、推定された平均のＩ／Ｏ頻度値が、仮予約の要否判断の閾値ｆ（第１の閾値）よりも大きいか否かが判定され（ステップＳ１２）、閾値ｆ以下である場合（ステップＳ１２のＮｏルート）、このＩ／Ｏ頻度値に対応する仮想ディスク６は仮予約の対象外と判断され、ステップＳ１５に移行する。一方、平均のＩ／Ｏ頻度値が閾値ｆよりも大きい場合（ステップＳ１２のＹｅｓルート）、仮予約部１３ｃにより、このＩ／Ｏ頻度値に対応する仮想ディスク６は仮予約の対象と判断される。例えば、閾値ｆが３０ＭＢであったとすると、ステップＳ１２において、仮予約部１３ｃは、ｎが０のときに、新規に配備する“VM0006”の２つの仮想ディスク６のうち、接続デバイス名が“disk0”である仮想ディスク６についてのＩ／Ｏ頻度値は閾値ｆ以下である（仮予約の対象外）と判定する。また、仮予約部１３ｃは、ｎが１のときに、接続デバイス名が“disk1”である仮想ディスク６についてのＩ／Ｏ頻度値は閾値ｆよりも大きいと判定し、“disk1”の仮想ディスク６のみを仮予約の実施対象に決定する。
【００７９】
そして、仮予約部１３ｃにより、接続デバイス名が仮予約の対象と判断された３つの仮想ディスク６に上記（１）式が適用され、その平均値が仮予約実施量に決定される（図１１のステップＳ１３）。
例えば、推定部１３ｂが抽出した３つのＶＭゲスト２０における接続デバイス名“disk1”の各仮想ディスク６の仮予約量及び使用量を以下とすると、
VM0001-disk1：仮予約量＝１．１ＧＢ，使用量＝１ＧＢ
VM0002-disk1：仮予約量＝０ＧＢ，    使用量＝２ＧＢ
VM0004-disk1：仮予約量＝１．６ＧＢ，使用量＝０．５ＧＢ
上記（１）式から、仮予約の実施対象である新たな仮想ディスク６の仮予約実施量は、
｛（１．１×０＋１）＋（０×０＋２）＋（１．６×５／７＋０．５）｝／３
＝１．５４７６…≒１．５４７ＧＢ  （小数点第４位を切り捨てた場合）
となる。
【００８０】
そして、図１１のステップＳ１４において、仮予約部１３ｃにより、物理ディスク４０から仮予約可能な連続したブロックが調査され、仮予約が行なわれる（図１２のステップＳ１７〜Ｓ２０）。
つまり、図１２のステップＳ１７において、仮予約部１３ｃにより、仮想ディスク６が配置される仮想ストレージ５のブロックで、算出された仮予約実施量以上の未割り当てブロックが連続する領域が、物理ディスク管理テーブル１４ｄの上から順に探索される。仮予約実施量以上の連続領域が見つからない場合（ステップＳ１８；ステップＳ１８のＮｏルート）、仮予約部１３ｃにより、連続する未割り当てブロックが一番多い領域が探索され、そのサイズが仮予約実施量に決定（変更）され（ステップＳ１９）、ステップＳ２０に移行する。
【００８１】
仮予約実施量以上の連続領域が見つかった場合（ステップＳ１８のＹｅｓルート）、又はステップＳ１９の処理が行なわれた場合、仮予約部１３ｃにより、見つけた領域について、物理ディスク管理テーブル１４ｄに対して仮予約実施量以上、で且つ最小のブロック数だけ仮予約が行なわれる（ステップＳ２０）。
なお、ステップＳ２０では、仮予約部１３ｃにより、物理ディスク管理テーブル１４ｄにおいて、割り当て状態の欄が“未割り当て”から“仮予約済”に変更され、割り当て先仮想ディスクの欄に仮想ディスク識別子が設定される。
【００８２】
具体的には、仮予約部１３ｃは、新たなＶＭゲスト２０−ｑ（ＶＭゲスト識別子“VM0006”）の接続デバイス名“disk1”の仮想ディスク６に、物理ディスク４０の１．５４７ＧＢの連続領域（連続したブロック）を仮予約する。例えば、１ブロックのサイズが５１２ＫＢの場合、仮予約部１３ｃは、物理ディスク４０で未割り当てのブロックが３０９４ブロック以上連続している領域を探して、物理ディスク管理テーブル１４ｄ及び割当管理テーブル４２ａにおける３０９４ブロック分の割り当て状態を、VM0006-disk1と対応付けて“仮予約済”に変更する。
【００８３】
なお、ストレージ制御装置１０は、上述の如く、物理ディスク管理テーブル１４ｄの更新と同時に、或いは所定のタイミングで、割当管理テーブル４２ａに対しても更新を行なう。
以上のように、推定部１３ｂ及び仮予約部１３ｃにより、仮予約が実施され、物理ディスク管理テーブル１４ｄ及び割当管理テーブル４２ａが更新される（図９の矢印（３）参照）。
【００８４】
なお、図１２のステップＳ２０（図１１のステップＳ１４）が完了すると、ステップＳ１５に移行する。
また、仮予約処理の終了後、例えばＶＭゲスト２０−ｑの仮想ディスク６へのＩ／Ｏを契機に、仮予約された物理ブロックの割り当て状態が“仮予約済”から“割り当て済”に更新される（図９の矢印（４）参照）。
【００８５】
〔１−５−２〕仮予約ブロック使用時の処理
次に、図１３及び図１４を参照して、ストレージ制御装置１０における仮予約済の物理ブロックを使用する際の処理の一例を説明する。
はじめに、割当部４１ａにおいて、新しい物理ブロックへの書き込みが発生する（ステップＳ２１）。つまり、仮想ディスク６への物理領域の割り当てを伴うアクセスが発生する。このとき、割当部４１ａにより、仮想ディスク６に対して、“仮予約済”の行が割当管理テーブル４２ａ（物理ディスク管理テーブル１４ｄ）に存在するか否かが検索される。
【００８６】
“仮予約済”の行が存在する場合（ステップＳ２２；ステップＳ２２のＹｅｓルート）、割当管理テーブル４２ａ（物理ディスク管理テーブル１４ｄ）の一番上の“仮予約済”行について、割り当て状態が“仮予約済”から“割り当て済”に更新される（ステップＳ２３）。
そして、割当部４１ａにより、アクセスに係る実データが“割り当て済”に更新されたブロックに書き込まれ（ステップＳ２４）、処理が終了する。
【００８７】
また、ステップＳ２２において、“仮予約済”の行が存在しない場合（ステップＳ２２のＮｏルート）、割当部４１ａにより、仮想ディスク６が存在する仮想ストレージの未使用量が０か否か（或いは閾値（第３の閾値）よりも少ないか否か）が判定される（ステップＳ２５）。仮想ストレージの未使用量が０ではない、或いは閾値以上である場合（ステップＳ２５のＮｏルート）、割当部４１ａにより、既存のシンプロビジョニング方式によるブロック割り当て処理が実施される（ステップＳ２６）。すなわち、割当管理テーブル４２ａ（物理ディスク管理テーブル１４ｄ）において割り当て状態が“未割り当て”状態の行を探し、“割り当て済”に変更して、ステップＳ２４に移行する。
【００８８】
またステップＳ２５において、仮想ストレージの未使用量が０である、或いは閾値よりも少ない場合（ステップＳ２５のＹｅｓルート）、取消部１３ｄにより、仮予約の取り消し処理（図１４のステップＳ３０〜Ｓ３３）が実行される（ステップＳ２７）。
図１４のステップＳ３０においては、割当部４１ａにより、仮想ディスク６が存在する仮想ストレージ５の仮予約量が０であるか否かが判定される。仮予約量が０である場合（ステップＳ３０のＹｅｓルート）、利用できる物理ブロックが存在しないため、割当部４１ａにより割り当て可能なブロックなし（Ｄｉｓｋ  ｆｕｌｌ）のエラーが出力され（ステップＳ３３）、処理が終了する。一方、ステップＳ３０において、仮予約量が０ではない場合（ステップＳ３０のＮｏルート）、取消部１３ｄにより、書き込み対象の物理ディスク４０を利用する全ての仮想ディスク６のＩ／Ｏ頻度値が算出され、Ｉ／Ｏ頻度値の小さい順でソートされる（ステップＳ３１）。そして、取消部１３ｄにより、Ｉ／Ｏ頻度値が最も小さい仮想ディスク６の物理ディスク管理テーブル１４ｄにおける割り当て状態の欄の“仮予約済”の行が、全て“未割り当て”状態に更新され（ステップＳ３２）、図１３のステップＳ２８に移行する。
【００８９】
図１３のステップＳ２８においては、割当部４１ａにより、仮予約の取り消し処理が成功したか否かが判定され（ステップＳ２８）、成功した場合（ステップＳ２８のＹｅｓルート）、ステップＳ２６に移行する。一方、成功しなかった場合（ステップＳ２８のＮｏルート）、利用できる物理ブロックが存在しないため、割当部４１ａにより割り当て可能なブロックなし（Ｄｉｓｋ  ｆｕｌｌ）のエラーが出力され（ステップＳ２９）、処理が終了する。
【００９０】
なお、割当部４１ａは、割当管理テーブル４２ａに基づいて上記ステップＳ２１，Ｓ２３，Ｓ２６の処理を行なっているが、これに限定されるものではなく、例えばストレージ制御装置１０にアクセスを行ない、物理ディスク管理テーブル１４ｄを参照しても良い。
以上のように、仮予約の取り消し処理は、新たなＶＭゲスト２０ｂへの物理領域の割り当てを伴うアクセスが発生し（データを書き込むブロックが要求され）、当該仮想ディスク６の仮予約量が０、且つ、仮想ストレージ５の未使用量が０、且つ、仮想ストレージ５の仮予約量が０より大きいときに、実施される。
【００９１】
上述のように、本実施形態に係るストレージ制御装置１０によれば、新たなＶＭゲスト２０ｂの基となったクローニングマスタイメージ（マスタ情報）から作成された既存のＶＭゲスト２０ａが認識され、既存のＶＭゲスト２０ａに割り当てられた既存の仮想ディスク６ａへのアクセスの監視結果に基づき新たなＶＭゲスト２０ｂに割り当てられる新たな仮想ディスク６ｂへのアクセス量が推定される。そして、推定したアクセス量が第１の閾値を超える場合に、物理ディスク４０の連続した複数のブロック（割当単位領域）が新たな仮想ディスク６ｂのために仮予約される。
【００９２】
これにより、シンプロビジョニング方式を採用するストレージ制御装置１０においてシーケンシャルＩ／Ｏが発生した場合であっても、仮予約された物理ディスク４０の連続した複数のブロックに対してシーケンシャルにアクセスが行なわれる。また、新たにＶＭゲスト２０及び仮想ディスク６を作成する際に仮予約が行なわれるため、仮想ディスク６に対するアクセス要求の発行後に、例えば上述した関連する技術のような特別な処理を行なわずに済む。従って、仮想ディスク６のアクセス性能の低下を抑止することができる。
【００９３】
また、新たな仮想ディスク６ｂの基となったクローニングマスタイメージから作成された既存のＶＭゲスト２０ａの仮想ディスク６ａについて、Ｉ／Ｏ頻度値が求められる。従って、新たな仮想ディスク６ｂの実際のアクセスの傾向に近いアクセス量を推定することができ、最適な仮予約を行なうことができる。
なお、例えばクラウド等の技術では、提供するサービスの成長に伴ってスケールアウト型でＶＭゲスト２０が作成（配備）される運用が、今後さらに増加すると考えられる。クラウド等のサービスにおいては、ＶＭゲスト２０の作成を容易に行なうため、上述のように、ＶＭゲスト２０（ゲストＯＳ）の種類に応じたクローニングマスタイメージを基に、新たなＶＭゲスト２０を配備する運用が行なわれる。従って、本実施形態に係るストレージ制御装置１０は、特に、スケールアウト型でＶＭゲスト２０を運用するサービスにおいて効果的である。
【００９４】
また、本実施形態に係るストレージ制御装置１０によれば、仮予約部１３ｃにより、既存のＶＭゲスト２０ａの使用量の監視結果に基づき新たな仮想ディスク６ｂに割り当てる仮予約実施量が決定され、新たな仮想ディスク６ｂに対する連続した複数のブロックが仮予約実施量の分だけ仮予約される。これにより、仮予約の実施対象の仮想ディスク６は、最適な仮予約実施量で仮予約されるため、物理ディスク４０の領域を有効に利用することができる。
【００９５】
〔２〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、上述した実施形態では、３つのＶＭゲスト２０からＩ／Ｏ頻度値を求めるものとして説明したが、これに限定されるものではなく、任意の数のＶＭゲスト２０からＩ／Ｏ頻度値を求めても良い。
【００９６】
また、図１に示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されなくても良い。例えば、Ｉ／Ｏ要求受付部１１，Ｉ／Ｏ実行部１２，領域割当制御部１３，割当部４１ａを任意の組み合わせで統合しても良い。
また、割当部４１ａ及び割当管理テーブル４２ａが、ストレージ制御装置１０にそなえられても良い。この場合、割当部４１ａは、Ｉ／Ｏ実行部１２の機能と統合しても良く、割当管理テーブル４２ａは、物理ディスク管理テーブル１４ｄと統合しても良い。
【００９７】
さらに、ストレージ制御装置１０のＤＢ１４や物理ストレージ装置４の割当管理テーブル４２ａが格納される領域を、外部装置としてネットワーク経由で接続するようにしても良い。
また、上述したＩ／Ｏ要求受付部１１，Ｉ／Ｏ実行部１２，領域割当制御部１３（監視部１３ａ，推定部１３ｂ，仮予約部１３ｃ，取消部１３ｄ），割当部４１ａの各種機能の全部もしくは一部は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のプログラムを実行することによって実現される。
【００９８】
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷなど），ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
【００９９】
ここで、コンピュータとは、ハードウェアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、本実施形態のストレージ制御装置１０の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【０１００】
なお、前記目的に限らず、上述した発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
【符号の説明】
【０１０１】
１    情報処理装置
１０    ストレージ制御装置
１１    Ｉ／Ｏ要求受付部
１２    Ｉ／Ｏ実行部
１３    領域割当制御部（制御部）
１３ａ    監視部
１３ｂ    推定部
１３ｃ    仮予約部
１３ｄ    取消部
１４    ＤＢ（保持部）
１４ａ    ＶＭゲスト管理テーブル
１４ｂ    仮想ディスク管理テーブル
１４ｃ    仮想ストレージ管理テーブル
１４ｄ    物理ディスク管理テーブル
２，２−１〜２−３    サーバ（サーバ装置）
２０，２０ａ，２０ｂ，２０−１〜２０−ｐ，２０−ｑ    ＶＭゲスト（仮想マシン）
２１，３１，４１    ＣＰＵ
２２，３２，４２    メモリ
２３，３３，４３    ネットワークインタフェース
３    管理サーバ
３４    ＨＤＤ
４    物理ストレージ装置
４０，４０−１〜４０−ｍ    物理ディスク
４１ａ    割当部
４２ａ    割当管理テーブル
５，５−１〜５−ｉ    仮想ストレージ
６，６ａ，６ｂ，６−１〜６−ｎ    仮想ディスク
【図１】
2014002162.tif 000003
【図２】
2014002162.tif 000004
【図３】
2014002162.tif 000005
【図４】
2014002162.tif 000006
【図５】
2014002162.tif 000007
【図６】
2014002162.tif 000008
【図７】
2014002162.tif 000009
【図８】
2014002162.tif 000010
【図９】
2014002162.tif 000011
【図１０】
2014002162.tif 000012
【図１１】
2014002162.tif 000013
【図１２】
2014002162.tif 000014
【図１３】
2014002162.tif 000015
【図１４】
2014002162.tif 000016
【手続補正書】
【提出日】平成27年1月23日(2015.1.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定する推定部と、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する仮予約部と、
を有することを特徴とする、ストレージ制御装置。
【請求項２】
前記仮予約部は、前記既存の仮想ディスクの使用量に基づき前記新たな仮想ディスクに割り当てる仮予約実施量を決定し、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域を前記仮予約実施量の分だけ仮予約することを特徴とする、請求項１記載のストレージ制御装置。
【請求項３】
前記仮予約部は、前記新たな仮想ディスクが属する仮想ストレージの未使用量が第２の閾値よりも少ない場合には、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域の仮予約を抑止することを特徴とする、請求項１又は請求項２記載のストレージ制御装置。
【請求項４】
前記仮想ストレージの未使用量が第３の閾値よりも少ない場合に、前記仮想ストレージに属する仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記仮想ストレージに属する仮想ディスクのうちの、前記既存の仮想ディスクへのアクセス頻度が小さい仮想ディスクに対して仮予約された複数の割当単位領域の少なくとも一部を取り消す取消部をさらに有することを特徴とする、請求項３記載のストレージ制御装置。
【請求項５】
前記仮想ディスクごとに、前記既存の仮想ディスクへのアクセス頻度を格納する仮想ディスク管理テーブルを保持する保持部をさらにそなえ、
前記既存の仮想ディスクへのアクセス頻度は、所定期間ごとのアクセス回数と平均データ転送量とを含むことを特徴とする、請求項１〜４のいずれか１項記載のストレージ制御装置。
【請求項６】
仮想マシンを実行するサーバ装置と、
少なくとも１つの物理ディスクを有する物理ストレージ装置と、
前記サーバ装置及び前記物理ストレージ装置の制御を行なうストレージ制御装置と、をそなえた情報処理装置であって、
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定する推定部と、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する仮予約部と、
前記新たな仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記新たな仮想ディスクのアクセス領域を前記仮予約部により仮予約された前記連続した複数の割当単位領域の少なくとも一部に割り当てる割当部と、
を有することを特徴とする、情報処理装置。
【請求項７】
仮想マシンに割り当てられた仮想ディスクと、物理ディスクの物理領域との管理を行なうコンピュータに実行させるストレージ制御プログラムであって、
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定し、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する、
処理を前記コンピュータに実行させることを特徴とする、ストレージ制御プログラム。
【請求項８】
仮想マシンに割り当てられた仮想ディスクと、物理ディスクの物理領域との管理を行なうストレージ制御装置における、ストレージ制御方法であって、
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定し、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する、
ことを特徴とする、ストレージ制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
なお、前記目的に限らず、上述した発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
〔３〕付記
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定する推定部と、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する仮予約部と、
を有することを特徴とする、ストレージ制御装置。
（付記２）
前記仮予約部は、前記既存の仮想ディスクの使用量に基づき前記新たな仮想ディスクに割り当てる仮予約実施量を決定し、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域を前記仮予約実施量の分だけ仮予約することを特徴とする、付記１記載のストレージ制御装置。
（付記３）
前記仮予約部は、前記新たな仮想ディスクが属する仮想ストレージの未使用量が第２の閾値よりも少ない場合には、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域の仮予約を抑止することを特徴とする、付記１又は付記２記載のストレージ制御装置。
（付記４）
前記仮想ストレージの未使用量が第３の閾値よりも少ない場合に、前記仮想ストレージに属する仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記仮想ストレージに属する仮想ディスクのうちの、前記既存の仮想ディスクへのアクセス頻度が小さい仮想ディスクに対して仮予約された複数の割当単位領域の少なくとも一部を取り消す取消部をさらに有することを特徴とする、付記３記載のストレージ制御装置。
（付記５）
前記仮想ディスクごとに、前記既存の仮想ディスクへのアクセス頻度を格納する仮想ディスク管理テーブルを保持する保持部をさらにそなえ、
前記既存の仮想ディスクへのアクセス頻度は、所定期間ごとのアクセス回数と平均データ転送量とを含むことを特徴とする、付記１〜４のいずれか１項記載のストレージ制御装置。
（付記６）
前記既存の仮想マシンによる既存の仮想ディスクへのアクセスを実行するとともに、アクセスの履歴を出力する履歴出力部をさらに有し、
前記保持部において、前記アクセスの履歴に基づく前記既存の仮想ディスクへのアクセス頻度が前記仮想ディスク管理テーブルに格納されることを特徴とする、付記５記載のストレージ制御装置。
（付記７）
仮想マシンを実行するサーバ装置と、
少なくとも１つの物理ディスクを有する物理ストレージ装置と、
前記サーバ装置及び前記物理ストレージ装置の制御を行なうストレージ制御装置と、をそなえた情報処理装置であって、
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定する推定部と、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する仮予約部と、
前記新たな仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記新たな仮想ディスクのアクセス領域を前記仮予約部により仮予約された前記連続した複数の割当単位領域の少なくとも一部に割り当てる割当部と、
を有することを特徴とする、情報処理装置。
（付記８）
前記仮予約部は、前記既存の仮想ディスクの使用量に基づき前記新たな仮想ディスクに割り当てる仮予約実施量を決定し、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域を前記仮予約実施量の分だけ仮予約することを特徴とする、付記７記載の情報処理装置。
（付記９）
前記仮予約部は、前記新たな仮想ディスクが属する仮想ストレージの未使用量が第２の閾値よりも少ない場合には、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域の仮予約を抑止することを特徴とする、付記７又は付記８記載の情報処理装置。
（付記１０）
前記仮想ストレージの未使用量が第３の閾値よりも少ない場合に、前記仮想ストレージに属する仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記仮想ストレージに属する仮想ディスクのうちの、前記既存の仮想ディスクへのアクセス頻度が小さい仮想ディスクに対して仮予約された複数の割当単位領域の少なくとも一部を取り消す取消部をさらに有することを特徴とする、付記９記載の情報処理装置。
（付記１１）
前記割当部は、前記仮想ストレージに属する前記アクセスが発生した仮想ディスクのアクセス領域を、前記取消部によって取り消された前記複数の割当単位領域の少なくとも一部に割り当てることを特徴とする、付記１０記載の情報処理装置。
（付記１２）
前記仮想ディスクごとに、前記既存の仮想ディスクへのアクセス頻度を格納する仮想ディスク管理テーブルを保持する保持部をさらにそなえ、
前記既存の仮想ディスクへのアクセス頻度は、所定期間ごとのアクセス回数と平均データ転送量とを含むことを特徴とする、付記７〜１１のいずれか１項記載の情報処理装置。
（付記１３）
前記既存の仮想マシンによる既存の仮想ディスクへのアクセスを実行するとともに、アクセスの履歴を出力する履歴出力部をさらに有し、
前記保持部において、前記アクセスの履歴に基づく前記既存の仮想ディスクへのアクセス頻度が前記仮想ディスク管理テーブルに格納されることを特徴とする、付記１２記載の情報処理装置。
（付記１４）
仮想マシンに割り当てられた仮想ディスクと、物理ディスクの物理領域との管理を行なうコンピュータに実行させるストレージ制御プログラムであって、
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定し、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する、
処理を前記コンピュータに実行させることを特徴とする、ストレージ制御プログラム。
（付記１５）
前記仮予約を行なう処理において、前記既存の仮想ディスクの使用量に基づき前記新たな仮想ディスクに割り当てる仮予約実施量を決定し、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域を前記仮予約実施量の分だけ仮予約する、処理を前記コンピュータに実行させることを特徴とする、付記１４記載のストレージ制御プログラム。
（付記１６）
前記仮予約を行なう処理において、前記新たな仮想ディスクが属する仮想ストレージの未使用量が第２の閾値よりも少ない場合には、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域の仮予約を抑止する、処理を前記コンピュータに実行させることを特徴とする、付記１４又は付記１５記載のストレージ制御プログラム。
（付記１７）
前記仮想ストレージの未使用量が第３の閾値よりも少ない場合に、前記仮想ストレージに属する仮想ディスクへの物理領域の割り当てを伴うアクセスが発生すると、前記仮想ストレージに属する仮想ディスクのうちの、前記既存の仮想ディスクへのアクセス頻度が小さい仮想ディスクに対して仮予約された複数の割当単位領域の少なくとも一部を取り消す、処理を前記コンピュータに実行させることを特徴とする、付記１６記載のストレージ制御プログラム。
（付記１８）
仮想マシンに割り当てられた仮想ディスクと、物理ディスクの物理領域との管理を行なうストレージ制御装置における、ストレージ制御方法であって、
新たな仮想マシンを作成する際に、前記新たな仮想マシンの基となったマスタ情報から作成された既存の仮想マシンに割り当てられた既存の仮想ディスクへのアクセス頻度に基づき前記新たな仮想マシンに割り当てられる新たな仮想ディスクへのアクセス頻度を推定し、
推定した前記アクセス頻度が第１の閾値を超える場合に、物理ディスクの連続した複数の割当単位領域を前記新たな仮想ディスクのために仮予約する、
ことを特徴とする、ストレージ制御方法。
（付記１９）
前記仮予約を行なう処理において、前記既存の仮想ディスクの使用量に基づき前記新たな仮想ディスクに割り当てる仮予約実施量を決定し、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域を前記仮予約実施量の分だけ仮予約することを特徴とする、付記１８記載のストレージ制御方法。
（付記２０）
前記仮予約を行なう処理において、前記新たな仮想ディスクが属する仮想ストレージの未使用量が第２の閾値よりも少ない場合には、前記新たな仮想ディスクに対する前記連続した複数の割当単位領域の仮予約を抑止することを特徴とする、付記１８又は付記１９記載のストレージ制御方法。
【国際調査報告】
2014002162.tif 000017
2014002162.tif 000018
2014002162.tif 000019
2014002162.tif 000020