(57)【特許請求の範囲】
【請求項１】
複数の記憶媒体と、
前記記憶媒体のうちデータを格納している第１記憶媒体が属する第１グループ及び前記記憶媒体のうちデータを格納していない第２記憶媒体が属する第２グループにより前記記憶媒体を管理するグループ管理部と、
更新対象のデータが格納されている前記第１記憶媒体の領域を無効領域とし、該データの更新データを前記第１記憶媒体に格納するデータ格納部と、
前記第１グループに含まれる前記第１記憶媒体の組であって、且つ、前記無効領域の合計が１つの前記記憶媒体の容量以上の大きさとなる前記第１記憶媒体の組があるか否かを判定する判定部と、
前記判定部により前記第１グループに前記無効領域の合計が１つの前記記憶媒体の容量以上の大きさとなる前記第１記憶媒体の組があると判定された場合、前記第２記憶媒体に、前記第１記憶媒体の組の前記無効領域以外に格納されているデータを移行するデータ移行部と、
前記データ移行部による移行が完了した前記第１記憶媒体の組を前記第１グループから前記第２グループに移動する移動部と
を備えたことを特徴とするストレージ装置。
【請求項２】
前記記憶媒体と比べて高速に読み書き可能な記憶装置と、
前記記憶装置に対してデータの読み書きを行うリードライト部をさらに備え、
前記データ格納部は、前記リードライト部により前記記憶装置に格納されたデータを前記第１記憶媒体に格納する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記リードライト部は、１度に他の情報処理装置から取得したデータを単位データとして前記記憶装置に格納し、
前記データ格納部は、前記単位データ毎に前記第１記憶媒体に格納する
ことを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記第１グループに属する前記第１記憶媒体のうち、前記無効領域以外に格納されているデータの割合が予め決められた閾値以下になった移行対象記憶媒体が有る場合、前記移動部は、前記第２記憶媒体が属するグループを前記第２グループから前記第１グループに移動し、
前記データ移行部は、前記移行対象記憶媒体の前記無効領域以外に格納されているデータを前記第２記憶媒体に移行する移行処理を実行する
ことを特徴とする請求項１〜３のいずれか一つに記載のストレージ装置。
【請求項５】
前記第１グループに属する前記第１記憶媒体のうち、前記無効領域以外に格納されているデータの割合が予め決められた閾値以下になった移行対象記憶媒体が有ることにより、前記移動部により前記第２記憶媒体が属するグループが前記第２グループから前記第１グループに移動され、前記データ移行部により該第２記憶媒体に前記第１記憶媒体の前記無効領域以外に格納されているデータが移行された場合に、前記判定部は、前記第１グループに前記無効領域の合計が１つの前記記憶媒体の容量以上の大きさとなる前記第１記憶媒体の組があるか否かを判定することを特徴とする請求項４に記載のストレージ装置。
【請求項６】
前記判定部は、前記第１記憶媒体に格納されているデータが削除され無効領域の大きさが変化した場合に、前記第１グループに前記無効領域の合計が１つの前記記憶媒体の容量以上の大きさとなる前記第１記憶媒体の組があるか否かを判定することを特徴とする請求項１〜４のいずれか一つに記載のストレージ装置。
【請求項７】
複数の記憶媒体のうちデータを格納している第１記憶媒体が属する前記記憶媒体のグループを第１グループとし、
前記記憶媒体のうちデータを格納していない第２記憶媒体が属する前記記憶媒体のグループを第２グループとし、
前記第１記憶媒体にデータを格納し、
更新対象のデータが格納されている前記第１記憶媒体の領域を無効領域とし、該データの更新データを前記第１記憶媒体に格納し、
前記第１グループに含まれる前記第１記憶媒体の組であって、且つ、前記無効領域の合計が１つの前記記憶媒体の容量以上の大きさとなる前記第１記憶媒体の組があるか否かを判定し、
前記第１グループに前記無効領域の合計が１つの前記記憶媒体の容量以上の大きさとなる前記第１記憶媒体の組がある場合、前記第２記憶媒体に、前記第１記憶媒体の組の前記無効領域以外に格納されているデータを移行し、
移行が完了した前記第１記憶媒体の組を前記第１グループから前記第２グループに移動する
処理をコンピュータに実行させることを特徴とするストレージ装置制御プログラム。
【請求項８】
複数の記憶媒体のうちデータを格納している第１記憶媒体が属する前記記憶媒体のグループを第１グループとし、
前記記憶媒体のうちデータを格納していない第２記憶媒体が属する前記記憶媒体のグループを第２グループとし、
前記第１記憶媒体にデータを格納し、
更新対象のデータが格納されている前記第１記憶媒体の領域を無効領域とし、該データの更新データを前記第１記憶媒体に格納し、
前記第１グループに含まれる前記第１記憶媒体の組であって、且つ、前記無効領域の合計が１つの前記記憶媒体の容量以上の大きさとなる前記第１記憶媒体の組があるか否かを判定し、
前記第１グループに前記無効領域の合計が１つの前記記憶媒体の容量以上の大きさとなる前記第１記憶媒体の組がある場合、前記第２記憶媒体に、前記第１記憶媒体の組の前記無効領域以外に格納されているデータを移行し、
移行が完了した前記第１記憶媒体の組を前記第１グループから前記第２グループに移動する
処理をコンピュータに実行させることを特徴とするストレージ装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法に関する。
【背景技術】
【０００２】
磁気テープを用いた記録媒体を複数備えたテープライブラリ装置（ＬＩＢ：Library）は、サーバなどのホストに対するデータバックアップ用など、大容量の記憶が必要な用途に広く利用されている。磁気テープは、低コストでかつ記憶容量が大きいという利点がある反面、ＨＤＤ（Hard  Disk  Drive）などと比較してデータアクセス速度が遅い。そこで、近年では、複数のＨＤＤを備えたディスクアレイ装置をキャッシュ機構（一次ストレージ）として用い、より大容量のテープライブラリ装置をバックエンド（二次ストレージ）に配置した階層型ストレージシステムが利用されている。この階層型ストレージシステムは、仮想テープライブラリと呼ばれる場合がある。また、ディスクアレイ装置は、ＴＶＣ（Tape  Volume  Cache）と呼ばれる場合がある。また、テープ媒体は、物理ボリューム（ＰＶ：Physical  Volume）と呼ばれる場合がある。
【０００３】
このような階層型ストレージシステムは、ディスクアレイ装置やテープライブラリ装置を制御するための階層制御サーバを有している。例えば、ホストからデータの読出要求又は書込要求があった場合、階層制御サーバは、ホストに対して従来のテープライブラリ装置として振る舞い、内部ではディスクアレイ装置を利用してデータの読み出し及び書込みを行う。このとき、階層制御サーバは、１台のホストからの取得した一まとまりのデータを１つの論理ボリューム（ＬＶ：Logical  Volume）としてディスクアレイ装置に対する読み出し及び書き込みを行う。その後、階層制御サーバは、ホストを介さずにバックグラウンドでディスクアレイ装置に書き込まれたデータをテープ媒体に保存する。具体的には、階層制御サーバは、ディスクアレイ装置に格納されている論理ボリュームを、物理ボリュームすなわちテープ媒体に保存する。この、ディスクアレイ装置内の論理ボリュームを物理ボリュームに格納する処理を、「マイグレーション（Migration）」という場合がある。
【０００４】
階層化ストレージシステムは、ディスクアレイ装置に格納された論理ボリュームによって容量が圧迫されることを防ぐために、更新が行われず、且つ、マイグレーション済みの大容量の論理ボリュームを消去する。
【０００５】
さらに、階層化ストレージシステムには、既に論理ボリュームが格納されている使用済みの物理ボリュームをまとめて、ＳｔａｃｋｅｄＰＶＧ（Physical  Volume  Group）というグループを生成して管理する技術がある。さらに、階層化ストレージシステムには、何もデータが格納されていない未使用の物理ボリュームをまとめて、ＳｃｒａｔｃｈＰＶＧというグループを生成して管理する技術がある。
【０００６】
ここで、マイグレーションにおける階層化ストレージシステムの動作を詳細に説明する。ホストがディスクアレイ装置に対して読み出し及び書き込みの対象としている論理ボリュームがディスクアレイ装置に既に格納されている状態は、オンキャッシュ（On  Cache）の論理ボリュームと呼ばれる場合がある。また、ホストがディスクアレイ装置に対して読み出し及び書き込みの対象としている論理ボリュームがディスクアレイ装置上に格納されていない状態は、キャッシュミス（Cache  Miss）と呼ばれる場合がある。ホストが読み出し及び書き込みを行う論理ボリュームがオンキャッシュの場合、階層制御サーバは、ディスクアレイ装置から論理ボリュームを読み出し、ホストに応答する。これに対して、ホストが読み出し及び書き込みを行う論理ボリュームがキャッシュミスの場合、階層制御サーバは、その論理ボリュームがマイグレーションされた物理ボリュームをテープライブラリ装置のテープドライブに挿入し、その論理ボリュームを読み込む。そして、階層制御サーバは、読み込んだ論理ボリュームをディスクアレイ装置へ移した後、ホストに応答する。
【０００７】
さらに、階層化ストレージシステムでは、同じデータであるが新しい論理ボリュームがマイグレーションにより物理ボリュームに格納される論理ボリュームの更新が行われる。この点、世代管理などの煩雑な処理を省くため、更新前の古い論理ボリュームを無効な論理ボリュームとして、その領域を無効領域とする運用が行われる場合がある。この場合、論理ボリュームの更新のたびに物理ボリューム内の無効領域が増えていき、物理ボリューム内の使用可能な領域が減少していく。そして、物理ボリュームに論理ボリュームが格納できなくなった場合、新たに、未使用の物理ボリュームが使用される。例えば、ＳｔａｃｋｅｄＰＶＧ及びＳｃｒａｔｃｈＰＶＧを用いている場合、ＳｔａｃｋｅｄＰＶＧに論理ボリュームが格納可能な物理ボリュームが無い場合、ＳｃｒａｔｃｈＰＶＧから使用する分の物理ボリュームがＳｔａｃｋｅｄＰＶＧに移動される。このため、最終的には未使用の物理ボリュームの数も減ってしまう。
【０００８】
そこで、未使用の物理ボリュームの数を増やすための従来技術として次のようなリオーガニゼーションと呼ばれる技術がある。リオーガニゼーションでは、テープライブラリ装置の未使用の物理ボリュームの残数が少なくなった場合、未使用の物理ボリュームの数を増やすため、使用済みの物理ボリュームから未使用の物理ボリュームに論理ボリュームが移動される。そして、格納していた論理ボリュームを移動させた使用済みの物理ボリュームは、未使用の物理ボリュームとなる。ＳｔａｃｋｅｄＰＶＧ及びＳｃｒａｔｃｈＰＶＧを用いている場合、リオーガニゼーションにより生成された未使用の物理ボリュームはＳｃｒａｔｃｈＰＶＧに戻される。
【０００９】
さらに、リオーガニゼーションの技術として、格納されているデータに関するオフセットや長さなどの情報から無効データの領域を求め、データの移動を行う従来技術がある。また、光ライブラリ装置において、リオーガニゼーションを行う従来技術がある。さらに、データを移行する際に、移行元のテープに記憶されている無効データに対応する有効データを最も多く記憶しているテープを移行先のテープとして選択する従来技術がある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特表２０１０−５２２９１４号公報
【特許文献２】特開２００２−２９７４３１号公報
【特許文献３】特開２００８−１４６４０８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の階層化ストレージシステムでは、リオーガニゼーションを行う際に未使用の物理ボリュームの余裕が無いことが考えられ、ＳｃｒａｔｃｈＰＶＧから十分な物理ボリュームを確保することが困難となるおそれがある。その場合、リオーガニゼーション処理を実行することが困難になる。その結果、ディスクアレイ装置に格納されている論理ボリュームの物理ボリュームへのマイグレーションが失敗し、仮想テープ装置内でデータの冗長性を保つことが困難になる。
【００１２】
また、格納データに関する情報から無効データの領域を求める従来技術を用いた場合、リオーガニゼーションの最適化は実現できるが、未使用の物理ボリュームの枯渇を防止することは困難である。これは、光ライブラリ装置におけるリオーガニゼーションの従来技術や、移行元の無効データとの関係から移行先を選択する従来技術を用いても、同様である。
【００１３】
開示の技術は、上記に鑑みてなされたものであって、未使用の物理ボリュームの枯渇を防止するストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本願の開示するストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法は、一つの態様において、複数の記憶媒体を有する。そして、グループ管理部は、前記記憶媒体のうちデータを格納している第１記憶媒体が属する第１グループ及び前記記憶媒体のうちデータを格納していない第２記憶媒体が属する第２グループにより前記記憶媒体を管理する。データ格納部は、更新対象のデータが格納されている前記第１記憶媒体の領域を無効領域とし、該データの更新データを前記第１記憶媒体に格納する。判定部は、前記第１グループに含まれる前記第１記憶媒体の組であって、且つ、前記無効領域の合計が１つの前記記憶媒体の容量以上の大きさとなる前記第１記憶媒体の組があるか否かを判定する。データ移行部は、前記判定部により前記第１グループに前記無効領域の合計が１つの前記記憶媒体の容量以上の大きさとなる前記第１記憶媒体の組があると判定された場合、前記第２記憶媒体に、前記第１記憶媒体の組の前記無効領域以外に格納されているデータを移行する。移動部は、前記データ移行部による移行が完了した前記第１記憶媒体の組を前記第１グループから前記第２グループに移動する。
【発明の効果】
【００１５】
本願の開示するストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法の一つの態様によれば、未使用の物理ボリュームの枯渇を防止することができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例に係るストレージシステムの構成図である。
【図２】図２は、物理ボリュームのフォーマットを表す概念図である。
【図３】図３は、階層制御サーバのブロック図である。
【図４】図４は、ＳｔａｃｋｅｄＰＶＧの一例の図である。
【図５】図５は、ＳｔａｃｋｅｄＰＶＧとＳｃｒａｔｃｈＰＶＧとの関連付けを説明するための図である。
【図６】図６は、ＰＶＧ管理テーブルの一例の図である。
【図７】図７は、ＰＶ管理テーブルの一例の図である。
【図８】図８は、マイグレーションの処理の概念図である。
【図９】図９は、論理ボリュームの更新時のマイグレーションの処理の概念図である。
【図１０】図１０は、リオーガニゼーションの処理の概念図である。
【図１１】図１１は、マイグレーション実行時のＰＶ管理テーブルの遷移を表す一例の図である。
【図１２】図１２は、論理ボリュームの削除時のＰＶ管理テーブルの遷移を表す一例の図である。
【図１３】図１３は、先行リオーガニゼーション実行時のＰＶ管理テーブルの遷移を表す一例の図である。
【図１４】図１４は、先行リオーガニゼーション前の物理ボリューム及び論理ボリュームの状態を表す図である。
【図１５】図１５は、物理ボリューム確保時の物理ボリューム及び論理ボリュームの状態を表す図である。
【図１６】図１６は、先行リオーガニゼーション実行後の物理ボリューム及び論理ボリュームの状態を表す図である。
【図１７】図１７は、物理ボリュームをＳｃｒａｔｃｈＰＶＧに戻した後の物理ボリューム及び論理ボリュームの状態を表す図である。
【図１８】図１８は、図１４〜１７で示した先行リオーガニゼーションを行った場合のＰＶ管理テーブルの遷移を表す図である。
【図１９】図１９は、実施例に係る仮想テープライブラリによるマイグレーションの実行の決定処理のフローチャートである。
【図２０】図２０は、実施例に係る仮想テープライブラリによる削除処理のフローチャートである。
【図２１】図２１は、実施例に係る仮想テープライブラリによる先行リオーガニゼーションの処理のフローチャートである。
【図２２】図２２は、実施例に係る仮想テープライブラリによる通常のリオーガニゼーション及びマイグレーションの処理のフローチャートである。
【図２３】図２３は、階層管理サーバのハードウェア構成図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示するストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法が限定されるものではない。
【実施例】
【００１８】
図１は、実施例に係るストレージシステムの構成図である。本実施例に係るストレージシステムは、図１に示すように、仮想テープライブラリ１が、ホスト２に接続されている。ホスト２は、サーバなどの情報処理装置である。
【００１９】
仮想テープライブラリ１は、階層制御サーバ１０、テープライブラリ装置２０及びディスクアレイ装置３０を有している。具体的には、階層制御サーバ１０が、ホスト２に接続している。また、階層制御サーバ１０は、テープライブラリ装置２０及びディスクアレイ装置３０に接続している。
【００２０】
ディスクアレイ装置３０は、テープなどの大容量記憶装置に比べて読み書きの速度が高速である記憶媒体を有している。例えば、ディスクアレイ装置３０は、ハードディスクなどを有している。そして、ディスクアレイ装置３０は、自己が有する記憶媒体に論理ボリューム（ＬＶ：Logical  Volume）３１を格納する。
【００２１】
テープライブラリ装置２０は、ロボット２１、物理ボリューム（ＰＶ：Physical  Volume）２２及びテープドライブ２３を有している。物理ボリューム２２は、大容量記憶媒体であり、例えば、磁気テープである。テープライブラリ装置２０は、複数の物理ボリューム２２を有している。
【００２２】
ロボット２１は、物理ボリューム２２の搬送を行う。例えば、階層制御サーバ１０からの書き込み又は読み出しの指示を受けて、指定された物理ボリューム２２をテープドライブ２３へ挿入する。その後、テープドライブ２３による物理ボリューム２２への書き込み又は読出しの処理が終わると、テープドライブ２３は、物理ボリューム２２をテープドライブ２３から取り出し、格納場所に戻す。
【００２３】
テープドライブ２３は、階層制御サーバ１０からの指示にしたがい、挿入された物理ボリューム２２に対してデータの書き込み又は読み出しを行う。
【００２４】
ここで、物理ボリューム２２のフォーマットについて説明する。図２は、物理ボリュームのフォーマットを表す概念図である。ここでは、論理ボリューム３１Ａ及び３１Ｂが、物理ボリューム２２に格納される場合で説明する。先に論理ボリューム３１Ａが格納され、後から論理ボリューム３１Ｂが格納されたものとする。
【００２５】
論理ボリューム３１Ａは、論理ボリュームヘッダ（ＬＶ−ＨＤＲ（Header））、ＶＯＬ（Volume）１、ＨＤＲ１、ＨＤＲ２、ＤＡＴＡ＃Ａ、ＥＯＦ（End  Of  File）１、ＥＯＦ（End  Of  File）２及びＥＯＶ（End  Of  Volume）を有している。論理ボリューム３１Ｂも、ＤＡＴＡ＃ＡがＤＡＴＡ＃Ｂに変わり、後の情報は同様のフォーマットを有している。ＬＶ−ＨＤＲのブロックは、論理ボリューム３１の更新回数を表す世代、論理ボリューム名、論理ボリュームグループ名、論理ボリュームサイズ及び論理ボリューム作成日が格納されるブロックである。ＶＯＬ１のブロックは、ボリューム名、所有者などの情報が格納される８０バイトのブロックである。ＨＤＲ１のブロックは、ファイル名、更新日などが格納される８０バイトのブロックである。ＨＤＲ２のブロックは、レコード形式、ブロック長などが格納される８０バイトのブロックである。Ｄａｔａ＃Ａ及び＃Ｂのブロックは、ユーザデータが格納される可変長バイトのブロックである。ＥＯＦ１のブロックは、ファイル名、更新日などが格納される８０バイトのブロックである。ＥＯＶのブロックは、ボリュームの最後を示すマークブロックである。
【００２６】
そして、物理ボリューム２２の先頭には、ＰＶ−ＨＤＲが格納される。ＰＶ−ＨＤＲには、標準的識別子、物理ボリューム名及び物理ボリューム２２が属するグループ名が格納される。さらに、ＰＶ−ＨＤＲには、仮想テープライブラリ装置の識別子及び物理ボリューム２２のステータスが格納される。物理ボリューム２２のグループについては後で詳細に説明する。ＰＶ−ＨＤＲに続いて、矢印Ｐ１で示すように、最初に格納される論理ボリューム３１ＡのＬＶ−ＨＤＲが格納される。続いて、矢印Ｐ２で示すように、論理ボリューム３１ＡのＶＯＬ１、ＨＤＲ１、ＨＤＲ２、ＤＡＴＡ＃Ａ、ＥＯＦ１、ＥＯＦ２及びＥＯＶが、１つの論理ボリュームのデータであるＬＶ＃Ａとして格納される。続いて、矢印Ｐ３で示すように、２番目に格納される論理ボリューム３１ＢのＬＶ−ＨＤＲが格納される。続いて、矢印Ｐ４で示すように、論理ボリューム２１ＢのＶＯＬ１、ＨＤＲ１、ＨＤＲ２、ＤＡＴＡ＃Ｂ、ＥＯＦ１、ＥＯＦ２及びＥＯＶが１つの論理ボリュームのデータであるＬＶ＃Ｂとして格納される。最後に、ＰＶ−ＤＩＲ（Directory）が物理ボリューム２２に格納される。ＰＶ−ＤＩＲには、論理ボリュームのリストや末尾を示す情報などが格納される。このように、論理ボリューム３１は、書き込まれた順番に順次後ろにつなげるように物理ボリューム２２に格納されていく。
【００２７】
図１に戻って説明を続ける。階層制御サーバ１０は、ホスト２からデータの書き込みの指示を受ける。データの書き込みの指示を受けると、階層制御サーバ１０は、指定されたデータ群を１つの論理ボリューム３１としてディスクアレイ装置３０に書き込む。そして、階層制御サーバ１０は、応答をホスト２に返す。その後、階層制御サーバ１０は、マイグレーションを行う。具体的には、階層制御サーバ１０は、ディスクアレイ装置３０に格納した論理ボリューム３１を読み出し、読み出したデータの物理ボリューム２２への書き込みをテープライブラリ装置２０に指示し、物理ボリューム２２にデータを格納させる。
【００２８】
また、データの読み出しの指示を受けると、階層制御サーバ１０は、読み出すデータを格納した論理ボリューム３１がディスクアレイ装置３０にあるか否かを判定する。読み出すデータを格納した論理ボリューム３１がディスクアレイ装置３０にある場合、階層制御サーバ１０は、その論理ボリューム３１をディスクアレイ装置３０から読み出す。そして、階層制御サーバ１０は、読み出したデータをホスト２に返す。
【００２９】
読み出すデータを格納した論理ボリューム３１がディスクアレイ装置３０にない場合、階層制御サーバ１０は、その論理ボリューム３１の読み出しをテープライブラリ装置２０に指示し、物理ボリューム２２からその論理ボリューム３１を読み出させ、読み出させた論理ボリューム３１を取得する。その後、階層制御サーバ１０は、取得した論理ボリューム３１に格納されているデータをホスト２に返し、さらに取得した論理ボリューム３１をディスクアレイ装置３０に格納する。
【００３０】
また、階層制御サーバ１０は、ホスト２からのデータの削除指示を受けて、ディスクアレイ装置３０や物理ボリューム２２に格納された論理ボリューム３１の削除を行う。
【００３１】
さらに、階層制御サーバ１０は、物理ボリューム２２の無効な論理ボリューム３１が格納された無効領域が増えた場合、有効な論理ボリューム３１が格納された有効領域を他の物理ボリューム２２に移してまとめ、使用領域を増やすリオーガニゼーションを行う。ここで、論理ボリューム３１が有効であるとは、その論理ボリューム３１に対する更新された論理ボリューム３１が格納されていない又はその論理ボリューム３１が削除されていない場合である。
【００３２】
また、階層制御サーバ１０は、リオーガニゼーションとして、無効領域と未使用領域の合計が１つの物理ボリューム２２の容量以上になった場合にリオーガニゼーションを行う。ここでは、無効領域と未使用領域の合計が１つの物理ボリューム２２の容量以上になった場合に実施するリオーガニゼーションを「先行リオーガニゼーション」という。また、ここでは、先行リオーガニゼーション以外のリオーガニゼーションを、「通常のリオーガニゼーション」という場合がある。
【００３３】
さらに、図３を参照して、階層制御サーバ１０の詳細について説明する。図３は、階層制御サーバのブロック図である。図３に示すように、階層制御サーバ１０は、グループ管理部１０１、情報格納部１０２、リードライト部１０３、データ移行処理部１０４及び判定部１０５を有する。
【００３４】
リードライト部１０３は、データの書込命令又は読出命令をホスト２から受信する。書込命令の場合、リードライト部１０３は、ディスクアレイ装置３０に論理ボリューム３１としてデータを格納する。ここで、リードライト部１０３は、ホスト２から論理ボリュームグループの作成を指示された場合、ディスクアレイ装置３０に論理ボリュームグループを生成する。そして、リードライト部１０３は、書き込み命令においてデータの書き込み先として論理ボリュームの指定がある場合、ディスクアレイ装置３０において指定された論理ボリュームグループに属するように論理ボリューム３１を格納する。
【００３５】
その後、リードライト部１０３は、論理ボリューム３１の格納をデータ移行処理部１０４に通知する。
【００３６】
さらに、リードライト部１０３は、論理ボリューム３１の削除命令をホスト２から受ける。この場合、リードライト部１０３は、指定された論理ボリューム３１をディスクアレイ装置３０から削除する。さらに、リードライト部１０３は、論理ボリューム３１の削除をデータ移行処理部１０４に指示する。
【００３７】
グループ管理部１０１は、グループ生成部１１１及びボリューム管理部１１２を有する。
【００３８】
グループ生成部１１１は、テープライブラリ装置２０が有する使用済みの物理ボリューム２２をまとめてグループを作成し、未使用の物理ボリューム２２をまとめてグループを作成する。ここで、使用済みの物理ボリューム２２とは、有効な論理ボリューム３１が既に格納されている物理ボリュームである。また、未使用の物理ボリューム２２とは、有効な論理ボリューム３１が１つも格納されていない物理ボリュームである。以下では、使用済みの物理ボリューム２２のグループを、「ＳｔａｃｋｅｄＰＶＧ（Physical  Volume  Group）」という。また、未使用の物理ボリューム２２のグループを、「ＳｃｒａｔｃｈＰＶＧ」という。
【００３９】
グループ生成部１１１は、ＳｔａｃｋｅｄＰＶＧを１つ又は複数作成する。また、グループ生成部１１１は、ＳｃｒａｔｃｈＰＶＧを１つ又は複数作成する。
【００４０】
図４は、ＳｔａｃｋｅｄＰＶＧの一例の図である。例えば、ディスクアレイ装置３０は、論理ボリュームグループ（ＬＶＧ：Logical  Volume  Group）３０１〜３０３を含む論理ボリュームグループを格納する。各論理ボリュームグループ３０１〜３０３は、複数の論理ボリューム３１を含む。
【００４１】
グループ生成部１１１は、ＳｔａｃｋｅｄＰＶＧ２１１〜２１３を含むＳｔａｃｋｅｄＰＶＧを生成する。各ＳｔａｃｋｅｄＰＶＧ２１１〜２１３は、以下では、ＳｔａｃｋｅｄＰＶＧのそれぞれを区別しない場合、「ＳｔａｃｋｅｄＰＶＧ２１０」という。１つのＳｔａｃｋｅｄＰＶＧ２１０には、１つ以上の物理ボリューム２２が属している。そして、グループ生成部１１１は、論理ボリュームグループ３０１〜３０３に１つ以上のＳｔａｃｋｅｄＰＶＧ２１０に関連付ける。図４では、一点鎖線により論理ボリュームグループ３０１〜３０３とＳｔａｃｋｅｄＰＶＧ２１１〜２１３の関連付けを表している。グループ生成部１１１は、論理ボリュームグループ３０１にＳｔａｃｋｅｄＰＶＧ２１１を関連付ける。また、グループ生成部１１１は、論理ボリュームグループ３０２にＳｔａｃｋｅｄＰＶＧ２１２及び２１３を関連付ける。また、グループ生成部１１１は、論理ボリュームグループ３０３にＳｔａｃｋｅｄＰＶＧ２１３を関連付ける。このように関連付けた論理ボリュームグループとＳｔａｃｋｅｄＰＶＧとの間で、論理ボリューム３１を物理ボリューム２２へ格納する処理や物理ボリューム２２に格納された論理ボリューム３１を読み出してディスクアレイ装置３０内に格納する処理が行われる。
【００４２】
さらに、グループ生成部１１１は、生成したＳｃｒａｔｃｈＰＶＧに１つ又は複数のＳｔａｃｋｅｄＰＶＧ２１０を関連付ける。例えば、図５に示すように、グループ生成部１１１は、ＳｃｒａｔｃｈＰＶＧ２２１及び２２２をＳｔａｃｋｅｄＰＶＧ２１１〜２１３を関連付ける。図５は、ＳｔａｃｋｅｄＰＶＧとＳｃｒａｔｃｈＰＶＧとの関連付けを説明するための図である。以下では、ＳｃｒａｔｃｈＰＶＧのそれぞれを区別しない場合、「ＳｃｒａｔｃｈＰＶＧ２２０」という。
【００４３】
以下で説明するように、各ＳｔａｃｋｅｄＰＶＧ２１０は、関連付けられたＳｃｒａｔｃｈＰＶＧ２２０に属する物理ボリューム２２を利用することができる。すなわち、ＳｔａｃｋｅｄＰＶＧ２１０からの物理ボリューム２２の要求に対して、関連付けらえたＳｃｒａｔｃｈＰＶＧ２２０が、物理ボリューム２２を提供することができる。このように１つのＳｃｒａｔｃｈＰＶＧ２２０に対し、複数のＳｔａｃｋｅｄＰＶＧ２１０を関連付けることで、物理ボリューム２２を効率よく運用することができる。
【００４４】
グループ生成部１１１は、ＳｔａｃｋｅｄＰＶＧ２１０の情報、ＳｃｒａｔｃｈＰＶＧ２２０の情報及びその関連付けの情報を図６に示すようなＰＶＧ管理テーブル１２１を用いて管理する。図６は、ＰＶＧ管理テーブルの一例の図である。図６に示すように、グループ生成部１１１は、ＰＶＧ管理テーブル１２１に、各物理ボリュームグループ（ＰＶＧ）の識別子に対応させて、関連付けられたＳｃｒａｔｃｈＰＶＧ２２０の情報を登録する。さらに、グループ生成部１１１は、各物理ボリュームグループに格納されているテープライブラリ装置２０の情報及びその物理ボリュームグループに属する物理ボリューム２２の数をＰＶＧ管理テーブル１２１に登録する。
【００４５】
さらに、グループ生成部１１１は、ＰＶＧ管理テーブル１２１に、ＳｏｆｔＭｉｎｉｍｕｍの閾値、ＨａｒｄＭｉｎｉｍｕｍの閾値、ＡｂｓｏｌｕｔｅＭｉｎｉｍｕｍの閾値及び有効論理ボリューム（ＬＶ）基準率を登録する。ここで、ＳｏｆｔＭｉｍｉｍｕｍ、ＨａｒｄＭｉｎｉｍｕｍ及びＡｂｓｏｌｕｔｅＭｉｎｉｍｕｍとは、管理者から指定された各物理ボリュームグループに対する通常のリオーガニゼーション処理の実行を開始する条件である。ＳｏｆｔＭｉｎｉｍｕｍとは、使用可能な物理ボリューム２２が所定の閾値未満となり、且つ、有効な論理ボリューム３１の割合が有効な論理ボリュームの基準率を超えた場合である。また、ＨａｒｄＭｉｎｉｍｕｍとは、使用可能な物理ボリューム２２がＳｏｆｔＭｉｎｉｍｕｍの閾値よりも小さい所定の閾値未満となった場合である。ＡｂｓｏｌｕｔｅＭｉｎｉｍｕｍとは、使用可能な物理ボリューム２２がＨａｒｄＭｉｎｉｍｕｍの閾値よりも小さい所定の閾値未満となった場合である。例えば、ＡｂｓｏｌｕｔｅＭｉｎｉｍｕｍの閾値は、その閾値以下であればマイグレーションを実行するための物理ボリューム２２が無いと判断できる値に設定される。
【００４６】
そして、グループ生成部１１１は、生成したＰＶＧ管理テーブル１２１を情報格納部１０２に格納する。
【００４７】
ボリューム管理部１１２は、各物理ボリューム２２に格納されている論理ボリューム３１を管理する。具体的には、ボリューム管理部１１２は、図７に示すＰＶ管理テーブル１２２を用いて管理を行う。図７は、ＰＶ管理テーブルの一例の図である。
【００４８】
ボリューム管理部１１２は、各物理ボリューム２２の格納先のテープライブラリ装置２０、所属物理ボリュームグループの情報、使用状態、格納している論理ボリュームの数、有効な論理ボリュームの数、有効な論理ボリュームの割合である有効ＬＶ率をＰＶ管理テーブル１２２に登録する。使用状態は、物理ボリューム２２が未使用であるか、使用中であるか、書き込み中であるか、読み出し中であるか、媒体異常であるか、アクセス不可であるかなどを表す。アクセス不可や媒体異常の場合には、その物理ボリューム２２は使用できない。また、書き込み中や読み出し中の物理ボリューム２２は、使用中の１形態である。
【００４９】
ボリューム管理部１１２は、物理ボリューム２２への書き込みをデータ移行処理部１０４が開始すると、ＰＶ管理テーブル１２２における書き込み先の物理ボリューム２２の状態を書き込み中に変更する。データ移行処理部１０４による書き込み完了後、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における書き込み先の物理ボリューム２２の状態を使用中に変更する。
【００５０】
また、ボリューム管理部１１２は、データ移行処理部１０４が物理ボリューム２２から読み出しを開始すると、ＰＶ管理テーブル１２２における読み出し元の物理ボリューム２２の状態を読み出し中に変更する。データ移行処理部１０４による読出し終了後、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における読み出し元の物理ボリューム２２の状態を使用中に変更する。
【００５１】
また、ボリューム管理部１１２は、データ移行処理部１０４のデータ管理部１４１により論理ボリューム３１の削除が行われた場合、削除を行った物理ボリューム２２及び論理ボリューム３１の情報をデータ管理部１４１から取得する。そして、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における論理ボリューム３１の削除が行われた物理ボリューム２２が格納する論理ボリューム３１の数、有効な論理ボリューム３１の数及び有効な論理ボリューム３１の割合を更新する。
【００５２】
次に、ボリューム管理部１１２は、削除により有効な論理ボリューム３１を有さなくなった物理ボリューム２２が有る場合、ＰＶ管理テーブル１２２からその物理ボリューム２２を特定する。そして、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における特定した物理ボリューム２２の所属先をＳｔａｃｋｅｄＰＶＧ２１０からＳｃｒａｔｃｈＰＶＧ２２０へ変更する。これにより、ボリューム管理部１１２は、特定した物理ボリューム２２をＳｔａｃｋｅｄＰＶＧ２１０から特定したＳｃｒａｔｃｈＰＶＧ２２０へ移動する。
【００５３】
また、ボリューム管理部１１２は、マイグレーションの実行が確定した場合又は論理ボリューム３１の削除が行われた場合、確保する物理ボリューム２２の個数（Ｐｎ）分の物理ボリューム２２の確保の指示をリオーガニゼーション処理部１４２から受ける。そして、ボリューム管理部１１２は、ＰＶ管理テーブル１２２からＳｃｒａｔｃｈＰＶＧ２２０に属するＰｎ個の物理ボリューム２２を選択する。次に、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における選択した物理ボリューム２２の所属先をＳｃｒａｔｃｈＰＶＧ２２０からＳｔａｃｋｅｄＰＶＧ２１０へ変更する。これにより、ボリューム管理部１１２は、選択した物理ボリューム２２をＳｃｒａｔｃｈＰＶＧ２２０からＳｔａｃｋｅｄＰＶＧ２１０へ移動する。その後、ボリューム管理部１１２は、ＳｔａｃｋｅｄＰＶＧ２１０への物理ボリューム２２の移動完了をリオーガニゼーション処理部１４２へ通知する。
【００５４】
また、ボリューム管理部１１２は、データ移行処理部１０４によるマイグレーション、リオーガニゼーション及び先行リオーガニゼーション処理が完了した場合、処理対象の論理ボリューム３１の情報をデータ移行処理部１０４から取得する。さらに、ボリューム管理部１１２は、処理対象の論理ボリューム３１の移動元及び移動先の物理ボリューム２２の情報をデータ移行処理部１０４から受信する。
【００５５】
そして、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における移動先の物理ボリューム２２が格納する論理ボリューム３１の数、有効な論理ボリューム３１の数及び有効な論理ボリューム３１の割合を更新する。さらに、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における書き込み先の物理ボリューム２２の状態を使用中に変更する。
【００５６】
さらに、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における移動元の物理ボリューム２２が格納する論理ボリューム３１の数、有効な論理ボリューム３１の数及び有効な論理ボリューム３１の割合を更新する。
【００５７】
この時、移動元の物理ボリューム２２に有効な論理ボリューム３１が格納されている場合、ボリューム管理部１１２は、移動元の物理ボリューム２２の状態を使用中にする。
【００５８】
これに対して、有効な論理ボリューム３１が格納されていない場合、ボリューム管理部１１２は、移動元の物理ボリューム２２の状態を未使用にする。次に、ボリューム管理部１１２は、移動元の物理ボリューム２２が属していたＳｔａｃｋｅｄＰＶＧ２１０に対応するＳｃｒａｔｃｈＰＶＧ２２０をＰＶＧ管理テーブル１２１から特定する。そして、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における移動元の物理ボリューム２２の所属を特定したＳｃｒａｔｃｈＰＶＧ２２０に変更する。これにより、ボリューム管理部１１２は、移動元の物理ボリューム２２をＳｔａｃｋｅｄＰＶＧ２１０から特定したＳｃｒａｔｃｈＰＶＧ２２０へ移動する。このボリューム管理部１１２が、「移動部」の一例にあたる。
【００５９】
判定部１０５は、データ管理部１４１によりマイグレーションの実行が確定された場合又は削除処理が行われた場合、データ管理部１４１から通知を受ける。そして、判定部１０５は、処理の対象となった物理ボリューム２２が属するＳｔａｃｋｅｄＰＶＧ２１０をＰＶ管理テーブル１２２から特定し、先行リオーガニゼーション処理の判定対象とする。以下では、判定部１０５が先行リオーガニゼーションの判定対象とするＳｔａｃｋｅｄＰＶＧ２１０を「判定対象ＳｔａｃｋｅｄＰＶＧ２１０」という。
【００６０】
判定部１０５は、判定対象ＳｔａｃｋｅｄＰＶＧ２１０における物理ボリューム２２の総無効領域の容量（Ｃｉ）を求める。ここで、総無効領域とは、物理ボリューム２２の中で、データが更新され無効とされたデータを格納している領域の総計である。さらに、判定部１０５は、算出した総無効領域の容量（Ｃｉ）を１つの物理ボリューム２２の容量で除算する。そして、判定部１０５は、除算結果が１以上か否かを判定する。すなわち、判定部１０５は、総無効領域の容量（Ｃｉ）が１つの物理ボリューム２２の容量以上か否かを判定する。言い換えれば、判定部１０５は、無効領域の合計が１つの物理ボリューム２２の容量以上となる物理ボリューム２２の組があるか否かを判定する。
【００６１】
次に、判定部１０５は、判定対象ＳｔａｃｋｅｄＰＶＧ２１０に属する各物理ボリューム２２における有効領域の割合をＰＶ管理テーブル１２２から取得する。そして、判定部１０５は、判定対象ＳｔａｃｋｅｄＰＶＧ２１０全体における有効領域の割合を算出する。そして、判定部１０５は、判定対象ＳｔａｃｋｅｄＰＶＧ２１０の全体における有効領域の割合が、ＰＶＧ管理テーブル１２１に記載されている有効な物理ボリューム２２の基準率以上か否かを判定する。
【００６２】
有効領域の割合が有効な物理ボリュームの基準率以上、且つ、総無効領域の容量が１つの物理ボリューム２２の容量以上の場合、判定部１０５は、判定対象ＳｔａｃｋｅｄＰＶＧ２１０に対する先行リオーガニゼーションの実行を決定する。言い換えれば、有効領域の割合が有効な物理ボリュームの基準率以上、且つ、無効領域の合計が１つの物理ボリューム２２の容量以上となる物理ボリューム２２の組がある場合に、判定部１０５は、先行リオーガニゼーションの実行を決定する。そして、判定部１０は、判定対象ＳｔａｃｋｅｄＰＶＧ２１０に対する先行リオーガニゼーションの実行をデータ移行処理部１０４に指示する。
【００６３】
これに対して、有効領域の割合が有効な物理ボリュームの基準率未満、又は、総無効領域の容量が１つの物理ボリューム２２の容量未満の場合、判定部１０５は、先行リオーガニゼーションの不実行をデータ移行処理部１０４に通知する。
【００６４】
データ移行処理部１０４は、データ管理部１４１及びリオーガニゼーション処理部１４２を有する。データ管理部１４１は、例えば、マイグレーション、論理ボリューム３１の削除及びディスクアレイ装置３０への論理ボリューム３１の書き込みを行う。また、リオーガニゼーション処理部１４２は、通常のリオーガニゼーション及び先行リオーガニゼーションを実行する。
【００６５】
データ管理部１４１は、論理ボリューム３１の格納の通知をリードライト部１０３から受けると、ディスクアレイ装置３０に格納した論理ボリューム３１を物理ボリューム２１へ格納する以下のマイグレーションの実行の確定の処理を行う。ただし、このマイグレーションの実行を判断するタイミングは、通知受信後いつでもよい。以下に、データ移行処理部１０４によるマイグレーションについて説明する。
【００６６】
データ管理部１４１は、ディスクアレイ装置３０を確認し、マイグレーションを行うデータのデータ量（Ｄ）を取得する。
【００６７】
次に、データ管理部１４１は、論理ボリューム３１を書き込むマイグレーション先のＳｔａｃｋｅｄＰＶＧ２１０を特定する。さらに、データ管理部１４１は、マイグレーション先のＳｔａｃｋｅｄＰＶＧ２１０に属する物理ボリューム２２をＰＶ管理テーブル１２２から特定する。次に、データ管理部１４１は、特定した各物理ボリューム２２から未使用領域の容量を取得する。そして、データ管理部１４１は、求めた未使用領域の容量を合計してマイグレーション先のＳｔａｃｋｅｄＰＶＧ２１０の総空き容量（Ｃｂ）を求める。
【００６８】
そして、データ管理部１４１は、マイグレーションを行うデータのデータ量（Ｄ）とマイグレーション先のＳｔａｃｋｅｄＰＶＧ２１０の総空き容量（Ｃｂ）とを比較する。
【００６９】
総空き容量（Ｃｂ）がデータ量（Ｄ）より大きい場合、データ管理部１４１は、マイグレーション先のＳｔａｃｋｅｄＰＶＧ２１０に属する物理ボリューム２２の構成を変更せずに、マイグレーションの実行を確定する。この場合、データ管理部１４１は、ＳｃｒａｔｃｈＰＶＧ２２０から確保する物理ボリューム２２の数（Ｐｎ）を０とする。そして、データ管理部１４１は、マイグレーションの実行の確定及びＰｎ＝０をリオーガニゼーション処理部１４２に通知する。
【００７０】
これに対して、総空き容量（Ｃｂ）がデータ量（Ｄ）より小さい場合、そのままでは、マイグレーション先のＳｔａｃｋｅｄＰＶＧ２１０にはデータが書き込めない。そこで、データ管理部１４１は、以下のように容量を確保するための処理を実行する。
【００７１】
データ管理部１４１は、データ量（Ｄ）から総空き容量（Ｃｂ）を減算し、マイグレーション用に確保する容量（Ｄ−Ｃｂ）を求める。次に、データ管理部１４１は、マイグレーション用に確保する容量（Ｄ−Ｃｂ）を１つの物理ボリューム２２の容量（Ｐｕ）で除算し、端数を切り上げて、確保する物理ボリューム２２の数（Ｐｎ）を算出する。そして、データ管理部１４１は、マイグレーションの実行を確定する。その後、データ管理部１４１は、マイグレーションの実行の確定及び確保する物理ボリューム２２の数（Ｐｎ）をリオーガニゼーション処理部１４２に通知する。
【００７２】
その後、データ管理部１４１は、マイグレーションの実行の指示をリオーガニゼーション処理部１４２から受ける。そして、データ管理部１４１は、マイグレーションを実行する。具体的には、データ移行処理部１０４は、マイグレーションの対象である論理ボリューム３１をディスクアレイ装置３０から取得し、マイグレーション先のＳｔａｃｋｅｄＰＶＧ２１０の物理ボリューム２２へ格納する。
【００７３】
その後、データ管理部１４１は、マイグレーションにより移動した論理ボリューム３１の情報、移動元の物理ボリューム２２の情報及び移動先の物理ボリューム２２の情報をボリューム管理部１１２に通知する。
【００７４】
また、データ管理部１４１は、論理ボリューム３１の削除の指示をリードライト部１０３から受けて、物理ボリューム２２から指定された論理ボリューム３１を削除する。そして、データ管理部１４１は、論理ボリューム３１の削除後、削除を行った論理ボリューム３１の情報及びその論理ボリュームが属する物理ボリューム２２の情報をボリューム管理部１１２へ通知する。さらに、データ管理部１４１は、削除の通知とともに論理ボリューム３１の削除を行った物理ボリューム２２が属するＳｔａｃｋｅｄＰＶＧ２１０の情報をリオーガニゼーション処理部１４２へ通知する。このデータ管理部１４１が、「データ格納部」の一例にあたる。
【００７５】
リオーガニゼーション処理部１４２は、マイグレーションの実行の確定又は削除の通知をデータ管理部１４１から受ける。そして、リオーガニゼーション処理部１４２は、先行リオーガニゼーション処理の判定を判定部１０５に依頼する。さらに、データ移行処理部１０４は、マイグレーションの対象となっている物理ボリューム２２又は論理ボリューム３１の削除が行われた物理ボリューム２２が属するＳｔａｃｋｅｄＰＶＧ２１０の情報を判定部１０５に通知する。以下では、判定部１０５に通知したＳｔａｃｋｅｄＰＶＧ２１０を「対象ＳｔａｃｋｅｄＰＶＧ２１０」という。
【００７６】
判定部１０５から先行リオーガニゼーションの不実行の通知を受信すると、リオーガニゼーション処理部１４２は、対象ＳｔａｃｋｅｄＰＶＧ２１０に属する各物理ボリューム２２の有効な論理ボリューム３１の数をＰＶ管理テーブル１２２から取得する。さらに、リオーガニゼーション処理部１４２は、その物理ボリューム２２の有効な論理ボリュームの割合をＰＶ管理テーブル１２２から取得する。さらに、リオーガニゼーション処理部１４２は、対象ＳｔａｃｋｅｄＰＶＧ２１０に設定された有効な論理ボリューム３１の基準率を取得する。
【００７７】
また、リオーガニゼーション処理部１４２は、対象ＳｔａｃｋｅｄＰＶＧ２１０のＳｏｆｔＭｉｎｉｍｕｍの閾値、ＨａｒｄＭｉｎｉｍｕｍの閾値又はＡｂｓｏｌｕｔｅＭｉｎｉｍｕｍの閾値をＰＶＧ管理テーブル１２１から取得する。そして、リオーガニゼーション処理部１４２は、各物理ボリューム２２の有効な論理ボリューム３１の数を各閾値と比較する。
【００７８】
ある物理ボリューム２２の有効な論理ボリューム３１の数がＳｏｆｔＭｉｎｉｍｕｍの閾値以上でありマイグレーションの実行が確定されていれば、リオーガニゼーション処理部１４２は、マイグレーションの実行をデータ管理部１４１に指示する。これに対して、マイグレーションの実行を確定していなければ、リオーガニゼーション処理部１４２は、処理を終了する。
【００７９】
一方、ある物理ボリューム２２の有効な論理ボリューム３１の数がＳｏｆｔＭｉｎｉｍｕｍの閾値未満の場合、リオーガニゼーション処理部１４２は、その物理ボリューム２２の有効な論理ボリュームの割合が基準率以上か否かを判定する。有効な論理ボリュームの割合が基準率以上の場合、マイグレーションの実行を確定していれば、リオーガニゼーション処理部１４２は、マイグレーションの実行をデータ管理部１４１に指示する。これに対して、マイグレーションの実行を確定していなければ、リオーガニゼーション部１４２は、処理を終了する。
【００８０】
これに対して、有効な論理ボリュームの割合が基準率未満の場合、データ移行処理部１０４は、その物理ボリューム２２のリオーガニゼーション処理を実行する。また、ある物理ボリューム２２の有効な論理ボリューム３１の数が、ＡｂｓｏｌｕｔｅＭｉｎｉｍｕｍの閾値以下又はＨａｒｄＭｉｎｉｍｕｍの閾値以下の場合リオーガニゼーション処理部１４２は、その物理ボリューム２２のリオーガニゼーションを実行する。
【００８１】
ここで、リオーガニゼーション処理について説明する。まず、図８〜１０を参照して、リオーガニゼーションを実行する理由について説明する。図８は、マイグレーションの処理の概念図である。また、図９は、論理ボリュームの更新時のマイグレーションの処理の概念図である。また、図１０は、リオーガニゼーションの処理の概念図である。
【００８２】
図８では、論理ボリューム３１としてＬＶ＃Ａ、ＬＶ＃Ｂ、ＬＶ＃Ｃがディスクアレイ装置３０に格納されており、ＬＶ＃Ａ、ＬＶ＃Ｂ、ＬＶ＃Ｃの順番でマイグレーションされるものとする。リオーガニゼーション処理部１４２は、まず物理ボリューム２２のＰＶ−ＤＨＲの後にＬＶ＃Ａを格納する。次に、リオーガニゼーション処理部１４２は、ＬＶ＃Ａの後にＬＶ＃Ｂを格納する。さらに、データ移行処理部１０４は、ＬＶ＃Ｂの後にＬＶ＃Ｃを格納する。
【００８３】
次に、図９に示すように、ディスクアレイ装置３０に、更新されたＬＶ＃Ａである論理ボリューム３１１が格納されたとする。この場合、リオーガニゼーション処理部１４２は、ＬＶ＃Ｃの後に、論理ボリューム３１３として新しいＬＶ＃Ａを格納する。この時、更新前のＬＶ＃Ａである論理ボリューム３１２は、無効な論理ボリューム３１となる。この場合、物理ボリューム２２における論理ボリューム３１２の領域は、使用できない領域となってしまう。
【００８４】
このように、論理ボリューム３１の更新が繰り返されると、例えば、図１０の物理ボリューム２２１のように、無効な論理ボリューム３１が増えてしまい、使用できない領域が多い状態になってしまう。そこで、リオーガニゼーション処理部１４２は、未使用の物理ボリューム２２２に物理ボリューム２２１の有効な論理ボリューム３２２，３２４及び３２５を移行し、有効な論理ボリューム３２６〜３２８としてＬＶ＃Ａ〜＃Ｃを格納する。この場合、無効な論理ボリューム３２１及び３２３は、物理ボリューム２２２には移行されないので、物理ボリューム２２２は、有効な論理ボリューム３１のみを有することになり、無駄な領域が無くなる。そして、物理ボリューム２２１は、有効な論理ボリューム３１を有さなくなるので、全ての論理ボリュームを削除して新たに未使用の論理ボリューム３１として使用することができる。このようなリオーガニゼーション処理により、物理ボリューム２２の利用効率を向上させることができる。
【００８５】
図３に戻って、リオーガニゼーション処理部１４２によるリオーガニゼーション処理の動作について詳しく説明する。以下では、リオーガニゼーション処理の対象とした物理ボリューム２２に格納されている有効な論理ボリューム３１を対象の論理ボリューム３１という。
【００８６】
リオーガニゼーション処理部１４２は、対象ＳｔａｃｋｅｄＰＶＧ２１０に属する使用中の物理ボリューム２２の中に、対象の論理ボリューム３１を格納できる空き領域を有するものがあるかを判定する。対象の論理ボリューム３１を格納できる空き領域がある物理ボリューム２２が有る場合、リオーガニゼーション処理部１４２は、その物理ボリューム２２に対象の論理ボリューム３１を移動する。そして、リオーガニゼーション処理部１４２は、対象の論理ボリューム３１の移動元の物理ボリューム２２をボリューム管理部１１２に通知する。またリオーガニゼーション処理部１４２は、対象の論理ボリューム３１の移動先の物理ボリューム２２の情報及び移動した論理ボリューム３１の情報をボリューム管理部１１２に通知する。
【００８７】
一方、対象の論理ボリューム３１を格納できる空き領域を有する物理ボリューム２２が無い場合、リオーガニゼーション処理部１４２は、ＰＶＧ管理テーブル１２１から対象ＳｔａｃｋｅｄＰＶＧ２１０に対応するＳｃｒａｔｃｈＰＶＧ２２０を特定する。次に、リオーガニゼーション処理部１４２は、特定したＳｃｒａｔｃｈＰＶＧ２２０の中から未使用の物理ボリューム２２を選択する。そして、リオーガニゼーション処理部１４２は、選択した物理ボリューム２２の対象ＳｔａｃｋｅｄＰＶＧ２１０への移動をボリューム管理部１１２に指示する。
【００８８】
ＳｔａｃｋｅｄＰＶＧ２１０への物理ボリューム２２の移動完了の通知をボリューム管理部１１２から受信すると、リオーガニゼーション処理部１４２は、対象の論理ボリューム３１を移動した物理ボリューム２２へ移動する。
【００８９】
リオーガニゼーション実行後、マイグレーションの実行が確定されていれば、リオーガニゼーション処理部１４２は、マイグレーションの実行をデータ管理部１４１に指示する。
【００９０】
マイグレーションの実行が確定されていなければ、リオーガニゼーション処理部１４２は、移動した論理ボリューム３１の情報、移動元の物理ボリューム２２の情報及び移動先の物理ボリューム２２の情報をボリューム管理部１１２に通知する。
【００９１】
一方、判定部１０５から先行リオーガニゼーションの実行指示を受信すると、リオーガニゼーション処理部１４２は、対象ＳｔａｃｋｅｄＰＶＧ２１０に属する物理ボリューム２２をＰＶ管理テーブル１２２から特定する。次に、リオーガニゼーション処理部１４２は、特定した各物理ボリューム２２のうちの有効な論理ボリューム３１の領域の大きさを求める。
【００９２】
そして、リオーガニゼーション処理部１４２は、対象ＳｔａｃｋｅｄＰＶＧ２１０に属する全ての物理ボリューム２２の有効な論理ボリューム３１の領域の合計である総有効領域（Ｃｖ）を算出する。
【００９３】
そして、リオーガニゼーション処理部１４２は、総有効領域（Ｃｖ）を１つの物理ボリューム２２の容量（Ｐｕ）で除算し、端数を切り上げて、先行リオーガニゼーション用に確保する物理ボリューム２２の数を求める。そして、リオーガニゼーション処理部１４２は、データ管理部１４１から受信した確保する物理ボリューム２２の数（Ｐｎ）に先行リオーガニゼーション用に確保する物理ボリューム２２の数を加算し、確保する物理ボリューム２２の数（Ｐｎ）を新たに求める。
【００９４】
また、リオーガニゼーション処理部１４２は、ＰＶＧ管理テーブル１２１から対象ＳｔａｃｋｅｄＰＶＧ２１０に対応するＳｃｒａｔｃｈＰＶＧ２２０を特定する。次に、リオーガニゼーション処理部１４２は、確保する物理ボリューム２２の数（Ｐｎ）の未使用の物理ボリューム２２の特定したＳｃｒａｔｃｈＰＶＧ２２０から確保をボリューム管理部１１２に通知する。以下では、ボリューム管理部１１２により対象のＳｔａｃｋｅｄＰＶＧ２１０へ移動された物理ボリューム２２を「確保した物理ボリューム２２」という。
【００９５】
その後、リオーガニゼーション処理部１４２は、ＳｔａｃｋｅｄＰＶＧ２１０への物理ボリューム２２の移動完了の通知をボリューム管理部１１２から受信する。そして、リオーガニゼーション処理部１４２は、対象ＳｔａｃｋｅｄＰＶＧ２１０に属する物理ボリューム２２に格納されている有効な論理ボリューム３１及びマイグレーションの対象となる論理ボリューム３１を取得する。そして、リオーガニゼーション処理部１４２は、取得した論理ボリューム３１を確保した物理ボリューム２２へ移行する。
【００９６】
その後、リオーガニゼーション処理部１４２は、移動した論理ボリューム３１の情報、移動元の物理ボリューム２２の情報及び移動先の物理ボリューム２２の情報をボリューム管理部１１２に通知する。さらに、リオーガニゼーション処理部１４２は、マイグレーションの実行が確定している場合、マイグレーションの実行をデータ管理部１４１に指示する。
【００９７】
マイグレーションの実行が確定していい場合、リオーガニゼーション処理部１４２は、マイグレーションの指示を行わずに、移動した論理ボリューム３１の情報、移動元及び移動先の物理ボリューム２２の情報をボリューム管理部１１２に通知する。このリオーガニゼーション処理部１４２が、「データ移行部」の一例にあたる。
【００９８】
次に、図１１〜１３を参照して、マイグレーション、論理ボリューム３１の削除及びリオーガニゼーションの各処理を行った場合のＰＶ管理テーブルの遷移の一例について説明する。図１１は、マイグレーション実行時のＰＶ管理テーブルの遷移を表す一例の図である。図１２は、論理ボリュームの削除時のＰＶ管理テーブルの遷移を表す一例の図である。図１３は、先行リオーガニゼーション実行時のＰＶ管理テーブルの遷移を表す一例の図である。
【００９９】
図１１を参照して、マイグレーション実行時のＰＶ管理テーブル１２２の遷移を説明する。ここでは、リオーガニゼーション処理部によるリオーガニゼーション処理が行われない場合を例に説明する。
【０１００】
図１１のテーブル１２２Ａは、マイグレーションを実行する前のＰＶ管理テーブル１２２の状態を表す。ここでは、物理ボリューム２２は、ＰＶ００〜０２の３つある。そして、テーブル１２２Ａの状態では、ＰＶ００〜０２は、全て未使用の物理ボリューム１２２であり、Ｓｃｒａｔｃｈ＃００という名のＳｃｒａｔｃｈＰＶＧ２２０に属している。ＰＶ００〜０２は、未使用であるので、格納している論理ボリューム３１のＶ数、有効な論理ボリューム３１の数及び有効な論理ボリューム３１の割合はすべて０である。
【０１０１】
テーブル１２２Ａの状態で、データ管理部１４１は、ディスクアレイ装置３０に格納されている１００個の論理ボリューム３１をＰＶ００の物理ボリューム２２に格納すると決定する。そこで、データ管理部１４１は、Ｓｃｒａｔｃｈ＃００からＳｔａｃｋｅｄ＃０という名のＳｔａｃｋｅｄＰＶＧ２１０へのＰＶ００の移行をボリューム管理部１１２に指示する。ボリューム管理部１１２は、テーブル１２２Ｂに示すようにＰＶ００が属する物理ボリュームグループをＳｔａｃｋｅｄ＃０に変更する。これにより、ＰＶ００は、Ｓｃｒａｔｃｈ＃００からＳｔａｃｋｅｄ＃０に移動される。
【０１０２】
データ管理部１４１は、ＰＶ００がＳｔａｃｋｅｄ＃０に属するように変更された後に、マイグレーション対象の１００個の論理ボリューム３１をＰＶ００に格納する。この論理ボリューム３１の格納を受けて、ボリューム管理部１１２は、ＰＶ管理テーブル１２２のＰＶ００の有効な物理ボリューム２２の数を１００にする。この場合、ＰＶ００にはそれ以外に論理ボリューム３１は格納されていないので、ボリューム管理部１１２は、格納している物理ボリューム２２の数も１００にする。さらに、格納されている全ての論理ボリューム３１が有効な論理ボリューム３１であるので、ボリューム管理部１１２は、有効な論理ボリュームの割合を１００％とする。このマイグレーションにより、ＰＶ管理テーブル１２２は、テーブル１２２Ａからテーブル１２２Ｂに更新される。
【０１０３】
次に、図１２を参照して、論理ボリュームの削除時のＰＶ管理テーブル１２２の遷移を説明する。ここでは、ＰＶ００〜０２という物理ボリューム２２があり、そのうち使用中のＰＶ００が削除される場合で説明する。テーブル１２２Ｃが、削除前のＰＶ管理テーブル１２２の状態である。
【０１０４】
データ管理部１４１は、Ｓｔａｃｋｅｄ＃０に属するＰＶ００に格納されている１００個の論理ボリューム３１の削除の指示をホスト２から受ける。そして、データ管理部１４１は、指定された１００個の論理ボリューム３１をＰＶ００から削除する。削除後、データ管理部１４１は、ＰＶ００から削除した論理ボリューム３１の情報をボリューム管理部１１２に通知する。ボリューム管理部１１２は、ＰＶ管理テーブル１２２におけるＰＶ００の有効な物理ボリューム２２の数を１００個減らす。これにより、ＰＶ管理テーブル１２２は、テーブル１２２Ｃからテーブル１２２Ｄへ遷移する。
【０１０５】
次に、ボリューム管理部１１２は、テーブル１２２Ｄの状態のＰＶ管理テーブル１２２から、ＰＶ００に格納されている有効な物理ボリューム２２がなくなったことを確認する。そして、ボリューム管理部１１２は、ＰＶ管理テーブル１２２におけるＰＶ００の所属先をＳｔａｃｋｅｄ＃０からＳｃｒａｔｃｈ＃００へ変更する。これにより、ＰＶ管理テーブル１２２は、テーブル１２２Ｄからテーブル１２２Ｅへ遷移する。そして、ＰＶ００は、Ｓｔａｃｋｅｄ＃０からＳｃｒａｔｃｈ＃００へ移動される。
【０１０６】
また、ここでは、ＰＶ００に格納されている論理ボリューム３１の数はそのままにしている。しかし、ＰＶ００をＳｔａｃｋｅｄ＃０からＳｃｒａｔｃｈ＃００に移動するときに、無効の論理ボリューム３１を全て削除してもよい。その場合、ＰＶ００は、Ｓｃｒａｔｃｈ＃００に移動されてから、格納している論理ボリューム３１の数が０になる。ボリューム管理部１１２は、ＰＶ管理テーブル１２２におけるＰＶ００の格納している論理ボリューム３１の数を０にする。さらに、ボリューム管理部１１２は、ＰＶ管理テーブル１２２におけるＰＶ００の状態を未使用にする。
【０１０７】
次に、図１３を参照して、先行リオーガニゼーション実行時のＰＶ管理テーブル１２２の遷移を説明する。ここでは、ＰＶ００〜０３という物理ボリューム２２があり、そのうちＰＶ００〜０２がＳｔａｃｋｅｄＰＶＧ２１０であるＳｔａｃｋｅｄ＃０に属しており、ＰＶ０３がＳｃｒａｔｃｈＰＶＧ２２０であるＳｃｒａｔｃｈ＃００に属している。そして、ＰＶ００〜０２の有効な論理ボリューム３１をＰＶ０３に移行する場合で説明する。テーブル１２２Ｆが、先行リオーガニゼーション前のＰＶ管理テーブル１２２の状態である。
【０１０８】
リオーガニゼーション処理部１４２は、先行リオーガニゼーションの実行の対象としてＰＶ００〜０２を選択する。そして、リオーガニゼーション処理部１４２は、移行先の物理ボリューム２２としてＰＶ０３を選択する。リオーガニゼーション処理部１４２は、ＰＶ０３のＳｔａｃｋｅｄ＃０への移行をボリューム管理部１１２に指示する。ボリューム管理部１１２は、テーブル１２２Ｇのように、ＰＶ管理テーブル１２２におけるＰＶ０３の所属先をＳｔａｃｋｅｄ＃０に変更する。これにより、ＰＶ０３は、Ｓｃｒａｔｃｈ＃００からＳｔａｃｋｅｄ＃０に移動させられる。
【０１０９】
ＰＶ０３がＳｔａｃｋｅｄ＃０に移動された後、リオーガニゼーション処理部１４２は、ＰＶ００〜０２に格納されている有効な論理ボリューム３１をＰＶ０３に移行する。移行後、リオーガニゼーション処理部１４２は、移行した論理ボリューム３１の情報、移行元の物理ボリューム２２であるＰＶ００〜ＰＶ０２の情報及び移行先の物理ボリュームであるＰＶ０３の情報をボリューム管理部１１２へ通知する。ボリューム管理部１１２は、通知を受けて、ＰＶ管理テーブル１２２におけるＰＶ００〜０２の有効な論理ボリューム３１の数及び有効な論理ボリューム３１の割合を０にする。さらに、ボリューム管理部１１２は、ＰＶ管理テーブル１２２におけるＰＶ０３の格納している論理ボリューム３１の数及び有効な論理ボリュームの数をＰＶ００〜０３から移動した論理ボリューム３１の合計である９０に設定する。この場合、ＰＶ０３には有効な論理ボリューム３１しかないので、ボリューム管理部１１２は、有効な論理ボリューム３１の割合を１００％にする。これにより、ＰＶ管理テーブル１２２は、テーブル１２２Ｆからテーブル１２２Ｇへ遷移する。
【０１１０】
次に、ボリューム管理部１１２は、テーブル１２２Ｇの状態のＰＶ管理テーブル１２２から、ＰＶ００〜０２に格納されている有効な物理ボリューム２２がなくなったことを確認する。そして、ボリューム管理部１１２は、ＰＶ管理テーブル１２２におけるＰＶ００〜０２の所属先をＳｔａｃｋｅｄ＃０からＳｃｒａｔｃｈ＃００へ変更する。これにより、ＰＶ管理テーブル１２２は、テーブル１２２Ｇからテーブル１２２Ｈへ遷移する。そして、ＰＶ００〜０２は、Ｓｔａｃｋｅｄ＃０からＳｃｒａｔｃｈ＃００へ移動される。
【０１１１】
次に、図１４〜１７を参照して、仮想テープライブラリ１による先行リオーガニゼーションの処理の概要をさらに説明する。図１４は、先行リオーガニゼーション前の物理ボリューム及び論理ボリュームの状態を表す図である。図１５は、物理ボリューム確保時の物理ボリューム及び論理ボリュームの状態を表す図である。図１６は、先行リオーガニゼーション実行後の物理ボリューム及び論理ボリュームの状態を表す図である。図１７は、物理ボリュームをＳｃｒａｔｃｈＰＶＧに戻した後の物理ボリューム及び論理ボリュームの状態を表す図である。
【０１１２】
ここでは、ＳｔａｃｋｅｄＰＶＧ２１０に物理ボリューム２２Ａ〜２２Ｃが属しており、ＳｃｒａｔｃｈＰＶＧ２２０に物理ボリューム２２Ｄ及び２２Ｅが属している場合で説明する。
【０１１３】
論理ボリューム群３３１は、物理ボリューム２２Ａ〜２２Ｃに格納されている論理ボリューム３１の状態を表している。論理ボリューム群３３１の内の左端の列が物理ボリューム２２Ａにおける論理ボリューム３１の格納状態を表している。また、論理ボリューム群３３１の中央の列が物理ボリューム２２Ｂにおける論理ボリューム３１の格納状態を表している。また、論理ボリューム群３３１の内の右端の列が物理ボリューム２２Ｃにおける論理ボリューム３１の格納状態を表している。そして、論理ボリューム群３３１の内、斜線で示された領域が有効な論理ボリューム３１が格納されている領域である。また、論理ボリューム群３３１の内、ドット模様で示された領域が無効な領域である。さらに、白抜きの領域が未使用領域である。また、物理ボリューム２２Ａ〜２２Ｃにおける容量を論理ボリューム群３３１で示される１つずつの区画で表す。ここでは、論理ボリューム群３３１で示される１つずつの区画に格納可能な論理ボリューム３１の数を１０として説明する。例えば、物理ボリューム２２Ａ〜２２Ｃの１つあたりの容量（Ｐｕ）は４０である。
【０１１４】
リオーガニゼーション処理部１４２は、物理ボリューム２２Ａ〜２２Ｃの無効な論理ボリューム３１の容量を取得する。そして、リオーガニゼーション処理部１４２は、取得した各容量を合計し、ＳｔａｃｋｅｄＰＶＧ２１０の総無効領域の容量（Ｃｉ）を算出する。ここでは、総無効領域の容量（Ｃｉ）は、ドット模様のブロックの数であり、４０である。そして、リオーガニゼーション処理部１４２は、総無効領域の容量（Ｃｉ）を物理ボリューム２２Ａ〜２２Ｃの１つあたりの容量（Ｐｕ）で除算する。ここでは、リオーガニゼーション処理部１４２は、除算結果として１を得る。次に、リオーガニゼーション処理部１４２は、除算結果が１以上か否かを判定する。本実施例では、除算結果は１であるので、データ移行処理部１０４は、除算結果は１以上と判定する。ここで、除算結果が１以上であるので、物理ボリューム２２Ａ〜２２Ｃに格納された有効な物理ボリュームのみを格納した場合、使用する物理ボリューム２２の数を１つ以上減らせる。
【０１１５】
そこで、リオーガニゼーション処理部１４２は、物理ボリューム２２Ａ〜２２Ｃの有効な論理ボリューム３１の容量を取得する。そして、リオーガニゼーション処理部１４２は、取得した各容量を合計し、ＳｔａｃｋｅｄＰＶＧ２１０の総有効領域（Ｃｖ）を算出する。ここでは、総有効領域の容量（Ｃｖ）は、斜線のブロックの数であり、６０である。そして、リオーガニゼーション処理部１４２は、総有効領域（Ｃｖ）を物理ボリューム２２Ａ〜２２Ｃの１つあたりの容量（Ｐｕ）で除算し、確保する物理ボリューム２２の数（Ｐｎ）を求める。本実施例では、リオーガニゼーション処理部１４２は、６０を４０で除算し余りを切り上げて、確保する物理ボリューム２２の数（Ｐｎ）を２個と求める。
【０１１６】
次に、リオーガニゼーション処理部１４２は、２個の物理ボリューム２２をＳｃｒａｔｃｈＰＶＧ２２０からＳｔａｃｋｅｄＰＶＧ２１０へ移動する指示をボリューム管理部１１２に通知する。ボリューム管理部１１２は、通知を受けて、ＰＶ管理テーブル１２２を変更して、図１５に示すように、ＳｃｒａｔｃｈＰＶＧ２２０からＳｔａｃｋｅｄＰＶＧ２１０へ物理ボリューム２２Ｄ及び２２Ｅを移動する。図１５では、破線で表される物理ボリューム２２が既に移動された物理ボリューム２２Ｄ及び２２Ｅを表す。また、破線矢印は、物理ボリューム２２Ｄ及び２２ＥのＳｔａｃｋｅｄＰＶＧ２１０への移行を表す。
【０１１７】
図１５における、論理ボリューム群３３２が、物理ボリューム２２Ｄ及び２２Ｅ＃に格納されている論理ボリューム３１の状態を表している。論理ボリューム群３３２の内の左端の列が物理ボリューム２２Ｄにおける論理ボリューム３１の格納状態を表している。また、論理ボリューム群３３１の内の右端の列が物理ボリューム２２Ｅにおける論理ボリューム３１の格納状態を表している。この状態では、物理ボリューム２２Ｄ及び２２Ｅともに格納している論理ボリューム３１はない。
【０１１８】
リオーガニゼーション処理部１４２は、物理ボリューム２２Ａ〜２２Ｃに格納されている有効な論理ボリューム３１を物理ボリューム２２Ｄ〜２２Ｅに移行する。これにより、論理ボリューム群３３１及び３３２の状態は、図１６に示す状態になる。すなわち、物理ボリューム２２Ａ〜２２Ｃは、論理ボリューム群３３１に示すように、有効な論理ボリューム３１を格納しなくなる。これに対して、物理ボリューム２２Ｄ及び２２Ｅには、論理ボリューム群３３２に示すように、６０の有効な論理ボリューム３１が格納されている。
【０１１９】
ボリューム管理部１１２は、移行された論理ボリューム３１の情報、移行元の物理ボリューム２２Ａ〜２２Ｃの情報、並びに、移行先の物理ボリューム２２Ｄ及びＥの情報をデータ移行処理部１０４から取得する。そして、取得した情報にしたがってＰＶ管理テーブル１２２を更新する。その後、ボリューム管理部１１２は、有効な論理ボリューム３１を格納していない物理ボリューム２２Ａ〜２２ＣをＰＶ管理テーブル１２２を用いて特定する。ここで、物理ボリューム２２Ａ〜２２Ｃは、有効な論理ボリューム３１を格納していないので、図１６の破線矢印で示されるように、ＳｃｒａｔｃｈＰＶＧへ移行することができる。
【０１２０】
そこで、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における物理ボリューム２２Ａ〜２２Ｃの所属先をＳｔａｃｋｅｄＰＶＧ２１０からＳｃｒａｔｃｈＰＶＧ２２０に変更する。これにより、図１７に示すように、物理ボリューム２２Ａ〜２２Ｃは、ＳｃｒａｔｃｈＰＶＧ２２０に移動する。この後、ボリューム管理部１１２は、物理ボリューム２２Ａ〜２２Ｃは、未使用のディスクとして扱うことができる。また、ＳｔａｃｋｅｄＰＶＧ２１０には、論理ボリューム群３３２に示すように、有効な論理ボリューム３１のみを格納したボリューム２２Ｄ及び２２Ｅが属する。
【０１２１】
次に、図１８を参照して、図１４〜１７で示した先行リオーガニゼーションを行った場合のＰＶ管理テーブル１２２の遷移について説明する。図１８は、図１４〜１７で示した先行リオーガニゼーションを行った場合のＰＶ管理テーブルの遷移を表す図である。ここでは、先行リオーガニゼーション対象であるＳｔａｃｋｅｄＰＶＧ２１０をＳｔａｃｋｅｄ＃０とし、物理ボリューム２２の格納先のＳｃｒａｔｃｈＰＶＧ２２０をＳｃｒａｔｃｈ＃１とする。
【０１２２】
テーブル１２２Ｊは、先行リオーガニゼーションを実施する前の各物理ボリューム２２Ａ〜２２Ｅの状態を表したＰＶ管理テーブル１２２である。テーブル１２２Ｊの状態では、物理ボリューム２２Ａ〜２２Ｃは、Ｓｔａｃｋｅｄ＃０に属し、状態は使用中である。これに対して、物理ボリューム２２Ｄ及び２２Ｅは、Ｓｃｒａｔｃｈ＃０に属し、状態は未使用である。
【０１２３】
ボリューム管理部１１２は、データ移行処理部１０４から指示を受けて、ＰＶ管理テーブル１２２における物理ボリューム２２Ｄ及び２２Ｅの所属先をＳｃｒａｔｃｈ＃１からＳｔａｃｋｅｄＰＶＧ＃０へ変更する。そして、リオーガニゼーション処理部１４２により先行リオーガニゼーションが行われると、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における物理ボリューム２２Ａ〜２２Ｃの有効な論理ボリューム３１の数を０とし、有効な論理ボリューム３１の割合を０とする。さらに、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における物理ボリューム２２Ｄが格納する論理ボリューム３１の数及び有効な論理ボリュームの数を４０とし、有効な論理ボリューム３１の割合を１００％とする。また、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における物理ボリューム２２Ｄが格納する論理ボリューム３１の数及び有効な論理ボリュームの数を２０とし、有効な論理ボリューム３１の割合を１００％とする。また、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における物理ボリューム２２Ｄ及び２２Ｅの状態を使用中に変更する。これにより、ＰＶ管理テーブル１２２は、テーブル１２２Ｊの状態からテーブル１２２Ｋの状態へ遷移する。
【０１２４】
次に、ボリューム管理部１１２は、テーブル１２２Ｋを参照して、物理ボリューム２２Ａ〜２２Ｃが有効な論理ボリューム３１を有さないことを確認する。そして、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における物理ボリューム２２Ａ〜２２Ｃの所属先をＳｔａｃｋｅｄ＃０からＳｃｒａｔｃｈ＃１に変更する。さらに、ボリューム管理部１１２は、ＰＶ管理テーブル１２２における物理ボリューム２２Ａ〜２２Ｃの状態を未使用に変更する。これにより、ＰＶ管理テーブル１２２は、テーブル１２２Ｋの状態からテーブル１２２Ｌの状態へ遷移する。
【０１２５】
次に、図１９を参照して、本実施例に係る仮想テープライブラリ１によるマイグレーションの実行の確定処理の流れについて説明する。図１９は、実施例に係る仮想テープライブラリによるマイグレーションの実行の確定処理のフローチャートである。
【０１２６】
データ管理部１４１は、ディスクアレイ装置３０に格納されたマイグレーションの対象の論理ボリューム３１からマイグレーション先のＳｔａｃｋｅｄＰＶＧ２１０への総書込データ量（Ｄ）を取得する（Ｓ１０１）。
【０１２７】
次に、データ管理部１４１は、マイグレーション先のＳｔａｃｋｅｄＰＶＧ２１０に属する各物理ボリューム２２を確認し、マイグレーション先のＳｔａｃｋｅｄＰＶＧ２１０における空き総容量（Ｃｂ）を取得する（ステップＳ１０２）。
【０１２８】
そして、データ管理部１４１は、空き総容量（Ｃｂ）が総書込データ量（Ｄ）未満か否かを判定する（ステップＳ１０３）。空き総容量（Ｃｂ）が総書込データ量（Ｄ）未満の場合（ステップＳ１０３：肯定）、データ管理部１４１は、ＳｃｒａｔｃｈＰＶＧ２２０から確保する物理ボリュームの数（Ｐｎ）を算出する。具体的には、データ管理部１４１は、総書込データ量（Ｄ）から空き総容量（Ｃｂ）を減算した値を１つの物理ボリューム２２あたりの容量（Ｐｕ）で除算して、確保する物理ボリュームの数（Ｐｎ）を算出する（ステップＳ１０４）。
【０１２９】
これに対して、空き総容量（Ｃｂ）が総書込データ量（Ｄ）以上の場合（ステップＳ１０３：否定）、データ管理部１４１は、確保する物理ボリュームの数（Ｐｎ）を０とする（ステップＳ１０５）。
【０１３０】
そして、データ管理部１４１は、Ｐｎ個の物理ボリューム２２を確保した上での、マイグレーションの実行を確定する(ステップＳ１０６)。その後、データ管理部１４１は、確保する物理ボリューム２２の数（Ｐｎ）及びマイグレーションの実行の確定をリオーガニゼーション処理部１４２に通知する。
【０１３１】
次に、図２０を参照して、本実施例に係る仮想テープライブラリ１による削除処理の流れについて説明する。図２０は、実施例に係る仮想テープライブラリによる削除処理のフローチャートである。
【０１３２】
データ管理部１４１は、論理ボリューム３１の削除の指示をホスト２から受けて、ＳｔａｃｋｅｄＰＶＧから確保する物理ボリュームの数（Ｐｎ）を０に設定する（ステップＳ２０１）。
【０１３３】
そして、データ管理部１４１は、ホスト２により指定された論理ボリューム３１を物理ボリューム２２から削除する（ステップＳ２０２）。データ管理部１４１は、削除した論理ボリューム３１の情報及びそれを格納していた物理ボリューム２２の情報をボリューム管理部１１２へ通知する。
【０１３４】
ボリューム管理部１１２は、データ移行処理部１０４からの通知を受けて、有効な論理ボリューム３１を有さない物理ボリューム２２が存在するか否かを判定する（ステップＳ２０３）。有効な論理ボリューム３１を有さない物理ボリューム２２が存在しない場合（ステップＳ２０３：否定）、ボリューム管理部１１２は、ステップＳ２０５へ進む。
【０１３５】
一方、有効な論理ボリューム３１を有さない物理ボリューム２２が存在する場合（ステップＳ２０３：肯定）、ボリューム管理部１１２は、有効な論理ボリュームを有さない物理ボリューム２２をＳｃｒａｔｃｈＰＶＧ２２０へ移動する（ステップＳ２０４）。
【０１３６】
次に、ボリューム管理部１１２は、ＰＶＧ管理テーブル１２１及びＰＶ管理テーブル１２２における、ＳｔａｃｋｅｄＰＶＧの物理ボリューム数、有効な論理ボリュームの数及び有効な論理ボリュームの割合を更新する（ステップＳ２０５）。
【０１３７】
次に、図２１を参照して、本実施例に係る仮想テープライブラリ１による先行リオーガニゼーションの処理の流れについて説明する。図２１は、実施例に係る仮想テープライブラリによる先行リオーガニゼーションの処理のフローチャートである。図２１のフローに示される処理は、図１９又は２０の処理が行われた後に実行される。
【０１３８】
リオーガニゼーション処理部１４２は、ＳｔａｃｋｅｄＰＶＧ２１０における総無効領域の容量（Ｃｉ）を求める（ステップＳ３０１）。
【０１３９】
次に、リオーガニゼーション処理部１４２は、総無効領域の容量（Ｃｉ）を物理ボリューム２２の１つあたりの容量（Ｐｕ）除算した結果が１以上か否かを判定する（ステップＳ３０２）。
【０１４０】
除算結果が１以上の場合（ステップＳ３０２：肯定）、リオーガニゼーション処理部１４２は、ＰＶ管理テーブル１２２から各物理ボリューム２２の有効な論理ボリューム３１の割合を取得し、ＳｔａｃｋｅｄＰＶＧにおける有効領域の割合を求める。そして、リオーガニゼーション処理部１４２は、求めたＳｔａｃｋｅｄＰＶＧにおける有効領域の割合が、ＰＶＧ管理テーブル１２１に登録されている有効な論理ボリューム３１の基準率以上か否かを判定する（ステップＳ３０３）。
【０１４１】
ＳｔａｃｋｅｄＰＶＧにおける有効領域の割合が有効な論理ボリューム３１の基準率以上の場合（ステップＳ３０３：肯定）、リオーガニゼーション処理部１４２、ＳｔａｃｋｅｄＰＶＧにおける総有効領域の容量（Ｃｖ）を求める（ステップＳ３０４）。
【０１４２】
次に、リオーガニゼーション処理部１４２は、総有効領域の容量（Ｃｖ）を物理ボリューム２２の１つ当たりの容量（Ｐｕ）で除算し、総有効領域の容量（Ｃｖ）のデータを格納するための物理ボリューム２２の数を算出する。そして、リオーガニゼーション処理部１４２は、既に算出している確保する物理ボリューム２２の数（Ｐｎ）に総有効領域の容量（Ｃｖ）のデータを格納するための物理ボリューム２２の数を加算する。これにより、リオーガニゼーション処理部１４２は、確保する物理ボリューム２２の数（Ｐｎ）を新たに算出する（ステップＳ３０５）。
【０１４３】
そして、リオーガニゼーション処理部１４２は、算出した確保する物理ボリューム２２の数（Ｐｎ）をボリューム管理部１１２に通知する。ボリューム管理部１１２は、通知を受けて、ＳｃｒａｔｃｈＰＶＧからＰｎ個の物理ボリューム２２を確保する（ステップＳ３０６）。
【０１４４】
リオーガニゼーション処理部１４２は、先行リオーガニゼーション対象のデータ及びマイグレーション対象のデータを確保した物理ボリューム２２へ移行する（ステップＳ３０７）。ただし、マイグレーションを行わない場合には、リオーガニゼーション処理部１４２は、マイグレーション対象のデータの移行は行わない。
【０１４５】
これに対して、除算結果が１未満の場合（ステップＳ３０２：否定）又はＳｔａｃｋｅｄＰＶＧにおける有効領域の割合が有効な論理ボリューム３１の基準率未満の場合（ステップＳ３０３：否定）、リオーガニゼーション処理部１４２は、ステップＳ３０８に進む。具体的には、リオーガニゼーション処理部１４２は、通常のリオーガニゼーション処理及びマイグレーションを行う（ステップＳ３０８）。通常のリオーガニゼーション処理及びマイグレーションについては後で図２２を参照して説明する。
【０１４６】
その後、リオーガニゼーション処理部１４２は、移行した論理ボリューム３１の情報、移行元の物理ボリューム２２の情報及び移行先の物理ボリューム２２の情報をボリューム管理部１１２へ通知する。ボリューム管理部１１２は、通知を受けて、ＰＶ管理テーブル１２２を更新する。さらに、ボリューム管理部１１２は、有効な論理ボリューム３１を有さない物理ボリューム２２をＳｃｒａｔｃｈＰＶＧへ移動する（ステップＳ３０９）。
【０１４７】
次に、図２２を参照して、本実施例に係る仮想テープライブラリ１による通常のリオーガニゼーション及びマイグレーションの流れについて説明する。図２２は、実施例に係る仮想テープライブラリによる通常のリオーガニゼーション及びマイグレーションの処理のフローチャートである。これは、図２１のステップＳ３０８で実行される処理の一例にあたる。ここでは、リオーガニゼーション実行の判定として、ＳｏｆｔＭｉｎｉｍｕｍ及びＨａｒｄＭｉｎｉｍｕｍを用いる場合で説明する。
【０１４８】
リオーガニゼーション処理部１４２は、ＳｔａｃｋｅｄＰＶＧから物理ボリューム２２を１つ選択する（ステップＳ４０１）。
【０１４９】
次に、リオーガニゼーション処理部１４２は、選択した物理ボリューム２２の有効な論理ボリューム３１の数をＰＶ管理テーブル１２２から取得する。さらに、リオーガニゼーション処理部１４２は、対象としているＳｔａｃｋｅｄＰＶＧ２１０のＨａｒｄＭｉｎｉｍｕｍ（ＨａｒｄＭｉｎ）、ＳｏｆｔＭｉｎｉｍｕｍ（ＳｏｆｔＭｉｎ）及び有効な論理ボリューム３１の基準率をＰＶＧ管理テーブル１２１から取得する。そして、リオーガニゼーション処理部１４２は、選択した物理ボリューム２２の有効な論理ボリューム３１の数がＨａｒｄＭｉｎｉｍｕｍ未満か否かを判定する（ステップＳ４０２）。ＨａｒｄＭｉｎｉｍｕｍ以上の場合（ステップＳ４０２：肯定）、リオーガニゼーション処理部１４２は、ステップＳ４０４へ進む。
【０１５０】
これに対して、ＨａｒｄＭｉｎｉｍｕｍ以上の場合（ステップＳ４０２：否定）、リオーガニゼーション処理部１４２は、有効な論理ボリューム３１の数がＳｏｆｔＭｉｎｉｍｕｍ未満且つ割合が基準率以下か否かを判定する（ステップＳ４０３）。有効な論理ボリューム３１の数がＳｏｆｔＭｉｎｉｍｕｍ以上又は割合が基準率より大きい場合（ステップＳ４０３：否定）、リオーガニゼーション処理部１４２は、ステップＳ４０５へ進む。
【０１５１】
これに対して、有効な論理ボリューム３１の数がＳｏｆｔＭｉｎｉｍｕｍ未満且つ割合が基準率以下の場合（ステップＳ４０３：肯定）、リオーガニゼーション処理部１４２は、リオーガニゼーション処理を実行する（ステップＳ４０４）。具体的には、リオーガニゼーション処理部１４２は、ボリューム管理部１１２にＳｃｒａｔｃｈＰＶＧ２２０から物理ボリューム２２を確保させ、選択した物理ボリューム２２の有効な論理ボリューム３１を確保した物理ボリューム２２へ移行する。
【０１５２】
そして、リオーガニゼーション処理部１４２は、対象のＳｔａｃｋｅｄＰＶＧ２１０に属する物理ボリューム２２の全てについて処理を行ったか否かを判定する（ステップＳ４０５）。処理を行っていない物理ボリューム２２が残っている場合（ステップＳ４０５：否定）、リオーガニゼーション処理部１４２は、ステップＳ４０１へ戻る。
【０１５３】
これに対して、全ての物理ボリューム２２に対する処理が完了している場合（ステップＳ４０５：肯定）、リオーガニゼーション処理部１４２は、マイグレーションの処理の実行をデータ管理部１４１に指示する。データ管理部１４１は、Ｐｎ個の物理ボリューム２２をＳｃｒａｔｃｈＰＶＧ２２０から確保する指示をボリューム管理部１１２へ通知する。ボリューム管理部１１２は、通知を受けて、Ｐｎ個の物理ボリューム２２をＳｃｒａｔｃｈＰＶＧ２２０から確保する（ステップＳ４０６）。
【０１５４】
その後、データ管理部１４１は、マイグレーションを実行する（ステップＳ４０７）。
【０１５５】
そして、ボリューム管理部１１２は、移行した論理ボリューム３１の情報、移行先の物理ボリューム２２の情報及び移行元の物理ボリューム２２の情報をデータ移行処理部１０４及びリオーガニゼーション処理部１４２から取得する。その後、ボリューム管理部１１２は、取得した情報にしたがってＰＶ管理テーブル１２２を更新する。そして、ボリューム管理部１１２は、ＳｔａｃｋｅｄＰＶＧ２１０に属する物理ボリューム２２のうち有効な論理ボリューム３１を有さない物理ボリューム２２をＳｃｒａｔｃｈＰＶＧ２２０へ移動する（ステップＳ４０８）。
【０１５６】
ここで、以上では、物理ボリューム２２としてテープ媒体を使用する場合で説明したが、物理ボリュームはこれに限らず、データがシーケンシャルに書き込まれ、データの更新時に無効領域が発生する媒体であれば他のものを用いてもよい。例えば、物理ボリューム２２が光ディスクであってもよいし、テープライブライブラリ装置２０の代わりにディスクライブラリを用いてもよい。
【０１５７】
以上に説明したように、本実施例に係るストレージ装置は、１つのＳｔａｃｋｅｄＰＶＧにおける無効領域の総容量が物理ボリュームの１つあたりの容量以上になった場合に、リオーガニゼーションを行い、１つ以上の物理ボリュームを未使用の状態にする。すなわち、管理者が設定したリオーガニゼーションのタイミング以前に、空き容量を確保することができる。これにより、まだＳｔａｃｋｅｄＰＶＧの物理ボリュームに空き容量の余裕があるうちに、未使用のボリュームを生成でき、ＳｃｒａｔｃｈＰＶＧに移行できるので、そのＳｃｒａｔｃｈＰＶＧを共有するＳｔａｃｋｅｄＰＶＧが使用可能な物理ボリュームを増やすことができる。そのため、本実施例に係るストレージ装置は、未使用の物理ボリュームの枯渇を防止することができる。例えば、管理者の見積もりミスによる未使用の物理ボリュームの枯渇や、同じＳｃｒａｔｃｈＰＶＧを共有するＳｔａｃｋｅｄＰＶＧからの物理ボリュームの使用が集中することによる未使用の物理ボリュームの枯渇を回避できる。
【０１５８】
（ハードウェア構成）
次に、図２３を参照して、本実施例に係る階層管理サーバ１０のハードウェア構成について説明する。図２３は、階層管理サーバのハードウェア構成図である。
【０１５９】
階層制御サーバ１０は、プロセッサ９１、ＲＡＭ（Random  Access  Memory）９２、内蔵ディスク９３、テープインタフェース９４、入力インタフェース９５、読取装置９６、ホストインタフェース９７及びディスクインタフェース９８を有する。
【０１６０】
ＲＡＭ９２、内蔵ディスク９３、テープインタフェース９４、入力インタフェース９５、読取装置９６、ホストインタフェース９７及びディスクインタフェース９８は、バスを介してプロセッサ９１に接続されている。
【０１６１】
入力インタフェース９５は、入力装置４１との間でデータを送受信するインタフェースであり、入力装置４１が接続される。
【０１６２】
読取装置９６は、ＣＤ（Compact Disc）やＤＶＤ（Digital  Versatile  Disk）といった可搬記憶媒体４２が挿入され、挿入された可搬記憶媒体４２の情報を読み取る。
【０１６３】
ディスクインタフェース９８は、ディスクアレイ装置３０との間でデータの送受信を行うためのインタフェースである。ディスクインタフェース９８には、ディスクアレイ装置３０が接続される。
【０１６４】
テープインタフェース９４は、テープライブラリ装置２０との間でデータの送受信を行うためのインタフェースである。テープインタフェース９４には、テープライブラリ装置２０が接続される。
【０１６５】
内蔵ディスク９３は、ハードディスクなどであり、例えば、図３に例示した情報格納部１０２の機能を実現する。例えば、ＰＶＧ管理テーブル１２１及びＰＶ管理テーブル１２２が内蔵ディスク９３に格納される。また、内蔵ディスク９３には、図３に例示したグループ管理部１０１、リードライト部１０３、データ移行処理部１０４及び判定部１０５の機能を実現するプログラムを含む各種プログラムが格納されている。
【０１６６】
プロセッサ９１及びＲＡＭ９２は、図３に例示したグループ管理部１０１、リードライト部１０３、データ移行処理部１０４及び判定部１０５の機能を実現する。
【０１６７】
具体的には、プロセッサ９１は、内蔵ディスク９３から各種プログラムを読み出してＲＡＭ９２上に展開し実行することで、グループ管理部１０１、リードライト部１０３、データ移行処理部１０４及び判定部１０５の機能を実現する。
【０１６８】
また、ここでは、内蔵ディスク９３にグループ管理部１０１、リードライト部１０３、データ移行処理部１０４及び判定部１０５の機能を実現するプログラムが格納されている場合で説明したがこれに限らない。例えば、グループ管理部１０１、リードライト部１０３、データ移行処理部１０４及び判定部１０５の機能を実現するプログラムが格納された可搬記憶媒体４２を読取装置９６で読み取り、読み取ったプログラムを用いてプロセッサ９１及びＲＡＭ９２が各機能実現してもよい。
【符号の説明】
【０１６９】
１  仮想テープライブラリ
２  ホスト
１０  階層制御サーバ
２０  テープライブラリ装置
２１  ロボット
２２  物理ボリューム
２３  テープドライブ
３０  ディスクアレイ装置
３１  論理ボリューム
１０１  グループ管理部
１０２  情報格納部
１０３  リードライト部
１０４  データ移行処理部
１０５  判定部
１１１  グループ生成部
１１２  ボリューム管理部
１２１  ＰＶＧ管理テーブル
１２２  ＰＶ管理テーブル
１４１  データ管理部
１４２  リオーガニゼーション処理部
【図１】
0006464606.tif 000002
【図２】
0006464606.tif 000003
【図３】
0006464606.tif 000004
【図４】
0006464606.tif 000005
【図５】
0006464606.tif 000006
【図６】
0006464606.tif 000007
【図７】
0006464606.tif 000008
【図８】
0006464606.tif 000009
【図９】
0006464606.tif 000010
【図１０】
0006464606.tif 000011
【図１１】
0006464606.tif 000012
【図１２】
0006464606.tif 000013
【図１３】
0006464606.tif 000014
【図１４】
0006464606.tif 000015
【図１５】
0006464606.tif 000016
【図１６】
0006464606.tif 000017
【図１７】
0006464606.tif 000018
【図１８】
0006464606.tif 000019
【図１９】
0006464606.tif 000020
【図２０】
0006464606.tif 000021
【図２１】
0006464606.tif 000022
【図２２】
0006464606.tif 000023
【図２３】
0006464606.tif 000024