(57)【特許請求の範囲】
【請求項１】
複数の仮想領域で構成された仮想ボリュームと、
前記仮想ボリュームをバックアップするための論理ボリュームと、
仮想ボリュームにおける仮想領域に割当てられ得る記憶領域であるページを複数個備えたプールと、
どの仮想領域にどのページが対応しているかを表す仮想ボリューム管理情報と、
計算機からライト要求を受信し、そのライト要求で指定されている仮想ボリュームにおける仮想領域に、前記プールにおけるページを割り当て、割当てたページに、そのライト要求に従うデータ要素を書込み、前記仮想ボリューム管理情報において、ページの割当て先の仮想領域を表す情報にそのページを表す情報を対応付ける入出力処理部と、
前記仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素を前記論理ボリュームにコピーし、前記仮想ボリューム管理情報における、各コピー元のページを表す情報を、各コピー元のページに記憶されているデータ要素の各コピー先の記憶領域を表す情報に更新し、その更新後の仮想ボリューム管理情報を、前記論理ボリュームにコピーするバックアップ処理部と、
前記論理ボリュームのどこにどの仮想ボリュームについての前記更新後の仮想ボリューム管理情報が記憶されているかを表す構成表を作成し、その構成表を前記論理ボリュームにコピーし、前記構成表のコピー先の記憶領域を示す情報である構成表コピー先アドレスを前記論理ボリュームに書き込むクローズ処理部と、
前記論理ボリュームから前記構成表コピー先アドレスを取得し、前記構成表コピー先アドレスが示す記憶領域から前記構成表を読み出し、前記構成表に基づいて前記更新後の仮想ボリューム管理情報を読み出し、その読み出した更新後の仮想ボリューム管理情報に基づいて、前記計算機からのリード要求のみに応答可能な前記仮想ボリュームをリストアする高速リストア処理部と
を備えるストレージシステム。
【請求項２】
前記バックアップ処理部が、前記論理ボリュームに前記複数のデータ要素を連続的に配置する、
請求項１記載のストレージシステム。
【請求項３】
前記バックアップ処理部が、前記論理ボリュームに前記複数のデータ要素を連続的に配置し、前記複数のデータ要素が配置されている連続した複数の記憶領域の次の記憶領域から、前記更新後の仮想ボリューム管理情報を書き始める、
請求項１記載のストレージシステム。
【請求項４】
仮想ボリュームが複数個存在し、
前記バックアップ処理部が、前記複数の仮想ボリュームのうちの或る仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、前記更新後の仮想ボリューム管理情報とをコピーし、その後に、前記複数の仮想ボリュームのうちの別の仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、前記更新後の仮想ボリューム管理情報とをシーケンシャルに配置する、
請求項１記載のストレージシステム。
【請求項５】
前記バックアップ処理部が、前記論理ボリュームのどこにどの仮想ボリュームについての仮想ボリューム管理情報が記憶されているかを表す構成表を作成し、その構成表を、前記論理ボリュームにコピーする、
請求項４記載のストレージシステム。
【請求項６】
前記構成表を前記論理ボリュームから読出し、その構成表から、二以上の仮想ボリュームから選択された仮想ボリュームに対応した仮想ボリューム管理情報が記憶されている場所を特定し、前記論理ボリュームにおけるその特定された場所から、前記選択された仮想ボリュームに対応する仮想ボリューム管理情報を読出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームを前記計算機に提供するリストア処理部、
を更に備える請求項５記載のストレージシステム。
【請求項７】
前記論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、リストアコピー処理を実行することなく、前記計算機に提供するリストア処理部、を更に備え、
前記リストアコピー処理とは、前記読み出された仮想ボリューム管理情報から特定される複数のデータ要素を、前記論理ボリュームから読出し、その仮想ボリューム管理情報から特定される複数の仮想領域に割当てた複数のページに、コピーする処理である、
を更に備える請求項１記載のストレージシステム。
【請求項８】
前記入出力処理部が、前記リストア仮想ボリュームを指定したリード要求を前記計算機から受け付けるが、前記リストア仮想ボリュームを指定したライト要求を前記計算機から受け付けない、
請求項７記載のストレージシステム。
【請求項９】
前記入出力処理部が、前記リストア仮想ボリュームを指定したライト要求を前記計算機から受け付けた場合、前記仮想ボリューム管理情報において、そのライト要求で指定されている仮想領域を表す情報に対応した、前記論理ボリュームにおける記憶領域を表す情報を、その仮想領域に割当てたページを表す情報に更新する、
請求項７記載のストレージシステム。
【請求項１０】
前記論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、リストアコピー処理を実行した後に、前記計算機に提供するリストア処理部、を更に備え、
前記リストアコピー処理とは、前記読み出された仮想ボリューム管理情報から特定される複数のデータ要素を、前記論理ボリュームから読出し、その仮想ボリューム管理情報から特定される複数の仮想領域に割当てた複数のページに、コピーする処理である、
請求項１記載のストレージシステム。
【請求項１１】
第一のストレージシステムと、
第二のストレージシステムと
を備え、
前記第一のストレージシステムが、
複数の仮想領域で構成された仮想ボリュームと、
前記仮想ボリュームにおける仮想領域に割当てられ得る記憶領域であるページを複数個備えたプールと、
どの仮想領域にどのページが対応しているかを表す仮想ボリューム管理情報と、
計算機からライト要求を受信し、そのライト要求で指定されている仮想ボリュームにおける仮想領域に、前記プールにおけるページを割り当て、割当てたページに、そのライト要求に従うデータ要素を書込み、前記仮想ボリューム管理情報において、ページの割当て先の仮想領域を表す情報にそのページを表す情報を対応付ける入出力処理部と、
前記仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素を、前記第二のストレージシステムに転送し、前記仮想ボリューム管理情報における、各コピー元のページを表す情報を、各コピー元のページに記憶されているデータ要素の各コピー先の記憶領域を表す情報に更新し、その更新後の仮想ボリューム管理情報を、前記第二のストレージシステムに転送する第一のバックアップ処理部と
を備え、
第二のストレージシステムが、
前記仮想ボリュームをバックアップするための論理ボリュームと、
前記第一のストレージシステムから前記複数のデータ要素を受信し、受信した複数のデータ要素を前記論理ボリュームに書込み、前記第一のストレージシステムから前記更新後の仮想ボリューム管理情報を受信し、受信した更新後の仮想ボリューム管理情報を前記論理ボリュームに書込む第二のバックアップ処理部と、
前記論理ボリュームのどこにどの仮想ボリュームについての前記更新後の仮想ボリューム管理情報が記憶されているかを表す構成表を作成し、その構成表を前記論理ボリュームにコピーし、前記構成表のコピー先の記憶領域を示す情報である構成表コピー先アドレスを前記論理ボリュームに書き込むクローズ処理部と、
前記論理ボリュームから前記構成表コピー先アドレスを取得し、前記構成表コピー先アドレスが示す記憶領域から前記構成表を読み出し、前記構成表に基づいて前記更新後の仮想ボリューム管理情報を読み出し、その読み出した更新後の仮想ボリューム管理情報に基づいて、前記計算機からのリード要求のみに応答可能な前記仮想ボリュームをリストアする高速リストア処理部と
を備える、
リモートバックアップシステム。
【請求項１２】
仮想ボリュームにおける仮想領域に割当てられている記憶領域であるページを、どの仮想領域にどのページが対応しているかを表す仮想ボリューム管理情報を基に特定し、
前記仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素を前記仮想ボリュームをバックアップするための論理ボリュームにコピーし、
前記仮想ボリューム管理情報における、各仮想領域を表す情報に対応している各コピー元のページを表す情報を、各コピー元のページに記憶されているデータ要素の各コピー先の記憶領域を表す情報に更新し、その更新後の仮想ボリューム管理情報を、前記論理ボリュームにコピーし、
前記論理ボリュームのどこにどの仮想ボリュームについての前記更新後の仮想ボリューム管理情報が記憶されているかを表す構成表を作成し、その構成表を前記論理ボリュームにコピーし、前記構成表のコピー先の記憶領域を示す情報である構成表コピー先アドレスを前記論理ボリュームに書き込み、
高速リストアの際、前記論理ボリュームから前記構成表コピー先アドレスを取得し、前記構成表コピー先アドレスが示す記憶領域から前記構成表を読み出し、前記構成表に基づいて前記更新後の仮想ボリューム管理情報を読み出し、その読み出した更新後の仮想ボリューム管理情報に基づいて、計算機からのリード要求のみに応答可能な前記仮想ボリュームをリストアする、仮想ボリュームのバックアップ方法。
【請求項１３】
前記論理ボリュームに前記複数のデータ要素を連続的に配置する、
請求項１２記載のバックアップ方法。
【請求項１４】
複数の仮想ボリュームのうちの或る仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、前記更新後の仮想ボリューム管理情報とをコピーし、その後に、前記複数の仮想ボリュームのうちの別の仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、前記更新後の仮想ボリューム管理情報とをシーケンシャルに配置する、
請求項１２記載のバックアップ方法。
【請求項１５】
前記論理ボリュームのどこにどの仮想ボリュームについての仮想ボリューム管理情報が記憶されているかを表す構成表を作成し、その構成表を、前記論理ボリュームにコピーする、
請求項１４記載のバックアップ方法。
【請求項１６】
前記構成表を前記論理ボリュームから読出し、その構成表から、二以上の仮想ボリュームから選択された仮想ボリュームに対応した仮想ボリューム管理情報が記憶されている場所を特定し、前記論理ボリュームにおけるその特定された場所から、前記選択された仮想ボリュームに対応する仮想ボリューム管理情報を読出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームを前記計算機に提供する、
請求項１５記載のバックアップ方法。
【請求項１７】
前記論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、その仮想ボリューム管理情報から特定される複数のデータ要素を前記論理ボリュームから読出しその仮想ボリューム管理情報から特定される複数の仮想領域に割当てた複数のページにコピーすることなく、前記計算機に提供する、
請求項１３記載のバックアップ方法。
【請求項１８】
前記論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、その仮想ボリューム管理情報から特定される複数のデータ要素を前記論理ボリュームから読出しその仮想ボリューム管理情報から特定される複数の仮想領域に割当てた複数のページにコピーした後に、前記計算機に提供する、
請求項１３記載のバックアップ方法。
【請求項１９】
前記論理ボリュームは、リムーバブルな記憶装置に設けられた論理ボリュームである、
請求項１記載のストレージシステム。
【請求項２０】
前記論理ボリュームは、リムーバブルな記憶装置に設けられた論理ボリュームである、
請求項１２記載のバックアップ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理ボリュームのバックアップに関する。
【背景技術】
【０００２】
論理ボリュームの種類として、例えば、一以上の記憶装置が有する記憶空間を基に形成される実ボリューム（実体のある論理ボリューム）と、Thin Provisioning技術に従う仮想ボリューム（仮想的な論理ボリューム）とがある。仮想ボリュームにおける仮想的な記憶領域（以下、仮想領域）に、実ボリュームを構成する記憶領域（以下、実領域）が割り当てられ、その実領域にデータが書かれる（例えば特許文献１）。仮想ボリュームに割り当てられた実領域に記憶されているデータ要素を実ボリュームにコピーすることができる（例えば特許文献２）。
【０００３】
【特許文献１】特開２００６−３３８３４１号公報
【特許文献２】特開２００７−１０２４５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
バックアップ時の仮想ボリュームを利用したいケースが生じ得る。そのためには、バックアップ時の仮想ボリュームをリストアできるようにする必要がある。
【０００５】
従って、本発明の目的は、バックアップ時の仮想ボリュームのリストアを可能にすることにある。
【０００６】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【０００７】
仮想ボリュームにおける各仮想領域に割当てられている各ページに記憶されている各データ要素を論理ボリュームにコピーし、どの仮想領域にどの記憶領域が対応しているかを表す仮想ボリューム管理情報における、各仮想領域を表す情報に対応している各コピー元のページを表す情報を、各コピー元のページに記憶されているデータ要素の各コピー先の記憶領域を表す情報に更新し、更新後の仮想ボリューム管理情報を、データ要素のコピー先である論理ボリュームにコピーする。
【発明を実施するための最良の形態】
【０００８】
実施形態１では、ストレージシステムに、複数の仮想領域で構成された仮想ボリュームと、論理ボリュームと、仮想ボリュームにおける仮想領域に割当てられ得る記憶領域であるページを複数個備えたプールと、どの仮想領域にどの記憶領域が対応しているかを表す仮想ボリューム管理情報と、入出力処理部と、バックアップ処理部とが備えられる。入出力処理部は、計算機からライト要求を受信し、そのライト要求で指定されている仮想ボリュームにおける仮想領域に、プールにおけるページを割り当て、割当てたページに、そのライト要求に従うデータ要素を書込み、上記仮想ボリューム管理情報において、ページの割当て先の仮想領域を表す情報にそのページを表す情報を対応付ける。バックアップ処理部は、仮想ボリュームにおいてページの割当てられていない仮想領域については論理ボリュームへのコピーを行わず、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素を論理ボリュームにコピーし、仮想ボリューム管理情報における、各コピー元のページを表す情報を、各コピー元のページに記憶されているデータ要素の各コピー先の記憶領域を表す情報に更新し、更新後の仮想ボリューム管理情報を、データ要素のコピー先である上記論理ボリュームにコピーする。仮想ボリューム管理情報は、例えば、ストレージシステム内の記憶資源（例えばメモリ）に記憶される。また、データ要素や更新後の仮想ボリューム管理情報のコピー先となる上記論理ボリュームは、リムーバブルな記憶装置に設けられた論理ボリュームであっても良い。具体的には、例えば、その論理ボリュームは、仮想ボリュームにおけるどの仮想領域がアクセス先となるとどの実領域にアクセスされることになるかが一義的に定まるタイプの仮想ボリューム、より具体的には、例えば、外部のストレージシステムに備えられている記憶装置を基に形成された外部の論理ボリュームに対応した、ストレージ仮想化技術に従う仮想ボリュームとすることができる。
【０００９】
実施形態２では、実施形態１において、バックアップ処理部が、論理ボリュームに複数のデータ要素を連続的に配置する。
【００１０】
実施形態３では、実施形態１及び２のうちの少なくとも一つにおいて、バックアップ処理部が、複数のデータ要素が配置されている連続した複数の記憶領域の次の記憶領域から、更新後の仮想ボリューム管理情報を書き始める。
【００１１】
実施形態４では、実施形態１乃至３のうちの少なくとも一つにおいて、バックアップ処理部が、複数の仮想ボリュームのうちの或る仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、更新後の仮想ボリューム管理情報とをコピーし、その後に、複数の仮想ボリュームのうちの別の仮想ボリュームについて、仮想ボリュームに割当てられている複数のページにそれぞれ記憶されている複数のデータ要素と、更新後の仮想ボリューム管理情報とを追記する。
【００１２】
実施形態５では、実施形態４において、バックアップ処理部が、論理ボリュームのどこにどの仮想ボリュームについての仮想ボリューム管理情報が記憶されているかを表す構成情報を作成し、その構成情報を、前記論理ボリュームにコピーする。
【００１３】
実施形態６では、実施形態５において、リストア処理部が更に備えられる。リストア処理部は、構成情報を論理ボリュームから読出し、その構成情報から、二以上の仮想ボリュームから選択された仮想ボリュームに対応した仮想ボリューム管理情報が記憶されている場所を特定し、論理ボリュームにおけるその特定された場所から、上記選択された仮想ボリュームに対応する仮想ボリューム管理情報を読出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームを計算機に提供する。
【００１４】
実施形態７では、実施形態１乃至７のうちの少なくとも一つにおいて、リストア処理部が更に備えられる。リストア処理部は、論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、リストアコピー処理を実行することなく、計算機に提供する。リストアコピー処理とは、読み出された仮想ボリューム管理情報から特定される複数のデータ要素を、論理ボリュームから読出し、その仮想ボリューム管理情報から特定される複数の仮想領域に割当てた複数のページに、コピーする処理である。
【００１５】
実施形態８では、実施形態７において、入出力処理部が、リストア仮想ボリュームを指定したリード要求を前記計算機から受け付けるが、リストア仮想ボリュームを指定したライト要求を計算機から受け付けない。
【００１６】
実施形態９では、実施形態７において、入出力処理部が、リストア仮想ボリュームを指定したライト要求を計算機から受け付けた場合、仮想ボリューム管理情報において、そのライト要求で指定されている仮想領域を表す情報に対応した、論理ボリュームにおける記憶領域を表す情報を、その仮想領域に割当てたページを表す情報に更新する。
【００１７】
実施形態１０では、実施形態１乃至９のうちの少なくとも一つにおいて、リストア処理部が更に備えられる。リストア処理部は、論理ボリュームから仮想ボリューム管理情報を読み出し、読み出した仮想ボリューム管理情報に基づく仮想ボリュームであるリストア仮想ボリュームを、前述したリストアコピー処理を実行した後に、計算機に提供する。
【００１８】
上述した実施形態１乃至１０の少なくとも一つにおいて、仮想ボリュームと論理ボリュームとが別々のストレージシステムに存在しても良い。また、上述した実施形態１乃至１１のうちの二以上の実施形態を組み合わせることができる。また、上述した各部（例えば、入出力処理部、バックアップ処理部、リストア処理部）は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【００１９】
以下、幾つかの実施例を、図面を参照して説明する。
【実施例１】
【００２０】
図１は、本発明の第一の実施例に係る計算機システムの構成に関するブロック図である。
【００２１】
計算機システムは、管理計算機１００、ホスト計算機２００、ストレージシステム３００及び管理端末１６００を備える。
【００２２】
管理計算機１００及びホスト計算機２００は、それぞれ一台ずつが図示されているが、何台備わっていてもよい。また、ストレージシステム３００は、一台が図示されているが、何台備わっていてもよい。
【００２３】
管理計算機１００、ホスト計算機２００及びストレージシステム３００が、第一の通信ネットワーク（例えばＳＡＮ（Storage Area Network））５００を介して相互に接続される。また、管理計算機１００は、ホスト計算機２００及びストレージシステム３００に、第二の通信ネットワーク（例えばＬＡＮ（Local Area Network）を介して接続される。図１の例では、管理端末１６００が、ストレージシステム３００に直接的に接続されているが、第一及び第二の通信ネットワーク５００、５５０のうちの少なくとも一つを介してストレージシステム３００に接続されても良い。
【００２４】
管理計算機１００は、メモリ１１０、プロセッサ１２０及びＩＯ処理部１３０を備える計算機である。メモリ１１０、プロセッサ１２０及びＩＯ処理部１３０は、内部ネットワーク（図示省略）によって相互に接続される。
【００２５】
プロセッサ１２０は、メモリ１１０に記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ１２０は、ストレージシステム３００にＩＯ要求を送信することによって、当該ストレージシステム３００によって実行されるリモートコピーを制御する。なお、ＩＯ要求は、書込要求、読出要求又はリモートコピー制御要求等を含む。ＩＯ要求については、図１１を参照して後に詳細に説明する。
【００２６】
メモリ１１０には、プロセッサ１２０によって実行されるプログラム及びプロセッサ１２０によって必要とされる情報等が記憶される。具体的には、メモリ１１０には、オフラインボリューム管理テーブル１１１、ストレージ管理プログラム１１２、コピー情報テーブル１１３及びストレージ情報テーブル１１４が記憶される。更に、メモリ１１０には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）及びアプリケーションプログラム（ＡＰ）が記憶されてもよい。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するプロセッサ（例えばＣＰＵ）によって処理が行われるものとする。
【００２７】
ストレージ管理プログラム１１２は、ストレージシステム３００を管理する。
【００２８】
オフラインボリューム管理テーブル１１１は、後述するオフラインボリュームを管理するための情報である。なお、オフライン管理テーブル１１１については、図４を参照して後に詳細に説明する。
【００２９】
コピー情報テーブル１１３は、ローカルコピーおよびリモートコピーの構成及び状態を管理するための情報である。そのため、メモリ１１０は、管理計算機１００によって管理されるローカルコピーの数と同数のコピー情報テーブル１１３を記憶する。なお、コピー情報テーブル１１３については、図５を参照して後に詳細に説明する。また、ローカルコピー及びリモートコピーについても後述する。
【００３０】
ストレージ情報テーブル１１４は、当該管理計算機１００によって管理されるストレージシステム３００に関する情報である。なお、ストレージ情報テーブル１１４については、図６で詳細に説明する。
【００３１】
ＩＯ処理部１３０は、データ通信線５１０を介してホスト計算機２００及びストレージシステム３００に接続されるインタフェースである。
【００３２】
ホスト計算機２００は、メモリ２１０、プロセッサ２２０及びＩＯ処理部２３０を備える計算機である。メモリ２１０、プロセッサ２２０及びＩＯ処理部２３０は、内部ネットワーク（図示省略）によって相互に接続される。
【００３３】
プロセッサ２２０は、メモリ２１０に記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ２２０は、ストレージシステム３００にＩＯ要求を送信することによって、そのストレージシステム３００にある論理ボリュームのデータにアクセスする。
【００３４】
メモリ２１０には、プロセッサ２２０によって実行されるプログラム及びプロセッサ２２０によって必要とされる情報等が記憶される。具体的には、メモリ２１０には、アプリケーションプログラム（ＡＰ）２１１、ＯＳ２１２、エージェントプログラム２１３及びＩＯ静止化プログラム２１４が記憶される。
【００３５】
ＡＰ２１１は、各種処理を実行する。例えば、ＡＰ２１１は、データベース機能又はＷＥＢサーバ機能を提供する。ＯＳ２１２は、ホスト計算機２００の処理の全体を制御する。エージェントプログラム２１３は、管理計算機１００からの指示を受け付ける。ＩＯ静止化プログラムは、ＯＳと連携し、ＩＯ要求を制御する。
【００３６】
ＩＯ処理部２３０は、管理計算機１００及びストレージシステム３００と通信するためのインタフェースである。具体的には、例えば、ＩＯ処理部２３０は、ストレージシステム３００にＩＯ要求を送信する。
【００３７】
ストレージシステム３００は、記憶制御装置１０００及び複数（又は一つ）のディスクドライブ１５００を備える。
【００３８】
ディスクドライブ１５００は、ディスク型の記憶メディアのドライブであり、ホスト計算機２００から書き込み要求されたデータを記憶する。ディスクドライブ１５００に代えて、他種の記憶デバイス（例えばフラッシュメモリドライブ）が採用されても良い。また、複数のディスクドライブ１５００のうちの少なくとも一つが、リムーバブルの記憶装置であっても良い。そして、リムーバブルの記憶装置に、仮想ボリュームのバックアップ先とされる実ボリュームが設けられても良い。
【００３９】
記憶制御装置１０００は、ストレージシステム３００の動作を制御する。具体的には、例えば、記憶制御装置１０００は、ディスクドライブ１５００へのデータの書き込み及びディスクドライブ１５００からのデータの読み出しを制御する。また、記憶制御装置１０００は、一以上の論理ボリュームをホスト計算機２００に提供する。一以上の論理ボリュームには、一以上のディスクドライブ１５００の記憶空間を基に形成された論理的な一以上の記憶領域である一つ以上の実ボリュームと、仮想ボリュームとのうちの少なくとも一つが含まれる。
【００４０】
記憶制御装置１０００は、キャッシュメモリ１１００、共有メモリ１２００、入出力制御部１３００及びディスク制御部１４００を備える。キャッシュメモリ１１００、共有メモリ１２００、入出力制御部１３００及びディスク制御部１４００は、内部ネットワーク（図示省略）によって相互に接続される。
【００４１】
キャッシュメモリ１１００は、ディスクドライブ１５００へ書き込まれるデータ及びディスクドライブ１５００から読み出されるデータを、一時的に記憶する。
【００４２】
ディスク制御部１４００は、ディスクドライブ１５００へのデータの書き込み及びディスクドライブ１５００からのデータの読み出しを制御する。また、ディスク制御部１４００は、一以上のディスクドライブ１５００の記憶空間を基に実ボリュームを生成する。
【００４３】
入出力制御部１３００は、プロセッサ１３１０、ＩＯ送受信部１３２０及びメモリ１３３０を備える。プロセッサ１３１０、ＩＯ送受信部１３２０及びメモリ１３３０は、内部ネットワーク（図示省略）によって相互に接続される。
【００４４】
ＩＯ送受信部１３２０は、第一の通信ネットワーク５００を介して通信する（例えば、管理計算機１００、ホスト計算機２００及び他のストレージシステム３００の少なくとも一つと通信する）インタフェースである。具体的には、例えば、ＩＯ送受信部１３２０は、管理計算機１００又はホスト計算機２００からＩＯ要求を受信する。また、ＩＯ送受信部１３２０は、ディスクドライブ１５００から読み出されたデータを、管理計算機１００又はホスト計算機２００に送信する。
【００４５】
プロセッサ１３１０は、メモリ１３３０又は共有メモリ１２００に記憶されるプログラムを実行することによって、各種処理を行う。具体的には、例えば、プロセッサ１３１０は、ＩＯ送受信部１３２０によって受信されたＩＯ要求を処理する。
【００４６】
メモリ１３３０には、プロセッサ１３１０によって実行されるプログラム及びプロセッサ１３１０によって必要とされる情報等が記憶される。
【００４７】
共有メモリ１２００には、プロセッサ１３１０によって実行されるプログラム及びプロセッサ１３１０によって必要とされる情報等が記憶される。更に、共有メモリ１２００には、ディスク制御部１４００によって実行されるプログラム及びディスク制御部１４００によって必要とされる情報等が記憶される。具体的には、例えば、共有メモリ１２００には、コピーペア管理情報１２１０、仮想ボリューム処理プログラム１２２０、コピー処理プログラム１２３０、入出力処理プログラム１２４０、ボリューム管理情報１２５０、仮想ボリューム管理情報１２７０及びプール管理情報１２９０が記憶される。
【００４８】
コピーペア管理情報１２１０は、当該ストレージシステム３００によって提供される論理ボリュームを含むコピーペアを管理するための情報である。コピーペアは、ローカルコピー、リモートコピーの対象となる二つの論理ボリュームからなるコピー構成である。また、コピーペア管理情報１２１０については、図７を参照して後に詳細に説明する。
【００４９】
仮想ボリューム処理プログラム１２２０は、仮想ボリュームに関わる処理を実施する。コピー処理プログラム１２３０は、ローカルコピーを行う。入出力処理プログラム１２９０は、ＩＯ送受信部１３２０によって受信されたＩＯ要求を処理する。
【００５０】
ボリューム管理情報１２５０は、ストレージシステム３００によって提供される論理ボリューム及び仮想ボリュームを管理するための情報である。なお、ボリューム管理情報１２５０については、図８を参照して詳細に説明する。
【００５１】
仮想ボリューム管理情報１２７０は、仮想ボリュームの仮想的な記憶領域と論理ボリュームの割り当て領域の対応情報である。なお、仮想ボリューム管理情報１２７０については、図９を参照して詳細に説明する。
【００５２】
プール管理情報１２９０は、仮想ボリュームに割り当て可能な論理ボリュームを管理するための情報である。なお、プール管理情報１２９０については、図１０を参照して詳細に説明する。
【００５３】
入出力処理プログラムは、ＩＯ要求を処理するためのプログラムである。
【００５４】
管理端末１６００は、ストレージシステム３００に備わる記憶制御装置１０００に接続される。管理端末１６００は、プロセッサ、メモリ及びインタフェースを備える計算機である。管理端末１６００は、システム使用者（ユーザ）から入力された情報を、ストレージシステム３００の記憶制御装置１０００に送信する。
【００５５】
次に、本発明の第一の実施例で行われる処理の概要を説明する。
【００５６】
図２は、ストレージシステム３００における仮想ボリューム処理の説明図である。
【００５７】
ストレージシステム３００は、仮想ボリュームをホスト計算機２００に提供する。仮想ボリュームの提供先であるホスト計算機２００には、特定容量の論理ボリュームがストレージシステム内に存在するものとして認識される（つまり実ボリュームと同様に認識される）。ストレージシステム３００は、仮想ボリューム及びそれの仮想領域を指定したデータＩＯ要求（ライト要求或いはリード要求）をホスト計算機２００から受けた場合に、その仮想領域に実領域（後述するプールを構成する実ボリュームにおける実領域）を割り当てる。
【００５８】
図２では、例えば、ストレージシステム３００は、ホスト計算機２００に２０ＧＢ（ギガバイト）の仮想ボリューム（Ｖｏｌ１）を提供している。ここで、例えば、ホスト計算機２００からのデータＩＯ要求で仮想ボリューム（Ｖｏｌ１）の仮想領域に、データ要素Ｄ３が記憶されるが、実際には、その仮想領域に割り当てられた実領域（Ｐ３）にデータ要素Ｄ３が記憶される。仮想ボリュームに対する割り当て単位としての実領域を、以後、「ページ」と呼び、ページに記憶されるデータ（言い換えれば、ページの割当て先の仮想領域に記憶されるデータ）を、「データ要素」と呼ぶ。ページＰ３は、実ボリューム（Ｖｏｌ３）から提供される。また、通常、ホスト計算機２００からアクセスされる通常の実ボリュームと区別するために、ストレージシステム３００では、ページ提供用途の実ボリュームが特別なボリュームグループ（以下、「プール」と呼ぶ）に属する論理ボリュームとして管理されている。
【００５９】
次に、図３を用いて、仮想ボリュームのバックアップ処理の概要を説明する。
【００６０】
図３は、仮想ボリュームのバックアップ処理の概要の説明図である。
【００６１】
仮想ボリュームを論理ボリュームにバックアップするために、ストレージシステム３００が、仮想ボリュームに割り当てられているページに記憶されているデータ要素を、論理ボリューム（例えば実ボリューム）にコピーする。その際、ストレージシステム３００は、論理ボリュームには、データ要素を連続的に配置する。
【００６２】
図３では、データ要素Ｄ１及びＤ２はコピー済みで、ストレージシステム３００は、データ要素Ｄ３を論理ボリューム（Ｖｏｌ２）にコピーするが、その際、データ要素Ｄ３とデータ要素Ｄ２との間で空き領域を生じさせないよう、データ要素Ｄ２が記憶されている実領域と連続した次の実領域に、データ要素Ｄ３を書込む。
【００６３】
このように、ストレージシステム３００は、仮想ボリューム（Ｖｏｌ１）に記憶されている各データ要素を論理ボリューム（Ｖｏｌ２）にバックアップする場合には、仮想ボリューム（Ｖｏｌ１）内で仮想的に散在している複数のデータ要素を、論理ボリューム（Ｖｏｌ２）の連続した複数の実領域にコピーする（言い換えれば、論理ボリューム（Ｖｏｌ２）にシーケンシャルに書込む）。これにより、論理ボリューム（Ｖｏｌ２）に無駄な空き領域が生じてしまうことを防ぐことができる。
【００６４】
なお、ストレージシステム３００は、一つの論理ボリューム（Ｖｏｌ２）に、複数の仮想ボリュームに存在する複数のデータ要素をシーケンシャルにコピーすることもできる。また、論理ボリューム（Ｖｏｌ２）の記憶容量は、図示のように、仮想ボリューム（Ｖｏｌ１）と同じであっても良いし、仮想ボリューム（Ｖｏｌ１）より大きくても小さくても良い。
【００６５】
図４は、管理計算機１００に記憶されるオフラインボリューム管理テーブル１１１の構成図である。
【００６６】
オフラインボリューム管理テーブル１１１を構成する各レコード（行）には、例えば、バックアップストレージＩＤ１１１１、バックアップボリュームＩＤ１１１２、保管ストレージＩＤ１１１３、保管ボリュームＩＤ１１１４、ＯＳ管理ボリューム情報１１１５、バックアップ時刻１１１６及びコメント１１１７が記録される。
【００６７】
バックアップストレージＩＤ１１１１は、バックアップ対象の仮想ボリュームを提供するストレージシステム３００の一意な識別子である。
【００６８】
バックアップボリュームＩＤ１１１２は、バックアップ対象の仮想ボリュームの一意な識別子である。
【００６９】
保管ストレージＩＤ１１１３は、バックアップ先の論理ボリュームを提供するストレージシステム３００の一意な識別子である。
【００７０】
保管ボリュームＩＤ１１１４は、バックアップ先の論理ボリュームの一意な識別子である。
【００７１】
ＯＳ管理ボリューム情報１１１５は、ホスト計算機２００がバックアップ対象の仮想ボリュームに付与していた、ＯＳのボリューム管理情報である。たとえば、ドライブ名やボリュームシリアル番号などが該当する。
【００７２】
バックアップ時刻１１１６は、管理計算機１００がバックアップ処理の開始を指示した時刻である。
【００７３】
コメント１１１７は、バックアップ対象の仮想ボリュームに格納されるデータの内容を理解するために必要な付加的な情報である。
【００７４】
図５は、管理計算機１００に記憶されるコピー情報テーブル１１３の構成図である。
【００７５】
コピー情報テーブル１１３には、コピー情報１１３１、グループＩＤ１１３２及びコピー構成情報が含まれる。
【００７６】
コピー情報１１３１は、コピー種別及びコピーオプション情報を含む。コピー種別は、このコピー情報テーブル１１３によって管理されるコピーがローカルコピー又はリモートコピーのいずれであるかを示す。ローカルコピーとは、同一のストレージシステム３００内で行われるコピーであり、この場合、コピー元の論理ボリュームとコピー先の論理ボリュームとが同一のストレージシステム３００に存在する。リモートコピーとは、異なるストレージシステム３００間で行われるコピーであり、この場合、コピー元の論理ボリュームとコピー先の論理ボリュームとが別々のストレージシステム３００に存在する。コピーオプション情報は、コピー種別毎に備わるオプションを表す情報である。例えば、オプション情報は、ローカルコピーの一時停止時に副ボリューム（コピー先の論理ボリューム）への書き込みが可能か否かを表す。ローカルコピーの一時停止とは、管理計算機１００からの指示によるローカルコピーの一時停止である。
【００７７】
グループＩＤ１１３２は、複数のコピーペアを含むグループの一意な識別子である。グループを用いることで、管理計算機１００は当該グループに含まれるコピーペアをまとめて制御することができる。
【００７８】
コピー構成情報は、正ストレージＩＤ１１３３、正ボリュームＩＤ１１３４、副ストレージＩＤ１１３５及び副ボリュームＩＤ１１３６、コピー状態情報１１３７を含む。
【００７９】
正ストレージＩＤ１１３３は、コピー元となった論理ボリューム（正ボリューム）を提供するストレージシステム（正ストレージシステム）３００の一意な識別子である。正ボリュームＩＤ１１３４は、コピー元となった論理ボリューム（正ボリューム）の一意な識別子である。
【００８０】
副ストレージＩＤ１１３５は、コピー先となった論理ボリュームを提供するストレージシステム（副ストレージシステム）３００の一意な識別子である。ローカルコピーの場合は、正ストレージシステムと同一のＩＤになる。副ボリューム１１３６は、コピー先となった論理ボリューム（副ボリューム）の一意な識別子である。
【００８１】
コピー状態情報１１３７は、このコピー情報テーブル１１３によって管理されるコピーの現在の状態を示す。具体的には、例えば、コピー状態情報１１３２は、このコピー情報テーブル１１３によって管理されるコピーの状態が、コピー中、一時停止中、ペア状態又は異常状態のいずれであるかを示す。
【００８２】
図６は、管理計算機１００に記憶されるストレージ情報テーブル１１４の構成図である。
【００８３】
ストレージ情報テーブル１１４は、ストレージＩＤ１１４１及び論理ボリュームＩＤ１１４２を含む。
【００８４】
ストレージＩＤ１１４１は、管理計算機１００によって管理されるストレージシステム３００の一意な識別子である。論理ボリュームＩＤ１１４２は、ストレージＩＤ１１４１によって識別されるストレージシステム３００によって提供される論理ボリュームの一意な識別子である。仮想フラグ１１４３は、論理ボリュームが仮想ボリュームであるか否かを示す。たとえば、仮想フラグが、“１”である場合、この仮想フラグに対応するボリュームＩＤから識別される論理ボリュームが仮想ボリュームであることを示す。
【００８５】
図７は、ストレージシステム３００に記憶されるコピーペア管理情報１２１０の構成図である。
【００８６】
コピーペア管理情報１２１０は、論理ボリュームＩＤ１２１０１、コピー状態情報１２１０２、コピー対象ストレージＩＤ１２１０３、コピー対象ボリュームＩＤ１２１０４、コピーペアＩＤ１２１０５、コピーグループＩＤ１２１０６及びコピー種別１２１０７を含む。
【００８７】
論理ボリュームＩＤ１２１０１は、このコピーペア管理情報１２１０を記憶するストレージシステム３００によって提供される論理ボリュームの一意な識別子である。
【００８８】
コピー状態情報１２１０２は、論理ボリュームＩＤ１２１０１によって識別される論理ボリュームに対するコピーの現在の状態を示す。具体的には、例えば、コピー状態情報１２１０１は、論理ボリュームＩＤ１２１０１によって識別される論理ボリュームが、正ボリューム、副ボリューム、コピー中、一時停止中又は異常のいずれであるかを示す。
【００８９】
コピー対象ボリュームＩＤ１２１０４は、論理ボリュームＩＤ１２１０１によって識別される論理ボリュームとコピーペアになる論理ボリュームの一意な識別子である。つまり、コピー対象ボリュームＩＤ１２１０４は、論理ボリュームＩＤ１２１０１によって識別される論理ボリュームに記憶されるデータのコピー先又はコピー元となる論理ボリュームの一意な識別子である。
【００９０】
コピー対象ストレージＩＤ１２１０３は、論理ボリュームＩＤ１２１０１によって識別される論理ボリュームとコピーペアになる論理ボリュームを提供するストレージシステム３００の一意な識別子である。つまり、コピー対象ストレージＩＤ１２１０３は、コピー対象ボリュームＩＤ１２１０４によって識別される論理ボリュームを提供するストレージシステム３００の一意な識別子である。
【００９１】
コピーペアＩＤ１２１０５は、論理ボリュームＩＤ１２１０１によって識別される論理ボリューム及びコピー対象ボリュームＩＤ１２１０４によって識別される論理ボリュームを含むコピーペアの一意な識別子である。
【００９２】
コピーグループＩＤ１２１０６は、コピーペアＩＤ１２１０５によって識別されるコピーペアが属するコピーグループの一意な識別子である。ストレージシステム３００は、一つ以上のコピーペアを含むコピーグループを管理する。そのため、管理計算機１００は、コピーグループを指定して、ローカルコピーもしくはリモートコピーの運用の一時停止、再開又は解除をグループに含まれるコピーペアを一括して指示できる。
【００９３】
コピー種別１２１０７は、コピーペアＩＤ１２１０５によって識別されるコピーペアに実行されるコピーの種類である。具体的には、例えば、コピー種別１２１０７は、ローカルコピー、リモートコピーのいずれかを表す。
【００９４】
図８は、ストレージシステム３００に記憶されるボリューム管理情報１２５０の構成図である。
【００９５】
ボリューム管理情報１２５０は、論理ボリュームＩＤ１２５０１、ボリューム状態情報１２５０２、容量１２５０３、コピーペアＩＤ１２５０５、グループＩＤ１２５０６及び仮想フラグ１２５０６を含む。
【００９６】
論理ボリュームＩＤ１２５０１は、このボリューム管理情報１２５０を記憶するストレージシステム３００によって提供される論理ボリュームの一意な識別子である。
【００９７】
ボリューム状態情報１２５０２は、論理ボリュームＩＤ１２５０１によって識別される論理ボリュームの現在の状態を示す。具体的には、例えば、ボリューム状態情報１２５０２は、正ボリューム、副ボリューム、正常、異常又は未実装のうち少なくとも一つを表す。より具体的には、例えば、論理ボリュームＩＤ１２５０１によって識別される論理ボリュームが正ボリュームの場合、ボリューム状態情報１２５０２は、「正ボリューム」を表す。また、論理ボリュームＩＤ１２５０１によって識別される論理ボリュームが副ボリュームの場合、ボリューム状態情報１２５０２は、「副ボリューム」を表す。また、論理ボリュームＩＤ１２５０１によって識別される論理ボリュームにホスト計算機２００が正常にアクセスできる場合、ボリューム状態情報１２５０２は、「正常」を表す。また、論理ボリュームＩＤ１２５０１によって識別される論理ボリュームにホスト計算機２００が正常にアクセスできない場合、ボリューム状態情報１２５０２は、「異常」を表す。例えば、ディスクドライブ１５００の故障時、コピーの障害時に、ボリューム状態情報１２５０２は、「異常」を表す。また、論理ボリュームＩＤ１２５０１によって識別される論理ボリュームにデータが格納されていない場合、ボリューム状態情報１２５０２は、「未実装」を表す。
【００９８】
容量１２５０３は、論理ボリュームＩＤ１２５０１によって識別される論理ボリュームの容量である。
【００９９】
コピーペアＩＤ１２５０５は、論理ボリュームＩＤ１２５０１によって識別される論理ボリュームを含むコピーペアの一意な識別子である。
【０１００】
グループＩＤ１２５０５は、コピーペアＩＤ１２５０５によって識別されるコピーペアが属するコピーグループの一意な識別子である。
【０１０１】
仮想フラグ１２５０６は、論理ボリュームＩＤ１２５０１によって識別される論理ボリュームが仮想ボリュームであるか否かを示す。
【０１０２】
図９は、ストレージシステム３００に記憶される仮想ボリューム管理情報１２７０の構成図である。
【０１０３】
仮想ボリューム管理情報１２７０は、仮想ボリュームに関する情報である。仮想ボリューム管理情報１２７０の数は、ストレージシステム３００が保持する仮想ボリュームの個数と同数である。つまり、仮想ボリューム管理情報１２７０と仮想ボリュームは１対１で対応する。仮想ボリューム管理情報１２７０は、ボリュームＩＤ１２７０１、直前参照アドレス１２７０２、プールＩＤ１２７０３及びアドレスマップを含む。以下、この仮想ボリューム情報１２７０を記憶するストレージシステム３００を「当該ストレージシステム３００」と呼び、この仮想ボリューム管理情報１２７０に対応する仮想ボリュームを「当該仮想ボリューム」と呼ぶ。
【０１０４】
ボリュームＩＤ１２７０１は、当該仮想ボリュームの一意な識別子である。
【０１０５】
直前参照アドレス１２７０２は、当該仮想ボリュームを構成する仮想領域のアドレスであって、直前回にアクセスされた仮想領域のアドレスである。ストレージシステム３００がホスト計算機２００から仮想ボリュームを指定したデータ更新もしくはデータ参照のＩＯ要求を受信した場合に、直前参照アドレス１２７０２が、そのＩＯ要求で指定されているアクセス先アドレス（仮想領域のアドレス）に更新される。
【０１０６】
プールＩＤ１２７０３は、当該ストレージシステム３００によって管理されるプールを一意に示す識別子である。プールＩＤ１２７０３は、当該仮想ボリュームにページを提供する実ボリューム群を特定するために使用される。
【０１０７】
アドレスマップは、仮想アドレス１２７０４、論理ボリュームＩＤ１２７０５、論理アドレスポインタ１２７０５及び更新フラグ１２７０６で構成される。
【０１０８】
仮想アドレス１２７０４は、仮想ボリュームにおける仮想領域を指すエクステントアドレスである。仮想領域のサイズはページのサイズと同一である。ホスト計算機２００からのＩＯ要求において仮想ボリュームが指定される場合、仮想ボリュームにおけるアクセス先の仮想領域を表す仮想アドレスも指定される。
【０１０９】
論理アドレスポインタ１２７０５は、プールＩＤ１２７０３に属する実ボリュームの論理ボリュームＩＤと、その実ボリュームにおけるページのアドレスからなる。つまり、仮想領域にページが割り当てられている場合、論理アドレスポインタ１２７０５は、そのページのアドレスと、そのページを有する実ボリュームの論理ボリュームＩＤとを含んだ情報である。なお、仮想領域にページが割り当てられていない場合、その仮想領域の仮想アドレス１２７０４に対応した論理アドレスポインタ１２７０５としては、「空き」を示す情報となる。
【０１１０】
更新フラグ１２７０６は、当該仮想ボリュームのコピー処理中に使用するフラグである。更新フラグの用法は後述する。
【０１１１】
図１０は、ストレージシステム３００に記憶されるプール管理情報１２９０の構成図である。
【０１１２】
プール管理情報１２９０は、プールを管理するための情報である。プール管理情報１２９０の数は、プールの数と同数である。つまり、プール管理情報１２９０とプールは１対１で対応する。プール管理情報１２９０は、プールＩＤ１２９０１、前回割り当てボリュームＩＤ１２９０６及び論理ボリューム記憶領域管理情報を含む。以下、このプール管理情報１２９０に対応するプールを「当該プール」と呼ぶ。
【０１１３】
プールＩＤ１２９０１は、当該プールを一意に示す識別子である。
【０１１４】
前回割り当てボリュームＩＤ１２９０６は、当該プールに属する実ボリュームを一意に示す識別子である。前回割り当てボリュームＩＤ１２９０６は、当該プールに属する実ボリュームで、最後に割り当てられたページを有する実ボリュームのＩＤが格納される。
【０１１５】
論理ボリューム記憶領域管理情報は、当該プールに属する実ボリュームを管理するための情報である。論理ボリューム記憶領域管理情報の数は、当該プールに属する実ボリュームの数と同数である。つまり、論理ボリューム記憶領域管理情報と当該プールに属する実ボリュームは１対１で対応する。論理ボリューム記憶領域管理情報は、論理ボリュームＩＤ１２９０２、空きポインタ１２９０３、アドレス１２９０４及び割り当てフラグ１２９０５を含む。以下、この論理ボリューム記憶領域管理情報に対応する実ボリュームを「当該実ボリューム」と呼ぶ。
【０１１６】
論理ボリュームＩＤ１２９０２は、当該実ボリュームの一意な識別子である。
【０１１７】
空きポインタ１２９０３は、当該実ボリュームにおける或る割当て可能なページ（例えば、仮想領域に割り当てられていないページ）のアドレス１２９０４を指すポインタである（例えば、複数の割当て可能のページがあった場合には、それら複数の割当て可能なページのうちの先頭の割当て可能なページを指すポインタである）。
【０１１８】
アドレス１２９０４は、ページのアドレスを表す。
【０１１９】
割り当てフラグ１２９０５は、それに対応するページが割当て済みか未割当てか（つまり、割り当て不可能か割り当て可能か）を表す。
【０１２０】
図１１は、ＩＯ要求７３００の説明図である。
【０１２１】
ＩＯ要求７３００は、管理計算機１００又はホスト計算機２００によって発行される。ＩＯ要求７３００は、宛先７３００１、指示内容７３００２、通し番号７３００３、グループＩＤ７３００４及びオプション７３００５を含む。
【０１２２】
宛先７３００１は、このＩＯ要求７３００についての宛先に関する情報である。宛先７３００１は、例えば、このＩＯ要求７３００の送信先となるストレージシステム３００の識別子と、そのストレージシステム３００における論理ボリューム（例えば仮想ボリューム或いは実ボリューム）の識別子と、その論理ボリュームにおける記憶領域（例えば仮想領域或いは実領域）のアドレス（ボリュームアドレス）とを含んだ情報である。
【０１２３】
指示内容７３００２は、このＩＯ要求７３００によって指示される処理の内容である。例えば、指示内容７３００２は、ローカルコピー又はリモートコピーの制御指示か、或いは、データアクセスの指示等である。ローカルコピー又はリモートコピーの制御指示としては、例えば、指示内容７３００２は、ローカルコピー新規開始、ローカルコピー追加、ローカルコピークローズ、リモートコピー新規開始、リモートコピー追加、リモートコピークローズ、リストア準備、高速リストア、通常リストア（リストア準備、高速リストア、通常リストアはローカルコピーリモートコピー共通）、又は状態取得などである。データアクセスの指示としては、例えば、データ書き込み又はデータ参照である。
【０１２４】
通し番号７３００３は、このＩＯ要求７３００が発行された順番を示す。そのため、通し番号７３００３は、このＩＯ要求７３００の発行元である管理計算機１００又はホスト計算機２００によって決められる。
【０１２５】
グループ７３００４は、このＩＯ要求７３００による処理の対象となるコピーグループの一意な識別子である。
【０１２６】
オプション７３００５は、コピー構成情報、このＩＯ要求７３００を補助するオプション情報及びこのＩＯ要求７３００によって書き込みが要求されるデータ等である。なお、コピー構成情報は、コピー種別、コピー先のストレージＩＤ、コピー元の論理ボリュームＩＤもしくは仮想ボリュームＩＤ、コピー先のストレージＩＤ及びコピー元の論理ボリュームＩＤもしくは仮想ボリュームＩＤ等を含む。
【０１２７】
図１２は、ストレージシステム３００におけるデータアクセス処理のフローチャートである。
【０１２８】
ストレージシステム３００の入出力制御部１３００は、ホスト計算機２００からデータアクセス指示のＩＯ要求７３００を受信すると、そのＩＯ要求７３００の宛先７３００１が仮想ボリュームを現しているか否かを判定する（ステップ５０００）。具体的には、例えば、入出力制御部１３００は、ＩＯ要求７３００のあて先７３００１を参照し、あて先７３００１に含まれているボリュームＩＤを取得する。次に、入出力制御部１３００は、取得したボリュームＩＤに合致する論理ボリュームに関する情報を、ボリューム管理情報１２５０から取得する。そのボリューム管理情報１２５０の仮想フラグ１２５０６が仮想ボリュームを表している場合（ステップ５０００でＹｅｓ）、入出力制御部１３００は、ステップ５００５以降を実行し、仮想ボリュームを表していない場合（ステップ５０００でＮｏ）、ステップ５０９０を実行する。以下、図１２及び図１３の説明において、上記取得したボリュームＩＤに対応する仮想ボリュームを「当該仮想ボリューム」と呼ぶ。
【０１２９】
ステップ５００５において、入出力制御部１３００は、上記取得したボリュームＩＤに合致するボリュームＩＤ１２７０１を有した仮想ボリューム管理情報１２７０を複数の仮想ボリューム管理情報１２７０の中から特定する（この特定された仮想ボリューム管理情報１２７０を、以下、図１２及び図１３の説明において、「当該仮想ボリューム管理情報１２７０」と呼ぶ）。次に、入出力制御部１３００は、当該仮想ボリューム管理情報１２７０から、上記ＩＯ要求７３００のあて先７３００１に含まれているボリュームアドレス（以下、図１２及び図１３の説明において「当該ボリュームアドレス」と言う）に合致する仮想アドレス１２７０４を特定する。入出力制御部１３００は、特定した仮想アドレス１２７０４に対応した当該仮想アドレスエントリを参照する（なお、仮想アドレスエントリとは、論理アドレスポインタ１２７０５及び更新フラグ１２７０６で構成されたエントリである）。
【０１３０】
入出力制御部１３００は、上記ＩＯ要求７３００の指示内容７３００２がデータ更新か否かを調べる（ステップ５０１０）。データ更新である場合（ステップ５０１０でＹｅｓ）、入出力制御部１３００は、さらに、当該仮想ボリュームでローカルコピー又はリモートコピーが処理中であるか否かを、コピーペア管理情報１２１０のコピー状態情報１２１０２（上記取得したボリュームＩＤに合致する論理ボリュームＩＤ１２１０１に対応したコピー状態情報１２１０２）を参照することで判定する（ステップ５０２０）。
【０１３１】
ステップ５０２０の判定の結果、ローカルコピーかリモートコピーの処理中（コピー状態情報１２１０２がコピー中）である場合（ステップ５０２０でＹｅｓ）、入出力制御部１３００は、コピー処理中のデータアクセス処理（ステップ５０３０）を実施する。コピー処理中のデータアクセス処理については後述する。
【０１３２】
ステップ５０２０の判定の結果、ローカルコピーもリモートコピーも処理中でない場合（ステップ５０２０でＮｏ）、もしくは、上記のコピー処理中のデータアクセス処理（ステップ５０３０）の終了後、入出力制御部１３００は、当該仮想アドレスエントリにおける論理アドレスポインタ１２７０５を参照する（ステップ５０６０）。参照の結果、論理アドレスポインタ１２７０５が「空き」を表している場合（ステップ５０６０でＮｏ）、入出力制御部１３００は、プールからページを割り当てる処理（ステップ５０７０）を実施する。ステップ５０７０の詳細については後述する。
【０１３３】
プールからページを割り当てる処理（ステップ５０７０）の後、もしくは、上記ステップ５０６０の判定で論理アドレスポインタ１２７０５が「空き」を表していない場合（ステップ５０６０でＹｅｓ）、入出力制御部１３００は、当該仮想ボリューム管理情報１２７０における直前参照アドレス１２７０２を、ＩＯ要求７３００の宛先７３００１に含まれているボリュームアドレス（仮想アドレス）に置き換える（ステップ５０８０）。
【０１３４】
ここで、ステップ５０１０の判定で、上記ＩＯ要求７３００における指示内容７３００２がデータ参照である場合（ステップ５０１０でＮｏ）、入出力制御部１３００は、当該仮想アドレスエントリの論理アドレスポインタ１２７０５を参照する。参照の結果、論理アドレスポインタ１２７０５が「空き」を表している場合（ステップ５０４０でＮｏ）、入出力制御部１３００は、上記ＩＯ要求７３００でデータ参照の結果を“０”として（つまり、“０”を表すデータ要素が読み出されたとして）、ホスト計算機２００にデータ要素“０”を返信し（５０５０）、データアクセス処理を終了する。
【０１３５】
次に、ステップ５０８０の処理が終了した場合、もしくは、ステップ５０４０の判定で、論理アドレスポインタ１２７０５が「空き」を表していない場合（ステップ５０４０でＹｅｓ）、入出力制御部１３００は、論理ボリューム（仮想ボリューム又は実ボリューム）へのデータアクセス処理（ステップ５０９０）を実施する。論理ボリュームへのデータアクセス処理で、ＩＯ要求７３００のあて先７３００１が表す論理ボリュームが仮想ボリュームである場合、入出力制御部１３００は、当該仮想アドレスエントリの論理アドレスポインタ１２７０５から特定されるページにアクセスする。また、ＩＯ要求７３００のあて先７３００１が表す論理ボリュームが実ボリュームである場合、入出力制御部１３００は、その宛先７３００１におけるボリュームアドレスから特定される実領域にアクセスする。
【０１３６】
以上が、データアクセス処理の流れの一例である。なお、図１２の説明において、入出力制御部１３００が行う処理を、例えば、入出力処理プログラム１２４０を実行するプロセッサ１３１０が行うことができる。そのプロセッサ１３１０は、仮想ボリュームに関わる処理については、仮想ボリューム処理プログラム１２２０を実行することで行うことができる。
【０１３７】
図１３は、図１２のステップ５０７０での処理（プールからページを割り当てる処理）の流れを表すフローチャートである。
【０１３８】
ストレージシステム３００の入出力制御部１３００は、当該仮想ボリューム管理情報１２７０における直前参照アドレス１２７０２から、当該仮想ボリュームについての直前回のアクセス先の仮想領域のアドレス（以下、「過去アドレス」と呼ぶ）を特定する（ステップ５１００）。
【０１３９】
次に、入出力制御部１３００は、特定された過去アドレスと当該ボリュームアドレスとを比較し、両アドレスが近傍（例えば、当該ボリュームアドレスが過去アドレスの前後１ページ領域長以内に収まっている）か否かを判定する（ステップ５１１０）。
【０１４０】
このステップ５１１０の判定は、以下の理由、すなわち、連続した二以上の仮想領域がアクセスされる場合は、プール内の同一実ボリュームにおける連続した（連続していなくてもページ間隔が所定のページ数以下である）ページを割り当てることで、その実ボリュームにおいてシーケンシャルなアクセスを可能にし、また、離散的な仮想領域がアクセスされる場合は、プール内の異なる実ボリュームからページが割り当てられることで、並行したデータアクセスを可能にする理由により、行われる。結果として、一度検出したデータは短時間に大量にアクセスが可能な論理ボリューム（厳密には論理ボリュームを構成するハードディスクドライブ）のデータアクセス特性を効率的に引き出すことができる。
【０１４１】
ここで、ステップ５１１０の判定の結果、当該ボリュームアドレスと過去アドレスとが近傍である場合（ステップ５１１０でＹｅｓ）、入出力制御部１３００は、当該仮想ボリューム管理情報１２７０のプールＩＤ１２７０１からプール管理情報１２９０を特定し、さらに、そのプール管理情報１２９０の前回割り当てボリュームＩＤ１２９０６を参照する。次に、入出力制御部１３００は、その前回割り当てボリュームＩＤと同じボリュームＩＤが格納された論理ボリューム記憶領域管理情報の空きポインタ１２９０３を参照し、その空きポインタ１２９０３が「空きなし」を表しているか否かを判定する（ステップ５１２０）。
【０１４２】
一方、ステップ５１１０の判定の結果、当該ボリュームアドレスと過去アドレスが近傍ではない場合（ステップ５１１０でＮｏ）、入出力制御部１３００は、当該仮想ボリューム管理情報１２７０のプールＩＤ１２７０１からプール管理情報１２９０を特定し、さらに、そのプール管理情報１２９０の前回割り当てボリュームＩＤ１２９０６を参照する。次に、入出力制御部１３００は、その前回割り当てボリュームＩＤとは異なるボリュームＩＤが格納された二以上の論理ボリューム記憶領域管理情報に、空きポインタ１２９０３が「空きなし」を表す論理ボリューム記憶領域管理情報が存在するか否かを判定する（ステップ５１８０）。
【０１４３】
ステップ５１８０の判定の結果、空きポインタ１２９０３が「空きなし」でない論理ボリューム記憶領域管理情報がある場合（ステップ５１８０でＹｅｓ）、入出力制御部１３００は、そのような論理ボリューム記憶領域管理情報が複数個存在するならば、任意で一つの論理ボリューム記憶領域管理情報を選出する。また、ステップ５１２０の判定の結果、上記の前回割り当てボリュームＩＤと同じボリュームＩＤが格納された論理ボリューム記憶領域管理情報の空きポインタ１２９０３が「空きなし」ではない場合（ステップ５１２０でＹｅｓ）、入出力制御部１３００は、その論理ボリューム記憶領域管理情報を選出する。
【０１４４】
次に、入出力制御部１３００は、ステップ５１８０でＹｅｓもしくはステップ５１２０でＹｅｓの場合に選出された論理ボリューム記憶領域管理情報における空きポインタ１２９０３が示すアドレス１２９０４に対応した割り当てフラグ１２９０５を、「割り当てあり」をあらわす情報に更新する（ステップ５１４０）。
【０１４５】
次に、入出力制御部１３００は、上記選出された論理ボリューム記憶領域管理情報において、値のなるべく小さいアドレス１２９０４に対応し「割当てなし」を表す割り当てフラグ１２９０５を検索する（ステップ５１５０）。
【０１４６】
ここで、ステップ５１５０の検索の結果、上記選出された論理ボリューム記憶領域管理情報から「割当てなし」を表す割り当てフラグ１２９０５が見つかれば（ステップ５１５０Ｙｅｓ）、入出力制御部１３００は、空きポインタ１２９０３を、見つかった割り当てフラグ１２９０５に対応したアドレス１２９０４が表す情報に更新する（ステップ５１６０）。
【０１４７】
一方、ステップ５１５０の判定の結果、上記選出された論理ボリューム記憶領域管理情報から「割当てなし」を表す割り当てフラグ１２９０５が見つからなければ（ステップ５１５０でＮｏ）、入出力制御部１３００は、上記選出された記憶領域管理情報における空きポインタ１２９０３を「空きなし」を表す情報に更新する。
【０１４８】
ステップ５１２０及び５１８０のいずれかの判定でＮｏになった場合、入出力制御部１３００は、空きポインタ１２９０３が「空きなし」でない論理ボリューム記憶領域管理情報を検索する（ステップ５１９０）。
【０１４９】
ステップ５１９０での検索の結果、空きポインタ１２９０３が「空きなし」でない論理ボリューム記憶領域管理情報が見つかれば（ステップ５１９０でＹｅｓ）、入出力制御部１３００は、見つかった論理ボリューム記憶領域管理情報を選択し、上記のステップ５１４０以降のステップを実施する。
【０１５０】
ステップ５１９０での検索の結果、空きポインタ１２９０３が「空きなし」でない論理ボリューム記憶領域管理情報が見つからなければ（ステップ５１９０でＮｏ）、入出力制御部１３００は、ホスト計算機２００にＩＯ要求７３００のエラーを報告し、ＩＯ要求７３００のデータアクセス処理を終了する。
【０１５１】
以上が、ページ割当て処理の流れの一例である。なお、図１３の説明において、入出力制御部１３００が行う処理を、例えば、入出力処理プログラム１２４０を実行するプロセッサ１３１０が行うことができる。そのプロセッサ１３１０は、仮想ボリュームに関わる処理については、仮想ボリューム処理プログラム１２２０を実行することで行うことができる。
【０１５２】
次に、仮想ボリュームのバックアップ処理を、図１４を用いて説明する。
【０１５３】
図１４は、ストレージシステム３００における仮想ボリュームのバックアップ処理のフローチャートである。
【０１５４】
ストレージシステム３００は、管理計算機１００からのＩＯ要求７３００によるコピー制御指示（指示内容７３００２は「ローカルコピー新規開始」）を受信すると、仮想ボリュームのバックアップ処理を開始する。以下、図１４の説明において、そのＩＯ要求７３００を「コピーＩＯ要求７３００」と言い、バックアップ対象の仮想ボリュームを、「当該仮想ボリューム」と言う。
【０１５５】
入出力制御部１３００は、当該仮想ボリュームの実容量（仮想ボリュームに割り当てられている一以上のページの総記憶容量）がコピー先の論理ボリュームの記憶容量よりも小さいか否かを判定する（ステップ５３００）。具体的には、例えば、入出力制御部１３００は、当該仮想ボリュームに対応した仮想ボリューム管理情報１２７０（以下、図１４の説明において「当該仮想ボリューム管理情報１２７０」と言う）で、論理アドレスポインタ１２７０５が「空き」ではない仮想アドレスエントリの個数を数える。次に、入出力制御部１３００は、仮想アドレスエントリの個数にページ容量（ページの記憶容量）を積算することで、仮想ボリュームの実容量を算出する。さらに、入出力制御部１３００は、コピー先の論理ボリュームの記憶容量（その論理ボリュームに対応した、ボリューム管理情報１２５０における容量１２５０３から特定される記憶容量）と、仮想ボリュームの実容量とを比較する（ステップ５３００）。
【０１５６】
ステップ５３００の判定の結果、仮想ボリュームの実容量がコピー先の論理ボリュームの記憶容量よりも小さい場合（ステップ５３００でＹｅｓ）、入出力制御部１３００は、コピーが不可能であることを示すメッセージを管理計算機１００に報告する。
【０１５７】
また、ステップ５３００の判定の結果、仮想ボリュームの実容量がコピー先の論理ボリュームの記憶容量以上の場合（ステップ５３００でＮｏ）、入出力制御部１３００は、当該仮想ボリューム管理情報１２７０の複製を作成して、入出力制御部１３００内のメモリ１３３０に格納する。さらに、入出力制御部１３００は、Ｓポインタ１３９１、Ｔポインタ１３９２及び構成表１３９３を、入出力制御部１３００のメモリ１３３０に格納する（ステップ５３１０）。
【０１５８】
ここで、Ｓポインタ１３９１とは、当該仮想ボリューム管理情報１２７０におけるアドレスマップ内のいずれかの仮想アドレスエントリを指すポインタである（例えば、Ｓポインタ１３９１は、仮想アドレス１２７０４を指すことで、その仮想アドレス１２７０４に対応した仮想アドレスエントリを指す）。当該仮想ボリュームのコピーは、アドレスマップにおける先頭の仮想アドレスエントリに対応した仮想領域からＳポインタ１３９１が表す仮想アドレスエントリに対応した仮想領域まで完了している。Ｓポインタ１３９１の初期値は、先頭の仮想アドレスエントリ（仮想アドレス１２７０４）を指す。一方、Ｔポインタ１３９２とは、コピー先の論理ボリュームにおける直近のコピー先の実領域のアドレスを表すポインタである。Ｔポインタ１３９２の初期値は、コピー先の論理ボリュームの先頭実領域のアドレスを指す。図１７及び図１８に、それぞれ、Ｓポインタ１３９１及びＴポインタ１３９２を示す。
【０１５９】
また、構成表１３９３とは、コピー先論理ボリュームに保存されるデータ要素のコピー元である仮想ボリュームの一覧を管理する情報である。図１９に構成表１３９３の構成例を示す。構成表１３９３は、仮想ボリュームの個数１３９３６及びＴポインタ１３９３７を含む。また、コピー先論理ボリュームに保存されるデータ要素のコピー元である仮想ボリューム毎に、ボリュームＩＤ（仮想ボリュームの識別子）１３９３１、ＯＳアドレス（ホスト計算機２００が仮想ボリュームに付与したボリューム識別子）１３９３２、仮想ボリュームの容量１３９３３、ユーザ情報（例えば、ＩＯ要求７３００のオプション７３００５に含まれている、ユーザに関する情報）１３９３４、及び、バックアップポインタ（コピー先論理ボリュームにおける、当該仮想ボリュームに対応した仮想ボリューム管理情報１２７０が記憶された実領域のアドレス）１３９３５が含まれる。ステップ５３１０において、入出力制御部１３００は、コピーペア管理情報１２１０に、エントリを追加する。そのエントリには、論理ボリュームＩＤ１２１０１として、コピー元の当該仮想ボリュームを表す識別子が含まれ、コピー状態情報１２１０２として、コピー中を表す情報が含まれ、コピー対象ストレージＩＤ１２１０３として、コピー先論理ボリュームを有するストレージシステム３００の識別子が含まれ、コピー対象ボリュームＩＤ１２１０４として、コピー先論理ボリュームの識別子が含まれ、コピーペアＩＤ１２１０５として、上記コピーＩＯ要求７３００に含まれているコピーペアＩＤが含まれ、コピー種別１２１０７として、ローカルコピーを表す情報が含まれている。
【０１６０】
次に、入出力制御１３００は、Ｓポインタ１３９１が指す仮想アドレスエントリを参照する（ステップ５３２０）。
【０１６１】
次に、入出力制御部１３００は、参照した仮想アドレスエントリにおける論理アドレスポインタ１２７０５が「空き」か否かを判定する（ステップ５３３０）。
【０１６２】
ステップ５３３０の判定の結果、論理アドレスポインタ１２７０５が「空き」の場合（ステップ５３３０でＹｅｓ）、入出力制御部１３００は、Ｓポインタ１３９１にページ領域長（ページのサイズ）を加算することで、Ｓポインタ１３９１が次の仮想アドレスエントリを指すよう変更し（５３９０）、再度、ステップ５３２０の処理を実施する。
【０１６３】
一方、５３３０の判定の結果、論理アドレスポインタ１２７０５が「空き」ではない場合（ステップ５３３０でＮｏ）、入出力制御部１３００は、Ｓポインタ１３９１が指す仮想アドレスエントリの更新フラグ１２７０６を参照し、更新フラグ１２７０６が立っているか否かを判定する（ステップ５３４０）。更新フラグ１２７０６は、バックアップ処理中に、ローカルコピーで仮想ボリュームにおけるデータ要素のコピーが完了する前にそのデータ要素を更新するためアクセスがあった場合に、そのデータ要素（バックアップ対象のデータ要素）を一時退避するために、データ更新回避バッファ１１１０に更新前のデータ要素を保存する処理を実施したか否かを示す。データ更新回避バッファ１１１０にコピー前且つ更新前のデータ要素を退避することで、バックアップ開示直後（コピーＩＯ要求７３００の受信時）の仮想ボリュームに存在する全てのデータ要素をコピーすることが可能となる。
【０１６４】
図２０にデータ更新回避バッファの一例を示す。データ更新回避バッファ１１１０には、退避されるデータ要素毎に、データ要素の退避元のページに対応する仮想領域のアドレス１１０２と、その仮想領域を有する仮想ボリュームのＩＤ１１１０１と、退避されたデータ要素１１１０３とが格納される。
【０１６５】
ステップ５３４０の判定の結果、上記の更新フラグ１２７０６が立っている場合（ステップ５３４０でＹｅｓ）、入出力制御部１３００は、Ｓポインタ１３９１が指す仮想アドレスエントリに対応したデータ要素をデータ更新回避バッファ１１１０から読み出す。入出力制御部１３００は、データ更新回避バッファ１１１０からデータ要素を読み出した後、更新フラグ１２７０６をリセットする（つまり倒す）（ステップ５４００）。
【０１６６】
一方、ステップ５３４０の判定の結果、上記の更新フラグ１２７０６が立っていない場合（ステップ５３４０でＮｏ）、入出力制御部１３００は、Ｓポインタ１３９１が指す仮想アドレスエントリから特定されるページからデータ要素を読み出す（ステップ５３５０）。
【０１６７】
次に、入出力制御部１３００は、Ｔポインタ１３９２が指す、コピー先論理ボリュームにおける実領域に、ステップ５３４０又は５３５０で読み出されたデータ要素を書込む（ステップ５３６０）。
【０１６８】
次に、入出力制御部１３００は、ステップ５３１０で作成した当該仮想ボリューム管理情報１２７０の複製において、Ｓポインタ１３９１が指す仮想アドレスエントリにおける論理アドレスポインタ１２７０５を、Ｔポインタ１３９２が表す、実領域のアドレスに置換える（ステップ５３７０）。
【０１６９】
次に、入出力制御部１３００は、Ｓポインタ１３９１及びＴポインタ１３９２に、それぞれ、１ページ領域長分の値（つまり、ページのサイズに相当するアドレス値）を加算することで、Ｓポインタ１３９１及びＴポインタ１３９２を更新する（ステップ５３８０）。
【０１７０】
次に、入出力制御部１３００は、更新後のＳポインタ１３９１が当該仮想ボリューム管理情報１２７０における最終の仮想アドレスエントリを表しているか否かを判定する（ステップ５４２０）。
【０１７１】
ステップ５４２０の判定の結果、Ｓポインタ１３９１が最終の仮想アドレスエントリに到達していない場合（ステップ５４２０でＮｏ）、入出力制御部１３００は、ステップ５３２０の処理を実行する。
【０１７２】
一方、ステップ５４２０の判定の結果、Ｓポインタ１３９１が最終の仮想アドレスエントリに到達している場合、入出力制御部１３００は、上記の当該仮想ボリューム管理情報１２７０の複製を、コピー先論理ボリュームのＴポインタ１３９２が指す実領域に書込む（ステップ５４３０）。
【０１７３】
最後に、入出力制御部１３００は、構成表１３９３の仮想ボリュームの個数１３９３６に１を加算し、Ｔポインタ１３９２に、当該仮想ボリューム管理情報１２７０の複製の領域長分（つまりサイズ分）のアドレス値を加算し、更新後のＴポインタ１３９２を構成表１３９３のＴポインタ１３９３７として格納し（ステップ５４４０）、コピーペア管理情報１２１０の上記コピー状態情報１２１０２を一時停止中に変更して、処理を終了する。
【０１７４】
以上が、仮想ボリュームのバックアップ処理の説明である。なお、図１４の説明において、入出力制御部１３００が行う処理を、例えば、コピー処理プログラム１２３０を実行するプロセッサ１３１０が行うことができる。そのプロセッサ１３１０は、仮想ボリュームに関わる処理については、仮想ボリューム処理プログラム１２２０を実行することで行うことができる。
【０１７５】
仮想ボリュームのバックアップ処理中に、その仮想ボリュームにおけるデータ要素の更新のためのアクセスが発生する場合、データ更新回避バッファ１１１０に、更新前のデータ要素が退避される。この処理は、図１２で示したデータアクセス処理（ステップ５０３０）で必要になる。
【０１７６】
ここで、図１５を用いて、コピー処理中のデータアクセス処理について説明する。
【０１７７】
図１５は、コピー処理中のデータアクセス処理のフローチャートである。
【０１７８】
入出力制御部１３００は、Ｓポインタ１３９１が表す仮想アドレスと、ＩＯ要求７３００のあて先７３００１に含まれるボリュームアドレスとを比較する（ステップ５５００）。
【０１７９】
ステップ５５００の判定の結果、Ｓポインタ１３９１が表す仮想アドレスがＩＯ要求７３００中のボリュームアドレスより大きい場合（ステップ５５００でＮｏ）、入出力制御部１３００は、当該データアクセス処理を終了する。なぜなら、ボリュームアドレスが表すアクセス先の仮想領域に割当てられているページ上のデータ要素は、コピー済みであるためである。
【０１８０】
一方、ステップ５５００の判定の結果、Ｓポインタ１３９１が表す仮想アドレスがＩＯ要求７３００中のボリュームアドレス以下の場合、入出力制御部１３００は、ステップ５５１０を実行する。なぜなら、ボリュームアドレスが表すアクセス先の仮想領域に割当てられているページ上のデータ要素は、コピー先論理ボリュームに未だコピーされていないためである。
【０１８１】
ステップ５５１０において、入出力制御部１３００は、ＩＯ要求７３００中のボリュームアドレスが表すアクセス先の仮想領域に割当てられているページを、当該仮想ボリューム管理情報１２７０を参照することで特定し、特定したページに記憶されているデータ要素を読み出し、その仮想領域に対応した仮想アドレスエントリにおける更新フラグ１２７０６を立てる。更に、入出力制御部１３００は、ＩＯ要求７３００におけるボリュームＩＤ及びボリュームアドレスと読み出したデータ要素を、データ更新回避バッファ１１１０に書込む。
【０１８２】
以上が、コピー処理中のデータアクセス処理についての説明である。なお、図１５の説明において、入出力制御部１３００が行う処理を、例えば、入出力処理プログラム１２４０を実行するプロセッサ１３１０が行うことができる。そのプロセッサ１３１０は、仮想ボリュームに関わる処理については、仮想ボリューム処理プログラム１２２０を実行することで行うことができる。
【０１８３】
ストレージシステム３００は、仮想ボリュームの実容量分のページにあるデータ要素及びその仮想ボリュームに対応する仮想ボリューム管理情報１２７０の複製をコピー先論理ボリュームにコピーした後、そのコピー先論理ボリュームに、別の仮想ボリュームの実容量分のページにあるデータ要素及びその別の仮想ボリュームに対応する仮想ボリューム管理情報１２７０の複製をコピーすることが可能である。以下、その処理を、「追加バックアップ処理」と言う。図１６を用いて、追加バックアップ処理を説明する。
【０１８４】
図１６は、追加バックアップ処理のフローチャートである。
【０１８５】
ストレージシステム３００は、管理計算機１００からのＩＯ要求によるコピー制御指示（指示内容７３００２は「ローカルコピー追加」）を受信すると、追加バックアップ処理を開始する。
【０１８６】
追加バックアップ処理は、図１４を参照して説明した仮想ボリュームのバックアップ処理との共通点が多く、そのバックアップ処理との異なるステップは、ステップ５３００及び５３１０のみである。そのため、以下、相違点を主に説明し、共通点については説明を省略或いは簡略する（なお、図１６における各ステップには、図１４と実質的に同じ処理が行われるステップに付した番号と同じ番号が付されている）。
【０１８７】
入出力制御部１３００は、追加バックアップ処理でのバックアップ対象の仮想ボリューム（以下、「追加仮想ボリューム」と呼ぶ）の実容量がコピー先の論理ボリュームの空き容量よりも小さいか否かを判定する（ステップ５３００）。論理ボリュームの空き容量は、コピー先論理ボリュームに対応した構成表１３９３におけるＴポインタ１３９３７と、コピー先論理ボリュームの記憶容量（コピー先論理ボリュームに対応した、ボリューム管理情報１２５０の容量１２４０３が表す記憶容量）から計算する。次に、入出力制御部１３００は、コピー先の論理ボリュームの空き容量と追加仮想ボリュームの実容量とを比較する（ステップ５６００）。
【０１８８】
ステップ５６００の判定の結果、追加仮想ボリュームの実容量がコピー先論理ボリュームの空き容量以上の場合（ステップ５６００でＹｅｓ）、入出力制御部１３００は、追加仮想ボリュームに対応する仮想ボリューム管理情報１２７０の複製を作成して、入出力制御部１３００内のメモリ１３３０に格納する。さらに、入出力制御部１３００は、Ｓポインタ１３９１をメモリ１３３０に格納する。さらに、入出力制御部１３００は、入出力制御部１３００のメモリ１３３０に記憶されている作成済みの構成表１３９３から、Ｔポインタを読み出す。次に、入出力制御部１３００は、コピーペア管理情報１２１０に、エントリを追加する。追加したエントリに、追加仮想ボリュームのＩＤ１２１０１と、コピー先論理ボリュームを有するストレージシステムのＩＤ１２１０３と、コピー先論理ボリュームのＩＤ１２０１４とを含める。さらに、入出力制御部１３００は、ＩＯ要求中のコピーペアＩＤ１２１０５と、ローカルコピーを表すコピー種別１２１０７と、コピー中を表すコピー状態情報１２１０２とも、上記追加したエントリに含める（ステップ５６１０）。
【０１８９】
ステップ５６１０より後に行われる処理と、ステップ５６００でＹＥＳの場合に行われる処理は、図１４を参照して説明済みであるため、説明を諸略する。
【０１９０】
この第一の実施例において、コピー先論理ボリュームに対して仮想ボリュームのバックアップを完全に終了する場合、そのコピー先論理ボリュームについてバックアップの終了手続きを実施する必要がある。以降、コピー先論理ボリュームについてのバックアップ終了手続きを、コピー先論理ボリュームのクローズ処理と呼ぶことにする。
【０１９１】
図２１は、コピー先論理ボリュームのクローズ処理のフローチャートである。
【０１９２】
ストレージシステム３００は、管理計算機１００からのＩＯ要求によるコピー制御指示（指示内容７３００２は「ローカルコピークローズ」）を受信すると、論理ボリュームのクローズ処理を開始する。ＩＯ要求では、クローズ処理の対象となるコピー先論理ボリューム（以下、「クローズ対象ボリューム」と言う）が指定されている。
【０１９３】
入出力制御部１３００は、メモリ１３３０に記憶されている構成表１３９３（クローズ対象ボリュームに対応した構成表１３９３）から、Ｔポインタ１３９３７を取得する。次に、入出力制御部１３００は、その構成表１３９３を、クローズ対象ボリュームにおける実領域であって、上記取得したＴポインタが指すアドレスに対応した実領域に、書込む（ステップ５６５０）。
【０１９４】
次に、入出力制御部１３００は、クローズ対象ボリュームにおける、ストレージシステム３００でのみ使用可能な領域であるヘッダ領域（言い換えれば、ホスト計算機２００から指定されることの無い領域）に、上記取得したＴポインタ（言い換えれば、構成表１３９３の書込み先アドレス）を書込む（ステップ５６６０）。次に、入出力制御部１３００は、コピーペア管理情報１２１０におけるコピー状態情報１２１０２から該当エントリ（クローズ対象ボリュームのＩＤを含んだエントリ）を削除し、処理を終了する。
【０１９５】
このクローズ処理では、構成表１３９３の配置場所を表すアドレスが、クローズ対象ボリュームのヘッダ領域に書込まれるが、ヘッダ領域の使用が出来ない場合、ヘッダ領域を使用しない方法が採用される。たとえば、ステップ５６５０において、Ｔポインタの指すアドレスを利用せず、特定のアドレス（たとえば、クローズ対象ボリュームの先頭アドレス或いは最終アドレスなど）が使用されれば良い。
【０１９６】
クローズ処理が終了した後のクローズ対象ボリュームにおけるデータ配置を図３１に示す。図３１から分かるように、クローズ対象ボリュームには、仮想ボリュームの実容量分の一以上のデータ要素がシーケンシャルに配置される。シーケンシャルに配置された終端のデータ要素が記憶されている実領域の隣にある記憶領域から、その仮想ボリュームに対応した仮想ボリューム管理情報１２７０の複製が配置される。そして、追加バックアップ処理が行われた場合には（言い換えれば、本クローズ対象ボリュームに複数の仮想ボリュームがバックアップされた場合には）、その仮想ボリューム管理情報１２７０の複製がある次の実領域から、別の仮想ボリュームの実容量分の一以上のデータ要素が、上記と同様にシーケンシャルに配置される。一以上の仮想ボリュームについてのデータ要素及び仮想ボリューム管理情報１２７０の複製の次の記憶領域から、構成表１３９３が書かれる。なお、構成表１３９３が占める複数の記憶領域のうちの終端の記憶領域と論理ボリュームにおける終端記憶領域との間に空きの記憶領域が生じても良い。
【０１９７】
クローズ処理の終了した論理ボリュームから、任意の仮想ボリュームに記憶されていたデータ要素を取り出し、そのデータ要素をホスト計算機からアクセス可能にする処理がある。これをリストア処理とよぶ。リストア処理は、リストア準備処理とリストア本処理という２つの処理に区別することができる。リストア準備処理は、クローズ対象ボリュームから構成表１３９３を取り出す処理である。リストア本処理は、取り出された構成表１３９３を用いて、任意の仮想ボリュームに記憶されていたデータ要素をクローズ対象ボリュームから取り出してそのデータ要素をホスト計算機２００からアクセス可能にする処理である。
【０１９８】
はじめに、リストア準備処理について説明する。
【０１９９】
図２２は、ストレージシステム３００におけるリストア準備処理のフローチャートである。
【０２００】
ストレージシステム３００は、管理計算機１００からのＩＯ要求によるコピー制御指示（指示内容７３００２は「リストア準備」）を受信すると、仮想ボリュームのリストア準備処理を開始する。
【０２０１】
入出力制御部１３００は、リストア準備を指定したＩＯ要求のオプション７３００５に格納されているコピー構成情報を基に、論理ボリュームの識別子を特定する（ステップ５７００）。
【０２０２】
入出力制御部１３００は、特定された識別子に対応する論理ボリューム（以下、「リストア元論理ボリューム」のヘッダ領域に格納されたＴポインタを取得する。次に、入出力制御部１３００は、そのＴポインタから特定される場所（リストア元論理ボリュームにおける記憶領域）から、構成表１３９３を取得する（ステップ５７１０）。
【０２０３】
入出力制御部１３００は、得られた構成表５７１０を、入出力制御部１３００のメモリ１３３０に格納する（５７２０）。
【０２０４】
以上のリストア準備処理により、ストレージシステム３００は、リストア元論理ボリュームから構成表１３９３を取得できる。なお、図２２の説明において、入出力制御部１３００が行う処理を、例えば、入出力処理プログラム１２４０を実行するプロセッサ１３１０が行うことができる。
【０２０５】
次に、リストア本処理について説明する。本実施例では、高速リストア本処理と通常リストア本処理という二種類のリストア本処理がある。高速リストア本処理とは、仮想ボリューム管理情報１２７０の複製のみをリストア元論理ボリュームから取り出す処理である。通常リストア本処理とは、仮想ボリューム管理情報１２７０の複製のみならずデータ要素もリストア元論理ボリュームから取り出す処理である。高速リストア本処理は、高速に処理が完了するが、リストア先となる仮想ボリュームへのデータ要素の更新が出来ない。一方、通常リストア本処理は、リストア先仮想ボリュームへのデータ要素の更新が可能であるが、高速リストア本処理よりも処理に長い時間が必要である。
【０２０６】
図２３は、ストレージシステム３００における高速リストア本処理のフローチャートである。
【０２０７】
ストレージシステム３００は、管理計算機１００からのＩＯ要求によるコピー制御指示（指示内容７３００２は「高速リストア」）を受信すると、仮想ボリュームの高速リストア本処理を開始する。
【０２０８】
入出力制御部１３００は、ＩＯ要求のオプション７３００５に含まれる、リストア先仮想ボリュームの識別子を取得し、その識別子と合致するボリュームＩＤ１３９３１（入出力制御部１３００のメモリ１３３０に格納されている構成表１３８３におけるボリュームＩＤ１３９３１）に対応したバックアップポインタ１３９３５を取得する（ステップ５７５０）。
【０２０９】
次に、入出力制御部１３００は、取得したバックアップポインタ１３９３５が指す記憶領域（リストア元論理ボリュームにおける記憶領域）に格納されている仮想ボリューム管理情報１２７０の複製をリストア元論理ボリュームから取得し、共有メモリ１２００に、取得した仮想ボリューム管理情報１２７０の複製を格納する（ステップ５７６０）。
【０２１０】
次に、入出力制御部１３００は、その仮想ボリューム管理情報１２７０の複製を基に、リストア先仮想ボリュームを利用可能にする（ステップ５７７０）。具体的には、例えば、入出力制御部１３００は、リストア先仮想ボリュームの識別子と合致するボリュームＩＤ１２５０１（ボリューム管理情報１２５０における論理ボリュームＩＤ１２５０１）に対応した仮想フラグ１２５０６を有効にし、そのＩＤ１２５０１に対応するボリューム状態１２５０２を、「未実装」から「正常」に更新する。
【０２１１】
次に、入出力制御部１３００は、リストア先仮想ボリュームをオンラインにする（ステップ５７８０）。具体的には、例えば、入出力制御部１３００は、ホスト計算機２００とリストア先仮想ボリュームとを結ぶ論理的なパスを設定する。論理的なパスを設定すると、ホスト計算機２００からリストア先仮想ボリュームへのアクセスが可能になる。たとえば、ホスト計算機からのＳＣＳＩの状態取得要求や、チャネルステータス要求などで、ストレージシステム３００は、該当仮想ボリュームが存在すると応答を返す。結果として、ホスト計算機２００は、そのストレージシステム３００に論理ボリュームが存在すると認識し、データアクセス可能なボリューム一覧（例えばホスト計算機２００のＯＳで管理されるボリューム一覧情報）に、その認識した論理ボリュームに関する情報（例えば識別子）を登録する。
【０２１２】
以上が、高速リストア本処理の流れの一例である。なお、図２３の説明において、入出力制御部１３００が行う処理を、例えば、入出力処理プログラム１２４０を実行するプロセッサ１３１０が行うことができる。
【０２１３】
入出力制御部１３００は、高速リストア本処理によってアクセス可能になった仮想ボリューム（以下、高速リストア仮想ボリューム）について、ホスト計算機２００からのリード要求を受け付けるが、ホスト計算機２００からのライト要求を受け付けない。具体的には、例えば、入出力制御部１３００は、高速リストア仮想ボリュームを指定したリード要求を受けた場合、そのリード要求で指定されている仮想領域に対応した記憶領域を、高速リストア仮想ボリュームに対応した仮想ボリューム管理情報１２７０の複製（共有メモリ１２００に記憶されている情報）におけるアドレスマップから特定し、特定した記憶領域（リストア元論理ボリュームにおける記憶領域）からデータ要素を読み出してホスト計算機２００に送信する。一方、例えば、入出力制御部１３００は、高速リストア仮想ボリュームを指定したライト要求を受けた場合、エラーをホスト計算機２００に返す。
【０２１４】
図２４は、ストレージシステム３００における通常リストア本処理のフローチャートである。
【０２１５】
ストレージシステム３００は、管理計算機１００からのＩＯ要求によるコピー制御指示（指示内容７３００２は「通常リストア」）を受信すると、仮想ボリュームの通常リストア本処理を開始する。
【０２１６】
入出力制御部１３００は、ＩＯ要求のオプション７３００５に含まれる、リストア先仮想ボリュームの識別子を取得し、その識別子と合致するボリュームＩＤ１３９３１（入出力制御部１３００のメモリ１３３０に格納されている構成表１３８３におけるボリュームＩＤ１３９３１）に対応したバックアップポインタ１３９３５を取得する（ステップ５８００）。
【０２１７】
次に、入出力制御部１３００は、取得したバックアップポインタ１３９３５が指す記憶領域（リストア元論理ボリュームにおける記憶領域）に格納されている仮想ボリューム管理情報１２７０の複製をリストア元論理ボリュームから取得し、入出力制御部１３００のメモリ１３３０に、取得した仮想ボリューム管理情報１２７０の複製を格納する（ステップ５８１０）。
【０２１８】
次に、入出力制御部１３００は、リストア先仮想ボリュームに対応したプールの残り空き容量（一以上の未割当てのページの総記憶容量）が、リストア先仮想ボリュームに求められる実容量よりも小さいか否かを判定する（ステップ５８２０）。具体的には、例えば、入出力制御部１３００は、そのプールのプールＩＤを有するプール管理情報１２９０において、「空き」を表す割り当てフラグ１２９０５の個数を数える。次に、入出力制御部１３００は、その個数にページ容量（ページの記憶容量）を積算し、プールの空き容量を特定する。さらに、入出力制御部１３００は、図１４のフローで説明した仮想ボリュームの実用量の計算方法を用いて、リストア先仮想ボリュームに求められる実容量を特定し、空き容量と実容量とを比較する。
【０２１９】
ステップ５８２０の判定の結果、プールの残り空き容量が仮想ボリュームの実容量よりも小さい場合（ステップ５８２０Ｙｅｓ）、入出力制御部１３００は、コピーが不可能であることを示すメッセージを管理計算機１００に報告する。
【０２２０】
ステップ５８２０の判定の結果、プールの残り空き容量が仮想ボリュームの実容量以上の場合（ステップ５８２０でＮｏ）、入出力制御部１３００は、Ｓポインタ１３９１を、入出力制御部１３００のメモリ１３３０に格納する（ステップ５３１０）。ここでのＳポインタ１３９１は、リストア先仮想ボリュームに対応した仮想ボリューム管理情報１２７０の複製における先頭の仮想アドレスエントリを指している。入出力制御部１３００は、コピーペア管理情報１２１０に、エントリを追加し、そのエントリに、リストア元の論理ボリュームのＩＤ１２１０１と、リストア先仮想ボリュームを有するストレージシステムの識別子１２１０３と、リストア先仮想ボリュームの識別子１２０１４と、そのストレージシステムにおいて現時点使用中でない空きのコピーペアＩＤ１２１０５と、ローカルコピーを表すコピー種別１２１０７と、コピー中を表すコピー状態情報１２１０２とを含める（ステップ５８３０）。
【０２２１】
次に、入出力制御１３００は、Ｓポインタ１３９１が指す仮想アドレスエントリ（メモリ１３３０に記憶されている仮想ボリューム管理情報１２７０の複製における仮想アドレスエントリ）を参照する（ステップ５８４０）。
【０２２２】
次に、入出力制御部１３００は、参照した仮想アドレスエントリの論理アドレスポインタ１２７０５が「空き」か否かを判定する（ステップ５８５０）。
【０２２３】
ステップ５８５０の判定の結果、論理アドレスポインタ１２７０５が「空き」の場合（ステップ５８５０でＹｅｓ）、入出力制御部１３００は、Ｓポインタ１３９１にページ領域長を加算することで、Ｓポインタ１３９１を、次の仮想アドレスエントリを指すよう変更し（ステップ５８９０）、再度、ステップ５８４０の処理を実施する。
【０２２４】
一方、ステップ５８５０の判定の結果、論理アドレスポインタ１２７０５が「空き」ではない場合（ステップ５８５０でＮｏ）、入出力制御部１３００は、その論理アドレスポインタ１２７０５が指す記憶領域（リストア元論理ボリュームにおける記憶領域）から、データ要素を読み出す（ステップ５８６０）。
【０２２５】
次に、入出力制御部１３００は、Ｓポインタ１３９１が指す仮想アドレスに対応した仮想領域にデータＩＯ要求があったものとして、その仮想領域に、リストア先仮想ボリュームに対応したプールにある未割当てのページを割当て、読み出したデータ要素を、その割当てたページに書込む（ステップ５０７０）。なお、この処理の詳細は、図１３を参照して説明した通りである。
【０２２６】
次に、入出力制御部１３００は、上記Ｓポインタ１３９１が指す仮想アドレスエントリにおける論理アドレスポインタ１２７０５を、上記のステップ５０７０の処理で割り当てたページのアドレスを含んだ情報に置換える（ステップ５８７０）。
【０２２７】
次に、入出力制御部１３００は、Ｓポインタ１３９１に１ページ領域長分のアドレス値を加算することで、Ｓポインタ１３９１を更新する（ステップ５８８０）。
【０２２８】
次に、入出力制御部１３００は、更新後のＳポインタ１３９１が、仮想ボリューム管理情報１２７０の複製における最終の仮想アドレスエントリを指しているか否かを判定する（ステップ５９１０）。
【０２２９】
ステップ５９１０の判定の結果、Ｓポインタ１３９１が最終の仮想アドレスエントリに到達していない場合（ステップ５９１０でＮｏ）、入出力制御部１３００は、ステップ５８４０の処理を行う。
【０２３０】
一方、ステップ５９１０の判定の結果、Ｓポインタ１３９１が最終の仮想アドレスエントリに到達している場合（ステップ５９１０でＹｅｓ）、入出力制御部１３００は、上記の仮想ボリューム管理情報１２７０の複製を、メモリ１３３０から共有メモリ１２００に移す（ステップ５９３０）。
【０２３１】
入出力制御部１３００は、共有メモリ１２００に格納した仮想ボリューム管理情報１２７０の複製を基に、リストア先仮想ボリュームを利用可能にする（ステップ５９４０）。
【０２３２】
最後に、入出力制御部１３００は、リストア先仮想ボリュームをオンラインにし（ステップ５９５０）、通常リストア本処理を終了する。
【０２３３】
以上が、通常リストア本処理の流れの一例である。なお、図２４の説明において、入出力制御部１３００が行う処理を、例えば、コピー処理プログラム１２３０を実行するプロセッサ１３１０が行うことができる。そのプロセッサ１３１０は、仮想ボリュームに関わる処理については、仮想ボリューム処理プログラム１２２０を実行することで行うことができる。
【０２３４】
次に、管理計算機１００が行うバックアップ指示手順及びリストア指示手順を説明する。
【０２３５】
図２５Ａは、管理計算機１００が行うバックアップ指示手順の流れを示す。
【０２３６】
管理計算機１００は、ストレージシステム３００の情報を取得する（６０００）。具体的には、例えば、管理計算機１００のプロセッサ（以下、便宜上「管理プロセッサ」と呼ぶ）１２０が、ストレージ情報テーブル１１４を作成し、次に、管理プロセッサ１２０が認識している論理ボリュームを指定し且つ指示内容７３００２に状態取得を指定したＩＯ要求７３００を、ストレージシステム３００に発行する。そのＩＯ要求７３００の結果には、ストレージシステムＩＤ、ボリュームＩＤ、仮想ボリューム有無が含まれる。管理プロセッサ１２０は、上記ＩＯ要求７３００の結果を、ストレージ情報テーブル１１４に登録する。管理プロセッサ１２０は、上記のようなＩＯ要求の発行を、管理プロセッサ１２０が認識している（もしくはユーザが指定した）全ての論理ボリュームについて実施し、各ＩＯ要求の結果を、ストレージ情報テーブル１１４に登録する。
【０２３７】
次に、管理プロセッサ１２０は、バックアップ構成を定義するため、コピー情報テーブル１１３を作成する（ステップ６０１０）。管理プロセッサ１２０は、ステップ６０００で得られたストレージ情報テーブル１１４を基に、コピー元及びコピー先のストレージシステムのそれぞれの識別子を、正ストレージＩＤ１１３３及び副ストレージＩＤ１１３５として登録する。ただし、第一の実施例では、ローカルコピーが行われるため、正ストレージＩＤ１１３３及び副ストレージＩＤ１１３５は同一のＩＤである。さらに、管理プロセッサ１２０は、コピー元及びコピー先のそれぞれのボリュームのＩＤを、正ボリュームＩＤ１１３４及び副ボリュームＩＤ１１３６として登録する。ここで、第一の実施例では、バックアップにおいては、コピー元は仮想ボリュームである必要があるため、正ボリュームＩＤ１１３４としては、ストレージ情報テーブル１１４において仮想フラグ１１４３が立っている（仮想ボリュームであることを示す）ボリュームＩＤ１１４２が登録される。一方、副ボリュームＩＤ１１３６としては、ストレージ情報テーブル１１４において仮想フラグ１１４３が立っていないボリュームＩＤ１１４２が登録される。さらに、管理プロセッサ１２０は、コピー情報テーブル１１３１に、ローカルコピーを表す情報を含んだコピー情報１１３１と、ストレージシステムで未使用のグループＩＤを表したグループＩＤ１１３２とを含める。
【０２３８】
次に、バックアップを開始するため、管理プロセッサ１２０は、上記コピー情報テーブル１１３を基に、ストレージシステム３００に、コピー制御指示を含んだＩＯ要求７３００を発行する（ステップ６０２０）。具体的には、管理プロセッサ１２０は、ＩＯ要求７３００におけるあて先７３００１に、コピー情報テーブル１１３における正ストレージＩＤ１１３３と正ボリュームＩＤ１１３４とを含め、指示内容７３００２に、ローカルコピー新規開始、コピー元ボリュームＩＤ（正ボリュームＩＤ１１３４）、コピー先ボリュームＩＤ（副ボリュームＩＤ１１３６）を含める。また、グループＩＤ７３００４としては、コピー情報テーブル１１３におけるグループＩＤ１１３２が指定される。また、必要に応じ、コピー対象の仮想ボリュームの付加情報としてＯＳが管理するボリューム情報（たとえばドライブ名や、ボリュームシリアル番号など）および、バックアップ開始時刻などが、オプション７３００５に含まれる。次に、管理プロセッサ１２０は、ストレージシステム３００に、作成したＩＯ要求７３００を発行する。
【０２３９】
ここで、管理プロセッサ１２０は、ホスト計算機２００で動作するＡＰ２１１によっては、当該プログラムを一時停止する必要がある。その場合、管理プロセッサ１２０は、バックアップ開始のためのＩＯ要求７３００をストレージシステム３００に発行する前に、ホスト計算機２００上のＩＯ静止化プログラム２１４に指示を出し、上記ＡＰ２１１を一時停止させる。管理プロセッサ１２０からホスト計算機２００への指示は、エージェントプログラム２１３を介して行われる。ホスト計算機２００上のエージェントプログラム２１３が、管理プロセッサ１２０からの指示に応答して、ＩＯ静止化プログラム２１４に対し、ＡＰ２１１の静止化のための指示を出す。また、管理プロセッサ１２０は、オフラインボリューム管理テーブル１１１に、上記の仮想ボリュームのバックアップの情報（バックアップした仮想ボリューム、バックアップ先ボリューム、バックアップ時刻、バックアップデータの説明情報など）を保存する。
【０２４０】
ストレージシステム３００では、上記ＩＯ要求を受信すると、仮想ボリュームのバックアップ処理が開始される。同一仮想ボリュームで別世代（異なる時点の仮想ボリュームにおけるデータ要素群）、もしくは異なる仮想ボリュームのバックアップが必要な場合は、管理プロセッサ１２０は、その都度、上述した手続きを実施する。ただし、或る仮想ボリュームのバックアップ先となっている論理ボリュームをバックアップ先とする場合には、管理プロセッサ１２００は、コピー開始のためのＩＯ要求７３００に、ローカルコピー新規開始ではなく、ローカルコピー追加を指定する。
【０２４１】
管理プロセッサ１２０は、バックアップが終了した後（バックアップが終了したかどうかの判定は、管理プロセッサ１２０がバックアップ元の仮想ボリューム及び状態取得を指定したＩＯ要求を発行し、その結果が一時停止中であるかどうかにより行うことが可能）、ユーザからクローズ実行を受けた場合には、クローズ処理を実施する（ステップ６０３０）。管理プロセッサ１２０は、ストレージシステム３００に、クローズを指定したＩＯ要求を発行する。
【０２４２】
図２５Ｂは、管理計算機１００が行うリストア指示手順の流れを示す。
【０２４３】
管理プロセッサ１２０は、クローズ処理が済んでいる論理ボリュームから仮想ボリュームをリストアするために、リストア準備処理のための指示をストレージシステム３００に送信する（ステップ６０４０）。具体的には、管理プロセッサ１２０は、ストレージシステム３００に、リストア準備を指定したＩＯ要求を発行する。そのＩＯ要求では、正ボリュームＩＤとしてリストア元論理ボリュームのＩＤが指定され、副ボリュームＩＤは指定されない。リストア準備処理の結果、管理プロセッサ１２０は、例えばそのリストア準備処理で取得された構成表１３９３をストレージシステム３００から取得することで、ストレージシステム３００のリストア元論理ボリュームにバックアップされている仮想ボリュームに関する情報の一覧（以下、仮想ボリューム一覧）を作成することが可能になる。仮想ボリューム一覧は、状態取得を指定したＩＯ要求を管理プロセッサ１２０がストレージシステム３００に発行することで取得できる。仮想ボリューム一覧には、仮想ボリュームのＩＤの他、ステップ６０２０で作成されたＩＯ要求のオプション７３００５におけるバックアップ対象仮想ボリュームのＯＳ管理情報や、バックアップアップ時刻などが含まれてもよい。この仮想ボリューム一覧を利用することで、たとえオフラインボリューム管理テーブル１１１が消去されてしまったとしても、管理プロセッサ１２０は、バックアップしたボリュームのリストアが可能となる。
【０２４４】
次に、管理プロセッサ１２０は、リストア準備処理の済んだリストア元論理ボリュームについてリストア本処理の指示をストレージシステム３００に送信する（ステップ６０５０）。具体的には、管理プロセッサ１２０は、ストレージシステム３００に、リストア本処理を指定したＩＯ要求を発行する。このＩＯ要求では、例えば、正ボリュームＩＤとしてリストア元論理ボリュームのＩＤが指定され、副ボリュームＩＤとして、リストア先の論理ボリューム（仮想ボリューム）のＩＤが指定される。本実施例において、バックアップした仮想ボリュームをリストアする場合、その時点では、リストア先の論理ボリューム（言い換えればリストア本処理における副ボリューム）として、ホスト計算機２００が使用していない仮想ボリュームを指定する必要があり、故に、ストレージシステム３００がホスト計算機２００に公開していない論理ボリュームを指定する必要がある。また、リストア本処理を指定したＩＯ要求では、例えばホスト計算機２００に関する情報（例えば、用途、仕様或いは種類など）に応じて、高速リストア本処理と通常リストア本処理のいずれかが指定される。
【０２４５】
以上が、第一の実施例についての説明である。この第一の実施例によれば、仮想ボリュームのバックアップにおいては、コピー先の論理ボリュームに、仮想ボリュームに割り当てられている一以上のページに記憶されている一以上のデータ要素がコピーされ、仮想ボリュームにおいてページの割り当てられていない仮想領域についてはコピーが発生しない。これにより、コピー先の論理ボリュームにおける記憶領域を無駄に消費してしまうことを防ぐことができる。
【０２４６】
また、第一の実施例によれば、仮想ボリュームに記憶された一以上のデータ要素が、コピー先の論理ボリュームにおいてシーケンシャルに（言い換えれば詰めて）配置される。これにより、コピー先の論理ボリュームにおいて空きの記憶領域を散在させないようにすることができる。また、これにより、一つの論理ボリュームに複数の仮想ボリュームのバックアップを取得することが可能となる。なお、一つの論理ボリュームに複数の仮想ボリュームのバックアップを取得した場合、仮想ボリューム毎に仮想ボリューム管理情報１２７０の複製の存在場所を表す構成表１３９３もコピー先論理ボリュームに格納されるため、コピー先論理ボリュームから任意の仮想ボリュームのみをリストアすることが可能となる。
【０２４７】
また、第一の実施例によれば、仮想領域とページとの対応関係を表す仮想ボリューム管理情報１２７０の複製もコピー先論理ボリュームに書き込まれ、バックアップの際、その仮想ボリューム管理情報１２７０の複製において、仮想領域に対応したページのアドレスが、そのページに記憶されているデータ要素のコピー先の記憶領域のアドレスに変更される。これにより、仮想ボリュームのリストアが可能である。具体的には、リストアの場合には、その仮想ボリューム管理情報１２７０の複製から、どのバックアップ元の仮想領域に記憶されていたデータ要素が、リストア元論理ボリューム（バックアップの際のコピー先論理ボリューム）におけるどの記憶領域に記憶されているかが特定され、特定された記憶領域に記憶されているデータ要素が、バックアップ元の仮想領域（具体的には、その仮想領域にリストアの際に割り当てられたページ）に書き込まれる。
【０２４８】
なお、コピー先の論理ボリュームは、実ボリュームであっても良いし、仮想ボリュームであっても良い。仮想ボリュームとしては、Thin Provisioning技術に従う論理ボリュームでも良いが、記憶領域が無駄に消費されることを防ぐというメリットを享受するためには、仮想ボリュームにおけるどの仮想領域がアクセス先となるとどの実領域にアクセスされることになるかが一義的に定まるタイプの仮想ボリュームが採用されることが好ましい。そのタイプの仮想ボリュームとしては、例えば、ストレージ仮想化技術に従う仮想ボリューム、具体的には、例えば、図３２Ａに例示するように、外部のストレージシステムに存在する実ボリュームが対応付けられている仮想ボリュームとすることができる。その仮想ボリュームは、例えば、ストレージ仮想化装置（スイッチでもストレージシステムでも良い）が提供できる。また、コピー先の論理ボリュームとしては、図３２Ｂに例示するように、上記のようなストレージ仮想化技術に従う仮想ボリュームの集合体が採用されても良い。この場合、仮想ボリュームの集合体（一論理ボリューム）を構成する各仮想ボリュームに対応した各外部ボリューム（実ボリューム）は、一又は複数の外部ストレージしシステムに存在する。
【実施例２】
【０２４９】
以下、本発明の第二の実施例について、第一の実施例との相違点を主に説明する（第一の実施例との共通点については、説明を省略或いは簡略する）。
【０２５０】
第二の実施例に係る計算機システムでは、ストレージシステム内の仮想ボリュームに記憶されている一以上のデータ要素が、遠隔地にある別のストレージシステムにある論理ボリュームにコピーが実行される。その際、それら一以上のデータ要素は、第一の実施例と同様に、コピー先の論理ボリュームにおいて、シーケンシャルに配置される。
【０２５１】
第二の計算機システムの構成を、図２６に示す。第二の計算機システムでは、物理的に異なる拠点に配置された計算機システムが、ストレージシステムを介してデータ線５１２で接続される。一方は、主に業務を実行する計算機システム（現用の計算機システム）であり、他方は、待機系の計算機システムである。前者の一方の計算機システムを、正計算機システムと呼び、後者の他方の計算機システムを副計算機システムと呼ぶ。正計算機システムの構成要素には、参照番号の末尾に「Ａ」という文字を付し（例えば、正管理計算機１００Ａ、正ホスト計算機２００Ａ、正ストレージシステム３００Ａ）、副計算機システムの構成要素には、参照番号の末尾に「Ｂ」という文字を付す（例えば、副管理計算機１００Ｂ、副ホスト計算機２００Ｂ、副ストレージシステム３００Ｂ）。
【０２５２】
第二の実施例で行われる処理は、仮想ボリュームのバックアップ処理を除き、第一の実施例と実質的に同じである。
【０２５３】
ここで、第二の実施例における仮想ボリュームのバックアップ処理について、第一実施例での仮想ボリュームのバックアップ処理との差分を説明する。
【０２５４】
図２７は、正ストレージシステム３００Ａにおける仮想ボリュームのバックアップ処理のフローチャートである。
【０２５５】
図１４と図２７との相違点は、図１４のステップ５３１０、５３６０、５３８０及び５４３０が、図２７では、ステップ８３１０、８３６０、８３８０及び８３９０にそれぞれ変更されている点と、図１４のステップ５３７０及び５４４０に相当する処理が、図２７には無い点である。
【０２５６】
正ストレージシステム３００Ａ及び副ストレージシステム３００Ｂの一方又は両方が、正管理計算機１００Ａ及び／又は副管理計算機１００ＢからＩＯ要求（コピー制御指示（指示内容７３００２は「リモートコピー新規開始」））を受信すると、仮想ボリュームのバックアップ処理を開始する。一方のストレージシステム３００Ａ又は３００Ｂのみが上記ＩＯ要求を受けた場合、例えば、そのＩＯ要求が他方のストレージシステム３００Ｂ又は３００Ａに転送される。
【０２５７】
ステップ８３１０では、正ストレージシステム３００Ａの入出力制御部１３００Ａが、仮想ボリューム管理情報１２７０Ａを複製するだけでなく、副ストレージシステム３００Ｂに、その仮想ボリューム管理情報１２７０Ａの複製を転送する。また、Ｔポインタを作成する処理が存在しない。
【０２５８】
ステップ８３６０では、入出力制御部１３００Ａが、読み出されたデータ要素を、副ストレージシステム３００Ｂに転送する。
【０２５９】
ステップ８３９０では、入出力制御部１３００Ａが、正ストレージシステム３００Ａでのバックアップ処理が完了したことを副ストレージシステム３００Ｂに通知する。
【０２６０】
図２８は、副ストレージシステム３００Ｂにおける仮想ボリュームのバックアップ処理のフローチャートである。
【０２６１】
副ストレージシステム３００Ｂの入出力制御部１３００Ｂは、正ストレージシステム３００Ａから転送される仮想ボリューム管理情報１２７０の複製を受信すると、入出力制御部１３００Ｂのメモリ１３３０Ｂに格納する。次に、入出力制御部１３００Ｂは、Ｔポインタ１３９２及び構成表１３９３を作成しメモリ１３３０Ｂに格納する。また、入出力制御部１３００Ｂは、コピーペア管理情報１２１０Ｂに、エントリを追加し、そのエントリに、コピー元の仮想ボリュームのＩＤ１２１０１と、副ストレージシステム３００ＢのＩＤ１２１０３と、コピー先論理ボリュームのＩＤ１２０１４と、上記ＩＯ要求に格納されるコピーペアＩＤ１２１０５と、リモートコピーを表すコピー種別１２１０７と、コピー中を表すコピー状態情報１２１０２とを含める（ステップ８５００）。
【０２６２】
次に、入出力制御部１３００Ｂは、正ストレージシステム３００Ａからのデータ要素の受付待ちを実施する（ステップ８５１０）。
【０２６３】
入出力制御部１３００Ｂは、データ要素を受信すると（ステップ８５１０でＹｅｓ）、受信したデータ要素を、コピー先論理ボリュームにおける記憶領域（Ｔポインタ１３９２が指すアドレスに対応した記憶領域）に書き込む（ステップ８５２０）。
【０２６４】
次に、入出力制御部１３００Ｂは、受信した仮想ボリューム管理情報１２７０の複製における論理アドレスポインタ１２７０５を、Ｔポインタ１３９２に置換える（ステップ５８３０）。
【０２６５】
次に、入出力制御部１３００Ｂは、Ｔポインタ１３９２に１ページ領域長分のアドレス値を加算する（ステップ５８４０）。
【０２６６】
次に、入出力制御部１３００Ｂは、正ストレージシステム３００Ａからバックアップ終了通知が到着しているかを判定する（ステップ５８４５）。
【０２６７】
ステップ５８４５の判定で、入出力制御部１３００Ｂが、バックアップ終了通知を受けている場合（ステップ５８４５でＹｅｓ）、上記の仮想ボリューム管理情報１２７０の複製を、コピー先論理ボリュームにおける記憶領域（更新後のＴポインタ１３９２が指すアドレスに対応した記憶領域）に書込む（ステップ５８５０）。
【０２６８】
最後に、入出力制御部１３００Ｂは、構成表１３９３における仮想ボリュームの個数１３９３６に１を加算し、Ｔポインタ１３９２に仮想ボリューム管理情報１２７０の複製の領域長分のアドレス値を加算し、更新後のＴポインタ１３９２を構成表１３９３のＴポインタ１３９３７として登録し（ステップ５８６０）、コピーペア管理情報１２１０の上記コピー状態情報１２１０２を一時停止中に変更し、処理を終了する。
【０２６９】
図２９は、正ストレージシステム３００Ａにおける追加バックアップ処理のフローチャートである。
【０２７０】
正ストレージシステム３００Ａにおける追加バックアップ処理も、図１６に示した追加バックアップ処理と一部を除き同一である。図１６と図２９との相違点は、図１６のステップ５６１０、５６６０、５６８０及び５６３０が、図２９では、ステップ８３１０、８３６０、８３８０及び８３９０にそれぞれ変更されている点と、図１６のステップ５６７０及び５６４０が図２９には無い点である。
【０２７１】
正ストレージシステム３００Ａ及び副ストレージシステム３００Ｂの一方又は両方が、正管理計算機１００Ａ及び／又は副管理計算機１００ＢからＩＯ要求（コピー制御指示（指示内容７３００２は「リモートコピー追加」））を受信すると、仮想ボリュームのバックアップ処理を開始する。一方のストレージシステム３００Ａ又は３００Ｂのみが上記ＩＯ要求を受けた場合、例えば、そのＩＯ要求が他方のストレージシステム３００Ｂ又は３００Ａに転送される。
【０２７２】
図２９のステップ８３１０、８３６０、８３８０及び８３９０は、図２７で説明した同一番号のステップと同じであるため説明を省略する。
【０２７３】
図３０は、副ストレージシステム３００Ｂにおける追加バックアップ処理のフローチャートである。
【０２７４】
副ストレージシステム３００Ｂにおける追加バックアップ処理は、図２８の処理と一部を除き同一である。図３０と図２８の差異は、ステップ８５００のみである。図２８のステップ８５００は、図３０ではステップ８９００が該当する。
【０２７５】
ステップ８９００で、入出力制御部１３００Ｂは、正ストレージシステム３００Ａからデータ要素を受信すると、上記の仮想ボリューム管理情報１２７０の複製を、入出力制御部１３００Ｂ内のメモリ１３３０Ｂに格納する。さらに、入出力制御部１３００Ｂは、メモリ１３３０Ｂに記憶されている作成済みの構成表１３９３から、Ｔポインタを読み出す。次に、入出力制御部１３００Ｂは、コピーペア管理情報１２１０に作成した追加のエントリに、コピー元の仮想ボリュームのＩＤ１２１０１と、副ストレージシステム３００ＢのＩＤ１２１０３と、コピー先論理ボリュームのＩＤ１２０１４と、上記ＩＯ要求に格納されているコピーペアＩＤ１２１０５と、リモートコピーを表すコピー種別１２１０７と、コピー中を表すコピー状態情報１２１０２とを含める。
【０２７６】
以上が、第二の実施例についての説明である。第二の実施例では、副ボリュームに、正ボリューム（仮想ボリューム）における一以上のデータ要素や、その仮想ボリュームに対応した仮想ボリューム管理情報１２７０の複製を、シーケンシャルに配置することができる。
【０２７７】
以上、本発明の好適な幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０２７８】
例えば、プールを構成する論理ボリュームは、実ボリュームに代えて、ストレージ仮想化技術に従う仮想ボリュームであっても良い。また、例えば、プールを構成する論理ボリュームは、ストレージシステム３００の外部のストレージシステム３００に存在しても良い。
【０２７９】
また、例えば、複数の正ストレージシステム３００Ａに存在する複数の仮想ボリュームが、副ストレージシステム３００Ｂにおける一つの論理ボリュームにバックアップされても良い。
【０２８０】
また、例えば、入出力制御部１３００は、高速リストア仮想ボリュームについてリード要求のみならずライト要求を受け付けても良い。具体的には、例えば、図３３に示すように、入出力制御部１３００は、高速リストア仮想ボリュームにおける仮想領域Ｂを指定したライト要求を受けた場合、仮想領域ＢにページＰ１を割当て、ページＰ１に、ライト要求に従うデータ要素Ｄ２を書込むと共に、高速リストア仮想ボリュームに対応した仮想ボリューム管理情報１２７０の複製におけるアドレスマップにおいて、仮想領域Ｂ（仮想アドレス１２７０４）に対応付けるアドレス（論理アドレスポインタ１２７０５）を、記憶領域Ｒ１のアドレスから、ページＰ１のアドレスに変更する。その後、例えば、入出力制御部１３００は、仮想領域Ｂを指定したリード要求をホスト計算機２００から受けた場合、仮想領域Ｂに対応したページＰ１を、上記アドレスマップから特定し、特定したページＰ１からデータ要素Ｄ２を読み出してホスト計算機２００に送信する。
【図面の簡単な説明】
【０２８１】
【図１】本発明の第一の実施例に係る計算機システムの構成を表すブロック図である。
【図２】仮想ボリューム処理の説明図である。
【図３】仮想ボリュームのバックアップ処理の概要の説明図である。
【図４】管理計算機に記憶されるオフラインボリューム管理テーブルの構成図である。
【図５】管理計算機に記憶されるコピー情報テーブルの構成図である。
【図６】管理計算機に記憶されるストレージ情報テーブルの構成図である。
【図７】ストレージシステムに記憶されるコピーペア管理情報の構成図である。
【図８】ストレージシステムに記憶されるボリューム管理情報の構成図である。
【図９】ストレージシステムに記憶される仮想ボリューム管理情報の構成図である。
【図１０】ストレージシステムに記憶されるプール管理情報の構成図である。
【図１１】ＩＯ要求７３００の説明図である。
【図１２】ストレージシステムにおけるデータアクセス処理のフローチャートである。
【図１３】図１２のステップ５０７０で行われる処理のフローチャートである。
【図１４】ストレージシステムにおける仮想ボリュームのバックアップ処理のフローチャートである。
【図１５】ストレージシステムにおけるコピー処理中のデータアクセス処理のフローチャートである。
【図１６】ストレージシステムにおける追加バックアップ処理のフローチャートである。
【図１７】Ｓポインタの構成図である。
【図１８】Ｔポインタの構成図である。
【図１９】ストレージシステムに記憶される構成表の構成図である。
【図２０】ストレージシステムに記憶されるデータ更新回避バッファの構成図である。
【図２１】ストレージシステムにおける論理ボリュームのクローズ処理のフローチャートである。
【図２２】ストレージシステムにおけるリストア準備処理のフローチャートである。
【図２３】ストレージシステムにおける高速リストア本処理のフローチャートである。
【図２４】ストレージシステムにおける通常リストア本処理のフローチャートである。
【図２５】図２５Ａは、管理計算機が行うバックアップ指示手順の流れを示す。図２５Ｂは、管理計算機が行うリストア指示手順の流れを示す。
【図２６】本発明の第二の実施例に係る計算機システムの構成を表すブロック図である。
【図２７】正ストレージシステムにおける仮想ボリュームのバックアップ処理のフローチャートである。
【図２８】副ストレージシステムにおける仮想ボリュームのバックアップ処理のフローチャートである。
【図２９】正ストレージシステムにおける追加バックアップ処理のフローチャートである。
【図３０】副ストレージシステムにおける追加バックアップ処理のフローチャートである。
【図３１】本発明の第一の実施例においてクローズ処理が終了した時点でのコピー先論理ボリューム内のデータ構成例を示す。
【図３２】図３２Ａは、仮想ボリュームのコピー先論理ボリュームとして採用される仮想ボリュームの一例である。図３２Ｂは、仮想ボリュームのコピー先論理ボリュームとして採用される仮想ボリュームの別の一例である。
【図３３】高速リストア仮想ボリュームを指定したライト要求の処理の概要図。
【符号の説明】
【０２８２】
１００…管理計算機  ２００…ホスト計算機  ３００…ストレージシステム
【図１】
0005142629.tif 000002
【図２】
0005142629.tif 000003
【図３】
0005142629.tif 000004
【図４】
0005142629.tif 000005
【図５】
0005142629.tif 000006
【図６】
0005142629.tif 000007
【図７】
0005142629.tif 000008
【図８】
0005142629.tif 000009
【図９】
0005142629.tif 000010
【図１０】
0005142629.tif 000011
【図１１】
0005142629.tif 000012
【図１２】
0005142629.tif 000013
【図１３】
0005142629.tif 000014
【図１４】
0005142629.tif 000015
【図１５】
0005142629.tif 000016
【図１６】
0005142629.tif 000017
【図１７】
0005142629.tif 000018
【図１８】
0005142629.tif 000019
【図１９】
0005142629.tif 000020
【図２０】
0005142629.tif 000021
【図２１】
0005142629.tif 000022
【図２２】
0005142629.tif 000023
【図２３】
0005142629.tif 000024
【図２４】
0005142629.tif 000025
【図２５】
0005142629.tif 000026
【図２６】
0005142629.tif 000027
【図２７】
0005142629.tif 000028
【図２８】
0005142629.tif 000029
【図２９】
0005142629.tif 000030
【図３０】
0005142629.tif 000031
【図３１】
0005142629.tif 000032
【図３２】
0005142629.tif 000033
【図３３】
0005142629.tif 000034