以下、図面を参照しながら、実施形態を詳細に説明する。
図1は、実施形態のストレージ制御装置の機能的構成例を示している。図1のストレージ制御装置101は、パリティ生成部111及び制御部112を含み、第1又は第2のストレージ制御方法により、第1の記憶装置102及び第2の記憶装置103を制御する。
ストレージ制御装置101から第2の記憶装置103に対するアクセス速度は、ストレージ制御装置101から第1の記憶装置102に対するアクセス速度よりも高速である。第1の記憶装置102は、例えば、記録媒体として磁気テープ又は光ディスク等の可搬型記録媒体を用いたライブラリ装置であり、第2の記憶装置103は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、又はディスクアレイ装置である。
第1のストレージ制御方法において、パリティ生成部111は、複数のデータを第1の記憶装置102に書き込む際に、それらのデータのうち第1のデータに付加されたダミーデータと、それらのデータのうち第1のデータ以外のデータとからパリティを生成する。そして、パリティ生成部111は、パリティを第2の記憶装置103に格納する。
制御部112は、複数のデータを第1の記憶装置102から読み出して第2の記憶装置103に書き込む際に、読み出し処理と復元処理とを並行して行う。読み出し処理は、第1のデータを第1の記憶装置102から読み出して第2の記憶装置103に書き込む処理であり、復元処理は、ダミーデータとパリティとを用いて複数のデータのうち第2のデータを復元する処理である。
第1のストレージ制御方法によれば、第1の記憶装置102から第2の記憶装置103へデータをコピーするのにかかる時間を短縮することができる。
第2のストレージ制御方法において、パリティ生成部111は、複数のデータを第1の記憶装置102に書き込む際に、それらのデータからパリティを生成し、パリティを第2の記憶装置103に格納する。
制御部112は、複数のデータを第1の記憶装置102から読み出して第2の記憶装置103に書き込む際に、複数のデータのうち第1のデータに対する読み出し処理を行い、さらに、複数のデータのうち第2のデータに対する読み出し処理と復元処理とを並行して行う。第1のデータに対する読み出し処理は、第1のデータを第1の記憶装置から読み出して第2の記憶装置に書き込む処理である。第2のデータは、複数の部分データの列を含む。第2のデータに対する読み出し処理は、複数の部分データの列の一方の端を始点として、各部分データを第1の記憶装置102から読み出して第2の記憶装置103に書き込む処理である。一方、第2のデータに対する復元処理は、複数の部分データの列の他方の端を始点として、読み出し処理が行われる方向とは逆の方向に、第1のデータとパリティとを用いて各部分データを復元する処理である。
第2のストレージ制御方法によれば、第1の記憶装置102から第2の記憶装置103へデータをコピーするのにかかる時間を短縮することができる。
図2は、図1のストレージ制御装置101を含むストレージシステムの構成例を示している。図2のストレージシステム201は、ストレージ制御装置101、テープライブラリ装置211、及びディスクアレイ装置212を含む。テープライブラリ装置211及びディスクアレイ装置212は、図1の第1の記憶装置102及び第2の記憶装置103にそれぞれ対応する。ストレージ制御装置101には、ホスト装置202が接続されている。
ホスト装置202は、ストレージ制御装置101へアクセス要求を送信することで、ストレージシステム201に格納されたデータにアクセスする。ストレージ制御装置101は、ホスト装置202とディスクアレイ装置212との間のデータ転送動作や、ディスクアレイ装置212とテープライブラリ装置211との間のデータ転送動作を制御する。
ストレージ制御装置101及びディスクアレイ装置212は、仮想テープ装置として動作し、テープライブラリ装置211は、バックエンドのライブラリ装置として動作する。ホスト装置202は、仮想テープ装置とデータの送受信を行うことで、テープライブラリ装置211に対して仮想的にアクセスすることができる。
テープライブラリ装置211は、複数の磁気テープを収容する格納部、1つ以上のテープドライブ、磁気テープを搬送する搬送機構、及びテープドライブと搬送機構とを制御する制御部を含む。
第1の記憶装置102として他のライブラリ装置を用いることも可能であり、ライブラリ装置の記録媒体としては、磁気テープ以外にも、光ディスク、光磁気ディスク、磁気ディスク等を用いることができる。
図3は、ストレージ制御装置101の構成例を示している。図3のストレージ制御装置101は、情報処理装置(コンピュータ)であり、Central Processing Unit(CPU)301、メモリ302、及び補助記憶装置303を含む。ストレージ制御装置101は、さらに、テープインタフェース304、入力インタフェース305、媒体駆動装置306、ホストインタフェース307、及びディスクインタフェース308を含む。これらの構成要素はバス309により互いに接続されている。
メモリ302は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、制御に用いられるプログラム及びデータを格納する。
CPU301(プロセッサ)は、例えば、メモリ302を利用してプログラムを実行することにより、図1のパリティ生成部111及び制御部112として動作する。
補助記憶装置303は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等である。この補助記憶装置303には、ハードディスクドライブも含まれる。ストレージ制御装置101は、補助記憶装置303にプログラム及びデータを格納しておき、それらをメモリ302にロードして使用することができる。
テープインタフェース304は、テープライブラリ装置211との間でデータを送受信する通信インタフェースである。ホストインタフェース307は、ホスト装置202との間でデータを送受信する通信インタフェースである。ディスクインタフェース308は、ディスクアレイ装置212との間でデータを送受信する通信インタフェースである。
入力インタフェース305には、入力装置311が接続される。入力装置311は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。入力装置311は、ストレージ制御装置101に含まれていてもよい。
媒体駆動装置306は、可搬型記録媒体312を駆動し、その記録内容にアクセスする。可搬型記録媒体312は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。この可搬型記録媒体312には、Compact Disk Read Only Memory (CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等も含まれる。ユーザ又はオペレータは、この可搬型記録媒体312にプログラム及びデータを格納しておき、それらをメモリ302にロードして使用することができる。
このように、制御に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体には、メモリ302、補助記憶装置303、及び可搬型記録媒体312のような、物理的な(非一時的な)記録媒体が含まれる。
ストレージ制御装置101は、さらにネットワーク接続装置を含んでいてもよい。このネットワーク接続装置は、Local Area Network(LAN)、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。ストレージ制御装置101は、プログラム及びデータを外部の装置からネットワーク接続装置を介して受信し、それらをメモリ302にロードして使用することができる。
なお、ストレージ制御装置101が図3のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータがストレージ制御装置101に指示を入力する必要がない場合は、入力インタフェース305及び入力装置311を省略してもよい。
図2のホスト装置202についても、図3のような情報処理装置として実装することができる。
ストレージ制御装置101からテープライブラリ装置211へのデータ転送は、1つ以上の論理ボリューム(LV)からなる論理ボリュームグループ(LVG)を単位として実行される。補助記憶装置303は、例えば、LV管理情報及びパリティ管理情報を制御データとして記憶し、メモリ302は、例えば、測定情報を制御データとして記憶する。LV管理情報及びパリティ管理情報は、ディスクアレイ装置212に格納されていてもよい。
LV管理情報は、テープライブラリ装置211に格納されている各論理ボリュームに関する情報であり、パリティ管理情報は、ディスクアレイ装置212に格納されている各論理ボリュームグループのパリティに関する情報である。また、測定情報は、ストレージシステム201の動作中に測定される情報に基づいて、更新される情報である。
ストレージ制御装置101のパリティ生成部111は、論理ボリュームグループをテープライブラリ装置211へ転送する際に、その論理ボリュームグループに属する各論理ボリュームのデータを用いてパリティを生成する。そして、パリティ生成部111は、生成したパリティをディスクアレイ装置212に格納する。
制御部112は、ホスト装置202からのアクセス要求に応じて、テープライブラリ装置211に対してデータの読み出しを要求する。次に、制御部112は、テープライブラリ装置211から読み出されたデータを、ディスクアレイ装置212に書き込む。そして、制御部112は、ディスクアレイ装置212からデータを読み出し、ホスト装置202へ送信する。
このとき、制御部112は、1つの論理ボリュームグループに属する複数の論理ボリュームのデータのうち、一部のデータをテープライブラリ装置211から読み出さずに、ディスクアレイ装置212に格納されたパリティを用いてそのデータを復元する。
テープライブラリ装置211からデータを読み出すのにかかる時間は、ディスクアレイ装置212からデータを読み出すのにかかる時間と比較して長いと考えられる。しかし、一部のデータを読み出さずにパリティを用いて復元することで、実際に読み出されるデータ量が減少し、テープライブラリ装置211からディスクアレイ装置212へ論理ボリュームグループをコピーするのにかかる時間が短縮される。
制御部112は、論理ボリュームグループ内の一部のデータを、その論理ボリュームグループ内のデータのうち、テープライブラリ装置211から読み出し済みのデータと、ディスクアレイ装置212に格納されたパリティとを用いて復元する。
図4は、LV管理情報の例を示している。図4のLV管理情報は、ストレージシステム上で定義された論理ボリュームが、どの磁気テープのどの位置に格納されているかを示す情報を保持する。LV管理情報は、論理ボリューム毎に設けられ、「LV番号」、「格納先テープ番号」、「LVサイズ」、及び「先頭アドレス」を含む。
「LV番号」は、対応する論理ボリュームを識別するための識別情報である。「格納先テープ番号」は、対応する論理ボリュームが格納された磁気テープを識別するための識別情報である。「LVサイズ」は、対応する論理ボリュームのサイズを示す情報である。「先頭アドレス」は、「格納先テープ番号」が示す磁気テープにおいて、対応する論理ボリュームが格納された領域の先頭アドレスを示す情報である。
制御部112は、アクセス対象の論理ボリュームがディスクアレイ装置212内に存在しない場合、LV管理情報を参照して、その論理ボリュームが格納されている磁気テープを特定する。そして、制御部112は、特定した磁気テープからその論理ボリュームのデータを読み出して、ディスクアレイ装置212に書き込む。
図5は、パリティ管理情報の例を示している。図5のパリティ管理情報は、複数の論理ボリュームグループに共通する情報として「パリティサイズ」を含み、論理ボリュームグループ毎にLVG情報を含む。「パリティサイズ」は、パリティの1ブロック当たりのサイズを示し、データの1ブロック当たりのサイズであるブロックサイズと一致する。
図6は、図5の各LVG情報の例を示している。図6のLVG情報は、「LVG番号」、「LV数」、「LVリスト」、「パリティ種別」、「LVサイズ1」、「LVサイズ2」、「LVサイズ3」、「LVサイズ4」、及び「ライン数」を含む。
「LVG番号」は、対応する論理ボリュームグループを識別するための識別情報である。「LV数」は、対応する論理ボリュームグループに属する論理ボリュームの数を示す。「LVリスト」は、対応する論理ボリュームグループに属する論理ボリュームのLV番号のリストである。なお、どの論理ボリュームグループにどの論理ボリュームを所属させるかは、例えば、ホスト装置202を通じてユーザが設定可能であり、「LV数」及び「LVリスト」には、ユーザの設定操作に応じた情報が登録される。
「パリティ種別」は、対応する論理ボリュームグループをテープライブラリ装置211内の磁気テープに書き込む際に生成されるパリティの種別を示す。1種類のパリティ(パリティP)のみを生成する場合は、「パリティ種別」として「シングルパリティ」が登録され、2種類のパリティ(パリティPとパリティQ)を生成する場合は、「パリティ種別」として「ダブルパリティ」が登録される。なお、「パリティ種別」についても、例えば、ユーザの設定操作に応じた情報が登録される。
「LVサイズ1」は、対応する論理ボリュームグループに属する論理ボリュームのうち、最大の論理ボリュームのサイズを示す。「LVサイズ2」は、対応する論理ボリュームグループに属する論理ボリュームのうち、2番目に大きい論理ボリュームのサイズを示す。「LVサイズ3」は、対応する論理ボリュームグループに属する論理ボリュームのうち、3番目に大きい論理ボリュームのサイズを示す。「LVサイズ4」は、対応する論理ボリュームグループに属する論理ボリュームのうち、最小の論理ボリュームのサイズを示す。
「ライン数」は、対応する論理ボリュームグループに属する論理ボリュームのうち、最大の論理ボリュームに含まれるブロックの数を示す。「ライン数」は、「LVサイズ1」を「パリティサイズ」(ブロックサイズ)で除算することで得られる。
「LVサイズ1」、「LVサイズ2」、「LVサイズ3」、「LVサイズ4」、及び「ライン数」は、例えば、論理ボリュームグループに所属させる論理ボリュームが設定されたときに、制御部112によって自動的に登録される。なお、「LVサイズ3」は、「パリティ種別」が「ダブルパリティ」である場合に登録される。
さらに、LVG情報は、ライン毎にライン情報を含む。ライン情報の数は、「ライン数」と一致する。
図7は、図6の各ライン情報の例を示している。図7のライン情報は、「ライン番号」、「LV数」、及び「LVリスト」を含む。
「ライン番号」は、対応するラインを識別するための識別情報である。「LV数」は、対応する論理ボリュームグループに属する論理ボリュームの数に、パリティの数を加えた数を示す。
論理ボリュームグループに対して生成されるパリティには、フローティング領域に属する1つ以上の論理ボリュームが割り当てられる。例えば、シングルパリティの場合は、フローティング領域に属する1つの論理ボリュームが割り当てられ、ダブルパリティの場合は、フローティング領域に属する2つの論理ボリュームが割り当てられる。したがって、ライン情報の「LV数」は、シングルパリティの場合はLVG情報の「LV数」+1であり、ダブルパリティの場合はLVG情報の「LV数」+2である。
「LVリスト」は、対応する論理ボリュームグループに属する論理ボリュームのLV番号と、パリティに割り当てられた論理ボリュームのLV番号とからなるリストである。
さらに、ライン情報は、論理ボリューム毎に格納アドレス情報を含む。格納アドレス情報の数は、ライン情報の「LV数」と一致する。
図8は、図7の各格納アドレス情報の例を示している。図8の格納アドレス情報は、「LV番号」、「開始アドレス」、及び「終了アドレス」を含む。
「LV番号」は、対応する論理ボリュームを識別するための識別情報である。「開始アドレス」は、対応する論理ボリュームのデータ又はパリティのうち、対応するラインに属する1ブロック分の部分データ又は部分パリティが格納される、ディスクアレイ装置212内の格納領域の開始アドレスを示す。「終了アドレス」は、その格納領域の終了アドレスを示す。
図9は、測定情報の例を示している。測定情報は、テープライブラリ装置211からデータを読み出してディスクアレイ装置212に書き込む際に、制御部112によって生成され、参照される。図9の測定情報は、「LVG番号」、「読み出し中ライン番号」、「復元中ライン番号1」、「復元中ライン番号2」、「初期間隔値1」、「初期間隔値2」、「読み出し処理速度」、「復元処理速度1」、及び「復元処理速度2」を含む。
「LVG番号」は、処理対象の論理ボリュームグループを識別するための識別情報である。制御部112は、1つの論理ボリュームグループのデータをテープライブラリ装置211から読み出してディスクアレイ装置212へ書き込むコピー処理を実行する際に、その論理ボリュームグループの「LVG番号」を含む測定情報をメモリ302内に生成する。その後、論理ボリュームグループ全体がディスクアレイ装置212に書き込まれるまでの間、生成された測定情報における「LVG番号」以外の情報が、制御部112によって随時更新される。
「読み出し中ライン番号」は、磁気テープから読み出し中の論理ボリュームにおいて、どのラインのデータが読み出し中であるかを示すライン番号である。「復元中ライン番号1」は、パリティを用いて復元中の論理ボリュームにおいて、どのラインのデータが復元中であるかを示すライン番号である。「復元中ライン番号2」は、2つの論理ボリュームのデータを並行して復元する場合に追加される情報であり、パリティを用いて復元中の2番目の論理ボリュームにおいて、どのラインのデータが復元中であるかを示すライン番号である。
「初期間隔値1」は、パリティを用いてデータを復元するタイミングを決定するために用いられるライン数を示す。制御部112は、ある論理ボリュームにおける復元中のラインと、別の論理ボリュームにおける読み出し中又は復元中のラインとの間隔が、「初期間隔値1」が示すライン数以上になるように制御する。
「初期間隔値2」は、2つの論理ボリュームのデータを並行して復元する場合に追加される情報である。「初期間隔値2」は、2つの論理ボリュームのうち2番目の論理ボリュームのデータを、パリティを用いて復元するタイミングを決定するために用いられるライン数を示す。「初期間隔値1」及び「初期間隔値2」は、制御部112によって計算される。
「読み出し処理速度」は、制御部112による磁気テープからの論理ボリュームの読み出し処理速度の測定結果であり、単位時間当たりに読み出されるデータのサイズを示す。「復元処理速度1」は、制御部112によるパリティを用いた論理ボリュームの復元処理速度の測定結果であり、単位時間当たりに復元されるデータのサイズを示す。「復元処理速度2」は、2つの論理ボリュームのデータを並行して復元する場合に追加される情報であり、2つの論理ボリュームのうち2番目の論理ボリュームの復元処理速度の測定結果を示す。
図10は、第1及び第2のストレージ制御方法において、ディスクアレイ装置212のデータをテープライブラリ装置211へ書き込む書き込み処理の例を示すフローチャートである。
まず、制御部112は、図5のパリティ管理情報において、書き込み対象の論理ボリュームグループのLVG番号に対応するLVG情報を参照し、LVリストに含まれる各LV番号を読み出す(ステップ1001)。
次に、制御部112は、図4のLV管理情報を参照して、各LV番号に対応するLVサイズを読み出し(ステップ1002)、すべてのLVサイズが同じであるか否かをチェックする(ステップ1003)。
すべてのLVサイズが同じでない場合(ステップ1003,NO)、制御部112は、その論理ボリュームグループに属する論理ボリュームのうち、最大サイズの論理ボリューム以外の論理ボリュームに対してダミーデータを付加する(ステップ1004)。
ダミーデータは、各論理ボリュームのデータと区別可能なデータであり、例えば、“0”のような所定値を有する。最大サイズの論理ボリューム以外の論理ボリュームに対して、その論理ボリュームのサイズと最大サイズとの差分のサイズのダミーデータを付加することで、各論理ボリュームのサイズを最大サイズに揃えることができる。
なお、複数の論理ボリュームの差分のサイズの和に対応するダミーデータの格納領域を確保する必要はなく、例えば、1ブロックのサイズの格納領域だけを確保してもよい。そして、その格納領域に1ブロック分のダミーデータを格納しておき、各論理ボリュームに付加されたダミーデータの格納アドレス情報として、その格納領域のアドレスを登録すればよい。この場合、図7の格納アドレス情報のうちダミーデータの格納アドレス情報については、図8の開始アドレス及び終了アドレスとして、ダミーデータの格納領域の開始アドレス及び終了アドレスが登録される。
以下の説明では、論理ボリュームにダミーデータが付加されているとき、付加されたダミーデータを含む全体のデータを論理ボリュームのデータと呼ぶことがある。ただし、ダミーデータは、パリティ生成のために一時的に付加されるデータであるため、テープライブラリ装置211に書き込まれる必要はない。
次に、パリティ生成部111は、各論理ボリュームのブロックのデータをライン番号順にディスクアレイ装置212から読み出し、それらのデータを用いてパリティを生成する(ステップ1005)。「パリティ種別」は「シングルパリティ」の場合、パリティPが生成され、「パリティ種別」が「ダブルパリティ」の場合、パリティP及びパリティQが生成される。
このとき、パリティ生成部111は、ライン番号に対応する図7のライン情報を参照して、LVリストに含まれる各論理ボリュームのLV番号を読み出す。そして、パリティ生成部111は、そのLV番号に対応する図8の格納アドレス情報を参照して、開始アドレス及び終了アドレスにより示されるディスクアレイ装置212の格納領域から、対応するブロックのデータを読み出す。
最大サイズの論理ボリューム以外の論理ボリュームでは、読み出されるブロックのデータがダミーデータではない場合もあり、ダミーデータである場合もある。最大サイズの論理ボリューム以外の論理ボリュームに対してダミーデータを付加することで、各論理ボリュームのサイズが均等でない場合でも、パリティを生成できるようになる。
パリティ生成部111は、図7のライン情報のLVリストに含まれる、パリティに割り当てられた論理ボリュームのLV番号を読み出す。そして、パリティ生成部111は、そのLV番号に対応する図8の格納アドレス情報を参照して、開始アドレス及び終了アドレスにより示されるディスクアレイ装置212の格納領域に、生成したパリティを書き込む。
次に、制御部112は、各論理ボリュームのデータをディスクアレイ装置212から読み出してテープライブラリ装置211に書き込む(ステップ1006)。
このとき、制御部112は、各ライン番号に対応する図7のライン情報を参照して、LVリストに含まれる各論理ボリュームのLV番号を読み出す。次に、制御部112は、そのLV番号に対応する図8の格納アドレス情報を参照して、開始アドレス及び終了アドレスにより示されるディスクアレイ装置212の格納領域から、対応するブロックのデータを読み出す。そして、制御部112は、読み出したデータをテープライブラリ装置211へ転送する。
テープライブラリ装置211は、例えば、未使用の磁気テープを順次選択して、制御部112から受信したデータを選択した磁気テープに書き込んでいく。制御部112は、各論理ボリュームのデータが書き込まれた磁気テープのテープ番号と、その磁気テープにおける書き込み位置を、テープライブラリ装置211から受信する。そして、制御部112は、受信したテープ番号及び書き込み位置を、各論理ボリュームのLV番号に対応する図4のLV管理情報に、格納先テープ番号及び先頭アドレスとして登録する。
なお、すべてのLVサイズが同じである場合(ステップ1003,YES)、パリティ生成部111及び制御部112は、ダミーデータを付加することなく、ステップ1005以降の処理を行う。
次に、図11から図20までを参照しながら、第1のストレージ制御方法の実施形態について説明する。
図11は、第1のストレージ制御方法において、1つの論理ボリュームグループのデータをテープライブラリ装置211から読み出してディスクアレイ装置212へ書き込むコピー処理の例を示すフローチャートである。この例では、「パリティ種別」は「シングルパリティ」である。
この場合、図6のLVG情報のうち、「LVサイズ1」、「LVサイズ2」、及び「LVサイズ3」を省略することができ、図9の測定情報のうち、「復元中ライン番号2」、「初期間隔値2」、及び「復元処理速度2」を省略することができる。
まず、制御部112は、図5のパリティ管理情報において、コピー対象の論理ボリュームグループのLVG番号に対応するLVG情報を参照し、LVリストに含まれる各LV番号を読み出す(ステップ1101)。
次に、制御部112は、図4のLV管理情報を参照して、各LV番号に対応するLVサイズを読み出し(ステップ1102)、LVサイズに基づいて論理ボリュームの処理順位を決定する(ステップ1103)。
このとき、制御部112は、例えば、コピー対象の論理ボリュームグループに属するN個(Nは2以上の整数)の論理ボリュームのうち、最大サイズの論理ボリュームの処理順位をN番目(最後)に決定する。また、制御部112は、例えば、最小サイズの論理ボリュームの処理順位を(N−1)番目に決定する。そして、Nが3以上の整数の場合、制御部112は、残りの(N−2)個の論理ボリュームの処理順位を、例えば、サイズが小さい方から順に1番目〜(N−2)番目に決定する。
次に、制御部112は、読み出しが未完了である残りの論理ボリュームの数が2であるか否かチェックする(ステップ1104)。残りの論理ボリュームの数が3以上である場合(ステップ1104,NO)、制御部112は、読み出し順が最も前の論理ボリュームを選択する(ステップ1105)。そして、制御部112は、選択した論理ボリュームのデータをテープライブラリ装置211から読み出して、ディスクアレイ装置212に書き込む。
このとき、制御部112は、選択した論理ボリュームのLV番号に対応する図4のLV管理情報を参照して、格納先テープ番号により示される磁気テープからブロック単位でデータを読み出す。次に、制御部112は、各ブロックのライン番号に対応する図7のライン情報において、LV番号に対応する図8の格納アドレス情報を参照する。そして、制御部112は、開始アドレス及び終了アドレスにより示されるディスクアレイ装置212の格納領域に、読み出したデータを書き込み、ステップ1104以降の処理を繰り返す。
一方、残りの論理ボリューム数が2である場合(ステップ1104,YES)、制御部112は、コピー対象の論理ボリュームグループのLVG番号に対応する測定情報をメモリ302内に生成する(ステップ1106)。
このとき、制御部112は、図9の測定情報の「読み出し中ライン番号」に、論理ボリュームグループにおける先頭のライン番号を登録し、「読み出し処理速度」に所定の初期値を登録する。
そして、制御部112は、読み出し処理と復元処理とを並行して行う並行処理を実行する(ステップ1107)。
図12は、図11のステップ1107における読み出し処理の例を示すフローチャートである。図12の読み出し処理の対象は、処理順位が(N−1)番目の論理ボリューム(最小サイズの論理ボリューム)である。
まず、制御部112は、読み出し処理の対象である論理ボリュームのブロックのうち、測定情報の「読み出し中ライン番号」に対応するブロックを選択する(ステップ1201)。そして、制御部112は、選択したブロックのデータをテープライブラリ装置211から読み出して、ディスクアレイ装置212に書き込む。
このとき、制御部112は、読み出し処理の対象である論理ボリュームのLV番号に対応する図4のLV管理情報を参照して、格納先テープ番号により示される磁気テープから、選択したブロックのデータを読み出す。次に、制御部112は、選択したブロックのライン番号に対応する図7のライン情報において、LV番号に対応する図8の格納アドレス情報を参照する。そして、制御部112は、開始アドレス及び終了アドレスにより示されるディスクアレイ装置212の格納領域に、読み出したデータを書き込む。
次に、制御部112は、論理ボリュームに含まれる全ブロックの読み出しが完了したか否かをチェックする(ステップ1202)。全ブロックの読み出しが完了していない場合(ステップ1202,NO)、制御部112は、論理ボリュームの先頭ブロックから直前に読み出したブロックまでの読み出し処理速度を計算する(ステップ1203)。そして、制御部112は、図9の測定情報の「読み出し処理速度」を、計算した読み出し処理速度により更新する。
なお、制御部112は、(N−1)番目の論理ボリュームの読み出し処理速度の代わりに、1番目の論理ボリュームの先頭ブロックから(N−1)番目の論理ボリュームの直前に読み出したブロックまでの読み出し処理速度を計算してもよい。
次に、制御部112は、測定情報の「読み出し中ライン番号」を1だけインクリメントして(ステップ1204)、ステップ1201以降の処理を繰り返す。そして、全ブロックの読み出しが完了した場合(ステップ1202,YES)、読み出し処理を終了する。
図13は、図11のステップ1107における復元処理の例を示すフローチャートである。図13の復元処理の対象は、処理順位がN番目の論理ボリューム(最大サイズの論理ボリューム)であり、復元処理は、図12の読み出し処理と並行して実行される。
図14〜図20は、第1のストレージ制御方法に基づくコピー処理の例を示している。この例では、コピー対象の論理ボリュームグループに属する論理ボリュームは、LV0及びLV1の2つであり、「パリティ種別」は「シングルパリティ」である。
図14に示す第1の状態において、LV0は、最大サイズの論理ボリュームに対応し、そのサイズは17ブロック分に相当する。一方、LV1は、最小サイズの論理ボリュームに対応し、そのサイズは11ブロック分に相当する。したがって、ディスクアレイ装置212内におけるLV0及びLV1の各々の格納領域は、ライン番号0〜ライン番号16に対応する17ブロックの領域である。この場合、LV0は、復元処理の対象の論理ボリュームであり、LV1は、読み出し処理の対象の論理ボリュームである。
LV1の格納領域のうち、ライン番号0〜ライン番号10に対応する11ブロックの領域には、テープライブラリ装置211から読み出されるデータが格納される。また、ライン番号11〜ライン番号16に対応する6ブロックの領域には、ダミーデータが格納されている。一方、LV0の格納領域には、LV1のデータとパリティとを用いて復元されたデータが格納される。
まず、制御部112は、読み出し処理の対象である論理ボリュームのダミーデータが格納されているブロックのうち、先頭ブロックのライン番号を、図9の測定情報の「復元中ライン番号1」に登録する(ステップ1301)。そして、測定情報の「復元処理速度1」に所定の初期値を登録する。
次に、制御部112は、復元処理の対象である論理ボリュームのブロックのうち、「復元中ライン番号1」に対応するブロックを選択する(ステップ1303)。そして、制御部112は、同じライン番号に対応する他の論理ボリュームのブロック及びパリティのブロックのデータを、ディスクアレイ装置212から読み出す。制御部112は、読み出した各ブロックのデータを用いて、選択したブロックのデータを復元し、復元したブロックのデータをディスクアレイ装置212に書き込む。
このとき、制御部112は、「復元中ライン番号1」に対応する図7のライン情報を参照して、LVリストに含まれる各論理ボリュームのLV番号を読み出す。そして、制御部112は、そのLV番号に対応する図8の格納アドレス情報を参照して、開始アドレス及び終了アドレスにより示されるディスクアレイ装置212の格納領域から、対応するブロックのデータを読み出す。
「復元中ライン番号1」に対応する他の論理ボリュームのうち、読み出し処理の対象以外の論理ボリュームでは、読み出されるブロックのデータが、図11のステップ1105でテープライブラリ装置211から読み出されたデータである場合がある。また、読み出し処理の対象以外の論理ボリュームでは、読み出されるブロックのデータがダミーデータである場合もある。一方、読み出し処理の対象である論理ボリュームでは、読み出されるブロックのデータはダミーデータである。いずれの論理ボリュームについても、「復元中ライン番号1」に対応するブロックのデータは、既にディスクアレイ装置212に格納されている。
制御部112は、復元処理の対象である論理ボリュームのLV番号に対応する図8の格納アドレス情報を参照して、開始アドレス及び終了アドレスにより示されるディスクアレイ装置212の格納領域に、復元したブロックのデータを書き込む。
次に、制御部112は、復元処理の対象である論理ボリュームの全ブロックの復元が完了したか否かをチェックする(ステップ1304)。全ブロックの復元が完了していない場合(ステップ1304,NO)、制御部112は、論理ボリュームの復元開始位置のブロックから直前に復元したブロックまでの復元処理速度を計算する(ステップ1305)。そして、制御部112は、図9の測定情報の「復元処理速度1」を、計算した復元処理速度により更新する。
次に、制御部112は、測定情報の「復元中ライン番号1」を1だけインクリメントする(ステップ1306)。ただし、現在の「復元中ライン番号1」が最終ラインのライン番号である場合は、「復元中ライン番号1」を先頭ラインのライン番号に更新する。
次に、制御部112は、測定情報の「復元中ライン番号1」と「読み出し中ライン番号」の差分が、所定値以下か否かをチェックする(ステップ1307)。所定値は、図6のLVG情報の「ライン数」と比較して十分に小さい値であり、例えば、“1”又は“2”であってもよい。差分が所定値より大きい場合(ステップ1307,NO)、制御部112は、ステップ1303以降の処理を繰り返す。
一方、差分が所定値以下である場合(ステップ1307,YES)、制御部112は、初期間隔値Lpを次式(1)により計算し、測定情報の「初期間隔値1」に登録する(ステップ1308)。
Lp=Vr(L2/Vr−L1/Vp)/Bs (1)
式(1)のBsは、ブロックサイズであり、図5のパリティ管理情報の「パリティサイズ」と一致する。
L1は、復元処理の対象である論理ボリュームのデータのうち、復元未完了のデータのサイズである。ここでは、復元未完了のブロックの総サイズがL1として用いられる。
読み出し処理の対象である論理ボリュームのダミーデータとパリティとを用いてデータを復元している間は、「復元中ライン番号1」と「読み出し中ライン番号」の差分が所定値以下になることはない。その差分が所定値以下になる可能性があるのは、「復元中ライン番号1」が先頭ラインのライン番号に更新された後である。
この場合、制御部112は、図9の測定情報の「復元中ライン番号1」とBsとを用いて、復元が完了したブロックの総サイズを求めることができる。そして、制御部112は、図6のLVG情報の「LVサイズ4」から、復元が完了したブロックの総サイズを減算することで、復元未完了のブロックの総サイズを求めることができる。
L2は、読み出し処理の対象である論理ボリュームのデータのうち、読み出し未完了のデータのサイズである。ここでは、読み出し未完了のブロックの総サイズがL2として用いられる。
制御部112は、図9の測定情報の「読み出し中ライン番号」とBsとを用いて、読み出しが完了したブロックの総サイズを求めることができる。そして、制御部112は、図6のLVG情報の「LVサイズ4」から、読み出しが完了したブロックの総サイズを減算することで、読み出し未完了のブロックの総サイズを求めることができる。
Vpは、制御部112によるパリティを用いた論理ボリュームの復元処理速度の測定結果であり、測定情報の「復元処理速度1」に登録されている。Vrは、読み出し処理の対象である論理ボリュームの読み出し処理速度であり、測定情報の「読み出し処理速度」に登録されている。
式(1)のL2/Vrは、読み出し処理の対象である論理ボリュームの読み出しが完了するまでの予想時間であり、L1/Vpは、復元処理の対象である論理ボリュームの復元が完了するまでの予想時間である。初期間隔値Lpは、L2/VrとL1/Vpとの差分に応じたライン数である。
パリティを用いた復元処理は、テープライブラリ装置211からの読み出し処理より高速に実行されるため、L2/VrよりL1/Vpの方が短くなる場合があり得る。そこで、制御部112は、初期間隔値Lpを用いて復元中のラインの位置を調整することで、読み出し処理の終了タイミングと復元処理の終了タイミングとがほぼ同じになるように制御することができる。
ただし、初期間隔値Lpの値は1以上の整数であり、式(1)の計算では、小数点以下第1位の値を切り上げるとともに、切り上げ後の値が1未満になる場合、計算結果は1に固定される。初期間隔値Lpを1以上にする理由は、復元対象のブロックと同じライン番号のブロックの読み出しが完了するまでは、復元対象のブロックの復元を開始できないからである。
次に、制御部112は、測定情報の「復元中ライン番号1」と「読み出し中ライン番号」の差分が、初期間隔値Lp以上か否かをチェックする(ステップ1309)。差分が初期間隔値Lp未満である場合(ステップ1309,NO)、制御部112は、差分が初期間隔値Lp以上になるまで待機する。
一方、差分が初期間隔値Lp以上である場合(ステップ1309,YES)、制御部112は、ステップ1303以降の処理を繰り返す。そして、全ブロックの復元が完了した場合(ステップ1304,YES)、制御部112は、復元処理を終了する。
このような第1のストレージ制御方法に基づくコピー処理によれば、残りの論理ボリューム数が2になった時点で、(N−1)番目の論理ボリュームの読み出し処理とN番目の論理ボリュームの復元処理とが並行して実行される。このため、すべての論理ボリュームをテープライブラリ装置211から読み出す場合と比較して、テープライブラリ装置211からディスクアレイ装置212へデータをコピーするのにかかる時間を短縮することができる。
このとき、コピー対象の論理ボリュームグループに属するN個の論理ボリュームのうち、最大サイズの論理ボリュームの処理順位をN番目に決定して、その論理ボリュームを復元処理の対象にすることで、パリティを用いて復元されるデータの量が最大になる。パリティを用いた復元処理は、テープライブラリ装置211からの読み出し処理より高速に実行されるため、復元処理のデータ量が最大になれば、コピー処理時間の短縮効果が大きくなる。
さらに、最小サイズの論理ボリュームの処理順位を(N−1)番目に決定して、その論理ボリュームを読み出し処理の対象にすることで、復元処理と並行してテープライブラリ装置211から読み出されるデータの量が最小になる。このため、コピー処理時間の短縮効果がさらに大きくなる。
しかしながら、N個の論理ボリュームの処理の順番は、この順番に限られることはなく、N番目の論理ボリュームのサイズが(N−1)番目の論理ボリュームのサイズより大きければ、他の順番であっても構わない。
図14〜図20に示すコピー処理の例では、図11のステップ1103において、LV1の処理順位は1番目に決定され、LV0の処理順位は2番目(最後)に決定される。この例では、コピー対象の論理ボリュームグループに属する論理ボリュームの数が2であるため、ステップ1105の処理は行われずに、最初からステップ1107の並行処理が実行される。ステップ1107の並行処理において、読み出し処理は、LV1のライン番号0のブロックから開始され、復元処理は、LV0のライン番号11のブロックから開始される。
まず、図14に示す第1の状態では、ライン番号0に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号11に対応するLV1のダミーデータとパリティとを用いて、LV0のライン番号11のデータが復元される。
次に、図15に示す第2の状態では、ライン番号1に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号12に対応するLV1のダミーデータとパリティとを用いて、LV0のライン番号12のデータが復元される。
このような処理が繰り返された後、図16に示す第3の状態では、ライン番号4に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号16に対応するLV1のダミーデータとパリティとを用いて、LV0のライン番号16のデータが復元される。ここで、復元中のラインが最終ラインに達したため、次の復元処理は先頭ラインから実行される。
次に、図17に示す第4の状態では、ライン番号5に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号0に対応するLV1のダミーデータとパリティとを用いて、LV0のライン番号0のデータが復元される。
このような処理が繰り返された後、図18に示す第5の状態では、ライン番号10に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号7に対応するLV1のダミーデータとパリティとを用いて、LV0のライン番号7のデータが復元される。ここで、LV1の全ブロックの読み出しが完了したため、読み出し処理が終了する。
次に、図19に示す第6の状態では、ライン番号8に対応するLV1のダミーデータとパリティとを用いて、LV0のライン番号8のデータが復元される。
このような処理が繰り返された後、図20に示す第7の状態では、ライン番号10に対応するLV1のダミーデータとパリティとを用いて、LV0のライン番号10のデータが復元される。ここで、LV0の全ブロックの復元が完了したため、復元処理が終了する。
次に、図21から図30までを参照しながら、第2のストレージ制御方法において「パリティ種別」が「シングルパリティ」の場合の実施形態を説明する。この場合、1つの論理ボリュームグループのコピー処理の例は、図11のフローチャートと同様である。
この場合、図6のLVG情報のうち、「LVサイズ3」及び「LVサイズ4」を省略することができ、図9の測定情報のうち、「復元中ライン番号2」、「初期間隔値2」、及び「復元処理速度2」を省略することができる。
ただし、図11のステップ1103において、制御部112は、コピー対象の論理ボリュームグループに属するN個の論理ボリュームの処理順位を、例えば、サイズが小さい方から順に1番目〜N番目に決定する。
図21は、図11のステップ1107において行われる読み出し処理の例を示すフローチャートである。図21の読み出し処理の対象は、処理順位が(N−1)番目の論理ボリューム(2番目に大きいサイズの論理ボリューム)と、処理順位がN番目の論理ボリューム(最大サイズの論理ボリューム)である。
図21のステップ2101〜ステップ2104の処理は、図12のステップ1201〜ステップ1204の処理と同様である。
ステップ2102において全ブロックの読み出しが完了した場合(ステップ2102,YES)、制御部112は、読み出し処理の対象を、(N−1)番目の論理ボリュームからN番目の論理ボリュームに変更する(ステップ2105)。そして、制御部112は、制御部112は、図9の測定情報の「読み出し中ライン番号」を最後のラインのライン番号に変更する。
これにより、N番目の論理ボリュームに対して、図21の読み出し処理と図22の復元処理とを並行して行う並行処理が開始される。このとき、N番目の論理ボリュームに対する読み出し処理は、最終ブロックから先頭ブロックに向かう方向に行われ、N番目の論理ボリュームに対する復元処理は、先頭ブロックから最終ブロックに向かう方向に行われる。したがって、読み出し処理と復元処理は互いに逆の方向に行われる。
次に、制御部112は、変更された読み出し処理の対象である論理ボリュームのブロックのうち、「読み出し中ライン番号」に対応するブロックを選択する(ステップ2106)。そして、制御部112は、選択したブロックのデータをテープライブラリ装置211から読み出して、ディスクアレイ装置212に書き込む。
このとき、制御部112は、N番目の論理ボリュームのLV番号に対応する図4のLV管理情報を参照して、格納先テープ番号により示される磁気テープから、選択したブロックのデータを読み出す。次に、制御部112は、選択したブロックのライン番号に対応する図7のライン情報において、LV番号に対応する図8の格納アドレス情報を参照する。そして、制御部112は、開始アドレス及び終了アドレスにより示されるディスクアレイ装置212の格納領域に、読み出したデータを書き込む。
次に、制御部112は、N番目の論理ボリュームに含まれる全ブロックのコピーが完了したか否かをチェックする(ステップ2107)。全ブロックのコピーが完了するのは、各ブロックのデータが復元されるか又はテープライブラリ装置211から読み出されて、ディスクアレイ装置212に書き込まれた時点である。
全ブロックのコピーが完了していない場合(ステップ2107,NO)、制御部112は、測定情報の「読み出し中ライン番号」を1だけデクリメントして(ステップ2108)、ステップ2106以降の処理を繰り返す。そして、全ブロックのコピーが完了した場合(ステップ2107,YES)、読み出し処理を終了する。
図22は、図11のステップ1107において行われる復元処理の例を示すフローチャートである。図22の復元処理の対象は、処理順位がN番目の論理ボリューム(最大サイズの論理ボリューム)であり、復元処理は、図21の読み出し処理と並行して実行される。
まず、制御部112は、図9の測定情報の「復元中ライン番号1」に、先頭ラインのライン番号を登録する(ステップ2201)。そして、測定情報の「復元処理速度1」に所定の初期値を登録する。
次に、制御部112は、初期間隔値Lpを式(1)により計算し、測定情報の「初期間隔値1」に登録する(ステップ2202)。このとき、図6のLVG情報の「LVサイズ1」がL1として用いられ、「LVサイズ2」がL2として用いられる。
次に、制御部112は、測定情報の「復元中ライン番号1」と「読み出し中ライン番号」の差分が、初期間隔値Lp以上か否かをチェックする(ステップ2203)。差分が初期間隔値Lp未満である場合(ステップ2203,NO)、制御部112は、差分が初期間隔値Lp以上になるまで待機する。
一方、差分が初期間隔値Lp以上である場合(ステップ2203,YES)、制御部112は、復元処理の対象である論理ボリュームのブロックのうち、「復元中ライン番号1」に対応するブロックを選択する(ステップ2204)。そして、制御部112は、同じライン番号に対応する他の論理ボリュームのブロック及びパリティのブロックのデータを、ディスクアレイ装置212から読み出す。制御部112は、読み出した各ブロックのデータを用いて、選択したブロックのデータを復元し、復元したブロックのデータをディスクアレイ装置212に書き込む。
次に、制御部112は、復元処理の対象である論理ボリュームの全ブロックのコピーが完了したか否かをチェックする(ステップ2205)。全ブロックの復元が完了していない場合(ステップ2205,NO)、制御部112は、論理ボリュームの先頭ブロックから直前に復元したブロックまでの復元処理速度を計算する(ステップ2206)。そして、制御部112は、図9の測定情報の「復元処理速度1」を、計算した復元処理速度により更新する。
次に、制御部112は、測定情報の「復元中ライン番号1」を1だけインクリメントして(ステップ2207)、読み出し処理の対象が(N−1)番目の論理ボリュームからN番目の論理ボリュームに変更されているか否かをチェックする(ステップ2208)。読み出し処理の対象が変更されている場合(ステップ2208,YES)、制御部112は、ステップ2204以降の処理を繰り返す。
一方、読み出し処理の対象が変更されていない場合(ステップ2208,NO)、制御部112は、測定情報の「復元中ライン番号1」と「読み出し中ライン番号」の差分が、所定値以下か否かをチェックする(ステップ2209)。差分が所定値より大きい場合(ステップ2209,NO)、制御部112は、ステップ2204以降の処理を繰り返す。
一方、差分が所定値以下である場合(ステップ2209,YES)、制御部112は、初期間隔値Lpを式(1)により再計算し、測定情報の「初期間隔値1」に登録する(ステップ2210)。
このとき、復元未完了のブロックの総サイズがL1として用いられる。制御部112は、図9の測定情報の「復元中ライン番号1」とBsとを用いて、復元が完了したブロックの総サイズを求めることができる。そして、制御部112は、図6のLVG情報の「LVサイズ1」から、復元が完了したブロックの総サイズを減算することで、復元未完了のブロックの総サイズを求めることができる。
さらに、読み出し未完了のブロックの総サイズがL2として用いられる。制御部112は、図9の測定情報の「読み出し中ライン番号」とBsとを用いて、読み出しが完了したブロックの総サイズを求めることができる。そして、制御部112は、図6のLVG情報の「LVサイズ2」から、読み出しが完了したブロックの総サイズを減算することで、読み出し未完了のブロックの総サイズを求めることができる。
次に、制御部112は、測定情報の「復元中ライン番号1」と「読み出し中ライン番号」の差分が、初期間隔値Lp以上か否かをチェックする(ステップ2211)。差分が初期間隔値Lp未満である場合(ステップ2211,NO)、制御部112は、差分が初期間隔値Lp以上になるまで待機する。
一方、差分が初期間隔値Lp以上である場合(ステップ2211,YES)、制御部112は、ステップ2204以降の処理を繰り返す。そして、全ブロックのコピーが完了した場合(ステップ2205,YES)、制御部112は、復元処理を終了する。
このような第2のストレージ制御方法に基づくコピー処理によれば、第1のストレージ制御方法に基づくコピー処理と同様に、(N−1)番目の論理ボリュームの読み出し処理とN番目の論理ボリュームの復元処理とが並行して実行される。このため、すべての論理ボリュームをテープライブラリ装置211から読み出す場合と比較して、テープライブラリ装置211からディスクアレイ装置212へデータをコピーするのにかかる時間を短縮することができる。
さらに、(N−1)番目の論理ボリュームの読み出しが完了したとき、N番目の論理ボリュームの一部をテープライブラリ装置211から読み出す処理が開始される。これにより、N番目の論理ボリュームの一部を復元する処理と、他の一部をテープライブラリ装置211から読み出す処理とが並行して行われる。このため、コピー処理時間の短縮効果がさらに大きくなる。
N個の論理ボリュームの処理の順番は、サイズが小さい順に限られることはなく、N番目の論理ボリュームのサイズが(N−1)番目の論理ボリュームのサイズより大きければ、他の順番であっても構わない。
図23〜図30は、第2のストレージ制御方法において「パリティ種別」が「シングルパリティ」の場合のコピー処理の例を示している。この例では、コピー対象の論理ボリュームグループに属する論理ボリュームは、LV0及びLV1の2つである。
図23に示す第1の状態において、LV0は、最大サイズの論理ボリュームに対応し、そのサイズは17ブロック分に相当する。一方、LV1は、2番目に大きいサイズの論理ボリュームに対応し、そのサイズは14ブロック分に相当する。したがって、ディスクアレイ装置212内におけるLV0及びLV1の各々の格納領域は、ライン番号0〜ライン番号16に対応する17ブロックの領域である。
LV1の格納領域のうち、ライン番号0〜ライン番号13に対応する14ブロックの領域には、テープライブラリ装置211から読み出されるデータが格納される。また、ライン番号14〜ライン番号16に対応する3ブロックの領域には、ダミーデータが格納されている。一方、LV0の格納領域には、LV1のデータとパリティとを用いて復元されたデータが格納される。
図11のステップ1103において、LV1の処理順位は1番目に決定され、LV0の処理順位は2番目(最後)に決定される。この例では、コピー対象の論理ボリュームグループに属する論理ボリュームの数が2であるため、ステップ1105の処理は行われずに、最初からステップ1107の並行処理が実行される。ステップ1107の並行処理において、読み出し処理は、LV1のライン番号0のブロックから開始され、復元処理は、LV0のライン番号0のブロックから開始される。
まず、図23に示す第1の状態では、ライン番号0に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。このとき、図22のステップ2202において計算されたLpが“3”であるとすると、「復元中ライン番号1」と「読み出し中ライン番号」の差分が“3”になるまで、LV0のデータの復元は開始されない。
次に、図24に示す第2の状態では、ライン番号3に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。このとき、「復元中ライン番号1」と「読み出し中ライン番号」の差分が“3”になったため、LV0のデータの復元が開始され、ライン番号0に対応するLV1のデータとパリティとを用いて、LV0のライン番号0のデータが復元される。
次に、図25に示す第3の状態では、ライン番号4に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。このとき、LV0の復元処理の方が速く進行しており、ライン番号2に対応するLV1のデータとパリティとを用いて、LV0のライン番号2のデータが復元される。
ここで、ステップ2209において再計算されたLpが“3”であるとすると、「復元中ライン番号1」と「読み出し中ライン番号」の差分が“3”より小さくなったため、LV0のデータの復元が一時的に停止される。
次に、図26に示す第4の状態では、ライン番号5に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。
次に、図27に示す第5の状態では、ライン番号6に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。このとき、「復元中ライン番号1」と「読み出し中ライン番号」の差分が“3”になったため、LV0のデータの復元が再開され、ライン番号3に対応するLV1のデータとパリティとを用いて、LV0のライン番号3のデータが復元される。
このような処理が繰り返された後、図28に示す第6の状態では、ライン番号13に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号8に対応するLV1のダミーデータとパリティとを用いて、LV0のライン番号8のデータが復元される。
ここで、LV1の全ブロックの読み出しが完了したため、図21のステップ2105において、読み出し処理の対象がLV1からLV0に変更され、「読み出し中ライン番号」がライン番号16に変更される。
次に、図29に示す第7の状態では、ライン番号16に対応するLV0のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。このとき、LV0の復元処理の方が速く進行しており、ライン番号10に対応するLV1のデータとパリティとを用いて、LV0のライン番号10のデータが復元される。
このような処理が繰り返された後、図30に示す第8の状態では、ライン番号14に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号13に対応するLV1のダミーデータとパリティとを用いて、LV0のライン番号13のデータが復元される。ここで、LV0の全ブロックのコピーが完了したため、読み出し処理及び復元処理が終了する。
次に、図31から図38までを参照しながら、第2のストレージ制御方法において「パリティ種別」が「ダブルパリティ」の場合の実施形態を説明する。
この場合、図6のLVG情報のうち、「LVサイズ2」及び「LVサイズ4」を省略することができ、図9の測定情報のうち、「復元中ライン番号2」、「初期間隔値2」、及び「復元処理速度2」を省略することができる。
図31は、1つの論理ボリュームグループのデータをテープライブラリ装置211から読み出してディスクアレイ装置212へ書き込むコピー処理の例を示すフローチャートである。
図31のステップ3101〜ステップ3103及びステップ3105〜ステップ3107の処理は、図11のステップ1101〜ステップ1103及びステップ1105〜ステップ1107の処理と同様である。
ただし、ステップ3103において、制御部112は、コピー対象の論理ボリュームグループに属するN個の論理ボリュームの処理順位を、例えば、サイズが小さい方から順に1番目〜N番目に決定する。
次に、制御部112は、読み出しが未完了である残りの論理ボリュームの数が3であるか否かチェックする(ステップ3104)。残りの論理ボリュームの数が4以上である場合(ステップ3104,NO)、制御部112は、ステップ3105の処理を行う。
一方、残りの論理ボリューム数が3である場合(ステップ3104,YES)、制御部112は、ステップ3106以降の処理を行う。
図32は、図31のステップ3107において行われる読み出し処理の例を示すフローチャートである。図32の読み出し処理の対象は、処理順位が(N−2)番目の論理ボリューム、(N−1)番目の論理ボリューム、及びN番目の論理ボリュームである。
図32のステップ3201〜ステップ3204の処理は、図12のステップ1201〜ステップ1204の処理と同様である。ただし、ステップ3201〜ステップ3204の処理は、(N−2)番目の論理ボリュームを対象として行われる。
ステップ3202において全ブロックの読み出しが完了した場合(ステップ3202,YES)、制御部112は、読み出し処理の対象を、(N−2)番目の論理ボリュームから(N−1)番目の論理ボリュームに変更する(ステップ3205)。そして、制御部112は、図9の測定情報の「読み出し中ライン番号」を、(N−1)番目の論理ボリュームにおける復元未完了のブロックのうち、最終ブロックのライン番号に変更する。
これにより、(N−1)番目の論理ボリュームに対して、図32の読み出し処理と図33の復元処理とを並行して行う並行処理が開始される。このとき、(N−1)番目の論理ボリュームに対する読み出し処理は、最終ブロックから先頭ブロックに向かう方向に行われ、(N−1)番目の論理ボリュームに対する復元処理は、先頭ブロックから最終ブロックに向かう方向に行われる。したがって、読み出し処理と復元処理は互いに逆の方向に行われる。
次に、制御部112は、変更された読み出し処理の対象である論理ボリュームのブロックのうち、「読み出し中ライン番号」に対応するブロックを選択する(ステップ3206)。そして、制御部112は、選択したブロックのデータをテープライブラリ装置211から読み出して、ディスクアレイ装置212に書き込む。
次に、制御部112は、(N−1)番目の論理ボリュームに含まれる全ブロックのコピーが完了したか否かをチェックする(ステップ3207)。全ブロックのコピーが完了していない場合(ステップ3207,NO)、制御部112は、測定情報の「読み出し中ライン番号」を1だけデクリメントして(ステップ3208)、ステップ3206以降の処理を繰り返す。
そして、全ブロックのコピーが完了した場合(ステップ3207,YES)、制御部112は、読み出し処理の対象を、(N−1)番目の論理ボリュームからN番目の論理ボリュームに変更する(ステップ3209)。そして、制御部112は、図9の測定情報の「読み出し中ライン番号」を、N番目の論理ボリュームにおける復元未完了のブロックのうち、最終ブロックのライン番号に変更する。
これにより、N番目の論理ボリュームに対して、図32の読み出し処理と図33の復元処理とを並行して行う並行処理が開始される。このとき、N番目の論理ボリュームに対する読み出し処理は、最終ブロックから先頭ブロックに向かう方向に行われ、N番目の論理ボリュームに対する復元処理は、先頭ブロックから最終ブロックに向かう方向に行われる。したがって、読み出し処理と復元処理は互いに逆の方向に行われる。
次に、制御部112は、変更された読み出し処理の対象である論理ボリュームのブロックのうち、「読み出し中ライン番号」に対応するブロックを選択する(ステップ3210)。そして、制御部112は、選択したブロックのデータをテープライブラリ装置211から読み出して、ディスクアレイ装置212に書き込む。
次に、制御部112は、N番目の論理ボリュームに含まれる全ブロックのコピーが完了したか否かをチェックする(ステップ3211)。全ブロックのコピーが完了していない場合(ステップ3211,NO)、制御部112は、測定情報の「読み出し中ライン番号」を1だけデクリメントして(ステップ3212)、ステップ3210以降の処理を繰り返す。そして、全ブロックのコピーが完了した場合(ステップ3211,YES)、読み出し処理を終了する。
図33は、図31のステップ3107において行われる復元処理の例を示すフローチャートである。図33の復元処理の対象は、処理順位がN番目の論理ボリュームと(N−1)番目の論理ボリュームである。復元処理に用いられる2つのパリティは、例えば、パリティP及びパリティQである。
まず、制御部112は、図9の測定情報の「復元中ライン番号1」に、先頭ラインのライン番号を登録する(ステップ3301)。そして、測定情報の「復元処理速度1」に所定の初期値を登録する。
次に、制御部112は、初期間隔値Lpを式(1)により計算し、測定情報の「初期間隔値1」に登録する(ステップ3302)。このとき、図6のLVG情報の「LVサイズ1」がL1として用いられ、「LVサイズ3」がL2として用いられる。
次に、制御部112は、測定情報の「復元中ライン番号1」と「読み出し中ライン番号」の差分が、初期間隔値Lp以上か否かをチェックする(ステップ3303)。差分が初期間隔値Lp未満である場合(ステップ3303,NO)、制御部112は、差分が初期間隔値Lp以上になるまで待機する。
一方、差分が初期間隔値Lp以上である場合(ステップ3303,YES)、制御部112は、復元処理の対象である2つの論理ボリュームのブロックのうち、「復元中ライン番号1」に対応するブロックを選択する(ステップ3304)。そして、制御部112は、同じライン番号に対応する他の論理ボリュームのブロック及び2つのパリティのブロックのデータを、ディスクアレイ装置212から読み出す。制御部112は、読み出した各ブロックのデータを用いて、2つの論理ボリュームの選択したブロックのデータを復元し、復元したブロックのデータをディスクアレイ装置212に書き込む。
次に、制御部112は、復元処理の対象である2つの論理ボリュームの全ブロックのコピーが完了したか否かをチェックする(ステップ3305)。全ブロックのコピーが完了していない場合(ステップ3305,NO)、制御部112は、N番目の論理ボリュームの先頭ブロックから直前に復元したブロックまでの復元処理速度を計算する(ステップ3306)。そして、制御部112は、図9の測定情報の「復元処理速度1」を、計算した復元処理速度により更新する。
次に、制御部112は、測定情報の「復元中ライン番号1」を1だけインクリメントして(ステップ3307)、読み出し処理の対象が(N−2)番目の論理ボリュームから変更されているか否かをチェックする(ステップ3308)。読み出し処理の対象が変更されている場合(ステップ3308,YES)、制御部112は、ステップ3304以降の処理を繰り返す。
一方、読み出し処理の対象が変更されていない場合(ステップ3308,NO)、制御部112は、測定情報の「復元中ライン番号1」と「読み出し中ライン番号」の差分が、所定値以下か否かをチェックする(ステップ3309)。差分が所定値より大きい場合(ステップ3309,NO)、制御部112は、ステップ3304以降の処理を繰り返す。
一方、差分が所定値以下である場合(ステップ3309,YES)、制御部112は、初期間隔値Lpを式(1)により再計算し、測定情報の「初期間隔値1」に登録する(ステップ3310)。
このとき、N番目の論理ボリュームのブロックのうち、復元未完了のブロックの総サイズがL1として用いられる。制御部112は、図9の測定情報の「復元中ライン番号1」とBsとを用いて、復元が完了したブロックの総サイズを求めることができる。そして、制御部112は、図6のLVG情報の「LVサイズ1」から、復元が完了したブロックの総サイズを減算することで、復元未完了のブロックの総サイズを求めることができる。
さらに、(N−2)番目の論理ボリュームのブロックのうち、読み出し未完了のブロックの総サイズがL2として用いられる。制御部112は、図9の測定情報の「読み出し中ライン番号」とBsとを用いて、読み出しが完了したブロックの総サイズを求めることができる。そして、制御部112は、図6のLVG情報の「LVサイズ3」から、読み出しが完了したブロックの総サイズを減算することで、読み出し未完了のブロックの総サイズを求めることができる。
次に、制御部112は、測定情報の「復元中ライン番号1」と「読み出し中ライン番号」の差分が、初期間隔値Lp以上か否かをチェックする(ステップ3311)。差分が初期間隔値Lp未満である場合(ステップ3311,NO)、制御部112は、差分が初期間隔値Lp以上になるまで待機する。
一方、差分が初期間隔値Lp以上である場合(ステップ3311,YES)、制御部112は、ステップ3304以降の処理を繰り返す。そして、全ブロックのコピーが完了した場合(ステップ3305,YES)、制御部112は、復元処理を終了する。
このような第2のストレージ制御方法に基づくコピー処理によれば、(N−2)番目の論理ボリュームの読み出し処理と(N−1)番目及びN番目の論理ボリュームの復元処理とが並行して実行される。このため、すべての論理ボリュームをテープライブラリ装置211から読み出す場合と比較して、テープライブラリ装置211からディスクアレイ装置212へデータをコピーするのにかかる時間を短縮することができる。
また、(N−2)番目の論理ボリュームの読み出しが完了したとき、(N−1)番目の論理ボリュームの一部をテープライブラリ装置211から読み出す処理が開始される。これにより、(N−1)番目及びN番目の論理ボリュームの一部を復元する処理と、(N−1)番目の論理ボリュームの他の一部をテープライブラリ装置211から読み出す処理とが並行して行われる。
さらに、(N−1)番目の論理ボリュームのコピーが完了したとき、N番目の論理ボリュームの一部をテープライブラリ装置211から読み出す処理が開始される。これにより、(N−1)番目及びN番目の論理ボリュームの一部を復元する処理と、N番目の論理ボリュームの他の一部をテープライブラリ装置211から読み出す処理とが並行して行われる。このため、コピー処理時間の短縮効果がさらに大きくなる。
N個の論理ボリュームの処理の順番は、サイズが小さい順に限られることはない。N番目の論理ボリュームのサイズが(N−2)番目の論理ボリュームのサイズより大きいか、又は(N−1)番目の論理ボリュームのサイズが(N−2)番目の論理ボリュームのサイズより大きければ、他の順番であっても構わない。
図34〜図38は、第2のストレージ制御方法において「パリティ種別」が「ダブルパリティ」の場合のコピー処理の例を示している。この例では、コピー対象の論理ボリュームグループに属する論理ボリュームは、LV0、LV1、及びLV2の3つである。
図34に示す第1の状態において、LV0は、最大サイズの論理ボリュームに対応し、そのサイズは23ブロック分に相当する。LV1は、2番目に大きいサイズの論理ボリュームに対応し、そのサイズは20ブロック分に相当する。また、LV2は、3番目に大きいサイズの論理ボリュームに対応し、そのサイズは18ブロック分に相当する。したがって、ディスクアレイ装置212内におけるLV0〜LV2の各々の格納領域は、ライン番号0〜ライン番号22に対応する23ブロックの領域である。
LV2の格納領域のうち、ライン番号0〜ライン番号17に対応する18ブロックの領域には、テープライブラリ装置211から読み出されるデータが格納される。また、ライン番号18〜ライン番号22に対応する5ブロックの領域には、ダミーデータが格納されている。
LV1の格納領域のうち、ライン番号0〜ライン番号19に対応する20ブロックの領域には、LV2のデータ、パリティP、及びパリティQを用いて復元されたデータ、又はテープライブラリ装置211から読み出されるデータが格納される。また、ライン番号20〜ライン番号22に対応する3ブロックの領域には、ダミーデータが格納されている。
LV0の格納領域には、LV2のデータ、パリティP、及びパリティQを用いて復元されたデータ、又はテープライブラリ装置211から読み出されるデータが格納される。
図31のステップ3103において、LV2の処理順位は1番目に決定され、LV1の処理順位は2番目に決定され、LV0の処理順位は3番目(最後)に決定される。この例では、コピー対象の論理ボリュームグループに属する論理ボリュームの数が3であるため、ステップ3105の処理は行われずに、最初からステップ3107の並行処理が実行される。ステップ3107の並行処理において、読み出し処理は、LV2のライン番号0のブロックから開始され、復元処理は、LV0及びLV1のライン番号0のブロックから開始される。
まず、図34に示す第1の状態では、読み出し処理及び復元処理が既に進行しており、ライン番号17に対応するLV2のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号6に対応するLV2のデータ、パリティP、及びパリティQを用いて、LV0及びLV1のライン番号6のデータが復元される。
ここで、LV2の全ブロックの読み出しが完了したため、図32のステップ3205において、読み出し処理の対象がLV2からLV1に変更され、「読み出し中ライン番号」がライン番号19に変更される。
次に、図35に示す第2の状態では、ライン番号19に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号7に対応するLV2のデータ、パリティP、及びパリティQを用いて、LV0及びLV1のライン番号7のデータが復元される。
このような処理が繰り返された後、図36に示す第3の状態では、ライン番号12に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号11に対応するLV2のデータ、パリティP、及びパリティQを用いて、LV0及びLV1のライン番号11のデータが復元される。
ここで、LV1の全ブロックのコピーが完了したため、図32のステップ3209において、読み出し処理の対象がLV1からLV0に変更され、「読み出し中ライン番号」がライン番号22に変更される。
次に、図37に示す第4の状態では、ライン番号22に対応するLV0のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号12に対応するLV2のデータ、パリティP、及びパリティQを用いて、LV0及びLV1のライン番号12のデータが復元される。
このような処理が繰り返された後、図38に示す第5の状態では、ライン番号16に対応するLV0のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号15に対応するLV2のデータ、パリティP、及びパリティQを用いて、LV0及びLV1のライン番号15のデータが復元される。ここで、LV0の全ブロックのコピーが完了したため、読み出し処理及び復元処理が終了する。
次に、図39から図45までを参照しながら、第2のストレージ制御方法において「パリティ種別」が「ダブルパリティ」の場合の別の実施形態を説明する。この場合、1つの論理ボリュームグループのコピー処理の例は、図31のフローチャートと同様であり、図31のステップ3107において行われる読み出し処理の例は、図32のフローチャートと同様である。
ただし、図31のステップ3107において、パリティP及びパリティQを用いた復元処理と、パリティPのみを用いた復元処理とが、読み出し処理と並行して行われる。この場合、図6のLVG情報のうち、「LVサイズ4」を省略することができる。
図39は、パリティP及びパリティQを用いた復元処理の例を示すフローチャートである。図39の復元処理の対象は、処理順位が(N−1)番目の論理ボリュームである。
まず、制御部112は、図9の測定情報の「復元中ライン番号2」に、先頭ラインのライン番号を登録する(ステップ3901)。そして、測定情報の「復元処理速度2」に所定の初期値を登録する。
次に、制御部112は、初期間隔値Lpqを次式(2)により計算し、測定情報の「初期間隔値2」に登録する(ステップ3902)。
Lpq=Vr(L2/Vr−L3/Vpq)/Bs (2)
式(2)のBsは、ブロックサイズであり、図5のパリティ管理情報の「パリティサイズ」と一致する。
L3は、パリティP及びパリティQを用いた復元処理の対象である論理ボリュームのデータのうち、コピー未完了のデータのサイズである。ここでは、復元未完了のブロックの総サイズがL3として用いられる。
L2は、読み出し処理の対象である論理ボリュームのデータのうち、読み出し未完了のデータのサイズである。ここでは、読み出し未完了のブロックの総サイズがL2として用いられる。
ステップ3902では、図6のLVG情報の「LVサイズ2」がL3として用いられ、「LVサイズ3」がL2として用いられる。
Vpqは、制御部112によるパリティP及びパリティQを用いた論理ボリュームの復元処理速度の測定結果であり、測定情報の「復元処理速度2」に登録されている。Vrは、読み出し処理の対象である論理ボリュームの読み出し処理速度であり、測定情報の「読み出し処理速度」に登録されている。
初期間隔値Lpqの値は1以上の整数であり、式(2)の計算では、小数点以下第1位の値を切り上げるとともに、切り上げ後の値が1未満になる場合、計算結果は1に固定される。
次に、制御部112は、測定情報の「復元中ライン番号2」と「読み出し中ライン番号」の差分が、初期間隔値Lpq以上か否かをチェックする(ステップ3903)。差分が初期間隔値Lpq未満である場合(ステップ3903,NO)、制御部112は、差分が初期間隔値Lpq以上になるまで待機する。
一方、差分が初期間隔値Lpq以上である場合(ステップ3903,YES)、制御部112は、復元処理の対象である論理ボリュームのブロックのうち、「復元中ライン番号2」に対応するブロックを選択する(ステップ3904)。
そして、制御部112は、同じライン番号に対応する他の論理ボリュームのブロックと、パリティP及びパリティQのブロックのデータを、ディスクアレイ装置212から読み出す。ただし、N番目の論理ボリュームは、パリティPのみを用いた復元処理の対象であるため、N番目の論理ボリュームのデータは読み出されない。制御部112は、読み出した各ブロックのデータを用いて、選択したブロックのデータを復元し、復元したブロックのデータをディスクアレイ装置212に書き込む。
次に、制御部112は、復元処理の対象である論理ボリュームの全ブロックのコピーが完了したか否かをチェックする(ステップ3905)。全ブロックのコピーが完了していない場合(ステップ3905,NO)、制御部112は、論理ボリュームの先頭ブロックから直前に復元したブロックまでの復元処理速度を計算する(ステップ3906)。そして、制御部112は、図9の測定情報の「復元処理速度2」を、計算した復元処理速度により更新する。
次に、制御部112は、測定情報の「復元中ライン番号2」を1だけインクリメントして(ステップ3907)、読み出し処理の対象が(N−2)番目の論理ボリュームから変更されているか否かをチェックする(ステップ3908)。読み出し処理の対象が変更されている場合(ステップ3908,YES)、制御部112は、ステップ3904以降の処理を繰り返す。
一方、読み出し処理の対象が変更されていない場合(ステップ3908,NO)、制御部112は、測定情報の「復元中ライン番号2」と「読み出し中ライン番号」の差分が、所定値以下か否かをチェックする(ステップ3909)。差分が所定値より大きい場合(ステップ3909,NO)、制御部112は、ステップ3904以降の処理を繰り返す。
一方、差分が所定値以下である場合(ステップ3909,YES)、制御部112は、初期間隔値Lpqを式(2)により再計算し、測定情報の「初期間隔値2」に登録する(ステップ3910)。
このとき、復元処理の対象である論理ボリュームのブロックのうち、復元未完了のブロックの総サイズがL3として用いられる。制御部112は、図9の測定情報の「復元中ライン番号2」とBsとを用いて、復元が完了したブロックの総サイズを求めることができる。そして、制御部112は、図6のLVG情報の「LVサイズ2」から、復元が完了したブロックの総サイズを減算することで、復元未完了のブロックの総サイズを求めることができる。
さらに、読み出し処理の対象である論理ボリュームのブロックのうち、読み出し未完了のブロックの総サイズがL2として用いられる。制御部112は、図9の測定情報の「読み出し中ライン番号」とBsとを用いて、読み出しが完了したブロックの総サイズを求めることができる。そして、制御部112は、図6のLVG情報の「LVサイズ3」から、読み出しが完了したブロックの総サイズを減算することで、読み出し未完了のブロックの総サイズを求めることができる。
次に、制御部112は、測定情報の「復元中ライン番号2」と「読み出し中ライン番号」の差分が、初期間隔値Lpq以上か否かをチェックする(ステップ3911)。差分が初期間隔値Lpq未満である場合(ステップ3911,NO)、制御部112は、差分が初期間隔値Lpq以上になるまで待機する。
一方、差分が初期間隔値Lpq以上である場合(ステップ3911,YES)、制御部112は、ステップ3904以降の処理を繰り返す。そして、全ブロックのコピーが完了した場合(ステップ3905,YES)、制御部112は、復元処理を終了する。
図40は、図31のステップ3107において行われるパリティPのみを用いた復元処理の例を示すフローチャートである。図40の復元処理の対象は、処理順位がN番目の論理ボリュームである。
まず、制御部112は、図9の測定情報の「復元中ライン番号1」に、先頭ラインのライン番号を登録する(ステップ4001)。そして、測定情報の「復元処理速度1」に所定の初期値を登録する。
次に、制御部112は、初期間隔値Lpqを次式(3)により計算し、測定情報の「初期間隔値1」に登録する(ステップ3902)。
Lp=Vpq(L2/Vpq−L1/Vp)/Bs (3)
式(3)のBsは、ブロックサイズであり、図5のパリティ管理情報の「パリティサイズ」と一致する。
L1は、パリティPを用いた復元処理の対象である論理ボリュームのデータのうち、復元未完了のデータのサイズである。ここでは、復元未完了のブロックの総サイズがL1として用いられる。
L2は、パリティP及びパリティQを用いた復元処理の対象である論理ボリュームのデータのうち、復元未完了のデータのサイズである。ここでは、復元未完了のブロックの総サイズがL2として用いられる。
ステップ3902では、図6のLVG情報の「LVサイズ1」がL1として用いられ、「LVサイズ2」がL2として用いられる。
Vpは、制御部112によるパリティPのみを用いた論理ボリュームの復元処理速度の測定結果であり、測定情報の「復元処理速度1」に登録されている。Vpqは、制御部112によるパリティP及びパリティQを用いた論理ボリュームの復元処理速度の測定結果であり、測定情報の「復元処理速度2」に登録されている。
初期間隔値Lpの値は1以上の整数であり、式(3)の計算では、小数点以下第1位の値を切り上げるとともに、切り上げ後の値が1未満になる場合、計算結果は1に固定される。
次に、制御部112は、測定情報の「復元中ライン番号2」と「復元中ライン番号1」の差分が、初期間隔値Lp以上か否かをチェックする(ステップ4003)。差分が初期間隔値Lp未満である場合(ステップ4003,NO)、制御部112は、差分が初期間隔値Lp以上になるまで待機する。
一方、差分が初期間隔値Lp以上である場合(ステップ4003,YES)、制御部112は、N番目の論理ボリュームのブロックのうち、「復元中ライン番号1」に対応するブロックを選択する(ステップ4004)。そして、制御部112は、同じライン番号に対応する他の論理ボリュームのブロック及びパリティPのブロックのデータを、ディスクアレイ装置212から読み出す。制御部112は、読み出した各ブロックのデータを用いて、選択したブロックのデータを復元し、復元したブロックのデータをディスクアレイ装置212に書き込む。
なお、パリティPの代わりにパリティQのみを用いて、選択したブロックのデータを復元してもよい。
次に、制御部112は、N番目の論理ボリュームの全ブロックのコピーが完了したか否かをチェックする(ステップ4005)。全ブロックのコピーが完了していない場合(ステップ4005,NO)、制御部112は、N番目の論理ボリュームの先頭ブロックから直前に復元したブロックまでの復元処理速度を計算する(ステップ4006)。そして、制御部112は、図9の測定情報の「復元処理速度1」を、計算した復元処理速度により更新する。
次に、制御部112は、測定情報の「復元中ライン番号1」を1だけインクリメントして(ステップ4007)、読み出し処理の対象がN番目の論理ボリュームであるか否かをチェックする(ステップ4008)。読み出し処理の対象がN番目の論理ボリュームである場合(ステップ4008,YES)、制御部112は、ステップ4004以降の処理を繰り返す。
一方、読み出し処理の対象が(N−2)番目又は(N−1)番目の論理ボリュームである場合(ステップ4008,NO)、制御部112は、測定情報の「復元中ライン番号2」と「復元中ライン番号1」の差分が、所定値以下か否かをチェックする(ステップ4009)。差分が所定値より大きい場合(ステップ4009,NO)、制御部112は、ステップ4004以降の処理を繰り返す。
一方、差分が所定値以下である場合(ステップ4009,YES)、制御部112は、初期間隔値Lpを式(3)により再計算し、測定情報の「初期間隔値1」に登録する(ステップ4010)。
このとき、N番目の論理ボリュームのブロックのうち、復元未完了のブロックの総サイズがL1として用いられる。制御部112は、図9の測定情報の「復元中ライン番号1」とBsとを用いて、復元が完了したブロックの総サイズを求めることができる。そして、制御部112は、図6のLVG情報の「LVサイズ1」から、復元が完了したブロックの総サイズを減算することで、復元未完了のブロックの総サイズを求めることができる。
さらに、(N−1)番目の論理ボリュームのブロックのうち、復元未完了のブロックの総サイズがL2として用いられる。制御部112は、図9の測定情報の「復元中ライン番号2」とBsとを用いて、復元が完了したブロックの総サイズを求めることができる。そして、制御部112は、図6のLVG情報の「LVサイズ2」から、復元が完了したブロックの総サイズを減算することで、復元未完了のブロックの総サイズを求めることができる。
ここで、読み出し処理の対象が(N−1)番目の論理ボリュームである場合、(N−1)番目の論理ボリュームに対して、図32の読み出し処理と図39の復元処理とが並行して行われている。そこで、(N−1)番目の論理ボリュームにおける復元未完了のブロックの総サイズから、読み出しが完了したブロックの総サイズを減算した値を、L2として用いてもよい。
次に、制御部112は、測定情報の「復元中ライン番号2」と「復元中ライン番号1」の差分が、初期間隔値Lp以上か否かをチェックする(ステップ4011)。差分が初期間隔値Lp未満である場合(ステップ4011,NO)、制御部112は、差分が初期間隔値Lp以上になるまで待機する。
一方、差分が初期間隔値Lp以上である場合(ステップ4011,YES)、制御部112は、ステップ4004以降の処理を繰り返す。そして、全ブロックのコピーが完了した場合(ステップ4005,YES)、制御部112は、復元処理を終了する。
このような第2のストレージ制御方法に基づくコピー処理によれば、図33の復元処理を行う場合と同様に、テープライブラリ装置211からディスクアレイ装置212へデータをコピーするのにかかる時間を短縮することができる。
また、(N−2)番目の論理ボリュームの読み出しが完了したとき、(N−1)番目の論理ボリュームの一部をテープライブラリ装置211から読み出す処理が開始される。さらに、(N−1)番目の論理ボリュームのコピーが完了したとき、N番目の論理ボリュームの一部をテープライブラリ装置211から読み出す処理が開始される。このため、図33の復元処理を行う場合と同様に、コピー処理時間の短縮効果がさらに大きくなる。
N個の論理ボリュームの処理の順番は、サイズが小さい順に限られることはない。N番目の論理ボリュームのサイズが(N−2)番目の論理ボリュームのサイズより大きいか、又は(N−1)番目の論理ボリュームのサイズが(N−2)番目の論理ボリュームのサイズより大きければ、他の順番であっても構わない。
図41〜図45は、第2のストレージ制御方法において、図32の読み出し処理と、図39の復元処理と、図40の復元処理とを並行して行うコピー処理の例を示している。この例では、コピー対象の論理ボリュームグループに属する論理ボリュームは、図34の場合と同じである。
LV1の格納領域のうち、ライン番号0〜ライン番号19に対応する20ブロックの領域には、LV2のデータ、パリティP、及びパリティQを用いて復元されたデータ、又はテープライブラリ装置211から読み出されるデータが格納される。
LV0の格納領域には、LV1のデータ、LV2のデータ、及びパリティPを用いて復元されたデータ、又はテープライブラリ装置211から読み出されるデータが格納される。
図31のステップ3103において、LV2の処理順位は1番目に決定され、LV1の処理順位は2番目に決定され、LV0の処理順位は3番目(最後)に決定される。この例では、コピー対象の論理ボリュームグループに属する論理ボリュームの数が3であるため、ステップ3105の処理は行われずに、最初からステップ3107の並行処理が実行される。
ステップ3107の並行処理において、読み出し処理は、LV2のライン番号0のブロックから開始される。また、パリティP及びパリティQを用いた復元処理は、LV1のライン番号0のブロックから開始され、パリティPのみを用いた復元処理は、LV0のライン番号0のブロックから開始される。
まず、図41に示す第1の状態では、並行処理が既に進行しており、ライン番号17に対応するLV2のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。また、ライン番号6に対応するLV2のデータ、パリティP、及びパリティQを用いて、LV1のライン番号6のデータが復元される。そして、ライン番号2に対応するLV1のデータ、LV2のデータ、及びパリティPを用いて、LV0のライン番号2のデータが復元される。
ここで、LV2の全ブロックの読み出しが完了したため、図32のステップ3205において、読み出し処理の対象がLV2からLV1に変更され、「読み出し中ライン番号」がライン番号19に変更される。
次に、図42に示す第2の状態では、ライン番号19に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。また、ライン番号7に対応するLV2のデータ、パリティP、及びパリティQを用いて、LV1のライン番号7のデータが復元される。そして、ライン番号3に対応するLV1のデータ、LV2のデータ、及びパリティPを用いて、LV0のライン番号3のデータが復元される。
このような処理が繰り返された後、図43に示す第3の状態では、ライン番号12に対応するLV1のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。また、ライン番号11に対応するLV2のデータ、パリティP、及びパリティQを用いて、LV1のライン番号11のデータが復元される。そして、ライン番号7に対応するLV1のデータ、LV2のデータ、及びパリティPを用いて、LV0のライン番号7のデータが復元される。
ここで、LV1の全ブロックのコピーが完了したため、図32のステップ3209において、読み出し処理の対象がLV1からLV0に変更され、「読み出し中ライン番号」がライン番号22に変更される。
次に、図44に示す第4の状態では、ライン番号22に対応するLV0のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号9に対応するLV1のデータ、LV2のデータ、及びパリティPを用いて、LV0のライン番号9のデータが復元される。
このような処理が繰り返された後、図45に示す第5の状態では、ライン番号14に対応するLV0のデータがテープライブラリ装置211から読み出されてディスクアレイ装置212に書き込まれる。そして、ライン番号13に対応するLV1のデータ、LV2のデータ、及びパリティPを用いて、LV0のライン番号13のデータが復元される。ここで、LV0の全ブロックのコピーが完了したため、並行処理が終了する。
図10〜図13、図21、図22、図31〜図33、図39、及び図40のフローチャートは一例に過ぎず、ストレージシステム201の構成や条件に応じて一部の処理を省略又は変更してもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。