(57)【要約】【課題】上流の論理ボリュームの容量拡張に応じて下流の論理ボリュームの容量を拡張することを自動で行えるようにする。【解決手段】管理計算機が、ボリュームカスケードの構成に関する情報であるボリュームカスケード構成情報を記憶するカスケード構成記憶部と、多数の論理ボリュームのうちのいずれかの論理ボリュームを拡張対象とする拡張対象ボリューム決定部と、拡張対象の論理ボリュームが属するボリュームカスケード中の他の論理ボリュームをボリュームカスケード構成情報から特定するカスケード構成特定部と、拡張対象の論理ボリュームと他の論理ボリュームとで構成される対象のボリュームカスケードを構成する二以上の対象ボリュームと該二以上の対象ボリュームの各々の拡張後の容量とを指定した容量拡張指示をストレージシステム群に送信する容量拡張制御部とを備える。【選択図】図１
2007323309.tif 000002
【特許請求の範囲】
【請求項１】
多数の論理ボリュームを備えたストレージシステム群を管理する計算機である管理計算機において、
前記ストレージシステム群は、一以上のストレージシステムから構成され、
前記多数の論理ボリュームには、ボリュームカスケードを構成する前記二以上の論理ボリュームが含まれており、該ボリュームカスケードは、最上流の論理ボリュームであるオリジナルボリュームと、それよりも下流の論理ボリュームであるレプリケーションボリュームとがカスケード状に関連付けられたボリューム群であり、
前記ストレージシステム群は、一以上のボリュームカスケードと、オリジナルボリュームに格納するデータを、該オリジナルボリュームが属するボリュームカスケードに従って、下流のレプリケーションボリュームにコピーするコピー部と、容量拡張指示を受け、該容量拡張指示で指定されている論理ボリュームの容量を拡張する容量拡張部とを備え、
前記管理計算機が、
ボリュームカスケードの構成に関する情報であるボリュームカスケード構成情報を記憶するカスケード構成記憶部と、
前記多数の論理ボリュームのうちのいずれかの論理ボリュームを拡張対象とする拡張対象ボリューム決定部と、
前記拡張対象の論理ボリュームが属するボリュームカスケード中の他の論理ボリュームを前記ボリュームカスケード構成情報から特定するカスケード構成特定部と、
前記拡張対象の論理ボリュームと前記特定された他の論理ボリュームとで構成される対象のボリュームカスケードを構成する二以上の対象ボリュームと該二以上の対象ボリュームの各々の拡張後の容量とを指定した容量拡張指示を前記ストレージシステム群に送信する容量拡張制御部と
を備える管理計算機。
【請求項２】
前記容量拡張制御部は、前記容量拡張指示において、下流の対象ボリュームについての拡張後の容量を、該下流の対象ボリュームの直近且つ上流の対象ボリュームについて指定する拡張後の容量以上とする、
請求項１記載の管理計算機。
【請求項３】
前記管理計算機は、前記ストレージシステム群における複数のエリアの各々の容量上限を記憶する容量上限記憶部を更に有し、
前記複数のエリアの各々には、前記多数の論理ボリュームのうちの少なくとも一つの論理ボリュームが属し、
前記容量拡張制御部は、前記二以上の対象ボリュームの各々の拡張後の容量と、前記複数のエリアのうちの前記各対象ボリュームがそれぞれ属する対象のエリアの容量上限とから、前記二以上の対象ボリュームを拡張すると少なくとも一つの対象のエリアの容量上限を超えてしまう場合には、前記複数のエリアの中から、容量上限を超えてしまう対象のエリアに属する対象ボリュームの拡張後の容量を加算しても容量上限を超えない他のエリアを探し、該対象ボリュームを、探し出された該他のエリアに再配置する、
請求項１記載の管理計算機。
【請求項４】
前記ストレージシステム群は、複数のストレージシステムを含み、
前記複数のエリアの各々は、ストレージシステムである、
請求項３記載の管理計算機。
【請求項５】
前記ストレージシステム群には、複数のＲＡＩＤグループが設定されており、
前記複数のＲＡＩＤグループの各々は、前記ストレージシステム群が備える複数の物理的な記憶装置のうちの二以上の物理的な記憶装置により構成され、
各論理ボリュームは、各ＲＡＩＤグループにより提供される物理的な記憶資源を基に用意された論理的な記憶装置であり、
前記複数のエリアの各々は、ＲＡＩＤグループである、
請求項３記載の管理計算機。
【請求項６】
前記容量拡張制御部は、前記対象のボリュームカスケードのうちの下流の対象ボリュームほど優先的に再配置の対象とする、
請求項３記載の管理計算機。
【請求項７】
前記容量拡張制御部は、再配置の対象がレプリケーションボリュームであって、前記他のエリアを探し出せない場合には、該レプリケーションボリュームを前記対象のボリュームカスケードから解除する、
請求項３記載の管理計算機。
【請求項８】
前記容量拡張制御部は、前記対象のボリュームカスケードについて、レプリケーションボリュームを自動解除しても良いことを意味する情報である自動解除許可が予め設定されている場合には、レプリケーションボリュームの解除を行い、該自動解除許可が予め設定されていない場合には、前記対象のボリュームカスケードを構成する各対象ボリュームの容量を拡張することを中止する、
請求項７記載の管理計算機。
【請求項９】
前記容量拡張制御部は、前記対象のボリュームカスケードのうちの下流の対象ボリュームほど優先的に解除の対象とする、
請求項７記載の管理計算機。
【請求項１０】
前記対象のボリュームカスケードに属するオリジナルボリュームが、前記一以上のボリュームカスケードの他のボリュームカスケードのオリジナルボリュームでもあるが故に、対象のボリュームカスケードが二以上存在し、該二以上の対象ボリュームカスケードのうち、少なくとも一つの対象ボリュームカスケードのうちの少なくとも一つのレプリケーションボリュームが、前記ストレージシステム群において、前記オリジナルボリュームが存在するストレージシステムとは別のストレージシステムに存在する場合、
前記容量拡張制御部は、前記二以上の対象ボリュームカスケードのうち、前記オリジナルボリュームが存在するストレージシステムとは別のストレージシステムにレプリケーションボリュームが存在しない対象ボリュームカスケードの少なくとも一つのレプリケーションボリュームを優先的に解除する、
請求項７記載の管理計算機。
【請求項１１】
前記容量拡張制御部は、非同時型の容量拡張処理を行い、
前記非同時型の容量拡張処理では、前記対象のボリュームカスケードを構成する二以上の対象ボリュームについて、一つの対象ボリュームの容量拡張指示を前記ストレージシステム群に送信し、前記ストレージシステム群から容量拡張の完了を受けた後に、別の対象ボリュームの容量拡張指示を送信する、
請求項１記載の管理計算機。
【請求項１２】
前記容量拡張制御部は、同時型の容量拡張処理を行い、
前記同時型の容量拡張処理では、前記対象のボリュームカスケードを構成する二以上の対象ボリュームのうちの所定の属性を有する対象ボリューム単位で、容量拡張指示を前記ストレージシステム群に送信する、
請求項１記載の管理計算機。
【請求項１３】
前記所定の属性とは、対象ボリュームの種別であり、該種別として、少なくとも、最上流であることを意味するプライマリと、最下流であることを意味するセカンダリとがあり、前記対象のボリュームカスケードが三以上の対象ボリュームから構成される場合には、プライマリとセカンダリの中間に存在することを意味するセカンダリ／プライマリがある、
請求項１２記載の管理計算機。
【請求項１４】
前記容量拡張制御部は、非同時型の容量拡張処理と、同時型の容量拡張処理とのいずれかを選択し、選択した方の処理を行い、
前記非同時型の容量拡張処理では、前記対象のボリュームカスケードを構成する二以上の対象ボリュームについて、一つの対象ボリュームの容量拡張指示を前記ストレージシステム群に送信し、前記ストレージシステム群から容量拡張の完了を受けた後に、別の対象ボリュームの容量拡張指示を送信し、
前記同時型の容量拡張処理では、前記対象のボリュームカスケードを構成する二以上の対象ボリュームのうちの所定の属性を有する対象ボリューム単位で、容量拡張指示を前記ストレージシステム群に送信する、
請求項１記載の管理計算機。
【請求項１５】
前記容量拡張制御部は、
以下の（Ａ）乃至（Ｃ）、
（Ａ）対象ボリュームの数が少ない、
（Ｂ）ストレージシステムの数が少ない、
（Ｃ）ストレージシステムの負荷を抑える、
のうちの少なくとも一つの場合に、非同時型の容量拡張処理を選択し、
以下の（ａ）乃至（ｃ）、
（ａ）対象ボリュームの数が多い、
（ｂ）ストレージシステムの数が多い、
（ｃ）容量拡張に要する時間を抑える、
のうちの少なくとも一つの場合に、同時型の容量拡張処理を選択する、
請求項１４記載の管理計算機。
【請求項１６】
前記容量拡張制御部は、前記二以上の対象ボリュームのうちの下流の対象ボリュームほど優先的に先に容量拡張指示を送信する、
請求項１記載の管理計算機。
【請求項１７】
前記容量拡張制御部は、前記二以上の対象ボリュームのうちの上流の対象ボリュームほど優先的に先に容量拡張指示を送信する、
請求項１記載の管理計算機。
【請求項１８】
拡張対象ボリューム決定部は、使用率が閾値を超えた論理ボリュームを前記拡張対象とし、
前記使用率とは、論理ボリュームの容量に対する使用されている容量の割合である、
請求項１記載の管理計算機。
【請求項１９】
多数の論理ボリュームを備えたストレージシステム群を管理する計算機のマイクロプロセッサに実行されるコンピュータプログラムであって、
前記ストレージシステム群は、一以上のストレージシステムから構成され、
前記多数の論理ボリュームには、ボリュームカスケードを構成する前記二以上の論理ボリュームが含まれており、該ボリュームカスケードは、最上流の論理ボリュームであるオリジナルボリュームと、それよりも下流の論理ボリュームであるレプリケーションボリュームとがカスケード状に関連付けられたボリューム群であり、
前記ストレージシステム群は、一以上のボリュームカスケードと、オリジナルボリュームに格納するデータを、該オリジナルボリュームが属するボリュームカスケードに従って、下流のレプリケーションボリュームにコピーするコピー部と、容量拡張指示を受け、該容量拡張指示で指定されている論理ボリュームの容量を拡張する容量拡張部とを備え、
前記計算機に、
前記多数の論理ボリュームのうちのいずれかの論理ボリュームを拡張対象とし、
前記拡張対象の論理ボリュームが属するボリュームカスケード中の他の論理ボリュームを、ボリュームカスケードの構成に関する情報であるボリュームカスケード構成情報から特定し、
前記拡張対象の論理ボリュームと前記特定された他の論理ボリュームとで構成される対象のボリュームカスケードを構成する二以上の対象ボリュームと該二以上の対象ボリュームの各々の拡張後の容量とを指定した容量拡張指示を前記ストレージシステム群に送信する、
ことを実行させるコンピュータプログラム。
【請求項２０】
多数の論理ボリュームを備えたストレージシステム群と該ストレージシステム群を管理する計算機とを備えた計算機システムで実現可能な方法であって、
前記ストレージシステム群は、一以上のストレージシステムから構成され、
前記多数の論理ボリュームには、ボリュームカスケードを構成する前記二以上の論理ボリュームが含まれており、該ボリュームカスケードは、最上流の論理ボリュームであるオリジナルボリュームと、それよりも下流の論理ボリュームであるレプリケーションボリュームとがカスケード状に関連付けられたボリューム群であり、
前記ストレージシステム群は、一以上のボリュームカスケードと、オリジナルボリュームに格納するデータを、該オリジナルボリュームが属するボリュームカスケードに従って、下流のレプリケーションボリュームにコピーするコピー部とを備え、
ボリュームカスケードの構成に関する情報であるボリュームカスケード構成情報を記憶し、
前記多数の論理ボリュームのうちのいずれかの論理ボリュームを拡張対象とし、
前記拡張対象の論理ボリュームが属するボリュームカスケード中の他の論理ボリュームを前記ボリュームカスケード構成情報から特定し、
前記拡張対象の論理ボリュームと前記特定された他の論理ボリュームとで構成される対象のボリュームカスケードを構成する二以上の対象ボリューム各々の容量を拡張する、
レプリケーションボリュームの容量拡張方法。
【請求項２１】
多数の論理ボリュームを備えたストレージシステム群を管理する計算機である管理計算機において、
前記ストレージシステム群は、一以上のストレージシステムから構成され、
前記多数の論理ボリュームには、ボリュームカスケードを構成する前記二以上の論理ボリュームが含まれており、該ボリュームカスケードは、最上流の論理ボリュームであるオリジナルボリュームと、それよりも下流の論理ボリュームであるレプリケーションボリュームとがカスケード状に関連付けられたボリューム群であり、
前記ストレージシステム群は、一以上のボリュームカスケードと、オリジナルボリュームに格納するデータを、該オリジナルボリュームが属するボリュームカスケードに従って、下流のレプリケーションボリュームにコピーするコピー部と、容量拡張指示を受け、該容量拡張指示で指定されている論理ボリュームの容量を拡張する容量拡張部とを備え、
前記管理計算機が、
ボリュームカスケードの構成に関する情報であるボリュームカスケード構成情報を記憶するカスケード構成記憶部と、
前記ストレージシステム群における複数のエリアの各々の容量上限を記憶する容量上限記憶部と、
前記多数の論理ボリュームのうちのいずれかの論理ボリュームを拡張対象とする拡張対象ボリューム決定部と、
前記拡張対象の論理ボリュームが属するボリュームカスケード中の他の論理ボリュームを前記ボリュームカスケード構成情報から特定するカスケード構成特定部と、
前記拡張対象の論理ボリュームと前記特定された他の論理ボリュームとで構成される対象のボリュームカスケードを構成する二以上の対象ボリュームと該二以上の対象ボリュームの各々の拡張後の容量とを指定した容量拡張指示を前記ストレージシステム群に送信する容量拡張制御部と
を備え、
前記複数のエリアの各々には、前記多数の論理ボリュームのうちの少なくとも一つの論理ボリュームが属し、
前記容量拡張制御部は、
前記容量拡張指示において、下流の対象ボリュームについての拡張後の容量を、該下流の対象ボリュームの直近且つ上流の対象ボリュームについて指定する拡張後の容量以上とし、その際、前記二以上の対象ボリュームの各々の拡張後の容量と、前記複数のエリアのうちの前記各対象ボリュームがそれぞれ属する対象のエリアの容量上限とから、前記二以上の対象ボリュームを拡張すると少なくとも一つの対象のエリアの容量上限を超えてしまう場合には、前記複数のエリアの中から、容量上限を超えてしまう対象のエリアに属する対象ボリュームの拡張後の容量を加算しても容量上限を超えない他のエリアを探し、該対象ボリュームを、探し出された該他のエリアに再配置し、もし、再配置の対象がレプリケーションボリュームであって、前記他のエリアを探し出せない場合には、該レプリケーションボリュームを前記対象のボリュームカスケードから解除する、
管理計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理ボリュームの容量拡張のための技術に関する。
【背景技術】
【０００２】
論理ボリュームの容量拡張のための方法として、例えば、特開２００３−１５９１５号公報に開示の方法が知られている。この公報には、ホスト計算機からの書き込みによってボリューム容量が不足した場合、ストレージシステムが、物理ディスクの未使用の記憶領域を動的に論理ボリュームのセグメントに追加するという方法が開示されている。
【０００３】
【特許文献１】特開２００３−１５９１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ホスト計算機が使用する論理ボリュームは、データの安全性を高めるため冗長化されている。以下、ホスト計算機が使用する論理ボリュームを「オリジナルボリューム」と言い、オリジナルボリュームが冗長化された論理ボリュームを「レプリケーションボリューム」と言う。レプリケーションボリュームは、オリジナルボリュームが存在するストレージシステム内に存在する場合もあれば、それとは別のストレージシステムに存在する場合もある。前者の場合であれば、ストレージシステム内でのコピーとなるし、後者の場合であれば、ストレージシステムから別のストレージシステムへのいわゆるリモートコピーとなる。
【０００５】
オリジナルボリュームに対して、レプリケーションボリュームが関連付けられることにより、論理ボリュームのカスケード（以下、ボリュームカスケード）ができる。レプリケーションボリュームに対して別のレプリケーションボリュームを関連付けることで、より長いボリュームカスケードができ、以って、オリジナルボリュームがより冗長化される。オリジナルボリュームに新たにデータが書込まれると、そのデータが、オリジナルボリュームに関連付けられているレプリケーションボリュームにコピーされる。そのレプリケーションボリュームに、別のレプリケーションボリュームが関連付けられていれば、そのレプリケーションボリュームにコピーされたデータが、更に、別のレプリケーションボリュームにコピーされる。このようにして、ボリュームカスケードでは、上流側の論理ボリュームから下流側の論理ボリュームにデータがコピーされていく。
【０００６】
このため、例えば、上流の論理ボリュームの容量を拡張した場合、下流の論理ボリュームの容量を拡張する必要が生じる。上流の論理ボリュームが記憶するデータの全てを下流の論理ボリュームでも記憶するができるようにするためである。しかし、従来、上流の論理ボリュームの容量拡張に応じて下流の論理ボリュームの容量を拡張するための技術は知られていない。
【０００７】
従って、本発明の目的は、上流の論理ボリュームの容量拡張に応じて下流の論理ボリュームの容量を拡張することを自動で行えるようにすることにある。
【０００８】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本発明に従う管理計算機は、多数の論理ボリュームを備えたストレージシステム群を管理する計算機である。前記ストレージシステム群は、一以上のストレージシステムから構成される。前記多数の論理ボリュームには、ボリュームカスケードを構成する前記二以上の論理ボリュームが含まれている。該ボリュームカスケードは、最上流の論理ボリュームであるオリジナルボリュームと、それよりも下流の論理ボリュームであるレプリケーションボリュームとがカスケード状に関連付けられたボリューム群である。前記ストレージシステム群は、一以上のボリュームカスケードと、オリジナルボリュームに格納するデータを、該オリジナルボリュームが属するボリュームカスケードに従って、下流のレプリケーションボリュームにコピーするコピー部と、容量拡張指示を受け、該容量拡張指示で指定されている論理ボリュームの容量を拡張する容量拡張部とを備える。前記管理計算機が、ボリュームカスケードの構成に関する情報であるボリュームカスケード構成情報を記憶するカスケード構成記憶部と、前記多数の論理ボリュームのうちのいずれかの論理ボリュームを拡張対象とする拡張対象ボリューム決定部と、前記拡張対象の論理ボリュームが属するボリュームカスケード中の他の論理ボリュームを前記ボリュームカスケード構成情報から特定するカスケード構成特定部と、前記拡張対象の論理ボリュームと前記特定された他の論理ボリュームとで構成される対象のボリュームカスケードを構成する二以上の対象ボリュームと該二以上の対象ボリュームの各々の拡張後の容量とを指定した容量拡張指示を前記ストレージシステム群に送信する容量拡張制御部とを備える。拡張後の容量を指定するとは、例えば、拡張後の容量を示す値を指定することと、現在の容量に加算する容量を示す値を指定することとのいずれであってもよい。
【００１０】
第一の実施態様では、前記容量拡張制御部は、前記容量拡張指示において、下流の対象ボリュームについての拡張後の容量を、該下流の対象ボリュームの直近且つ上流の対象ボリュームについて指定する拡張後の容量以上とすることができる。
【００１１】
第二の実施態様では、前記管理計算機は、前記ストレージシステム群における複数のエリアの各々の容量上限を記憶する容量上限記憶部を更に有することができる。前記複数のエリアの各々には、前記多数の論理ボリュームのうちの少なくとも一つの論理ボリュームが属する。前記容量拡張制御部は、前記二以上の対象ボリュームの各々の拡張後の容量と、前記複数のエリアのうちの前記各対象ボリュームがそれぞれ属する対象のエリアの容量上限とから、前記二以上の対象ボリュームを拡張すると少なくとも一つの対象のエリアの容量上限を超えてしまう場合には、前記複数のエリアの中から、容量上限を超えてしまう対象のエリアに属する対象ボリュームの拡張後の容量を加算しても容量上限を超えない他のエリアを探し、該対象ボリュームを、探し出された該他のエリアに再配置することができる。
【００１２】
第三の実施態様では、前記第二の実施態様において、前記ストレージシステム群は、複数のストレージシステムを含む。前記複数のエリアの各々は、ストレージシステムである。
【００１３】
第四の実施態様では、前記第二の実施態様において、前記ストレージシステム群には、複数のＲＡＩＤグループが設定されている。前記複数のＲＡＩＤグループの各々は、前記ストレージシステム群が備える複数の物理的な記憶装置のうちの二以上の物理的な記憶装置により構成される。各論理ボリュームは、各ＲＡＩＤグループにより提供される物理的な記憶資源を基に用意された論理的な記憶装置である。前記複数のエリアの各々は、ＲＡＩＤグループである。
【００１４】
第五の実施態様では、前記第二の実施態様において、前記容量拡張制御部は、前記対象のボリュームカスケードのうちの下流の対象ボリュームほど優先的に再配置の対象とすることができる。
【００１５】
第六の実施態様では、前記第二の実施態様において、前記容量拡張制御部は、再配置の対象がレプリケーションボリュームであって、前記他のエリアを探し出せない場合には、該レプリケーションボリュームを前記対象のボリュームカスケードから解除することができる。
【００１６】
第七の実施態様では、前記第六の実施態様において、前記容量拡張制御部は、前記対象のボリュームカスケードについて、レプリケーションボリュームを自動解除しても良いことを意味する情報である自動解除許可が予め設定されている場合には、レプリケーションボリュームの解除を行い、該自動解除許可が予め設定されていない場合には、前記対象のボリュームカスケードを構成する各対象ボリュームの容量を拡張することを中止することができる。
【００１７】
第八の実施態様では、前記第六の実施態様において、前記容量拡張制御部は、前記対象のボリュームカスケードのうちの下流の対象ボリュームほど優先的に解除の対象とすることができる。
【００１８】
第九の実施態様では、前記第六の実施態様において、前記対象のボリュームカスケードに属するオリジナルボリュームが、前記一以上のボリュームカスケードの他のボリュームカスケードのオリジナルボリュームでもあるが故に、対象のボリュームカスケードが二以上存在し、該二以上の対象ボリュームカスケードのうち、少なくとも一つの対象ボリュームカスケードのうちの少なくとも一つのレプリケーションボリュームが、前記ストレージシステム群において、前記オリジナルボリュームが存在するストレージシステムとは別のストレージシステムに存在する場合、前記容量拡張制御部は、前記二以上の対象ボリュームカスケードのうち、前記オリジナルボリュームが存在するストレージシステムとは別のストレージシステムにレプリケーションボリュームが存在しない対象ボリュームカスケードの少なくとも一つのレプリケーションボリュームを優先的に解除することができる。
【００１９】
第十の実施態様では、前記容量拡張制御部は、非同時型の容量拡張処理を行い、前記非同時型の容量拡張処理では、前記対象のボリュームカスケードを構成する二以上の対象ボリュームについて、一つの対象ボリュームの容量拡張指示を前記ストレージシステム群に送信し、前記ストレージシステム群から容量拡張の完了を受けた後に、別の対象ボリュームの容量拡張指示を送信することができる。
【００２０】
第十一の実施態様では、前記容量拡張制御部は、同時型の容量拡張処理を行い、前記同時型の容量拡張処理では、前記対象のボリュームカスケードを構成する二以上の対象ボリュームのうちの所定の属性を有する対象ボリューム単位で、容量拡張指示を前記ストレージシステム群に送信することができる。
【００２１】
第十二の実施態様では、前記第十一の実施態様において、前記所定の属性とは、対象ボリュームの種別であり、該種別として、少なくとも、最上流であることを意味するプライマリと、最下流であることを意味するセカンダリとがあり、前記対象のボリュームカスケードが三以上の対象ボリュームから構成される場合には、プライマリとセカンダリの中間に存在することを意味するセカンダリ／プライマリがある。
【００２２】
第十三の実施態様では、前記容量拡張制御部は、非同時型の容量拡張処理と、同時型の容量拡張処理とのいずれかを選択し、選択した方の処理を行うことができる。前記非同時型の容量拡張処理では、前記対象のボリュームカスケードを構成する二以上の対象ボリュームについて、一つの対象ボリュームの容量拡張指示を前記ストレージシステム群に送信し、前記ストレージシステム群から容量拡張の完了を受けた後に、別の対象ボリュームの容量拡張指示を送信することができる。前記同時型の容量拡張処理では、前記対象のボリュームカスケードを構成する二以上の対象ボリュームのうちの所定の属性を有する対象ボリューム単位で、容量拡張指示を前記ストレージシステム群に送信することができる。
【００２３】
第十四の実施態様では、前記容量拡張制御部は、
以下の（Ａ）乃至（Ｃ）、
（Ａ）対象ボリュームの数が少ない、
（Ｂ）ストレージシステムの数が少ない、
（Ｃ）ストレージシステムの負荷を抑える、
のうちの少なくとも一つの場合に、非同時型の容量拡張処理を選択し、
以下の（ａ）乃至（ｃ）、
（ａ）対象ボリュームの数が多い、
（ｂ）ストレージシステムの数が多い、
（ｃ）容量拡張に要する時間を抑える、
のうちの少なくとも一つの場合に、同時型の容量拡張処理を選択することができる。
【００２４】
第十五の実施態様では、前記容量拡張制御部は、前記二以上の対象ボリュームのうちの下流の対象ボリュームほど優先的に先に容量拡張指示を送信することができる。
【００２５】
第十六の実施態様では、前記容量拡張制御部は、前記二以上の対象ボリュームのうちの上流の対象ボリュームほど優先的に先に容量拡張指示を送信することができる。
【００２６】
第十七の実施態様では、拡張対象ボリューム決定部は、使用率が閾値を超えた論理ボリュームを前記拡張対象とすることができる。前記使用率とは、論理ボリュームの容量に対する使用されている容量の割合である。
【００２７】
上述した各部は、各手段としても良い。記憶部は、例えば、記憶資源（例えばメモリ又はディスク）に用意される記憶域とすることができる。他の各部は、ハードウェア（例えば回路）、コンピュータプログラム、或いはそれらの組み合わせ（例えば、コンピュータプログラムを読み込んで実行する一又は複数のＣＰＵ）によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源（例えばメモリ）から読み込むことができる。その記憶資源には、ＣＤ−ＲＯＭやＤＶＤ（Digital Versatile Disk）等の記録媒体を介してインストールすることもできるし、インターネットやＬＡＮ等の通信ネットワークを介してダウンロードすることもできる。
【発明の効果】
【００２８】
本発明によれば、上流の論理ボリュームの容量拡張に応じて下流の論理ボリュームの容量を拡張することを自動で行うことができる。
【発明を実施するための最良の形態】
【００２９】
図１は、本発明の一実施形態に係る計算機システムの構成例を示した図である。なお、以下の説明では、同種の要素については、親番号（例えば１５３）を用いて説明し、特に区別する場合には、親番号と子符合のセット（例えば１５３Ａ）を用いて説明する。
【００３０】
この計算機システムでは、第一の通信ネットワーク１４９と第二の通信ネットワーク１５５とに、それぞれ、一又は複数台（例えば一台）の業務サーバ１０１と、管理サーバ１１１と、一又は複数台（例えば三台）のストレージシステム１５１Ａ、１５１Ｂ及び１５１Ｃとが接続されている。通信ネットワーク１４９、１５５の種類は格別限定されない。例えば、第一の通信ネットワーク１４９として、ＳＡＮ（Storage Area Network）を採用することができ、第二の通信ネットワーク１５５として、ＬＡＮ（Local Area Network）を採用することができる。
【００３１】
業務サーバ１０１は、一種の計算機であり、所定の業務を実行する。業務サーバ１０１は、ＣＰＵ１０９やメモリ（他種の記憶資源でも良い）１０７を備える。メモリ１０７には、所定の業務を実行するためのコンピュータプログラム（以下、業務アプリケーション）１０３や、所定の論理ボリュームの使用率を監視するためのコンピュータプログラム（以下、ボリューム使用率監視プログラム）１０５を記憶する。ＣＰＵ１０９は、メモリ１０７に記憶されているコンピュータプログラムを読み出して実行する。以下、プログラムが主語になる場合は、実際にはそのプログラムを実行するＣＰＵによって処理が行われるものとする。業務アプリケーション１０３は、オリジナルボリューム１５３Ａ及び／又は１５３Ｃにアクセスする（例えばデータを読み出す或いはデータを書込む）。ボリューム使用率監視プログラム１０５の監視対象は、例えば、業務アプリケーション１０３のアクセス先となる論理ボリュームである。ボリューム使用率監視プログラム１０５は、業務サーバ１０１に代えて、管理サーバ１１１に備えられても良い。
【００３２】
管理サーバ１１１は、一種の計算機であり、業務サーバ１０１及びストレージシステム１５１Ａ〜１５１Ｃを管理する。管理サーバ１１１は、ＣＰＵ１１３やメモリ（他種の記憶資源でも良い）１１５を備える。メモリ１１５には、種々のデータやコンピュータプログラムが記憶される。データとしては、例えば、論理領域管理テーブル１３９、ボリューム管理テーブル１４１、ボリューム拡張／再配置対応テーブル１４３、レプリケーション定義テーブル１４５及び拡張対象レプリケーションボリュームテーブル１４７がある。コンピュータプログラムとしては、例えば、ユーザ設定プログラム１１７、ストレージ情報収集プログラム１１９、自動拡張プログラム１２０、領域拡張プログラム１２１、レプリケーション管理プログラム１２３、第一のテーブル作成プログラム１２５Ａ、第二のテーブル作成プログラム１２５Ｂ、同時変更プログラム１２７、非同時変更プログラム１２９、レプリケーション設定解除プログラム１３１、ボリューム再配置プログラム１３３、ボリューム拡張プログラム１３５及びボリューム移行プログラム１３７がある。これらのデータ及びコンピュータプログラムについては、後に詳述する。
【００３３】
各ストレージシステム１５１には、図示しないストレージ制御部と、一又は複数の論理ボリューム１５３とが備えられる。ボリュームカスケードが、一台のストレージシステム１５１に、或いは、複数台のストレージシステム１５１に跨って、存在する。具体的には、例えば、オリジナルボリューム１５３Ａと、一つのレプリケーションボリューム１５３Ｂとにより構成されたボリュームカスケードが、ストレージシステム１５１Ａに存在する。また、例えば、オリジナルボリューム１５３Ｃと、複数のレプリケーションボリューム１５３Ｄ、１５３Ｅ、１５３Ｆ及び１５３Ｇとにより構成された別のボリュームカスケードが、複数のストレージシステム１５３Ａ〜１５３Ｃに跨って存在する。
【００３４】
ボリュームカスケードでは、２つの論理ボリュームから成るボリュームペアが、一又は複数個連なることで構成される。ボリュームペアのうち、一方が、プライマリ（コピー元）の論理ボリューム（"Ｐ"と図示）であり、他方が、セカンダリ（コピー先）の論理ボリューム（"Ｓ"と図示）であり、プライマリの論理ボリューム（以下、ＰＶＯＬ）からセカンダリの論理ボリューム（以下、ＳＶＯＬ）にデータがコピーされる。ボリュームペアが連なる場合には、連なる一方のボリュームペアのＳＶＯＬと、連なる他方のボリュームペアのＰＶＯＬとが、共通の論理ボリューム（"Ｓ／Ｐ"と図示）となる。前述した各ボリュームカスケードでは、それぞれ、図示の矢印の流れで、コピーが行われる。なお、ボリュームカスケードにおけるコピーでは、ＰＶＯＬからデータが読み出されてＳＶＯＬにコピーされても良いし、ＰＶＯＬに書かれるデータをストレージ制御部内のメモリで保持し、そのメモリからＳＶＯＬにデータがコピーされても良い。
【００３５】
図２は、ストレージシステム１５１の構成例を示す。
【００３６】
ストレージシステム１５１には、ストレージ制御部１６９と、複数の論理ボリューム１５３と、ストレージ部１６１とを備える。
【００３７】
ストレージ制御部１６９は、例えば、ＣＰＵやメモリなどを備えた回路基盤である。ストレージ制御部１６９は、業務サーバ１０１との通信や、他のストレージシステム１５１との通信を制御することができる。
【００３８】
ストレージ部１６１は、複数のストレージデバイス１６３を備える。複数のストレージデバイス１６３には、同種のデバイスのみであっても良いし異種のデバイスが混在してもよい。ストレージデバイス１６３としては、例えば、ハードディスクデバイス、メモリデバイス（例えばフラッシュメモリ）、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス等のデータを読み書き可能な種々のデバイスを利用可能である。
【００３９】
ストレージ部１６１では、複数のＲＡＩＤグループ（パリティグループ或いはアレイグループと呼ばれることもある）１６７を構成することができる。各ストレージグループ１６７は、二以上のストレージデバイス１６３で構成される。そして、それら二以上のストレージデバイス１６３により提供される物理的な記憶資源を論理的に分けることにより、論理領域１６５を複数個設定することができる。ここで言う「論理領域」とは、物理的な記憶資源の一領域のことである。一又は複数の論理領域１６５が、一つの論理ボリューム１５３に割り当てられる。
【００４０】
図３は、論理領域管理テーブル１３９の構成例を示す。
【００４１】
論理領域管理テーブル１３９は、論理領域を管理するためのテーブルである。このテーブル１３９は、例えば、ストレージ情報収集プログラム１１９が、各ストレージシステム１５１Ａ〜１５１Ｃが保持している記憶領域管理情報（図示せず）を収集することにより、作成することができる。このテーブル１３９は、ストレージシステム別に作成することができる。このテーブル１３９には、各論理領域毎に、「論理領域-ＩＤ」（論理領域のＩＤ）、「ＲＧ−ＩＤ」（その論理領域が存在するＲＡＩＤグループのＩＤ）、「容量」（その論理領域の記憶容量）、及び「割当てフラグ」が記録される。「割当てフラグ」は、その割当てフラグに対応する論理領域が割当て済みの場合には、例えば"１"となり、未割り当ての場合には、例えば"０"となる。
【００４２】
図４は、ボリューム管理テーブル１４１の構成例を示す。
【００４３】
ボリューム管理テーブル１４１は、論理ボリュームを管理するためのテーブルである。このテーブル１４１は、例えば、ストレージシステム１５１別に用意することができる。このテーブル１４１には、論理ボリュームと論理領域との対応関係が記録される。具体的には、例えば、各論理ボリューム毎に、「ＬＵ−ＩＤ」（論理ボリュームのＩＤ、具体的には例えばＬＵＮ（論理ユニット番号））と、「論理領域-ＩＤ」（その論理ボリュームに割り当てられた一又は複数の論理領域のＩＤ）と、「ストレージシステムＩＤ」（その論理ボリュームが存在するストレージシステムのＩＤ）と、「拡張判定使用率」と、「最低増加容量」と、「拡張方式」と、「再配置方式」と、「レプリケーション自動解除設定」とがある。このテーブル１４１に登録される情報に対応した論理ボリュームは、オリジナルボリュームであり、レプリケーションボリュームに対応した情報は登録されない。「拡張判定使用率」とは、オリジナルボリュームの使用率を表し、容量拡張を実行するか否かの判断基準となる値である。「最低増加容量」とは、容量拡張を実行する場合に最低どれだけの容量を増加するかを表す値である。「拡張方式」とは、容量拡張の方式であり、例えば、非同時変更と同時変更の２種類がある（各方式については後述する）。「再配置方式」とは、ボリュームカスケードを構成する論理ボリュームの配置を更新する方式を表し、例えば、論理ボリュームの配置を更新した後に容量拡張を行う方式と、容量拡張を行った後に論理ボリュームの配置を更新する方式との２種類がある（各方式については後述する）。「レプリケーション自動解除設定」は、カスケードボリュームを構成するレプリケーションボリュームを解除することを自動で行うか否かの設定である。
【００４４】
論理ボリュームの設定は、管理サーバ１１１にて行うことができる。具体的には、例えば、管理者が、論理ボリュームを定義し、論理領域管理テーブル１３９から、その論理ボリュームに割当てるべき論理領域を選択する。その定義された論理ボリュームの情報（例えばＬＵ−ＩＤ）と、その論理ボリュームに割り当てられる論理領域の情報（例えば論理領域ＩＤ）とのセットを、ストレージシステム１５１に送ることにより、ストレージシステム１５１で、論理ボリュームと論理領域との関係が定義される。また、拡張判定使用率、最低増加容量、拡張方式、再配置方式、及びレプリケーション自動解除設定は、管理者が入力することができる。入力しない場合、所定コード（例えば"N/A"）が登録される。その所定コードが入力された論理ボリュームは、自動拡張の対象外となる。
【００４５】
図５は、レプリケーション定義テーブル１４５の構成例を示す。
【００４６】
レプリケーション定義テーブル１４５は、現時点のレプリケーションの定義（換言すれば、存在するボリュームカスケードの定義）を示す。レプリケーション定義テーブル１４５には、例えば、「ＩＤ」（テーブル１４５中の情報（行）を一意に示すＩＤ）と、「ストレージＩＤ」と、「LU-ID」（論理ボリュームのＩＤ）と、「ボリューム種類」（その論理ボリュームが"Primary"、"Primary/Secondary"、"Secondary"のいずれであるかを示す情報）と、「プライマリ先情報」（その論理ボリュームの直近且つ上流の論理ボリューム（プライマリ先）に関する情報（例えば、ストレージシステムＩＤ及びプライマリ先の論理ボリュームのＩＤ））と、「容量」（その論理ボリュームの現在の容量）とが記録される。プライマリ先情報が"なし"となっていれば、それに対応する論理ボリュームは、オリジナルボリュームであることを意味する。
【００４７】
図６は、拡張対象レプリケーションボリュームテーブル１４７の構成例を示す。
【００４８】
拡張対象レプリケーションボリュームテーブル１４７は、ボリュームカスケードを構成する各論理ボリュームの状態を示したものである。レプリケーション定義テーブル１４５に無い新たな情報項目としては、「階層レベル」と、「作業状態」とがある。「階層レベル」とは、該当ボリュームがPrimaryに到達するまでの論理ボリュームの数である。図１の例で言えば、例えば、レプリケーションボリューム１５３Ｅにとって、階層レベルは"２"となる。オリジナルボリューム１５３Ｃを０番目とした場合に、２番目となるレプリケーションボリュームだからである。「作業状態」は、拡張方式が同時変更の場合に参照される項目であり、容量拡張の進捗を表す。それの初期値として、未処理を意味する"未"が入力され、容量拡張中であれば、"実行中"となり、その容量拡張が済めば、"済"となる。
【００４９】
図７は、ボリューム拡張／再配置対応テーブル１４３の構成例を示す。
【００５０】
ボリューム拡張／再配置対応テーブル１４３は、容量拡張及び／又は再配置（以下、拡張／再配置）の対象となるレプリケーションボリュームの拡張／再配置実行前と後の対応を示す。具体的には、例えば、実行前及び実行後のそれぞれについて、ストレージシステムＩＤ、ＬＵ−ＩＤ及び論理領域ＩＤが記録される。
【００５１】
以下、図８乃至図１０を参照して、本実施形態で行われる処理の概要を説明する。
【００５２】
図８は、ボリューム容量拡張前のストレージシステム１５１Ａに存在するボリュームカスケードの構成例を示す。
【００５３】
ストレージシステム１５１Ａには、例えば、容量の上限が８０Ｇ（ギガバイト）であるＲＡＩＤグループ１と、容量の上限が３０ＧであるＲＡＩＤグループ２とが存在する。
【００５４】
そして、ＲＡＩＤグループ１に、３つのボリュームカスケードが存在する。各ボリュームカスケードについて、上流側から順に、ＬＵ−ＩＤ／ボリューム種別／容量を用いて説明すると、第一のボリュームカスケードは、"0:01/Primary/10G"、"0:11/Secondary/10G"で構成される。第二のボリュームカスケードは、"0:01/Primary/10G"、"0:21/Secondary-Primary/10G"、"0:41/Secondary/20G"で構成される。第三のボリュームカスケードは、"0:01/Primary/10G"、"0:21/Secondary-Primary/10G"、"0:51/Secondary/10G"で構成される。
【００５５】
一方、ＲＡＩＤグループ２には、論理ボリュームが存在していない。
【００５６】
この状況によれば、ＲＡＩＤグループ１に存在する論理ボリュームの容量の合計は、６０Ｇなので、８０Ｇ−６０Ｇ＝２０Ｇの余裕がある。
【００５７】
この状況において、図８に示すように、管理サーバ１１１が、0:01/Primary/10Gを２０Ｇに拡張するとする。具体的には、例えば、管理サーバ１１１は、業務サーバ１０１から、0:01/Primary/10Gの監視結果としてそのオリジナルボリュームの使用率を受け、その使用率が、そのオリジナルボリュームの拡張判定使用率を超えたために、そのオリジナルボリュームに対応する最低増加容量分を拡張するとする（図４参照）。或いは、例えば、管理サーバ１１１が、0:01/Primary/10Gを２０Ｇに拡張することの指示を管理者から受けたことに応答して、その拡張を行うとする。なお、拡張判定使用率は、例えば、管理者が、管理サーバ１１１に表示されたＧＵＩを介して設定することができる。
【００５８】
図９は、図８において、0:01/Primary/10Gを２０Ｇに拡張する処理の一例の概要を示す。
【００５９】
管理サーバ１１１は、レプリケーション定義テーブル１４５を参照し、0:01/Primary/10Gをオリジナルボリュームとした場合のレプリケーションボリュームを特定し、特定されたレプリケーションボリュームに関する情報を、拡張対象レプリケーションボリュームテーブル１４７に登録する。
【００６０】
そして、管理サーバ１１１は、0:01/Primary/10Gを２０Ｇに拡張した場合、そのオリジナルボリュームよりも下流の論理ボリューム、つまりレプリケーションボリュームの容量を、２０Ｇ以上となるようにする。容量拡張後のオリジナルボリュームに格納されるデータの全てを、レプリケーションボリュームにも格納できるようにするためである。図９の例によれば、管理サーバ１１１は、オリジナルボリュームに加えて、全てのレプリケーションボリュームを、２０Ｇにすることを試みる。具体的には、管理サーバ１１１は、２０Ｇ未満の３つのレプリケーションボリューム（ＬＵ−ＩＤが、0:11、0:21及び0:51）の容量を、２０Ｇにすることを試みる。
【００６１】
ここで、管理サーバ１１１は、ＲＡＩＤグループ１内の全ての論理ボリュームの容量を２０Ｇとすると、論理ボリュームの容量合計が１００Ｇとなって、ＲＡＩＤグループ１の容量上限が８０Ｇを超えてしまうことを検出できる。この場合、管理サーバ１１１は、少なくとも一つの論理ボリュームを、２０Ｇ分の論理ボリュームを備えることができる他のＲＡＩＤグループ２に配置換え（再配置）する。これにより、オリジナルボリュームに関連するレプリケーションボリュームの容量を拡張しても、ＲＡＩＤグループ１の容量上限を超えることなく、且つ、各ボリュームカスケードに存在するレプリケーションボリュームの数も減らさずに済む。
【００６２】
なお、再配置対象の論理ボリュームは、レプリケーションボリュームであってもオリジナルボリュームであっても良い。レプリケーションボリュームの場合、階層レベルが最も高い（つまり、オリジナルボリュームから最も離れている）レプリケーションボリュームが、再配置対象とされるのが好ましいと考えられる。再配置する論理ボリュームの数は、幾つでも良いが、なるべく少ない方が好ましいと考えられる。再配置先は、なるべく、オリジナルボリュームが存在するストレージシステム内とし、そのストレージシステムに、再配置できるほどの空きの容量が無い場合に、別のストレージシステムとしても良い。また、再配置対象がオリジナルボリュームの場合、管理サーバ１１１が、業務サーバ１０１と、再配置後のオリジナルボリュームとの間にパスを形成することができる（換言すれば、業務サーバ１０１と再配置後のオリジナルボリュームとを接続することができる）。
【００６３】
また、容量拡張の処理として、例えば、管理サーバ１１１が、論理領域管理テーブル１３９の割当てフラグを参照することにより、所望のＲＡＩＤグループに存在する未割り当ての論理領域の中から、拡張する容量分の論理領域を特定し、特定した論理領域を、拡張／再配置対象の論理ボリュームに割り当てる処理を実行することができる。特定される論理領域は、一つでも複数でも良く、トータルの容量が、拡張する容量分となればよい。
【００６４】
また、管理サーバ１１１は、オリジナルボリュームに、レプリケーション自動解除設定として"可"が設定されている場合（図４参照）には、図８の拡張／再配置処理を行うことに代えて又は加えて、後述する図１０に例示のレプリケーション解除処理を行っても良い。具体的には、例えば、管理サーバ１１１は、可能な限りの再配置を試み、拡張された論理ボリュームを配置できるほどの空き容量がどこにも存在しない場合に、レプリケーション解除処理を行っても良い。また、その際、管理サーバ１１１は、管理者に問い合わせるＧＵＩを出力し、その結果、レプリケーションを解除することの回答をＧＵＩを介して受けた場合に、レプリケーション解除処理を行っても良いし、管理者に問い合わせすることなくレプリケーション解除処理を行っても良い。具体的には、例えば、管理サーバ１１１は、レプリケーション自動解除設定として"不可"が設定されている場合には、レプリケーション解除するか否かを管理者に問合せ、"可"が設定されている場合には、その問合せを行うことなくレプリケーション解除処理を行うことができる。後者の場合、管理サーバ１１１は、解除したレプリケーションボリューム（及び／又はボリュームカスケード）を表示（例えば一覧表示）することができる。
【００６５】
図１０は、レプリケーション解除処理の概要を示す。
【００６６】
例えば、図８に示した状況で、管理サーバ１１１が、0:01/Primary/10Gを２０Ｇに拡張するとする。その際、そのオリジナルボリュームに、レプリケーション自動解除設定として"可"が設定されているとする。
【００６７】
前述したように、ＲＡＩＤグループ１において、オリジナルボリュームに加えて、全てのレプリケーションボリュームを２０Ｇにすると、論理ボリュームの容量の合計が１００Ｇとなって、ＲＡＩＤグループ１の容量上限８０Ｇを超えてしまう。
【００６８】
この場合、管理サーバ１１１は、オリジナルボリュームに、レプリケーション自動解除設定として"可"が設定されているので、少なくとも一つのレプリケーションボリュームを解除するレプリケーション解除処理を行うことで、少なくとも一つのレプリケーションボリュームの容量を拡張しても、ＲＡＩＤグループ１の容量上限を超えないようにすることができる。管理サーバ１１１は、レプリケーション解除処理として、例えば、ボリュームカスケードから、少なくとも一つのレプリケーションボリュームの関連付けを無くし、その関連付けを無くしたレプリケーションボリュームの容量を拡張しない。または、例えば、管理サーバ１１１は、レプリケーション定義テーブル１４５から、ボリュームカスケードに属するレプリケーションボリュームの情報を削除する。
【００６９】
なお、この図１０では、前述した第二及び第三のボリュームカスケードに属するレプリケーションボリュームが解除されているが、第一のボリュームカスケードが解除されても良い。また、ボリュームカスケードに属する全てのレプリケーションボリュームが解除されても良いし、階層レベルの高いレプリケーションボリュームが優先的に解除されても良い。また、他のストレージシステムに跨るボリュームカスケードに属するレプリケーションボリュームと、一つのストレージシステム内のボリュームカスケードに属するレプリケーションボリュームとのうちのいずれかを解除する必要がある場合には、図１３Ｂに例示するように、他のストレージシステムに跨るボリュームカスケードに属するレプリケーションボリュームが、優先的に残されても良い。これにより、なるべくディザスタリカバリに対応することができるようにすることができる。また、一つのストレージシステム内の複数のボリュームカスケードのうち、長いボリュームカスケードに属するレプリケーションボリュームが、短いボリュームカスケードに属するレプリケーションボリュームよりも、優先的に残されても良い。逆に、一つのストレージシステム内の複数のボリュームカスケードのうち、短いボリュームカスケードに属するレプリケーションボリュームが、長いボリュームカスケードに属するレプリケーションボリュームよりも、優先的に残されても良い。
【００７０】
さて、容量の拡張方式として、本実施形態では、前述したように、非同時変更方式と同時変更方式との２種類がある。以下、各種拡張方式について説明する。
【００７１】
図１１Ａは、非同時変更方式での容量拡張の説明図である。図１１Ｂは、図１１Ａでの容量拡張の際の拡張対象レプリケーションボリュームテーブルを示す。
【００７２】
非同時変更方式は、拡張対象のレプリケーションボリュームを一つずつ拡張する方式である。非同時変更方式は、ボリューム管理テーブル１４１（図４参照）で指定されている場合に実行されるが、非同時変更方式と同時変更方式のどちらを採用するかは、所定のコンピュータプログラム、例えば、レプリケーション管理プログラム１２３によって選択されても良い。具体的には、例えば、レプリケーション管理プログラム１２３は、（Ａ）拡張対象レプリケーションボリュームテーブル１４７の行数（換言すれば、拡張対象のレプリケーションボリュームの数）が少ない（例えば第一の閾値未満である）、（Ｂ）ストレージシステムの数が少ない（例えば第二の閾値未満である）、（Ｃ）ストレージシステムにあまり負荷をかけたくない（例えば所定の負荷に抑えたい）、の（Ａ）乃至（Ｃ）のうちの少なくとも一つの場合に、非同時変更方式を選択することができる。
【００７３】
図１１Ａに示す吹出し内の数字は、拡張の順番の一例を示す。その順番から分かるように、レプリケーションボリュームが一つずつ容量拡張される。その際、図示の例によれば、オリジナルボリュームから最も遠いレプリケーションボリュームから順に（換言すれば、階層レベルが最も高いレプリケーションボリュームから順に）、容量拡張が行われる。このような順番での容量拡張は、例えば、本実施形態に係る計算機システムが稼動中の場合に採用される。なぜなら、前述したように、ボリュームカスケードにおける各ボリュームペアでは、ＳＶＯＬの容量をＰＶＯＬの容量以上とする必要があり、遠いレプリケーションボリュームから順に拡張しないと、ＲＡＩＤグループ（或いはストレージシステム）が有する空きの論理領域の容量によっては、ＳＶＯＬ容量≧ＰＶＯＬ容量の関係を遵守することができない事態が生じ得るからである。図１１Ａを例に採ってより具体的に言えば、Ｖ５よりも先にＶ２を拡張すると、ＲＡＩＤグループ（或いはストレージシステム）が有する空きの論理領域の容量によっては、Ｖ２≦Ｖ５とすることができない事態が生じ得るためである。
【００７４】
図１２Ａは、同時変更方式での容量拡張の説明図である。図１２Ｂは、図１２Ａでの容量拡張の際の拡張対象レプリケーションボリュームテーブルを示す。
【００７５】
同時変更方式は、同じ属性を有する二以上のレプリケーションボリュームを同時に拡張する方式である。図示の例によれば、その属性とは、ボリューム種別である。同時変更方式は、ボリューム管理テーブル１４１（図４参照）で指定されている場合に実行されるが、非同時変更方式と同時変更方式のどちらを採用するかは、所定のコンピュータプログラム、例えば、レプリケーション管理プログラム１２３によって選択されても良い。具体的には、例えば、レプリケーション管理プログラム１２３は、（ａ）拡張対象レプリケーションボリュームテーブル１４７の行数（換言すれば、拡張対象のレプリケーションボリュームの数）が多い（例えば第一の閾値以上である）、（ｂ）ストレージシステムの数が多い（例えば第二の閾値以上である）、（ｃ）少なくとも非同時変更方式の場合よりも短い時間で拡張／再配置を終了させたい、の（ａ）乃至（ｃ）のうちの少なくとも一つの場合に、同時変更方式を選択することができる。
【００７６】
図１２Ａに示す吹出し内の数字は、拡張の順番の一例を示す。その順番から分かるように、ボリューム種別が同じ二以上のレプリケーションボリューム（例えば、Ｖ３、Ｖ４及びＶ５）が同時期に容量拡張される。その際、容量拡張が開始されると、作業状態が、"未"から"実行中"に変更され、その容量拡張が終ると、作業状態が、"実行中"から"済"に変更される。また、図示の例によれば、オリジナルボリュームから最も遠いレプリケーションボリュームから順に（換言すれば、階層レベルが最も高いレプリケーションボリュームから順に）、容量拡張が行われる。具体的には、"Secondary"、"Secondary/Primary"、"Primary"の順で容量が拡張される。このような順番での容量拡張は、例えば、本実施形態に係る計算機システムが稼動中の場合に採用される。その理由は、非同時変更方式で説明した理由と同様である。
【００７７】
なお、同時変更方式では、必ずしも、ボリューム種別の単位で容量が拡張されなくても良い。例えば、オリジナルボリュームからの距離が同じ（換言すれば、階層レベルが同じ）レプリケーションボリュームの単位で、同時変更方式に従う容量拡張が行われても良い。
【００７８】
以上が、非同時変更方式及び同時変更方式についての説明である。なお、いずれの方式に従う容量拡張も、コンピュータプログラムによって実行することができる。また、非同時変更方式及び同時変更方式の少なくとも一つにおいて、計算機システムが稼動中ではなく停止中の場合には、必ずしも、上記のように、遠いレプリケーションボリュームから拡張しなくても良く、任意の順序でレプリケーションボリュームの容量が拡張されても良い。例えば、オリジナルボリュームから順に容量拡張されても良い（図１３Ａは、同時変更方式の場合にその方法で容量拡張することの一例の説明図である）。この順番での容量拡張は、オリジナルボリュームに近いボリュームほど重要であると考えられる場合に特に有効である。この方法で容量拡張していった場合に、階層レベルが低い（つまり下流側）のレプリケーションボリュームの容量を、ＳＶＯＬ容量≧ＰＶＯＬ容量の関係を満たすように拡張できなくなった場合には、そのレプリケーションボリュームを解除することができる。
【００７９】
さて、以下、本実施形態に従う計算機システムで行われる処理の流れを説明する。
【００８０】
図１４は、非同時変更方式に従う容量拡張が行われる場合の処理流れの一例を示す。
【００８１】
管理サーバ１１１では、前もってストレージ情報収集プログラム１１９が実行され、ストレージシステムで管理されている情報が収集され、それにより、論理領域管理テーブル１３９及びボリューム管理テーブル１４１が、それぞれ、ストレージシステム別に作成され、メモリ１１５に格納される。
【００８２】
業務サーバ１０１では、ボリューム使用率監視プログラム１０５が実行される。ボリューム使用率監視プログラム１０５は、ストレージシステム１５１Ａ内の各ボリューム（業務アプリケーション１０３が使用する各ボリューム）の使用率を収集し、収集した各使用率を、管理サーバ１１１に通知する（ステップＳ１）。
【００８３】
管理サーバ１１１では、自動拡張プログラム１２０が常時実行されている。自動拡張プログラム１２０は、業務サーバ１０１から各使用率（各ボリュームの使用率）を受信し、ボリューム管理テーブル１４１を参照し、各使用率と各拡張判定使用率とを比較し、拡張判定使用率を越えている使用率となっているボリュームを特定する。自動拡張プログラム１２０は、そのボリュームに対し、領域拡張プログラム１２１を実行し、入力値として拡張対象ボリュームのＬＵ−ＩＤと、拡張後ボリューム容量を入力する（Ｓ２）。拡張ボリューム容量は、例えば、最低増加容量それ自体、或いは、ボリュームの現在の容量に、最低増加容量を加えた量である。領域拡張プログラム１２１は、管理者が手動で実行させてもよい。その場合、拡張後ボリューム容量は、管理者が入力することができる。
【００８４】
領域拡張プログラム１２１は、レプリケーション定義テーブル１４５を参照し、入力されたＬＵ−ＩＤに対応するボリュームが、ボリュームカスケードのPrimary（つまりオリジナルボリューム）になっているか否かを判別する。Primaryになっている場合、領域拡張プログラム１２１は、レプリケーション管理プログラム１２３を呼び出し（Ｓ３）、そうでない場合は、ボリューム拡張プログラム１３５を呼び出す。後者の場合は、拡張対象ボリュームには、レプリケーションボリュームが存在しない場合なので、単一のボリュームの容量拡張が行われる。
【００８５】
レプリケーション管理プログラム１２３は、第一のテーブル作成プログラム１２５Ａを呼び出し（Ｓ４）、拡張対象レプリケーションボリュームテーブル１４７を作成させる。完了を受けた場合（Ｓ５）、レプリケーション管理プログラム１２３は、第二のテーブル作成プログラム１２５Ｂを呼び出し（Ｓ６）、ボリューム拡張／再配置対応テーブル１４３を作成させる。レプリケーション管理プログラム１２３は、拡張対象レプリケーションボリュームテーブル１４７に登録されている情報を基に、実行後（拡張／再配置後）のボリューム情報を、実行前のボリューム情報に対応付けて、ボリューム拡張／再配置対応テーブル１４３に対して入力する。完了を受けた場合（Ｓ７）、レプリケーション管理プログラム１２３は、非同時変更プログラム１２９を呼び出し（Ｓ８）、拡張対象レプリケーションボリュームテーブル１４７に登録されている情報を基に、非同時変更方式に従う容量拡張を、１ボリュームずつ実行させる。
【００８６】
非同時変更プログラム１２９は、１ボリュームずつ領域拡張を実行する。図１４は、オリジナルボリュームに近いボリュームから順に容量拡張する場合の例を示す。非同時変更プログラム１２９は、オリジナルボリュームを有するストレージシステム１５１Ａに、領域拡張指示（例えば、ＬＵ−ＩＤと、それに新たに割り当てる論理領域ＩＤとを含んだ指示）を発行する（Ｓ９）。ストレージシステム１５１Ａのストレージ制御部１６９Ａは、その領域拡張指示に従って、オリジナルボリュームに論理領域を追加することで、容量拡張を行い、それが済んだ場合に、完了を、非同時変更プログラム１２９に報告する（Ｓ１０）。その後、同様の流れで、１ボリュームずつ、レプリケーションボリュームの容量拡張が行われる（Ｓ１１、Ｓ１２）。
【００８７】
なお、非同時変更プログラム１２９は、必要に応じて（例えば、図９を参照して説明した事態が生じることを検出した場合に）、ボリューム再配置プログラム１３３を呼び出し（Ｓ１３）、ボリュームの再配置を実行させる。ボリューム再配置プログラム１３３は、再配置指示（例えば、実行前のＬＵ−ＩＤと、実行後のＬＵ−ＩＤと、実行後のＬＵ−ＩＤに割り当てる論理領域ＩＤとを含んだ指示）を、ストレージ制御部１６９Ａに発行する（Ｓ１４）。もし、論理ボリュームを、ストレージシステム１５１Ａから１５１Ｂに再配置する場合には、例えば、ボリューム再配置プログラム１３３は、ストレージ制御部１６９Ａに、再配置対象のボリュームのＬＵ−ＩＤを指示することでそのボリュームを解除させ、ストレージ制御部１６９Ｂに、実行後のボリュームのＬＵ−ＩＤを構築させそれに所望の論理領域ＩＤを割当てさせてもよい。ボリューム再配置プログラム１３３は、完了を受けた場合（Ｓ１５）、完了を、非同時変更プログラム１２９に報告する（Ｓ１６）。非同時変更プログラム１２９は、完了を、レプリケーション管理プログラム１２３に報告する（Ｓ１７）。レプリケーション管理プログラム１２３は、完了を、領域拡張プログラム１２１に報告する（Ｓ１８）。領域拡張プログラム１２１は、完了を、自動拡張プログラムに報告する（Ｓ１９）。
【００８８】
図１５は、同時変更方式に従う容量拡張が行われる場合の処理流れの一例を示す。
【００８９】
Ｓ２１〜Ｓ２７までの流れは、前述したＳ１〜Ｓ７と同様である。
【００９０】
レプリケーション管理プログラム１２３は、完了を受けた場合、同時変更プログラム１２７を呼び出し（Ｓ２８）、拡張対象レプリケーションボリュームテーブル１４７に登録されている情報を基に、同時変更方式に従う容量拡張を実行させる。
【００９１】
同時変更プログラム１２７は、同じ属性のボリュームを同時に容量拡張する。図１５は、オリジナルボリュームに近いボリュームから順に容量拡張する場合の例を示す。同時変更プログラム１２７は、オリジナルボリュームを有するストレージシステム１５１Ａに、領域拡張指示（例えば、ＬＵ−ＩＤと、それに新たに割り当てる論理領域ＩＤとを含んだ指示）を発行する（Ｓ２９Ａ）。ストレージシステム１５１Ａのストレージ制御部１６９Ａは、その領域拡張指示に従って、オリジナルボリュームに論理領域を追加することで、容量拡張を行い、それが済んだ場合に、完了を、非同時変更プログラム１２９に報告する（Ｓ２９Ａ）。
【００９２】
その後、同時変更プログラム１２７は、そのオリジナルボリュームが属するボリュームカスケードに存在する複数の"Secondary/Primary"のレプリケーションボリュームが全てストレージシステム１５１Ｂに存在する場合には、ストレージ制御部１６９Ｂに、それらのレプリケーションボリュームを指定した領域拡張指示を発行する（Ｓ２９Ｂ）。同時変更プログラム１２７は、領域拡張指示を発行したとき、又は、その領域拡張指示に対する所定の応答を受けた場合に、その指定したレプリケーションボリュームについて、拡張対象レプリケーションボリュームテーブル１４７の作業状態を、"実行中"に更新することができる。ストレージ制御部１６９Ｂは、その領域拡張指示に従って、指定された複数のレプリケーションボリュームを同時期に容量拡張し、容量拡張が済んだレプリケーションについて完了を返す（Ｓ３０Ｂ）。同時変更プログラム１２７は、完了が報告されたレプリケーションボリュームについて、拡張対象レプリケーションボリュームテーブル１４７の作業状態を、"済"に更新することができる。
【００９３】
また、同時変更プログラム１２７は、必要に応じて（例えば、図９を参照して説明した事態が生じることを検出した場合に）、ボリューム再配置プログラム１３３を呼び出し（Ｓ３１）、ボリュームの再配置を実行させる。
【００９４】
その後、例えば、前述したＳ１４〜Ｓ１９と同様の処理が行われる（Ｓ３７〜Ｓ３７）。
【００９５】
図１６は、レプリケーション解除が行われる場合の処理流れの一例を示す。
【００９６】
Ｓ４１〜Ｓ４６までの流れは、前述したＳ１〜Ｓ６と同様である。
【００９７】
第二のテーブル作成プログラム１２５Ｂは、空き論理領域の不足により、拡張対象レプリケーションボリュームテーブル１４７に登録されたボリュームのうちの少なくとも一つのボリュームの拡張／再配置が不可の場合、戻り値"１"を、レプリケーション管理プログラム１２３に報告する（Ｓ４７）。
【００９８】
レプリケーション管理プログラム１２３は、第二のテーブル作成プログラム１２５Ｂからの戻り値が"０"以外だった場合、レプリケーション自動解除設定が"可"か否かを確認し、"不可"の場合は、終了する。"可"の場合、レプリケーション管理プログラム１２３は、拡張対象レプリケーションボリュームテーブル１４７と、ボリューム拡張／再配置対応テーブル１４３との差分一覧を取得し、その差分一覧に相当するボリューム群に対し、レプリケーション設定解除プログラム１３１を実行する（Ｓ４８）。レプリケーション設定解除プログラム１３１は、そのボリューム群の各ボリュームをレプリケーションボリュームとする設定（つまり、Secondary或いはSecondary/Primaryとする設定）を解除する命令を、解除対象のボリュームを有するストレージシステム（例えば１５１Ａ）に発行する（Ｓ４９）。ストレージ制御部１６９Ａは、その命令に従って、指定されたレプリケーションボリュームを解除する。具体的には、例えば、ストレージ制御部１６９Ａは、ストレージ制御部１６９Ａのメモリで管理されている図示しないストレージ管理テーブル（例えば、各ボリューム毎にボリューム種別が書かれたテーブル）から、指定されたボリュームについて、Secondary或いはSecondary/Primaryのボリューム種別を削除する。レプリケーションボリュームの解除が済んだ場合、ストレージ制御部１６９Ａは、完了を、レプリケーション設定解除プログラム１３１に報告する（Ｓ５０）。
【００９９】
その後、例えば、図示のように、非同時変更プログラム１２９が呼び出されるか（Ｓ５１）、或いは、図示しないが、同時変更プログラム１２７が呼び出される。つまり、非同時変更方式或いは同時変更方式に従う容量拡張が行われる。
【０１００】
以上が、本実施形態に従う計算機システムで行われる種々の処理流れの概要である。
【０１０１】
以下、管理サーバ１１１で実行されるコンピュータプログラムが行う処理について説明する。
【０１０２】
図１７は、ユーザ設定プログラム１１７が行う処理の流れの一例を示す。
【０１０３】
ユーザ設定プログラム１１７は、管理者から、管理サーバ１１１に登録済みの論理ボリュームに対して、「拡張判定使用率」、「最低増加容量」、「拡張方式」、「再配置方式」及び「レプリケーション自動解除設定」の入力を受けた場合には（Ｓ１０１でＹＥＳ）、ボリューム管理テーブル１４１における、その論理ボリュームのＬＵ−ＩＤに対応する欄に、入力された情報を登録する（Ｓ１０２）。
【０１０４】
図１８は、ストレージ情報収集プログラム１１９が行う処理の流れの一例を示す。
【０１０５】
例えば、管理サーバ１１１のメモリ１１５に、管理サーバ１１１の管理対象のストレージシステムのＩＤが登録されているとする。ストレージ情報収集プログラム１１９は、そのストレージシステムＩＤから識別されるストレージシステムから、そのストレージシステムで管理されている情報を収集する（Ｓ１１１）。その情報としては、例えば、
・各論理領域について、論理領域ＩＤ、容量、属するＲＡＩＤグループのＩＤ、
・各論理ボリュームについて、割り当てられている論理領域ＩＤ、ボリューム種別、プライマリ先情報（自分に対するプライマリの論理ボリュームのＬＵ−ＩＤ及びストレージシステムＩＤ）、
などがある。ストレージ情報収集プログラム１１９は、収集された情報を基に、ボリューム管理テーブル１４１及びレプリケーション定義テーブル１４５を作成及び／又は更新する（Ｓ１１２）。
【０１０６】
図１９は、自動拡張プログラム１２０が行う処理の流れの一例を示す。
【０１０７】
自動拡張プログラム１２０は、ボリューム使用率監視プログラム１０５から、各ボリュームのＬＵ−ＩＤ及び使用率を入手する（Ｓ１２１）。そして、自動拡張プログラム１２０は、その使用率が、入手されたＬＵ−ＩＤに対応する拡張判定使用率よりも高い場合には（Ｓ１２２でＹＥＳ）、領域拡張プログラム１２３を実行する（Ｓ１２３）。その際、自動拡張プログラム１２０は、拡張対象ＬＵ−ＩＤ（入手されたＬＵ−ＩＤ）と、拡張後ボリューム容量を入力する。
【０１０８】
図２０は、領域拡張プログラム１２１が行う処理の流れの一例を示す。
【０１０９】
領域拡張プログラム１２１は、入力された拡張対象ＬＵ−ＩＤを用いてレプリケーション定義テーブル１４５を参照し、その拡張対象ＬＵ−ＩＤに対応したボリューム種別が"Primary"であるか否か（つまり、拡張対象ＬＵ−ＩＤに対応したボリュームがオリジナルボリュームであるか否か）を判断する（Ｓ１３１）。
【０１１０】
Ｓ１３１の結果、"Primary"ならば、領域拡張プログラム１２１は、レプリケーション管理プログラム１３１を実行する（Ｓ１３２）。その際、領域拡張プログラム１２１は、拡張対象ＬＵ−ＩＤ及び拡張対象ボリューム容量を入力することができる。
【０１１１】
一方、Ｓ１３１の結果、"Primary"でなければ、領域拡張プログラム１２１は、ボリューム拡張プログラム１３５を実行する（Ｓ１３３）。その際、領域拡張プログラム１２１は、一以上の未割り当ての論理領域ＩＤを論理領域管理テーブル１３９から選択し、拡張対象ＬＵ−ＩＤと、選択した一以上の論理領域ＩＤ（以下、「追加対象論理領域ＩＤ」と言う）とを入力することができる。一以上の追加対象論理領域ＩＤにそれぞれ対応する一以上の論理領域の容量の合計は、上記入力された拡張後ボリューム容量に基づいて決定される。
【０１１２】
図２１は、レプリケーション管理プログラム１２３が行う処理の流れの一例を示す。
【０１１３】
レプリケーション管理プログラム１２３は、入力された拡張対象ＬＵ−ＩＤに対応するボリューム（オリジナルボリューム）について、拡張対象レプリケーションボリュームテーブルを準備する（Ｓ１４１）。ここで作成された拡張対象レプリケーションボリュームテーブルでは、例えば、全ての値がブランクとなっている。
【０１１４】
次に、レプリケーション管理プログラム１２３は、オリジナルボリュームに関する情報を、準備された拡張対象レプリケーションボリュームテーブル１４７に登録する。ここで、登録される情報としては、例えば、拡張対象ＬＵ−ＩＤを用いてレプリケーション定義テーブル１４５から取得できる情報に加えて、ＩＤとして"１"、階層レベルとして"０"、作業状態として"未"がある。
【０１１５】
次に、レプリケーション管理プログラム１２３は、第一及び第二のテーブル作成プログラム１２５Ａ及び１２５Ｂを実行する（Ｓ１４３）。また、その際、上記入力された拡張後ボリューム容量を入力する。
【０１１６】
その結果、第二のテーブル作成プログラム１２５Ｂからの戻り値が"０"の場合、レプリケーション管理プログラム１２３は、非同時変更と同時変更のどちらを行うかを判断する（Ｓ１５０）。レプリケーション管理プログラム１２３は、例えば、拡張対象ＬＵ−ＩＤに対応付けられた「拡張方式」が"非同時変更"なら（Ｓ１５０でＮＯ）、非同時変更プログラム１２９を実行し（Ｓ１５２）、一方、"同時変更"なら（Ｓ１５０でＹＥＳ）、同時変更プログラム１２７を実行しても良い（Ｓ１５１）。或いは、例えば、レプリケーション管理プログラム１２３は、（Ａ）拡張対象レプリケーションボリュームテーブル１４７の行数（換言すれば、拡張対象のレプリケーションボリュームの数）が少ない（例えば第一の閾値未満である）、（Ｂ）ストレージシステムの数が少ない（例えば第二の閾値未満である）、（Ｃ）ストレージシステムにあまり負荷をかけたくない（例えば所定の負荷に抑えたい）、の（Ａ）乃至（Ｃ）のうちの少なくとも一つの場合に、非同時変更プログラム１２９を実行しても良い。また、例えば、レプリケーション管理プログラム１２３は、（ａ）拡張対象レプリケーションボリュームテーブル１４７の行数（換言すれば、拡張対象のレプリケーションボリュームの数）が多い（例えば第一の閾値以上である）、（ｂ）ストレージシステムの数が多い（例えば第二の閾値以上である）、（ｃ）少なくとも非同時変更方式の場合よりも短い時間で拡張／再配置を終了させたい、の（ａ）乃至（ｃ）のうちの少なくとも一つの場合に、同時変更プログラム１２７を実行しても良い。
【０１１７】
Ｓ１５１或いはＳ１５２の後、レプリケーション管理プログラム１２３は、ボリューム拡張／再配置対応テーブル１４３を削除し（Ｓ１５４）、さらに、拡張対象レプリケーションボリュームテーブル１４７を削除する（Ｓ１５５）。
【０１１８】
さて、Ｓ１４３において、戻り値が"０"でない場合（Ｓ１４３でＮＯ）、レプリケーション管理プログラム１２３は、拡張対象ＬＵ−ＩＤに対応した「レプリケーション自動解除設定」が"可"となっていなければ（Ｓ１４４でＮＯ）、拡張中断したことを管理者に通知する（Ｓ１５３）。具体的には、例えば、レプリケーション管理プログラム１２３は、論理領域の不足（記憶資源の不足）のために拡張中断したことのＧＵＩを表示する。その後、Ｓ１５４及びＳ１５５が行われる。
【０１１９】
一方、Ｓ１４４において、拡張対象ＬＵ−ＩＤに対応した「レプリケーション自動解除設定」が"可"となっていれば（Ｓ１４４でＹＥＳ）、レプリケーション管理プログラム１２３は、ボリューム拡張／再配置対応テーブル１４３に存在せず、拡張対象レプリケーションボリュームテーブル１４７にあるボリュームデータ群（ＢＤＧ１）（つまり差分）を取得する（Ｓ１４５）。その際、レプリケーション管理プログラム１２３は、値ｍとして、そのボリュームデータ群（Ｐ）に存在するボリュームデータの数をセットする。
【０１２０】
レプリケーション管理プログラム１２３は、ボリュームデータ群（ＢＤＧ１）を構成する一以上のボリュームデータから、一つのボリュームデータ（例えば、拡張対処レプリケーション１４７の一レコードに登録される種々の情報が含まれているデータ）を取得し（Ｓ１４６）、そのボリュームデータについて、レプリケーション設定解除プログラム１３１を実行し、値ｍから１を引く（Ｓ１４７）。
【０１２１】
レプリケーション管理プログラム１２３は、ｍ＝０になるまで、Ｓ１４６及びＳ１４７を繰り返す（Ｓ１４８でＮＯ）。
【０１２２】
その結果、レプリケーション管理プログラム１２３は、ｍ＝０になったならば（Ｓ１４８でＹＥＳ）、ボリュームデータ群（ＢＤＧ１）を一覧表示する（Ｓ１４９）。表示される情報は、ボリュームデータ群（ＢＤＧ１）の全てに限らず、レプリケーション解除されたレプリケーションボリュームに関する情報であれば、何でも良い。また、例えば、レプリケーション管理プログラム１２３は、その表示方法に代えて、図１０に示した内容をＧＵＩで表示しても良い。これにより、管理者にとって、レプリケーション解除されたレプリケーションボリュームやボリュームカスケードの構成を把握しやすくなると考えられる。
【０１２３】
Ｓ１４９の後、前述したＳ１５０が行われる。
【０１２４】
図２２は、第一のテーブル作成プログラム１２５Ａが行う処理の流れの一例を示す。
【０１２５】
第一のテーブル作成プログラム１２５Ａは、図２１のＳ１４１で登録された拡張対象ＬＵ−ＩＤのボリュームをオリジナルボリュームとしたレプリケーションボリュームが存在するか否かを、レプリケーション定義テーブル１４５のプライマリ先情報を参照することにより判断する（Ｓ１６１）。
【０１２６】
第一のテーブル作成プログラム１２５Ａは、Ｓ１６１の判断の結果、レプリケーションボリュームが存在する場合には（Ｓ１６１でＹＥＳ）、存在するレプリケーションボリュームに関するデータ（以下、レプリケーションボリュームデータ）を、拡張対象レプリケーションボリュームテーブル１４７に登録する（Ｓ１６２）。具体的には、例えば、第一のテーブル作成プログラム１２５Ａは、階層レベルが低い（オリジナルボリュームに近い）レプリケーションボリュームのデータほど、オリジナルボリュームのデータが書かれたレコードに近いレコードに登録する。レプリケーションボリュームデータには、例えば、レプリケーション定義テーブル１４５から取得できる情報に加えて、ＩＤと、「プライマリ先情報」のカラムから把握できる階層レベルと、作業状態＝"未"とが含まれている。
【０１２７】
第一のテーブル作成プログラム１２５Ａは、値ｎとして、登録したレプリケーションボリュームデータ群におけるレプリケーションボリュームデータの数をセットする（Ｓ１６３）。第一のテーブル作成プログラム１２５Ａは、レプリケーションボリュームデータ群からレプリケーションボリュームデータを抽出し（Ｓ１６４）、ボリューム拡張／再配置対応テーブル１４３の作成のための第一のテーブル作成プログラム１２５Ａを実行する（Ｓ１６５）。その際、上記入力された拡張後ボリューム容量を入力する。そして、第一のテーブル作成プログラム１２５Ａは、値ｎから１を引く（Ｓ１６６）。
【０１２８】
第一のテーブル作成プログラム１２５Ａは、ｎ＝０になるまで、Ｓ１６４〜及びＳ１６６を繰り返し（Ｓ１６７でＮＯ）、ｎ＝０になったならば（Ｓ１６７でＹＥＳ）、終了する。
【０１２９】
図２３は、第二のテーブル作成プログラム１２５Ｂが行う処理の流れの一例を示す。
【０１３０】
第二のテーブル作成プログラム１２５Ｂは、値ｋとして０をセットする（Ｓ１７０）。また、例えば、第二のテーブル作成プログラム１２５Ｂは、全てがブランクとなったボリューム拡張／再配置対応テーブル１４３を準備することができる。
【０１３１】
次に、第二のテーブル作成プログラム１２５Ｂは、値ｋと同じ値の階層レベルのボリュームデータを拡張対象レプリケーションボリュームテーブル１４７から検索する（Ｓ１７１）。第二のテーブル作成プログラム１２５Ｂは、値Ｎとして、検索ヒットした数、すなわち、見つかったボリュームデータの数をセットする。
【０１３２】
第二のテーブル作成プログラム１２５Ｂは、検索ヒットした一以上のボリュームデータの中から、ｇ番目（ｇは１以上の整数）のボリュームデータを抽出する（Ｓ１７２）。
【０１３３】
第二のテーブル作成プログラム１２５Ｂは、抽出したボリュームデータに対応するボリュームの容量拡張が可能か否かを判断する（Ｓ１７３）。例えば、第二のテーブル作成プログラム１２５Ｂは、そのボリュームが属するＲＡＩＤグループのＩＤと容量上限とが事前に収集されていてメモリ１１５に登録されている場合には、そのボリュームの容量を、上記入力された拡張後ボリューム容量にしても、その容量上限を超えないか否かを判断する。
【０１３４】
Ｓ１７３の結果、容量拡張が可能と判断した場合（Ｓ１７３でＹＥＳ）、第二のテーブル作成プログラム１２５Ｂは、ボリューム拡張／再配置対応テーブル１４３に、拡張前のボリュームデータと、拡張後のボリュームデータとを登録する（Ｓ１７４）。拡張後のボリュームデータの容量は、例えば、入力された拡張後ボリューム容量である。
【０１３５】
その後、第二のテーブル作成プログラム１２５Ｂは、値ｇに１を加え（Ｓ１７９）、ｇ＝Ｎとならなければ（Ｓ１８０でＮＯ）、Ｎ個のボリュームデータのうち未処理のボリュームデータが残っているので、再びＳ１７２を行い、ｇ＝Ｎとなれば（Ｓ１８０でＹＥＳ）、未処理のボリュームデータが残っていないので、次の処理として、例えば、値ｋに１を加える処理を行う（Ｓ１８１）。
【０１３６】
その結果、第二のテーブル作成プログラム１２５Ｂは、更新後の値ｋが、拡張対象レプリケーションボリュームテーブル１４７に登録されている階層レベルの最大値以下であれば（Ｓ１８２でＹＥＳ）、再びＳ１７１を行う。一方、更新後の値ｋが、上記最大値を超えたならば（Ｓ１８２でＮＯ）、全てのレプリケーションボリュームについて拡張／再配置が可能だったので、第二のテーブル作成プログラム１２５Ｂは、戻り値＝０を、レプリケーション管理プログラム１２３に報告する（Ｓ１８３）。
【０１３７】
さて、Ｓ１７３において、拡張不可能と判断した場合（Ｓ１７３でＮＯ）、第二のテーブル作成プログラム１２５Ｂは、論理領域管理テーブル１３９を基に、再配置先を検索する（Ｓ１７５）。その際、例えば、第二のテーブル作成プログラム１２５Ｂは、レプリケーションボリュームが現在存在するストレージシステムに対応の論理領域管理テーブル１３９を基に、再配置先を検索し、見つからなかった場合には、別のストレージシステムの論理領域管理テーブル１３９を基に、再配置先を検索する。この場合、例えば、いずれかの論理領域管理テーブル１３９から、上記入力された拡張後ボリューム容量分の一以上の未割り当ての論理領域が見つかった場合には、再配置先がみつかったことになり（Ｓ１７６でＹＥＳ）、そうでない場合には、再配置先が見つからなかったことになる（Ｓ１７６でＮＯ）。
【０１３８】
Ｓ１７６でＮＯの場合、第二のテーブル作成プログラム１２５Ｂは、戻り値＝１を、レプリケーション管理プログラム１２３に報告する（Ｓ１７７）。
【０１３９】
一方、Ｓ１７６でＹＥＳの場合、第二のテーブル作成プログラム１２５Ｂは、ボリューム拡張／再配置対応テーブル１４３に、再配置前のボリュームデータと、再配置後のボリュームデータとを登録する（Ｓ１７８）。再配置後のボリュームデータの容量は、例えば、入力された拡張後ボリューム容量であり、論理領域ＩＤは、見つかった未割り当ての論理領域ＩＤである。
【０１４０】
このＳ１７８の後、前述したＳ１７９が行われる。
【０１４１】
図２４は、レプリケーション設定解除プログラム１３１が行う処理の流れの一例を示す。
【０１４２】
レプリケーション設定解除プログラム１３１は、拡張／再配置不可のボリュームのボリュームデータ（図２１のＳ１４６で取得されたボリュームデータ）に関する情報を、レプリケーション定義テーブル１４５及び拡張対象レプリケーションボリュームテーブル１４７のそれぞれから削除する（Ｓ１９１及びＳ１９２）。
【０１４３】
図２５は、非同時変更プログラム１２９が行う処理の流れの一例を示す。なお、この図２５は、図１１Ａ及び図１１Ｂを参照して説明した非同時変更方式を例に採った処理流れの一例を示す。
【０１４４】
非同時変更プログラム１２９は、値ｋとして、ボリューム拡張／再配置対応テーブルの行数をセットする（Ｓ２０１）。
【０１４５】
また、非同時変更プログラム１２９は、ボリューム拡張／再配置対応テーブルのＩＤ−ｊに対応する情報群（ＢＤＧ２）を取得する（Ｓ２０２）。
【０１４６】
非同時変更プログラム１２９は、情報群（ＢＤＧ２）が、拡張であれば（Ｓ２０３でＹＥＳ）、その情報群（ＢＤＧ２）についてボリューム拡張プログラム１３５を実行し（Ｓ２０４）、その実行結果に応じて、論理領域テーブル１３９、ボリューム管理テーブル１４１及びレプリケーション定義テーブル１４５を更新する（Ｓ２０５）。
【０１４７】
次に、非同時変更プログラム１２９は、値ｊから１を引き（Ｓ２０８）、ｊ＝０にならなければ（Ｓ２０９でＮＯ）、再びＳ２０２を行い、ｊ＝０になれば（Ｓ２０９でＹＥＳ）、終了する。
【０１４８】
Ｓ２０２で取得された情報群（ＢＤＧ２）が、再配置であれば（Ｓ２０３でＮＯ及びＳ２０６でＹＥＳ）、非同時変更プログラム１２９は、その情報群（ＢＤＧ２）についてボリューム拡張プログラム１３５を実行する（Ｓ２０７）。
【０１４９】
Ｓ２０７の後、Ｓ２０８が行われる。
【０１５０】
図２６は、同時変更プログラム１２７が行う処理の流れの一例を示す。なお、この図２６は、図１２Ａ及び図１２Ｂを参照して説明した同時変更方式を例に採った処理流れの一例を示す。
【０１５１】
同時変更プログラム１２７は、拡張対象レプリケーションボリュームテーブル１４７から、ボリューム種別が"Secondary"のボリュームデータを全て取得し（Ｓ２１１）、各ボリュームデータについて、同時変更を実行する（Ｓ２２２）。その後、同時変更プログラム１２７は、ボリューム拡張／再配置対応テーブル１４３を削除することができる。
【０１５２】
図２７は、図２６のＳ２２２で行われる処理の流れの一例を示す。
【０１５３】
同時変更プログラム１２７は、ボリューム種別が"Secondary"の各ボリュームデータについて、作業状態が"未"であれば（Ｓ２３１でＹＥＳ）、それを"作業中"に更新する（Ｓ２３２）。
【０１５４】
同時変更プログラム１２７は、ボリューム種別が"Secondary"の各ボリュームデータ中のＬＵ−ＩＤを用いて、ボリューム拡張／再配置対応テーブル１４３を参照し、各ＬＵ−ＩＤを有する各レコードに登録されている各情報毎に、拡張か再配置かを判断する。
【０１５５】
拡張であれば（Ｓ２３３でＹＥＳ）、同時変更プログラム１２７は、そのボリュームデータについてボリューム拡張プログラム２３４を実行し、その実行結果に応じて、論理領域管理テーブル１３９、ボリューム管理テーブル１４１及びレプリケーション定義テーブル１４５を更新する（Ｓ２３５）。
【０１５６】
その後、同時変更プログラム１２７は、各ボリュームデータについての作業状態を"実行中"から"済"に更新する（Ｓ２３８）。
【０１５７】
次に、同時変更プログラム１２７は、作業状態が"済"となった上記各ボリュームデータのプライマリ先情報を検索し（Ｓ２３９）、プライマリ先情報＝"なし"となっていなければ（Ｓ２４０でＹＥＳ）、そのプライマリ先情報が表すボリュームのセカンダリボリュームのボリュームデータを、拡張対象レプリケーションボリュームテーブル１４７から取得する（Ｓ２４１）。これにより、Ｓ２３８で"済"となったＳＶＯＬ以外の他のＳＶＯＬのボリュームデータが取得される。
【０１５８】
Ｓ２４１で取得された全ボリュームデータの作業状態が"済"であれば（Ｓ２４２でＹＥＳ）、同時変更プログラム１２７は、Ｓ２４１で取得されたボリュームデータについて、Ｓ２３２を行う。
【０１５９】
図２６及び図２７に示したフローにより、図１２Ａ及び図１２Ｂを参照して説明した同時変更方式に従う容量拡張が行われる。
【０１６０】
図２８は、ボリューム再配置プログラム１３３が行う処理の流れの一例を示す。
【０１６１】
ボリューム再配置プログラム１３３は、対象ボリューム（ボリューム拡張／再配置対応テーブル１４３から取得された、レコード上の情報群が表すボリューム）のオリジナルボリュームについて、「再配置方式」が"拡張後再配置"となっていなければ（Ｓ２５１でＮＯ）、ボリューム移行プログラム１３７を実行することにより再配置を行った後（Ｓ２５２）、ボリューム拡張プログラムを実行する（Ｓ２５３）。一方、その「再配置方式」が"拡張後再配置"となっていれば（Ｓ２５１ＹＥＳ）、ボリューム再配置プログラム１３３は、再配置先（ＲＡＩＤグループ或いはストレージシステム）に、拡張後ボリューム容量分の新規ボリューム（一以上の論理領域）を確保し（Ｓ２５４）、再配置を行う（Ｓ２５５）。
【０１６２】
Ｓ２５３或いはＳ２５５の後、ボリューム再配置プログラム１３３は、対象ボリュームのボリューム種別を解除し（Ｓ２５６）、新規ボリュームに、解除したボリューム種別を設定する（Ｓ２５７）。そして、ボリューム再配置プログラム１３３は、対象ボリュームに対応した情報をボリューム拡張／再配置対応テーブル１４３から削除し（Ｓ２５８）、論理領域管理テーブル１３９、ボリューム管理テーブル１４１及びレプリケーション定義テーブル１４５を更新する（Ｓ２５９）。
【０１６３】
図２９は、ボリューム拡張プログラム１３５が行う処理の流れの一例を示す。
【０１６４】
ボリューム拡張プログラム１３５は、拡張対象ＬＵ−ＩＤに、指定された論理領域ＩＤ（追加対象論理領域ＩＤ）を割り当て（Ｓ２６１）、論理領域管理テーブル１３９及びボリューム管理テーブル１４１を更新する（Ｓ２６２）。
【０１６５】
図３０は、ボリューム移行プログラム１３７が行う処理の流れの一例を示す。
【０１６６】
ボリューム移行プログラム１３７は、再配置先（ＲＡＩＤグループ或いはストレージシステム）に、拡張後ボリューム容量分の新規ボリューム（未割り当ての論理領域の集合）を作成する（Ｓ２７１）。
【０１６７】
次に、ボリューム移行プログラム１３７は、対象ボリューム（再配置対象のボリューム）内のデータを新規ボリュームにコピーすることを、対象ボリュームと新規ボリュームがそれぞれ存在するストレージシステムに指示する（Ｓ２７２）。それにより、対象ボリューム内のデータが、新規ボリュームにコピーされる。
【０１６８】
その後、ボリューム移行プログラム１３７は、対象ボリュームのボリューム種別を解除し（Ｓ２７３）、解除したボリューム種別を、新規ボリュームに関連付ける（Ｓ２７４）。
【０１６９】
最後に、ボリューム移行プログラム１３７は、対象ボリューム内のデータを削除し、対象ボリュームに割り当てられていた論理領域の割り当てフラグを"０"に戻し、論理領域管理テーブル１３９、ボリューム管理テーブル１４１及びレプリケーション定義テーブル１４５を更新する（Ｓ２７５）。
【０１７０】
以上、上述した実施形態によれば、オリジナルボリュームの容量が拡張される場合には、そのオリジナルボリュームのボリュームカスケードに属する全てのレプリケーションボリュームが、レプリケーション定義テーブル１４５から特定され、特定された全てのレプリケーションボリュームが自動的に拡張される。これにより、管理者の負担を軽減することができる。
【０１７１】
また、上述した実施形態によれば、ボリュームの容量の拡張の際、ボリュームペアにおける下流のボリュームの容量が上流のボリュームの容量以上となる関係を維持した容量拡張が行われる。これにより、その関係が、ボリュームカスケード内の全ボリュームの容量拡張の際に破壊されることを防げるので、フラグメンテーションが生じるおそれを防ぐことができる。
【０１７２】
また、上述した実施形態によれば、上記関係を維持した容量拡張を行うと、所定のエリア（例えばＲＡＩＤグループ或いはストレージシステム）の容量上限を超えてしまうような場合には、ボリュームカスケード内の少なくとも一つのボリュームが、他のエリアに再配置される。この結果、なるべく、ボリュームカスケードの長さを維持することができる。
【０１７３】
また、上述した実施形態によれば、所定の場合、例えば、拡張／再配置ができないほどに記憶資源が足りなくなった場合には、それができるようになるようレプリケーションボリュームが解除される。これにより、冗長性は損なわれるものの、或る程度の冗長性を保障しつつ、ボリュームカスケードに属するボリュームの容量拡張を自動で行うことができる。
【０１７４】
以上、本発明の実施形態を説明したが、この実施形態は本発明の説明のための例示にすぎず、本発明の範囲をその実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
【０１７５】
例えば、論理ボリューム１５３としては、種々のボリュームを採用することができる。具体的には、例えば、論理ボリューム１５３は、仮想的な論理ボリュームであって、その論理ボリュームに対するアクセスに応じて、動的に、論理領域が割り当てられるタイプの論理ボリュームであっても良い。例えば、その論理ボリュームとして、特開２００３−１５９１５号公報に開示の、容量拡張されるボリュームを採用することができる。なお、そのようなタイプの論理ボリュームが採用される場合には、仮想的な容量と、その論理ボリュームに割り当てられている一以上の論理領域の容量の合計（実容量）とが、種々のテーブルに登録されても良い。また、拡張される容量は、仮想的な容量とし、ＲＡＩＤグループの容量上限との比較の対象は、仮想的な容量とすることができる。実容量は、例えば、仮想的な容量以下とされる。
【０１７６】
また、例えば、ボリューム拡張／対応関係テーブル１４３の各行によれば、実行前の情報群（ＬＵ−ＩＤなど）と実行後の情報群（ＬＵ−ＩＤなど）とを比較することにより、拡張か再配置かを判断することができるが、それに代えて、拡張か再配置かを表すコードが、各行に、付加されても良い。
【０１７７】
また、例えば、初めに容量拡張の対象とされるボリュームは、オリジナルボリュームに限らず、レプリケーションボリュームであっても良い。例えば、ボリュームカスケードにおけるいずれのボリュームに、容量拡張の指示をすることが可能であっても良い。
【図面の簡単な説明】
【０１７８】
【図１】図１は、本発明の一実施形態に係る計算機システムの構成例を示した図である。
【図２】図２は、ストレージシステム１５１の構成例を示す。
【図３】図３は、論理領域管理テーブル１３９の構成例を示す。
【図４】図４は、ボリューム管理テーブル１４１の構成例を示す。
【図５】図５は、レプリケーション定義テーブル１４５の構成例を示す。
【図６】図６は、拡張対象レプリケーションボリュームテーブル１４７の構成例を示す。
【図７】図７は、ボリューム拡張／再配置対応テーブル１４３の構成例を示す。
【図８】図８は、ボリューム容量拡張前のストレージシステム１５１Ａに存在するボリュームカスケードの構成例を示す。
【図９】図９は、図８において、0:01/Primary/10Gを２０Ｇに拡張する処理の一例の概要を示す。
【図１０】図１０は、レプリケーション解除処理の概要を示す。
【図１１】図１１Ａは、非同時変更方式での容量拡張の説明図である。図１１Ｂは、図１１Ａでの容量拡張の際の拡張対象レプリケーションボリュームテーブルを示す。
【図１２】図１２Ａは、同時変更方式での容量拡張の説明図である。図１２Ｂは、図１２Ａでの容量拡張の際の拡張対象レプリケーションボリュームテーブルを示す。
【図１３】図１３Ａは、同時変更方式の場合にオリジナルボリュームから順に容量拡張することの一例の説明図である。図１３Ｂは、他のストレージシステムに跨るボリュームカスケードに属するレプリケーションボリュームを優先的に残し、一つのストレージシステム内のボリュームカスケードに属するレプリケーションボリュームを優先的に解除することの一例を示す。
【図１４】図１４は、非同時変更方式に従う容量拡張が行われる場合の処理流れの一例を示す。
【図１５】図１５は、同時変更方式に従う容量拡張が行われる場合の処理流れの一例を示す。
【図１６】図１６は、レプリケーション解除が行われる場合の処理流れの一例を示す。
【図１７】図１７は、ユーザ設定プログラム１１７が行う処理の流れの一例を示す。
【図１８】図１８は、ストレージ情報収集プログラム１１９が行う処理の流れの一例を示す。
【図１９】図１９は、自動拡張プログラム１２０が行う処理の流れの一例を示す。
【図２０】図２０は、領域拡張プログラム１２１が行う処理の流れの一例を示す。
【図２１】図２１は、レプリケーション管理プログラム１２３が行う処理の流れの一例を示す。
【図２２】図２２は、第一のテーブル作成プログラム１２５Ａが行う処理の流れの一例を示す。
【図２３】図２３は、第二のテーブル作成プログラム１２５Ｂが行う処理の流れの一例を示す。
【図２４】図２４は、レプリケーション設定解除プログラム１３１が行う処理の流れの一例を示す。
【図２５】図２５は、非同時変更プログラム１２９が行う処理の流れの一例を示す。
【図２６】図２６は、同時変更プログラム１２７が行う処理の流れの一例を示す。
【図２７】図２７は、図２６のＳ２２２で行われる処理の流れの一例を示す。
【図２８】図２８は、ボリューム再配置プログラム１３３が行う処理の流れの一例を示す。
【図２９】図２９は、ボリューム拡張プログラム１３５が行う処理の流れの一例を示す。
【図３０】図３０は、ボリューム移行プログラム１３７が行う処理の流れの一例を示す。
【符号の説明】
【０１７９】
１０１…業務サーバ、１０５…ボリューム使用率監視プログラム、１１１…管理サーバ、１２０…自動拡張プログラム、１２１…領域拡張プログラム、１２３…レプリケーション管理プログラム、１２５Ａ…第一のテーブル作成プログラム、１２５Ｂ…第二のテーブル作成プログラム、１２７…同時変更プログラム、１２９…非同時変更プログラム、１３１…レプリケーション設定解除プログラム、１３３…ボリューム再配置プログラム、１３５…ボリューム拡張プログラム、１３７…ボリューム移行プログラム、１３９…論理領域管理テーブル、１４１…ボリューム管理テーブル、１４３…ボリューム拡張／再配置対応テーブル、１４５…レプリケーション定義テーブル、１４７…拡張対象レプリケーションボリュームテーブル、１５１…ストレージシステム、１５３…論理ボリューム
【図１】
2007323309.tif 000003
【図２】
2007323309.tif 000004
【図３】
2007323309.tif 000005
【図４】
2007323309.tif 000006
【図５】
2007323309.tif 000007
【図６】
2007323309.tif 000008
【図７】
2007323309.tif 000009
【図８】
2007323309.tif 000010
【図９】
2007323309.tif 000011
【図１０】
2007323309.tif 000012
【図１１】
2007323309.tif 000013
【図１２】
2007323309.tif 000014
【図１３】
2007323309.tif 000015
【図１４】
2007323309.tif 000016
【図１５】
2007323309.tif 000017
【図１６】
2007323309.tif 000018
【図１７】
2007323309.tif 000019
【図１８】
2007323309.tif 000020
【図１９】
2007323309.tif 000021
【図２０】
2007323309.tif 000022
【図２１】
2007323309.tif 000023
【図２２】
2007323309.tif 000024
【図２３】
2007323309.tif 000025
【図２４】
2007323309.tif 000026
【図２５】
2007323309.tif 000027
【図２６】
2007323309.tif 000028
【図２７】
2007323309.tif 000029
【図２８】
2007323309.tif 000030
【図２９】
2007323309.tif 000031
【図３０】
2007323309.tif 000032