(57)【要約】【課題】ホスト計算機へのボリュームに割り当てる記憶領域の無駄をなるべく抑えられるように記憶領域の割当てを最適化する。【解決手段】ストレージシステムが、物理ディスクにより提供される複数の記憶領域から成るプールを有し、プール内の記憶領域を、ホスト計算機に提供するボリュームに割り当てたりその割当てを解除したりする。管理計算機は、ボリューム追加イベントが発生した場合、各ボリューム毎の収集された使用容量を基に、各ボリューム毎に、将来の或る時刻に必要となるであろう容量を予測し、予測された容量と、既にボリュームに割り当てられている記憶領域群の容量とから不必要容量を算出し、算出された一以上の不必要容量に基づいて、追加対象ボリュームに要求される容量を満たすだけの記憶領域があるか否かを判断し、肯定的な判断結果が得られた場合に、不必要容量分の記憶領域を追加対象ボリュームに割り当てる。【選択図】図１
2007241593.tif 000002
【特許請求の範囲】
【請求項１】
一又は複数のホスト計算機と、
前記一又は複数のホスト計算機に提供する複数の論理ボリュームと、複数の物理的な記憶装置と、前記複数の物理的な記憶装置に基づく多数の記憶領域で構成されたプールと、該プール内の記憶領域を論理ボリュームに対して割り当てたりその割当てを解除したり、前記ホスト計算機から指定された論理ボリュームに対するＩＯコマンドに従うデータを、その論理ボリュームに割り当てた記憶領域に書込む、又はその記憶領域から読み出して前記ホスト計算機に送信するコントローラとを備えるストレージシステムと
に通信可能に接続される管理計算機であって、
各論理ボリューム毎に、論理ボリュームに割り当てられている一以上の記憶領域による記憶容量である割当容量のうち前記ホスト計算機が実際に使用している記憶容量である使用容量を、異なる複数の時点で、前記ホスト計算機及び前記ストレージシステムのうちの少なくとも一方から受信する使用容量受信部と、
前記プールが有する多数の記憶領域のうち前記論理ボリュームに割り当てられていない一以上の記憶領域の記憶容量であるプール残容量を前記ストレージシステムから受信する残容量受信部と、
論理ボリュームを追加することのイベントが生じた場合に、前記複数の時点でそれぞれ受信した複数の使用容量を基に、将来の或る時点での前記論理ボリュームの使用容量を、少なくとも一つの論理ボリュームについて予測する予測部と、
前記論理ボリュームの割当容量から、予測された使用容量である必要容量を減じることにより、前記或る時点での不必要な記憶容量である不必要容量を、少なくとも一つの論理ボリュームについて算出する不必要容量算出部と、
受信したプール残容量と前記算出された不必要容量とに基づいて、追加対象の論理ボリュームに要求される記憶容量である要求容量を満たすか否かを判断する判断部と、
肯定的な判断結果が得られた場合に、前記算出された不必要容量分の記憶領域の割当てを解除し、割当てが解除される記憶領域を含む、前記要求容量分の記憶領域を、前記追加対象の論理ボリュームに割り当てることを前記ストレージシステムに指示する指示部と
を備える管理計算機。
【請求項２】
前記或る時刻とは、前記物理的な記憶装置を増設することになっている時刻である、
請求項１記載の管理計算機。
【請求項３】
否定的な判断結果が得られた場合に、前記要求容量を満たすことになる将来の別の時刻を、前記物理的な記憶装置を増設すべき時刻である増設時刻として算出する増設時刻算出部と、
前記算出された増設時刻を管理者に報知する増設時刻報知部と
を更に備える請求項１記載の管理計算機。
【請求項４】
予測された必要容量の精度が所定精度以上か否かを判断する別の判断部を更に備え、
前記不必要容量算出部は、精度が所定精度未満の必要容量を不必要容量の計算に使用せず、精度が所定精度以上の必要容量を不必要容量の計算に使用する、
請求項１記載の管理計算機。
【請求項５】
前記ストレージシステムには、複数のプールが備えられ、
前記指示部は、同じプール内の不必要容量分の記憶領域の割当てを優先的に解除して前記追加対象の論理ボリュームに割り当てさせる、
請求項１記載の管理計算機。
【請求項６】
前記指示部は、最も不必要容量の大きい論理ボリュームから優先的に該不必要容量分の記憶領域の割当てを解除して前記追加対象の論理ボリュームに割り当てさせる、
請求項１記載の管理計算機。
【請求項７】
前記ストレージシステムには、複数のプールが備えられ、
前記指示部は、同じプール内の記憶領域であって、最も不必要容量の大きい論理ボリュームに割り当てられている記憶領域から、優先的に、該不必要容量分の割当てを解除して前記追加対象の論理ボリュームに割り当てさせる、
請求項１記載の管理計算機。
【請求項８】
前記ストレージシステムには、複数のプールが備えられ、
前記指示部は、前記複数のプールのうちの二以上のプール内の不必要容量分の記憶領域の割当てを解除して前記追加対象の論理ボリュームに割り当てさせる際、前記二以上のプールは同じ信頼性属性を有するプールとする、
請求項１記載の管理計算機。
【請求項９】
前記ストレージシステムには、第一と第二のプールが備えられ、
前記指示部は、前記第一のプールの不必要容量分の記憶領域を優先的に解除して前記追加対象の論理ボリュームに割当てさせ、それでも前記要求容量を満たさず不足容量が生じる場合には、前記第二のプールのプール残容量のうち少なくとも前記不足容量分の記憶領域を前記第二のプールから減らして前記第一のプールに追加させ、前記追加させた記憶領域を前記追加対象の論理ボリュームに割当てさせる、
請求項１記載の管理計算機。
【請求項１０】
前記指示部は、前記第二のプールの全てのプール残容量分の記憶領域を前記第二のプールから減らして前記第一のプールに追加させても、前記要求容量を満たさず不足容量が生じる場合には、前記第二のプールにおける、少なくとも該不足容量分の記憶領域の割当てを解除し、解除した記憶領域を前記第二のプールから減らして前記第一のプールに追加させ、前記追加させた記憶領域を前記追加対象の論理ボリュームに割当てさせる、
請求項９記載の管理計算機。
【請求項１１】
前記増設時刻算出部は、前記複数の論理ボリュームについて、時間経過に伴う使用容量の推移を予測し、前記複数の論理ボリュームについてそれぞれ予測された複数の推移を基に、前記増設時刻を算出する、
請求項２記載の管理計算機。
【請求項１２】
前記イベントは、管理者からの論理ボリューム追加要求であり、
前記論理ボリューム追加要求に、要求容量が含まれている、
請求項１記載の管理計算機。
【請求項１３】
前記複数の論理ボリュームのうちの少なくとも一つについて、前記割当容量に対する前記使用容量の割合である使用率を算出する使用率算出部を更に備え、
前記イベントは、前記算出された使用率が所定の使用率を越えたことであり、
前記判断部は、前記要求容量を、前記予測された必要容量と前記割当容量との差分とする、
請求項１記載の管理計算機。
【請求項１４】
予測された必要容量の精度が所定精度以上か否かを判断する別の判断部と、
否定的な判断結果が得られた場合に、前記要求容量を満たすことになる将来の別の時刻を、前記物理的な記憶装置を増設すべき時刻である増設時刻として算出する増設時刻算出部と、
前記算出された増設時刻を管理者に報知する増設時刻報知部と
を更に備え、
前記或る時刻とは、前記物理的な記憶装置を増設することになっている時刻であり、
前記不必要容量算出部は、精度が所定精度未満の必要容量を不必要容量の計算に使用せず、精度が所定精度以上の必要容量を不必要容量の計算に使用し、
前記増設時刻算出部は、前記複数の論理ボリュームについて、時間経過に伴う使用容量の推移を予測し、前記複数の論理ボリュームについてそれぞれ予測された複数の推移を基に、前記増設時刻を算出する、
請求項１記載の管理計算機。
【請求項１５】
一又は複数のホスト計算機と、
前記一又は複数のホスト計算機に提供する複数の論理ボリュームと、複数の物理的な記憶装置と、前記複数の物理的な記憶装置に基づく多数の記憶領域で構成されたプールと、該プール内の記憶領域を論理ボリュームに対して割り当てたりその割当てを解除したり、前記ホスト計算機から指定された論理ボリュームに対するＩＯコマンドに従うデータを、その論理ボリュームに割り当てた記憶領域に書込む、又はその記憶領域から読み出して前記ホスト計算機に送信するコントローラとを備えるストレージシステムと
を備えたシステムで実現する方法であって、
各論理ボリューム毎に、論理ボリュームに割り当てられている一以上の記憶領域による記憶容量である割当容量のうち前記ホスト計算機が実際に使用している記憶容量である使用容量を、異なる複数の時点で、取得し、
前記プールが有する多数の記憶領域のうち前記論理ボリュームに割り当てられていない一以上の記憶領域の記憶容量であるプール残容量を取得し、
論理ボリュームを追加することのイベントが生じた場合に、前記複数の時点でそれぞれ受信した複数の使用容量を基に、将来の或る時点での前記論理ボリュームの使用容量を、少なくとも一つの論理ボリュームについて予測し、
前記論理ボリュームの割当容量から、予測された使用容量である必要容量を減じることにより、前記或る時点での不必要な記憶容量である不必要容量を、少なくとも一つの論理ボリュームについて算出し、
受信したプール残容量と前記算出された不必要容量とに基づいて、追加対象の論理ボリュームに要求される記憶容量である要求容量を満たすか否かを判断し、
肯定的な判断結果が得られた場合に、前記算出された不必要容量分の記憶領域の割当てを解除し、割当てが解除される記憶領域を含む、前記要求容量分の記憶領域を、前記追加対象の論理ボリュームに割り当てる、
記憶領域の割当ての最適化方法。
【請求項１６】
否定的な判断結果が得られた場合に、前記要求容量を満たすことになる将来の別の時刻を、前記物理的な記憶装置を増設すべき時刻である増設時刻として算出し、
前記算出された増設時刻を管理者に報知する、
請求項１５記載の最適化方法。
【請求項１７】
前記ストレージシステムには、複数のプールが備えられ、
同じプール内の不必要容量分の記憶領域の割当てを優先的に解除して前記追加対象の論理ボリュームに割り当てる、
請求項１５記載の最適化方法。
【請求項１８】
最も不必要容量の大きい論理ボリュームから優先的に該不必要容量分の記憶領域の割当てを解除して前記追加対象の論理ボリュームに割り当てさせる、
請求項１５記載の最適化方法。
【請求項１９】
自分に提供された論理ボリュームに対するＩＯコマンドを送信する一又は複数のホスト計算機と、
前記一又は複数のホスト計算機に提供する複数の論理ボリュームと、複数の物理的な記憶装置と、前記複数の物理的な記憶装置に基づく多数の記憶領域で構成されたプールと、該プール内の記憶領域を論理ボリュームに対して割り当てたりその割当てを解除したり、前記ホスト計算機から指定された論理ボリュームに対するＩＯコマンドに従うデータを、その論理ボリュームに割り当てた記憶領域に書込む、又はその記憶領域から読み出して前記ホスト計算機に送信するコントローラとを備えるストレージシステムと
に通信可能に接続されたコンピュータに実行させるためのコンピュータプログラムであって、
各論理ボリューム毎に、論理ボリュームに割り当てられている一以上の記憶領域による記憶容量である割当容量のうち前記ホスト計算機が実際に使用している記憶容量である使用容量を、異なる複数の時点で、前記ホスト計算機及び前記ストレージシステムのうちの少なくとも一方から受信し、
前記プールが有する多数の記憶領域のうち前記論理ボリュームに割り当てられていない一以上の記憶領域の記憶容量であるプール残容量を前記ストレージシステムから受信し、
論理ボリュームを追加することのイベントが生じた場合に、前記複数の時点でそれぞれ受信した複数の使用容量を基に、将来の或る時点での前記論理ボリュームの使用容量を、少なくとも一つの論理ボリュームについて予測し、
前記論理ボリュームの割当容量から、予測された使用容量である必要容量を減じることにより、前記或る時点での不必要な記憶容量である不必要容量を、少なくとも一つの論理ボリュームについて算出し、
受信したプール残容量と前記算出された不必要容量とに基づいて、追加対象の論理ボリュームに要求される記憶容量である要求容量を満たすか否かを判断し、
肯定的な判断結果が得られた場合に、前記算出された不必要容量分の記憶領域の割当てを解除し、割当てが解除される記憶領域を含む、前記要求容量分の記憶領域を、前記追加対象の論理ボリュームに割り当てる、
ことを前記コンピュータに実行させるコンピュータプログラム。
【請求項２０】
一又は複数のホスト計算機と、
前記一又は複数のホスト計算機に提供する複数の論理ボリュームと、複数の物理的な記憶装置と、前記複数の物理的な記憶装置に基づく多数の記憶領域で構成されたプールと、該プール内の記憶領域を論理ボリュームに対して割り当てたりその割当てを解除したり、前記ホスト計算機から指定された論理ボリュームに対するＩＯコマンドに従うデータを、その論理ボリュームに割り当てた記憶領域に書込む、又はその記憶領域から読み出して前記ホスト計算機に送信するコントローラとを備えるストレージシステムと
を備えたシステムで実現する方法であって、
各論理ボリューム毎に、論理ボリュームに割り当てられている一以上の記憶領域による記憶容量である割当容量のうち前記ホスト計算機が実際に使用している記憶容量である使用容量を、異なる複数の時点で、取得し、
前記プールが有する多数の記憶領域のうち前記論理ボリュームに割り当てられていない一以上の記憶領域の記憶容量であるプール残容量を取得し、
論理ボリュームを追加することのイベントが生じた場合に、前記複数の時点でそれぞれ受信した複数の使用容量を基に、前記物理的な記憶装置を増設することになっている将来の増設時刻での前記論理ボリュームの使用容量を、少なくとも一つの論理ボリュームについて予測し、
予測された使用容量である必要容量の精度が所定精度以上か否かを判断し、
前記論理ボリュームの割当容量から、精度が所定精度以上の必要容量を減じることにより、前記増設時刻での不必要な記憶容量である不必要容量を、少なくとも一つの論理ボリュームについて算出し、
受信したプール残容量と前記算出された不必要容量とに基づいて、追加対象の論理ボリュームに要求される記憶容量である要求容量を満たすか否かを判断し、
肯定的な判断結果が得られた場合に、前記算出された不必要容量分の記憶領域の割当てを解除し、割当てが解除される記憶領域を含む、前記要求容量分の記憶領域を、前記追加対象の論理ボリュームに割り当て、
否定的な判断結果が得られた場合に、前記複数の論理ボリュームについて、時間経過に伴う使用容量の推移を予測し、前記複数の論理ボリュームについてそれぞれ予測された複数の推移を基に、前記要求容量を満たすことになる将来の別の時刻を、前記物理的な記憶装置を増設すべき時刻である別の増設時刻として算出し、算出された別の増設時刻を管理者に報知する、
記憶領域の割当ての最適化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト計算機に提供される論理ボリュームに対して記憶領域を割当てる技術に関する。
【背景技術】
【０００２】
一般に、コンピュータシステムは、特定の業務を行うためのホスト計算機と、ホスト計算機からの指示によりデータを読み書きするストレージシステムとを備える。ストレージシステムは、複数の物理的な記憶装置（例えばハードディスクドライブ、以下、便宜上「物理ディスク」と言う）を持つ。ストレージシステムでは、物理ディスクを複数の記憶領域に分割して管理することができる。また、ストレージシステムは、ホスト計算機に対し、論理ボリューム（以下、ボリューム）と呼ばれる論理的な記憶装置を提供することができる。ボリュームは、複数のセグメントから構成され、それぞれのセグメントに対して、物理ディスク上の記憶領域を割り当てることで、計算機の指示によるデータの読み書きを可能とする。ボリュームの容量は、必要に応じて随時拡張することができる。
【０００３】
例えば、特開２００３−１５９１５号公報には、ボリューム容量の自動拡張方法が開示されている。具体的には、ホスト計算機からの書き込みによってボリューム容量が不足した場合、ストレージシステムが、物理ディスクの未使用の記憶領域を動的にボリュームのセグメントに追加するという方法が開示されている。
【０００４】
一方、例えば、特開２００５−３８０７１号公報には、ストレージの容量を最適化するための管理方法が開示されている。具体的には、ホスト計算機に割り当てられた記憶デバイスの使用容量を取得し、その取得容量から今後の使用容量を予測し、その予測使用容量から適切な割当て容量を算出し、算出された割当て容量が上限容量より大きい場合に、割当て済みの記憶デバイスをストレージプールに回収し、上限容量以下で下限容量以上の他の記憶デバイスをホスト計算機に割り当てる管理方法が開示されている。
【０００５】
【特許文献１】特開２００３−１５９１５号公報
【特許文献２】特開２００５−３８０７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ホスト計算機に実際に使用される記憶容量（つまり使用容量）は、時間が経過すれば、増えたり減ったり変化し得る。そのため、増えることを見越して、多めの記憶容量を割り当てておくことが望ましいように思える。しかし、使用されることの無い記憶容量をいつまでも割り当て続けておくことは、記憶資源の無駄となる。
【０００７】
また、例えば、ストレージシステムには、必要に応じて物理ディスクを増設する場合がある。物理ディスクが増設されれば、当然、ストレージシステム全体の記憶容量が増大する。このような物理ディスクの増設を考慮した記載は、上記のいずれの公報にも開示されていない。物理ディスクの増設を考慮して記憶容量の割当てを行うようにすれば、記憶資源をより適切に割り当てられると考えられる。
【０００８】
従って、本発明の目的は、ホスト計算機へのボリュームに割り当てる記憶領域の無駄をなるべく抑えられるように記憶領域の割当てを最適化することにある。好ましくは、その最適化を物理ディスクの増設を考慮して行えるようにすることにある。
【０００９】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【００１０】
自分に提供された論理ボリュームに対するＩＯコマンドを送信する一又は複数のホスト計算機がある。また、前記一又は複数のホスト計算機に提供する複数の論理ボリュームと、複数の物理的な記憶装置と、前記複数の物理的な記憶装置に基づく多数の記憶領域で構成されたプールと、該プール内の記憶領域を論理ボリュームに対して割り当てたりその割当てを解除したり、前記ホスト計算機から指定された論理ボリュームに対するＩＯコマンドに従うデータを、その論理ボリュームに割り当てた記憶領域に書込む、又はその記憶領域から読み出して前記ホスト計算機に送信するコントローラとを備えるストレージシステムとがある。
【００１１】
管理計算機は、一又は複数のホスト計算機及びストレージシステムに通信可能に接続されており、各論理ボリューム毎に、論理ボリュームに割り当てられている一以上の記憶領域による記憶容量である割当容量のうち前記ホスト計算機が実際に使用している記憶容量である使用容量を、異なる複数の時点で、前記ホスト計算機及び前記ストレージシステムのうちの少なくとも一方から受信する使用容量受信部と、前記プールが有する多数の記憶領域のうち前記論理ボリュームに割り当てられていない一以上の記憶領域の記憶容量であるプール残容量を前記ストレージシステムから受信する残容量受信部と、論理ボリュームを追加することのイベントが生じた場合に、前記複数の時点でそれぞれ受信した複数の使用容量を基に、将来の或る時点での前記論理ボリュームの使用容量を、少なくとも一つの論理ボリュームについて予測する予測部と、前記論理ボリュームの割当容量から、予測された使用容量である必要容量を減じることにより、前記或る時点での不必要な記憶容量である不必要容量を、少なくとも一つの論理ボリュームについて算出する不必要容量算出部と、受信したプール残容量と前記算出された不必要容量とに基づいて、追加対象の論理ボリュームに要求される記憶容量である要求容量を満たすか否かを判断する判断部と、肯定的な判断結果が得られた場合に、前記算出された不必要容量分の記憶領域の割当てを解除し、割当てが解除される記憶領域を含む、前記要求容量分の記憶領域を、前記追加対象の論理ボリュームに割り当てることを前記ストレージシステムに指示する指示部とを備える。
【００１２】
第一の実施態様では、前記或る時刻とは、前記物理的な記憶装置を増設することになっている時刻とすることができる。
【００１３】
第二の実施態様では、管理計算機は、否定的な判断結果が得られた場合に、前記要求容量を満たすことになる将来の別の時刻を、前記物理的な記憶装置を増設すべき時刻である増設時刻として算出する増設時刻算出部と、前記算出された増設時刻を管理者に報知する増設時刻報知部とを更に備えることができる。
【００１４】
第三の実施態様では、管理計算機は、予測された必要容量の精度が所定精度以上か否かを判断する別の判断部を更に備えることができる。この場合、前記不必要容量算出部は、精度が所定精度未満の必要容量を不必要容量の計算に使用せず、精度が所定精度以上の必要容量を不必要容量の計算に使用することができる。
【００１５】
第四の実施態様では、前記ストレージシステムには、複数のプールが備えられ、前記指示部は、同じプール内の不必要容量分の記憶領域の割当てを優先的に解除して前記追加対象の論理ボリュームに割り当てさせることができる。
【００１６】
第五の実施態様では、前記指示部は、最も不必要容量の大きい論理ボリュームから優先的に該不必要容量分の記憶領域の割当てを解除して前記追加対象の論理ボリュームに割り当てさせることができる。
【００１７】
第六の実施態様では、前記ストレージシステムには、複数のプールが備えられ、前記指示部は、同じプール内の記憶領域であって、最も不必要容量の大きい論理ボリュームに割り当てられている記憶領域から、優先的に、該不必要容量分の割当てを解除して前記追加対象の論理ボリュームに割り当てさせることができる。
【００１８】
第七の実施態様では、前記ストレージシステムには、複数のプールが備えられ、前記指示部は、前記複数のプールのうちの二以上のプール内の不必要容量分の記憶領域の割当てを解除して前記追加対象の論理ボリュームに割り当てさせる際、前記二以上のプールは同じ信頼性属性を有するプールとすることができる。
【００１９】
第八の実施態様では、前記ストレージシステムには、第一と第二のプールが備えられ、前記指示部は、前記第一のプールの不必要容量分の記憶領域を優先的に解除して前記追加対象の論理ボリュームに割当てさせ、それでも前記要求容量を満たさず不足容量が生じる場合には、前記第二のプールのプール残容量のうち少なくとも前記不足容量分の記憶領域を前記第二のプールから減らして前記第一のプールに追加させ、前記追加させた記憶領域を前記追加対象の論理ボリュームに割当てさせることができる。
【００２０】
第九の実施態様では、第八の実施態様において、前記指示部は、前記第二のプールの全てのプール残容量分の記憶領域を前記第二のプールから減らして前記第一のプールに追加させても、前記要求容量を満たさず不足容量が生じる場合には、前記第二のプールにおける、少なくとも該不足容量分の記憶領域の割当てを解除し、解除した記憶領域を前記第二のプールから減らして前記第一のプールに追加させ、前記追加させた記憶領域を前記追加対象の論理ボリュームに割当てさせることができる。
【００２１】
第十の実施態様では、前記第一の実施態様において、前記増設時刻算出部は、前記複数の論理ボリュームについて、時間経過に伴う使用容量の推移を予測し、前記複数の論理ボリュームについてそれぞれ予測された複数の推移を基に、前記増設時刻を算出することができる。
【００２２】
第十一の実施態様では、前記イベントは、管理者からの論理ボリューム追加要求であり、前記論理ボリューム追加要求に、要求容量が含まれていてもよい。
【００２３】
第十二の実施態様では、管理計算機が、前記複数の論理ボリュームのうちの少なくとも一つについて、前記割当容量に対する前記使用容量の割合である使用率を算出する使用率算出部を更に備えてもよい。前記イベントは、前記算出された使用率が所定の使用率を越えたことであってもよい。前記判断部は、前記要求容量を、前記予測された必要容量と前記割当容量との差分とすることができる。
【００２４】
第十三の実施態様では、管理計算機は、予測された必要容量の精度が所定精度以上か否かを判断する別の判断部と、否定的な判断結果が得られた場合に、前記要求容量を満たすことになる将来の別の時刻を、前記物理的な記憶装置を増設すべき時刻である増設時刻として算出する増設時刻算出部と、前記算出された増設時刻を管理者に報知する増設時刻報知部とを更に備えることができる。前記或る時刻とは、前記物理的な記憶装置を増設することになっている時刻であってもよい。前記不必要容量算出部は、精度が所定精度未満の必要容量を不必要容量の計算に使用せず、精度が所定精度以上の必要容量を不必要容量の計算に使用することができる。前記増設時刻算出部は、前記複数の論理ボリュームについて、時間経過に伴う使用容量の推移を予測し、前記複数の論理ボリュームについてそれぞれ予測された複数の推移を基に、前記増設時刻を算出することができる。
【００２５】
上述した各部は、各手段と言い換えてもよい。各部は、ハードウェア（例えば回路）、コンピュータプログラム、或いはそれらの組み合わせ（例えば、コンピュータプログラムを読み込んで実行する一又は複数のＣＰＵ）によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源（例えばメモリ）から読み込むことができる。その記憶資源には、ＣＤ−ＲＯＭやＤＶＤ（Digital Versatile Disk）等の記録媒体を介してインストールすることもできるし、インターネットやＬＡＮ等の通信ネットワークを介してダウンロードすることもできる。
【発明の効果】
【００２６】
本発明により、ホスト計算機へのボリュームに割り当てる記憶領域の無駄をなるべく抑えられるように記憶領域の割当てを最適化することができる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照して、本発明の一実施形態について説明する。
【００２８】
図１は、本発明の一実施形態に係るストレージ管理システムの構成例の概略図である。
【００２９】
管理用ネットワーク１０４０に、ストレージ管理サーバ１０１０と、レポート端末１０６０と、複数のホスト計算機１０３０と、複数のストレージシステム１０２０とが接続されている（ホスト計算機１０３０及びストレージシステム１０２０のうちの少なくとも一方は、一つであっても良い）。また、ストレージエリアネットワーク（ＳＡＮ）１０５０に、複数のホスト計算機１０３０及び複数のストレージシステム１０２０が接続されている。管理用ネットワーク１０４０として、種々のネットワーク（例えばＬＡＮ（Local Area Network））を採用することができる。ストレージエリアネットワーク１０５０に代えて、他種のネットワークであってもよい。また、管理用ネットワーク１０４０とストレージエリアネットワーク１０５０は、一つの通信ネットワークであっても良い。
【００３０】
ホスト計算機１０３０は、例えば、CPUと、メモリと、管理用データの通信に用いる管理用ポートと、ストレージシステム１０２０との通信に用いるI/Oポートとを備える。メモリには、使用中のボリュームの使用容量を管理するための電子的な表である使用容量管理表が記憶される。使用容量管理表には、例えば、各ボリューム毎に、そのボリュームを識別するLUNと、そのボリュームの使用容量を示すボリューム使用容量とが記録される。ホスト計算機１０３０は、使用容量情報要求を受信すると、ホスト計算機内に保持する使用容量管理表に含まれる情報を、使用容量情報として、使用容量情報要求の送信元に対して送信することができる。また、ホスト計算機１０３０は、ストレージシステム１０２０から提供されるボリュームに対してＩ／Ｏコマンド（ライトコマンド或いはリードコマンド）を発行し、それにより、ボリュームにデータを書込んだり、ボリュームからデータを読出したりすることができる。
【００３１】
ストレージシステム１０２０は、例えば、配列された複数の物理的な記憶装置（以下、物理ディスク）を備えるディスクアレイ装置とすることができる。複数の物理ディスクのうちの二以上の物理ディスクにより、ＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループ（パリティグループと呼ばれることもある）を構成することができる。ストレージシステム１０２０は、ホスト計算機１０３０にボリュームを提供し、そのボリュームに対して、物理ディスクにより提供される記憶領域を割り当てたり、その記憶領域の割当てを解除したり、割当て解除された記憶領域を別のボリュームに割当てたりすることを、動的に（換言すれば、ホスト計算機１０３０との間でオンラインの状態で）、行うことができる。ストレージシステム１０２０は、割り当てた記憶領域に、ホスト計算機１００３からのデータを記憶させることができる。
【００３２】
ストレージ管理サーバ１０１０は、各ボリューム毎の使用容量情報を各ホスト計算機１０３０から収集することができる。ストレージ管理サーバ１０１０は、ボリューム追加イベントが発生した場合、各ボリューム毎の収集された使用容量を基に、各ボリューム毎に、将来の或る時刻（例えば、物理ディスクの増設時刻として予め設定された時刻）に必要となるであろう（つまり使用されるであろう）ボリューム容量を予測することができる。ストレージ管理サーバ１０１０は、各ボリューム毎に、予測されたボリューム容量（以下、必要容量）と、現在割り当てられているボリューム容量（以下、割当容量）とから、将来の上記或る時刻での不必要容量を算出し、算出された一以上の不必要容量に基づいて、追加する予定の新規ボリュームに要求される記憶容量（以下、要求容量）を満たすだけの記憶領域があるか否かを判断することができる。ストレージ管理サーバ１０１０は、肯定的な判断結果が得られた場合、不必要容量を新規ボリュームに割り当てることができる。一方、否定的な判断結果が得られた場合、ストレージ管理サーバ１０１０は、新規ボリュームの要求容量を満たす物理ディスク増設時刻を計算し、算出された物理ディスク増設時刻を提示することができる。
【００３３】
収集された使用容量情報や、算出された物理ディスク増設時刻は、ストレージ管理サーバ１０１０が、それに備えられている図示しない表示装置に表示しても良いし、管理用ネットワーク１０４０を介してレポート端末１０６０に管理者に対して表示させても良い。レポート端末１０６０は、ストレージ管理サーバ１０１０と一体であっても良い。
【００３４】
図２は、ストレージ管理サーバ１０１０の構成例を示した図である。
【００３５】
ストレージ管理サーバ１０１０は、一種の計算機である。具体的には、ストレージ管理サーバ１０１０は、ＣＰＵ１０２０と、メモリ２０２０と、記憶装置（例えばハードディスクドライブ）２０３０と、入力装置（例えばキーボードやマウス）２０４０と、出力装置（例えば表示装置）２０５０と、通信ポート２０６０とを備える。通信ポート２０６０を介して、ストレージシステム１０２０やホスト計算機１０３０と管理用データを通信することができる。
【００３６】
記憶装置２０３０には、ＣＰＵ２０１０に所定の処理を実行させるための複数のコンピュータプログラムが記憶される。複数のコンピュータプログラムには、例えば、ホスト計算機１０３０から使用容量情報を収集しストレージシステム１０２０から割当てホスト情報を収集することを実行させるための情報収集プログラム２１１０と、ボリュームの管理を実行させるためのボリューム管理プログラム２１２０とが含まれる。また、例えば、新規ボリュームを追加可能であるか否かの判断を実行させるためのボリューム追加判断プログラム２１３０と、増設時刻の計算を実行させるための増設時刻計算プログラム２１４０と、ボリューム情報の更新を実行させるためのボリューム情報更新プログラム２１５０とも含まれる。
【００３７】
また、記憶装置２０３０には、ホスト計算機１０３０やストレージシステム１０２０を管理するために必要な種々の情報が記憶される。具体的には、例えば、複数の電子的な表が記憶されている。複数の電子的な表には、例えば、ストレージシステム１０２０を使用するホスト計算機１０３０に関する情報が記録されるホスト計算機管理表２２１０と、使用容量収集対象のボリュームに関する情報が記録されるボリューム管理表２２２０とが含まれる。また、例えば、ホスト計算機１０３０から収集した使用容量情報が記録される使用容量管理表２２３０と、ボリューム使用量の近似式に関する情報が記録される使用容量近似表２２４０と、ストレージプールに関する情報が記録されるプール管理表２２５０とも含まれる。さらに、例えば、ボリューム割当に関する情報が記録されるボリューム割当管理表２２６０と、ストレージプールの変更に関する情報が記録されるプール変更表２２７０と、ボリューム割当の変更に関する情報が記録されるボリューム割当変更表２２８０とも含まれる。
【００３８】
図３は、ストレージシステム１０２０の構成例を示した図である。
【００３９】
ストレージシステム１０２０は、ホスト計算機１０３０との通信に利用するインタフェースであるI/Oポート３０４０と、管理用データの通信に利用するインタフェースである管理用ポート３０５０と、複数の物理ディスク３０３０と、ストレージシステム１０２０の制御を行うコントローラ（例えばＣＰＵ）３０１０と、メモリ３０２０とを備える。コントローラ３０１０は、ホスト計算機１０３０からライトコマンドを受けた場合、そのライトコマンドに従うデータをメモリ３０２０に一旦記憶させ、メモリ３０２０に記憶させたデータを、ボリューム３２２０（正確には、ボリューム３２２０に割り当てられた記憶領域）に書くことができる。一方、コントローラ３０１０は、ホスト計算機１０３０からリードコマンドを受けた場合、そのリードコマンドに従うデータをボリューム３２２０から読み出し、読み出したデータを一旦メモリ３０２０に記憶させ、メモリ３０２０に記憶させたデータを、ホスト計算機１０３０に送信することができる。
【００４０】
ストレージシステム１０２０には、複数（又は一つ）のストレージプール３２１０が備えられる。ストレージプール３２１０は、複数の物理ディスクにより提供される多数の記憶領域の集合である。具体的には、例えば、図４に例示するように、複数の物理ディスクにより提供された一以上の物理リソース（例えば論理的な記憶デバイス（ＬＤＥＶ））１１２１があり、それら一以上の物理リソース１１２１が有する多数の記憶領域により、ストレージプールを構成することができる。コントローラ３０１０は、各物理リソース１１２１の記憶領域を、ボリューム３２２０に割り当てたり、その記憶領域の割当てを解除してストレージプール３２１０に戻したりすることができる。
【００４１】
メモリ３０２０は、コントローラ３０１０によって実行されるコンピュータプログラムや、コントローラ３０１０が参照する制御情報などを記憶することができる。制御情報としては、例えば、複数の電子的な表があり、具体的には、例えば、ボリュームに関する情報が記録されるボリューム管理表３１２０と、ストレージプール３２１０に関する情報が記録されるプール管理表３１１０と、記憶領域に関する情報が記録される記憶領域管理表３１１１とがある。
【００４２】
以上が、本実施形態に係るストレージ管理システムについての概要である。なお、本実施形態では、ストレージ管理サーバ１０１０とストレージシステム１０２０は異なる装置となっているが、ストレージシステム１０２０の記憶資源（例えばメモリ３０２０或いは物理ディスク３０３０）に、ストレージ管理サーバ１０１０で実行するプログラムが記憶されても良い。
【００４３】
以下、上述した構成要素について詳細に説明する。
【００４４】
ストレージ管理サーバ１０１０は、ボリューム追加イベントとして、例えば図５に例示するようなボリューム追加要求１００００を受けた場合に、ボリューム追加判断プログラム２１３０を実行させることができる。ボリューム追加要求１００００には、例えば、追加される新規ボリュームを使用するホスト計算機１０３０の計算機名である計算機名１００１０と、そのホスト計算機１０３０が新規ボリュームを識別するためのＩＤであるＬＵＮ（論理ユニット番号）１００２０とが含まれる。また、例えば、ストレージシステム１０２０が新規ボリュームを識別するためのＩＤであるボリュームＩＤ１００３０と、新規ボリュームに要求される記憶容量を表す要求容量１００４０と、新規ボリュームを割り当てるストレージプールを識別するためのＩＤである要求プールＩＤ１００５０とも含まれる。
【００４５】
図６は、ストレージ管理サーバ１０１０が保持する計算機管理表２２１０の構成例を示す。
【００４６】
計算機管理表２２１０には、各ホスト計算機１０３０毎に、そのホスト計算機の名称を表すホスト計算機名１１０１０と、そのホスト計算機のIPアドレスを示すIPアドレス１１０２０とが記録される。
【００４７】
図７は、ストレージ管理サーバ１０１０が保持するボリューム管理表２２２０の構成例を示す。
【００４８】
ボリューム管理表２２２０には、各ホスト計算機毎に、ホスト計算機名１２０１０と、そのホスト計算機でボリュームを識別するために使用されるＬＵＮ１２０２０と、そのボリュームのＩＤであるボリュームＩＤ１２０３０とが記録される。換言すれば、ボリューム管理表２２２０では、どのホスト計算機に対してどのボリュームが割り当てられているかが記録されており、どのボリュームであるかを識別するためのＩＤとして、ホスト計算機１０３０で使用されるＩＤであるＬＵＮと、ストレージシステム１０２０で使用されるＩＤであるボリュームＩＤとが記録される。
【００４９】
ホスト計算機１０３０は、ＬＵＮを含んだＩ／Ｏコマンドを発行し、ストレージシステム１０２０は、そのＬＵＮに対応するボリュームＩＤを特定し、Ｉ／Ｏコマンドに従うデータの書込み又は読出しを、特定されたボリュームＩＤに対応するボリュームに割り当てられた記憶領域に対して行うことができる。
【００５０】
図８は、ストレージ管理サーバ１０１０が保持する使用容量管理表２２３０の構成例を示す。
【００５１】
使用容量管理表２２３０は、ボリューム３２１０毎に生成される表である。使用容量管理表２２３０には、例えば、その使用容量管理表２２３０の管理対象となる論理ボリュームのボリュームID１３０１０が記録され、且つ、使用容量の収集が行われた都度に、その収集した時刻を表す時刻１３０２０と、収集された使用容量を表す情報である使用容量１３０３０とのセットが記録される。
【００５２】
図９は、ストレージ管理サーバ１０１０が保持する使用容量近似表２２４０の構成例を示す。
【００５３】
使用容量近似表２２４０には、各ボリューム３２２０毎に、ボリュームID１４０１０と、そのボリュームの使用容量の伸びを線形近似した近似式の傾きを保持する傾き１４０２０と、そのボリューム使用容量の伸びを線形近似した近似式の切片を保持する切片１４０３０と、そのボリューム使用容量の伸びを線形近似した近似式の分散を保持する分散１４０４０とが記録される。
【００５４】
図１０は、ストレージ管理サーバ１０１０が保持するプール管理表２２５０の構成例を示す。
【００５５】
プール管理表２２５０には、各ストレージプール３２１０毎に、そのストレージプール３２１０を識別するためのプールID１５０１０と、そのストレージプール３２１０の容量を示すプール容量１５０２０と、そのストレージプール３２１０に属するボリューム３２２０を識別するためのボリュームID１５０３０と、そのストレージプール３２１０の未使用の記憶容量を示す残容量１５０４０と、そのストレージプール３２１０の属性を表す情報である属性１５０５０とが記録される。ボリュームID１５０３０は、ストレージプール３２１０に属するボリューム３２２０が複数存在する場合には、カンマ区切りで入力することができる。ストレージプール３２１０の属性は、具体的には、信頼性に関する属性であり、より具体的には、例えば、それを構成する物理ディスクの属性がある。その属性としては、物理ディスクの種別（例えば、ファイバチャネル（ＦＣ）或いはシリアルＡＴＡ（ＳＡＴＡ）等）や、その物理ディスクを構成要素とするＲＡＩＤグループのＲＡＩＤレベル等を採用することができる。
【００５６】
図１１は、ストレージ管理サーバ１０１０が保持するボリューム割当管理表２２６０の構成例を示す。
【００５７】
ボリューム割当管理表２２６０には、各ボリューム３２２０毎に、ボリュームID１６０１０と、そのボリュームに割り当てた容量を示す割当容量１６０２０と、そのボリュームが将来の或る時点に必要とする容量を示す必要容量１６０３０とが記録される。
【００５８】
図１２は、ストレージ管理サーバ１０１０が保持するボリューム割当変更表２２８０の構成例を示す。
【００５９】
ボリューム割当変更表２２８０には、各ボリューム３２２０毎に、ボリュームID１７０１０と、そのボリュームが提供されるホスト計算機のホスト計算機名１７０２０と、そのホスト計算機でそのボリュームを識別するためのLUN１７０３０と、そのボリュームへの割当容量１７０４０と、変更種別１７０５０とが記録される。変更種別１７０５０として記録される種別には、例えば、この表２２８０のレコードの少なくとも一部（例えば、ボリュームＩＤ、計算機名、ＬＵＮ及び割当て容量のうちの少なくとも一つ）が変更されたことを表す「変更」や、新たにレコードが追加されたことを表す「追加」や、レコードを削除することを表す「削除」がある。
【００６０】
図１３は、ストレージ管理サーバ１０１０が保持するプール変更表２２７０の構成例を示す。
【００６１】
プール変更表２２７０には、各ストレージプール３２１０毎に、プールID１８０１０と、プール容量１８０２０と、属性１８０２１と、ボリュームID１８０３０と、変更種別１８０４０とが記録される。変更種別１８０４０として記録される種別には、例えば、この表２２７０のレコードの少なくとも一部（例えば、プールＩＤ、プール容量、属性及びボリュームＩＤのうちの少なくとも一つ）が変更されたことを表す「変更」や、新たにレコードが追加されたことを表す「追加」や、レコードが削除されることを意味する「削除」がある。
【００６２】
図１４は、ストレージシステム１０２０が保持するボリューム管理表３１２０の構成例を示す。
【００６３】
ボリューム管理表３１２０には、各ボリューム３２２０毎に、ボリュームＩＤ１９０１０と、そのボリュームの提供先のホスト計算機を表すホスト計算機名１９０２０と、そのホスト計算機でそのボリュームを識別するための使用されるＬＵＮ１９０３０と、そのボリュームへの割当容量１９０４０とが記録される。
【００６４】
ストレージシステム１０２０は、管理用ポート３０５０を通じてボリューム情報要求を受信すると、メモリ３０２０内に保持するボリューム管理表３１２０に含まれる情報を、ボリューム情報として、ボリューム情報要求の送信元に対して送信する。
【００６５】
また、ストレージシステム１０２０は、管理用ポート３０５０を通じて、プール情報設定通知を受信する。プール情報設定通知には、プールIDと、プール容量と、ボリュームIDと、変更種別とが含まれる。変更種別は、例えば、追加、変更及び削除のうちのいずれかの値をとる。ストレージシステム１０２０は、管理用ポート３０５０を通じてプール情報設定通知を受信すると、変更種別の値に応じて以下の処理を行うことができる。例えば、変更種別が追加の場合には、ストレージシステム１０２０は、プール情報設定通知に含まれる情報を新しいレコードとしてプール管理表３１１０に追加する。変更種別が変更の場合には、ストレージシステム１０２０は、プール管理表３１１０に含まれる情報のうち、プールID２００１０がプール情報設定通知に含まれるプールIDと同一のレコードを、プール情報設定通知に含まれる情報で上書きする。変更種別が削除の場合には、ストレージシステム１０２０は、プール管理表３１１０に含まれる情報のうち、プールID２００１０がプール情報設定通知に含まれるプールIDと同一のレコードを削除する。
【００６６】
また、ストレージシステム１０２０は、管理用ポート３０５０を通じて、ボリューム情報設定通知を受信する。ボリューム情報設定通知には、例えば、ボリュームIDと、ホスト計算機名と、LUNと、割当容量と、変更種別とが含まれる。変更種別は、例えば、追加、変更及び削除のうちのいずれかの値をとる。ストレージシステム１０２０は、管理用ポート３０５０を通じてボリューム情報設定通知を受信すると、変更種別の値に応じて以下の処理を行うことができる。例えば、変更種別が追加の場合には、ストレージシステム１０２０は、ボリューム情報設定通知に含まれる情報を新しいレコードとしてボリューム管理表３１２０に追加する。変更種別が変更の場合には、ストレージシステム１０２０は、ボリューム管理表３１２０に含まれる情報のうち、ボリュームID１９０１０がボリューム情報設定通知に含まれるボリュームIDと同一のレコードを、ボリューム情報設定通知に含まれる情報で上書きする。変更種別が削除の場合には、ストレージシステム１０２０は、ボリューム管理表３１２０に含まれる情報のうち、ボリュームID１９０１０がボリューム情報設定通知に含まれるボリュームIDと同一のレコードを削除する。
【００６７】
図１５は、ストレージシステム１０２０が保持するプール管理表３１１０の構成例を示す。
【００６８】
プール管理表３１１０には、各ストレージプール３２１０毎に、プールID２００１０と、そのストレージプールを構成する全ての記憶領域を表す構成記憶領域ＩＤ２００１１と、それらの記憶領域のうちボリュームに割当済みの記憶領域を表す使用記憶領域ＩＤ２００１２と、プール容量２００２０と、そのストレージプールに属するボリュームのボリュームID２００３０と、残容量２００４０と、属性２００５０とが記録される。
【００６９】
ストレージシステム１０２０は、管理用ポート３０５０を通じてプール情報要求を受信すると、メモリ３０２０内に保持するプール管理表３１１０に含まれる情報を、プール情報として、プール情報要求の送信元に対して送信する。
【００７０】
また、ストレージシステム１０２０は、管理用ポート３０５０を通じて、プール情報設定通知を受信する。プール情報設定通知には、プールIDと、プール容量と、ボリュームIDと、変更種別とが含まれる。変更種別は、例えば、追加、変更及び削除のうちのいずれかの値をとる。ストレージシステム１０２０は、管理用ポート３０５０を通じてプール情報設定通知を受信すると、変更種別の値に応じて以下の処理を行うことができる。例えば、変更種別が追加の場合には、ストレージシステム１０２０は、プール情報設定通知に含まれる情報を新しいレコードとしてプール管理表３１１０に追加する。変更種別が変更の場合には、ストレージシステム１０２０は、プール管理表３１１０に含まれる情報のうち、プールID２００１０がプール情報設定通知に含まれるプールIDと同一のレコードを、プール情報設定通知に含まれる情報で上書きする。変更種別が削除の場合には、ストレージシステム１０２０は、プール管理表３１１０に含まれる情報のうち、プールID２００１０がプール情報設定通知に含まれるプールIDと同一のレコードを削除する。
【００７１】
図１６は、ストレージシステム１０２０が保持する記憶領域管理表３１１１の構成例を示す。
【００７２】
記憶領域管理表３１１１には、各記憶領域毎に、その記憶領域を識別するための記憶領域ＩＤ２００１２と、その記憶領域を有する物理ディスクを識別するための物理ディスクＩＤと、その物理ディスクの属性２００２１と、物理リソースにおけるその記憶領域の開始アドレス２００３１と、その物理リソースにおけるその記憶領域の終了アドレス２００４１とが記録される。
【００７３】
ストレージシステム１０２０において、ストレージプール３２１０は、それの属性と同じ属性を有する物理ディスクの記憶領域で構成することができる。コントローラ３０１０は、ボリューム３２２０に記憶領域を割り当てる場合、そのボリューム３２２０の属するストレージプール３２１０の中の未使用の記憶領域を割り当ることができる。その際、コントローラ３０１０は、そのストレージプール３２１０に対応する使用記憶領域ＩＤ２００１２の欄に、その割り当てた記憶領域のＩＤを追記したり、残容量２００４０の欄に記録される残容量を、割り当てた記憶領域の容量分減らしたりすることができる。また、コントローラ３０１０は、ボリューム３２２０への記憶領域の割当てを解除した場合、その記憶領域のＩＤを使用記憶領域ＩＤ２００１２の欄から削除したり、残容量２００４０の欄に記録される残容量を、割当てを解除した記憶領域の容量分増やしたりすることができる。
【００７４】
以下、本実施形態で行われる処理の流れを説明する。
【００７５】
まず、ストレージ管理サーバ１０１０が行う情報収集の概要を説明する。
【００７６】
図１７は、ストレージ管理サーバ１０１０における情報収集プログラム２１１０の処理概要を示したフローチャートである。
【００７７】
最初に、情報収集プログラム２１１０は、ストレージシステム１０２０に対して、ボリューム情報要求を送信し、その応答として、ボリューム情報を受信し、受信したボリューム情報に基づいて、ホスト計算機管理表２２１０、ボリューム管理表２２２０及び使用容量管理表２２３０を更新する（ステップ４０１０）。具体的には、例えば、情報収集プログラム２１１０は、受信したボリューム情報に含まれるホスト計算機名をホスト計算機管理表２２１０のホスト計算機名１１０１０に、IPアドレスをホスト計算機管理表２２１０のIPアドレス１１０２０にそれぞれ保存する。さらに、ボリューム情報に含まれるホスト計算機名をボリューム管理表２２２０のホスト計算機名１２０１０に、ボリューム情報に含まれるLUNをボリューム管理表２２２０のLUN１２０２０に、ボリューム情報に含まれるボリュームIDをボリューム管理表２２２０のボリュームID１２０３０にそれぞれ保存する。さらに、ボリューム情報に含まれるボリュームID毎に、使用容量管理表２２３０を作成する。
【００７８】
次に、情報収集プログラム２１１０は、ホスト計算機管理表２２１０に存在するホスト計算機に対して、使用容量情報要求を送信し、その応答として使用容量情報を受信する。情報収集プログラム２１１０は、ホスト計算機１０３０から受け取った使用容量情報に含まれるボリュームIDに対応する使用容量管理表２２３０の時刻１３０２０の項目に収集時刻を、使用容量１３０３０の項目に使用容量をそれぞれ保存する（ステップ４０２０）。
【００７９】
次に、ストレージ管理サーバ１０１０が行う新規ボリュームの追加の概要を説明する。
【００８０】
図１８は、ストレージ管理サーバ１０１０におけるボリューム管理プログラム２１２０の処理概要を示したフローチャートである。
【００８１】
まず、ストレージ管理サーバ１０１０のボリューム管理プログラム２１２０は、ボリューム追加イベントが発生したならば（ステップ５０１０）、ストレージシステム１０２０からボリューム情報と、プール情報を収集する（ステップ５０２０）。ステップ５０１０では、例えば、ボリューム管理プログラム２１２０は、入力装置２０４０を通じて、図５に例示したボリューム追加要求１００００と、次回の物理ディスク増設時刻である増設時刻情報とを受信する。ステップ５０２０では、ボリューム管理プログラム２１２０は、例えば以下の処理を行う。
【００８２】
まず、ボリューム管理プログラム２１２０は、ストレージシステム１０２０に対して、ボリューム情報要求を送信し、その応答としてボリューム情報を受信する。ボリューム管理プログラム２１２０は、ボリューム割当管理表２２６０のボリュームID１６０１０にボリューム情報のボリュームIDを、ボリューム割当管理表２２６０の割当容量１６０２０にボリューム情報の割当容量をそれぞれ保存する。
【００８３】
次に、ボリューム管理プログラム２１２０は、ストレージシステム１０２０に対して、プール情報要求を送信し、その応答としてプール情報を受信する。ボリューム管理プログラム２１２０は、プール管理表２２５０のプールID１５０１０に、プール情報のプールIDを、プール管理表２２５０のプール容量１５０２０に。プール情報のプール容量を、プール管理表２２５０のボリュームID１５０３０に、プール情報のボリュームIDを、プール管理表２２５０の残容量１５０４０にプール情報の残容量を、それぞれ保存する。
【００８４】
以上の処理により、ステップ５０２０が完結する。
【００８５】
次に、ボリューム管理プログラム２１２０は、ボリューム追加判断プログラム２１３０を用いて、要求されたボリュームが追加可能であるか判断する。（５０３０）
図１９は、ストレージ管理サーバ１０１０におけるボリューム追加判断プログラム２１３０の処理概要を示したフローチャートである。
【００８６】
まず、ボリューム追加判断プログラム２１３０は、使用容量管理表２２３０に保存された使用容量情報を用いて、それぞれのボリュームの使用容量の伸びを近似計算し、使用容量近似表２２４０に保存する（ステップ６０１０）。本実施形態では、ボリューム使用容量の伸びを、例えば、最小２乗法による線形近似で近似するとしているが、他の近似方法を用いてもよい。
【００８７】
次に、ボリューム追加判断プログラム２１３０は、ボリューム使用容量近似式を用いて、管理者から受けた物理ディスク増設時刻における必要容量を計算し（すなわち、物理ディスク増設時刻の時点で必要とされるであろうボリューム容量を予測し）、算出された必要容量を、ボリューム割当管理表２２６０の必要容量１６０３０の項目に保存する。（ステップ６０２０）。
【００８８】
次に、ボリューム追加判断プログラム２１３０は、ボリュームの使用容量の伸びを表した近似式の精度を確認する（６０３０）。具体的には、例えば、ボリューム追加判断プログラム２１３０は、使用容量管理表２２３０の分散１４０４０の値が、あらかじめ設定した分散のしきい値より大きいボリュームは、そのボリュームの近似式の精度は低いと判断し、ボリューム割当管理表２２６０から削除することができる。すなわち、近似式の精度の低い（換言すれば、必要容量の精度の低い）ボリュームの必要容量を、以後の処理において、要求容量との比較対象にしないようにすることができる。
【００８９】
次に、ボリューム追加判断プログラム２１３０は、要求容量を満たすか否かを判断する（６０４０）。
【００９０】
図２０は、ボリューム追加判断プログラム２１３０が、要求容量を満たすか判断する処理の処理概要を示したフローチャートである。
【００９１】
まず、ボリューム追加判断プログラム２１３０は、プール管理表２２５０に含まれるプールの残容量１５０４０の値の合計値が、新規ボリュームの要求容量以上であるか否かを判断する（ステップ７０１０）。
【００９２】
プールの残容量１５０４０の合計値が新規ボリュームの要求容量以上であると判断した場合（７０２０）には、ボリューム追加判断プログラム２１３０は、要求容量を満たすと判断する（ステップ７０３０）。
【００９３】
一方、プールの残容量１５０４０の合計値が新規ボリュームの要求容量より少ないと判断した場合（７０４０）には、ボリューム追加判断プログラム２１３０は、各ボリューム毎に、ボリューム割当管理表２２６０の割当容量１６０２０と必要容量１６０３０の差分を計算し、全てのボリュームの差分の合計値を計算する（ステップ７０５０）。
【００９４】
次に、ボリューム追加判断プログラム２１３０は、差分の合計値とプール残容量の合計値との和が、新規ボリュームの要求容量以上であるか否かを判断する（ステップ７０６０）。
【００９５】
差分の合計値とプール残容量の合計値との和が、新規ボリュームの要求容量以上であると判断した場合（７０７０）には、ボリューム追加判断プログラム２１３０は、要求容量を満たすと判断する（ステップ７０３０）。
【００９６】
一方、差分の合計値とプール残容量の合計値との和が、新規ボリュームの要求容量より少ないと判断した場合（７０８０）には、ボリューム追加判断プログラム２１３０は、要求容量を満たさないと判断する（ステップ７０９０）。
【００９７】
再び図１９を参照する。ボリューム追加判断プログラム２１３０は、要求容量を満たす場合（６０５０）には、新規ボリュームを追加可能と判断し（ステップ６０６０）、要求容量を満たさない場合（６０７０）には、新規ボリュームを追加できないと判断する（ステップ６０８０）。
【００９８】
以上が、ストレージ管理サーバ１０１０におけるボリューム追加判断プログラム２１３０の処理概要の説明である。
【００９９】
再び図１８を参照する。新規ボリュームのボリューム追加が可能である場合（５０４０）には、ボリューム管理プログラム２１２０は、ボリューム情報更新プログラム２１５０を用いて、ボリューム情報を更新する（ステップ５０５０）。
【０１００】
図２１は、ボリューム情報更新プログラム２１５０がボリューム情報を更新する処理の概要を示したフローチャートである。
【０１０１】
まず、ボリューム情報更新プログラム２１５０は、ボリューム追加要求１００００で指定されたストレージプール内で新規ボリュームを割り当て可能か否かを判断する（ステップ８０１０）。
【０１０２】
ボリューム追加要求１００００で指定されたストレージプールの残容量が、要求容量以上であると判断した場合（８０２０）には、ボリューム情報更新プログラム２１５０は、ボリューム割当変更表を作成（或いは更新）する（ステップ８０３０）。具体的には、例えば、ボリューム情報更新プログラム２１５０は、プール変更表２２７０のプールID１８０１０に、ボリューム追加要求１００００で指定された要求プールID１００５０を、プール変更表２２７０のプール容量１８０２０に、プール管理表２２５０のプール容量１５０２０を、プール変更表２２７０のボリュームID１８０３０に、プール管理表２２５０のボリュームID１５０３０の値にボリューム追加要求１００００で指定されたボリュームID１００３０をカンマ区切りで加えた値を、プール変更表２２７０の変更種別１８０４０に、変更という値を、それぞれ入力して保存する。さらに、ボリューム情報更新プログラム２１５０は、ボリューム割当変更表２２８０のボリュームID１７０１０に、ボリューム追加要求１００００で指定されたボリュームID１００３０を、ボリューム割当変更表２２８０のホスト計算機名１７０２０に、ボリューム追加要求１００００で指定されたホスト計算機名１００１０を、ボリューム割当変更表２２８０のLUN１７０３０に、ボリューム追加要求１００００で指定されたLUN１００２０を、ボリューム割当変更表２２８０の割当容量１７０４０に、ボリューム追加要求１００００で指定された要求容量１００４０を、ボリューム割当変更表２２８０の変更種別１７０５０に、追加という値を、それぞれ入力して保存する。
【０１０３】
一方、ボリューム追加要求１００００で指定されたストレージプールの残容量が、要求容量より少ないと判断した場合（８０４０）には、ボリューム情報更新プログラム２１５０は、指定されたプールに属する全てのボリュームが、割当容量１６０２０と必要容量１６０３０とが等しいか否かを判断する（ステップ８０５０）。
【０１０４】
その結果、割当容量１６０２０と必要容量１６０３０が等しくないボリュームが存在する場合（８０６０）には、ボリューム情報更新プログラム２１５０は、ステップ８０７０を実行する。具体的には、例えば、ボリューム情報更新プログラム２１５０は、プール管理表２２５０の残容量１５０４０の値に、割当容量１６０２０と必要容量１６０３０の差分を加えた値で上書きする。さらに、ボリューム情報更新プログラム２１５０は、ボリューム割当管理表２２６０で、最も差分が多いボリュームの割当容量を必要容量の値で上書きする。さらに、ボリューム情報更新プログラム２１５０は、ボリューム割当変更表２２８０のボリュームID１７０１０に、上書きしたボリュームのボリュームIDを、ボリューム割当変更表２２８０の割当容量１７０４０に、上書きした容量を、ボリューム割当変更表２２８０の変更種別１７０５０に、変更という値を、それぞれ入力して保存し、ステップ８０１０へ戻る。
【０１０５】
ステップ８０５０において、指定されたプール内の全てのボリュームが割当容量１６０２０と必要容量１６０３０が等しい場合（８０８０）には、ボリューム情報更新プログラム２１５０は、別のストレージプールの残容量が、ボリューム追加要求１００００で指定された要求容量から指定されたプールの残容量を引いた不足容量以上であるか否かを判断する（ステップ８０９０）。
【０１０６】
別プールの残容量が不足容量以上である場合（８１００）には、ボリューム情報更新プログラム２１５０は、ステップ８１１０を実行する。具体的には、例えば、ボリューム情報更新プログラム２１５０は、プール管理表２２５０の別プールの残容量１５０４０の値を、不足容量だけ引いた値で上書きし、別プールのプール容量を不足容量だけ引いた値で上書きする。さらに、ボリューム情報更新プログラム２１５０は、指定されたプールの残容量１５０４０を、不足容量だけ加えた値で上書きし、指定されたプールのプール容量を、不足容量だけ加えた値で上書きする。さらに、ボリューム情報更新プログラム２１５０は、プール変更表２２７０のプールID１８０１０に、別プールのプールIDを、プール変更表２２７０のプール容量１８０２０に、別プールのプール容量を、プール変更表２２７０のボリュームID１８０３０に、プール管理表２２５０のプールID１５０１０の値を、プール変更表２２７０の変更種別１８０４０に、変更という値を、それぞれ入力して保存し、ステップ８０１０へ戻る。
【０１０７】
ステップ８０９０において、別プールの残容量が不足容量より少ないと判断した場合（８１２０）には、ボリューム情報更新プログラム２１５０は、ステップ８１３０を実行する。具体的には、例えば、ボリューム情報更新プログラム２１５０は、プール管理表２２５０の別プールの残容量１５０４０の値に、割当容量１６０２０と必要容量１６０３０の差分を加えた値で上書きする。さらに、ボリューム情報更新プログラム２１５０は、ボリューム割当管理表２２６０で、最も差分が多いボリュームの割当容量を必要容量の値で上書きする。さらに、ボリューム情報更新プログラム２１５０は、ボリューム割当変更表２２８０のボリュームID１７０１０に、上書きしたボリュームのボリュームIDを、ボリューム割当変更表２２８０の割当容量１７０４０に、上書きした容量を、ボリューム割当変更表２２８０の変更種別１７０５０に、変更という値をそれぞれ入力して保存し、ステップ８０９０へ戻る。
【０１０８】
以上が、ボリューム情報更新プログラム２１５０がボリューム情報を更新する処理の説明である。
【０１０９】
再び図１８を参照する。ボリューム管理プログラム２１２０は、ストレージシステム１０２０へ、プール変更通知として、プール変更表２２７０に含まれる情報を送信し、さらにボリューム変更通知としてボリューム割当変更表２２８０に含まれる情報を送信する（ステップ５０６０）。ストレージシステム１０２０は、例えば、ボリューム変更通知を基に、プール管理表３１１０において、別プールの容量を減らし、それに伴って、構成記憶領域ＩＤを減らしたり、減らした分を指定プールの容量や構成記憶領域ＩＤに追加したりすることができる。
【０１１０】
次に、ボリューム管理プログラム２１２０は、出力装置２０５０を介して、管理者へ完了通知を出力する（ステップ５０７０）。
【０１１１】
ステップ５０３０において、新規ボリュームのボリューム追加が可能でない場合（５０８０）には、ボリューム管理プログラム２１２０は、増設時刻計算プログラム２１４０を用いて、ボリューム追加可能である増設時刻を計算する（ステップ５０９０）。
【０１１２】
図２２は、増設時刻計算プログラム２１４０がボリューム追加可能である増設時刻の計算を行う処理の概要を示したフローチャートである。
【０１１３】
まず、増設時刻計算プログラム２１４０は、使用容量近似表２２４０に含まれる近似式情報を全て足し合わせた式、例えば、（必要容量合計）＝（傾き１４０２０の合計）×（増設時刻）＋（切片１４０３０の合計）、を作成する（ステップ９０１０）。
【０１１４】
次に、増設時刻計算プログラム２１４０は、プール管理表２２５０に含まれるレコードの残容量１５０４０を合計し、プール残容量合計を計算する（ステップ９０２０）。
【０１１５】
次に、増設時期計算プログラム２１４０は、ボリューム割当管理表２２６０に含まれるレコードの割当容量１６０２０を合計し、割当容量合計を計算する（ステップ９０３０）。
【０１１６】
次に、増設時刻計算プログラム２１４０は、要求容量を満たす増設時刻を計算する（ステップ９０４０）。要求容量を満たす増設時刻は、例えば、次の式、
要求容量＝（プール残容量合計）＋（割当容量合計）−（必要容量合計）
を満たす時刻である。この式を変形すると、以下の式、
増設時刻＝｛（プール残容量合計）＋（割当容量の合計）−（要求容量）−（切片１４０３０の合計）｝÷（傾き１４０２０の合計）
となる。
【０１１７】
以上が、増設時刻計算プログラム２１４０で行う処理の説明である。
【０１１８】
この処理を終えると、図１８に示すように、ボリューム管理プログラム２１２０は、出力装置２０５０を介して、管理者に対して、算出された増設時刻を出力する（ステップ５１００）。
【０１１９】
以上が、ストレージ管理サーバ１０１０におけるボリューム管理プログラム２１２０が行う処理の説明である。
【０１２０】
以上、上述した実施形態によれば、ストレージ管理サーバ１０１０は、ボリューム追加イベントが発生した場合、各ボリューム毎の収集された使用容量を基に、各ボリューム毎に、将来の或る時刻に必要となるであろうボリューム容量（つまり必要容量）を予測し、予測された必要容量と割当容量とから不必要容量を算出し、算出された一以上の不必要容量に基づいて、新規ボリュームの要求容量を満たすだけの記憶領域があるか否かを判断し、肯定的な判断結果が得られた場合、不必要容量分の記憶領域を新規ボリュームに割り当てることができる。これにより、ホスト計算機へのボリュームに割り当てる記憶領域の無駄をなるべく抑えられるように記憶領域の割当てを最適化することができる。
【０１２１】
また、上述した実施形態によれば、将来の或る時刻を、物理ディスク増設時刻としている。物理ディスクが増設されれば、その分、ボリュームに割当て可能な記憶領域の数を増やすことができる。従って、その時点での予測値（必要容量）を基に、記憶領域の割当てを行うのが、記憶領域の無駄な割当てを抑止するのに適していると考えられる。具体的には、例えば、物理ディスク増設時刻よりも遠い時刻での予測値を基に、記憶領域の割当てを行うと、遠い時刻の方が必要容量が大きい場合に、その時刻よりも前に物理ディスクが増設されて記憶領域が増えるにも関わらず、増設時刻での予測値を基に割当てを行う場合よりもたくさんの記憶領域を割り当ててしまうことになる。そうすると、新規ボリュームに割り当てられる記憶領域の数がその分少なくなってしまうので、非効率となる。本実施形態によれば、このようなことが生じてしまうことを防ぐことができる。
【０１２２】
また、上述した実施形態によれば、指定された物理ディスク増設時刻に、要求容量を満たす新規ボリュームを追加できない場合には、指定された物理ディスク増設時刻よりも現在に近い時刻であって、要求容量を満たす時刻が算出され、その算出された時刻が増設時刻として提示される。これにより、指定された物理ディスク増設時刻で要求容量を満たさなくても、その要求容量を満たす新規ボリュームの追加が即時に可能となるとともに、新規ボリュームを追加したことにより生じ得る記憶領域の枯渇を未然に防ぐための新たな増設時刻を管理者に提示することができる。
【０１２３】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１２４】
例えば、図１８のステップ５０１０でのボリューム追加イベントは、ボリュームの使用率が閾値を超えた、というイベントであっても良い。具体的には、例えば、ストレージ管理サーバ１０１０が、ホスト計算機１０３０から収集された使用容量の割当容量に対する割合（使用率）が閾値（例えば９０％）を超えたと判断した場合に、ステップ５０２０以降を行っても良い。また、物理ディスク増設時刻は予め設定されていてもよく、その場合、図２３に例示するように、ストレージ管理サーバ１０１０は、その物理ディスク増設時刻での必要容量Ｃｐと、現在の割当容量Ｃｕとの差分を、ボリュームの要求容量としてもよい。この要求容量は、ホスト計算機１０３０に提供されているボリュームの割当容量に加算するための容量とすることができる。
【０１２５】
また、例えば、ボリューム情報更新プログラム２１５０は、図２１のステップ８０９０で、別プールを、指定されたプールと同じ属性を有するプールとすることができる。これにより、別プールの記憶領域を指定プールに移動しても（ステップ８１１０）、指定プールの中に、属性の異なる記憶領域が混じってしまうことを防ぐことができる。
【０１２６】
また、例えば、ホスト計算機１０３０やストレージシステム１０２０は、ストレージ管理サーバ１０１０からの要求を受けることなく、能動的に、ストレージ管理サーバ１０１０が必要とする情報を送信してもよい。また、ストレージ管理サーバ１０１０は、使用容量情報を、ホスト計算機１０３０に代えてストレージシステム１０２０から受信してもよい。
【０１２７】
また、使用容量、割当容量、不必要容量及び要求容量などの種々の記憶容量は、個々の記憶領域のサイズが一定であれば、記憶領域の数で表してもよい。
【０１２８】
また、例えば、ストレージシステム１０２０の構成として、図３の例に代えて他の構成を採用することもできる。例えば、外部の装置（例えばホスト計算機或いは他のストレージシステム）との通信を制御するための複数の第一の制御部（例えば制御回路基板）と、物理ディスク３０３０との通信を制御するための複数の第二の制御部（例えば制御回路基板）と、外部の装置と物理ディスクとの間で授受されるデータを記憶することができるキャッシュメモリと、ストレージシステム１０２０を制御するためのデータを記憶することができる制御メモリと、各第一の制御部、各第二の制御部、キャッシュメモリ及び制御メモリを接続する接続部（例えば、クロスバスイッチなどのスイッチ）とを備えることができる。この場合、第一の制御部と第二の制御部の一方が、又は双方が協働して、コントローラ３０１０としての処理を行うことができる。制御メモリは無くても良く、その場合、キャッシュメモリに、制御メモリが記憶する情報を記憶する領域が設けられても良い。
【図面の簡単な説明】
【０１２９】
【図１】図１は、本発明の一実施形態に係るストレージ管理システムの構成例の概略図である。
【図２】図２は、ストレージ管理サーバ１０１０の構成例を示した図である。
【図３】図３は、ストレージシステム１０２０の構成例を示した図である。
【図４】図４は、ボリューム３２２０とストレージプール３２１０との関係の説明図である。
【図５】図５は、ボリューム追加要求１００００の構成例を示す。
【図６】図６は、ストレージ管理サーバ１０１０が保持する計算機管理表２２１０の構成例を示す。
【図７】図７は、ストレージ管理サーバ１０１０が保持するボリューム管理表２２２０の構成例を示す。
【図８】図８は、ストレージ管理サーバ１０１０が保持する使用容量管理表２２３０の構成例を示す。
【図９】図９は、ストレージ管理サーバ１０１０が保持する使用容量近似表２２４０の構成例を示す。
【図１０】図１０は、ストレージ管理サーバ１０１０が保持するプール管理表２２５０の構成例を示す。
【図１１】図１１は、ストレージ管理サーバ１０１０が保持するボリューム割当管理表２２６０の構成例を示す。
【図１２】図１２は、ストレージ管理サーバ１０１０が保持するボリューム割当変更表２２８０の構成例を示す。
【図１３】図１３は、ストレージ管理サーバ１０１０が保持するプール変更表２２７０の構成例を示す。
【図１４】図１４は、ストレージシステム１０２０が保持するボリューム管理表３１２０の構成例を示す。
【図１５】図１５は、ストレージシステム１０２０が保持するプール管理表３１１０の構成例を示す。
【図１６】図１６は、ストレージシステム１０２０が保持する記憶領域管理表３１１１の構成例を示す。
【図１７】図１７は、ストレージ管理サーバ１０１０における情報収集プログラム２１１０の処理概要を示したフローチャートである。
【図１８】図１８は、ストレージ管理サーバ１０１０におけるボリューム管理プログラム２１２０の処理概要を示したフローチャートである。
【図１９】図１９は、ストレージ管理サーバ１０１０におけるボリューム追加判断プログラム２１３０の処理概要を示したフローチャートである。
【図２０】図２０は、ボリューム追加判断プログラム２１３０が、要求容量を満たすか判断する処理の処理概要を示したフローチャートである。
【図２１】図２１は、ボリューム情報更新プログラム２１５０がボリューム情報を更新する処理の概要を示したフローチャートである。
【図２２】図２２は、増設時刻計算プログラム２１４０がボリューム追加可能である増設時刻の計算を行う処理の概要を示したフローチャートである。
【図２３】図２３は、要求容量を自動で決定する方法の説明図である。
【符号の説明】
【０１３０】
１０１０…ボリューム管理サーバ  １０２０…ストレージシステム  １０３０…ホスト計算機  １０４０…管理用ネットワーク  １０５０…ストレージエリアネットワーク  １０６０…レポート端末  ２０１０…CPU  ２０２０…メモリ  ２０３０…ハードディスク  ２０４０…入力装置  ２０５０…出力装置  ２０６０…通信ポート  ２１１０…情報収集プログラム  ２１２０…ボリューム管理プログラム  ２１３０…ボリューム追加判断プログラム  ２１４０…増設時刻計算プログラム  ２１５０…ボリューム情報更新プログラム  ２２１０…計算機管理表  ２２２０…ボリューム管理表  ２２３０…使用容量管理表  ２２４０…使用容量近似表  ２２５０…プール管理表  ２２６０…ボリューム割当管理表  ２２７０…プール変更表  ２２８０…ボリューム割当変更表  ３０１０…コントローラ  ３０２０…メモリ  ３０３０…物理ディスク  ３０４０…I/Oポート  ３０５０…管理用ポート  ３１１０…プール管理表  ３１２０…ボリューム管理表
【図１】
2007241593.tif 000003
【図２】
2007241593.tif 000004
【図３】
2007241593.tif 000005
【図４】
2007241593.tif 000006
【図５】
2007241593.tif 000007
【図６】
2007241593.tif 000008
【図７】
2007241593.tif 000009
【図８】
2007241593.tif 000010
【図９】
2007241593.tif 000011
【図１０】
2007241593.tif 000012
【図１１】
2007241593.tif 000013
【図１２】
2007241593.tif 000014
【図１３】
2007241593.tif 000015
【図１４】
2007241593.tif 000016
【図１５】
2007241593.tif 000017
【図１６】
2007241593.tif 000018
【図１７】
2007241593.tif 000019
【図１８】
2007241593.tif 000020
【図１９】
2007241593.tif 000021
【図２０】
2007241593.tif 000022
【図２１】
2007241593.tif 000023
【図２２】
2007241593.tif 000024
【図２３】
2007241593.tif 000025