(57)【要約】      （修正有）【課題】ストレージシステムとサーバ計算機の両方でThin-Provisioning技術に従う容量仮想化が行われる計算機システムでの管理を容易にする。【解決手段】管理システムが、ストレージ管理情報とサーバ管理情報とを基に、ストレージレベルプールに対応するサーバレベル仮想ボリュームを特定し、ストレージレベルプールとサーバレベル仮想ボリュームとの対応に関する情報を表示する。サーバ管理情報は、サーバレベルプールに属するストレージレベル仮想ボリュームからサーバレベルでのThin-Provisioning技術によって一部のエリアが割り当てられるサーバレベル仮想ボリュームと、ストレージレベル仮想ボリュームとの対応を表す。【選択図】図１
2011060119.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスを有し、ストレージレベルプールに属する一以上のボリュームを構成するストレージシステムと、
前記ストレージシステムに接続され、コンピュータプログラムを実行するサーバ計算機と、
前記サーバ計算機と前記ストレージシステムとを管理する管理システムと
を有し、
（Ａ）前記ストレージシステムは、前記ストレージレベルプールに関連するストレージレベル仮想ボリュームを提供し、前記ストレージレベル仮想ボリュームの一部又は全部のエリアは、初期的には、前記ストレージレベルプールに属する前記一以上のボリューム内のエリアが割り当てられておらず、
（Ｂ）前記ストレージシステムは、前記ストレージレベル仮想ボリュームの容量を表すストレージレベル仮想ボリューム情報を格納し、
（Ｃ）前記ストレージシステムは、前記ストレージレベル仮想ボリューム情報に基づいて、前記サーバ計算機に前記ストレージレベル仮想ボリュームの容量を送信し、
（Ｄ）前記サーバ計算機は、前記ストレージレベル仮想ボリュームが属するサーバレベルプールを管理し、
（Ｅ）前記サーバ計算機は、サーバレベル仮想ボリュームの容量を表すサーバレベル仮想ボリューム情報を格納し、
（Ｆ）前記サーバ計算機は、前記サーバレベル仮想ボリュームを提供し、
（Ｇ）前記サーバ計算機は、実行された前記コンピュータプログラムからの、サーバレベル仮想エリアについてのライト要求、の発行に従って、前記サーバレベルプールに属する前記ストレージレベル仮想ボリューム内のエリアの一部であるストレージレベル仮想エリアを、前記サーバレベル仮想ボリューム内の前記サーバレベル仮想エリアに割り当て、前記ストレージレベル仮想エリアを指定したライト要求を前記ストレージシステムに送信し、
（Ｈ）前記ストレージシステムは、前記サーバ計算機からの、ストレージレベル仮想エリアについてのライト要求、の受信に従って、前記ストレージレベルプールのエリアの一部を、前記ストレージレベル仮想ボリューム内の前記ストレージレベル仮想エリアに割り当て、
（Ｉ）前記管理システムは、前記ストレージレベル仮想ボリュームと前記ストレージレベルプールとの対応を表すストレージ管理情報と、前記サーバレベル仮想ボリュームと前記ストレージレベル仮想ボリュームとの対応を表すサーバ管理情報とに基づいて、前記ストレージレベルプールに対応する前記サーバレベル仮想ボリュームを特定し、前記ストレージレベルプールと前記特定された前記サーバレベル仮想ボリュームとの対応に関する対応情報を表示する、
計算機システム。
【請求項２】
請求項１記載の計算機システムであって、
複数のストレージレベルプールがあり、
複数のサーバ計算機があり、
前記複数のサーバ計算機の少なくとも一つが仮想計算機を提供し、
前記仮想計算機が、少なくともＯＳ（Operating System）を含んだコンピュータプログラムを仮想的に実行し、
前記複数のサーバ計算機が、前記サーバレベルプールを共有し、
前記（Ｆ）において、前記サーバ計算機が、前記サーバレベル仮想ボリュームを前記仮想計算機に提供し、
前記ストレージ管理情報は、前記ストレージレベルプールに属する前記一以上ボリュームの各々の容量に基づく、前記ストレージレベルプールの容量、を表し、
前記サーバ管理情報は、前記サーバレベル仮想ボリュームの容量を表し、
前記（Ｉ）において、前記管理システムは、前記複数のストレージレベルプールのうちの一つのストレージレベルプールについて、複数のサーバレベル仮想ボリュームのうち、前記一つのストレージレベルプールに対応しており他のストレージレベルプールに対応していない一以上のサーバレベル仮想ボリュームを特定し、前記一つのストレージレベルプールの容量と、前記特定された一以上のサーバレベル仮想ボリュームの総容量との比率であるＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を算出し、
前記対応情報は、前記Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を表し、
前記一つのストレージレベルプールの容量又は前記一つのストレージレベルプールに対応する一以上のサーバレベル仮想ボリュームの総容量を変更する構成変更が行われる場合には、前記一つのストレージレベルプールについての前記Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率は変化するが、前記仮想計算機が、前記サーバ計算機から、前記サーバ計算機と前記サーバレベルプールを共有する別のサーバ計算機に移動した場合、前記別のサーバ計算機において前記仮想計算機に提供されるサーバレベル仮想ボリュームは、前記一つのストレージレベルプールに対応する前記共有されているサーバレベルプールに対応しているため、前記一つのストレージレベルプールについての前記Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が変化しない、
計算機システム。
【請求項３】
請求項１記載の計算機システムであって、
前記ストレージ管理情報は、前記ストレージレベルプールに属する前記一以上ボリュームの各々の容量に基づく、前記ストレージレベルプールの容量、を表し、
前記サーバ管理情報は、前記サーバレベル仮想ボリュームの容量を表し、
前記（Ｉ）において、前記管理システムは、前記ストレージレベルプールの容量と、前記ストレージレベルプールに対応する前記サーバレベル仮想ボリュームの容量との比率であるＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を計算し、
前記対応情報は、前記Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を表す、
計算機システム。
【請求項４】
請求項３記載の計算機システムであって、
（Ｊ１）前記管理システムは、前記Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が閾値を超えている場合、前記ストレージレベルプールに属するボリュームを増やす、
計算機システム。
【請求項５】
請求項３記載の計算機システムであって、
第１及び第２のストレージレベルプールを含んだ複数のストレージレベルプールがあり、
前記第１のストレージレベルプールは、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が前記閾値を超えているストレージレベルプールであり、
前記第２のストレージレベルプールは、前記第１のストレージレベルプールに対応した第１のサーバレベル仮想ボリュームに格納されているデータが格納されてもＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が前記閾値を超えることの無いストレージレベルプールであり、
（Ｊ２）前記管理システムは、前記Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が閾値を超えている場合、前記第１のストレージレベルプールに対応する前記第１のサーバレベル仮想ボリューム内のデータを前記第２のストレージレベルプールに対応するサーバレベル仮想ボリュームにマイグレーションする、
計算機システム。
【請求項６】
請求項３記載の計算機システムであって、
前記ストレージ管理情報が前前記ストレージレベルプールの容量を表すことは、前記ストレージ管理情報に前記ストレージレベルプールの容量を表す情報が含まれることで実現される、
計算機システム。
【請求項７】
請求項３記載の計算機システムであって、
前記ストレージ管理情報が前前記ストレージレベルプールの容量を表すことは、前記ストレージ管理情報に前記ストレージレベルプールに属する各ボリュームの容量を表す情報が含まれることで実現される、
計算機システム。
【請求項８】
請求項１記載の計算機システムであって、
前記（Ｉ）において、前記管理システムは、前記サーバ計算機と前記ストレージシステムの管理として、前記ストレージレベルプールの空き容量の表示と、前記ストレージレベルプールに対応する前記サーバレベル仮想ボリュームに対応するサーバレベルプールの空き容量の表示とを行う、
瀬計算機システム。
【請求項９】
請求項３記載の計算機システムであって、
前記（Ｉ）において、前記管理システムは、前記ストレージ管理情報と前記サーバ管理情報とに基づいて、前記ストレージレベルプールから前記ストレージレベル仮想ボリューム及び前記サーバレベルプールを通じて前記サーバレベル仮想ボリュームに至るトポロジーから、前記Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率の悪い原因となっている箇所を特定し、特定した個所を表示する、
計算機システム。
【請求項１０】
請求項９記載の計算機システムであって、
前記特定された箇所は、前記トポロジーに属する複数のサーバレベル仮想ボリュームのうちの、前記サーバレベルプールに属する前記ストレージレベル仮想ボリュームのエリアが割り当てられていないサーバレベル仮想エリアの量が最も多いサーバレベル仮想ボリュームである、
計算機システム。
【請求項１１】
請求項３記載の計算機システムであって、
前記管理システムが、定期的に、前記ストレージ管理情報及び前記サーバ管理情報のうちの少なくとも一方の収集と、前記（Ｉ）と、算出されたＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が前記閾値を超えているか否かの判断とを行う、
計算機システム。
【請求項１２】
請求項３記載の計算機システムであって、
以下の（Ｘ）及び／又は（Ｙ）が行われ、
（Ｘ）前記サーバ計算機が、前記サーバレベル仮想ボリュームの容量が変更されたことを検知し、前記サーバレベル仮想ボリュームの容量変更に関する第１の容量変更情報を前記管理システムに通知する、
（Ｙ）前記ストレージシステムが、前記ストレージレベルプールの容量が変更されたことを検知し、前記ストレージレベルプールの容量変更に関する第２の容量変更情報を前記管理システムに通知する、
前記管理システムが、前記第１又は第２の容量変更情報を受信した場合、受信した前記第１又は第２の容量変更情報を基に、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を計算し、算出されたＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が前記閾値を超えているか否かを判断する、
計算機システム。
【請求項１３】
ストレージシステムとサーバ計算機を管理する管理システムであって、
記憶デバイスを有するストレージシステムとコンピュータプログラムを実行するサーバ計算機とに接続されたインターフェースと、前記ストレージシステムは、ストレージレベルプールに属する一以上のボリュームを構成し、
ストレージ管理情報とサーバ管理情報とを記憶する記憶資源と、
前記ストレージ管理情報と前記サーバ管理情報を更新するプロセッサと、
前記ストレージ管理情報と前記サーバ管理情報とに基づいたメッセージを表示する表示装置と
を有し、
前記ストレージ管理情報は、前記ストレージレベルプールからストレージレベルのThin-Provisioning技術によって一部のエリアが割り当てられるストレージレベル仮想ボリュームと、前記ストレージレベルプールとの対応を表し、
前記サーバ管理情報は、サーバレベルプールに属する前記ストレージレベル仮想ボリュームからサーバレベルのThin-Provisioning技術によって一部のエリアが割り当てられるサーバレベル仮想ボリュームと、前記ストレージレベル仮想ボリュームとの対応を表し、
前記表示装置が、前記ストレージレベルプールと前記サーバレベル仮想ボリュームとの対応に関する対応情報を前記表示装置に表示し、
前記ストレージレベルプールに対応する前記サーバレベル仮想ボリュームは、前記ストレージ管理情報と前記サーバ管理情報を基に前記プロセッサによって特定される、
管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムとサーバ計算機を含んだ計算機システムでの管理に関する。
【背景技術】
【０００２】
「Thin-Provisioning技術」と呼ばれる、ストレージ容量の仮想化技術が知られている。Thin-Provisioning技術は、例えば、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３３８３４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ストレージシステムとストレージシステムにアクセスするサーバ計算機との両方で、Thin-Provisioning技術に従う容量仮想化を行う計算機システムが考えられる。そのような計算機システムでの管理が一つの課題となる。
【０００５】
そこで、本発明の目的は、ストレージシステムとサーバ計算機の両方でThin-Provisioning技術に従う容量仮想化が行われる計算機システムでの管理を容易にすることにある。
【課題を解決するための手段】
【０００６】
ストレージシステムとサーバ計算機を管理する管理システムが設けられる。管理システムが、ストレージ管理情報とサーバ管理情報とを基に、ストレージレベルプールに対応するサーバレベル仮想ボリュームを特定し、ストレージレベルプールとサーバレベル仮想ボリュームとの対応に関する情報を表示する。ストレージ管理情報は、ストレージレベルプールからストレージレベルでのThin-Provisioning技術によって一部のエリアが割り当てられるストレージレベル仮想ボリュームと、そのストレージレベルプールとの対応を表す。サーバ管理情報は、サーバレベルプールに属するストレージレベル仮想ボリュームからサーバレベルでのThin-Provisioning技術によって一部のエリアが割り当てられるサーバレベル仮想ボリュームと、ストレージレベル仮想ボリュームとの対応を表す。
【発明の効果】
【０００７】
本発明によれば、ストレージシステムとサーバ計算機の両方でThin-Provisioning技術に従う容量仮想化が行われる計算機システムでの管理を容易にすることが可能となる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の実施例１における計算機システムの構成を表す図である。
【図２】図２は、管理サーバ１０００のメモリ４０５０ｃが記憶する情報とプログラムの詳細を示す図である。
【図３】図３は、ストレージ制御プログラム２５００の構成を示す図である。
【図４】図４は、ストレージシステム２０００で行われるＴｈｉｎ−Ｐｒｏｖｉｓｉｏｎｉｎｇを表す図である。
【図５】図５は、物理サーバ３０００で行われるＴｈｉｎ−Ｐｒｏｖｉｓｉｏｎｉｎｇを表す図である。
【図６】図６は、ストレージレベルプール構成情報１４００を示すブロック図である。
【図７】図７は、ストレージレベル仮想ボリューム構成情報１５００を示すブロック図である。
【図８】図８は、ポート−ＬＵＮ対応情報１６００を示すブロック図である。
【図９】図９は、サーバレベルプール構成情報１７００を示すブロック図である。
【図１０】図１０は、サーバレベル仮想ボリューム構成情報１８００を示すブロック図である。
【図１１】図１１は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００を示すブロック図である。
【図１２】図１２は、初期設定情報１９１０を示すブロック図である。
【図１３】図１３は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率の表示画面を表す。
【図１４】図１４は、実施例１の管理プログラム１２００の行う処理のフローである。
【図１５】図１５は、図１４のステップＳ１０３の処理のフローである。
【図１６】図１６は、ストレージ構成変更処理のフローである。
【図１７】図１７は、コールバックインターフェースを用いた管理プログラムの行う処理を示すフローである。
【図１８】図１８は、管理プログラム１２００がコールバックインターフェースを備えている場合のストレージ構成変更処理のフローである。
【図１９】図１９は、コールバック処理のフローである。
【図２０】図２０は、図１７のステップＳ５０３の処理のフローである。
【図２１】図２１は、サーバレベルプール３２１０へのストレージレベル仮想ボリューム２２３０の設定、追加処理を表すフローである。
【図２２】図２２は、サーバ仮想化プログラムが仮想マシンからサーバレベル仮想ボリュームへのリード要求を受け付けた場合に行われる処理のフローである。
【図２３】図２３は、サーバ仮想化プログラムが仮想マシンからサーバレベル仮想ボリュームへのライト要求を受け付けた場合に行われる処理のフローである。
【図２４】図２４は、ストレージレベル仮想ボリュームからデータをリードする処理のフローである。
【図２５】図２５は、ストレージレベル仮想ボリューム２２３０へのデータのライト処理を表すフローの一部である。
【図２６】図２６は、ストレージレベルプール２２２０へのボリューム２２１０の追加する処理を表すフローである。
【図２７】図２７は、原因個所特定処理のフローである。
【図２８】図２８は、ストレージコントローラ２１０のメモリ４０５０aが記憶する情報及びプログラムの詳細を示す図である。
【図２９】図２９は、物理サーバ３０００のメモリ４０５０bが記憶する情報とプログラムの詳細を示す図である。
【図３０】図３０は、ストレージレベルプール情報１１０００を示すブロック図である。
【図３１】図３１は、ストレージレベル仮想ボリューム情報１２０００を示すブロック図である。
【図３２】図３２は、ボリューム情報１３０００を示すブロック図である。
【図３３】図３３は、ストレージ内マッピング情報１４０００を示すブロック図である。
【図３４】図３４は、サーバレベルプール情報１５０００を示すブロック図である。
【図３５】図３５は、サーバレベル仮想ボリューム情報１６０００を示すブロック図である。
【図３６】図３６は、記憶領域の階層関係の一例を示す。
【図３７】図３７は、原因個所の表示画面の一例を示す。
【図３８】図３８は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率と空き容量率とが並べて表示された画面の一例を示す。
【図３９】図３９は、ストレージレベル仮想ボリューム２２３０へのデータのライト処理を表すフローの残りである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明の幾つかの実施例を説明する。なお、実施例の説明で用いる用語の定義は、以下の通りである。その他の用語については、一般的な定義に従うことができる。また、以下の説明において、コンピュータプログラムが行う処理は、実際には、そのコンピュータプログラムを実行するプロセッサによって行われる。
【００１０】
「レバレッジ率」は、物理記憶領域の容量に対する、その物理記憶領域に対応する仮想記憶領域の容量の比率である。本実施例では、複数種類のレバレッジ率がある。例えば、第１種のレバレッジ率は、ストレージレベルプールの容量に対する、そのストレージレベルプールに対応する一以上のサーバレベルプールの総容量の比率である。第２種のレバレッジ率は、ストレージレベルプールの容量に対する、そのストレージレベルプールに対応する一以上のサーバレベル仮想ボリュームの総容量の比率である。以下の説明では、特に、第２種のレバレッジ率のことを、「Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率」と言う。
【００１１】
「ボリューム」とは、一以上の物理記憶デバイス（例えば、ハードディスクドライブ或いはフラッシュメモリ）を基に提供される論理記憶領域（論理ボリューム）である。ボリュームは、例えば、ＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループの記憶空間を基に提供される。ＲＡＩＤグループは、複数の物理記憶デバイスで構成されており、所定のＲＡＩＤレベルに従ってデータが格納される。
【００１２】
「ストレージレベル仮想ボリューム」とは、ストレージコントローラの提供する、仮想的なボリュームである。なお、必ずしも、ストレージレベル仮想ボリュームのエリア（記憶領域）の全てが、物理的な記憶領域に割りあたっているとは限らない。具体的には、例えば、ストレージレベル仮想ボリュームの一部又は全部のエリアは、初期的には、ストレージレベルプールに属する一以上のボリューム内のエリアが割り当てられていない。言い換えれば、初期的には、例えば、ストレージレベル仮想ボリュームの一部のエリアには、ストレージレベルプールの一部のエリアが割り当てられていても良い。ここで、「初期」とは、例えば、ストレージレベル仮想ボリュームが定義された直後、或いは、ストレージレベル仮想ボリュームが定義されて物理サーバからアクセス可能になった直後である。ストレージシステムは、ストレージレベル仮想ボリュームの容量を表すストレージレベル仮想ボリューム情報に基づいて、物理サーバにストレージレベル仮想ボリュームの容量を送信する。なお、ストレージシステム内部で管理される、ストレージレベル仮想ボリュームの容量と、SCSIプロトコル等で物理サーバに送信される、ストレージレベル仮想ボリュームの容量との間では、データ構造などの表現形式が異なっても良いし、端数切捨てが行われる等により異なったりしてもよい。勿論、ストレージシステム内部で管理される、ストレージレベル仮想ボリュームの容量と、物理サーバに送信される、ストレージレベル仮想ボリュームの容量とが同じであっても良い。
【００１３】
「サーバ仮想化プログラム」とは、物理サーバの有する物理的なリソースを仮想化することにより、仮想サーバシステムを構築するプログラムである。サーバ仮想化プログラムは、例えば、ハイパバイザである。また、物理的なリソースは、例えば、プロセッサ（例えばマイクロプロセッサ）、記憶資源（例えばメモリ）、及び通信インターフェース装置（例えばＨＢＡ（Host Bus Adapter））である。
【００１４】
「仮想マシン」とは、サーバ仮想化プログラムにより提供される仮想的な計算機である。サーバ仮想化プログラムにより、一つの物理サーバ上で擬似的に複数の計算機が稼働しているようにシステムを構築できる。この擬似的な計算機の一つ一つが、仮想マシンである。仮想マシンでは、例えば、仮想的に、ＯＳ（Operating System）などのコンピュータプログラムが実行される。
【００１５】
「サーバレベルプール」とは、サーバ仮想化プログラムがストレージシステムから割り当てられた一つ以上のストレージレベル仮想ボリュームから構築される記憶領域である。サーバレベルプールは、仮想マシンから、サーバレベル仮想ボリュームを経由して使用される。具体的には、仮想マシンからサーバレベル仮想ボリュームに対してデータが書き込まれる場合、そのデータの書込み先エリア（サーバレベル仮想ボリュームの一部のエリア）に、サーバレベルプールの一部のエリアが割り当てられる。そして、割り当てられた一部のエリアに対応する、ストレージレベル仮想ボリューム内のエリアを指定したライト要求が、物理サーバ（例えばその物理サーバで実行されるサーバ仮想化プログラム）から、そのストレージレベル仮想ボリュームを提供するストレージシステムに送信される。ストレージシステムのストレージコントローラは、そのライト要求に応答して、そのライト要求で指定されているエリア（ストレージレベル仮想ボリューム内のエリア）に、ストレージレベルプール内の一部のエリアを割り当て、割り当てられたエリアに、データを書き込む。データは、具体的には、その割り当てられたエリア（ストレージレベルプール内のエリア）の基になっている物理記憶領域（物理記憶デバイス内の領域）に書き込まれる。
【００１６】
「サーバレベル仮想ボリューム」とは、サーバ仮想化プログラムによって構築される、仮想的なボリュームである。必ずしも、サーバレベル仮想ボリュームの記憶領域の全てが物理的な記憶領域に割りあたっているとは限らない。サーバレベル仮想ボリュームの記憶領域は、仮想マシンによりアクセスされる。
【００１７】
「ストレージレベルプール」とは、一以上のボリュームにより構築されるプールである。ストレージレベルプールの一部のエリアが、ストレージレベル仮想ボリュームにおける、物理サーバからのライト先エリアに割り当てられる。ストレージレベルプールは、一以上のボリュームが属する複数のプールの集合（仮想的なプール）であっても良い。
【００１８】
図３６は、記憶領域の階層関係の一例を示す。なお、この図では、仮想マシンが「ＶＭ」と表されており、ボリュームが「ＶＯＬ」と表されており、ストレージレベルプールが、下位レベルのプールの略として「ＬＬＰ」と表されており、ストレージレベル仮想ボリュームが、下位レベルの仮想ボリュームの略として、「ＬＬ−ＶＶＯＬ」と表されており、サーバレベルプールが、上位レベルのプールの略として「ＨＬＰ」と略されており、サーバレベル仮想ボリュームが、上位レベルの仮想ボリュームの略として「ＨＬ−ＶＶＯＬ」と表されている。なお、このような表現方法は、他の図でも適宜採られている。
【００１９】
この例によれば、複数のストレージレベルプール（例えばストレージレベルプール１，２）があり、各ストレージレベルプールが基点となって、木構造のような記憶領域トポロジーが構成されている。記憶領域トポロジーの構成要素は、下位から順番に言えば、ストレージレベルプール、ストレージレベル仮想ボリューム、サーバレベルプール及びサーバレベル仮想ボリュームである。この例によれば、ストレージレベルプール１に、下記の記憶領域（Ａ）〜（Ｄ）：
（Ａ）ストレージレベル仮想ボリューム１及び２；
（Ｂ）ストレージレベル仮想ボリューム１及び２にそれぞれ対応するサーバレベルプール１及び２；
（Ｃ）サーバレベルプール１に対応するサーバレベル仮想ボリューム１（サーバレベルプール１からエリアの一部が割り当てられるサーバレベル仮想ボリューム１）；及び、
（Ｄ）サーバレベルプール２に対応するサーバレベル仮想ボリューム２及び３、
が対応していることになる。すなわち、この例によれば、ストレージレベルプール１には、そのプール１を基点とする記憶領域トポロジーの構成要素であるサーバレベル仮想ボリューム１〜３が対応していることになる。
【００２０】
下記の実施例では、記憶領域トポロジー毎に、すなわち、ストレージレベルプール毎に、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を算出することができる。なぜなら、ストレージレベルプール毎に、ストレージレベルプールを基点とした記憶領域トポロジーを特定すること、換言すれば、対応するサーバレベル仮想ボリュームを特定することができるからである。
【００２１】
図に示すように、サーバレベル仮想ボリュームにアクセスする主体は、仮想マシンであってもなくても良い。例えば、物理サーバ１に示すように、アプリケーションプログラム（ＡＰ）或いはＯＳがサーバレベル仮想ボリュームにアクセスしても良い。この場合、例えば、アプリケーションプログラム或いはＯＳが、サーバレベル仮想ボリュームのライト先エリアに、サーバレベルプール内の一部エリアを割り当て、その一部エリアに対応するエリア（ストレージレベル仮想ボリューム内のエリア）を指定したライト要求をストレージシステムに発行して良い。
【００２２】
また、図に示すように、サーバレベルプールが複数の物理サーバ、例えば物理サーバ３及び４に共有されても良い。このケースでは、例えば、破線で示すように、物理サーバ３内の仮想マシン３が物理サーバ４にマイグレーションされても、ストレージレベルプール２についてのＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率は変わらない。なぜなら、仮想マシン３のマイグレーションにより、仮想マシン３にマウントされていたサーバレベル仮想ボリューム４も物理サーバ４にマイグレーションされることになるが、そのサーバレベル仮想ボリューム４の容量に変更が生じるわけではないからである。言い換えれば、ストレージレベルプール２に対応するサーバレベル仮想ボリューム４及び５の総容量を変更する構成変更（或いは、ストレージレベルプール２の容量を変更する構成変更）が行われた場合には、ストレージレベルプール２についてのＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が変わることになる。
【００２３】
サーバレベル仮想ボリュームは、複数の所定サイズのエリア（以下、HL仮想ページ）で構成されて良い。サーバレベルプールは、複数の所定サイズのエリア（以下、HL実ページ）で構成されて良い。ストレージレベル仮想ボリュームは、複数の所定サイズのエリア（以下、LL仮想ページ）で構成されて良い。ストレージレベルプールは、複数の所定サイズのエリア（以下、LL実ページ）で構成されて良い。この構成において、一以上のHL実ページが一以上のLL仮想ページに対応している。例えば、HL実ページとLL仮想ページが１対１で対応して良い。ページ同士の対応関係は、テーブル等で管理されても良いし、計算によって算出されても良い。
【００２４】
サーバレベル仮想ボリューム内の或るHL仮想ページを表すライト要求が発行された場合、その或るHL仮想ページにHL実ページが未割当てであれば、そのサーバレベル仮想ボリュームに対応するサーバレベルプールから、フリーのHL実ページが割り当てられる。そして、物理サーバ３０００から、割り当てられたHL実ページに対応するLL仮想ページを表すライト要求がストレージシステム２０００に送信される。ストレージシステム２０００では、そのLL仮想ページにLL実ページが未割当てであれば、そのLL仮想ページに、そのLL仮想ページを有するストレージレベル仮想ボリュームに対応したストレージレベルプールから、フリーのLL実ページが割り当てられる。そして、そのLL実ページに、当該ライト要求に従うデータが書き込まれる。LL実ページが例えば複数のＰＤＥＶに基づいていれば、データは、例えば所定のＲＡＩＤレベルに従って、複数のＰＤＥＶに格納される。
【実施例１】
【００２５】
実施例１では、管理サーバが、ストレージシステムの仮想ボリューム情報と物理サーバの仮想ボリューム情報とを収集し、ストレージシステムの仮想ボリューム情報と物理サーバの仮想ボリューム情報とを分析し、その分析結果を基に、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を管理者（例えばストレージ管理者）に表示する。以下に詳細を説明する。
【００２６】
＜１．計算機システムの構成＞。
【００２７】
図１は、本発明の実施例１における計算機システムの構成を表す図である。
【００２８】
計算機システムは、ストレージシステム２０００、物理サーバ３０００及び管理サーバ１０００を備える。なお、ストレージシステム２０００、物理サーバ３０００及び管理サーバ１０００の少なくとも一つは、何台備わっていても良い。
【００２９】
ストレージシステム２０００及び物理サーバ３０００は、通信ネットワーク、例えば、ＳＡＮ５０００もしくはＬＡＮ５０１０を通じ、相互に接続される。管理サーバ１０００は、通信ネットワーク、例えば、ＬＡＮ５０１０もしくはＳＡＮ５０００を通じ、ストレージシステム２０００及び物理サーバ３０００と接続される。
【００３０】
＜１−１．ストレージシステムの構成＞。
【００３１】
ストレージシステム２０００は、複数のＰＤＥＶ（物理記憶デバイス）２１００ａ、及び複数のストレージコントローラ（ＣＴＬ）２０１０を備える。ＰＤＥＶ２１００ａ、及びストレージコントローラ２０１０は、例えば、内部ネットワーク又はバスによって相互に接続される。ストレージコントローラ２０１０は、ＰＤＥＶ２１００ａに基づく記憶領域にデータを格納する。
【００３２】
ＰＤＥＶ２１００ａは、例えば、ディスク型の記憶メディアのドライブ（例えばハードディスクドライブ）であり、物理サーバ３０００からストレージシステム２０００が受けたライト要求に従うデータを記憶する。ＰＤＥＶ２１００ａは、例えばフラッシュメモリドライブであっても良い。ＰＤＥＶ２１００ａは、一つでも良い。
【００３３】
ストレージコントローラ２０１０は、ストレージシステム１０００の動作を制御する装置である。ストレージコントローラ２０１０は、内部ネットワークを有する。その内部ネットワークに、例えば、ストレージポート４０２０ａ、プロセッサ４０１０ａ（例えばＣＰＵ）及びメモリ４０５０ａが接続されている。ストレージコントローラ２０１０同士は、内部ネットワークにて相互に接続される。また、ストレージコントローラ２０１０と各ＰＤＥＶ２１００ａは、複数のバックエンドネットワークにて相互接続される。ストレージコントローラ２０１０は一つでも良い。
【００３４】
ストレージポート４０２０ａは、ＳＡＮ５０００等のネットワークを介して、ストレージシステム２０００、管理サーバ７０００に接続されるインターフェースである。
【００３５】
プロセッサ４０１０ａは、メモリ４０５０ａによって記憶されるプログラムを実行することによって、各種処理を行う。
【００３６】
メモリ４０５０ａは、例えばＲＡＭ（Random Access Memory）等で構成され、プロセッサ４０１０ａによって実行されるプログラムや、プロセッサ４０１０ａによって必要とされる情報等を記憶する。具体的には、例えば、ストレージコントローラ２０１０のメモリ４０５０ａには、ストレージ制御プログラム２５００が記憶され、管理サーバ１０００から受信した管理操作要求を基に、ストレージコントローラ２０１０を制御する。管理操作要求は、ストレージシステム２０００の操作のための要求であり、例えば、ボリューム構築要求や、ストレージレベルプール構築要求等がある。なお、メモリ４０５０ａは、ＰＤＥＶ２１００ａに入出力されるデータが一時的に格納されるキャッシュメモリとして用いられてもよい。
【００３７】
なお、物理サーバ３０００及びストレージシステム２０００の各々における内部ネットワークは、好ましくは、ストレージポート４０２０ａの有する転送帯域より広帯域であり、また、バスやスイッチ型のネットワークによって全てまた一部が代替されてもよい。また、図１では、ストレージポート４０２０ａは、ストレージコントローラ２０１０に一つ存在することになっているが、実際には、複数のストレージポート４０２０ａがストレージコントローラ２０１０に存在してもよい。なお、ストレージコントローラ２０１０は、複数の部品にて構成されてもよい。同様に、メモリ４０５０ａも、複数の部品にて構成されてもよい。
【００３８】
ストレージシステム２０００は、例えば、後述するように、ストレージレベルプールに属する一以上のボリュームを構成する。ストレージレベルプールは、ストレージシステム２０００が有しても良いし、ストレージシステム２０００とは別のシステム（例えば、ストレージシステム２０００と物理サーバ３０００との間に介在するシステム（例えばスイッチ装置）が有しても良い。
【００３９】
ストレージシステムは、一つのストレージ装置であっても良いし、複数のストレージ装置の集合であっても良い。例えば、或るストレージ装置が管理するＶＯＬは、別のストレージ装置が有するＰＤＥＶに基づくＶＯＬであっても良い。
【００４０】
ストレージシステムが有する記憶デバイスのエリアに、一以上のボリュームの全てのエリアが割り当てられていても良いし、一以上のボリュームの一部のエリアが記憶デバイスのエリアに割り当てられていなくても良い。
【００４１】
＜１−２．物理サーバの構成＞。
【００４２】
物理サーバ３０００は、サーバ計算機の一例であり、プロセッサ４０１０ｂ、メモリ４０５０ｂ及びＨＢＡ４０２０ｂを有する。プロセッサ４０１０ｂ、メモリ４０５０ｂ、及びＨＢＡ４０２０ｂは内部ネットワークによって相互に接続される。
【００４３】
プロセッサ４０１０ｂは、メモリ４０５０ｂによって記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ４０１０ｂは、ストレージシステム２０００にＩ／Ｏ要求（ライト要求又はリード要求）を送信することによって、そのストレージシステム２０００によって提供される一つ以上のストレージレベル仮想ボリューム２２３０に対してデータの入出力（ライト又はリード）を行うことができる。
【００４４】
メモリ４０５０ｂは、プロセッサ４０１０ｂによって実行されるプログラムやプロセッサ４０１０ｂによって必要とされる情報等を記憶する。メモリ４０１０ｂは、半導体メモリ又は記憶デバイス、あるいはこれらを組み合わせたもので良い。メモリ４０５０ｂは、サーバ仮想化プログラム３２００を記憶する。
【００４５】
ＨＢＡ４０２０ｂは、ＳＡＮ５０００やＬＡＮ５０１０等のネットワークを介してストレージシステム２０００に接続されるインターフェースである。具体的には、例えば、ＨＢＡ４０２０ｂは、プロセッサ４０１０ｂからストレージシステム２０００へのＩ／Ｏ要求を出力する。
【００４６】
サーバ仮想化プログラム３２００は、物理サーバ３０００の有する物理リソースから仮想サーバ環境（仮想マシン）を構築する。
【００４７】
＜１−３．管理サーバの構成＞。
【００４８】
管理サーバ１０００は、プロセッサ４０１０ｃ、メモリ４０５０ｃ、管理プログラム１２００、及びＮＩＣ（Network Interface Card）４０４０ｃを備える計算機である。プロセッサ４０１０ｃ、メモリ４０５０ｃ、ＰＤＥＶ２１００ｃ及びＮＩＣ４０４０ｃは、内部ネットワークにより相互に接続される。
【００４９】
プロセッサ４０１０ｃは、メモリ４０５０ｃによって記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ４０１０ｃは、ストレージシステム２０００に管理要求を送信することによって、そのストレージシステム２０００によって実行されるストレージレベル仮想ボリューム２２３０の物理サーバ３０００への割り当て等を制御する。なお、管理要求は、遠隔転送要求、またはコピー制御要求等を含んでよい。
【００５０】
メモリ４０５０ｃは、プロセッサ４０１０ｃによって実行されるプログラムやプロセッサ４０１０ｃによって必要とされる情報等を記憶する。例えば、メモリ４０５０ｃには、管理プログラム１２００が記憶される。なお、メモリ４０５０ｃは、半導体メモリ又は記憶デバイス、あるいはこれらを組み合わせたもので良い。
【００５１】
ＮＩＣ４０４０ｃは、ＬＡＮ５０１０等のネットワークを介して、ストレージシステム２０００に接続されるインターフェースである。
【００５２】
なお、管理サーバ１０００は、入出力装置４０６０を有してよい。管理サーバ１０００内の入出力装置４０６０も、内部ネットワークに接続される。
【００５３】
入出力装置４０６０の例としては、ディスプレイとキーボードとポインタデバイスが考えられるが、これら以外の装置であっても良い。また、入出力装置４０６０の代替として、シリアルインターフェースやイーサネットインターフェースが入出力装置４０６０とされてよい。また、該当インターフェースに、ディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機が接続されて良い。表示用情報の表示用計算機での送信や、入力用情報を表示用計算機から受信することが行われても良い。これらにより、表示用計算機での表示が行われても良いし、入力を受け付けることで、入出力装置４０６０での入力及が行われても良い。
【００５４】
管理プログラム１２００は、ストレージシステム２０００を管理する。具体的には、例えば、管理プログラム１２００は、ボリューム構成の管理、ストレージレベルプール構成の管理、ストレージレベル仮想ボリューム構成の管理、各種ボリューム割り当ての指示等を行う。
【００５５】
なお、管理サーバ１０００は、ストレージシステム２０００を管理する装置と、物理サーバ３０００を管理する装置とに分かれていても良い。具体的には、例えば、管理サーバ１０００は、管理システムの一例である。管理システムは、一以上の計算機、例えば、管理計算機、又は、管理計算機と表示用計算機との組み合わせである。具体的には、例えば、管理計算機が表示用情報を表示する場合は、管理計算機が管理システムである。また、処理の高速化や高信頼化のために、複数の計算機で管理計算機と同等の機能が実現されてもよく、この場合は、当該複数の計算機（表示を表示用計算機が行う場合は表示用計算機を含んで良い）が、管理システムである。
【００５６】
＜２．ストレージの詳細＞。
【００５７】
図２８は、ストレージコントローラ２１０のメモリ４０５０aが記憶する情報及びプログラムの詳細を示す図である。
【００５８】
メモリ４０５０aには、例えば、ストレージレベルプール情報１１０００、ストレージレベル仮想ボリューム情報１２０００、ボリューム情報１３０００、ストレージ内マッピング情報１４０００、ストレージ制御プログラム２５００が記憶される。
【００５９】
ストレージレベルプール情報１１０００は、ストレージレベルプールに関する情報である。
【００６０】
ストレージレベル仮想ボリューム情報１２０００は、ストレージレベル仮想ボリュームに関する情報である。
【００６１】
ボリューム情報１３０００は、ボリュームに関する情報である。
【００６２】
ストレージ内マッピング情報１４０００は、ストレージシステム２０００が管理する各種記憶領域（ボリューム、ストレージレベルプール、ストレージレベル仮想ボリューム）のマッピングを示す情報である。
【００６３】
ストレージ制御プログラム２５００は、ストレージシステム２０００の制御に関する処理が定義されたプログラムである。ストレージ制御プログラム２５００は、例えば、ストレージ仮想化モジュール２５０１、ストレージ構成管理モジュール２５０２及びコマンド制御モジュール２５０３を有する。なお、ストレージ制御プログラム２５００の有する各モジュールは、必ずしも一つのプログラムのモジュールである必要は無く、それぞれが別々のプログラムコードであってもよい。
【００６４】
＜２−１．ストレージの有する情報の説明＞。
【００６５】
＜２−１−１． ストレージレベルプール情報の説明＞。
【００６６】
図３０は、ストレージレベルプール情報１１０００を示すブロック図である。
【００６７】
ストレージレベルプール情報１１０００は、例えば、ストレージレベルプール毎に、ストレージレベルプールに関する情報の他に、ストレージレベルプールに属するボリュームに関する情報と、ストレージレベルプールからエリアが割り当てられるストレージレベル仮想ボリュームに関する情報とを含む。具体的には、例えば、ストレージレベルプール情報１１０００は、テーブルであり、ストレージレベルプール毎に、ストレージレベルプール識別子１１００１、ストレージベルプール容量１１００２、ストレージレベルプール空き容量１１００３、ボリューム識別子１１００４、ストレージレベル仮想ボリューム識別子１１００５、ストレージレベル仮想ボリューム総容量１１００６、を属性値とするレコードを有する。
【００６８】
ストレージレベルプール識別子１１００１は、ストレージ仮想化モジュール２５０１によってストレージレベルプール２２２０に割り当てられた識別子である。
【００６９】
ストレージレベルプール容量１１００２は、ストレージレベルプールの容量である。
【００７０】
ストレージレベルプール割当済容量１１００３は、ストレージレベルプールの容量のうち、ストレージ制御プログラム２５００により、ストレージレベル仮想ボリューム２２３０に割り当てられたエリアの総容量である。
【００７１】
ボリューム識別子１１００４は、ストレージレベルプールに属するボリュームの識別子である。ストレージレベルプールに属するボリュームとは、ストレージ仮想化モジュール２５０１により、ストレージレベルプールに属するように、設定が行われたボリュームを指す。
【００７２】
ストレージレベル仮想ボリューム総容量１１００５は、ストレージレベルプールに対応する全てのストレージレベル仮想ボリューム０の容量を合算した値である。
【００７３】
なお、ストレージレベルプール情報１１０００は、ストレージレベルプールに関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のストレージレベルプールに関する属性値を有しても良い。また、ストレージレベルプール情報１１０００は、ストレージレベルプール識別子を除いては上記属性値の一部を格納しなくてもよい。
【００７４】
また、図３０から分かるように、ストレージレベルプール容量１１００２は、必ずしも、ストレージレベル仮想ボリューム総容量１１００５と同じにはならない。なぜなら、ストレージレベルプールは、そのストレージレベルプールに属する一以上のボリュームの一部のエリアで構成されることもあるからである。
【００７５】
＜２−１−２． ストレージレベル仮想ボリューム情報＞。
【００７６】
図３１は、ストレージレベル仮想ボリューム情報１２０００を示すブロック図である。
【００７７】
ストレージレベル仮想ボリューム情報１２０００は、ストレージレベル仮想ボリューム毎に、ストレージレベル仮想ボリュームに関する情報の他に、ストレージレベル仮想ボリュームへのエリアの割当元となるストレージレベルプールに関する情報を含む。具体的には、例えば、ストレージレベル仮想ボリューム情報１２０００は、テーブルであり、ストレージレベル仮想ボリューム毎に、ストレージレベル仮想ボリューム識別子１２００１、ストレージレベル仮想ボリューム容量１２００２、ストレージレベル仮想ボリューム割当済容量１２００３、ストレージレベルプール識別子１２００４、ストレージレベルプール容量１２００５、ポート番号・ＬＵＮ（Logical Unit Number）１２００６を属性値とするレコードを含む。
【００７８】
ストレージレベル仮想ボリューム識別子１２００１は、ストレージ仮想化モジュール２５０１によってストレージレベル仮想ボリュームに割り当てられた識別子である。
【００７９】
ストレージレベル仮想ボリューム容量１２００２は、ストレージ仮想化モジュール２５０１により設定された、ストレージレベル仮想ボリュームの容量である。
【００８０】
ストレージレベル仮想ボリューム割当済容量１２００３は、ストレージレベル仮想ボリューム容量１５０２のうち、ストレージ制御プログラム２５００によってストレージレベルプールからストレージレベル仮想ボリュームに割り当てられたエリアの総容量である。
【００８１】
ストレージレベルプール識別子１２００４は、ストレージレベル仮想ボリュームへのエリアの割当元となるストレージレベルプール２２２０の識別子である。
【００８２】
ストレージレベルプール容量１２００５は、ストレージレベルプールの容量である。
【００８３】
ポート番号・ＬＵＮ１２００６は、ストレージレベル仮想ボリュームに対応したポート番号及びＬＵＮである。
【００８４】
なお、ストレージレベル仮想ボリューム情報１２０００は、ストレージレベル仮想ボリュームに関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のストレージレベル仮想ボリュームに関する属性値を有しても良い。また、ストレージレベル仮想ボリューム情報１２０００は、ストレージレベル仮想ボリューム識別子１２００１を除いては上記属性値の一部を格納しなくてもよい。
【００８５】
＜２−１−３．ボリューム情報＞。
【００８６】
図３２は、ボリューム情報１３０００を示すブロック図である。
【００８７】
ボリューム情報１３０００は、ボリューム毎に、ボリュームに関する情報の他に、ボリュームが属するストレージレベルプールに属するボ情報を含む。具体的には、例えば、ボリューム情報１３０００は、例えば、テーブルであり、ボリューム毎に、ボリューム識別子１３００１、ボリューム容量１３００２、ＰＤＥＶ識別子１３００３、ストレージレベルプール識別子１３００４、を属性値とするレコードを含む。
【００８８】
ボリューム識別子１３００１は、ストレージ仮想化モジュール２５０１によってボリュームに割り当てられた識別子である。
【００８９】
ボリューム容量１３００２は、ボリュームの容量である。ボリュームは、例えば、ストレージ仮想化モジュール２５０１によって一以上のＰＤＥＶ２１００ａの記憶領域をグループ化することにより構築される。ボリュームの記憶領域は、ストレージコントローラ４０５０の行う制御により、一以上のＰＤＥＶ２１００ａの記憶領域に分散してマッピングされる。
【００９０】
ＰＤＥＶ識別子１３００３は、ストレージ仮想化モジュール２５０１によってボリュームに基づくＰＤＥＶ２１００aに割り当てられた識別子である。つまり、ボリュームの基になっているＰＤＥＶ２１００ａの識別子である。
【００９１】
ストレージレベルプール識別子１３００４は、ボリュームが属するストレージレベルプール０の識別子である。
【００９２】
なお、ボリューム情報１３０００は、ボリュームに関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のボリュームに関する属性値を有しても良い。また、ボリューム情報１３０００は、ボリューム識別子１３００１を除いては上記属性値の一部を格納しなくてもよい。
【００９３】
＜２−１−４．ストレージ内マッピング情報＞。
【００９４】
図３３は、ストレージ内マッピング情報１４０００を示すブロック図である。
【００９５】
ストレージ内マッピング情報１４０００は、例えば、テーブルであり、ストレージレベルプール毎に、ストレージレベルプール識別子１４００１、ストレージレベル仮想ボリューム識別子１４００２、ボリューム割当済容量１４００３、ＰＤＥＶ識別子１４００４、を属性値とするレコードを含む。
【００９６】
ストレージレベルプール識別子１４００１は、ストレージレベルプールの識別子である。
【００９７】
ストレージレベル仮想ボリューム識別子１４００２は、ストレージレベルプールからエリアの一部が割り当てられるストレージレベル仮想ボリュームの識別子である。
【００９８】
ボリューム識別子は１４００３、ストレージレベルプールに属するボリュームの識別子である。
【００９９】
ＰＤＥＶ識別子１４００４は、ストレージレベルプールに属するボリュームの基になっているＰＤＥＶ２１００aの識別子である。
【０１００】
なお、ストレージ内マッピング情報１４０００は、ストレージシステム２０００の有するデバイスのマッピングに関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のマッピング情報の属性値を有しても良い。また、ストレージ内マッピング情報１４０００は、ストレージレベルプール識別子１４００１を除いては上記属性値の一部を格納しなくてもよい。
【０１０１】
＜２−２．ストレージが有するプログラムの説明＞。
【０１０２】
図３は、ストレージ制御プログラム２５００の構成を示す図である。
【０１０３】
ストレージ制御プログラム２５００は、図２８にも示したように、ストレージ仮想化モジュール２５０１、ストレージ構成管理モジュール２５０２及びコマンド制御モジュール２５０３を有する。ストレージ制御プログラム２５００は、ストレージシステム２０００を制御するための処理が書かれており、ストレージコントローラ２０１０のメモリに記憶され、実行される。
【０１０４】
ストレージ構成管理モジュール２５０２は、ストレージシステム２０００の有する各種記憶領域の構成を管理する。記憶領域の構成の管理とは、具体的には、例えば、ストレージレベルプールを構成しているボリュームの管理、ボリュームを構成しているＰＤＥＶ２１００ａの管理等である。
【０１０５】
コマンド制御モジュール２５０３は、物理サーバ３０００又は管理サーバ１０００からのコマンド（例えばＩ／Ｏ要求）を解釈し、そのコマンドに規定された処理を実行する。
【０１０６】
ストレージ仮想化モジュール２５０１は、ＰＤＥＶ２１００ａを基にボリュームを構築する。ストレージ仮想化モジュール２５０１は、ストレージレベル仮想ボリュームも構築する。ストレージ仮想化モジュール２５０１は、ストレージレベルプールに、一以上のボリュームと一以上のストレージレベル仮想ボリュームをマッピングする。
【０１０７】
＜３．物理サーバの詳細＞。
【０１０８】
図２９は、物理サーバ３０００のメモリ４０５０bが記憶する情報とプログラムの詳細を示す図である。
【０１０９】
メモリ４０５０bには、サーバレベルプール情報１５０００、サーバレベル仮想ボリューム情報１６０００、及びサーバ仮想化プログラム３２００が記憶される。
【０１１０】
サーバレベルプール情報１５０００は、サーバレベルプールに関する情報である。
【０１１１】
サーバレベル仮想ボリューム情報１６０００は、サーバレベル仮想ボリュームに関する情報である。
【０１１２】
サーバ仮想化プログラム３２００は、物理サーバ３０００の有するリソースを用い、仮想マシン３２０１、サーバレベルプール３２１０、サーバレベル仮想ボリューム３２２０等を構築する。
【０１１３】
＜３−１．物理サーバの有する情報の説明＞。
【０１１４】
＜３−１−１．サーバレベルプール情報＞。
【０１１５】
図３４は、サーバレベルプール情報１５０００を示すブロック図である。
【０１１６】
サーバレベルプール情報１５０００は、例えば、サーバレベルプール毎に、サーバレベルプールに関する情報の他に、サーバレベルプールに属するストレージレベル仮想ボリュームに関する情報と、サーバレベルプールからエリアが割り当てられるサーバレベル仮想ボリュームに関する情報とを含む。具体的には、例えば、サーバレベルプール情報１５０００は、テーブルであり、サーバレベルプール毎に、サーバレベルプール識別子１５００１、サーバレベルプール容量１５００２、サーバレベルプール空容量１５００３、サーバレベル仮想ボリューム識別子１５００４、サーバレベル仮想ボリューム総容量１５００５、構成ストレージポート番号・ＬＵＮ（Logical Unit Number）１５００６、を属性値とする以上のレコードを含む。
【０１１７】
サーバレベルプール識別子１５００１は、サーバ仮想化プログラム３２００によってサーバレベルプール３２１０に割り当てられた識別子である。
【０１１８】
サーバレベルプール容量１５００２は、サーバレベルプール３２１０の容量である。
【０１１９】
サーバレベルプール割当済容量１５００３は、サーバレベルプール容量１５００２のうち、サーバレベル仮想ボリューム３２２０に割り当てられたエリアの総容量である。
【０１２０】
サーバレベル仮想ボリューム識別子１５００４は、サーバレベルプールからエリアの一部が割り当てられるサーバレベル仮想ボリュームの識別子である。
【０１２１】
サーバレベル仮想ボリューム総容量１５００５は、サーバレベルプールからエリアが割り当てられる全てのサーバレベル仮想ボリュームの容量の合計である。
【０１２２】
構成ストレージポート番号・ＬＵＮ１５００６は、サーバレベルプールに属するストレージレベル仮想ボリュームを特定するためのＬＵＮとポート番号（ストレージレベル仮想ボリュームを表すパラメータとしてＩ／Ｏ要求で使用されるＬＵＮとポート番号）である。
【０１２３】
なお、サーバレベルプール情報１５０００は、サーバレベルプールに関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のサーバレベルプール構成の属性値を有しても良い。また、サーバレベルプール情報１５０００は、サーバレベルプール識別子１５００１を除いては上記属性値の一部を格納しなくてもよい。
【０１２４】
＜３−１−２．サーバレベル仮想ボリューム情報＞。
【０１２５】
図３５は、サーバレベル仮想ボリューム情報１６０００を示すブロック図である。
【０１２６】
サーバレベル仮想ボリューム情報１６０００は、例えば、サーバレベル仮想ボリューム毎に、サーバレベル仮想ボリュームに関する情報の他に、サーバレベル仮想ボリュームへのエリアの割当元となるサーバレベルプールに関する情報と、サーバレベル仮想ボリュームを使用する仮想マシンに関する情報とを含む。具体的には、例えば、サーバレベル仮想ボリューム情報１６０００は、サーバレベル仮想ボリューム毎に、サーバレベル仮想ボリューム識別子１６００１、サーバレベル仮想ボリューム容量１６００２、サーバレベル仮想ボリューム割当済容量１６００３、サーバレベルプール識別子１６００４、サーバレベルプール容量１６００５、対応仮想マシン識別子１６００６、仮想マシン認識デバイス識別子１６００７を属性値とするレコードを含む。
【０１２７】
サーバレベル仮想ボリューム識別子１６００１は、サーバ仮想化プログラム３２００によってサーバレベル仮想ボリュームに割り当てられた識別子である。
【０１２８】
サーバレベル仮想ボリューム容量１６００２は、サーバレベル仮想ボリュームの容量である。
【０１２９】
サーバレベル仮想ボリューム割当済容量１６００３は、サーバレベル仮想ボリューム容量のうち、サーバレベルプールからエリアが割り当てられているエリア（仮想エリア）の総容量である。
【０１３０】
サーバレベルプール識別子１６００４は、サーバレベル仮想ボリュームへのエリアの割当元となるサーバレベルプールの識別子である。
【０１３１】
サーバレベルプール容量１６００５は、サーバレベル仮想ボリュームへのエリアの割当元となるサーバレベルプールの容量である。
【０１３２】
対応仮想マシン識別子１６００６は、サーバレベル仮想ボリュームを使用する仮想マシンの識別子である。
【０１３３】
仮想マシン認識デバイス識別子１６００７は、仮想マシン３２０１がサーバレベル仮想ボリュームを認識する際の識別子（サーバレベル仮想ボリュームを表すデバイスの識別子）である。
【０１３４】
なお、サーバレベル仮想ボリューム情報１６０００は、サーバレベル仮想ボリューム３２２０に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のサーバレベル仮想ボリューム３２２０に関する属性値を有しても良い。また、サーバレベルプール情報１６０００は、サーバレベル仮想ボリューム識別子１６００１を除いては上記属性値の一部を格納しなくてもよい。
【０１３５】
＜３−２．物理サーバの有するプログラムの説明＞。
【０１３６】
サーバ仮想化プログラム３２００について説明する。
【０１３７】
サーバ仮想化プログラム３２００は、物理サーバ３０００の有するリソースを用い、仮想マシン３２０１、サーバレベルプール３２１０、サーバレベル仮想ボリューム３２２０等を構築する。サーバ仮想化プログラム３２００の実行する処理のより詳細な説明は、以降の＜５−１．サーバでのThin-Provisioning＞で説明する。
【０１３８】
＜４．管理サーバの詳細＞。
【０１３９】
図２は、管理サーバ１０００のメモリ４０５０ｃが記憶する情報とプログラムの詳細を示す図である。
【０１４０】
メモリ４０５０ｃには、ストレージレベルプール構成情報１４００、ストレージレベル仮想ボリューム構成情報１５００、ポート−ＬＵＮ対応情報１６００、サーバレベルプール構成情報１７００、サーバレベル仮想ボリューム構成情報１８００、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００、初期設定情報１９１０、及び管理プログラム１２００が記憶される。
【０１４１】
ストレージレベルプール構成情報１４００は、ストレージレベルプールの構成に関する情報である。なお、ストレージレベルプール構成情報１４００については、＜４−１．ストレージ情報＞で詳細を説明する。
【０１４２】
ストレージレベル仮想ボリューム構成情報１５００は、ストレージレベル仮想ボリュームの構成に関する情報である。なお、ストレージレベル仮想ボリューム構成情報１５００については、＜４−１．ストレージ情報＞で詳細を説明する。
【０１４３】
ポート−ＬＵＮ対応情報１６００は、ストレージシステム２０００が物理サーバ３０００に提供するストレージレベル仮想ボリュームに対応するポート番号とＬＵＮに関する情報である。なお、ポート−ＬＵＮ対応情報１６００については、＜４−１−３．管理サーバ設定情報＞で詳細を説明する。
【０１４４】
サーバレベルプール構成情報１７００は、サーバレベルプール３２１０の構成に関する情報である。なお、サーバレベルプール構成情報１７００については、＜４−１−２．物理サーバ情報＞で詳細を説明する。
【０１４５】
サーバレベル仮想ボリューム構成情報１８００は、サーバレベル仮想ボリュームの構成に関する情報である。なお、サーバレベル仮想ボリューム構成情報１８００については、＜４−１−１．サーバ情報＞で詳細を説明する。
【０１４６】
Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００は、ストレージレベルプールについてのＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率に関する情報である。なお、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００については、＜４−１−３．管理サーバ管理情報＞で詳細を説明する。
【０１４７】
初期設定情報１９１０は、ストレージ管理者の入力する初期設定に関する情報である。なお、初期設定情報１９１０については、＜４−１−３．管理サーバ管理情報＞で説明する。
【０１４８】
管理プログラム１２００は、ストレージシステム２０００及び物理サーバ３０００を管理するプログラムである。管理プログラム１２００は、ストレージ管理モジュール１２０１、サーバ管理モジュール１２０２及びレバレッジ管理モジュール１２０３を有する。
【０１４９】
ストレージ管理モジュール１２０１は、ストレージレベルプール構成情報１４００、ストレージレベル仮想ボリューム構成情報１５００を用いて、ストレージシステム２０００を管理するモジュールである。
【０１５０】
サーバ管理モジュール１２０２は、サーバレベルプール構成情報１７００及びサーバレベル仮想ボリューム構成情報１８００を用いて、物理サーバ３０００を管理するモジュールである。
【０１５１】
レバレッジ管理モジュール１２０３は、ポート−ＬＵＮ対応情報１６００、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報及び初期設定情報１９１０を用いて、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を管理するモジュールである。
【０１５２】
なお、管理プログラム１２００の有する各モジュールは、必ずしも一つのプログラムのモジュールである必要は無く、それぞれが別々のプログラムコードであってもよい。
【０１５３】
＜４−１．管理サーバで管理する情報＞。
【０１５４】
＜４−１−１．ストレージ情報＞。
【０１５５】
＜４−１−１ａ．ストレージレベルプール構成情報＞。
【０１５６】
図６は、ストレージレベルプール構成情報１４００を示すブロック図である。
【０１５７】
ストレージレベルプール構成情報１４００は、ストレージレベルプール毎に、ストレージレベルプールに関する情報の他に、そのストレージレベルプールに対応するストレージレベル仮想ボリュームに関する情報を含む。具体的には、例えば、ストレージレベルプール構成情報１４００は、テーブルであり、ストレージレベルプール毎に、ストレージレベルプール識別子１４０１、ストレージレベルプール容量１４０２、ストレージレベルプール割当済容量１４０３、対応ストレージ仮想ボリューム識別子１４０４、対応ストレージレベル仮想ボリューム総容量１４０５、プール構成ボリューム識別子１４０６、ストレージ装置識別子１  ４０７を属性値とするレコードを含む。
【０１５８】
ストレージレベルプール識別子１４０１は、ストレージレベルプールの識別子である。
【０１５９】
ストレージレベルプール容量１４０２は、ストレージレベルプールの容量である。
【０１６０】
ストレージレベルプール割当済容量１４０３は、ストレージレベルプール容量のうち、ストレージレベル仮想ボリュームに割り当てられたエリアの総容量である。
【０１６１】
対応ストレージレベル仮想ボリューム識別子１４０４は、ストレージレベルプールに対応するストレージレベル仮想ボリュームの識別子である。
【０１６２】
対応ストレージレベル仮想ボリューム総容量１４０５は、ストレージレベルプールに対応する全てのストレージレベル仮想ボリュームの容量を合算した値である。
【０１６３】
プール構成ボリューム識別子１４０６は、ストレージレベルプールに属するボリュームの識別子である。
【０１６４】
ストレージ装置識別子１４０７は、ストレージレベルプールに属するボリュームを有するストレージ装置の識別子である。
【０１６５】
なお、ストレージレベルプール構成情報１４００は、ストレージレベルプール２２２０構成に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のストレージレベルプール２２２０の構成の属性値を有しても良い。また、ストレージレベルプール構成情報１４００は、ストレージレベルプール識別子１４０１を除いては上記属性値の一部を格納しなくてもよい。
【０１６６】
前述した情報要素１４０１〜１４０６は、例えば、ストレージシステムを構成するストレージ装置から管理サーバ１０００に収集されたストレージレベルプール情報１１０００（図３０参照）における情報要素１１００１〜１１００６から得られる。また、情報要素１４０７は、ストレージレベルプール情報１１０００がどのストレージ装置から収集されたかを表す情報要素である。
【０１６７】
＜４−１−１ｂ．ストレージレベル仮想ボリューム構成情報＞。
【０１６８】
図７は、ストレージレベル仮想ボリューム構成情報１５００を示すブロック図である。
【０１６９】
ストレージレベル仮想ボリューム構成情報１５００は、ストレージレベル仮想ボリューム毎に、ストレージレベル仮想ボリュームに関する情報の他に、そのストレージレベル仮想ボリュームに対応するストレージレベルプールに関する情報を含む。具体的には、例えば、ストレージレベル仮想ボリューム構成情報１５００は、テーブルであり、ストレージレベル仮想ボリューム毎に、ストレージレベル仮想ボリューム識別子１５０１、ストレージレベル仮想ボリューム容量１５０２、ストレージレベル仮想ボリューム割当済容量１５０３、対応ストレージレベルプール識別子１５０４を属性値とするレコードを含む。
【０１７０】
ストレージレベル仮想ボリューム識別子１５０１は、ストレージレベル仮想ボリュームの識別子である。
【０１７１】
ストレージレベル仮想ボリューム容量１５０２は、ストレージレベル仮想ボリュームの容量である。
【０１７２】
ストレージレベル仮想ボリューム割当済容量１５０３は、ストレージレベル仮想ボリューム容量のうち、ストレージレベルプールからストレージレベル仮想ボリュームに割り当てられたエリアの総容量である。
【０１７３】
対応ストレージレベルプール識別子１５０４は、ストレージレベル仮想ボリュームに対応するストレージレベルプールの識別子である。
【０１７４】
なお、ストレージレベル仮想ボリューム構成情報１５００は、ストレージレベル仮想ボリューム２２３０に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のストレージレベル仮想ボリューム２２３０の属性値を有しても良い。また、ストレージレベル仮想ボリューム２２３０情報は、ストレージレベル仮想ボリューム識別子１５０１を除いては上記属性値の一部を格納しなくてもよい。
【０１７５】
前述した情報要素１５０１〜１５０４は、例えば、例えば、ストレージシステムを構成するストレージ装置から管理サーバ１０００に収集されたストレージレベルプール情報１１０００（図３１参照）における情報要素１２００１〜１２００４から得られる。
【０１７６】
＜４−１−２．物理サーバ情報＞。
【０１７７】
＜４−１−２ａ．サーバレベルプール構成情報＞。
【０１７８】
図９は、サーバレベルプール構成情報１７００を示すブロック図である。
【０１７９】
サーバレベルプール構成情報１７００は、サーバレベルプール毎に、サーバレベルプールに関する情報の他に、そのサーバレベルプールに対応するサーバレベル仮想ボリュームに関する情報を含む。具体的には、例えば、サーバレベルプール構成情報１７００は、テーブルであり、サーバレベルプール毎に、サーバレベルプール識別子１７０１、サーバレベルプール容量１７０２、サーバレベルプール割当済容量１７０３、対応サーバレベル仮想ボリューム３２２０、対応サーバレベル仮想ボリューム総容量１７０５、ボリューム提供元ストレージ装置、構成ストレージポート番号・ＬＵＮ１７０７を属性値とするレコードを含む。
【０１８０】
サーバレベルプール識別子１７０１は、サーバレベルプールの識別子である。
【０１８１】
サーバレベルプール容量１７０２は、サーバレベルプールの容量である。
【０１８２】
サーバレベルプール割当済容量１７０３は、サーバレベルプール容量のうち、サーバレベル仮想ボリュームに割り当てられたエリアの総容量である。
【０１８３】
対応サーバレベル仮想ボリューム識別子１７０４は、サーバレベルプールに対応するサーバレベル仮想ボリュームの識別子である。
【０１８４】
対応サーバレベル仮想ボリューム総容量１７０５は、サーバレベルプールに対応する全てのサーバレベル仮想ボリュームの容量を合算した値である。
【０１８５】
ボリューム提供元ストレージ装置識別子１４０７は、サーバレベルプールに対応したストレージレベル仮想ボリュームを物理サーバ３０００に提供しているストレージ装置の識別子である。
【０１８６】
構成ストレージボリュームポート番号・ＬＵＮ１７０７は、サーバレベルプールに対応したストレージレベル仮想ボリュームに物理サーバ３０００がアクセスするためのポート番号と、物理サーバ３０００がＳＣＳＩによりストレージレベル仮想ボリュームを認識するためのＬＵＮである。
【０１８７】
なお、サーバレベルプール構成情報１７００は、サーバレベルプール３２１０に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のサーバレベルプール３２１０の属性値を有しても良い。また、サーバレベルプール構成情報１７００は、サーバレベルプール識別子１７０１を除いては、上記属性値の一部を格納しなくてもよい。
【０１８８】
前述した情報要素１７０１〜１７０６は、例えば、物理サーバから管理サーバ１０００に収集されたサーバレベルプール情報１５０００（図３４参照）における情報要素１５００１〜１５００６から得られる。また、情報要素１５０７は、サーバレベルプール情報１５０００がどの物理サーバから収集されたかを表す情報要素である。
【０１８９】
＜４−１−２ｂ．サーバレベル仮想ボリューム構成情報＞。
【０１９０】
図１０は、サーバレベル仮想ボリューム構成情報１８００を示すブロック図である。
【０１９１】
サーバレベル仮想ボリューム構成情報１８００は、サーバレベル仮想ボリューム毎に、サーバレベル仮想ボリュームに関する情報の他に、そのサーバレベル仮想ボリュームに対応するサーバレベルプールに関する情報と、仮想マシンに関する情報とを含む。具体的には、例えば、サーバレベル仮想ボリューム構成情報１８００は、テーブルであり、サーバレベル仮想ボリューム毎に、サーバレベル仮想ボリューム識別子１８０１、サーバレベル仮想ボリューム容量１８０２、サーバレベル仮想ボリューム割当済容量１８０３、サーバレベル仮想ボリューム未割当容量１８０４、サーバレベル仮想ボリューム使用容量１８０５、対応サーバレベルプール識別子１８０６、対応仮想マシン識別子１８０７、仮想マシン認識デバイス識別子１８０８を属性値とするレコードを含む。
【０１９２】
サーバレベル仮想ボリューム識別子１８０１は、サーバレベル仮想ボリュームの識別子である。
【０１９３】
サーバレベル仮想ボリューム容量１８０２は、サーバレベル仮想ボリュームの容量である。
【０１９４】
サーバレベル仮想ボリューム割当済容量１８０３は、サーバレベル仮想ボリューム容量のうち、サーバレベルプールからサーバレベル仮想ボリュームに割り当てられたエリアの総容量である。
【０１９５】
サーバレベル仮想ボリューム未割当容量１８０４は、サーバレベル仮想ボリューム容量のうち、サーバレベルプールからエリアが割り当てられていないエリア（仮想エリア）の総容量である。
【０１９６】
サーバレベル仮想ボリューム使用容量１８０５は、サーバレベル仮想ボリューム容量のうち、仮想マシンによりデータ書き込みが行われた容量である。
【０１９７】
対応サーバレベルプール識別子１８０６は、サーバレベル仮想ボリュームに対応するサーバレベルプールの識別子である。
【０１９８】
対応仮想マシン識別子１８０７は、サーバレベル仮想ボリュームの割当先である仮想マシンの識別子である。
【０１９９】
仮想マシン認識デバイス識別子１８０８は、仮想マシンがサーバレベル仮想ボリュームをデバイス（例えばハードディスクドライブ）として認識する際の識別子である。
【０２００】
なお、サーバレベル仮想ボリューム構成情報１８００は、サーバレベル仮想ボリューム３２２０に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のサーバレベル仮想ボリューム３２２０の属性値を有しても良い。また、サーバレベル仮想ボリューム３２２０情報は、サーバレベル仮想ボリューム識別子１８０１を除いては上記属性値の一部を格納しなくてもよい。
【０２０１】
前述した情報要素１８０１〜１８０４及び１８０６〜１８０８は、例えば、物理サーバから管理サーバ１０００に収集されたサーバレベル仮想ボリューム情報１６０００（図３５参照）における情報要素１６００１〜１６００１から得られる。また、情報要素１８０５は、仮想マシンによって、サーバレベル仮想ボリュームに書き込まれたデータ量を計算することによって求まる情報要素である。
【０２０２】
＜４−１−３．管理サーバ管理情報＞。
【０２０３】
＜４−１−３ａ．ポート−ＬＵＮ対応情報＞。
【０２０４】
図８は、ポート−ＬＵＮ対応情報１６００を示すブロック図である。
【０２０５】
ポート−ＬＵＮ対応情報１６００は、例えば、テーブルであり、ストレージレベル仮想ボリューム毎に、ｐｏｒｔ＃（ポート番号）１６０２、ＬＵＮ１６０３、及び内部ボリュームＩＤ１６０１を属性値とするレコードを含む。
【０２０６】
ｐｏｒｔ＃１６０２は、ストレージシステム２０００が物理サーバ３０００にストレージレベル仮想ボリューム２２３０を提供している際、物理サーバ３０００が提供されたストレージレベル仮想ボリューム２２３０にアクセスするために使用するポート番号である。
【０２０７】
ＬＵＮ１６０３は、物理サーバ３０００がストレージシステム２０００から提供されたストレージレベル仮想ボリューム２２３０をＳＣＳＩで認識するための識別番号である。
【０２０８】
内部ボリュームＩＤ１６０１は、ストレージシステム２０００が物理サーバ３０００に提供するストレージレベル仮想ボリューム２２３０を識別する際の識別子である。
【０２０９】
なお、ポート−ＬＵＮ対応情報１６００は、ポート番号１６０２、ＬＵＮ１６０３、内部ボリュームＩＤ１６０１の対応に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のポート番号１６０２、ＬＵＮ１６０３、内部ボリュームＩＤ１６０１の対応の属性値を有しても良い。また、ポート−ＬＵＮ対応情報１６００は、内部ボリュームＩＤ１６０１を除いては上記属性値の一部を格納しなくてもよい。
【０２１０】
前述した情報要素１６０１〜１６０３は、例えば、以下のようにして構築することができる。管理サーバが、ストレージ装置から収集されたストレージレベル仮想ボリューム情報１２０００（図３１参照）におけるストレージレベル仮想ボリューム識別子、ポート番号及びＬＵＮを用いて、図８に示した対応情報１６００が構築される。
【０２１１】
＜４−１−３ｂ.Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報＞。
【０２１２】
図１１は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００を示すブロック図である。
【０２１３】
Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００は、例えばテーブルであり、ストレージレベルプール毎に、ストレージレベルプール識別子１９０１とＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２とを含む。
【０２１４】
ストレージレベルプール識別子１９０１は、ストレージレベルプールの識別子である。
【０２１５】
Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２は、ストレージレベルプールに対応したＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率（１００×（ストレージレベルプールに対応した全てのサーバレベル仮想ボリュームの総容量）／（ストレージレベルプールの容量））（％）である。
【０２１６】
なお、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００は、プール単位の容量レバレッジ率に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外のプール単位の容量レバレッジ率の属性値を有しても良い。また、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００は、ストレージレベルプール識別子１９０１を除いては上記属性値の一部を格納しなくてもよい。
【０２１７】
＜４−１−３ｃ.初期設定情報＞。
【０２１８】
図１２は、初期設定情報１９１０を示すブロック図である。
【０２１９】
初期設定情報１９１０は、例えば、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１、情報収集間隔１９１２を属性値とする一つ以上のレコードを含むテーブルである。
【０２２０】
Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１は、ストレージ管理者が、管理プログラム１２００の設定画面にて入力する、ストレージレベルプール２２２０に対する容量レバレッジ率の許容上限値を表す閾値である。
【０２２１】
情報収集間隔１９１２は、ストレージ管理者が管理プログラム１２００の設定画面にて入力する、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２を算出するタイミングの間隔である。
【０２２２】
なお、初期設定情報１９１０は、ストレージ管理者の入力する初期設定に関する属性値を有するのであれば、テーブル以外のデータ構造でもよく、上記に記した属性値以外の初期設定の属性値を有しても良い。また、初期設定情報１９１０は、情報収集間隔１９１２を除いては上記属性値の一部を格納しなくてもよい。
【０２２３】
図１３は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率の表示画面を表す。
【０２２４】
レバレッジ率表示画面１４０３は、管理プログラム１２００によって表示される画面である。例えば、ストレージレベルプール「ＳＴＰＯＯＬ−１」のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が５００％となっている理由は、下記の通りである。
【０２２５】
図６の情報１４００から、識別子「ＳＴＰＯＯＬ−１」に対応したストレージレベルプールの容量「１００００ＭＢ」が特定される。また、識別子「ＳＴＰＯＯＬ−１」に対応した対応ストレージレベル仮想ボリューム識別子「ＳＴＶＶＯＬ−１」及び「ＳＴＶＶＯＬ−２」が特定される。
【０２２６】
図８の情報１６００から、識別子「ＳＴＶＶＯＬ−１」及び「ＳＴＶＶＯＬ−２」に対応するポート番号及びＬＵＮが特定される。
【０２２７】
そのポート番号及びＬＵＮを用いて、図９の情報から、サーバレベルプールの識別子「ＳＶＰＯＯＬ−１」が特定される。
【０２２８】
その識別子「ＳＶＰＯＯＬ−１」を用いて、図１０の情報１８００から、サーバレベル仮想ボリューム容量「３００００ＭＢ」及び「２００００ＭＢ」、つまり総容量「５００００ＭＢ」が特定される。
【０２２９】
以上の結果、ストレージレベルプール「ＳＴＰＯＯＬ−１」の容量「１００００ＭＢ」に対して、そのストレージレベルプールに対応したサーバレベル仮想ボリュームの総容量「５００００ＭＢ」が特定され、その結果、１００×５００００／１００００＝５００％というＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が算出される。
【０２３０】
図１３の表示形式や表示情報は一例であり、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率に関わる情報であれば、図中に表示されている以外の情報が表示されても良い。また、ＧＵＩも別の形式が採用されても良い。
【０２３１】
＜５．Ｔｈｉｎ−Ｐｒｏｖｉｓｉｏｎｉｎｇ＞。
【０２３２】
＜５−１．ストレージでのＴｈｉｎ−Ｐｒｏｖｉｓｉｏｎｉｎｇ＞。
【０２３３】
図４は、ストレージシステム２０００で行われるＴｈｉｎ−Ｐｒｏｖｉｓｉｏｎｉｎｇを表す図である。
【０２３４】
ストレージシステム２０００では、ストレージ制御プログラム２５００のストレージ仮想化モジュール２５０１により、ボリューム２２１０、ストレージレベルプール２２２０、ストレージレベル仮想ボリューム２２３０が構築される。
【０２３５】
ボリューム２２１０は、ストレージ仮想化モジュール２５０１により、一つ以上のＰＤＥＶ２１００ａの記憶領域をグループ化することにより構築される。ボリューム２２１０の記憶領域は、ストレージコントローラ４０５０の行う制御により、ボリューム２２１０を構成する一つ以上のＰＤＥＶ２１００ａの記憶領域に分散してマッピングされる。
【０２３６】
ストレージレベルプール２２２０は、ストレージ仮想化モジュール２５０１により構築される。ストレージレベルプール２２２０の記憶領域は、ストレージコントローラ４０５０の行う制御により、ストレージレベルプール２２２０に対応した、一つ以上のボリューム２２１０の記憶領域に分散してマッピングされる。
【０２３７】
ストレージレベル仮想ボリューム２２３０は、ストレージ仮想化モジュール２５０１により構築される。ストレージレベル仮想ボリューム２２３０は、アドレスと仮想記憶領域を持つ。ボリューム２２１０の記憶領域とは異なり、ストレージレベル仮想ボリューム２２３０の仮想記憶領域は、ＰＤＥＶ２１００ａの有する物理記憶領域に対応しない。
【０２３８】
ストレージレベル仮想ボリューム２２３０の仮想記憶領域（例えばLL仮想ページ）に対するライト要求が発行された場合、その仮想記憶領域にプール２２２０内の一部エリア（例えばLL実ページ）が割り当てられていなければ、ストレージコントローラ４０５０ａの行う制御により、ストレージレベルプール２２２０の一部エリアが動的にマッピングされる。
【０２３９】
ストレージレベル仮想ボリューム２２３０の仮想記憶領域は、全てがＰＤＥＶ２１００ａの持つ記憶領域のような、物理記憶領域に対応していなくて良いため、ストレージシステム２０００の有する物理記憶領域（例えばプール２２２０の容量）よりも大きな値を、ストレージレベル仮想ボリューム２２３０の仮想記憶領域（容量）として設定することができる。
【０２４０】
ストレージシステム２０００は、物理サーバ３０００に、ストレージレベル仮想ボリューム２２３０を提供する。ＰＤＥＶ４０５０ａの持つ物理記憶領域は、ストレージレベル仮想ボリューム２２３０、ストレージレベルプール２２２０を構成しているボリューム２２１０を経由し、物理サーバ３０００によりアクセスされる。
【０２４１】
＜５−１−１．ストレージレベルプールへのボリュームの追加＞。
【０２４２】
図２６は、ストレージレベルプール２２２０へのボリューム２２１０の追加する処理を表すフローである。
【０２４３】
ストレージレベルプール２２２０の設定は、ストレージ仮想化モジュール２５０１によって実行される。
【０２４４】
（ステップＳ１１０１）まず、ストレージ管理者は、管理プログラム１２００に、ストレージレベルプール２２２０に設定するボリューム２２１０の情報を入力する。ストレージレベルプール２２２０の識別子、閾値、ボリューム２２１０の数、及び、ボリューム識別子が設定される。
【０２４５】
（ステップＳ１１０２）ストレージ管理モジュール１２０１は、入力された情報を含むストレージレベルプール２２２０設定の指示コマンドを生成し、ＮＩＣを介して、その指示コマンドをストレージシステム２０００に送信する。
【０２４６】
（ステップＳ１１０３）ストレージシステム２０００において、管理サーバ１０００から送信された指示コマンドは、ＮＩＣを介して、コマンド制御モジュール２５０３が受信する。
【０２４７】
コマンド制御モジュール２５０３は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合、モジュール２５０３は、コマンドを拒否する（例えばエラーを応答する）。
【０２４８】
（ステップＳ１１０４）コマンド制御モジュール２５０３は、指示コマンドがストレージレベルプール２２２０の設定である場合は、ストレージ仮想化モジュール２５０１に受信した指示コマンドを渡す。ストレージ仮想化モジュール２５０１は、指示コマンドを受け取って、ストレージレベルプール設定処理を開始する。
【０２４９】
（ステップＳ１１０５）ストレージ仮想化モジュール２５０１は、まず、ストレージレベルプール情報１１０００を調べ、指示コマンドに係るストレージレベルプール識別子１１００１が有効であるかを確認する。また、ストレージ仮想化モジュール２５０１は、そのストレージレベルプール識別子１１００１は未だ未定義であるかを確認する。
【０２５０】
（ステップＳ１１０６）次に、ストレージ仮想化モジュール２５０１は、指示コマンドに係るボリューム２２１０が使用可能であるか否かを確認する。具体的には、例えば、指示コマンドに係るボリューム２２１０がフォーマット中等である場合は、当該ボリューム２２１０は使用不可であるため、ストレージ仮想化モジュール２５０１は、コマンドを拒否する（例えばエラーを応答する）。また、指示コマンドに係るボリューム２２１０が既に使用中である場合（例えば、ボリューム２２１０がパス定義済みである場合、コピー機能等によって使用中である場合又はコピー先として予約中に設定されている場合）は、ストレージ仮想化モジュール２５０１は、当該ボリューム２２１０は使用不可であるため、コマンドを拒否する。
【０２５１】
（ステップＳ１１０７）次に、ストレージ仮想化モジュール２５０１は、ストレージレベルプール情報１１０００に、ストレージレベルプール容量１１００２、ボリューム識別子１１００４、を設定する。このストレージ仮想化モジュール２５０１の処理によって、ボリューム２２１０が、ストレージレベルプール２２２０に追加される。
【０２５２】
（ステップＳ１１０８）次に、ストレージ制御プログラム２５００は、管理サーバ１０００に、コマンドが成功した旨の応答を送信する。
【０２５３】
管理サーバ１０００のストレージ構成管理モジュール２５０２は、ストレージシステム２０００からの応答を受信すると、処理を終了する。
【０２５４】
以上の処理によって、ボリューム２２１０が、ストレージレベルプール２２２０に追加される。
【０２５５】
＜５−１−２．ストレージレベル仮想ボリュームからのリード＞。
【０２５６】
図２４は、ストレージレベル仮想ボリュームからデータをリードする処理のフローである。
【０２５７】
物理サーバは、ストレージレベル仮想ボリュームのアドレスを指定して、Ｉ／Ｏ要求を送信する。このＩ／Ｏ要求は、データのリード要求である。
【０２５８】
（ステップＳ９０１）ストレージシステム２０００では、コマンド制御モジュール２５０３が、物理サーバ３０００からのＩ／Ｏ要求を受信する。受信したＩ／Ｏ要求の内容が無効である場合は、その要求が拒否される（例えばエラーが応答される）。受信したＩ／Ｏ要求の内容が有効である場合は、コマンド制御モジュール２５０３が、そのＩ／Ｏ要求の内容を解析する。解析の結果、コマンド制御モジュール２５０３は、Ｉ／Ｏ要求がデータのリード要求であることを知る。
【０２５９】
（ステップＳ９０２）次に、コマンド制御モジュール２５０３は、受信した要求に係るリード対象のストレージレベル仮想ボリューム２２３０のアドレスを取得する。
【０２６０】
（ステップＳ９０３）次に、コマンド制御モジュール２５０３は、リード対象のストレージレベル仮想ボリューム２２３０に対応するストレージレベルプール２２２０から、リード要求の該当領域のアドレスにマッピングされているボリューム領域のアドレスを取得する。このとき、ストレージレベル仮想ボリューム２２３０のリード要求の該当領域のアドレスは、複数のボリューム２２１０のアドレスに分散してマッピングされている場合がある。
【０２６１】
（ステップＳ９０４）次に、コマンド制御モジュール２５０３は、ボリューム情報１４０００を参照し、該当ボリューム２２１０の領域のアドレスに対応したＰＤＥＶ２１００ａを特定し、該当ＰＤＥＶ２１００aのアドレスを取得する。
【０２６２】
（ステップＳ９０５）次に、コマンド制御モジュール２５０３は、ＰＤＥＶ２１００ａの該当アドレスから要求に係るデータを読み出し、物理サーバ３０００に送信する。
【０２６３】
（ステップＳ９０６）そして、コマンド制御モジュール２５０３は、物理サーバ３０００にリード要求の完了報告を送信して、処理を終了する。
【０２６４】
＜５−１−３.ストレージレベル仮想ボリュームへのライト＞。
【０２６５】
図２５は、ストレージレベル仮想ボリューム２２３０へのデータのライト処理を表すフローの一部であり、図３９は、そのフローの残りである。
【０２６６】
物理サーバ３０００は、ストレージレベル仮想ボリューム２２３０のアドレスを指定して、Ｉ／Ｏ要求を送信する。このＩ／Ｏ要求は、データのライト要求である。
【０２６７】
（ステップＳ１００１）ストレージシステム２０００において、コマンド制御モジュール２５０３が、物理サーバ３０００からのＩ／Ｏ要求を受信する。受信したＩ／Ｏ要求が無効である場合は、その要求が拒否される（例えばエラーが応答される）。そして、コマンド制御モジュール２５０３が、そのＩ／Ｏ要求の内容を解析する。解析の結果、コマンド制御モジュール２５０３は、Ｉ／Ｏ要求がデータのライト要求であることを知る。
【０２６８】
（ステップＳ１００２）次に、コマンド制御モジュール２５０３は、受信したライト要求に係るストレージレベル仮想ボリューム２２３０のアドレスを取得する。
【０２６９】
（ステップＳ１００３）次に、コマンド制御モジュール２５０３は、ストレージレベル仮想ボリューム情報１２０００を参照し、ストレージレベル仮想ボリューム２２３０に対応するストレージレベルプール２２２０を特定し、その状態を取得する。
【０２７０】
（ステップＳ１００４）コマンド制御モジュール２５０３は、ストレージレベルプール情報１１０００を参照し、そのストレージレベルプール２２２０に対応するボリューム２２１０を特定し、該当ボリューム２２１０が使用可能であるか否かを判定する。
【０２７１】
（ステップＳ１００５）ボリューム２２１０が使用可能でない場合は、該当ボリューム２２１０にはアクセス出来ないので、コマンド制御モジュール２５０３は、Ｉ／Ｏエラーを物理サーバ３０００に送信する。
【０２７２】
（ステップＳ１００６）ボリューム２２１０が使用可能であると判断した場合、コマンド制御モジュール２５０３は、要求送信元の物理サーバ３０００に、ライトデータの転送が可能である旨を送信する。物理サーバ３０００は、これを受けて、ライトデータをストレージシステム２０００に送信する。
【０２７３】
（ステップＳ１００７）コマンド制御モジュール２５０３は、物理サーバ３０００が送信したライトデータを受信する。
【０２７４】
（ステップＳ１００９）コマンド制御モジュール２５０３は、書き込み対象のストレージレベル仮想ボリューム２２３０のアドレスにストレージレベルプール２２２０の空き領域を割り当てる処理を開始する。
【０２７５】
（ステップＳ１０１０）ストレージ仮想化モジュール２５０１は、まず、ストレージレベル仮想ボリューム情報１２０００を参照し、そのストレージレベル仮想ボリューム２２３０に対応するストレージレベルプール２２２０が割り当てられているかを確認する。
【０２７６】
（ステップＳ１０１１）すでにストレージレベル仮想ボリューム２２３０に対応するストレージレベルプール２２２０が割り当てられていると判定した場合は、ストレージ仮想化モジュール２５０１は、ストレージレベルプール情報１１０００を参照し、そのストレージレベルプール２２２０に対応するボリューム２２１０を特定し、該当ボリューム２２１０の領域のアドレスを取得する。
【０２７７】
（ステップＳ１０１２）次に、ストレージ仮想化モジュール２５０１は、ボリューム情報１３０００を参照し、該当ボリューム２２１０に対応するＰＤＥＶ２１００ａを特定し、該当ＰＤＥＶ２１００aの領域のアドレスを取得し、ライトデータ（ライト要求に付随するデータ）を書き込む。
【０２７８】
（ステップＳ１０１３）ストレージ仮想化モジュール２５０１は、ライトデータの書き込みが完了すると、コマンド制御モジュール２５０３にライト完了を報告する。
【０２７９】
（ステップＳ１００８）コマンド制御モジュール２５０３は、この報告を受けて、物理サーバ３０００に、ライト要求の完了報告を送信して、処理を終了する。
【０２８０】
（ステップＳ１０１４）一方、ストレージレベル仮想ボリューム２２３０にストレージレベルプール２２２０が割り当てられていないと判定した場合、まず、ストレージ仮想化モジュール２５０１は、ストレージレベルプール情報１１０００を参照して、ストレージレベルプール２２２０に、ライトデータを格納する十分の容量があるかを確認する。
【０２８１】
（ステップＳ１０１５）ストレージレベルプール２２２０の残サイズが十分にあると判定した場合は（例えば、ライトデータ以上のサイズが残っていると判定した場合は）、ストレージ仮想化モジュール２５０１は、ストレージレベルプール２２２０の領域をストレージレベル仮想ボリューム２２３０に新たに割り当てる。そして、モジュール２５０１は、ストレージ仮想ボリューム情報１２０００のストレージレベルプール識別子１２００４に、該当ストレージレベルプール２２２０の識別子を格納する。また、モジュール２５０１は、ストレージレベルプール情報１１０００の、領域を割り当てたストレージレベルプール２２２０のストレージレベルプール識別子１１００１と対応するストレージレベル仮想ボリューム識別子１１００４に、該当ストレージレベル仮想ボリューム２２３０の識別子を格納する。
【０２８２】
（ステップＳ１０１６）そして、モジュール２５０１は、ストレージレベルプール容量１１００２を変更しステップＳ１０１４を行う。
【０２８３】
（ステップＳ１０１７）一方で、ストレージレベルプール２２２０の残サイズが十分にないと判定した場合は、ストレージ仮想化モジュール２５０１は、ストレージレベルプール２２２０管理情報の状態を「プール容量不足」に変更する。
【０２８４】
（ステップＳ１０１８）そして、モジュール２５０１は、Ｉ／Ｏ要求元の物理サーバ３０００及びストレージシステム２０００に、プール容量不足を通知して処理を終了する。
【０２８５】
以上の処理によって、物理サーバ３０００のデータのライト要求の処理が完了する。
【０２８６】
＜５−１．サーバでのＴｈｉｎ−Ｐｒｏｖｉｓｉｏｎｉｎｇ＞。
【０２８７】
図５は、物理サーバ３０００で行われるＴｈｉｎ−Ｐｒｏｖｉｓｉｏｎｉｎｇを表す図である。
【０２８８】
物理サーバ３０００では、サーバ仮想化プログラム３２００により、サーバレベルプール３２１０、サーバレベル仮想ボリューム３２２０、仮想マシン３２０１が構築される。
サーバレベルプール３２１０は、ストレージシステム２０００から提供される複数のストレージレベル仮想ボリューム２２３０の記憶領域を共有して使用するためのプールである。サーバレベルプール３２１０は、サーバ仮想化プログラム３２００により、ストレージシステム２０００から割り当てられた、一つ以上のストレージレベル仮想ボリューム２２３０から構築される。サーバレベルプール３２１０は、主にファイルシステムの形式をとり、仮想マシン３２０１のイメージファイル、サーバレベル仮想ボリューム３２２０のイメージファイルなどが格納される。また、サーバレベル仮想ボリューム３２２０の管理領域もサーバレベルプール３２１０内に確保される。この管理領域には、サーバレベル仮想ボリューム３２２０の仮想記憶領域のアドレス情報や、ストレージシステム２０００から提供されたストレージレベル仮想ボリューム２２３０へのマッピング情報などが格納される。
サーバレベル仮想ボリューム３２２０は、サーバ仮想化プログラム３２００により構築される。サーバレベル仮想ボリューム３２２０は仮想記憶領域を持つ。サーバレベル仮想ボリューム３２２０の仮想記憶領域は、サーバ仮想化プログラム３２００により、仮想マシン３２０１からのライト要求に応じて、必要な容量分の領域が、サーバレベルプール３２１０の記憶領域に、動的にマッピングされる。
【０２８９】
仮想マシン３２０１は、サーバ仮想化プログラム３２００によって構築される仮想的な計算機である。仮想サーバ環境では、複数の仮想マシン３２０１が物理サーバの物理リソースを共有して稼働する。仮想マシン３２０１には物理的な計算機と同様に、ＯＳ３２３０をインストールすることができ、独立したサーバマシンとして使用することが出来る。仮想マシン３２０１は、サーバレベル仮想ボリューム３２２０を経由してサーバレベルプール３２１０の記憶領域にアクセスする。
【０２９０】
仮想マシン３２０１からのサーバレベル仮想ボリューム３２２０へのアクセスは、サーバ仮想化プログラム３２００により制御される。これにより、仮想マシン３２０１上のＯＳ３２３０には、サーバレベル仮想ボリューム３２２０が、物理記憶領域を持つＳＣＳＩデバイスと同様に認識される。サーバ仮想化プログラム３２００による制御としては、後述するサーバレベル仮想ボリューム３２２０に対するリード、ライト、容量問い合わせの処理がある。なお、仮想マシン３２０１上のＯＳ３２３０から発行される容量問い合わせ要求は、ＯＳ３２３０がサーバレベル仮想ボリューム３２２０を利用する際に必要となる当該ボリュームの容量を取得するための要求である。
【０２９１】
なお、以下の説明では仮想マシン３２０１で実行するＯＳ３２３０がサーバレベル仮想ボリューム３２２０に対して発行するＩ／ＯプロトコルはＳＣＳＩを例としている。しかし、ＳＣＳＩプロトコルの変わりとして、例えばＩＤＥやＳＡＳといったほかのブロックアクセス型のプロトコルを採用してもよい。
【０２９２】
＜５−１−１．サーバレベルプールの設定＞。
【０２９３】
図２１は、サーバレベルプール３２１０へのストレージレベル仮想ボリューム２２３０の設定、追加処理を表すフローである。
【０２９４】
（ステップＳ１２０１）まず、サーバ管理者は、サーバ仮想化プログラム３２００に、サーバレベルプール３２１０に設定するボリュームの情報を入力する。サーバレベルプール３２１０に設定するボリュームは、ストレージシステム２０００から提供されるストレージレベル仮想ボリュームを用いる。サーバレベルプール３２１０の識別子、閾値、ストレージレベル仮想ボリューム２２３０の数、及びＬＵＮ１６０３が設定される。
【０２９５】
（ステップＳ１２０２）サーバ仮想化プログラム３２００は、入力された情報を含むサーバレベルプール３２１０設定の指示コマンドが有効であるかどうかを確認する。無効である場合は、プログラム３２００は、そのコマンドを拒否する（例えばエラーを応答する）。
【０２９６】
（ステップＳ１２０３）サーバ仮想化プログラム３２００は、まず、サーバレベルプール情報１５０００を参照し、指示コマンドに係るサーバレベルプール識別子１８０１が有効であるかを確認する。
【０２９７】
（ステップＳ１２０４）次に、サーバ仮想化プログラム３２００は、指示コマンドに係るストレージレベル仮想ボリューム２２３０が使用可能であるか否かを確認する。具体的には、例えば、指示コマンドに係るストレージレベル仮想ボリューム２２３０がフォーマット中等である場合は、該当ストレージレベル仮想ボリューム２２３０は使用不可であるため、プログラム３２００は、コマンドを拒否する（例えばエラーを応答する）。また、例えば、指示コマンドに係るストレージレベル仮想ボリューム２２３０がすでに使用中である場合（例えば、ストレージレベル仮想ボリューム２２３０がパス定義済みである場合）は、プログラム３２００は、該当ストレージレベル仮想ボリューム２２３０は使用不可であるため、コマンドを拒否する。
【０２９８】
（ステップＳ１２０５）次に、サーバ仮想化プログラム３２００は、サーバレベルプール情報１５０００に、サーバレベルプール容量１５００２、構成ストレージポート番号・ＬＵＮ１５００６を設定する。このサーバ仮想化プログラム３２００の処理によってストレージレベル仮想ボリューム２２３０がサーバレベルプール３２１０に設定される。
【０２９９】
＜５−１−２．サーバレベル仮想ボリュームへのＩ／Ｏ＞。
【０３００】
＜５−１−２ａ．サーバレベル仮想ボリュームに対する容量問い合わせ要求の処理＞。
【０３０１】
本処理は、仮想マシン３２０１上のＯＳ３２３０が容量問い合わせ対象である、仮想マシン認識デバイス識別子１８０８と、ブロックアドレスと、ブロック長を指定したリード要求発行を検知して開始される。
【０３０２】
仮想マシン３２０１上のＯＳ３２３０は、ＳＣＳＩにより、仮想マシン認識デバイス識別子１８０８を指定して、容量問い合わせ要求を送信する。サーバ仮想化プログラム３２００は、この要求に対して、以下の処理を行うことにより、仮想マシン３２０１上のＯＳ３２３０にサーバレベル仮想ボリューム３２２０の容量を返す。これにより、仮想マシン３２０１上のＯＳ３２３０は、サーバレベル仮想ボリューム３２２０をＳＣＳＩデバイスとして認識することが可能となる。
【０３０３】
（ステップＡ）サーバ仮想化プログラム３２００は、仮想マシン３２０１上のＯＳが送信した容量問い合わせ要求を受信する。
【０３０４】
（ステップＢ）サーバ仮想化プログラム３２００は、要求の内容を解析する。そして、サーバレベル仮想ボリューム情報１６０００を参照し、問い合わせ先の仮想マシン認識デバイス識別子１６００７に対応するサーバレベル仮想ボリューム識別子１６００１を特定する。
【０３０５】
（ステップＣ）サーバ仮想化プログラム３２００は、該当サーバレベル仮想ボリューム識別子１６００１に対応した、サーバレベルプール３２１０内の仮想ディスクファイルを特定する。仮想ディスクファイルとは、サーバレベル仮想ボリューム３２２０に記憶されているデータを格納するファイルであり、ファイルシステム形式をとるサーバレベルプール３２１０に格納されている。
【０３０６】
（ステップＤ）サーバ仮想化プログラム３２００は、仮想マシン３２０１上のＯＳ３２３０が認識するＳＣＳＩデバイスのディスクサイズとして、サーバレベル仮想ボリューム３２２０の容量として設定してある値を返し、使用済み容量として、ステップＣで特定した仮想ディスクファイルのサイズを返す。
【０３０７】
（ステップＥ）サーバ仮想化プログラム３２００は、仮想マシン３２０１上のＯＳ３２３０に、容量問い合わせ要求の完了報告を通知して、処理を終了する。
【０３０８】
以上の処理によって、仮想マシン３２０１上のＯＳ３２３０は、サーバレベル仮想ボリューム３２２０をＳＣＳＩデバイスとして認識することが可能となる。
【０３０９】
＜５−１−２ｂ.サーバレベル仮想ボリュームに対するリード要求の処理＞。
【０３１０】
図２２は、サーバ仮想化プログラムが仮想マシンからサーバレベル仮想ボリュームへのリード要求を受け付けた場合に行われる処理のフローである。
【０３１１】
本処理は、仮想マシン３２０１上のＯＳ３２３０が、リード対象であるサーバレベル仮想ボリューム３２２０の識別子と、ブロックアドレスと、ブロック長を指定したリード要求発行をサーバ仮想化プログラム３２００が検知して開始される。
【０３１２】
（ステップＳ１３０１）サーバ仮想化プログラム３２００が、仮想マシン３２０１からＩ／Ｏ要求を受信する。受信したＩ／Ｏ要求の内容が無効である場合は、プログラム３２００は、その要求を拒否する（例えばエラーを応答する）。受信したＩ／Ｏ要求の内容が有効である場合は、プログラム３２００は、そのＩ／Ｏ要求の内容を解析する。解析の結果、サーバ仮想化プログラム３２００は、Ｉ／Ｏ要求がデータのリード要求であることを知る。
【０３１３】
（ステップＳ１３０２）次に、サーバ仮想化プログラム３２００は、受信した要求に係るリード対象のサーバレベル仮想ボリューム３２２０のアドレスを取得する。
【０３１４】
（ステップＳ１３０３）次に、サーバ仮想化プログラム３２００は、サーバレベル仮想ボリューム情報１６０００を参照し、リード対象のサーバレベル仮想ボリューム３２２０に対応するサーバレベルプール３２１０から、リード要求の該当領域のアドレスにマッピングされているストレージレベル仮想ボリューム２２３０の領域のアドレスを取得する。このとき、サーバレベル仮想ボリューム３２２０のリード要求の該当領域のアドレスは、複数のストレージレベル仮想ボリューム２２３０のアドレスに分散してマッピングされている場合がある。
【０３１５】
（ステップＳ１３０４）次に、サーバ仮想化プログラム３２００は、ストレージレベル仮想ボリューム２２３０の該当アドレスから、要求に係るデータを読み出し、仮想マシン３２０１に送信する。
【０３１６】
（ステップＳ１３０５）そして、仮想マシン３２０１にリード要求の完了報告を通知して、処理を終了する。
【０３１７】
＜５−１−２ｃ.サーバレベル仮想ボリュームに対するライト要求の処理＞。
【０３１８】
図２３は、サーバ仮想化プログラムが仮想マシンからサーバレベル仮想ボリュームへのライト要求を受け付けた場合に行われる処理のフローである。
【０３１９】
本処理は、仮想マシン３２０１上のＯＳ３２３０がライト対象であるサーバレベル仮想ボリューム３２２０の識別子と、ブロックアドレスと、ブロック長さを指定したリード要求発行をサーバ仮想化プログラム３２００が検知して開始される。
【０３２０】
（ステップＳ１４０１）物理サーバ３０００において、サーバ仮想化プログラム３２００が、仮想マシン３２０１からのＩ／Ｏ要求を受信する。受信したＩ／Ｏ要求が無効である場合、プログラム３２００は、そのＩ／Ｏ要求を拒否する。受信したＩ／Ｏ要求が有効である場合は、プログラム３２００は、そのＩ／Ｏ要求の内容を解析する。解析の結果、サーバ仮想化プログラム３２００は、Ｉ／Ｏ要求がデータのライト要求であることを知る。
【０３２１】
（ステップＳ１４０２）次に、サーバ仮想化プログラム３２００は、サーバレベル仮想ボリューム情報１６０００を参照し、受信したライト要求に係るサーバレベル仮想ボリューム３２２０のアドレスを取得する。
【０３２２】
（ステップＳ１４０３）次に、サーバ仮想化プログラム３２００は、サーバレベル仮想ボリューム情報１６０００を参照し、サーバレベル仮想ボリューム３２２０に対応するサーバレベルプール３２１０を特定し、該当サーバレベルプール３２１０の状態を取得する。
【０３２３】
（ステップＳ１４０４）そして、プログラム３２００は、そのサーバレベルプール３２１０に対応するストレージレベル仮想ボリューム２２３０が、使用可能であるか否かを判定する。
【０３２４】
（ステップＳ１４０５）ストレージレベル仮想ボリューム２２３０が使用可能でない場合は、該当ボリューム２２１０にはアクセスできないので、サーバ仮想化プログラム３２００は、Ｉ／Ｏエラーを仮想マシン３２０１に通知する。
【０３２５】
（ステップＳ１４０６）ストレージレベル仮想ボリューム２２３０が使用可能であると判断した場合、サーバ仮想化プログラム３２００は、要求送信元の仮想マシン３２０１にライトデータの転送が可能である旨を通知する。仮想マシン３２０１は、これを受けて、ライトデータを物理サーバ３０００に送信する。
【０３２６】
（ステップＳ１４０７）サーバ仮想化プログラム３２００は、仮想マシン３２０１が送信したライトデータを受信する。
【０３２７】
（ステップＳ１４０８）サーバ仮想化プログラム３２００は、まず、サーバレベルプール情報１５０００を参照し、該当サーバレベルプール３２１０に対応する構成ストレージポート番号・ＬＵＮ１５００６を特定し、ＬＵＮの領域のアドレスを取得し、データを書き込む。
【０３２８】
（ステップＳ１４０９）サーバ仮想化プログラム３２００は、ライトデータの書き込みが完了すると、仮想マシン３２０１にライト要求の完了報告を送信して、処理を終了する。
【０３２９】
＜６．実施例１の処理ステップ＞
限られた物理ストレージ容量（例えばストレージレベルプールの容量）に対して、大きすぎる仮想ボリューム容量が設定されると、物理ストレージ容量の消費速度の予測がたて難くなり、物理ストレージ容量が枯渇する可能性が上がる。そのため、物理ストレージ容量に対する仮想ボリューム容量の比率（レバレッジ率）を一定以下に保つ必要がある。
【０３３０】
実施例１の処理では、ストレージ管理者が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率の閾値を管理サーバ１０００に設定する。管理サーバ１０００は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が閾値を超えた場合に、それを検出し、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が閾値を超えていることを表示する。それにより、ストレージ管理者が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率の高騰を把握することができる。
【０３３１】
図１４及び図１５を参照して、実施例１で管理プログラムが行う処理について説明する。
【０３３２】
＜６−１．管理プログラムの行うＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率算出表示処理＞。
【０３３３】
図１４は、管理プログラム１２００の行う処理のフローである。以下に個々のステップの詳細を示す。
【０３３４】
（ステップＳ１０１）管理プログラム１２００は、ストレージ管理者が管理プログラム１２００の設定画面を用いて入力した初期設定情報１９１０を受信する。初期設定情報１９１０には、容量レバレッジ率の閾値と、容量情報を収集する間隔がある。なお、容量レバレッジ率の閾値は、物理ストレージ容量に対して、対応する仮想ボリューム容量の許容上限を表す値であり、ストレージ管理者が容量計画に基づき設定する。また、容量情報を収集する間隔は、管理プログラム１２００が以降の処理を行う時間の間隔である。また、ストレージ管理モジュール１２０１は、ストレージ管理者からのストレージレベルプール２２２０を特定する情報を受信し、その情報に基づいて、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率の算出を行うストレージレベルプール識別子１４０１を決定する。そして、管理プログラム１２００は、入力された容量レバレッジ率の閾値を、初期設定情報１９１０のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１に、容量情報を収集する間隔を、情報収集間隔１９１２に格納する。また、ストレージ管理モジュール１２０１は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率の算出対象に決定したストレージレベルプールの識別子を、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００のストレージレベルプール識別子１９０１に格納する。
【０３３５】
（ステップＳ１０２）管理プログラム１２００は、ストレージ管理者の設定した情報収集間隔１９１２が経過後、すなわち、容量情報を収集するタイミングが訪れたら、ストレージシステム２０００の容量情報と、物理サーバ３０００の容量情報を収集する。具体的には、例えば、管理プログラム１２００のストレージ管理モジュール１２０１が、ストレージシステム２０００の容量情報をストレージシステム２０００から取得し、管理プログラム１２００のサーバ管理モジュール１２０２が、物理サーバ３０００の容量情報を収集する。なお、容量情報収集の具体的な方法は後に説明する。
【０３３６】
（ステップＳ１０３）管理プログラム１２００のレバレッジ管理モジュール１２０３が、取得した物理サーバ３０００の容量情報と、ストレージ管理者が指定したストレージレベルプール２２２０の容量情報とに基づいて、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率算出処理を行う。なお、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率処理の詳細は、後ほど図２０を用いて説明する。
【０３３７】
（ステップＳ１０４）レバレッジ管理モジュール１２０３は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率の値１９０２が、初期設定情報１９１０のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１より高いか判断する。判断の結果、高い場合は、ステップＳ１０５が実行され、高くない場合は、ステップＳ１０２が実行される。
【０３３８】
（ステップＳ１０５）レバレッジ管理モジュール１２０３は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が高騰しており物理ストレージ容量枯渇の可能性が上がっていることを伝えるアラートを表示する。更に、レバレッジ管理モジュール１２０３は、管理プログラム１２００の容量レバレッジ率表示画面１４０３にて、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２の値、ストレージレベルプール容量１４０２、ストレージレベル仮想ボリューム識別子１５０１、ストレージレベル仮想ボリューム容量１５０２、の一覧を表示する。なお、管理プログラム１２００の画面表示で通知する情報は、ストレージレベルプール２２２０の物理容量枯渇の可能性が上がっていることを、ストレージ管理者に伝えることが出来る情報であれば、上記以外の情報を通知しても良い。
【０３３９】
（ステップＳ１０６）一方、比較した結果、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１を超えていなかった場合、情報収集間隔１９１２が経過した後、ステップＳ１０２に戻る。
【０３４０】
なお、上記の例では、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２を算出するにあたり、ストレージレベルプール容量１４０２と、サーバレベル仮想ボリューム容量１８０２を用いたが、それぞれのカラムの属するテーブルの、別の値が用いられても良い。
【０３４１】
＜６−１−１．容量情報収集処理＞。
【０３４２】
以下に、図１４のステップＳ１０２で概要を述べた容量情報収集処理の詳細について示す。
【０３４３】
（ステップＡ）ストレージ管理モジュール１２０１は、指定されたストレージレベルプール識別子１４０１に対応する、ストレージレベル仮想ボリュームの識別子をストレージシステム２０００の有するストレージレベルプール情報１１０００から収集し、ストレージレベルプール構成情報１４００の、対応ストレージレベル仮想ボリューム識別子１４０４に格納する。
【０３４４】
（ステップＢ）ストレージ管理モジュール１２０１は、ポート−ＬＵＮ対応情報１６００を参照し、ステップＡで収集した対応ストレージレベル仮想ボリューム識別子１４０４に割り当てられた、ポート番号１６０１とＬＵＮ１６０２を取得する。
【０３４５】
（ステップＣ）、サーバ管理モジュール１２０２は、ストレージ管理モジュール１２０１がステップＢにて取得したポート番号１６０１及びＬＵＮ１６０２が割り当てられたストレージレベル仮想ボリューム２２３０に対応した、サーバレベルプール３２１０の識別子を物理サーバ３０００のサーバレベルプール情報１５０００から収集し、サーバレベルプール構成情報１７００のサーバレベルプール識別子１７０１に格納する。なお、ストレージレベル仮想ボリューム２２３０に対応したサーバレベルプール３２１０とは、前述のストレージレベル仮想ボリューム２２３０が属するように設定が行われたサーバレベルプール３２１０である事を指す。
【０３４６】
（ステップＤ）サーバ管理モジュール１２０２は、収集したサーバレベルプール識別子１７０１に対応する全てのサーバレベル仮想ボリューム３２２０の識別子と容量を、物理サーバ３０００のサーバレベルプール情報１５０００から収集する。サーバ管理モジュール１２０２は、サーバレベル仮想ボリューム３２２０の識別子を、サーバレベルプール構成情報１７００の対応サーバレベル仮想ボリューム識別子１７０４と、サーバレベル仮想ボリューム構成情報１８００のサーバレベル仮想ボリューム識別子１８０１に格納する。また、それぞれのサーバレベル仮想ボリューム容量をサーバレベル仮想ボリューム構成情報１８００のサーバレベル仮想ボリューム容量１８０２に格納する。
【０３４７】
＜６−１−２.Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率算出処理の詳細＞。
【０３４８】
図１５は、図１４のステップＳ１０３の処理のフローである。以下、フローに従って説明する。
【０３４９】
（ステップＳ２０１）レバレッジ管理モジュール１２０３は、＜６−１−１.容量情報収集処理のステップＳ１０２の（ステップＡ）で指定したストレージレベルプール識別子１４０１に対応するストレージレベルプールの容量を、ストレージシステム２０００に問い合わせる。ストレージシステム２０００は、ストレージレベルプール情報１１０００のストレージレベルプール容量１１００２から、該当データを管理サーバに返す。レバレッジ管理モジュールは、受け取ったストレージレベルプール容量１１００２をストレージレベルプール構成情報１４００のストレージレベルプール容量１４０２に格納する。
【０３５０】
（ステップＳ２０２）レバレッジ管理モジュール１２０３は、ステップＳ１０２のステップＤでサーバ管理モジュール１２０２が収集した、サーバレベル仮想ボリューム容量１８０２を合算し、その結果をサーバレベルプール構成情報１７００の、対応サーバレベル仮想ボリューム総容量１７０５に格納する。
【０３５１】
（ステップＳ２０３）レバレッジ管理モジュール１２０３は、ステップＳ２０２で算出した対応サーバレベル仮想ボリューム総容量１７０５の値に対する、ステップＳ２０１で取得したストレージレベルプール容量１４０２の比率を算出し、その結果をＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２に格納する。
【０３５２】
なお、以上の処理では管理者が指定したストレージレベルプールに対して容量収集及びレバレッジ率の表示を行う前提であったが、管理サーバが管理する複数のストレージレベルプールについてレバレッジ率の表示を行っても良い。この場合の処理としては、管理サーバ１０００が順に複数のストレージレベルプール２２２０の個々を「指定されたストレージレベルプール識別子１４０１」として指定し、図１５及び図１６で示した処理を繰り返せばよい。
【実施例２】
【０３５３】
＜７．実施例２の概要＞。
【０３５４】
本発明の実施例２に係る計算機システムは、実施例１の計算機システムに加えて、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、ストレージ管理者の設定したＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１を超えており、物理ストレージ容量枯渇の危険性が上がっていると判断された場合に、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が高騰する原因となっている個所を特定し、特定した個所の情報をストレージ管理者に管理プログラムの管理画面によって表示する。
【０３５５】
また、物理ストレージ容量枯渇を防ぐため、管理プログラム１２００が自動的にストレージシステム２０００の構成を変更する処理を行うことによりＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１を超えない正常な値に収める。
【０３５６】
また、コールバックオブジェクトを有するサーバ仮想化プログラム３２００にて、設定操作を受け付けた場合に、その操作が中断される（以下に説明するようなコールバックオブジェクトは、サーバ仮想化プログラム３２００に代えて又は加えて、ストレージ制御プログラム２５００が有しても良い）。そして、受け付けた操作を実行した後のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２がシミュレートされ、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２がストレージ管理者の設定したＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１を超えると判断された場合、管理プログラム１２００が自動的にストレージシステム２０００の構成変更処理を行う。これにより、サーバ仮想化プログラム３２００での設定操作実行後も、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２をストレージ管理者の設定したＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１を超えないような構成とすることができる。管理プログラム１２００による上記の処理が成功した後に、サーバ仮想化プログラム３２００に成功が通知され、サーバ仮想化プログラム３２００は、その通知を受けて、受け付けた設定操作を再開する。一方、管理プログラム１２００による、ストレージシステム２０００の構成変更処理が実施された後も、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２がＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まらないと判断された場合は、仮想管理プログラム１２００に、設定操作による物理ストレージ容量枯渇の危険性が高いことが通知され、設定操作の中止推奨が通知される。
【０３５７】
＜７−１．原因個所特定処理＞
図２７は、原因個所特定処理のフローである。
【０３５８】
実施例１の＜６−１．Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２算出処理＞のステップＳ１０５で算出したＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、ストレージ管理者の設定したＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１を超えており、物理ストレージ容量枯渇の可能性が高いと判断された場合に、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２高騰の原因となっている個所を表す情報が、ストレージ管理者に画面表示により通知される。
【０３５９】
（ステップＳ４０１）管理プログラム１２００は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が高騰しているストレージレベルプール２２２０に対応しているストレージレベル仮想ボリュームの識別子をストレージシステム２０００に問い合わせる。ストレージシステム２０００は、その問合せを受けて、ストレージレベルプール情報１１０００のストレージレベル仮想ボリューム識別子１１００５を返す。管理プログラム１２００は、受信したストレージレベル仮想ボリューム２２３０の識別子一覧を、対応ストレージレベル仮想ボリューム識別子１４０４に格納する。
【０３６０】
（ステップＳ４０２）管理プログラム１２００は、取得したストレージレベル仮想ボリューム識別子１４０４を持つ各ストレージレベル仮想ボリューム２２３０に対応しているサーバレベルプール識別子１７０１を取得する。具体的には、例えば、管理プログラム１２００は、ポート−ＬＵＮ対応情報１６００を参照し、内部ボリュームＩＤとして登録してあるストレージレベル仮想ボリューム２２３０の識別子に対応するＬＵＮ１６０３を特定する。そして、管理プログラム１２００は、物理サーバ３０００にＬＵＮ１６０３に対応するサーバレベルプール３２１０の識別子を問い合わせる。物理サーバ３０００のサーバ仮想化プログラム３２００は、これを受けて、サーバレベルプール情報１５０００から、問い合わせがあったＬＵＮ１６０３を構成ストレージポート番号・ＬＵＮ１７０７から特定し、対応するサーバレベルプール識別子１５００１を管理サーバ１０００に返す。管理サーバ１０００の管理プログラム１２００は、受信したサーバレベルプール識別子１５００１をサーバレベルプール構成情報１７００のサーバレベルプール識別子１７０１に格納する。
【０３６１】
（ステップＳ４０３）管理プログラム１２００は、ステップＳ４０２で取得したサーバレベルプール識別子１７０１に対応するサーバレベル仮想ボリューム３２１０の識別子を、物理サーバ３０００に問い合わせる。物理サーバ３０００のサーバ仮想化プログラム３２００は、これを受けて、サーバレベルプール情報１５０００の該当サーバレベルプール識別子１７０１に対応するサーバレベル仮想ボリューム識別子１５００４を管理サーバ１０００に返す。管理サーバ１０００の管理プログラム１２００は、受信したサーバレベル仮想ボリューム識別子１５００４を、サーバレベルプール構成情報１７００の、対応サーバレベル仮想ボリューム識別子１７０４に格納する。
【０３６２】
（ステップＳ４０４）管理プログラム１２００は、ステップＳ４０３で取得した各対応サーバレベル仮想ボリューム識別子１７０４を持つサーバレベル仮想ボリューム３２２０について、サーバレベル仮想ボリューム容量１８０２のうち、サーバレベルプール３２１０の記憶領域にマッピングされている容量を物理サーバ３０００に問い合わせる。物理サーバ３０００のサーバ仮想化プログラム３２００は、これを受けて、サーバレベル仮想ボリューム情報１６０００を参照し、該当サーバレベル仮想ボリューム識別子１７０４に対応するサーバレベル仮想ボリューム割当済容量１６００３を管理サーバ１０００に返す。管理サーバ１０００の管理プログラム１２００は、受信したサーバレベル仮想ボリューム割当済容量１６００３を、サーバレベル仮想ボリューム構成情報１８００のサーバレベル仮想ボリューム割当済容量１８０３に格納する。更に、管理プログラム１２００は、サーバレベル仮想ボリューム容量１８０２の値からサーバレベル仮想ボリューム割当済容量１８０３の値を引き、その結果をサーバレベル仮想ボリューム未割当容量１８０４に格納する。
【０３６３】
（ステップＳ４０５）管理プログラム１２００は、ステップＳ４０４で算出した、各サーバレベル仮想ボリューム識別子１８０１に対応する各サーバレベル仮想ボリューム未割当容量１８０４を比較し、そのなかで最もサーバレベル仮想ボリューム未割当容量１８０４の値が高いサーバレベル仮想ボリューム３２２０を、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２高騰の原因個所として、該当サーバレベル仮想ボリューム３２２０の識別子、容量、未割当容量等の情報を表す画面が表示される。その画面の一例を、図３７に示す。図３７の例によれば、仮想マシン（ＶＭ４）にマウントされているサーバレベル仮想ボリュームが原因個所であることの強調表示（例えば、太枠楕円で囲んだ表示）が行われる。なお、原因個所の表示の仕方は、図３７の例に限られず、他の方法で表示されても良い。
【０３６４】
＜７−２．通常のストレージ構成変更処理＞
図１６は、ストレージ構成変更処理のフローである。本処理は、原因個所特定処理を実行した後に実行される。以下に各ステップの説明を記す。
【０３６５】
（ステップＳ３０１）管理プログラム１２００は、ストレージレベルプール構成情報１４００のプール構成ボリューム識別子１４０６に登録されていないボリューム２２１０、つまりストレージレベルプール２２２０に属していない余剰なボリューム２２１０がストレージシステム２０００内に存在するかチェックする。
【０３６６】
（ステップＳ３０２）管理プログラム１２００は、ストレージシステム２０００内に、ストレージレベルプール２２２０に属していない余剰なボリューム２２１０が存在した場合、自動的に、実施例１の＜６−１−１.容量情報収集処理＞のステップＳ１０２の（ステップＡ）で指定したストレージレベルプール識別子１４０１を持つストレージレベルプール２２２０に、余剰なボリューム２２１０を新たに属するように設定することによって、ストレージレベルプール２２２０に容量を追加する。ストレージレベルプール２２２０に追加する容量は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２がＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まるような値に管理プログラム１２００が決定する。なお、ストレージレベルプール２２２０に追加する容量は、ストレージ管理者が物理サーバ１０００の管理画面にて設定してもよい。
【０３６７】
（ステップＳ３０３）ステップＳ３０２を実行した結果、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、ストレージ管理者の設定したＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まった場合は、ステップＳ３０８に進む。一方で、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まらなかった場合は、ステップＳ３０４に進む。
【０３６８】
（ステップＳ３０４）ステップＳ３０３でＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２がＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まらなかった場合、管理プログラム１２００は、ストレージシステム２０００内に該当ストレージレベルプール２２２０以外のストレージレベルプール２２２０が存在するかをストレージシステム２０００に問い合わせる。存在する場合は、管理プログラム１２００は、問い合わせた該当ストレージレベルプール２２２０以外のストレージレベルプール２２２０の識別子を、ストレージシステム２０００に問い合わせる。ストレージシステム２０００のコマンド制御モジュール２５０３は、ストレージレベルプール情報１１０００を参照し、該当ストレージレベルプール２２２０の識別子以外のストレージレベルプール識別子１１００１を管理サーバ１０００に返す。管理サーバ１０００の管理プログラム１２００は受信したストレージレベルプール識別子１１００１をストレージレベルプール構成情報１４００のストレージレベルプール識別子１４０１に格納し、ステップＳ３０５に進む。存在しない場合は、ステップＳ３０８に進む。
【０３６９】
（ステップＳ３０５）管理プログラム１２００は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００を参照し、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２の低い（例えば最も低い）ストレージレベルプール識別子１４０１を指定する。そして、該当ストレージレベルプール２２２０のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まるように、該当ストレージレベルプール２２２０とステップＳ３０５で選択した、ストレージレベルプール２２２０との間で、サーバレベル仮想ボリューム３２２０のイメージファイルをマイグレーションする。なお、このときマイグレーションするサーバレベル仮想ボリューム３２２０は、＜７−１．原因個所特定処理＞のステップＳ４０５でＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率高騰の原因個所として特定したサーバレベル仮想ボリューム３２２０が指定される。その原因箇所が、自動で、マイグレーション対象として指定されても良い。原因箇所としてのサーバレベル仮想ボリューム３２２０が、別のストレージレベルプールに対応するサーバレベル仮想ボリュームにマイグレーションされれば、マイグレーション元のストレージレベルプールに対応したサーバレベル仮想ボリュームの総容量が減るので、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が下がる。この場合、上記別のストレージレベルプールは、マイグレーション対象のサーバレベル仮想ボリューム３２２０がマイグレーションされても、その別のストレージレベルプールについてのＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が閾値を超えないことが望ましい。具体的には、例えば、別のストレージレベルプールに対応したサーバレベル仮想ボリュームの総容量に、マイグレーション対象のサーバレベル仮想ボリュームの容量が加算されても、別のストレージレベルプールについてのＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が閾値を超えないかどうか判定され、超えないと判定された場合に、その別のストレージレベルプールがマイグレーション先に決定されて良い。
【０３７０】
（ステップＳ３０６）ステップＳ３０５を実行した結果、該当ストレージレベルプール２２２０のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まったら、ステップＳ３０８に進む。一方、該当ストレージレベルプール２２２０のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まらなかったら、ステップＳ３０７に進む。
【０３７１】
（ステップＳ３０７）ステップＳ３０２、ステップＳ３０５を実行してもＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２がストレージ管理者の設定したＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まらなかった旨が通知される。
【０３７２】
（ステップＳ３０８）ステップＳ３０２もしくはステップＳ３０５にて、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２がＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まった場合、ストレージ管理者にその旨が通知される。
【０３７３】
＜７−３．コールバックインターフェースを用いた管理プログラムの行う処理＞。
【０３７４】
図１７は、コールバックインターフェースを用いた管理プログラムの行う処理を示すフローである。
【０３７５】
（ステップＳ５０１）管理プログラム１２００は、ストレージ管理者が管理プログラム１２００の設定画面を用いて入力した初期設定情報１９１０を受信する。初期設定情報１９１０には、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率の閾値が入力される。そして、管理プログラム１２００は、入力された閾値を、初期設定情報１９１０のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１に格納する。
【０３７６】
（ステップＳ５０２）次に、コールバック処理が行われる。図１９を参照して、コールバック処理の詳細を説明する。
【０３７７】
図１９は、コールバック処理のフローである。
【０３７８】
（ステップＳ６０１）サーバ仮想化プログラム３２００は、管理プログラム１２００のアドレスを登録する。
【０３７９】
（ステップＳ６０２）サーバ仮想化プログラム３２００は、設定操作イベント受付時に、管理プログラム１２００にコールバックオブジェクトを送信する。コールバックオブジェクトには、設定操作実行前のサーバレベル仮想ボリューム３２２０の総容量と、設定操作内容が含まれている。
【０３８０】
（ステップＳ６０３）管理プログラム１２００は、サーバ仮想化プログラム３２００からコールバックオブジェクトが送られてくるのを待ち、サーバ仮想化プログラム３２００からコールバックオブジェクトが送られて来たら、これを受信する。
【０３８１】
（ステップＳ６０４）管理プログラム１２００は、受信したコールバックオブジェクトの持つ情報を基に、シミュレーションにより、サーバ仮想化プログラム３２００にて受け付けた操作を実行した後の、サーバレベル仮想ボリューム３２２０の総容量を算出する。
【０３８２】
（ステップＳ６０５）管理プログラム１２００は、設定操作に係るサーバレベル仮想ボリューム３２２０に対応する、ストレージレベルプール２２２０を特定する。具体的なステップは以下の通りである。
【０３８３】
（ステップＡ）サーバ管理モジュール１２０２が、設定操作に係るサーバレベル仮想ボリュームの識別子１８０１に対応する、サーバレベルプール３２１０の識別子を物理サーバ３０００に問い合わせる。物理サーバ３０００のサーバ仮想化プログラム３２００は、これを受けて、サーバレベル仮想ボリューム情報１６０００を参照し、サーバレベルプール識別子１６００４を返す。管理プログラム１２００は、受信したサーバレベルプール識別子１６００４を、サーバレベル仮想ボリューム構成情報１８００の対応サーバレベル仮想ボリューム識別子１８０６に格納する。
【０３８４】
（ステップＢ）次に、管理プログラム１２００は、サーバレベルプール構成情報１７００を参照し、ステップＡでの対応サーバレベルプール識別子１８０６と同じ識別子を持つ、サーバレベルプール識別子１７０１を特定する。そして、管理プログラム１２００は、特定したサーバレベルプール３２１０に対応する構成ストレージポート番号・ＬＵＮ１７０７を物理サーバ３０００に問い合わせる。物理サーバ３０００のサーバ仮想化プログラム３２００は、これを受けて、サーバレベルプール情報１５０００を参照し、構成ストレージポート番号・ＬＵＮ１５００６を管理サーバ１０００に返す。管理サーバ１０００の管理プログラム１２００は、受信した、構成ストレージポート番号・ＬＵＮ１５００６をサーバレベルプール構成情報１７００の構成ストレージポート・ＬＵＮ１７０７に格納する。
【０３８５】
（ステップＣ）次に、管理プログラム１２００は、ポート−ＬＵＮ対応情報１６００を参照し、ステップＢで取得した構成ストレージポート番号・ＬＵＮ１７０７に対応する内部ボリュームＩＤ１６０１を取得する。
【０３８６】
（ステップＤ）次に、管理プログラム１２００は、ストレージレベル仮想ボリューム構成情報１５００を参照し、内部ボリュームＩＤ１６０１と同じ識別子を持つ、ストレージレベル仮想ボリューム２２３０を特定する。そして、管理プログラム１２００は、特定したストレージレベル仮想ボリューム２２３０に対応する、対応ストレージレベルプール識別子１５０４を取得する。
【０３８７】
さて、図１７の説明に戻る。
【０３８８】
（ステップＳ５０３）管理プログラム１２００のレバレッジ管理モジュール１２０３が、コールバック処理によって得たサーバレベル仮想ボリューム３２２０の総容量と、特定したストレージレベルプール２２２０の容量情報を用い、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率算出処理を行う。なお、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率算出処理の詳細は後ほど図２０を用いて説明する。
【０３８９】
（ステップＳ５０４）レバレッジ管理モジュール１２０３は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２の値が、初期設定情報１９１０のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１より高いか判断する。判断の結果、高い場合は、ステップＳ５０５を実行し、高くない場合はステップＳ５０２を実行する。
【０３９０】
（ステップＳ５０５）レバレッジ管理モジュール１２０３は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が高騰しており物理ストレージ容量枯渇の可能性が上がっていることを伝えるアラートを表示する。更に、レバレッジ管理モジュール１２０３は、管理プログラム１２００の容量レバレッジ率表示画面１４０３にて、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２の値、ストレージレベルプール容量１４０２、ストレージレベル仮想ボリューム識別子１５０１、ストレージレベル仮想ボリューム容量１５０２、の一覧をストレージ管理者に表示する。なお、管理プログラム１２００の画面表示で通知する情報は、ストレージレベルプール２２２０の物理容量枯渇の可能性が上がっていることを、ストレージ管理者に伝えることが出来る情報であれば、上記以外の情報を通知しても良い。
【０３９１】
なお、上記の例では、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２を算出するにあたり、ストレージレベルプール容量１４０２と、サーバレベル仮想ボリューム容量１８０２を用いたが、それぞれのカラムの属するテーブルの、別の値を用いても良い。
【０３９２】
＜７−３−１.コールバック処理でのＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率算出処理の詳細＞。
【０３９３】
図２０は、図１７のステップＳ５０３の処理のフローである。
【０３９４】
（ステップＳ８０１）レバレッジ管理モジュール１２０３は、ストレージレベルプール構成情報１４００を参照し、ステップＳ６０５で特定したストレージレベルプール識別子１４０１に対応するストレージレベルプール容量１４０２を取得する。
【０３９５】
（ステップ８０２）レバレッジ管理モジュール１２０３は、ステップＳ６０４で算出したサーバレベル仮想ボリューム３２２０の総容量に対する、＜７−３．コールバックインターフェースを用いた管理プログラムの行う処理＞のステップＳ２０１で取得したストレージレベルプール容量１４０２の比率を算出し、その結果をＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２に格納する。
【０３９６】
なお、以上の処理では、ストレージ管理者が指定したストレージレベルプール２２２０に対して容量収集及びＥｎｄ−ｔｏ−Ｅｎｄレバレッジ率の表示を行う前提であったが、管理サーバ１０００が管理する複数のストレージレベルプール２２２０についてレバレッジ率の表示を行っても良い。この場合の処理としては、管理サーバ１０００が順に複数のストレージレベルプール２２２０の個々を「指定されたストレージレベルプール識別子１４０１」として指定し、図１９及び図２０で示した処理を繰り返せばよい。
【０３９７】
＜７−４．コールバック処理でのストレージ構成変更処理＞。
【０３９８】
図１８は、管理プログラム１２００がコールバックインターフェースを備えている場合のストレージ構成変更処理のフローである。本フローは、図１４のステップから実行される。
【０３９９】
（ステップＳ７０１）管理プログラム１２００は、ストレージレベルプール構成情報１４００のプール構成ボリューム識別子１４０６に登録されていないボリューム２２１０、つまりストレージレベルプール２２２０に属していない余剰ボリューム２２１０がストレージシステム２０００内に存在するかチェックする。
【０４００】
（ステップＳ７０２）管理プログラム１２００は、ストレージシステム２０００内に、ストレージレベルプール２２２０に属していない余剰ボリューム２２１０が存在した場合、自動的に、＜７−３．コールバックインターフェースを用いた管理プログラムの行う処理＞のステップＳ２０１で取得したストレージレベルプール識別子１４０１を持つストレージレベルプール２２２０に余剰ボリューム２２１０を新たに属するように設定することによって、ストレージレベルプール２２２０に容量を追加する。ストレージレベルプール２２２０に追加する容量は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２がＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まるような値に管理プログラム１２００が決定する。なお、ストレージレベルプール２２２０に追加する容量は、ストレージ管理者が物理サーバ１０００の管理画面にて設定してもよい。
【０４０１】
（ステップＳ７０３）ステップＳ３０２を実行した結果、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、ストレージ管理者の設定したＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まった場合はステップＳ３０８に進む。一方で、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まらなかった場合は、ステップＳ３０４に進む。
【０４０２】
（ステップＳ７０４）ステップＳ７０３でＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２がＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まらなかった場合、管理プログラム１２００は、ストレージレベルプール構成情報１４００を参照し、ストレージシステム２０００内に該当ストレージレベルプール２２２０以外のストレージレベルプール２２２０が存在するかをチェックする。存在する場合は、ステップＳ７０５に進む。存在しない場合は、ステップＳ７０８に進む。
【０４０３】
（ステップＳ７０５）管理プログラム１２００は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率情報１９００を参照し、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２の低い（例えば最も低い）ストレージレベルプール識別子１４０１を指定する。そして、該当ストレージレベルプール２２２０のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まるように、該当ストレージレベルプール２２２０とステップＳ７０５で選択した、ストレージレベルプール２２２０との間で、サーバレベル仮想ボリューム３２２０のイメージファイルをマイグレーションする。なお、このときマイグレーションするサーバレベル仮想ボリューム３２２０は、管理プログラム１２００が、サーバレベル仮想ボリューム構成情報１８００を参照し、サーバレベル仮想ボリューム未割当容量１８０４の値が大きいものを指定する。
【０４０４】
（ステップＳ７０６）ステップＳ３０５を実行した結果、該当ストレージレベルプール２２２０のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まったら、ステップＳ７０８に進む。一方、該当ストレージレベルプール２２２０のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率１９０２が、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値１９１１以下に収まらなかったら、ステップＳ７０７に進む。
【０４０５】
（ステップＳ７０７）管理プログラム１２００は、サーバ仮想化プログラム３２００に、行われようとしている設定操作を実行することによって、ストレージ容量枯渇の危険性が高まるため、設定操作の中止を推奨する旨を通知。サーバ仮想化プログラム３２００は、これを受けて、設定操作を実行するか否かをサーバ管理者に再確認する。
【０４０６】
（ステップＳ７０８）管理プログラム１２００は、サーバ仮想化プログラム３２００に、行われようとしている設定操作は安全であることを通知。サーバ仮想化プログラム３２００は、これを受けて中断していた設定操作を再開する。
【０４０７】
（ステップＳ７０９）管理プログラム１２００は、ストレージ管理者に、ストレージ容量枯渇の可能性が高いことを通知する。
【０４０８】
（ステップＳ７１０）管理プログラム１２００は、ストレージ管理者に、高騰したストレージ容量枯渇の可能性が低減されたことを通知し、構成変更を行ったストレージレベルプール２２２０等の容量情報を表示する。
【０４０９】
以上、本発明の幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０４１０】
例えば、管理サーバ１０００は、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を表示することなく（及び／又は、他種の管理情報を表示すること無く）、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率が閾値以下になるような処理（例えば、ストレージレベルプールの容量の追加、或いは、サーバレベル仮想ボリュームのマイグレーション）を行っても良い。
【０４１１】
また、例えば、管理サーバ１０００は、図３８に示すように、ストレージレベルプールのＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率と、そのストレージレベルプールの空き容量率とを並べて表示した画面を表示してもよい。なお、空き容量率は、例えば、ストレージレベルプールの容量に対する、ストレージレベルプールの未割当て容量（ストレージレベルプールの容量とストレージレベルプール割当済容量との差分）の比率である。
【０４１２】
さらに、例えば、図示しないが、管理サーバ１０００は、ストレージレベルプールの空き容量率の変化（各時点での空き容量率）を管理し、その変化を表す情報を表示したり、その変化に基づいて、そのストレージレベルプールについての推奨のＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値を計算して表示したりしてもよい。
【０４１３】
また、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値は、ストレージレベルプール毎に異なっていてもよい。具体的には、例えば、ストレージレベルプール毎に、ストレージレベルプールの空き容量率の変化（空き容量率が減るスピード）に基づいて設定されたＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率閾値が用意されてもよい。また、閾値は、レバレッジ率の種類別に用意されてもよい。
【０４１４】
なお、以上の説明では管理サーバ１０００はストレージシステム２０００や物理サーバ３００に対して適用済みの設定を、管理サーバ１０００は、ストレージシステム２０００や物理サーバ３０００から情報を収集して設定情報（例えば、ストレージレベルプール構成情報１４００、ストレージレベル仮想ボリューム構成情報１５００、ポート−ＬＵＮ対応情報１６００、サーバレベルプール構成情報１７００、サーバレベル仮想ボリューム構成情報１８００）を作成し、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を計算し、表示することを示してきた。しかし、管理サーバ１０００が、管理者或いはデータソース装置（例えば可搬型の記憶メディア）から入出力装置４０６０を介して受信した設定値に基いて、ストレージシステム２０００及び物理サーバ３００の設定を行う場合は、前述の設定情報の一部または全てをストレージシステム２０００や物理サーバ３００からの取得を省略し、設定値に基いて前述の設定情報を作成または更新し、Ｅｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を計算し、表示してもよい。なお、後者の場合は、設定値に基く設定をストレージシステム２０００や物理サーバ３００に対して適用する以前にＥｎｄ−ｔｏ−Ｅｎｄ容量レバレッジ率を表示することで、管理者による設定を支援してもよい。
【符号の説明】
【０４１５】
２０００・・・ストレージシステム
【図１】
2011060119.tif 000003
【図２】
2011060119.tif 000004
【図３】
2011060119.tif 000005
【図４】
2011060119.tif 000006
【図５】
2011060119.tif 000007
【図６】
2011060119.tif 000008
【図７】
2011060119.tif 000009
【図８】
2011060119.tif 000010
【図９】
2011060119.tif 000011
【図１０】
2011060119.tif 000012
【図１１】
2011060119.tif 000013
【図１２】
2011060119.tif 000014
【図１３】
2011060119.tif 000015
【図１４】
2011060119.tif 000016
【図１５】
2011060119.tif 000017
【図１６】
2011060119.tif 000018
【図１７】
2011060119.tif 000019
【図１８】
2011060119.tif 000020
【図１９】
2011060119.tif 000021
【図２０】
2011060119.tif 000022
【図２１】
2011060119.tif 000023
【図２２】
2011060119.tif 000024
【図２３】
2011060119.tif 000025
【図２４】
2011060119.tif 000026
【図２５】
2011060119.tif 000027
【図２６】
2011060119.tif 000028
【図２７】
2011060119.tif 000029
【図２８】
2011060119.tif 000030
【図２９】
2011060119.tif 000031
【図３０】
2011060119.tif 000032
【図３１】
2011060119.tif 000033
【図３２】
2011060119.tif 000034
【図３３】
2011060119.tif 000035
【図３４】
2011060119.tif 000036
【図３５】
2011060119.tif 000037
【図３６】
2011060119.tif 000038
【図３７】
2011060119.tif 000039
【図３８】
2011060119.tif 000040
【図３９】
2011060119.tif 000041