(57)【特許請求の範囲】
【請求項１】
ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出システムであって、
シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報が少なくとも格納される記憶装置と、
シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報と、前記複数のファイルのうち異なるファイル間及び同一ファイル内の１回のシーク距離を示すシーク距離情報と、が格納される記憶装置と、
前記複数のファイルに対してアクセスが発生した際の代表的なシーク距離を、少なくとも前記シーク距離情報を参照することによって算出する代表シーク距離算出モジュールと、
前記ディスクプロファイル情報を参照して、前記代表的なシーク距離に対応するディスク帯域幅を、前記アクセスが発生した際のディスク帯域幅として算出する帯域幅算出モジュールと
を備える
ディスク帯域幅算出システム。
【請求項２】
請求項１に記載のディスク帯域幅算出システムであって、
前記記憶装置には更に、前記ディスクにおけるファイルアクセスの特徴を示すアクセス特性情報が格納され、
前記代表シーク距離算出モジュールは、前記アクセス特性情報を参照して、前記シーク距離情報で示される前記１回のシーク距離の重み付け平均値を、前記代表的なシーク距離として算出する
ディスク帯域幅算出システム。
【請求項３】
請求項２に記載のディスク帯域幅算出システムであって、
前記アクセス特性情報は、前記複数のファイルのうち第１のファイルの次に第２のファイルがアクセスされる確率であるファイル切替率を示し、
前記代表シーク距離算出モジュールは、前記ファイル切替率を重み付け係数として用いることにより、前記重み付け平均値を算出する
ディスク帯域幅算出システム。
【請求項４】
請求項２に記載のディスク帯域幅算出システムであって、
前記アクセス特性情報は、同じファイルが連続的にアクセスされる回数を示し、
前記代表シーク距離算出モジュールは、前記回数を用いることにより、前記重み付け平均値を算出する
ディスク帯域幅算出システム。
【請求項５】
請求項１に記載のディスク帯域幅算出システムであって、
前記代表シーク距離算出モジュールは、前記シーク距離情報で示される前記１回のシーク距離の最大値を、前記代表的なシーク距離として算出する
ディスク帯域幅算出システム。
【請求項６】
請求項１乃至５のいずれかに記載のディスク帯域幅算出システムであって、
更に、シーク距離算出モジュールを備え、
前記記憶装置には更に、前記ディスク上の前記複数のファイルの位置を示すファイル位置情報が格納され、
前記シーク距離算出モジュールは、前記ファイル位置情報に基づいて前記シーク距離情報を作成する
ディスク帯域幅算出システム。
【請求項７】
請求項６に記載のディスク帯域幅算出システムであって、
更に、前記複数のファイルの数と各ファイルのサイズに基づいて前記ファイル位置情報を作成するファイル位置情報作成モジュールを備える
ディスク帯域幅算出システム。
【請求項８】
請求項７に記載のディスク帯域幅算出システムであって、
更に、前記複数のファイルの数を可変に設定するファイル数決定モジュールを備え、
前記設定数毎に、前記ファイル位置情報作成モジュールは前記ファイル位置情報を作成し、前記シーク距離算出モジュールは前記シーク距離情報を作成し、前記代表シーク距離算出モジュールは前記代表的なシーク距離を算出し、前記帯域幅算出モジュールは前記アクセスが発生した際の前記ディスク帯域幅を算出する
ディスク帯域幅算出システム。
【請求項９】
請求項８に記載のディスク帯域幅算出システムであって、
前記記憶装置には更に、前記ディスクに関して保証される所定の保証帯域幅を示す保証帯域幅情報が格納され、
前記ファイル数決定モジュールは、前記算出されたディスク帯域幅と前記保証帯域幅との比較を行い、前記比較の結果に基づいて前記設定数を変化させることにより、前記保証帯域幅を満足する前記複数のファイルの最大数を算出する
ディスク帯域幅算出システム。
【請求項１０】
請求項９に記載のディスク帯域幅算出システムであって、
前記ファイル数決定モジュールは、前記設定数を初期値に設定した後、前記算出されたディスク帯域幅が前記保証帯域幅よりも大きい場合に、前記設定数を増加させ、
前記算出されたディスク帯域幅が前記保証帯域幅よりも小さくなる場合の前記設定値に基づいて、前記ファイル数決定モジュールは前記最大数を算出する
ディスク帯域幅算出システム。
【請求項１１】
請求項９に記載のディスク帯域幅算出システムであって、
前記ファイル数決定モジュールは、前記ディスクのサイズと各ファイルのサイズから前記設定数の限界値を算出し、
前記ファイル数決定モジュールは、前記設定数を前記限界値に設定した後、前記算出されたディスク帯域幅が前記保証帯域幅よりも小さい場合に、前記設定数を減少させ、
前記算出されたディスク帯域幅が前記保証帯域幅よりも大きくなる場合の前記設定値に基づいて、前記ファイル数決定モジュールは前記最大数を算出する
ディスク帯域幅算出システム。
【請求項１２】
請求項６に記載のディスク帯域幅算出システムであって、
ディスクの数、前記複数のファイルの数、及び各ファイルのサイズに基づいて、１つのディスクに関する前記ファイル位置情報を作成するファイル位置情報作成モジュールを更に備える
ディスク帯域幅算出システム。
【請求項１３】
請求項１２に記載のディスク帯域幅算出システムであって、
更に、ディスクの数を可変に設定するディスク数決定モジュールを備え、
前記設定数毎に、前記ファイル位置情報作成モジュールは前記ファイル位置情報を作成し、前記シーク距離算出モジュールは前記シーク距離情報を作成し、前記代表シーク距離算出モジュールは前記代表的なシーク距離を算出し、前記帯域幅算出モジュールは前記アクセスが発生した際の前記ディスク帯域幅を算出する
ディスク帯域幅算出システム。
【請求項１４】
請求項１３に記載のディスク帯域幅算出システムであって、
前記記憶装置には更に、リクエストの負荷を示すリクエスト情報が格納され、
前記ディスク数決定モジュールは、前記算出されたディスク帯域幅と前記負荷に応じた帯域幅との比較を行い、前記比較の結果に基づいて前記設定数を変化させることにより、前記リクエストの処理に必要なディスクの数を算出する
ディスク帯域幅算出システム。
【請求項１５】
ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出システムであって、
シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報と、前記複数のファイルのうち異なるファイル間及び同一ファイル内の１回のシーク距離を示すシーク距離情報と、が格納される記憶装置と、
前記ディスクプロファイル情報と前記シーク距離情報とを参照して、前記複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出モジュールと
を備える
ディスク帯域幅算出システム。
【請求項１６】
ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出方法であって、
（Ａ）シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報と、前記複数のファイルのうち異なるファイル間及び同一ファイル内の１回のシーク距離を示すシーク距離情報と、を記憶装置から読み出すステップと、
（Ｂ）前記複数のファイルに対してアクセスが発生した際の代表的なシーク距離を、少なくとも前記シーク距離情報を参照することによって算出するステップと、
（Ｃ）前記ディスクプロファイル情報を参照して、前記代表的なシーク距離に対応するディスク帯域幅を、前記アクセスが発生した際のディスク帯域幅として算出するステップと
を含む
ディスク帯域幅算出方法。
【請求項１７】
ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出方法であって、
（Ａ）シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報と、前記複数のファイルのうち異なるファイル間及び同一ファイル内の１回のシーク距離を示すシーク距離情報を、記憶装置から読み出すステップと、
（Ｂ）前記ディスクプロファイル情報と前記シーク距離情報とを参照して、前記複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するステップと
を含む
ディスク帯域幅算出方法。
【請求項１８】
ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出プログラムであって、
（ａ）シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報と、前記複数のファイルのうち異なるファイル間及び同一ファイル内の１回のシーク距離を示すシーク距離情報と、を記憶装置から読み出すステップと、
（ｂ）前記複数のファイルに対してアクセスが発生した際の代表的なシーク距離を、少なくとも前記シーク距離情報を参照することによって算出するステップと、
（ｃ）前記ディスクプロファイル情報を参照して、前記代表的なシーク距離に対応するディスク帯域幅を、前記アクセスが発生した際のディスク帯域幅として算出するステップと
をコンピュータに実行させる
ディスク帯域幅算出プログラム。
【請求項１９】
ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出プログラムであって、
（ａ）シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報と、前記複数のファイルのうち異なるファイル間及び同一ファイル内の１回のシーク距離を示すシーク距離情報を、記憶装置から読み出すステップと、
（ｂ）前記ディスクプロファイル情報と前記シーク距離情報とを参照して、前記複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するステップと
をコンピュータに実行させる
ディスク帯域幅算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するための技術に関する。
【背景技術】
【０００２】
高性能化したコンピュータの使用率の向上を１つの目的として、仮想化技術の導入が検討されている。仮想化技術によれば、物理マシン上に少なくとも１つの仮想マシン（ＶＭ: Virtual Machine）が構築される。より詳細には、各仮想マシンには、ＣＰＵやメモリ、ディスク等の物理マシンのリソースが割り当てられ、各仮想マシンは、割り当てられたリソースを自由に利用することにより、あたかも１台の物理マシンのようにソフトウェアを実行することができる。物理マシンのリソースを共有することにより、１台の物理マシン上で複数の仮想マシンを動作させることができる。
【０００３】
このような仮想化技術が導入されたシステムにおいては、それぞれの仮想マシンに対してどのようにリソースを配分するかが、リソースの利用効率を高める上で重要である。
【０００４】
非特許文献１には、仮想マシンに対するＣＰＵ、ディスク、ネットワークといったリソースの配分方法が記載されている。ＣＰＵに関しては、負荷量に基づく待ち行列からレスポンスタイムが算出され、要求レスポンスタイムを満足するＣＰＵリソース量が配分される。ディスクに関しては、各仮想マシンの要求ディスクサイズの総和が物理マシンのディスクサイズ（ディスク容量）を越えないように、ディスクリソースが配分される。ネットワークに関しては、各仮想マシンの要求帯域幅の総和が物理マシンの帯域幅を越えないように、ネットワークリソースが配分される。
【０００５】
【非特許文献１】Y. Ding and E. Bolker, “How many guests can you serve? - On the number of partitions”, the Proc. of CMG conference, 2006.
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本願発明者は、次の点に着目した。
一例として、実際の運用において、１台のディスクに対して複数の仮想マシンからアクセスが集中した場合を考える。この場合、ディスクとＣＰＵとの間の単位時間あたりのデータ転送速度である「ディスク帯域幅（disk bandwidth）」が低下する可能性がある。しかしながら、上述の非特許文献１に記載された技術では、仮想マシンへのディスクリソースの配分を決定する際には、ディスク容量だけが考慮され、ディスク帯域幅は考慮されていなかった。従って、複数の仮想マシンを起動させた後、それら仮想マシンからディスクに対してアクセスが集中すると、所望のディスク帯域幅が得られない可能性がある。
【０００７】
このように、仮想マシンへのリソース配分を決定する際には、ディスク帯域幅も考慮することが好適である。そのために、複数の仮想マシンからディスクに対してアクセスが発生した際のディスク帯域幅を見積もることができる技術が望まれる。より一般的には、ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を見積もることができる技術が望まれる。
【０００８】
本発明の１つの目的は、ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を見積もることができる技術を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１の観点において、ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出システムが提供される。そのディスク帯域幅算出システムは、記憶装置と、代表シーク距離算出モジュールと、帯域幅算出モジュールとを備える。記憶装置には、シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報が少なくとも格納される。代表シーク距離算出モジュールは、複数のファイルに対してアクセスが発生した際の代表的なシーク距離を算出する。帯域幅算出モジュールは、ディスクプロファイル情報を参照して、上記代表的なシーク距離に対応するディスク帯域幅を、複数のファイルに対してアクセスが発生した際のディスク帯域幅として算出する。
【００１０】
本発明の第２の観点において、ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出システムが提供される。そのディスク帯域幅算出システムは、記憶装置と、ディスク帯域幅算出モジュールとを備える。記憶装置には、シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報と、複数のファイルのうち異なるファイル間及び同一ファイル内の１回のシーク距離を示すシーク距離情報と、が格納される。ディスク帯域幅算出モジュールは、ディスクプロファイル情報とシーク距離情報とを参照して、複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出する。
【００１１】
本発明の第３の観点において、ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出方法が提供される。そのディスク帯域幅算出方法は、（Ａ）シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報を記憶装置から読み出すステップと、（Ｂ）複数のファイルに対してアクセスが発生した際の代表的なシーク距離を算出するステップと、（Ｃ）ディスクプロファイル情報を参照して、上記代表的なシーク距離に対応するディスク帯域幅を、複数のファイルに対してアクセスが発生した際のディスク帯域幅として算出するステップと、を含む。
【００１２】
本発明の第４の観点において、ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出方法が提供される。そのディスク帯域幅算出方法は、（Ａ）シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報と、複数のファイルのうち異なるファイル間及び同一ファイル内の１回のシーク距離を示すシーク距離情報を、記憶装置から読み出すステップと、（Ｂ）ディスクプロファイル情報とシーク距離情報とを参照して、複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するステップと、を含む。
【００１３】
本発明の第５の観点において、ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出プログラムが提供される。そのディスク帯域幅算出プログラムは、次の処理をコンピュータに実行させる。すなわち、その処理は、（ａ）シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報を記憶装置から読み出すステップと、（ｂ）複数のファイルに対してアクセスが発生した際の代表的なシーク距離を算出するステップと、（ｃ）ディスクプロファイル情報を参照して、上記代表的なシーク距離に対応するディスク帯域幅を、複数のファイルに対してアクセスが発生した際のディスク帯域幅として算出するステップと、を含む。
【００１４】
本発明の第６の観点において、ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するディスク帯域幅算出プログラムが提供される。そのディスク帯域幅算出プログラムは、次の処理をコンピュータに実行させる。すなわち、その処理は、（ａ）シーク距離とディスク帯域幅の統計的な関係を示すディスクプロファイル情報と、前記複数のファイルのうち異なるファイル間及び同一ファイル内の１回のシーク距離を示すシーク距離情報を、記憶装置から読み出すステップと、（ｂ）前記ディスクプロファイル情報と前記シーク距離情報とを参照して、前記複数のファイルに対してアクセスが発生した際のディスク帯域幅を算出するステップと、を含む。
【発明の効果】
【００１５】
本発明によれば、ディスク上の複数のファイルに対してアクセスが発生した際のディスク帯域幅を見積もることが可能となる。
【発明を実施するための最良の形態】
【００１６】
ディスク上のあるデータを読み書きするとき、ディスクヘッドはそのデータに対応する位置に移動する。例えば、ディスクヘッドは、１回のｒｅａｄサイズ分だけデータを読み出しては、同一ファイル内または異なるファイル間で移動を繰り返す。このようなディスクヘッドの動きは「シーク」と呼ばれる。
【００１７】
最初に、図１を参照して、ディスク上の複数のファイルに対してアクセスが発生する場合を説明する。一例として、物理マシン上でｎ台（ｎは２以上の整数）の仮想マシンＶＭ１〜ＶＭｎが動作する場合を考える。物理マシンはディスク１００を有しており、ｎ台の仮想マシンＶＭ１〜ＶＭｎのそれぞれにはディスク１００の異なる領域が割り当てられている。ここで、ディスク１００に対してｎ台の仮想マシンＶＭ１〜ＶＭｎからアクセスが集中する場合を考える。例えば、仮想マシンＶＭ１〜ＶＭｎからディスク１００上のファイルＦ１〜Ｆｎのそれぞれに対して、ｒｅａｄアクセスがほぼ同時に発生する。この場合、ディスクヘッドは、ｎ個のファイルＦ１〜Ｆｎ間を往復しながら各ファイルのデータを読み出す。従って、ディスク帯域幅の低下が発生する。
【００１８】
図１で例示されたように、ディスク１００上の複数のファイルＦ１〜Ｆｎに対してアクセスが発生する状態が考えられる。そのような状態は、以下「複数ファイルアクセス」と参照される場合がある。本発明の実施の形態では、複数ファイルアクセスが発生した際のディスク帯域幅を見積もるための技術が提供される。以下、添付図面を参照して、本発明の様々な実施の形態を詳細に説明する。
【００１９】
１．第１の実施の形態
１−１．構成
図２は、第１の実施の形態に係るディスク帯域幅算出システム１の構成を示すブロック図である。ディスク帯域幅算出システム１は、複数ファイルアクセスが発生した際のディスク帯域幅を推定するためのコンピュータシステムである。このディスク帯域幅算出システム１は、記憶装置２、処理装置３、入力装置４、及び出力装置５を備えている。記憶装置２としては、ＨＤＤ（Hard Disk Drive）やＲＡＭ（Random Access Memory）が例示される。処理装置３は、ＣＰＵ（Central Processing Unit）を含んでいる。入力装置４としては、キーボード、マウス、メディアドライブ、ネットワークインターフェース等が例示される。出力装置５としては、ディスプレイ、メディアドライブ、ネットワークインターフェース等が例示される。
【００２０】
記憶装置２には、ファイル位置情報ＬＯＣ、アクセス特性情報ＡＣＳ、ディスクプロファイル情報ＰＲＦ、及びシーク距離情報ＳＥＫが格納される。各情報の詳細は次の通りである。
【００２１】
（ファイル位置情報ＬＯＣ）
ファイル位置情報ＬＯＣは、アクセス対象のファイルＦ１〜Ｆｎのディスク１００上での位置を示す情報である。図３には、ディスク１００上のファイルＦ１〜Ｆｎのうち２つのファイルＦｉ及びＦｊが示されている（ｉ＝１〜ｎ，ｊ＝１〜ｎ，ｉ≠ｊ）。図３に示されるように、各ファイルに関して、ディスク１００上の開始位置及び終了位置が定義され得る。ファイル位置情報ＬＯＣは、各ファイルの開始位置及び終了位置を示す情報である。あるいは、ファイルサイズが開始位置から終了位置までのサイズで規定されるため、ファイル位置情報ＬＯＣは、開始位置あるいは終了位置のいずれかとファイルサイズを示していてもよい。
【００２２】
図４Ａは、ファイル位置情報ＬＯＣの一例を示している。図４Ａで示される例では、ファイル位置情報ＬＯＣは、ファイル名、開始位置及び終了位置の対応関係を、ファイルＦ１〜Ｆｎのそれぞれに関して示している。また、図４Ｂは、ファイル位置情報ＬＯＣの他の例を示している。図４Ｂで示される例では、ファイル位置情報ＬＯＣは、ファイル名、開始位置及びファイルサイズの対応関係を、ファイルＦ１〜Ｆｎのそれぞれに関して示している。各ファイルの終了位置は、開始位置とファイルサイズから求めることができる。尚、図４Ａ及び図４Ｂで示された例では、ファイル位置を表す単位として、ディスク１００の先頭からのバイト数が用いられているが、それに限られない。ファイル位置は、ディスク１００の先頭からのシリンダ数などで表されてもよい。
【００２３】
（アクセス特性情報ＡＣＳ）
アクセス特性情報ＡＣＳは、ディスク１００におけるファイルアクセスの特徴を示す情報である。言い換えれば、アクセス特性情報ＡＣＳは、ディスク１００上のアクセス対象ファイルの変更パターンを示す。そのようなアクセス対象ファイルの変更パターンは、ファイルアクセスのスケジューリングポリシーにより決まる。一般に、ファイルアクセスのスケジューリングポリシーは、ＬｉｎｕｘやＸｅｎ仮想マシン等のプラットフォームによって異なる。従って、アクセス対象ファイルの変更パターンも、プラットフォームの種類に依存して異なる。
【００２４】
アクセス特性情報ＡＣＳは、例えば「ファイル切替率α」を与える。既出の図３を参照して、ファイル切替率αについて説明する。図３で示された２つのファイルＦｉ、Ｆｊに対して、ｒｅａｄアクセスが発生した場合を考える。この場合、ディスクヘッドは、ファイルＦｉ又はＦｊのデータを１回のｒｅａｄサイズ分だけ読み出しては移動するという動作を繰り返す。このとき、ファイルＦｉの次にファイルＦｊのデータが読み出される確率が、ファイル切替率αｉｊである。同様に、ファイルＦｊの次にファイルＦｉのデータが読み出される確率が、ファイル切替率αｊｉである。また、ディスクヘッドは、あるファイルの次に同じファイルのデータを再度読み出す場合もある。ファイルＦｉの次に同じファイルＦｉのデータが読み出される確率がファイル切替率αｉｉであり、ファイルＦｊの次に同じファイルＦｊのデータが読み出される確率がファイル切替率αｊｊである。より一般的には、ディスク１００上の複数のファイルのうち第１のファイルの次に第２のファイルがアクセスされる確率が、第１のファイルと第２のファイルとの間の「ファイル切替率α」である。第１のファイルと第２のファイルは同じである場合もある。尚、ファイル切替率αは、実際のシステム運用中のファイルアクセス履歴から求めることができる。
【００２５】
図５Ａは、アクセス特性情報ＡＣＳの一例を示している。図５Ａで示される例では、アクセス特性情報ＡＣＳはファイル切替率αｉｊに関する確率行列を示しており、各ファイル間のファイル切替率αｉｊ（ｉ＝１〜ｎ，ｊ＝１〜ｎ）が行列形式で与えられている。図５Ｂは、アクセス特性情報ＡＣＳの他の例を示している。図５Ｂで示される例では、同じファイルが連続してアクセスされる確率αｉｉ（ｉ＝１〜ｎ）だけが示されている。この場合は、あるファイルの次に異なるファイルがアクセスされる確率αｉｊ（ｉ＝１〜ｎ，ｊ＝１〜ｎ，ｉ≠ｊ）は、全て均等であると仮定される。つまり、ファイル切替率αｉｊは、全て同じ値（１−αｉｉ）／（ｎ−１）であると仮定される。
【００２６】
（ディスクプロファイル情報ＰＲＦ）
ディスクプロファイル情報ＰＲＦは、ディスクヘッドのシーク距離とディスク帯域幅との統計的な関係を示す情報である。
【００２７】
シーク距離とディスク帯域幅との対応関係の一例を詳しく説明するために、ディスク中のあるテスト領域に対してＮ回のリードアクセスが連続的に実施される場合を考える。このとき、ディスクヘッドは、当該テスト領域中でＮ回のシーク動作を行う。Ｎが多数であり、且つ、Ｎ回のリードアクセスがテスト領域に対してランダムに発生する場合、Ｎ回のシーク距離の平均値ｘは、当該テスト領域のサイズＬＴの半分となる（ｘ＝ＬＴ／２）。一方、１回当たりのリードデータ量がＳＲであり、Ｎ回のリードアクセスに要した時間がＴであったとする。このとき、単位時間あたりのディスク帯域幅ｙは、ｙ＝（Ｎ×ＳＲ）／Ｔで与えられる。このようにして、ある平均シーク距離ｘ（＝ＬＴ／２）と、それに対応するディスク帯域幅ｙが得られる。テスト領域のサイズＬＴをディスクのトータルサイズの範囲内で様々に設定することにより、平均シーク距離ｘとディスク帯域幅ｙとの間の様々な対応関係、すなわち、平均シーク距離ｘとディスク帯域幅ｙとの統計的な関係を取得することができる。
【００２８】
図６Ａは、その対応関係ｙ＝ｆ（ｘ）を示すグラフ図である。図６Ａにおいて、横軸は平均シーク距離ｘを表し、縦軸はディスク帯域幅ｙを表している。図６Ａに示されるように、平均シーク距離ｘが短いほどディスク帯域幅ｙは大きくなり、一方、平均シーク距離ｘが長いほどディスク帯域幅ｙは小さくなる。このような関係は、C. Ruemmler and J. Wilkes, “An Introduction to Disk Drive Modeling”, Computer, Vol. 27, No. 3, pp. 17-29, 1994.でも報告されている。
【００２９】
ディスクプロファイル情報ＰＲＦは、例えば、以上に説明された平均シーク距離とディスク帯域幅との統計的な対応関係を示している。例えば、ディスクプロファイル情報ＰＲＦは、図６Ａで示されたような関数ｙ＝ｆ（ｘ）を与える。あるいは、図６Ｂに示されるように、ディスクプロファイル情報ＰＲＦは、平均シーク距離とディスク帯域幅との対応関係をテーブル形式で与えてもよい。図６Ｂによれば、例えば、平均シーク距離が０．５ＧＢｙｔｅのときにディスク帯域幅は０．５Ｍｂｙｔｅ／ｓｅｃであり、平均シーク距離が６４ＧＢｙｔｅのときにディスク帯域幅は０．２３Ｍｂｙｔｅ／ｓｅｃであることがわかる。テーブルのエントリに直接示されていない平均シーク距離に対応するディスク帯域幅は、エントリ間を補間すること等によって算出することができる。尚、シーク距離は、バイト数だけでなくシリンダ数でも表され得る。
【００３０】
また、ディスクプロファイル情報ＰＲＦは上述の例に限られず、統計的あるいは経験的に得られるシーク距離とディスク帯域幅との対応関係を示していればよい。例えば、ディスクプロファイル情報ＰＲＦは、統計的に得られるシーク距離の中間値とディスク帯域幅との対応関係を示していてもよい。
【００３１】
（シーク距離情報ＳＥＫ）
シーク距離情報ＳＥＫは、１回のシーク距離の指標を与える情報である。シーク距離情報ＳＥＫの詳細に関しては、後述される。
【００３２】
再度図２を参照して、記憶装置２には更に、プログラムＰＲＯＧが格納されている。プログラムＰＲＯＧは、処理装置３によって実行されるソフトウェアである。典型的には、プログラムＰＲＯＧは、コンピュータ読み取り可能な記録媒体に記録されており、処理装置３によって読み込まれる。あるいは、プログラムＰＲＯＧは、ネットワークを介して提供されてもよい。
【００３３】
処理装置３は、このプログラムＰＲＯＧを実行することによって、様々な機能を提供する。具体的には、処理装置３は、データ入力モジュール１０、シーク距離算出モジュール３０、ディスク帯域幅算出モジュール４０、及び出力モジュール７０を有している。これらモジュールは、処理装置３がプログラムＰＲＯＧを実行することによって実現される。すなわち、これらモジュールは、処理装置３とプログラムＰＲＯＧとの協働により実現される。以下、各モジュールによる処理を詳細に説明する。
【００３４】
１−２．処理フロー
図７は、第１の実施の形態における処理フローを示すブロック図である。図８は、第１の実施の形態における処理を示すフローチャートである。
【００３５】
（ステップＳ１０）
処理に必要な各種情報は、入力装置４を通して入力される。データ入力モジュール１０は、入力された各種情報を取得し、記憶装置２に格納する。本実施の形態において、データ入力モジュール１０は、上述のファイル位置情報ＬＯＣ、アクセス特性情報ＡＣＳ及びディスクプロファイル情報ＰＲＦを取得し、記憶装置２に格納する。
【００３６】
（ステップＳ３０）
シーク距離算出モジュール３０は、記憶装置２からファイル位置情報ＬＯＣを読み出し、そのファイル位置情報ＬＯＣに基づいて、「ファイル間シーク距離Ｌｉｊ」及び「ファイル内シーク距離Ｌｉｉ」をそれぞれ算出する。図９を参照して、ファイル間シーク距離Ｌｉｊ及びファイル内シーク距離Ｌｉｉを説明する。
【００３７】
ファイル間シーク距離Ｌｉｊは、アクセス対象のファイルＦ１〜Ｆｎのうち異なる２つのファイルＦｉとＦｊの間の１回のシーク距離である。例えば、ファイル間シーク距離Ｌｉｊは、ファイルＦｉとファイルＦｊとの間の平均的なシーク距離である。この場合、図９に示されるように、ファイル間シーク距離Ｌｉｊは、ファイルＦｉの中心位置とファイルＦｊの中心位置との間の距離で与えられる。あるいは、ファイル間シーク距離Ｌｉｊは、ファイルＦｉの開始位置とファイルＦｊの終了位置との間の距離（最長距離）であってもよい。あるいは、ファイル間シーク距離Ｌｉｊは、ファイルＦｉの終了位置とファイルＦｊの開始位置との間の距離（最短距離）であってもよい。
【００３８】
一方、ファイル内シーク距離Ｌｉｉは、同じファイルＦｉ内での１回のシーク距離である。例えば、ファイル内シーク距離Ｌｉｉは、ファイルＦｉ内での平均的なシーク距離である。ファイル内のアクセスがランダムであると仮定すると、ファイル内シーク距離Ｌｉｉは、ファイルサイズの半分の値となる。あるいは、ファイル内シーク距離Ｌｉｉは、ファイルＦｉの開始位置から終了位置までの距離、すなわち、ファイルＦｉのファイルサイズで与えられてもよい。
【００３９】
このように、ファイル間シーク距離Ｌｉｊやファイル内シーク距離Ｌｉｉは、１回のシーク距離の指標を示しており、上述のファイル位置情報ＬＯＣ（開始位置、終了位置、ファイルサイズ）から算出可能である。そして、それら算出されたファイル間シーク距離Ｌｉｊやファイル内シーク距離Ｌｉｉのそれぞれを示す情報が、「シーク距離情報ＳＥＫ」である。すなわち、シーク距離算出モジュール３０は、ファイル位置情報ＬＯＣに基づいてシーク距離情報ＳＥＫを作成する。
【００４０】
（ステップＳ４０）
ディスク帯域幅算出モジュール４０は、記憶装置２から、シーク距離情報ＳＥＫ、アクセス特性情報ＡＣＳ及びディスクプロファイル情報ＰＲＦを読み出す。上述の通り、アクセス特性情報ＡＣＳは、ファイル切替率α等のファイルアクセスの特徴を示している。従って、アクセス特性情報ＡＣＳに基づいて、複数ファイルアクセスが発生する際の状況を考慮することができる。また、ディスクプロファイル情報ＰＲＦは、平均シーク距離とディスク帯域幅との統計的な対応関係を示している。従って、ディスク帯域幅算出モジュール４０は、シーク距離情報ＳＥＫ、アクセス特性情報ＡＣＳ及びディスクプロファイル情報ＰＲＦを参照することにより、複数ファイルアクセスが発生した際のディスク帯域幅を算出することができる。
【００４１】
例えば、図７に示されるように、ディスク帯域幅算出モジュール４０は、代表シーク距離算出モジュール４１と帯域幅算出モジュール４２を含んでいる。代表シーク距離算出モジュール４１と帯域幅算出モジュール４２は、それぞれ次のような処理を行う。
【００４２】
（ステップＳ４１）
代表シーク距離算出モジュール４１は、シーク距離情報ＳＥＫで示されるシーク距離Ｌｉｊ、Ｌｉｉを参照して、複数ファイルアクセスが発生した際の代表的なシーク距離（以下、「代表シーク距離Ｌｒｅｐ」と参照される）を算出する。
【００４３】
代表シーク距離Ｌｒｅｐの算出にあたり、代表シーク距離算出モジュール４１は、アクセス特性情報ＡＣＳを参照することができる。例えば、アクセス特性情報ＡＣＳは、ファイル切替率αを示しているとする。図９で示されるように、ファイルＦｉの次にファイルＦｊがアクセスされる確率はαｉｊであり、その場合のシーク距離はＬｉｊである。また、ファイルＦｉの次に同じファイルＦｉがアクセスされる確率はαｉｉであり、その場合のシーク距離はＬｉｉである。従って、代表シーク距離算出モジュール４１は、ファイル切替率αを用いることによって、複数ファイルアクセスが発生した際のシーク距離の確率的な期待値（平均値）を算出することができる。その期待値が、代表シーク距離Ｌｒｅｐとして用いられる。より詳細には、この場合の代表シーク距離Ｌｒｅｐは、次の式（１）で表される。
【００４４】
【数１】
0005013099.tif 000002
【００４５】
上記式（１）で与えられる代表シーク距離Ｌｒｅｐは、ステップＳ３０で算出されたシーク距離Ｌｉｊ、Ｌｉｉの重み付け平均値である。すなわち、代表シーク距離算出モジュール４１は、ファイル切替率αｉｊを重み付け係数として用い、１回のシーク距離Ｌｉｊ、Ｌｉｉの重み付け平均値を代表シーク距離Ｌｒｅｐとして算出する。
【００４６】
（ステップＳ４２）
帯域幅算出モジュール４２は、ディスクプロファイル情報ＰＲＦを参照して、ステップＳ４１で算出された代表シーク距離Ｌｒｅｐに対応するディスク帯域幅ＢＷを算出する。ディスクプロファイル情報ＰＲＦが図６Ａで示されるような関数ｙ＝ｆ（ｘ）を与えている場合、代表シーク距離Ｌｒｅｐをその関数に代入することにより、対応するディスク帯域幅ＢＷを算出することができる。図６Ｂに示されるように、平均シーク距離とディスク帯域幅との対応関係がテーブル形式で与えられている場合、補間により、代表シーク距離Ｌｒｅｐに対応するディスク帯域幅ＢＷを算出することができる。あるいは、そのテーブルを基にフィッティング関数が求め、そのフィッティング関数を用いることによりディスク帯域幅ＢＷを算出してもよい。このようにして算出されたディスク帯域幅ＢＷが、複数ファイルアクセスが発生した際のディスク帯域幅の推定値である。
【００４７】
（ステップＳ７０）
出力モジュール７０は、推定されたディスク帯域幅ＢＷを、出力装置５を通して出力する。例えば、出力装置５はディスプレイであり、ディスク帯域幅ＢＷがディスプレイに表示される。ユーザーは、表示を参照して、複数ファイルアクセスが発生したときのディスク帯域幅ＢＷが所望のディスク帯域幅を満足するか否かを判断することができる。言い換えれば、たとえ複数ファイルアクセスが発生したとしても所望のディスク帯域幅が保証されるか否かを判断することができる。
【００４８】
１−３．処理の一例
次に、具体的な数値を用いて、処理の一例を説明する。アクセス対象としてのファイルＦ１〜Ｆｎは、物理マシン上で動作する３台の仮想マシンＶＭ１〜ＶＭ３のそれぞれのイメージファイルであるとする（ｎ＝３）。例えば、それら３台の仮想マシンＶＭ１〜ＶＭ３が起動される際に、ディスク上のそれぞれのＶＭイメージファイルに対してアクセスが発生する。
【００４９】
図１０は、本例において入力される各種情報を示している。ファイル位置情報ＬＯＣは、３個のＶＭイメージファイルのそれぞれのディスク１００上の開始位置及び終了位置を示している。アクセス特性情報ＡＣＳは、ファイル切替率αｉｉ、すなわち同じファイルが連続してアクセスされる確率αｉｉだけを示している。この場合は、あるファイルの次に異なるファイルがアクセスされる確率αｉｊは、全て均等であると仮定される。つまり、ファイル切替率αｉｊ（ｉ≠ｊ）は、全て同じ値（１−αｉｉ）／（ｎ−１）であると仮定される。本例では、プラットフォームとしてＸｅｎが想定され、ファイル切替率αｉｉは０．０であるとする。これは、あるファイルの次には必ず異なるファイルがアクセスされることを意味している。ｎ＝３であるため、ファイル切替率αｉｊ（ｉ≠ｊ）は０．５である。
【００５０】
ステップＳ３０において、シーク距離算出モジュール３０は、ファイル位置情報ＬＯＣに基づいて、ファイル間シーク距離Ｌｉｊ及びファイル内シーク距離Ｌｉｉをそれぞれ算出する。本例では、ファイル間シーク距離は、Ｌ１２＝Ｌ２１＝３０［ＧＢｙｔｅ］、Ｌ１３＝Ｌ３１＝７０［ＧＢｙｔｅ］、Ｌ２３＝Ｌ３２＝４０［ＧＢｙｔｅ］と算出される。また、各イメージファイルのサイズは１０［ＧＢｙｔｅ］なので、ファイル内シーク距離は、Ｌ１１＝Ｌ２２＝Ｌ３３＝５［ＧＢｙｔｅ］と算出される。
【００５１】
ステップＳ４１において、代表シーク距離算出モジュール４１は、上記式（１）に従って代表シーク距離Ｌｒｅｐを算出する。本例では、次に示されるように、代表シーク距離Ｌｒｅｐは、４６．７［ＧＢｙｔｅ］と算出される；
Ｌｒｅｐ＝（０×５＋０．５×３０＋０．５×７０
＋０．５×３０＋０×５＋０．５×４０
＋０．５×７０＋０．５×４０＋０×５）／３
＝４６．７
【００５２】
ステップＳ４２において、帯域幅算出モジュール４２は、代表シーク距離Ｌｒｅｐに対応するディスク帯域幅ＢＷを算出する。本例では、ディスクプロファイル情報ＰＲＦはテーブル形式で与えられており、平均シーク距離＝３２［ＧＢｙｔｅ］に対応するディスク帯域幅は０．２７［ＭＢｙｔｅ／ｓｅｃ］であり、平均シーク距離＝６４［ＧＢｙｔｅ］に対応するディスク帯域幅は０．２３［ＭＢｙｔｅ／ｓｅｃ］である。従って、代表シーク距離Ｌｒｅｐ（＝４６．７［ＧＢｙｔｅ］）に対応するディスク帯域幅ＢＷは、直線近似により、約０．２５２［ＭＢｙｔｅ／ｓｅｃ］と算出される。また、各ファイルのファイルサイズ及びファイル切替率αｉｊが等しいため、０．２５２［ＭＢｙｔｅ／ｓｅｃ］のディスク帯域幅は均等配分され、各ファイルごとのディスク帯域幅ＢＷは０．０８４［ＭＢｙｔｅ／ｓｅｃ］と算出される。
【００５３】
ステップＳ７０において、出力モジュール７０は、算出されたディスク帯域幅ＢＷを出力する。本例では、各ファイルに関するディスク帯域幅として、０．０８４［ＭＢｙｔｅ／ｓｅｃ］が出力される。また、全ファイルに関するディスク帯域幅の総和として、０．２５２［ＭＢｙｔｅ／ｓｅｃ］が出力される。
【００５４】
１−４．効果
以上に説明されたように、本実施の形態によれば、ディスク１００上の複数のファイルに対してアクセスが発生した際のディスク帯域幅ＢＷを見積もることが可能となる。ユーザーは、見積もられたディスク帯域幅ＢＷが所望のディスク帯域幅を満足するか否かを判断することができる。言い換えれば、たとえ複数ファイルアクセスが発生したとしても所望のディスク帯域幅が保証されるか否かを判断することができる。
【００５５】
また、本実施の形態によれば、代表シーク距離Ｌｒｅｐの算出時、ファイルアクセスのスケジューリングポリシーに依存するファイル切替率αが、重み付け係数として利用される。そのスケジューリングポリシーは、ＬｉｎｕｘやＸｅｎ仮想マシン等のプラットフォームによって異なる。ファイル切替率αを利用することにより、プラットフォームの種類に応じた精密な解析が可能となる。
【００５６】
１−５．変形例（１）
上述の通り、ステップＳ４０において、ディスク帯域幅算出モジュール４０は、複数ファイルアクセスが発生した際のディスク帯域幅ＢＷを算出する。このとき、ディスク帯域幅算出モジュール４０は、次の式（２）に従って、ディスク帯域幅ＢＷを算出することもできる。
【００５７】
【数２】
0005013099.tif 000003
【００５８】
この場合、代表シーク距離Ｌｒｅｐを算出する必要はない。ディスク帯域幅算出モジュール４０は、シーク距離情報ＳＥＫ、アクセス特性情報ＡＣＳ及びディスクプロファイル情報ＰＲＦを参照することにより、ディスク帯域幅ＢＷを算出することができる。
【００５９】
１−６．変形例（２）
アクセス特性情報ＡＣＳが示す内容は、ファイル切替率αに限られない。例えば、アクセス特性情報ＡＣＳは、同じファイルが連続的にアクセスされる平均的な回数ｄを示していてもよい。以下、その回数ｄは、「連続アクセス回数」と参照される。この連続アクセス回数ｄも、ファイルアクセスのスケジューリングポリシーにより決まる。
【００６０】
全てのファイルの特徴が同じであり、それぞれのファイルに対するアクセス率に偏りが無い場合を考える。この場合、上述のファイル切替率αｉｉはｉの値に依存せず、ファイル切替率αｉｉと連続アクセス回数ｄの間には、次の関係式：αｉｉ＝ｄ／（ｄ＋１）が成り立つ。ステップＳ４１において、代表シーク距離算出モジュール４１は、次の式（３）に従って、代表シーク距離Ｌｒｅｐを算出することができる。
【００６１】
【数３】
0005013099.tif 000004
【００６２】
既出の式（１）の場合と同様に、式（３）で与えられる代表シーク距離Ｌｒｅｐは、ステップＳ３０で算出されたシーク距離Ｌｉｊ、Ｌｉｉの重み付け平均値であると言える。すなわち、代表シーク距離算出モジュール４１は、連続アクセス回数ｄを用いることにより、シーク距離Ｌｉｊ、Ｌｉｉの重み付け平均値を代表シーク距離Ｌｒｅｐとして算出することができる。
【００６３】
あるいは、変形例（１）と同様に、ディスク帯域幅ＢＷを、代表シーク距離Ｌｒｅｐを求めることなく算出することもできる。具体的には、ディスク帯域幅算出モジュール４０は、次の式（４）に従って、ディスク帯域幅ＢＷを算出することができる。
【００６４】
【数４】
0005013099.tif 000005
【００６５】
１−７．変形例（３）
図１１は、既出の図７と同様の図であり、他の処理フローを概念的に示している。図１１で示される変形例では、代表シーク距離算出モジュール４１は、シーク距離情報ＳＥＫを参照し、シーク距離Ｌｉｉ，Ｌｉｊの“最大値”を代表シーク距離Ｌｒｅｐとして算出する（ステップＳ４１）。具体的には、ファイル間シーク距離Ｌｉｊの最大値が、代表シーク距離Ｌｒｅｐとなる。帯域幅算出モジュール４２は、ファイル間シーク距離Ｌｉｊの最大値に対応するディスク帯域幅ＢＷを算出する（ステップＳ４２）。このようにして得られるディスク帯域幅ＢＷは、複数ファイルアクセス発生時のディスク帯域幅の“最悪値”に相当する。
【００６６】
本変形例では、ディスク帯域幅ＢＷの算出にあたりアクセス特性情報ＡＣＳを用いる必要がないことに留意されたい。図１１に示されるように、ディスク帯域幅算出モジュール４０は、シーク距離情報ＳＥＫ及びディスクプロファイル情報ＰＲＦだけを参照することにより、複数ファイルアクセス発生時のディスク帯域幅ＢＷを算出する。従って、処理が簡略化される。また、本変形例によれば、複数ファイルアクセス発生時のディスク帯域幅の最悪値を見積もることが可能となる。
【００６７】
１−８．変形例（４）
シーク距離Ｌｉｊ、Ｌｉｉを与えるシーク距離情報ＳＥＫは、予め作成されていてもよい。シーク距離情報ＳＥＫの作成方法は、上述のシーク距離算出モジュール３０による作成方法と同様である。
【００６８】
図１２は、本変形例における処理フローを概念的に示している。データ入力モジュール１０’は、シーク距離情報ＳＥＫ、アクセス特性情報ＡＣＳ及びディスクプロファイル情報ＰＲＦを取得し、記憶装置２に格納する。ディスク帯域幅算出モジュール４０は、記憶装置２から、シーク距離情報ＳＥＫ及びディスクプロファイル情報ＰＲＦを読み出す。必要に応じて、アクセス特性情報ＡＣＳが読み出されてもよい。そして、ディスク帯域幅算出モジュール４０は、それら情報を参照して、複数ファイルアクセスが発生した際のディスク帯域幅ＢＷを算出する。その算出方法は、上述の実施の形態や変形例で説明された方法のいずれでもよい。
【００６９】
２．第２の実施の形態
上述の非特許文献１に記載された技術によれば、仮想マシンへのディスクリソースの配分を決定する際には、物理マシンのディスク容量だけが考慮されていた。具体的には、各仮想マシンの要求ディスクサイズの総和がディスク容量を越えないように、ディスクリソースが配分されていた。この場合、１つのディスクで運用可能な仮想マシンの最大数は、そのディスク容量を、１つの仮想マシンに割り当てられるディスクサイズで割ることにより見積もられる。しかしながら、この方法では、複数ファイルアクセス発生時のディスク帯域幅の低下が考慮されていない。従って、見積もられた最大数の仮想マシンを起動させた後、それら仮想マシンからディスクに対してアクセスが集中すると、所望のディスク帯域幅が得られない恐れがある。
【００７０】
そこで、本発明の第２の実施の形態では、複数ファイルアクセスが発生した場合であっても、所望のディスク帯域幅が保証され得るファイルの最大数を見積もるための技術が提案される。ディスクに関して保証されるべき所望のディスク帯域幅は、以下「保証帯域幅」と参照される。以下に説明されるように、保証帯域幅を満足するファイルの最大数は、既出の第１の実施の形態を応用することによって算出可能である。
【００７１】
以下の説明では、一例として、図１で示されたように１つのディスク１００に対して複数の仮想マシンＶＭ１〜ＶＭｎからアクセスが発生する場合を考える。その状態でも保証帯域幅を満足するような仮想マシンの最大数が推定される。以下、仮想マシンＶＭ１〜ＶＭｎの数ｎは、単に「ＶＭ数ｎ」と参照される。また、１つの仮想マシンに割り当てられるディスクサイズは、単に「ＶＭサイズ」と参照される。例えば、仮想マシンがイメージファイルとして存在する場合は、そのＶＭイメージファイルのサイズがＶＭサイズに相当する。複数の仮想マシンＶＭ１〜ＶＭｎが起動される際に、ディスク１００上のそれぞれのＶＭイメージファイルに対してアクセスが発生する。
【００７２】
２−１．構成
図１３は、第２の実施の形態に係るディスク帯域幅算出システム１ａの構成を示すブロック図である。第１の実施の形態と同じ構成には同じ符号が付され、重複する説明は適宜省略される。
【００７３】
第１の実施の形態と比較して、記憶装置２には更に、ＶＭサイズ情報ＶＭＳ、ディスクサイズ情報ＤＫＳ、及び保証帯域幅情報ＧＢＷが格納される。ＶＭサイズ情報ＶＭＳは、１つの仮想マシンに関するＶＭサイズ（ＶＭイメージファイルサイズ）を示す。ディスクサイズ情報ＤＫＳは、ディスク１００の全体サイズ（ディスク容量）を示す。保証帯域幅情報ＧＢＷは、保証帯域幅を示す。
【００７４】
また、処理装置３は、データ入力モジュール１０ａ、ファイル位置情報作成モジュール２０、シーク距離算出モジュール３０、ディスク帯域幅算出モジュール４０、ＶＭ数決定モジュール５０、及び出力モジュール７０ａを有している。これらモジュールも、処理装置３がプログラムＰＲＯＧを実行することによって実現される。以下、各モジュールによる処理を詳細に説明する。
【００７５】
２−２．処理フロー
図１４は、第２の実施の形態における処理フローを示すブロック図である。図１５は、第２の実施の形態における処理を示すフローチャートである。第１の実施の形態と重複する説明は適宜省略される。
【００７６】
（ステップＳ１０ａ）
データ入力モジュール１０ａは、ＶＭサイズ情報ＶＭＳ、ディスクサイズ情報ＤＫＳ、アクセス特性情報ＡＣＳ、ディスクプロファイル情報ＰＲＦ、及び保証帯域幅情報ＧＢＷを取得し、記憶装置２に格納する。尚、後述されるように、ファイル位置情報ＬＯＣは、ファイル位置情報作成モジュール２０によって作成される。
【００７７】
（ステップＳ５１）
ＶＭ数決定モジュール５０（ファイル数決定モジュール）は、ＶＭ数ｎ（ファイル数ｎ）を可変に設定するモジュールである。ステップＳ５１では、ＶＭ数決定モジュール５０は、ＶＭ数ｎを初期値に設定する。初期値は、例えば１である。ｎ＝１の場合、複数ファイルアクセスは発生しないが、本実施の形態の処理においてＶＭ数ｎの初期値が便宜上１に設定されても構わない。当然、初期値は２以上に設定されてもよい。
【００７８】
これ以降、ＶＭ数決定モジュール５０によって設定されたＶＭ数ｎに基づいて、ファイル位置情報作成モジュール２０、シーク距離算出モジュール３０及びディスク帯域幅算出モジュール４０は、それぞれの処理を実行する。そして、その処理結果に応じて、ＶＭ数決定モジュール５０はＶＭ数ｎを変化させる。つまり、ＶＭ数決定モジュール５０によって設定されるＶＭ数ｎ毎に、ループ処理が実行される。
【００７９】
（ステップＳ２０）
ファイル位置情報作成モジュール２０は、ＶＭ数決定モジュール５０によって設定されたＶＭ数ｎに応じたファイル位置情報ＬＯＣを作成する。そのために、ファイル位置情報作成モジュール２０は、記憶装置２からＶＭサイズ情報ＶＭＳ及びディスクサイズ情報ＤＫＳを読み出す。そして、ファイル位置情報作成モジュール２０は、設定ＶＭ数ｎ、ＶＭサイズやディスクサイズに基づいて、各仮想マシンのイメージファイルのディスク上の配置位置を想定し、ファイル位置情報ＬＯＣを作成する。このとき、ファイル間シーク距離が短いほどアクセス帯域幅は向上するため（図６Ａ参照）、ファイル同士の距離がなるべく短くなるように配置位置が決定されると好適である。例えば、ディスク１００の空き領域の先頭から順に、設定ＶＭ数ｎ分のＶＭイメージファイルが配置される。このようにして作成されるファイル位置情報ＬＯＣは、ＶＭイメージファイルのそれぞれの開始位置や終了位置あるいはサイズを示す。作成されたファイル位置情報ＬＯＣは、記憶装置２に格納される。
【００８０】
（ステップＳ３０）
第１の実施の形態と同様に、シーク距離算出モジュール３０は、ステップＳ２０で作成されたファイル位置情報ＬＯＣに基づいて、シーク距離情報ＳＥＫを作成する。
【００８１】
（ステップＳ４０）
第１の実施の形態と同様に、ディスク帯域幅算出モジュール４０は、複数ファイルアクセスが発生した際のディスク帯域幅ＢＷを算出する。ディスク帯域幅ＢＷの算出方法は、既出の方法のいずれでも構わない。
【００８２】
（ステップＳ５２〜Ｓ５４）
ＶＭ数決定モジュール５０は、記憶装置２から保証帯域幅情報ＧＢＷを読み込む。そして、ＶＭ数決定モジュール５０は、ステップＳ４０で算出されたディスク帯域幅ＢＷと保証帯域幅情報ＧＢＷで示される保証帯域幅との比較を行う（ステップＳ５２）。そして、その比較の結果に基づいて、ＶＭ数決定モジュール５０は設定ＶＭ数ｎを変化させる。
【００８３】
具体的には、ＶＭ数決定モジュール５０は、算出されたディスク帯域幅ＢＷが保証帯域幅を満足しているか否か判断する。ディスク帯域幅ＢＷが保証帯域幅を満足する場合、つまり、ディスク帯域幅ＢＷが保証帯域幅より大きい場合（ステップＳ５３；Ｎｏ）、ＶＭ数決定モジュール５０は、設定ＶＭ数ｎを増加させる（ステップＳ５４）。例えば、ＶＭ数決定モジュール５０は、設定ＶＭ数ｎを１だけ増加させる。その後、処理は、上述のステップＳ２０に戻る。すなわち、ファイル位置情報作成モジュール２０は、新たな設定ＶＭ数ｎに応じてファイル位置情報ＬＯＣを更新し、シーク距離算出モジュール３０はシーク距離情報ＳＥＫを再度作成し、ディスク帯域幅算出モジュール４０はディスク帯域幅ＢＷを算出する。
【００８４】
算出されたディスク帯域幅ＢＷが保証帯域幅を満足しなくなると、すなわち、ディスク帯域幅ＢＷが保証帯域幅より小さくなると（ステップＳ５３；Ｙｅｓ）、そこでループ処理は終了する。ＶＭ数決定モジュール５０は、このときの設定ＶＭ数ｎに基づいて、保証帯域幅を満足する最大のＶＭ数ｎ（ＭＡＸ）を決定することができる。
【００８５】
（ステップＳ７０ａ）
出力モジュール７０ａは、決定された最大ＶＭ数ｎ（ＭＡＸ）を、出力装置５を通して出力する。ユーザーは、最大ＶＭ数ｎ（ＭＡＸ）を参照してシステム設計を行うことができる。
【００８６】
２−３．処理の一例
次に、具体的な数値を用いて、処理の一例を説明する。アクセス対象のファイルとしては、ＶＭイメージファイルを考える。アクセス特性情報ＡＣＳ及びディスクプロファイル情報ＰＲＦは、図１０で示されたものと同じである。ＶＭサイズは、１０［ＧＢｙｔｅ］である。ディスクサイズは１６０［ＧＢｙｔｅ］である。保証帯域幅は０．２７０［ＭＢｙｔｅ／ｓｅｃ］である。
【００８７】
ステップＳ５１において、ＶＭ数ｎの初期値は１に設定される（ｎ＝１）。
【００８８】
ｎ＝１の場合、ステップＳ２０において、１つのＶＭイメージファイルＦ１の配置位置を示すファイル位置情報ＬＯＣが作成される。例えば、そのＶＭイメージファイルＦ１の開始位置及び終了位置はそれぞれ０［ＧＢｙｔｅ］及び１０［ＧＢｙｔｅ］である。ステップＳ３０において、ファイル内シーク距離Ｌ１１は、ＶＭサイズの半分である５［ＧＢｙｔｅ］と算出される。ステップＳ４１において、上記式（１）に従って代表シーク距離Ｌｒｅｐが算出される。ここで、ｎ＝１の場合は、同じファイルが連続してアクセスされるので、アクセス特性情報ＡＣＳに拘わらず、特別にファイル切替率α１１＝１として考える。従って、代表シーク距離Ｌｒｅｐは５［ＧＢｙｔｅ］と算出される。ステップＳ４２において、その代表シーク距離Ｌｒｅｐに対応するディスク帯域幅ＢＷは、０．３４７［ＭＢｙｔｅ／ｓｅｃ］と算出される。このディスク帯域幅ＢＷは保証帯域幅よりも大きい（ステップＳ５３；Ｎｏ）。従って、ＶＭ数ｎは増加させられ、２に設定される。
【００８９】
ｎ＝２の場合、ステップＳ２０において、２つのＶＭイメージファイルＦ１、Ｆ２の配置位置を示すファイル位置情報ＬＯＣが作成される。例えば、ＶＭイメージファイルＦ２は上記ＶＭイメージファイルＦ１に続けて配置され、その開始位置及び終了位置はそれぞれ１０［ＧＢｙｔｅ］及び２０［ＧＢｙｔｅ］である。ステップＳ３０において、ファイル内シーク距離Ｌ１１、Ｌ２２は５［ＧＢｙｔｅ］と算出され、ファイル間シーク距離Ｌ１２、Ｌ２１は１０［ＧＢｙｔｅ］と算出される。ステップＳ４１において、代表シーク距離Ｌｒｅｐが算出される。本例のアクセス特性情報ＡＣＳには、ファイル切替率αｉｉ＝０だけが示されており、ファイル切替率αｉｊ（ｉ≠ｊ）は全て均等であると仮定される。具体的には、ファイル切替率αｉｊ（ｉ≠ｊ）は、（１−αｉｉ）／（ｎ−１）＝１／（ｎ−１）で与えられる。ｎ＝２の場合、ファイル切替率α１２、α２１は共に１．０である。従って、代表シーク距離Ｌｒｅｐは１０［ＧＢｙｔｅ］と算出される。ステップＳ４２において、その代表シーク距離Ｌｒｅｐに対応するディスク帯域幅ＢＷは、０．３３［ＭＢｙｔｅ／ｓｅｃ］と算出される。このディスク帯域幅ＢＷは保証帯域幅よりも大きい（ステップＳ５３；Ｎｏ）。従って、ＶＭ数ｎは増加させられ、３に設定される。
【００９０】
同様の処理が繰り返され、ＶＭ数ｎが８に設定された場合、代表シーク距離Ｌｒｅｐ＝３０［ＧＢｙｔｅ］、ディスク帯域幅ＢＷ＝０．２７５［ＭＢｙｔｅ／ｓｅｃ］が得られる。このディスク帯域幅ＢＷは依存として保証帯域幅よりも大きく（ステップＳ５３；Ｎｏ）、ＶＭ数ｎは９に設定される。ＶＭ数ｎが９の場合、代表シーク距離Ｌｒｅｐ＝３３．３［ＧＢｙｔｅ］、ディスク帯域幅ＢＷ＝０．２６８［ＭＢｙｔｅ／ｓｅｃ］が得られる。このとき、ディスク帯域幅ＢＷは保証帯域幅を下回る（ステップＳ５３；Ｙｅｓ）。すなわち、複数ファイルアクセス発生時のディスク帯域幅ＢＷが保証帯域幅を満足しなくなる。従って、保証帯域幅を満足するような仮想マシンの最大数ｎ（ＭＡＸ）は“８台”であると見積もられる。
【００９１】
ステップＳ７０ａにおいて、保証帯域幅を満足する仮想マシンの最大数ｎ（ＭＡＸ）＝８が出力される。それに加えて、複数ファイルアクセス発生時のディスク帯域幅ＢＷ＝０．２７５［ＭＢｙｔｅ／ｓｅｃ］が出力されてもよい。
【００９２】
２−４．効果
以上に説明されたように、本実施の形態に係るディスク帯域幅算出システム１ａは、設定ＶＭ数ｎを変化させつつディスク帯域幅ＢＷを算出する。これにより、複数ファイルアクセスが発生した場合であっても保証帯域幅を満足するような仮想マシンの最大数ｎ（ＭＡＸ）を見積もることが可能となる。このようにして見積もられた最大数ｎ（ＭＡＸ）をシステム設計において考慮することにより、仮想マシンの起動後に所望のディスク帯域幅が得られないといった事態を未然に防ぐことができる。
【００９３】
尚、上記例ではＶＭイメージファイルの場合が説明されたが、その他の場合でも同様である。アクセス対象ファイルの数ｎを変化させつつディスク帯域幅ＢＷを算出することにより、保証帯域幅を満足する最大数ｎ（ＭＡＸ）を見積もることができる。
【００９４】
３．第３の実施の形態
保証帯域幅を満足する最大数ｎ（ＭＡＸ）の決定方法は、第２の実施の形態で説明されたものに限られない。
【００９５】
３−１．構成
図１６は、第３の実施の形態に係るディスク帯域幅算出システム１ｂの構成を示すブロック図である。第２の実施の形態と同じ構成には同じ符号が付され、重複する説明は適宜省略される。本実施の形態において、処理装置３は、データ入力モジュール１０ｂ、ファイル位置情報作成モジュール２０、シーク距離算出モジュール３０、ディスク帯域幅算出モジュール４０、ＶＭ数決定モジュール５０ｂ、及び出力モジュール７０ｂを有している。これらモジュールも、処理装置３がプログラムＰＲＯＧを実行することによって実現される。以下、各モジュールによる処理を詳細に説明する。
【００９６】
３−２．処理フロー
図１７は、第３の実施の形態における処理フローを示すブロック図である。図１８は、第３の実施の形態における処理を示すフローチャートである。第２の実施の形態と重複する説明は適宜省略される。
【００９７】
（ステップＳ１０ｂ）
データ入力モジュール１０ｂは、ＶＭサイズ情報ＶＭＳ、ディスクサイズ情報ＤＫＳ、アクセス特性情報ＡＣＳ、ディスクプロファイル情報ＰＲＦ、及び保証帯域幅情報ＧＢＷを取得し、記憶装置２に格納する。
【００９８】
（ステップＳ５１ｂ）
ＶＭ数決定モジュール５０ｂ（ファイル数決定モジュール）は、ＶＭ数ｎ（ファイル数）を可変に設定するモジュールである。ステップＳ５１ｂでは、ＶＭ数決定モジュール５０ｂは、ＶＭ数ｎを初期値に設定する。本実施の形態では、ＶＭ数ｎの初期値は、ディスク１００上に配置可能な“限界値”に設定される。そのために、ＶＭ数決定モジュール５０ｂは、記憶装置２からＶＭサイズ情報ＶＭＳ及びディスクサイズ情報ＤＫＳを読み出す。そして、ＶＭ数決定モジュール５０ｂは、ディスクサイズ（ディスク容量）をＶＭサイズで割ることによって、配置可能なＶＭ数の限界値を算出する。そして、ＶＭ数決定モジュール５０ｂは、ＶＭ数ｎをその限界値に初期設定する。例えば、ＶＭサイズが１０［ＧＢｙｔｅ］であり、ディスクサイズが１６０［ＧＢｙｔｅ］である場合、ＶＭ数ｎの初期値は１６である。
【００９９】
これ以降、ＶＭ数決定モジュール５０ｂによって設定されたＶＭ数ｎに基づいて、ファイル位置情報作成モジュール２０、シーク距離算出モジュール３０及びディスク帯域幅算出モジュール４０は、それぞれの処理を実行する（ステップＳ２０〜Ｓ４０）。それぞれの処理は、第２の実施の形態の場合と同じである。
【０１００】
（ステップＳ５２ｂ〜Ｓ５４ｂ）
ＶＭ数決定モジュール５０ｂは、記憶装置２から保証帯域幅情報ＧＢＷを読み込む。そして、ＶＭ数決定モジュール５０ｂは、ステップＳ４０で算出されたディスク帯域幅ＢＷと保証帯域幅情報ＧＢＷで示される保証帯域幅との比較を行う（ステップＳ５２ｂ）。そして、その比較の結果に基づいて、ＶＭ数決定モジュール５０ｂは設定ＶＭ数ｎを変化させる。
【０１０１】
具体的には、ＶＭ数決定モジュール５０ｂは、算出されたディスク帯域幅ＢＷが保証帯域幅を満足しているか否か判断する。ディスク帯域幅ＢＷが保証帯域幅を満足しない場合、つまり、ディスク帯域幅ＢＷが保証帯域幅より小さい場合（ステップＳ５３ｂ；Ｎｏ）、ＶＭ数決定モジュール５０ｂは、設定ＶＭ数ｎを減少させる（ステップＳ５４ｂ）。例えば、ＶＭ数決定モジュール５０ｂは、設定ＶＭ数ｎを１だけ減少させる。その後、処理は、ステップＳ２０に戻る。
【０１０２】
算出されたディスク帯域幅ＢＷが保証帯域幅を満足すると、すなわち、ディスク帯域幅ＢＷが保証帯域幅より大きくなると（ステップＳ５３ｂ；Ｙｅｓ）、そこでループ処理は終了する。ＶＭ数決定モジュール５０ｂは、このときの設定ＶＭ数ｎに基づいて、保証帯域幅を満足する最大のＶＭ数ｎ（ＭＢＸ）を決定することができる。
【０１０３】
（ステップＳ７０ｂ）
出力モジュール７０ｂは、決定された最大ＶＭ数ｎ（ＭＡＸ）を、出力装置５を通して出力する。ユーザーは、最大ＶＭ数ｎ（ＭＡＸ）を参照してシステム設計を行うことができる。
【０１０４】
３−３．効果
以上に説明されたように、第３の実施の形態によれば、設定ＶＭ数ｎを限界値から減少させることにより、保証帯域幅を満足する最大数ｎ（ＭＡＸ）を見積もることができる。これにより、第２の実施の形態と同じ効果が得られる。
【０１０５】
尚、第２、第３の実施の形態において、ＶＭ数ｎの増減幅は１に限られない。また、ＶＭ数ｎに定数を掛ける、あるいは、ＶＭ数ｎを定数で割ることにより、ＶＭ数ｎを増減させてもよい。更に、第２の実施の形態と第３の実施の形態を組み合わせることも可能である。例えば、ＶＭ数ｎを限界値から半減させた後にディスク帯域幅ＢＷが保証帯域幅を下回った場合に、ＶＭ数ｎを１ずつ増加させて最大ＶＭ数ｎ（ＭＡＸ）を求めてもよい。
【０１０６】
４．第４の実施の形態
ディスク台数は１台に限られず、複数である場合もある。例えば、Ｗｅｂ処理等の膨大なリクエスト処理を行うサーバシステムは、ディスク帯域幅を確保するため、複数台のディスクを必要とする場合がある。この場合、サーバとして運用される仮想マシン（仮想サーバ）の数と、想定されるリクエスト量から、所望のディスク帯域幅を確保するのに十分なディスク数を見積もることが重要である。
【０１０７】
本発明の第４の実施の形態では、複数ファイルアクセスが発生した場合であっても、所望のディスク帯域幅が保証され得るディスク数を見積もるための技術が提案される。以下に説明されるように、そのようなディスク数も、既出の第１の実施の形態を応用することによって算出可能である。以下の説明でも、一例として、仮想マシンの場合を考える。
【０１０８】
４−１．構成
図１９は、第４の実施の形態に係るディスク帯域幅算出システム１ｃの構成を示すブロック図である。既出の実施の形態と同じ構成には同じ符号が付され、重複する説明は適宜省略される。
【０１０９】
第１の実施の形態と比較して、記憶装置２には更に、ＶＭサイズ情報ＶＭＳ、ＶＭ数情報ＶＭＮ、ディスクサイズ情報ＤＫＳ、及びリクエスト情報ＲＥＱが格納される。ＶＭサイズ情報ＶＭＳ及びディスクサイズ情報ＤＫＳは、第２、第３の実施の形態におけるものと同じである。ＶＭ数情報ＶＭＮは、運用で想定される仮想マシンの総台数を示す。
【０１１０】
リクエスト情報ＲＥＱは、運用で想定されるリクエストの負荷を示す情報である。図２０Ａは、リクエスト情報ＲＥＱの一例を示している。図２０Ａの例では、リクエスト情報ＲＥＱは、仮想マシン１台当たりに要求される単位時間当たりのリクエスト数と、１リクエスト当たりに生じるアクセスが必要なデータ量を示している。これらリクエスト数とデータ量を乗算することによって、仮想マシン１台当たりに必要なディスク帯域幅を算出することができる。要求されるリクエストの処理に必要なディスク帯域幅は、以下「要求帯域幅」と参照される。要求帯域幅はリクエスト負荷に応じた値であり、リクエスト情報ＲＥＱから算出可能である。図２０Ａで示される例の場合、仮想マシン１台当たりの要求帯域幅は４０．０［ｋＢｙｔｅ／ｓｅｃ］である。図２０Ｂは、リクエスト情報ＲＥＱの他の例を示している。図２０Ｂで示されるリクエスト情報ＲＥＱは、要求帯域幅そのものを与えている。
【０１１１】
再度図１９を参照して、処理装置３は、データ入力モジュール１０ｃ、ファイル位置情報作成モジュール２０ｃ、シーク距離算出モジュール３０、ディスク帯域幅算出モジュール４０、ディスク数決定モジュール６０、及び出力モジュール７０ｃを有している。これらモジュールも、処理装置３がプログラムＰＲＯＧを実行することによって実現される。以下、各モジュールによる処理を詳細に説明する。
【０１１２】
４−２．処理フロー
図２１は、第４の実施の形態における処理フローを示すブロック図である。図２２は、第４の実施の形態における処理を示すフローチャートである。既出の実施の形態と重複する説明は適宜省略される。
【０１１３】
（ステップＳ１０ｃ）
データ入力モジュール１０ｃは、ＶＭサイズ情報ＶＭＳ、ＶＭ数情報ＶＭＮ、ディスクサイズ情報ＤＫＳ、アクセス特性情報ＡＣＳ、ディスクプロファイル情報ＰＲＦ、及びリクエスト情報ＲＥＱを取得し、記憶装置２に格納する。
【０１１４】
（ステップＳ６１）
ディスク数決定モジュール６０は、ディスク数ｐを可変に設定するモジュールである。ステップＳ６１では、ディスク数決定モジュール６０は、ディスク数ｐを初期値に設定する。初期値は、例えば１である。
【０１１５】
これ以降、ディスク数決定モジュール６０によって設定されたディスク数ｐに基づいて、ファイル位置情報作成モジュール２０ｃ、シーク距離算出モジュール３０及びディスク帯域幅算出モジュール４０は、それぞれの処理を実行する。そして、その処理結果に応じて、ディスク数決定モジュール６０はディスク数ｐを変化させる。つまり、ディスク数決定モジュール６０によって設定されるディスク数ｐ毎に、ループ処理が実行される。
【０１１６】
（ステップＳ２０ｃ）
ファイル位置情報作成モジュール２０ｃは、ディスク数決定モジュール６０によって設定されたディスク数ｐに応じたファイル位置情報ＬＯＣを作成する。より詳細には、ファイル位置情報作成モジュール２０ｃは、設定ディスク数ｐを考慮し、１台のディスクに関するファイル位置情報ＬＯＣを作成する。そのために、ファイル位置情報作成モジュール２０ｃは、記憶装置２からＶＭサイズ情報ＶＭＳ、ＶＭ数情報ＶＭＮ、及びディスクサイズ情報ＤＫＳを読み出す。そして、ファイル位置情報作成モジュール２０ｃは、ＶＭ数情報ＶＭＮで与えられるＶＭ総数を設定ディスク数ｐで割ることにより、１ディスク当たりのＶＭ数ｎを算出する。その後、ファイル位置情報作成モジュール２０ｃは、ＶＭ数ｎ、ＶＭサイズ等に基づいて、１台のディスクに関するファイル位置情報ＬＯＣを作成する。その作成方法は、第２、第３の実施の形態で説明された方法と同じである。作成されたファイル位置情報ＬＯＣは、記憶装置２に格納される。
【０１１７】
（ステップＳ３０）
第１の実施の形態と同様に、シーク距離算出モジュール３０は、ステップＳ２０ｃで作成されたファイル位置情報ＬＯＣに基づいて、シーク距離情報ＳＥＫを作成する。
【０１１８】
（ステップＳ４０）
第１の実施の形態と同様に、ディスク帯域幅算出モジュール４０は、複数ファイルアクセスが発生した際のディスク帯域幅ＢＷを算出する。ディスク帯域幅ＢＷの算出方法は、既出の方法のいずれでも構わない。
【０１１９】
（ステップＳ６２〜Ｓ６４）
ディスク数決定モジュール６０は、記憶装置２からＶＭ数情報ＶＭＮとリクエスト情報ＲＥＱを読み込む。そして、ディスク数決定モジュール６０は、リクエスト情報ＲＥＱを参照して、仮想マシン１台当たりの要求帯域幅を算出する。また、ディスク数決定モジュール６０は、ＶＭ数情報ＶＭＮで与えられるＶＭ総数を現在の設定ディスク数ｐで割ることにより、１ディスク当たりのＶＭ数ｎを算出する。これら１仮想マシン当たりの要求帯域幅と１ディスク当たりのＶＭ数ｎから、ディスク数決定モジュール６０は、１ディスク当たりの要求帯域幅ＲＢＷを算出することができる。そして、ディスク数決定モジュール６０は、ステップＳ４０で算出されたディスク帯域幅ＢＷと要求帯域幅ＲＢＷとの比較を行う（ステップＳ６２）。そして、その比較の結果に基づいて、ディスク数決定モジュール６０は設定ディスク数ｐを変化させる。
【０１２０】
具体的には、ディスク数決定モジュール６０は、算出されたディスク帯域幅ＢＷが要求帯域幅ＲＢＷを満足しているか否か判断する。ディスク帯域幅ＢＷが要求帯域幅ＲＢＷを満足しない場合、つまり、ディスク帯域幅ＢＷが要求帯域幅ＲＢＷより小さい場合（ステップＳ６３；Ｎｏ）、ディスク数決定モジュール６０は、設定ディスク数ｐを増加させる（ステップＳ６４）。例えば、ディスク数決定モジュール６０は、設定ディスク数ｐを１だけ増加させる。その後、処理は、上述のステップＳ２０ｃに戻る。すなわち、ファイル位置情報作成モジュール２０ｃは、新たな設定ディスク数ｐに応じてファイル位置情報ＬＯＣを更新し、シーク距離算出モジュール３０はシーク距離情報ＳＥＫを再度作成し、ディスク帯域幅算出モジュール４０はディスク帯域幅ＢＷを算出する。
【０１２１】
算出されたディスク帯域幅ＢＷが要求帯域幅ＲＢＷを満足すると、すなわち、ディスク帯域幅ＢＷが要求帯域幅ＲＢＷより大きくなると（ステップＳ６３；Ｙｅｓ）、そこでループ処理は終了する。ディスク数決定モジュール６０は、このときの設定ディスク数ｐに基づいて、要求帯域幅ＲＢＷを満足する必要最小限のディスク数ｐ（ｍｉｎ）を決定することができる。このディスク数ｐ（ｍｉｎ）が、想定されるリクエストの処理に必要なディスク数である。
【０１２２】
（ステップＳ７０ｃ）
出力モジュール７０ｃは、決定されたディスク数ｐ（ｍｉｎ）を、出力装置５を通して出力する。ユーザーは、ディスク数ｐ（ｍｉｎ）を参照してシステム設計を行うことができる。
【０１２３】
４−３．処理の一例
次に、具体的な数値を用いて、処理の一例を説明する。アクセス対象のファイルとしては、ＶＭイメージファイルを考える。アクセス特性情報ＡＣＳ及びディスクプロファイル情報ＰＲＦは、図１０で示されたものと同じである。ＶＭサイズは、１０［ＧＢｙｔｅ］である。ディスクサイズは１６０［ＧＢｙｔｅ］である。ＶＭ数情報ＶＭＮで与えられるＶＭ総数は１２である。リクエスト情報ＲＥＱは、図２０Ａで示されたものと同じである。この場合、仮想マシン１台当たりの要求帯域幅は４０．０［ｋＢｙｔｅ／ｓｅｃ］である。
【０１２４】
ステップＳ６１において、ディスク数ｐの初期値は１に設定される（ｐ＝１）。
【０１２５】
ｐ＝１の場合、１２個のＶＭイメージファイルが１台のディスク上に配置される。よって、ステップＳ２０において、１２個のＶＭイメージファイルの配置位置を示すファイル位置情報ＬＯＣが作成される。ファイル位置情報ＬＯＣの作成方法は、第２の実施の形態で説明された方法と同じである。ステップＳ４１において、代表シーク距離Ｌｒｅｐは４３．３［ＧＢｙｔｅ］と算出される。ステップＳ４２において、その代表シーク距離Ｌｒｅｐに対応するディスク帯域幅ＢＷは０．２５６［ＭＢｙｔｅ／ｓｅｃ］と算出される。一方、仮想マシン１台当たりの要求帯域幅は４０．０［ｋＢｙｔｅ／ｓｅｃ］であるため、ディスク１台当たりの要求帯域幅ＲＢＷは、０．４８０［ＭＢｙｔｅ／ｓｅｃ］である。算出されたディスク帯域幅ＢＷは要求帯域幅ＲＢＷより小さい（ステップＳ６３；Ｎｏ）。従って、ディスク数ｐは増加させられ、２に設定される。
【０１２６】
ｐ＝２の場合、６個のＶＭイメージファイルが１台のディスク上に配置される。よって、ステップＳ２０において、６個のＶＭイメージファイルの配置位置を示すファイル位置情報ＬＯＣが作成される。この場合、ステップＳ４１において、代表シーク距離Ｌｒｅｐは２３．３［ＧＢｙｔｅ］と算出される。ステップＳ４２において、その代表シーク距離Ｌｒｅｐに対応するディスク帯域幅ＢＷは０．２９２［ＭＢｙｔｅ／ｓｅｃ］と算出される。一方、仮想マシン１台当たりの要求帯域幅は４０．０［ｋＢｙｔｅ／ｓｅｃ］であるため、ディスク１台当たりの要求帯域幅ＲＢＷは、０．２４０［ＭＢｙｔｅ／ｓｅｃ］である。算出されたディスク帯域幅ＢＷは要求帯域幅ＲＢＷより大きい（ステップＳ６３；Ｙｅｓ）。すなわち、複数ファイルアクセス発生時のディスク帯域幅ＢＷが要求帯域幅ＲＢＷを満足する。従って、想定されるリクエストの処理に必要なディスク数ｐ（ｍｉｎ）は“２台”であると見積もられる。
【０１２７】
ステップＳ７０ｃにおいて、リクエスト負荷に応じた要求帯域幅を満足するディスク数ｐ（ｍｉｎ）＝２が出力される。それに加えて、複数ファイルアクセス発生時の、ディスク１台当たりのディスク帯域幅ＢＷ＝０．２９２［ＭＢｙｔｅ／ｓｅｃ］や、ディスク全体のディスク帯域幅＝０．５８４［ＭＢｙｔｅ／ｓｅｃ］が出力されてもよい。
【０１２８】
４−４．効果
以上に説明されたように、本実施の形態に係るディスク帯域幅算出システム１ｃは、設定ディスク数ｐを変化させつつ１ディスク当たりのディスク帯域幅ＢＷを算出する。これにより、複数ファイルアクセスが発生した場合であっても要求帯域幅を満足するようなディスク台数ｐ（ｍｉｎ）を見積もることが可能となる。このようにして見積もられたディスク台数ｐ（ｍｉｎ）をシステム設計において考慮することにより、リクエストを処理できないといった事態を未然に防ぐことができる。尚、上記例ではＶＭイメージファイルの場合が説明されたが、その他の場合でも同様である。
【０１２９】
５．その他
本発明の適用は、上述の仮想化環境下の仮想マシンイメージファイルの場合に限定されない。本発明は、仮想化環境下ではない通常のＯＳのファイルの場合にも、同様に適用され得る。例えば、本発明を利用することにより、ディスク上の多数のログファイルを解析する際のディスク帯域幅を見積もることができる。このように対象が仮想マシンイメージファイルでない場合は、既出の実施の形態におけるＶＭ数及びＶＭサイズは、それぞれファイル数とファイルサイズに置き換えられる。
【０１３０】
また、ディスクアクセスは、ｒｅａｄ処理の場合に限定されない。例えば、ディスク上の複数のファイルに対してｗｒｉｔｅ処理が継続的に実行される場合においても、本発明を適用することにより同様の効果が得られる。一般的にｗｒｉｔｅ処理においては、書き込みデータは、一度バッファに記憶された後、ディスク空き時間に実際にディスクに書き込まれる。当該ｗｒｉｔｅ処理を要求したプログラムは、バッファへの記憶が完了した時点で処理完了通知を受け取り、そのため、ディスクの処理時間を待たずに次の処理を実行することができる。しかしながら、プログラムが継続的にデータをディスクに記録するような場合、例えば、人やモノ、車、電車などの通過情報を種類に応じて別々のファイルに記録する場合には、書き込みデータの量が増大し、バッファが溢れる可能性がある。このような場合、ディスク上の複数ファイルに対してｗｒｉｔｅ要求が発行され、これまでに説明されたｒｅａｄ処理の場合と同じになる。このような状況を想定して本発明を適用することにより、ディスク上の複数のファイルに対してｗｒｉｔｅアクセス要求が発生した場合のディスク帯域幅を見積もることが可能である。
【０１３１】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【図面の簡単な説明】
【０１３２】
【図１】図１は、ディスク上の複数ファイルに対してアクセスが発生する場合を説明するための概念図である。
【図２】図２は、本発明の第１の実施の形態に係るディスク帯域幅算出システムの構成を示すブロック図である。
【図３】図３は、ファイル位置情報及びアクセス特性情報を説明するための概念図である。
【図４Ａ】図４Ａは、ファイル位置情報の一例を示すテーブルである。
【図４Ｂ】図４Ｂは、ファイル位置情報の他の例を示すテーブルである。
【図５Ａ】図５Ａは、アクセス特性情報の一例を示す図である。
【図５Ｂ】図５Ｂは、アクセス特性情報の他の例を示すテーブルである。
【図６Ａ】図６Ａは、ディスクプロファイル情報の一例を示すグラフ図である。
【図６Ｂ】図６Ｂは、ディスクプロファイル情報の他の例を示すテーブルである。
【図７】図７は、第１の実施の形態における処理フローを示すブロック図である。
【図８】図８は、第１の実施の形態における処理を示すフローチャートである。
【図９】図９は、第１の実施の形態における処理を説明するための概念図である。
【図１０】図１０は、ファイル位置情報、アクセス特性情報、及びディスクプロファイル情報の例を示すテーブルである。
【図１１】図１１は、変形例における処理フローを示すブロック図である。
【図１２】図１２は、他の変形例における処理フローを示すブロック図である。
【図１３】図１３は、本発明の第２の実施の形態に係るディスク帯域幅算出システムの構成を示すブロック図である。
【図１４】図１４は、第２の実施の形態における処理フローを示すブロック図である。
【図１５】図１５は、第２の実施の形態における処理を示すフローチャートである。
【図１６】図１６は、本発明の第３の実施の形態に係るディスク帯域幅算出システムの構成を示すブロック図である。
【図１７】図１７は、第３の実施の形態における処理フローを示すブロック図である。
【図１８】図１８は、第３の実施の形態における処理を示すフローチャートである。
【図１９】図１９は、本発明の第４の実施の形態に係るディスク帯域幅算出システムの構成を示すブロック図である。
【図２０Ａ】図２０Ａは、リクエスト情報の一例を示すテーブルである。
【図２０Ｂ】図２０Ｂは、リクエスト情報の他の例を示すテーブルである。
【図２１】図２１は、第４の実施の形態における処理フローを示すブロック図である。
【図２２】図２２は、第４の実施の形態における処理を示すフローチャートである。
【符号の説明】
【０１３３】
１    ディスク帯域幅算出システム
２    記憶装置
３    処理装置
４    入力装置
５    出力装置
１０    データ入力モジュール
２０    ファイル位置情報作成モジュール
３０    シーク距離算出モジュール
４０    ディスク帯域幅算出モジュール
４１    代表シーク距離算出モジュール
４２    帯域幅算出モジュール
５０    ＶＭ数決定モジュール
６０    ディスク数決定モジュール
７０    出力モジュール
１００    ディスク
ＬＯＣ    ファイル位置情報
ＳＥＫ    シーク距離情報
ＡＣＳ    アクセス特性情報
ＰＲＦ    ディスクプロファイル情報
ＶＭＳ    ＶＭサイズ情報
ＤＫＳ    ディスクサイズ情報
ＧＢＷ    保証帯域幅情報
ＶＭＮ    ＶＭ数情報
ＲＥＱ    リクエスト情報
Ｌｉｉ    ファイル内シーク距離
Ｌｉｊ    ファイル間シーク距離
Ｌｒｅｐ  代表シーク距離
ＢＷ    ディスク帯域幅
ＰＲＯＧ  プログラム
【図１】
0005013099.tif 000006
【図２】
0005013099.tif 000007
【図３】
0005013099.tif 000008
【図４Ａ】
0005013099.tif 000009
【図４Ｂ】
0005013099.tif 000010
【図５Ａ】
0005013099.tif 000011
【図５Ｂ】
0005013099.tif 000012
【図６Ａ】
0005013099.tif 000013
【図６Ｂ】
0005013099.tif 000014
【図７】
0005013099.tif 000015
【図８】
0005013099.tif 000016
【図９】
0005013099.tif 000017
【図１０】
0005013099.tif 000018
【図１１】
0005013099.tif 000019
【図１２】
0005013099.tif 000020
【図１３】
0005013099.tif 000021
【図１４】
0005013099.tif 000022
【図１５】
0005013099.tif 000023
【図１６】
0005013099.tif 000024
【図１７】
0005013099.tif 000025
【図１８】
0005013099.tif 000026
【図１９】
0005013099.tif 000027
【図２０Ａ】
0005013099.tif 000028
【図２０Ｂ】
0005013099.tif 000029
【図２１】
0005013099.tif 000030
【図２２】
0005013099.tif 000031