(57)【特許請求の範囲】
【請求項１】
上位装置からライトコマンドとライトデータの一単位であるライトデータ要素とを受け付けるストレージシステムであって、
第一の論理ボリュームを含んだ一以上の論理ボリュームとジャーナルエリアとの基になる物理記憶デバイスと、
前記上位装置から前記ライトコマンド及び前記ライトデータ要素を受け付け、前記ライトコマンドから特定される前記第一の論理ボリュームに前記ライトデータ要素を書き込むコントローラと
を備え、
前記ジャーナルエリアは、論理ボリュームを構成する複数のブロックのうちのいずれかのブロックに記憶されているデータ要素又はそのブロックに書き込まれるデータ要素であるジャーナルデータ要素が記憶される記憶領域であり、複数のセグメントで構成されており、
前記コントローラが、
メモリと、
前記上位装置から受信するライトデータ要素のサイズであるライト単位サイズを受け付けるサイズ受付部と、
前記受け付けたライト単位サイズを、前記メモリに設定し、前記ブロックのサイズ及び前記セグメントのサイズが前記ライト単位サイズと同じサイズになるように前記一以上の論理ボリュームの各々の各ブロックと前記ジャーナルエリアを構成する各セグメントを管理するサイズ管理部と
を有する、
ストレージシステム。
【請求項２】
前記第一の論理ボリュームの他に、前記第一の論理ボリュームとペアを構成する第二の論理ボリュームがあり、
前記物理記憶デバイスに基づく記憶領域であるジャーナル管理エリアがあり、
前記第一の論理ボリュームについて、第一のサブ管理情報が前記ジャーナル管理エリアに記憶され、
前記第二の論理ボリュームについて、世代毎の第二のサブ管理情報が前記ジャーナル管理エリアに記憶され、
前記第一のサブ管理情報は、前記第一の論理ボリュームを構成する各ブロックに対応した各情報要素を有する第一の差分管理情報を含み、前記各情報要素は、その情報要素に対応するブロックに更新が発生したか否かを表し、前記各ブロックは、前記設定されたホスト単位サイズであり、
前記第二のサブ管理情報は、前記第二の論理ボリュームを構成する各ブロックに対応した各情報要素を有する第二の差分管理情報と、データ格納アドレス情報とを含み、前記各情報要素は、その情報要素に対応する記憶領域に更新が発生したか否かを表し、前記各ブロックは、前記設定されたホスト単位サイズであり、前記データ格納アドレス情報は、前記ジャーナルエリアにおけるセグメントのアドレスを表し、
前記メモリが、前記第一のサブ管理情報と世代毎の前記第二のサブ管理情報とのそれぞれの情報の在り処を表す管理情報を記憶し、
前記コントローラが、
前記上位装置から前記ライトコマンド及び前記ライトデータ要素を受け付け、前記ライトコマンドから特定される前記第一の論理ボリューム内のライト先ブロックに前記ライトデータ要素を書き込み、前記第一の差分管理情報における、前記ライト先ブロックに対応した情報要素が未更新を表していれば更新済みに更新するライト処理部と、
世代確定イベントが発生したことによって前記第一の論理ボリュームの世代（ｊ）が確定した時に、下記（２−１）及び（２−２）を実行する世代確定部と
（２−１）前記第二の論理ボリュームの世代（ｊ−１）に対応した前記第二の差分管理情報（ｊ−１）を含んだ前記第二のサブ管理情報（ｊ−１）を、前記第二の論理ボリュームについての前記ホスト単位サイズに基づいて前記ジャーナル管理エリア内に追加する、
（２−２）前記第一の差分管理情報において更新済みを表す各情報要素について、以下の（２−２−１）乃至（２−２−４）を実行する、
（２−２−１）前記第一の差分管理情報において更新済みを表す情報要素に対応した、前記第二の差分管理情報（ｊ−１）内の情報要素を、更新済みを表す情報要素に更新する、
（２−２−２）前記第二のサブ管理情報に、データ格納アドレス情報を追加し、前記追加されたデータ格納アドレス情報は、前記第一の差分管理情報において更新済みを表す情報要素に対応したブロックと同じ位置にある、前記第二の論理ボリューム内のブロック、に記憶されているデータ要素の、前記ジャーナルエリアにおける退避先のセグメントのアドレスを表している、
（２−２−３）前記第一の差分管理情報において更新済みを表す情報要素に対応したブロックと同じ位置にある、前記第二の論理ボリューム内のブロック、に記憶されているデータ要素を、前記追加されたデータ格納アドレス情報が表す、前記ジャーナルエリア内のセグメントに、退避する、
（２−２−４）前記データ要素の退避元である、前記第二の論理ボリューム内のセグメントに、前記第一の差分管理情報において更新済みを表す情報要素に対応した、前記第一の論理ボリュームに関連するデータ要素を、書込む、
を有し、
前記（２−２−３）で前記ジャーナルエリアに退避されたデータ要素の集合が、世代（ｊ−１）の前記第二の論理ボリュームと世代（ｊ−２）の前記第二の論理ボリュームとの差分を表す世代間差分データ（ｊ−１）である、
請求項１記載のストレージシステム。
【請求項３】
前記（２−２−２）において、前記ジャーナルエリアにおける、前記退避先のセグメントは、直前回に退避先とされたセグメントに連続したセグメントであり、
前記世代確定部は、前記（２−２−１）乃至（２−２−４）を、前記第一の論理ボリュームのブロックのアドレス順に実行する、
請求項２記載のストレージシステム。
【請求項４】
前記（２−２−４）における、前記第一の論理ボリュームに関連するデータ要素は、以下の（４−１）又は（４−２）である、
（４−１）前記ジャーナルエリア内に記憶された、前記第一の論理ボリュームについてのジャーナルデータ要素であって、前記第一の論理ボリュームに書き込まれるライトデータ要素であるアフタージャーナルデータ要素、
（４−２）前記第一の差分管理情報において更新済みを表す情報要素に対応した、前記第一の論理ボリューム内の記憶領域、に記憶されているデータ要素、
請求項２又は３記載のストレージシステム。
【請求項５】
前記コントローラが、複数の世代の前記第二のサブ管理情報及び世代間差分データをマージするマージ処理部を更に有し、
前記マージ後の第二のサブ管理情報及び世代間差分データには、同一のブロックに対応した情報要素及び世代間差分データ要素については、より古い世代の情報要素及び世代間差分データ要素が含まれ、その世代より新しい情報要素及び世代間差分データ要素が含まれていない、
請求項２乃至４のうちのいずれか１項に記載のストレージシステム。
【請求項６】
前記コントローラが、リストア対象世代の前記第一の論理ボリュームを表す第三の論理ボリュームを準備するリストア処理部を更に有する、
請求項２乃至５のうちのいずれか１項に記載のストレージシステム。
【請求項７】
前記リストア処理部が、リストア対象世代から最新世代までの前記第二のサブ管理情報を用いて、仮想的な論理ボリュームである前記第三の論理ボリュームを構成する各ブロックに対応した各参照先アドレスを有したリストア管理情報を作成し、前記第三の論理ボリュームの或るブロックを指定したリードの要求を上位装置から受けた場合、前記或るブロックについて有効な参照先アドレスがあれば、その参照先アドレスが示すセグメントからデータ要素を読み出して、前記上位装置に提供し、前記或るブロックについて有効な参照先アドレスがなければ、前記第一又は第二の論理ボリュームにおける、前記或るブロックと同じ位置にあるブロック、からデータ要素を読み出して、前記上位装置に提供する、
請求項６記載のストレージシステム。
【請求項８】
前記第三の論理ボリュームに記憶されているデータが、前記ライト単位サイズよりも大きいスロットサイズ単位がバックアップされるようになっており、
前記メモリには、キャッシュメモリが含まれており、
前記リストア処理部が、前記キャッシュメモリに、前記スロットサイズ分の領域であるスロットを確保し、前記確保したスロットに、前記リストア対象世代に該当する複数のデータ要素を格納し、スロットに格納されたデータ要素群である前記スロットサイズ分のデータを、バックアップする、
請求項６記載のストレージシステム。
【請求項９】
前記コントローラが、圧縮対象世代に属する前記第二のサブ管理情報及び世代間差分データが圧縮された圧縮後情報を記憶するための第一の領域を、前記第一又は第二の物理記憶デバイスから確保し、圧縮対象世代に属する前記第二のサブ管理情報及び世代間差分データが記憶されている第二の領域から、前記圧縮対象世代に属する前記第二のサブ管理情報及び世代間差分データを読み出し、読み出された第二のサブ管理情報及び世代間差分データを圧縮することで前記圧縮後情報を生成し、生成された圧縮後情報を前記第二の領域に格納し、前記第二の領域を空き領域として管理する、
請求項２乃至８のうちのいずれか１項に記載のストレージシステム。
【請求項１０】
前記コントローラが、前記論理ボリュームの各世代について、サブ管理情報の在り処を表すジャーナル管理情報を前記メモリに記憶し、前記物理記憶デバイスが基になっているジャーナル管理エリアに、サブ管理情報を記憶し、
前記サブ管理情報は、前記論理ボリュームを構成する各ブロックに対応した各情報要素を有する差分管理情報と、データ格納アドレス情報とを含み、前記各情報要素は、その情報要素に対応するブロックに更新が発生したか否かを表し、前記データ格納アドレス情報は、対応するジャーナルデータ要素が記憶されている、前記ジャーナルエリアにおけるセグメント、のアドレスを表す、
請求項１記載のストレージシステム。
【請求項１１】
前記コントローラが、世代確定イベントが発生した時に、前記第二の論理ボリューム内の複数の更新対象ブロックに記憶されている複数のデータ要素をブロックのアドレス順に前記ジャーナルエリアに退避し、その際、退避先のセグメントを、直前回に退避先とされたセグメントに連続したセグメントとする、
請求項１又は１０記載のストレージシステム。
【請求項１２】
前記コントローラが、リストア対象世代から最新世代までのサブ管理情報を用いて、仮想的な論理ボリュームである第三の論理ボリュームを構成する各ブロックに対応した各参照先アドレスを有したリストア管理情報を作成し、前記第三の論理ボリュームの或るブロックを指定したリードの要求を上位装置から受けた場合、前記或るブロックについて有効な参照先アドレスがあれば、その参照先アドレスが示すセグメントからデータ要素を読み出して、前記上位装置に提供し、前記或るブロックについて有効な参照先アドレスがなければ、前記第一の論理ボリューム又はそれのフルバックアップである第二の論理ボリュームにおける、前記或るブロックと同じ位置にあるブロック、からデータ要素を読み出して、前記上位装置に提供し、
前記サブ管理情報は、前記論理ボリュームを構成する各ブロックに対応した各情報要素を有する差分管理情報と、データ格納アドレス情報とを含み、前記各情報要素は、その情報要素に対応するブロックに更新が発生したか否かを表し、前記データ格納アドレス情報は、対応するジャーナルデータ要素が記憶されている、前記ジャーナルエリアにおけるセグメント、のアドレスを表す、
請求項１又は１０及び１１のうちのいずれか１項に記載のストレージシステム。
【請求項１３】
前記物理記憶デバイスが、前記一以上の論理ボリュームとジャーナルエリアの他に、別の上位装置についての第三の論理ボリュームを含んだ別の一以上の論理ボリュームの基になっており、
前記ジャーナルエリアは、前記一以上の論理ボリュームについての第一のジャーナルサブエリアと、前記別の一以上の論理ボリュームについての第二のジャーナルサブエリアとを含み、
前記サイズ受付部が、前記ライト単位サイズの他に、前記別の上位装置から受信するライトデータ要素のサイズである別のライト単位サイズを受け付け、
前記サイズ管理部が、
前記上位装置について、前記受け付けたライト単位サイズを、前記メモリに設定し、前記一以上の論理ボリュームの各々のブロックのサイズ及び前記第一のジャーナルサブエリアのセグメントのサイズが前記ライト単位サイズと同じサイズになるように前記一以上の論理ボリュームの各々の各ブロックと前記第一のジャーナルサブエリアを構成する各セグメントを管理し、
前記別の上位装置について、前記受け付けた別のライト単位サイズを、前記メモリに設定し、前記別の一以上の論理ボリュームの各々のブロックのサイズ及び前記第二のジャーナルサブエリアのセグメントのサイズが前記別のライト単位サイズと同じサイズになるように前記別の一以上の論理ボリュームの各々の各ブロックと前記第二のジャーナルサブエリアを構成する各セグメントを管理する、
請求項１乃至１２のうちのいずれか１項に記載のストレージシステム。
【請求項１４】
前記サイズ管理部は、前記ライト単位サイズが受け付けられた場合に、前記ブロックのサイズ及び前記セグメントのサイズが前記ライト単位サイズと同じサイズになるように前記一以上の論理ボリュームの各々を複数のブロックに区切り且つ前記ジャーナルエリアを複数のセグメントに区切る、
請求項１乃至１３のうちのいずれか１項に記載のストレージシステム。

【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データのバックアップに関する。
【背景技術】
【０００２】
例えば、ストレージシステムが有する機能として、スナップショット機能やジャーナル機能が知られている。
【０００３】
スナップショット機能とは、或る時点（例えばホストからスナップショット取得要求を受けた時点）の或る論理ボリュームのイメージを保持する機能である。定期的にスナップショット機能を実行することにより、論理ボリューム内のデータのレプリケーション（バックアップ）を間欠的に取得しておくことが可能となる。また、スナップショット機能を用いた場合、スナップショット取得時点の論理ボリュームをリストアすることが可能である。
【０００４】
ジャーナル機能とは、ホスト計算機からのライトコマンドで指定されている論理ボリュームにライトデータを書き込む場合に、そのライトデータ及びその書込みに関する制御情報を含んだデータ（ジャーナル）を作成し、作成したジャーナルを保存する機能である。
【０００５】
特許文献１には、スナップショット機能によって取得したスナップショットに、ジャーナル内のライトデータを書き込むことによって、スナップショットを作成したポイント以外のポイントにおいて実行されるリカバリ処理について開示されている。
【０００６】
特許文献２には、スナップショットとジャーナルの切り替えについての開示がある。
【０００７】
特許文献３には、スナップショットのリストアボリュームの運用についての開示がある。
【０００８】
【特許文献１】特開２００５−１８７３８号公報
【特許文献２】特開２００７−８０１３１号公報
【特許文献３】特開２００７−１３３４７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、一般に、バックアップとして取得されるデータ要素（データの一単位）のサイズは、ストレージシステムで管理されている単位記憶領域のサイズである。
【００１０】
しかし、ホストからのライトデータ要素（ライトデータの一単位）のサイズは、ストレージシステムで管理されている単位記憶領域のサイズよりも小さいことがある（或いは、ライトデータ要素が単位記憶領域より大きくても、ライトデータ要素のサイズが単位記憶領域のサイズの倍数になっていないことがある）。この場合、単位記憶領域にライトデータ要素が格納された場合に、単位記憶領域に余りの領域が生じることになる。それ故、バックアップとして取得されるデータ要素は、ホストからのライトデータ要素とその他の情報とを含んだ、そのライトデータ要素よりも大サイズとなる。従って、ストレージシステムには、ホストからのライトデータ要素以外の情報もバックアップデータ要素として保存されてしまうおそれがある。
【００１１】
そこで、本発明の一つの目的は、バックアップとして取得されるデータのサイズを削減することにある。
【課題を解決するための手段】
【００１２】
ストレージシステムが、第一の論理ボリュームを含んだ一以上の論理ボリュームとジャーナルエリアとの基になる物理記憶デバイスと、前記上位装置から前記ライトコマンド及び前記ライトデータ要素を受け付け、前記ライトコマンドから特定される前記第一の論理ボリュームに前記ライトデータ要素を書き込むコントローラとを備える。前記ジャーナルエリアは、論理ボリュームを構成する複数の記憶領域のうちのいずれかの記憶領域に記憶されているデータ要素又はその記憶領域に書き込まれるデータ要素であるジャーナルデータ要素が記憶される記憶領域である。前記コントローラが、前記上位装置から受信するライトデータ要素のサイズであるライト単位サイズを受け付けるサイズ受付部と、前記一以上の論理ボリュームについて、前記受け付けたライト単位サイズを、前記メモリに設定するサイズ設定部とを有する。前記設定されたライト単位サイズに基づく、前記ジャーナルエリアに格納されるジャーナルデータ要素のサイズが、前記ライト単位サイズである。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して、本発明の幾つかの実施形態を説明する。
【実施例１】
【００１４】
図１は、本発明の第一の実施形態に係る計算機システムの構成を示す。
【００１５】
第一のネットワーク１２１に、一以上のホスト計算機１０１及び第一のストレージシステム１２５が接続されている。第二のネットワーク１２３に、第一及び第二のストレージシステム１２５及び１６１が接続されている。第三のネットワーク１０８に、一以上のホスト計算機１０１、管理サーバ１１１、第一及び第二のストレージシステム１２５及び１６１が接続されている。ネットワーク１２１、１２３及び１０８は、それぞれ、任意の種類のネットワークを採用することができる。例えば、第一及び第二のネットワーク１２１及び１２３は、ＳＡＮ（Storage Area Network）であって、第三のネットワーク１０８は、ＬＡＮ（Local Area Network）である。また、例えば、ストレージシステム１２５及び１６１同士は、第二のネットワーク１２３に代えて専用線で接続されても良い。また、第二ストレージシステム１６１は、外部接続先のストレージシステムであっても良いし、リモートコピー先のストレージシステムであっても良い。
【００１６】
ホスト計算機１０１は、第一のストレージシステム１２５から提供される論理ボリュームにアクセスする計算機である。ホスト計算機１０１は、ＣＰＵ（Central Processing Unit）１０３、メモリ１０６、補助記憶デバイス１０４、入力装置（例えばキーボード及びポインティングデバイス）１０２、出力装置（例えば表示装置）１０５、第一のネットワーク１２１に接続されるストレージアダプタ（例えばホストバスアダプタ）１０９、及び、第三のネットワーク１０８に接続されるネットワークアダプタ１０７を備えている。ＣＰＵ１０３は、ストレージアダプタ１０９を介して、アドレスを指定したＩ／Ｏコマンド（ライトコマンド又はリードコマンド）を送信する。
【００１７】
管理サーバ１１１は、第三のネットワーク１０８に接続されている機器１０１、１１１、１２５及び１６１を管理する計算機である。管理サーバ１１１は、ＣＰＵ（Central Processing Unit）１１３、メモリ１１６、補助記憶デバイス１１４、入力装置（例えばキーボード及びポインティングデバイス）１１２、出力装置（例えば表示装置）１１５、及び、第三のネットワーク１０８に接続されるネットワークアダプタ１１７を備えている。ＣＰＵ１１３は、ネットワークアダプタ１１７を介して、コマンドを、第三のネットワーク１０８に接続されている機器１０１、１１１、１２５又は１６１に送信する。
【００１８】
第一ストレージシステム１２５は、コントローラと記憶デバイス群とを有する。コントローラは、例えば、複数のフロントエンドインタフェース１２７と、複数のバックエンドインタフェース１３７と、第一の内部ネットワーク１５６と、一以上のキャッシュメモリ１４７と、一以上の制御メモリ１４５と、一以上のプロセッサ１４３とを備える。記憶デバイス群は、複数の物理記憶デバイス（以下、「ＰＤＥＶ」と言う）１５１で構成されている。
【００１９】
フロントエンドインタフェース１２７は、第一ストレージシステム１２５の外部の機器１０１又は１６１と通信するためのインタフェース回路である。従って、フロントエンドインタフェース１２７としては、第一のネットワーク１２１に接続されるインタフェースと、第二のネットワーク１２３に接続されるインタフェースがある。フロントエンドインタフェース１２７は、例えば、ネットワーク１２１又は１２３に接続されるポート１２９と、メモリ１３１と、ローカルルータ（以下、「ＬＲ」と略記する）１３３とを有する。ＬＲ１３３に、ポート１２９及びメモリ１３１が接続されている。ＬＲ１３３は、ポート１２９を介して受けたデータを任意のプロセッサ１４３で処理するための振り分けを行う。具体的には、例えば、プロセッサ１４３から、或るアドレスを指定するＩ／Ｏコマンドをそのプロセッサ１４３で行うようにＬＲ１３３に対して設定され、その設定に従って、ＬＲ１３３が、Ｉ／Ｏコマンドやデータを振り分ける。
【００２０】
バックエンドインタフェース１３７は、ＰＤＥＶ１５１と通信するためのインタフェース回路である。バックエンドインタフェース１３７は、例えば、ＰＤＥＶ１５１に接続されるディスクインタフェース１４１と、メモリ１３５と、ＬＲ１３９とを有する。ＬＲ１３９に、ディスクインタフェース１４１及びメモリ１３５が接続されている。
【００２１】
第一の内部ネットワーク１５６は、例えば、スイッチ（一例としてクロスバスイッチ）或いはバスで構成される。第一の内部ネットワーク１５６に、複数のフロントエンドインタフェース１２７、複数のバックエンドインタフェース１３７、一以上のキャッシュメモリ１４７、一以上の制御メモリ１４５及び一以上のプロセッサ１４３が接続されている。これらの要素間の通信は、第一の内部ネットワーク１５６を介して行われる。
【００２２】
キャッシュメモリ１４７は、ホスト計算機１０１からのＩ／Ｏコマンドに従って読み出される又は書き込まれるデータを一時記憶するメモリである。
【００２３】
制御メモリ１４５は、種々のコンピュータプログラム及び／又は情報（例えば図４に示すコンピュータプログラム及び情報）を記憶するメモリである。例えば、制御メモリ１４５には、どのＰ−ＶＯＬ（プライマリの論理ボリューム）がどのホスト計算機からアクセスされるＶＯＬであるかを表す情報や、どのＰ−ＶＯＬがどのＳ−ＶＯＬ（セカンダリの論理ボリューム）とペアを構成するかを表す情報や、どのＰ−ＶＯＬがどのＲ−ＶＯＬ（リストアされた論理ボリューム）に関連するかを表す情報が記憶されている。これらの情報から、どのＳ−ＶＯＬ及びＲ−ＶＯＬがどのホスト計算機に関わる論理ボリュームであるかを特定することが可能である。後述するように、或るホスト計算機についてのホストライトサイズを第一のストレージシステム１２５が受領した場合、制御プロセッサ１４３は、その或るホスト計算機に関わるＰ−ＶＯＬ、Ｓ−ＶＯＬ及びＲ−ＶＯＬを、制御メモリ１４５に記憶されている情報を参照することで特定し、特定されたＰ−ＶＯＬ、Ｓ−ＶＯＬ及びＲ−ＶＯＬについて、ホストライトサイズを設定することができる。
【００２４】
プロセッサ１４３は、制御メモリ１４５に記憶されている種々のコンピュータプログラムを実行することで、後述する処理を行う。
【００２５】
ＰＤＥＶ１５１は、不揮発性の記憶デバイスであり、例えば、ハードディスクドライブ或いはフラッシュメモリデバイスである。二以上のＰＤＥＶ１５１で、ＲＡＩＤの規則に従うＰＤＥＶグループであるＲＡＩＤ（Redundant Array of Independent Disks）グループが構成される。
【００２６】
コントローラの各構成要素１２７、１３７、１４７、１４５及び１４３に、第二の内部ネットワーク（例えばＬＡＮ）１５５が接続されており、その第二の内部ネットワーク１５５に、保守管理端末１５３が接続されている。保守管理端末１５３は、第三のネットワーク１０８にも接続されており、第一のストレージシステム１２５を保守又は管理する計算機である。第一のストレージシステム１２５の保守員は、例えば、保守管理端末１５３（又は、その端末１５３と通信可能な管理サーバ１１１）を操作して、制御メモリ１４５に記憶される種々の情報を定義することができる。
【００２７】
第二のストレージシステム１６１は、コントローラ１６５とＰＤＥＶ１６３群とを有する。コントローラ１６５は、例えば、ホストアダプタ１６４と、ネットワークアダプタ１６２と、制御メモリ１７１と、キャッシュメモリ１７２と、プロセッサ１６７と、ストレージアダプタ１６９とを有する。ホストアダプタ１６４、ネットワークアダプタ１６２、制御メモリ１７１、キャッシュメモリ１７２、プロセッサ１６７及びストレージアダプタ１６９の機能は、それぞれ、フロントエンドインタフェース１２７、ネットワークアダプタ１６２、制御メモリ１４５、キャッシュメモリ１４７、プロセッサ１６７及びバックエンドインタフェース１３７の機能とそれぞれ実質的に同じである。
【００２８】
図２は、第一のストレージシステム１２５における記憶領域構成の概要を示す。
【００２９】
論理的な記憶階層として、下位から上位にかけて順に、ＶＤＥＶ層１８５、ストレージプール１８９Ａ及び１８９Ｂ、及びＬＤＥＶ層１８３がある。
【００３０】
ＶＤＥＶ層１８５には、一以上の仮想的なデバイス（ＶＤＥＶ）がある。ＶＤＥＶは、所定のアドレス範囲が設定された記憶空間である。その記憶空間を構成する複数の記憶空間部分が、それぞれ、論理ボリュームである。
【００３１】
図２の例では、第一のＶＤＥＶ１９３Ａは、一つのＲＡＩＤグループ１９５が提供する実体的な記憶空間である。第一ＶＤＥＶ１９３Ａは、例えば、第一実ＶＯＬ１８７Ａ、プールＶＯＬ１９１Ａ及び１９１Ｂの基になっている。従って、これらの論理ボリューム１８７Ａ、１９１Ａ及び１９１Ｂに書き込まれるデータは、実際には、第一ＶＤＥＶ１９３Ａの基になっているＲＡＩＤグループ１９５に書き込まれる。
【００３２】
一方、第二のＶＤＥＶ１９３Ｂは、仮想的な記憶空間である。第二のＶＤＥＶ１９３Ｂは、第二実ＶＯＬ１８７Ｃ、プールＶＯＬ１９１Ｃ及び１９１Ｄの基になっている。従って、これらの論理ボリューム１８７Ｃ、１９１Ｃ及び１９１Ｄに書き込まれるデータは、実際には、第二ＶＤＥＶ１９３Ｂの基になっている、第二ストレージシステム１６１内の記憶資源（例えばＲＡＩＤグループ）に書き込まれる。具体的には、例えば、第二実ＶＯＬ１８７Ｃに対応した記憶空間部分が、第二ストレージシステム１６１内のターゲットデバイス１８１Ｄに割り当てられており、この場合、仮想ＶＯＬ１８７Ｃに書き込まれるデータは、実際には、第二のストレージシステム１６１に転送され、ターゲットデバイス１８１Ｄに割り当てられている論理ボリュームに書き込まれる。
【００３３】
ストレージプールは、一以上のプールＶＯＬの集合である。図２の例では、第一ストレージプール１８９Ａは、プールＶＯＬ１９１Ａ及び１９１Ｃの集合であり、第二ストレージプール１８９Ｂは、プールＶＯＬ１９１Ｂ及び１９１Ｄの集合である。プールＶＯＬ１９１Ａ〜１９１Ｄは、ターゲットデバイス１８１Ａ〜１８１Ｃに関連付けられない論理ボリューム（すなわちホスト計算機１０１に提供されない論理ボリューム）である。なお、第一ストレージシステム１２５内の全てのプールＶＯＬが、第一ストレージシステム１２５内のＲＡＩＤグループに基づくＶＤＥＶを基に形成されていても良いし、反対に、第二ストレージシステム１６１内の記憶資源に基づくＶＤＥＶを基に形成されていても良い。
【００３４】
ＬＤＥＶ層１８３には、複数の論理ボリューム１８７Ａ〜１８７Ｃと、ＪＮＬ関連エリア１８８とがある（“ＪＮＬ”はジャーナルの略語である）。論理ボリューム１８７Ａ〜１８７Ｃは、いずれも、プールＶＯＬと違って、ホスト計算機１０１に認識され得る論理ボリュームである。図２の例によれば、論理ボリューム１８７Ａは、実体的な記憶領域が第一ストレージシステム１２５内にある論理ボリューム（以下、「第一実ＶＯＬ」と言う）である。論理ボリューム１８７Ｂは、ストレージプール１８９Ｂに関連付けられている仮想的な論理ボリューム（以下、「仮想ＶＯＬ」と言う）である。例えば、仮想ＶＯＬ１８７Ｂは、複数の仮想領域で構成されており、ストレージプール１８９Ｂが、複数のプール領域で構成されている。仮想ＶＯＬ１８７Ｂ内の仮想領域にデータが書き込まれることに起因して、その仮想領域にプール領域がストレージプール１８９Ｂから割り当てられ、書込み対象のデータが、そのプール領域に書き込まれる。そのプール領域がプールＶＯＬ１９１Ｂに属していれば、データは第一ストレージシステム１２５内に保存され、そのプール領域がプールＶＯＬ１９１Ｄに属していれば、そのデータは第二ストレージシステム１６１内に保存される。
【００３５】
ＪＮＬ関連エリア１８８は、ホスト計算機１０１に非提供の記憶領域である。このエリア１８８は、例えば、第一ストレージプール１８９内に存在する。このエリア１８８は、後述のＪＮＣＢエリアとＪＮＬエリアで構成されている。「ＪＮＣＢ」とは、後述の第二のＪＮＬ管理テーブルを意味する文字列である。
【００３６】
ターゲットデバイス１８１Ａ〜１８１Ｃは、ホスト計算機１０１から見える論理的なデバイスであり、具体的には、例えば、オープンシステムでは“ＬＵＮ”（Logical Unit Number）であり、メインフレームシステムでは“デバイス”である。ターゲットデバイス１８１Ａ〜１８１Ｃは、ポート１２９と、ＬＤＥＶ層１８１における論理ボリューム１８７Ａ〜１８７Ｃとに関連付けられている。図２の例によれば、Ｉ／Ｏコマンドにおいて、ターゲットデバイス１８１Ａが指定されていると、そのデバイス１８１Ａに関連付けられている第一実ＶＯＬ１８７ＡにＩ／Ｏ（ライト又はリード）が発生し、ターゲットデバイス１８１Ｂが指定されていると、そのデバイス１８１Ｂに関連付けられている仮想ＶＯＬ１８７ＢにＩ／Ｏが発生し、ターゲットデバイス１８１Ｃが指定されていると、そのデバイス１８１Ｃに関連付けられている第二実ＶＯＬ１８７ＣにＩ／Ｏが発生する。
【００３７】
図３は、ＪＮＬデータ要素の格納の概要を示す。なお、図３では、ライトという言葉を「ＷＲ」と略記しており、他の図でも、ライトという言葉をそのように略記することがある。
【００３８】
第一ストレージシステム１２５に、Ｐ−ＶＯＬ１８７Ａ及びＳ−ＶＯＬ１８７Ｓがある。また、Ｒ−ＶＯＬ１８７Ｒの構築が可能であるＰ−ＶＯＬ１８７Ｐ及びＳ−ＶＯＬ１８７Ｓは、例えば、前述した第一又は第二実ＶＯＬ１８７Ａ又は１８７Ｃであり、Ｒ−ＶＯＬ１８７Ｒは、前述した仮想ＶＯＬ１８７Ｂである。
【００３９】
Ｐ−ＶＯＬ１８７Ｐは、プライマリの論理ボリューム（オンラインの論理ボリューム）である。ホスト計算機１０１Ａからライトデータが書き込まれることで、Ｐ−ＶＯＬ１８７Ｐは更新される。
【００４０】
Ｓ−ＶＯＬ１８７Ｓは、Ｐ−ＶＯＬ１８７Ｐとペアにされたセカンダリの論理ボリュームであり、Ｐ−ＶＯＬ１８７Ｐと同じ記憶容量を有する。
【００４１】
Ｒ−ＶＯＬ１８７Ｒは、指定された世代のＰ−ＶＯＬ１８７Ｐの内容を有する論理ボリュームである。Ｒ−ＶＯＬ１８７Ｒは、前述したように仮想ボリュームであり、後に説明するように、ユーザ或いは管理者からの要求に応答して作成される。
【００４２】
ＪＮＬ関連エリア１８８は、前述したように、ＪＮＣＢエリア５０１と、ＪＮＬエリア５０３とで構成されている。ＪＮＣＢエリア５０１には、図３に示すように、未確定世代に対応した差分ＢＭ（ＢＭは“ビットマップ”の略語である）と、確定した世代毎に対応した差分ＢＭとが格納される。ＪＮＬエリア５０３には、未確定世代に対応したオンライン更新差分データと、確定した世代毎に対応した世代間差分データとが格納される。
【００４３】
ここで、「世代」とは、Ｐ−ＶＯＬ１８７Ｐについての或る時点のことである。例えば、世代（Ｎ）とは、世代（Ｎ−１）を過ぎてＰ−ＶＯＬ１８７Ｐについて所定の世代確定イベントが発生した時（本実施形態では、ホスト計算機１０１から後述のマーカを受領した時）のことである。なお、図３の例では、確定している最新の世代が世代（Ｎ）のため、未確定世代は、世代（Ｎ＋１）である。マーカを受領した時のＰ−ＶＯＬ１８７Ｐのイメージが第一のストレージシステム１２５で取得されるので、マーカは、スナップショット取得要求と言うこともできる。
【００４４】
「オンライン更新差分データ」とは、オンライン更新差分データ要素の集合である。「オンライン更新差分データ要素」は、Ｐ−ＶＯＬ１８７ＰについてのＪＮＬデータ要素である。「ＪＮＬデータ要素」とは、Ｐ−ＶＯＬ１８７Ｐについての単位記憶領域のサイズ（後述のホストライトサイズ）分のＪＮＬデータのことである。ＪＮＬデータ要素は、アフターＪＮＬデータ要素であっても良いしビフォアＪＮＬデータ要素であっても良い。「アフターＪＮＬデータ要素」とは、Ｐ−ＶＯＬ１８７Ｐに書き込まれるライトデータ要素である。「ビフォアＪＮＬデータ要素」とは、Ｐ−ＶＯＬ１８７Ｐにライトデータ要素が書き込まれることに起因したＣＯＷ（Copy On Write）でＰ−ＶＯＬ１８７Ｐから退避されたデータ要素（ライトデータ要素のライト先記憶領域に記憶されているデータ要素）である。以下の説明では、論理ボリューム内のデータ要素が記憶されている単位記憶領域（後述のホストライトサイズ単位で管理されている単位記憶領域）を、便宜上「ブロック」と言い、ＪＮＬエリア５０３内のデータ要素が記憶されている記憶領域を、便宜上「セグメント」と言うことがある。また、以下の説明では、オンライン更新差分データ要素はアフターＪＮＬデータ要素であるとする。
【００４５】
なお、オンライン更新差分データの最大サイズは、そのデータに対応するＰ−ＶＯＬのサイズと同じである。なぜなら、対応するＰ−ＶＯＬにおける同一のブロックに対応したオンライン更新差分データ要素は、ＪＮＬエリア５０３内で上書きされるからである。従って、後述の世代間差分データの最大サイズも、そのデータに対応するＰ−ＶＯＬのサイズと同じである。言い換えれば、オンライン更新差分データ要素の書込み先のＪＮＬサブエリアのサイズは、最大で、Ｐ−ＶＯＬと同じサイズとすれば良い（この点は、世代間差分データ及び後述のマージ差分データについても同様である）。
【００４６】
「世代間差分データ」とは、世代間差分データ要素の集合である。「世代間差分データ要素」とは、Ｓ−ＶＯＬ１８７Ｓにオンライン更新差分データ要素が書き込まれることに起因したＣＯＷが発生することによりＳ−ＶＯＬ１８７Ｓから退避されたデータ要素である。具体的には、例えば、未確定世代が世代（Ｎ）の場合、第一ストレージシステム１２５がホスト計算機１０１からマーカ（特定の電子データ）を受領した時に、世代（Ｎ）が確定し、未確定世代が（Ｎ＋１）となる。その場合、ＪＮＬエリア５０３に蓄積されているオンライン更新差分データ（つまり、世代（Ｎ）のＰ−ＶＯＬ１８７Ｐと世代（Ｎ−１）のＰ−ＶＯＬ１８７Ｐとの差分に相当するデータ）が、Ｓ−ＶＯＬ１８７Ｓに書き込まれる。オンライン更新差分データ要素が書き込まれる都度に、ＣＯＷで、Ｓ−ＶＯＬ１８７Ｓからデータ要素が世代間差分データ要素としてＪＮＬエリア５０３に退避される。これにより、Ｓ−ＶＯＬ１８７Ｓは、世代（Ｎ）のＰ−ＶＯＬ１８７Ｐの複製となり、ＪＮＬエリア５０３には、世代（Ｎ−１）に対応した世代間差分データ（すなわち、世代（Ｎ−１）のＳ−ＶＯＬ１８７Ｓと世代（Ｎ−２）のＳ−ＶＯＬ１８７Ｓとの差分に相当するデータ）が蓄積される。このため、Ｓ−ＶＯＬ１８７Ｓの世代は、Ｐ−ＶＯＬ１８７Ｐの世代の一つ前の世代である。
【００４７】
「差分ＢＭ」とは、論理ボリュームの世代間での差分を表すビットマップである。具体的には、例えば、図３の例において、世代（Ｎ）に対応した差分ＢＭは、世代（Ｎ）のＰ−ＶＯＬ１８７Ｐと世代（Ｎ−１）のＰ−ＶＯＬ１８７Ｐとの差分を表すビットマップである。Ｐ−ＶＯＬ１８７Ｐ内の或るブロックに、世代（Ｎ−１）より後の或る時点で初めてライトデータ要素が書き込まれた場合、その或るブロックに対応したビット（世代（Ｎ）に対応した差分ＢＭ内のビット）が、オンにされ（すなわち、ライト発生を表す値（例えば“１”）に更新され）、そのライトデータ要素に対応するオンライン更新差分データ要素が、ＪＮＬエリア５０３に格納される。なお、差分ＢＭを構成する各ビットは、Ｐ−ＶＯＬ１８７Ｐの各ブロックに対応している。各ブロックのサイズは、図７を参照して説明するフォーマット処理によってホストライトサイズとなっている。「ホストライトサイズ」とは、ホスト計算機１０１から書き込まれるデータの単位サイズ（ライトデータ要素のサイズ）である。
【００４８】
なお、後に図１１及び図１２を参照して説明するように、複数の世代分の世代間差分データ及び差分ＢＭのマージが可能である。これにより、消費される記憶容量を削減することができる。以下、マージ後の世代間差分データを「マージ差分データ」と言う。
【００４９】
また、図３には、ソート処理と、リストア処理とが示される。各処理の概要は、以下の通りである。
【００５０】
＜ソート処理＞ＪＮＬエリア５０３には、オンライン更新差分データ要素は、時系列で（すなわち、ＪＮＬエリア５０３に書き込まれた順序で）、並んでいる（敷き詰められている）。ＪＮＬエリア５０３からオンライン更新差分データが読み出されてＳ−ＶＯＬ１８７Ｓに書き込まれる場合、オンライン更新差分データ要素は、時系列ではなくＰ−ＶＯＬ１８７Ｐのアドレス順（アドレスの昇順又は降順）に読み出される。このため、Ｓ−ＶＯＬ１８７Ｓには、アドレス順にオンライン更新差分データ要素が書き込まれ、故に、ＣＯＷでＳ−ＶＯＬ１８７ＳからＪＮＬエリア５０３に書き込まれた世代間差分データ要素はＰ−ＶＯＬ１８７Ｐのアドレス順に並ぶことになる（敷き詰められることになる）。このように、時系列に並んでいるオンライン更新差分データ要素をアドレス順でＳ−ＶＯＬ１８７Ｓに反映することで世代間差分データがアドレス順でＪＮＬエリア５０３に並ぶようにする処理が、「ソート処理」である。なお、後述の第三の実施形態のように、オンライン更新差分データが無いケースでのソート処理は、世代間差分データがアドレス順でＪＮＬエリア５０３に並ぶようにする処理である。
【００５１】
＜リストア処理＞「リストア処理」は、ユーザ又は管理者からの要求に応答してＲ−ＶＯＬ１８７Ｒを作成する処理である。Ｒ−ＶＯＬ１８７Ｒからのリードが可能である。また、それに限らずＲ−ＶＯＬ１８７Ｒに対するライトも可能であるＲ−ＶＯＬ１８７Ｒについてのリード及びライトの処理は、後に、図１４及び図１５を参照して説明する。
【００５２】
図４は、制御メモリ１４５に記憶されているコンピュータプログラム及び情報を示す。以下の説明において、プログラムが主語になる処理は、実際には、そのプログラムを実行するプロセッサ１４３が行う処理である。
【００５３】
制御メモリ１４５には、構成管理テーブル２０１、ＪＮＬエリア管理テーブル２０３、バックアップ世代管理テーブル２０５、第一のＪＮＬ管理テーブル２０７、Ｒ−ＶＯＬアクセス管理テーブル２０９、Ｒ／Ｗプログラム２１３、ライトサイズ管理プログラム２１５、ＪＮＬソートプログラム２１７、ＪＮＬマージプログラム２１９、リストアプログラム２２１及びマーカ処理プログラム２２３が記憶されている。また、制御メモリ１４５には、システム領域２１１がある。Ｒ／Ｗプログラム２１３は、ホスト計算機１０１からのＩ／Ｏコマンドに従うＩ／Ｏを制御する。ライトサイズ管理プログラム２１５は、ホストライトサイズの設定を行う。ＪＮＬソートプログラム２１７は、ソート処理を実行する。ＪＮＬマージプログラム２１９は、複数の世代の世代間差分データをマージする。リストアプログラム２２１はＲ−ＶＯＬ１８７Ｒを作成する。マーカ処理プログラム２２３は、ホスト計算機１０１からのマーカを処理する。制御メモリ１４５に記憶されている各種プログラム及び情報の詳細は、後に説明する。また、以下の説明では、論理ボリュームを「ＶＯＬ」と略記することがある。
【００５４】
図５は、図４に示した構成管理テーブル２０１、ＪＮＬエリア管理テーブル２０３、バックアップ世代管理テーブル２０５及び第一のＪＮＬ管理テーブル２０７の例を示す。なお、図５には、図４に示されていない第二のＪＮＬ管理テーブル（ＪＮＣＢ）３０７と、ＪＮＣＢ３０７で管理されているＪＮＬデータとが示されているが、ＪＮＣＢ３０７及びＪＮＬデータは、制御メモリ１４５には記憶されず、ＰＤＥＶ群（前述の例ではストレージプール）に記憶される。
【００５５】
構成管理テーブル２０１は、Ｐ−ＶＯＬ毎に用意されるテーブルであって、Ｐ−ＶＯＬ及びそれに関したＳ−ＶＯＬ及びＲ−ＶＯＬを管理するためのテーブルである。構成管理テーブル２０１には、例えばＰ−ＶＯＬと、それに関連したＳ−ＶＯＬ及びＰ−ＶＯＬとのそれぞれのＶＯＬについて、［ポート＃］（ＶＯＬに対応したターゲットデバイスに割り当てられているポートの番号）、［ターゲットデバイス＃］（ＶＯＬに対応したターゲットデバイスの番号）、［ＬＤＥＶ＃］（ＶＯＬを同定するための番号）、［ＪＮＬエリア＃］（複数のＪＮＬエリアのうちＶＯＬに対応付けられたＪＮＬエリアの番号）、［状態］（ＶＯＬの状態、例えば、Ｒ／Ｗ不可、Ｒのみ可といったアクセス制限状態）、［容量］（ＶＯＬの容量）、［Ｉ／Ｏサイズ］（前述したホストライトサイズ）、及び［プール＃］（ＶＯＬに割り当てられているストレージプールの番号）が記録される。
【００５６】
ＪＮＬエリア管理テーブル２０３は、Ｐ−ＶＯＬ毎に用意されＰ−ＶＯＬに対応するオンライン更新差分データ、世代間差分データ及びマージ差分データの在り処を管理するためのテーブルである。具体的には、オンライン更新差分データ、世代間差分データ及びマージ差分データのそれぞれについて、［ＪＮＬサブエリア先頭アドレス］（ＪＮＬサブエリアの先頭を表すアドレス）、［容量］（データに対応したＪＮＬサブエリアの容量）、［使用容量］（データが占める容量）、［状態］（例えば、ＪＮＬサブエアリアが普通に使える状態であれば“ノーマル”、ＪＮＬサブエリアが何らかの理由で使えなければ“閉塞”、ＪＮＬの空き容量（容量と使用容量との差分）が所定の閾値より少なければ“容量不足”など）、［ＪＮＣＢ先頭アドレス］（ＪＮＣＢの先頭を表すアドレス）、［容量］（ＪＮＣＢの容量）、及び、［使用容量］（ＪＮＣＢ群が占める容量）がある。なお、「ＪＮＬサブエリア」とは、ＪＮＬエリア５０３の一部分である。また、世代間差分データ及びマージ差分データについては、世代毎に、［ＪＮＬサブエリア先頭アドレス］、［容量］、［使用容量］、［状態］、［ＪＮＣＢ先頭アドレス］、［容量］及び［使用容量］が登録される。
【００５７】
バックアップ世代管理テーブル２０５は、Ｐ−ＶＯＬ毎に用意されており、Ｐ−ＶＯＬに関するバックアップデータを管理するためのテーブルである。バックアップ世代管理テーブル２０５には、例えば、［Ｐ−ＶＯＬ＃］（Ｐ−ＶＯＬの番号）、［世代＃］（最新世代を表す番号）、［Ｓ−ＶＯＬ＃］（Ｐ−ＶＯＬとペアを構成するＳ−ＶＯＬの番号）、［世代＃］（Ｓ−ＶＯＬの最新世代を表す番号）、［取得世代数］（Ｐ−ＶＯＬについてのバックアップの世代の個数）、［バックアップ期間］及び［マージ世代数］（何世代分の世代間差分データが溜まったときにマージ処理を実行するか）が記録される。また、バックアップ世代管理テーブル２０５には、Ｐ−ＶＯＬについての世代毎に、［世代＃］（世代を表す番号）、［バックアップ取得時間］（いつバックアップが取得されたか（言い換えれば、その世代の確定の原因となったマーカ受領の日時））、［ユーザコメント］（ユーザがバックアップを管理するためのユーザ任意の情報）、バックアップの［状態］（例えば、バックアップに成功又は失敗した等）がある。
【００５８】
第一のＪＮＬ管理テーブル２０７は、Ｐ−ＶＯＬ毎に用意され、Ｐ−ＶＯＬに対応したオンライン更新差分データ、世代間差分データ及びマージ差分データを管理するためのテーブルである。オンライン更新差分データについては、例えば、［先頭アドレス］（ＪＮＣＢの先頭アドレス）、［長さ］（オンライン更新差分データのサイズ、例えば、オンライン更新差分データ要素の数）、［作成時刻］（オンライン更新差分データ要素を記憶することになった時刻（例えば、最新世代の確定の原因となったマーカの受領時刻））が記録される。また、世代間差分データについては、［先頭アドレス］、［長さ］及び［作成時刻］が、世代毎に記録される。なお、ここでの［作成時刻］は、対応する世代間差分データがＪＮＬサブエリアに格納された時刻である。同様に、マージ差分データについても、世代毎に、［先頭アドレス］、［長さ］及び［作成時刻］が、世代毎に記録される。なお、ここでの「世代」は、マージ差分データに対応する複数世代のうちの或る世代（例えば、最新又は最古の世代）であり、［作成時刻］は、対応するマージ差分データがＪＮＬサブエリアに格納された時刻である。オンライン更新差分データなどのＪＮＬデータに対応した［先頭アドレス］を参照することで、そのＪＮＬデータに対応したＪＮＣＢを参照することが可能となる。
【００５９】
ＪＮＣＢ３０７は、世代間差分データ及びマージ差分データのそれぞれについて、世代毎に存在する。ＪＮＣＢ３０７は、世代に対応した差分ＢＭとデータ要素の在り処とを管理するためのテーブルである。具体的には、例えば、ＪＮＣＢテーブル３０７には、［デバイス＃］（対応するＰ−ＶＯＬの番号）、［長さ］（対応するＪＮＬデータ（オンライン更新差分データ、世代間差分データ又はマージ差分データ）の長さ）、差分ＢＭ（世代に対応した差分ＢＭ）、及び、対応するＪＮＬデータを構成する各ＪＮＬデータ要素に対応したデータ格納アドレスが記録される。
【００６０】
図６は、オンライン更新差分データ、世代間差分データ及びマージ差分データのうちの世代間差分データを例に採ったデータ管理方式を示す。
【００６１】
図６に示すように、ＪＮＣＢエリア５０１には、複数の世代に対応した複数のＪＮＣＢが記憶され、ＪＮＬエリア５０３には、それら複数の世代に対応した複数のＪＮＬサブエリアが存在する。
【００６２】
指定された世代（例えば世代（ｉ））に対応したＪＮＣＢ３０７内の差分ＢＭから、その世代のＰ−ＶＯＬのどこに更新があったかを知ることができる。また、その世代に対応したＪＮＣＢ３０７に記録されている各データ格納アドレスを参照することで、その世代に対応した世代間差分データを構成する各データ要素がＪＮＬエリア５０３内のどこに存在するのかを知ることができる。
【００６３】
図７は、ホストライトサイズ設定処理のフローを示す。
【００６４】
管理サーバ１１１が、ホスト計算機１０１に、ホストライトサイズの問合せを発行する（ステップ７００１）。ホスト計算機１０１内の所定のコンピュータプログラム（上記問合せに応答してホストライトサイズを回答する機能を有したコンピュータプログラム）がＣＰＵ１０３で実行されることで、ホスト計算機１０１からホストライトサイズが回答される（ステップ７００２）。その所定のコンピュータプログラムとしては、例えば、ファイルシステム或いはデータベース管理システム（ＤＢＭＳ）がある。
【００６５】
管理サーバ１１１は、回答されたホストライトサイズと、そのホストライトサイズに対応したホスト識別子（又はＰ−ＶＯＬの番号など）とを、第一ストレージシステム１２５（及び第二ストレージシステム１６１）に送信する。
【００６６】
ライトサイズ管理プログラム２１５（図４参照）が、管理サーバ１１１からのホスト識別子（又はＰ−ＶＯＬの番号）に対応した各Ｐ−ＶＯＬを特定し、その各Ｐ−ＶＯＬに対応した構成管理テーブル２０１に、管理サーバ１１１からのホストライトサイズを、Ｉ／Ｏサイズとして設定する（ステップ７００４）。
【００６７】
そして、ライトサイズ管理プログラム２１５は、そのホストライトサイズを基に、フォーマット処理を実行する（ステップ７００５）。フォーマット処理では、例えば、上記特定された各Ｐ−ＶＯＬに対応したＪＮＬエリア管理テーブル２０３、バックアップ世代管理テーブル２０５、第一ＪＮＬ管理テーブル２０７及びＪＮＣＢ３０７が作成される。具体的には、例えば、Ｐ−ＶＯＬを構成するブロックのサイズや、ＪＮＬエリア５０３を構成するセグメントのサイズが、ホストライトサイズと同じサイズとして管理される。従って、ＪＮＣＢ３０７内の差分ＢＭを構成するビットの数は、Ｐ−ＶＯＬがホストライトサイズで区切られることにより得られたブロックの数となる。これにより、例えば、オンライン更新差分データ要素のサイズ、Ｓ−ＶＯＬから退避されるデータ要素のサイズ、或いは、Ｐ−ＶＯＬからＳ−ＶＯＬへとコピーされるデータ要素のサイズは、それぞれ、ホストライトサイズとなる。
【００６８】
なお、Ｉ／Ｏサイズとしてホストライトサイズが設定されない場合、作成されるＪＮＬデータ要素のサイズは、Ｉ／Ｏサイズの初期値（例えば、キャッシュメモリ１４７の単位管理サイズ、或いは、ファイルシステムの単位管理ブロックサイズ）である。また、ライトサイズ管理プログラム２１５が、ホスト計算機１０１からホストライトサイズを受けても良い。また、Ｐ−ＶＯＬ毎に、ブロックのサイズや、Ｐ−ＶＯＬとペアを構成するＳ−ＶＯＬのブロックのサイズや、Ｐ−ＶＯＬに関わるＪＮＬサブエリアのセグメントのサイズが異なることがある。なぜなら、Ｐ−ＶＯＬを使用するホスト計算機１０１（又はオペレーティングシステム）が異なれば、ホストライトサイズも異なることがあるためである。具体的には、例えば、第一種のホスト計算機からアクセスされるＰ−ＶＯＬのブロックのサイズは、その第一種のホスト計算機に対応した第一のホストライトサイズであり、第二種のホスト計算機からアクセスされるＰ−ＶＯＬのブロックのサイズは、その第二種のホスト計算機に対応した、第一のホストライトサイズとは異なる第二のホストライトサイズとなることがある。
【００６９】
図８は、Ｐ−ＶＯＬにライトデータ要素を書き込むライト処理のフローを示す。以下、ライトコマンドで指定されているＰ−ＶＯＬを、それぞれ、図８の説明において「対象Ｐ−ＶＯＬ」と言う。また、以下の説明では、説明が冗長になるのを防ぐ観点から、世代Ｋに対応した対象のことを、その対象の名称の後に（Ｋ）を付けて表すことがある。具体的には、例えば、世代（ｊ）に対応したＪＮＣＢを「ＪＮＣＢ（ｊ）」と表し、世代（ｊ−１）に対応したＳ−ＶＯＬのことを「Ｓ−ＶＯＬ（ｊ−１）」と表すことがある。
【００７０】
フロントエンドインタフェース１２７が、ホスト計算機１０１から、ライトコマンド及びライトデータ要素を受信し、メモリ１３７でライトデータ要素を記憶する（ステップ８００１）。ライトコマンドは、プロセッサ１４３に転送される。
【００７１】
Ｒ／Ｗプログラム２１３（図４参照）が、ライトコマンドの受領に応答して、キャッシュメモリ１４７から第一のスロットを確保する（ステップ８００２）。なお、「スロット」とは、キャッシュメモリ１４７の単位管理領域である。スロットのサイズは、例えば、ホストライトサイズよりも大きい。ホストライトサイズが未設定の場合には、初期値として例えばスロットのサイズでＪＮＬデータ要素が作成される。
【００７２】
Ｒ／Ｗプログラム２１３が、対象Ｐ−ＶＯＬ１８７Ｓの未確定時点に対応する差分ＢＭ（最新の差分ＢＭ）における、ライトコマンドで指定されているライト先ブロックに対応したビットを参照する（ステップ８００３）。
【００７３】
もし、そのビットが更新済みを表していれば、Ｒ／Ｗプログラム２１３は、そのビットに対応したデータ格納アドレスを参照し、そのアドレスが表すセグメントを特定する（ステップ８００４）。
【００７４】
一方、ステップ８００３で参照したビットが未更新を表していれば、Ｒ／Ｗプログラム２１３は、対象Ｐ−ＶＯＬ１８７Ｐに対応するＪＮＬエリア管理テーブル２０３を参照することで、対象Ｐ−ＶＯＬ１８７Ｐについてのオンライン更新差分データに対応するＪＮＬサブエリア内の空きセグメントを特定する（ステップ８００５）。なお、もし、空きセグメントが無ければ、新たにＪＮＬサブエリアを確保することが可能である。
【００７５】
Ｒ／Ｗプログラム２１３が、キャッシュメモリ１４７から、第二のスロットを確保する（ステップ８００６）。
【００７６】
Ｒ／Ｗプログラム２１３が、ライトコマンド完了を、ライトコマンドの送信元のホスト計算機１０１に報告する（ステップ８００７）。それに応答して、ライトデータ要素がホスト計算機１０１から送られて来て、フロントエンドインタフェース１２７内のメモリ１３１に記憶される。
【００７７】
Ｒ／Ｗプログラム２１３が、フロントエンドインタフェース１２７内のメモリ１３１に記憶されたライトデータ要素を、第一及び第二のスロットにそれぞれ書き込む（ステップ８００８）。
【００７８】
Ｒ／Ｗプログラム２１３が、対象Ｐ−ＶＯＬ１８７Ｐのオンライン更新差分データに対応したＪＮＣＢ３０７を更新する（ステップ８００９）。具体的には、例えば、ライトデータ要素がオンライン更新差分データ要素として書き込まれる先のセグメント（図８の説明で「ＪＮＬ先セグメント」と言う）に対応したデータ格納アドレスが追加される。また、例えば、ライト先ブロックが未更新であったならば、ライト先ブロックに対応したビット（差分ＢＭ内のビット）が、オン（更新済みを表す値）に更新される。
【００７９】
Ｒ／Ｗプログラム２１３が、第一のスロット内のライトデータ要素を、対象Ｐ−ＶＯＬ１８７Ｐ内のライト先ブロックに書き込み、第二のスロット内のライトデータ要素を、上記ＪＮＬ先セグメント（ステップ８００４又は８００５で特定されたセグメント）に書き込む（ステップ８０１０）。第一及び第二のスロット内のライトデータ要素は、同じタイミングで書き込まれてもよいし、異なるタイミングで書き込まれてもよい。
【００８０】
図９は、マーカ受領及びマーカ受領に応答して行われる処理のフローを示す。なお、図９及び次の図１０の説明では、マーカで指定されているＰ−ＶＯＬを「対象Ｐ−ＶＯＬ」と言い、対象Ｐ−ＶＯＬとペアを構成するＳ−ＶＯＬを「対象Ｓ−ＶＯＬ」と言う。
【００８１】
フロントエンドインタフェース１２７が、ホスト計算機１０１からマーカを受領する（ステップ９００１）。受領したマーカは、プロセッサ１４３に転送される。
【００８２】
マーカ処理プログラム２２３は、マーカの受領に応答して、対象Ｐ−ＶＯＬ１８７Ｐ及び対象Ｓ−ＶＯＬ１８７Ｓの世代をそれぞれ１インクリメントする（ステップ９００２）。例えば、対象Ｐ−ＶＯＬ１８７Ｐの世代が、ｊからｊ＋１に更新され、対象Ｓ−ＶＯＬ１８７Ｓの世代が、ｊ−１からｊに更新される。具体的には、例えば、バックアップ世代管理テーブル２０５において、対象Ｐ−ＶＯＬ及び対象Ｓ−ＶＯＬのそれぞれの世代＃が更新される。すなわち、対象Ｐ−ＶＯＬ１８７Ｐの世代（ｊ）が確定し、世代（ｊ＋１）は、未確定の世代である。
【００８３】
マーカ処理プログラム２２３は、第一のＪＮＬ管理テーブル２０７に、オンライン更新差分データ（ｊ＋１）に対応した［先頭アドレス］、［長さ］及び［作成時刻］を追加する（ステップ９００３）。すなわち、オンライン更新差分データ（ｊ＋１）が格納されるＪＮＬサブエリアが用意される。これにより、マーカ受領直のオンライン更新差分データ（ｊ）が、オンライン更新差分データ（ｊ＋１）で上書きされないようにすることができる。
【００８４】
マーカ処理プログラム２２３は、バックアップ世代管理テーブル２０５に、確定した世代（ｊ）の行を追加し、その行に、バックアップ取得時間（マーカ受領時刻）や、マーカ受領時に同時に受領したユーザコメントなどを登録する（ステップ９００４）。
【００８５】
マーカ処理プログラム２２３は、第一のＪＮＬ管理テーブル２０７に、世代間差分データについて世代（ｊ−１）の行を追加する（ステップ９００５）。その際、Ｓ−ＶＯＬの［Ｉ／Ｏサイズ］（つまりホストライトサイズ）に基づいて、ＪＮＣＢ（ｊ−１）が作成される（具体的には、例えば、差分ＢＭ（ｊ−１）を構成するビットの数が、その［Ｉ／Ｏサイズ］のブロックの数とされる）。追加された行には、ＪＮＣＢ（ｊ−１）の先頭位置を［先頭アドレス］が書かれる。ＪＮＣＢ（ｊ−１）は、ソート処理に基づき更新される。そのソート処理を、図１０を参照して説明する。
【００８６】
図１０は、ソート処理のフローを示す。なお、図１０に示すオンライン更新差分データ及びそれに対応する差分ＢＭは、世代（ｊ）に対応している。
【００８７】
マーカ受領に応答して、ＪＮＬソートプログラム２１７（図４参照）が起動する。ＪＮＬソートプログラム２１７が、図１０に示す流れで、ソート処理を実行する。
【００８８】
すなわち、ＪＮＬソートプログラム２１７は、対象Ｐ−ＶＯＬ１８７Ｐに対応した差分ＢＭ（ｊ）におけるビットを、先頭ビットから順次参照する（ステップ１０００１）。参照したビットがオンであれば（更新済みを表していれば）、そのビットについて、ステップ１０００３が行われ、参照したビットがオフであれば（未更新を表していれば）、次のビットが参照される（ステップ１０００２）。
【００８９】
ＪＮＬソートプログラム２１７は、差分ＢＭ（ｊ）におけるオンのビットに対応した、差分ＢＭ（ｊ−１）におけるビットをオンにする（ステップ１０００３）。
【００９０】
ＪＮＬソートプログラム２１７は、ＪＮＣＢ（ｊ−１）内に、ステップ１０００３でオンにしたビットに対応するデータ格納アドレスを追加する（ステップ１０００４）。そのデータ格納アドレスは、ステップ１０００５での退避先のセグメント（ＪＮＬサブエリア（ｊ−１）内のセグメント）を表す。その退避先のセグメントは、直前回の退避先セグメントの次のセグメントである。これにより、対象Ｓ−ＶＯＬ（ｊ）から退避された各データ要素がＪＮＬサブエリア（ｊ−１）内の連続したセグメントに書き込まれることになる。
【００９１】
ＪＮＬソートプログラム２１７は、差分ＢＭ（ｊ−１）におけるオンにされたビットに対応したブロック（対象Ｓ−ＶＯＬ１８７Ｓ内のブロック）に記憶されているデータ要素“Ａ”を、そのブロックから上記退避先のセグメントに退避する（ステップ１０００５）。
【００９２】
ＪＮＬソートプログラム２１７は、退避元のブロック（対象Ｓ−ＶＯＬ（ｊ）内のブロック）に、差分ＢＭ（ｊ）におけるオンのビットに対応したデータ格納アドレスが表すセグメント（ＪＮＬサブエリア（ｊ）内のセグメント）に記憶されているデータ要素“Ｂ”を書き込む（ステップ１０００６）。
【００９３】
以上のステップ１０００５及び１０００６により、オンライン更新差分データ要素“Ｂ”が対象Ｓ−ＶＯＬ（ｊ）内のブロックに書き込まれることに起因したＣＯＷで、そのブロックに記憶されているデータ要素“Ａ”がＪＮＬサブエリア（ｊ−１）内のセグメントに退避され、オンライン更新差分データ要素“Ｂ”が、対象Ｓ−ＶＯＬ（ｊ）内のブロックに書き込まれる。
【００９４】
以上のように、差分ＢＭ（ｊ）を構成するビットが、ブロックのアドレス順に参照され、オンのビットが検出される都度に、ステップ１０００３乃至１０００６が行われることで、ＪＮＬデータ要素がソートされる。すなわち、ＪＮＬサブエリア（ｊ）に時系列に連続していたオンライン更新差分データ要素が、ブロックのアドレス順に対象Ｓ−ＶＯＬに反映されることで、ＪＮＬサブエリア（ｊ−１）に、世代間差分データ要素がブロックのアドレス順に連続することになる。
【００９５】
なお、以上のソート処理が終了した後、オンライン更新差分データに対応した差分ＢＭを構成する全てのビットがオフとされる（オンライン更新差分データ要素がＳ−ＶＯＬに書き込まれる都度に、そのデータ要素に対応したビットがオフとされても良い）。
【００９６】
図１１は、世代間差分データのマージ処理のフローである。図１２は、そのマージ処理に関するデータ要素の動きを示す。以下、図１１及び図１２を参照して、マージ処理を説明する。
【００９７】
図１２に示すように、ＪＮＬマージプログラム２１９（図４参照）は、或る世代数分（例えば（ｍ＋１）世代（世代（Ｎ）〜世代（Ｎ＋ｍ））の世代間差分データが溜まっていることを検出したときに、（ｍ＋１）世代分の世代間差分データをマージ差分データに変換するマージ処理を開始する。なお、マージ処理の開始の契機として、（ｍ＋１）世代分の世代間差分データが溜まっていることが検出されたということは一例にすぎず、他の契機、例えば、直前回のマージ処理から所定期間が経過したであっても良い。
【００９８】
ＪＮＬマージプログラム２１９は、バックアップ世代管理テーブル２０５でマージ対象の世代（Ｎ）〜世代（Ｎ＋ｍ）の［状態］を“マージ中”にする。そして、ＪＮＬマージプログラム２１９は、マージ対象の最古の世代（Ｎ）の世代間差分データを、対象として選択する（ステップ１１００１）。
【００９９】
ＪＮＬマージプログラム２１９は、対象の世代間差分データに対応した差分ＢＭ（Ｎ）の先頭ビットを参照位置として決定する（ステップ１１００２）。
【０１００】
ＪＮＬマージプログラム２１９は、差分ＢＭ（Ｎ）について参照位置とされているビットがオンであれば、ステップ１１００４を実行し、そのビットがオフであれば、ステップ１１００９を実行する。以下、図１１及び図１２の説明において、その参照位置とされているビットを「対象ビット」と言い、そのビットがオンであれば「対象オンビット」と言い、そのビットがオフであれば「対象オフビット」と言う。
【０１０１】
ＪＮＬマージプログラム２１９は、今回作成するマージ差分データに対応した差分ＢＭ（以下、図１１及び図１２の説明において、「マージ差分ＢＭ」と言う）について、上記対象ビットと同じ位置にあるビットがオフであれば、ステップ１１００５を実行し、そのビットがオンであれば、ステップ１１００９を実行する。
【０１０２】
ＪＮＬマージプログラム２１９は、差分ＢＭ（Ｎ）における対象オンビットに対応したデータ格納アドレスを探し（ステップ１１００５）、そのアドレスを特定する（ステップ１１００６）。そして、ＪＮＬマージプログラム２１９は、そのアドレスが示すセグメントに記憶されている世代間差分データ要素を、そのセグメントから、今回作成されるマージ差分データに対応したＪＮＬサブエリア内のセグメント（直前回のコピー先のセグメントの次のセグメント）にコピーする（ステップ１１００７）。そして、ＪＮＬマージプログラム２１９は、マージ差分ＢＭにおける、上記対象ビットと同じ位置にあるビットを、オンにする（ステップ１１００８）。
【０１０３】
ＪＮＬマージプログラム２１９は、差分ＢＭ（Ｎ）において、これまでの参照位置の次の位置に未参照のビットがあれば（ステップ１１００９でＹ）、次のビットを参照位置として（ステップ１１０１０）、ステップ１１００３を実行する。次の位置に未参照のビットが無ければ（ステップ１１００９でＮ）、その世代（Ｎ）についての処理が終了となり（ステップ１１０１１）、次の世代があれば（ステップ１１０１２でＹ）、次の世代（Ｎ＋１）について、ステップ１１００１が行われる。もし、次の世代が無ければ（すなわち、直前回に処理された世代が（Ｎ＋ｍ）であれば（ステップ１１０１２でＮ）、マージ処理の終了となる。
【０１０４】
以上の流れによれば、図１２に示すように、マージ対象の世代（Ｎ）〜（Ｎ＋ｍ）のうちの古い世代に対応した世代間差分データから先に処理される。世代間差分データに対応した差分ＢＭではオンビットであって、マージ差分ＢＭにおいて、そのオンビットに対応したビットがオフであれば、そのオンビットに対応した世代間差分データ要素が、マージ差分データに対応したＪＮＬサブエリアにコピーされる。一方、世代間差分データに対応した差分ＢＭではオンビットであり、マージ差分ＢＭにおいても、そのオンビットに対応したビットがオンであれば、世代間差分データに対応した差分ＢＭ内のオンビットに対応したデータ要素はコピーされない。
【０１０５】
要するに、古い世代に対応した世代間差分データ要素ほど、優先的に、マージ差分データに対応したＪＮＬサブエリアにコピーされる。具体的には、例えば、図１２によれば、世代（Ｎ）と世代（Ｎ＋ｍ）の２つの世代について、Ｐ−ＶＯＬの先頭ブロックに対応した世代間差分データ要素“Ａ”及び“Ｇ”が存在している。この場合、前述したように、古い世代に対応した世代間差分データ要素ほど優先されるので、世代（Ｎ）についてのデータ要素“Ａ”は、マージ差分データに対応したＪＮＬサブエントリにコピーされるが、その世代（Ｎ）よりも新しい世代についてのデータ要素“Ｇ”は、そのＪＮＬサブエントリにはコピーされない。
【０１０６】
なお、このマージ処理では、古い世代から先に処理されるが、新しい世代から先に処理されても良い。但し、この場合、世代間差分データに対応した差分ＢＭではオンビットであり、マージ差分ＢＭにおいても、そのオンビットに対応したビットがオンであれば、世代間差分データに対応した差分ＢＭ内のオンビットに対応したデータ要素が、マージ差分データに対応したＪＮＬサブエリアに記憶されている、オンビットに対応したマージ差分データ要素に上書きされても良い。また、マージ差分データが作成された場合、そのマージ差分データの基になった複数世代分の世代間差分データは、マージ差分データの作成完了の直後に、又は計算機（例えば、ホスト計算機１０１又は管理サーバ１１１）からの指示に応答して、削除されても良い。
【０１０７】
また、世代間差分データやマージ差分データが古い世代から削除されて良い。この場合、例えば、図示しないＪＮＬ削除プログラムが、削除対象の世代に対応したＪＮＣＢ及びＪＮＬデータを解放し空きの領域として管理する。また、ＪＮＬ削除プログラムは、第一のＪＮＬ管理テーブル２０７及びバックアップ世代管理テーブル２０５から、削除対象の世代に対応したエントリを削除する。
【０１０８】
図１３は、リストア処理のフローを示す。
【０１０９】
ユーザによって指定されたリストア対象世代を有するリストア要求を、リストアプログラム２２１（図４参照）が、ホスト計算機１０１又は管理サーバ１１１から受領する。具体的には、例えば、リストアプログラム２２１が、ホスト計算機１０１又は管理サーバ１１１からの要求に応答して、バックアップ世代管理テーブル２０５などの情報を、ホスト計算機１０１又は管理サーバ１１１に送信する。ユーザは、そのテーブル２０５などにある［世代＃］、［バックアップ取得時間］及び［ユーザコメント］などを参照して、リストア対象世代を決定し、決定したリストア対象世代をホスト計算機１０１又は管理サーバ１１１に指定する。その指定されたリストア対象世代（Ｎ）を有するリストア要求が、ホスト計算機１０１又は管理サーバ１１１からリストアプログラム２２１に送られる。
【０１１０】
リストアプログラム２２１は、リストア要求に応答して、リストア処理を実行する。リストア処理では、Ｒ−ＶＯＬアクセス管理テーブル２０９が作成されるＲ−ＶＯＬアクセス管理テーブル２０９は、複数のアドレスレコードで構成される。各アドレスレコードはＲ−ＶＯＬを構成する各ブロック（仮想的なブロック）に対応し、故に、差分ＢＭにおける各ビットに対応する。
【０１１１】
リストアプログラム２２１は、リストア要求に応答して、世代間差分データ（もしくはマージ差分データ）の差分ＢＭを、リストア対象世代（Ｎ）から順次新しい世代（Ｎ＋１）、（Ｎ＋２）へと参照する（ステップ１２００１）。以下、参照先の差分ＢＭがリストア対象世代（Ｎ）である場合を例に採り説明する。
【０１１２】
リストアプログラム２２１は、差分ＢＭ（Ｎ）の先頭ビットから、オンかオフかの判定を行う（ステップ１２００２）。参照したビットがオンだった場合、リストアプログラム２２１は、そのオンビットに対応したアドレスレコードを参照する（ステップ１２００３）。そのレコードに無効なアドレス（例えばＮｕｌｌ）があれば、リストアプログラム２２１は、参照したオンビットに対応するデータ格納アドレスを、ＪＮＣＢ（Ｎ）内から読み出して（ステップ１２００４）、そのレコードに登録し（ステップ１２００５）、一方、そのレコードに有効なアドレスが登録済みであれば、次のビットを参照する（ステップ１２００６）。
【０１１３】
以上のステップ１２００２乃至１２００６が、リストア対象世代（Ｎ）だけでなく、それよりも新しい世代（Ｎ＋１）及び（Ｎ＋２）についても行われることでＲ−ＶＯＬアクセス管理テーブル２０９が完成する。すなわち、例えば、ステップ１２００６において、参照先となる次のビットが無ければ、リストア対象世代（Ｎ）の次の世代（Ｎ＋１）について、ステップ１２００２乃至１２００６が行われる。
【０１１４】
以上のようにしてＲ−ＶＯＬアクセス管理テーブル２０９が作成されたならばＲ−ＶＯＬへのリード処理（及びライト処理）が可能になる。この場合、構成管理テーブル２０１において、Ｒ−ＶＯＬに対応した［状態］が“ノーマル”（つまりＲ／Ｗ可）となる（それ以前は、その［状態］は、“Ｒ／Ｗ不可”である）。
【０１１５】
ちなみに、Ｒ−ＶＯＬアクセス管理テーブル２０９を作成することに代えて、実ＶＯＬとしてのＲ−ＶＯＬが用意されても良い。この場合は、例えば、Ｒ−ＶＯＬアクセス管理テーブル２０９を作成する方法と同じ方法でデータ格納アドレスが特定され、特定されたアドレスが表すセグメントから、Ｒ−ＶＯＬ（実ＶＯＬ）内の、そのアドレスが対応するビットに対応したブロックに、データ要素がコピーされても良い。
【０１１６】
図１４は、Ｒ−ＶＯＬ管理テーブル２０９を利用したリード処理のフローを示す。
【０１１７】
Ｒ／Ｗプログラム２１３（図４参照）が、ホスト計算機１０１から、図１３に示すＲ−ＶＯＬ１８７Ｒを指定したリードコマンドを受信する（ステップ１４００１）。
【０１１８】
Ｒ／Ｗプログラム２１３は、そのリードコマンドで指定されているリード元ブロックに対応したレコード（Ｒ−ＶＯＬアクセス管理テーブル２０９内のレコード）を参照する（ステップ１４００２）。
【０１１９】
ステップ１４００２の結果、参照先のレコードに有効なアドレスが登録されていれば、Ｒ／Ｗプログラム２１３は、そのアドレスが表すセグメントからデータ要素を読出し、そのデータ要素をホスト計算機１０１に送信する（ステップ１４００３）。
【０１２０】
一方、ステップ１４００３の結果、参照先のレコードに無効なアドレスが登録されていれば、Ｒ／Ｗプログラム２１３は、Ｒ−ＶＯＬに対応するＳ−ＶＯＬ（フルバックアップボリューム）内の、上記リード元ブロックと同じアドレスのブロックから、データ要素を読出し、そのデータ要素をホスト計算機１０１に送信する（ステップ１４００４）。
【０１２１】
図１５は、Ｒ−ＶＯＬ管理テーブル２０９を利用したライト処理のフローを示す。
【０１２２】
Ｒ／Ｗプログラム２１３が、ホスト計算機１０１から、図１３に示すＲ−ＶＯＬ１８７Ｒを指定したライトコマンドを受信する（ステップ１５００１）。Ｒ／Ｗプログラム２１３は、そのライトコマンドで指定されているライト先ブロックに対応したレコード（Ｒ−ＶＯＬアクセス管理テーブル２０９内のレコード）を参照する。
【０１２３】
参照先のレコードに有効なアドレス“アドレス３”が登録されていれば、Ｒ／Ｗプログラム２１３は、ストレージプール１８９Ａ又は１８９Ｂから、ホストライトサイズ分の領域を確保し（ステップ１５００２）、上記の有効なアドレス“アドレス３”を、その確保された領域を表すアドレス“アドレスＰ１”に変更する（ステップ１５００３）。そして、Ｒ／Ｗプログラム２１３は、その確保されている領域に、ライトデータ要素を書き込む（ステップ１５００４）。
【０１２４】
なお、参照先のレコードに無効なアドレスが登録されていれば、その無効なアドレスが、ストレージプール１８９Ａ又は１８９Ｂ内の確保された領域を表すアドレスに変更される。
【０１２５】
図２０は、Ｒ−ＶＯＬ有りでのソート処理のフローを示す。
【０１２６】
マーカを受領すると、オンライン更新差分データがＳ−ＶＯＬにコピーされることで、Ｓ−ＶＯＬに格納されていたデータ要素が退避される。このため、Ｒ−ＶＯＬが有る状態でマーカが受領されると、Ｒ−ＶＯＬアクセス管理テーブルに格納されている各アドレスと各データ要素との対応関係が変わってしまうおそれがある。具体的には、例えば、Ｒ−ＶＯＬアクセス管理テーブルにおける参照先レコードに無効なアドレスが登録されているが故に、その参照先レコードに対応したブロック（Ｓ−ＶＯＬ内のブロック）に記憶されているデータ要素のリードが期待できるが、上記マーカ受領によりそのブロックにオンライン更新差分データ要素がコピーされることになると、そのデータ要素がＪＮＬサブエリアに退避されるため、期待されるデータ要素をＳ−ＶＯＬから取得できなくなる。
【０１２７】
そのため、図２０を参照して説明する処理が行われる。
【０１２８】
まず、ステップ１０００１〜１０００２が行われる（ステップ２０００１）。
【０１２９】
次に、ＪＮＬソートプログラム２１７は、Ｒ−ＶＯＬにアクセスがあった場合に、対応するＳ−ＶＯＬにアクセスすることになるかどうかを判断する（ステップ２０００２）。具体的には、ＪＮＬソートプログラム２１７は、Ｒ−ＶＯＬアクセス管理テーブル２０９に、無効なアドレスが登録されているか否かを判断する。
【０１３０】
その結果、無効なアドレスが見つかれば、ＪＮＬソートプログラム２１７は、無効なアドレスが登録されているレコードに対応したブロックを特定し、特定したブロックに対応するデータ各要素アドレス（差分ＢＭ（ｊ−１）内のビットに対応したデータ格納アドレス）“アドレス３”を参照する。そして、ＪＮＬソートプログラム２１７は、そのアドレス“アドレス３”が表すセグメントに、無効なアドレスが登録されているレコードに対応したブロック（Ｓ−ＶＯＬ内のブロック）に記憶されているデータ要素“Ａ”を退避する（ステップ２０００３）。ＪＮＬソートプログラム２１７は、Ｒ−ＶＯＬアクセス管理テーブル２０９において、無効なアドレス“Ｎｕｌｌ”を、データ要素“Ａ”の退避先セグメントを表すアドレス“アドレスＰ１”に変更する（ステップ２０００４）。そして、ＪＮＬソートプログラム２１７は、退避元のブロックに、そのブロックに対応したオンライン更新差分データ要素“Ｂ”を書き込む（ステップ２０００５）。
【０１３１】
以上の処理により、Ｒ−ＶＯＬ有りの状態でマーカを受領しても、Ｒ−ＶＯＬ内の各ブロックと各データ要素との対応関係を維持したソート処理を行うことができる。
【実施例２】
【０１３２】
以下、本発明の第二の実施形態を説明する。その際、第一の実施形態との共通点については、説明を省略或いは簡略し、第一の実施形態との相違点を主に説明する（なお、この点は、第二の実施形態に限らず、第三の実施形態以降も同様である）。
【０１３３】
第二の実施形態では、オンライン更新差分データ要素は、Ｐ−ＶＯＬのビフォアＪＮＬデータ要素である。
【０１３４】
図１６は、第二の実施形態においてＰ−ＶＯＬにライトデータ要素を書き込むライト処理のフローを示す。
【０１３５】
Ｒ／Ｗプログラム２１３は、ホスト計算機１０１からライトコマンドを受領すると（ステップ１６００１）、ライトデータ要素を格納するためのスロットを確保する（ステップ１６００２）。さらに、Ｒ／Ｗプログラム２１３は、オンライン更新差分データに対応した差分ＢＭ内の、ライトコマンドで指定されているライト先ブロックに対応したビットを参照する（ステップ１６００３）。
【０１３６】
ステップ１６００３の結果、参照先がオンビットの場合、Ｒ／Ｗプログラム２１３は、ステップ１６００８以降を実行する（ステップ１６００４）。すなわち、ライト先ブロックに記憶されているデータ要素がオンライン更新差分データ要素としてＪＮＬサブエントリに退避されることは行われない。
【０１３７】
一方、ステップ１６００３の結果、参照先がオフビットの場合、Ｒ／Ｗプログラム２１３は、対象Ｐ−ＶＯＬ（ライトコマンドで指定されているＰ−ＶＯＬ）１８７Ｐに対応するＪＮＬエリア管理テーブル２０３を参照することで、対象Ｐ−ＶＯＬ１８７Ｐについてのオンライン更新差分データに対応するＪＮＬサブエリア内の空きセグメントを特定する（ステップ１６００５）。なお、もし、空きセグメントが無ければ、新たにＪＮＬサブエリアを確保することが可能である。
【０１３８】
ステップ１６００５の次に、Ｒ／Ｗプログラム２１３は、ライト先ブロックに記憶されているデータ要素を、上記特定された空きセグメントに退避する（ステップ１６００６）。そして、Ｒ／Ｗプログラム２１３は、オンライン更新差分データに対応するＪＮＣＢを更新する（ステップ１６００７）。具体的には、Ｒ／Ｗプログラム２１３は、ライト先ブロックに対応したビット（差分ＢＭ内の上記参照先のオフビット）をオンにし、そのライト先ブロックに対応したデータ格納アドレスとして、上記空きセグメントを表すアドレスを追加する。
【０１３９】
その後、Ｒ／Ｗプログラム２１３が、フロントエンドインタフェース１２７内のメモリ１３１に記憶されているライトデータ要素を、ステップ１６００２で確保されたスロットに書き込む（ステップ１６００８）。
【０１４０】
Ｒ／Ｗプログラム２１３は、そのスロットに書き込まれているライトデータ要素を、Ｐ−ＶＯＬ内のライト先ブロックに書き込む（ステップ１６００９）。
【０１４１】
図１７は、第二の実施形態でのソート処理のフローを示す。
【０１４２】
ステップ１０００１〜１０００５と同じ処理が行われる（ステップ１７００１〜１７００５）。
【０１４３】
その後、ＪＮＬソートプログラム２１７は、オンライン更新差分データに対応する差分ＢＭ内の各オンビットに対応した、Ｐ−ＶＯＬ内の各ブロックから、Ｓ−ＶＯＬ内の同じアドレスの各ブロックに、データ要素をコピーする（ステップ１７００６）。
【実施例３】
【０１４４】
第三の実施形態では、オンライン更新差分データが格納されない。このため、第一及び／又は第二の実施形態と、以下の点で相違する。
【０１４５】
例えば、図１８のステップ１８００１〜１８００５に示すように、Ｐ−ＶＯＬに対するライト処理では、Ｐ−ＶＯＬについてのＪＮＬデータ要素がＪＮＬエリアに格納されない。
【０１４６】
また、例えば、ソート処理では、図１９に示すように、図１７と同じソート処理が行われる。すなわち、図１９におけるステップ１９００１〜１９００６は、図１７におけるステップ１７００１〜１７００６とそれぞれ同じである。
【０１４７】
図２１は、第三の実施形態（及び第二の実施形態）におけるマーカ受領直後のＰ−ＶＯＬのライト処理を示す。以下の説明では、Ｓ−ＶＯＬから退避されるべき全てのデータ要素のうちの一部のデータ要素が未だ退避されていないタイミングが考慮されている。
【０１４８】
Ｒ／Ｗプログラム２１３は、ライトコマンドを受領すると（ステップ２１００１）、ライトコマンドで指定されているＶＯＬのボリューム属性を確認する（ステップ２１００２）。Ｒ／Ｗプログラム２１３は、そのＶＯＬがＰ−ＶＯＬであると判定したら、そのＰ−ＶＯＬについての最新の差分ＢＭ内の、ライト先ブロックに対応したビットを参照する（ステップ２１００３）。
【０１４９】
そのビットが、図２１に示すようにオンであれば、ライト先ブロックに記憶されているデータ要素がライトデータ要素に上書きされる前に、そのデータ要素が、Ｓ−ＶＯＬにコピーされなければならない。そのために、Ｒ／Ｗプログラム２１３は、ライトデータ要素に対応した第一のスロットの確保と、Ｐ−ＶＯＬから退避されるデータ要素に対応した第二のスロットの確保と、Ｓ−ＶＯＬから退避されるデータ要素に対応した第三のスロットの確保とを行う（ステップ２１００４）。
【０１５０】
その後、Ｒ／Ｗプログラム２１３は、ライト先ブロックと同じアドレスのブロック（Ｓ−ＶＯＬ内のブロック）から第三のスロットを介してＪＮＬサブエリアにデータ要素を退避する（ステップ２１００５）。また、Ｒ／Ｗプログラム２１３は、ライト先ブロックから第二のスロットを介してライト先ブロックと同じアドレスのブロック（Ｓ−ＶＯＬ内のブロック）にデータ要素を退避する（ステップ２１００６）。
【０１５１】
Ｒ／Ｗプログラム２１３は、ライトコマンドに対応する応答をホスト計算機１０１に送信し（ステップ２１００７）、それに応答してライトデータ要素をホスト計算機１０１から受領し（ステップ２１００８）、受領したライトデータ要素を第一のスロットに書き込む（ステップ２１００９）。第一のスロットに書き込まれたライトデータ要素は、Ｐ−ＶＯＬ内のライト先ブロックに書き込まれる。
【０１５２】
なお、これまでの説明では、基本的に、取得された第一のＪＮＬデータ要素（例えばオンライン更新差分データ要素）が、ＪＮＬサブエリアに存在する第二のＪＮＬデータ要素と同じブロックに対応しているならば、第二のＪＮＬデータ要素はＪＮＬサブエリアにおいて第一のＪＮＬデータ要素に上書きされ、それ故、ＪＮＬデータ（例えばオンライン更新差分データ）の最大サイズは、Ｐ−ＶＯＬやＳ−ＶＯＬと同じサイズとされていた。しかし、それに限らず、取得されたＪＮＬデータ要素は上書きされることなくＪＮＬサブエリアに蓄積されていっても良い。この場合、オンライン更新差分データ、世代間差分データ及びマージ差分データは、いずれも、Ｐ−ＶＯＬやＳ−ＶＯＬのサイズを超える可能性がある。
【実施例４】
【０１５３】
図２２は、本発明の第四の実施形態でのリストア処理の概要を示す。図２３は、本実施形態でのＰ−ＶＯＬ、Ｒ−ＶＯＬ及びＪＮＬ関連エリアの構成例を示す。図２４は、そのリストア処理でのキャッシュメモリ１４７の使い方を示す。なお、図２２〜図２４を参照した説明では、ＪＮＬデータ要素は、ビフォアＪＮＬデータ要素である。また、リストア対象世代を世代（Ｎ）とする。
【０１５４】
本実施形態では、図２２及び図２３に示すように、Ｒ−ＶＯＬ１８７Ｒからバックアップサーバ５０１にデータが読み出され、バックアップサーバ５０１に接続されている記憶装置（例えばテープライブラリ）５０２に、そのデータが書き込まれる。データは、例えば、Ｒ−ＶＯＬの先頭アドレスからシーケンシャルに読み出され、記憶装置５０２にシーケンシャルに書き込まれる。
【０１５５】
図２２に示すように、リストアプログラム２２１が、Ｐ−ＶＯＬ（又はＳ−ＶＯＬ）内の各スロットサイズ領域からデータをキャッシュメモリ１４７に読み出す（符号４６００１）。スロットのサイズは、例えば、ホストライトサイズよりも大きい。従って、スロットサイズ領域は、例えば、複数個のブロックで構成されている。
【０１５６】
次に、リストアプログラム２２１が、リストア対象世代（Ｎ）から最新世代までのＪＮＣＢを基に（符合４６００２）、リストア対象世代（Ｎ）のＰ−ＶＯＬにあった世代間差分データ要素をＪＮＬエリアから読み出し、キャッシュメモリ１４７内のスロットサイズのデータにおける、ＪＮＣＢ内のデータ格納アドレスに従う箇所に、その世代間差分データ要素を上書きする（符号４６００３）。こうすることで、キャッシュメモリ１４７内で、世代（Ｎ）に対応した或るスロットサイズ分のデータが確定した後に、キャッシュメモリ１４７内の確定したスロットサイズ分のデータが、バックアップサーバ５０１に転送される。
【０１５７】
図２３に示すように、本実施形態では、Ｐ−ＶＯＬ（及び／又はＳ−ＶＯＬ）、Ｒ−ＶＯＬ（実質的にはキャッシュメモリ）、ＪＮＣＢエリア及びＪＮＬエリアは、複数のサブ領域に分割されている。以下、そのサブ領域を「分割領域」と言い、個々の分割領域に通し番号ｐ（ｐは自然数）を付して説明する。Ｐ−ＶＯＬ、Ｒ−ＶＯＬ、ＪＮＣＢエリア及びＪＮＬエリア内のそれぞれの分割領域ｐは、互いに対応している。また、例えば、一つの世代に対応したＪＮＣＢは、ＪＮＣＢエリアにおける複数の分割領域１〜Ｍに分割して格納され、同様に、一つの世代に対応したＪＮＬデータ（例えば世代間差分データ）も、ＪＮＬエリアにおける複数の分割領域１〜Ｍに分割して格納される。
【０１５８】
本実施形態では、複数の制御プロセッサ１４３があり、一又は二以上の分割領域毎に、個々の制御プロセッサ１４３が割り当てられている。各制御プロセッサ１４３は、それぞれ、自身が担当する分割領域について、図２２を参照して説明した処理を実行する。複数の制御プロセッサ１４３が、並行して図２２を参照して説明した処理を実行する。
【０１５９】
一つの分割領域について、例えば下記の処理が行われる。
【０１６０】
すなわち、図２４に示すように、その分割領域を担当する制御プロセッサ１４３が、キャッシュメモリ１４７における分割領域に、世代（Ｎ）から最新世代に対応した複数のスロットと、Ｒ−ＶＯＬに対応したスロットとを確保する。
【０１６１】
次に、制御プロセッサ１４３が、世代（Ｎ）から最新世代までの差分ＢＭ部分（分割領域に対応した差分ＢＭ部分）をマージし（符号４８０００）、マージされた差分ＢＭ部分におけるオンビットに対応したデータ要素を含むスロットサイズ分のデータを、Ｐ−ＶＯＬ１８７Ｐ（又はＳ−ＶＯＬ）から、Ｒ−ＶＯＬに対応したスロットに読み出す（符号４８００１）。その際、各データ要素は、スロット内の、ＪＮＣＢ内のデータ格納アドレスに基づく位置に記憶される。
【０１６２】
次に、制御プロセッサ１４３は、世代（Ｎ）に対応した差分ＢＭ部分におけるオンビットに対応したデータ要素（Ｎ）を、スロット（Ｎ）に読み出す（符号４８００２）。制御プロセッサ１４３は、世代（Ｎ）よりも新しい各世代についても同様の処理を行う（符号４８００３）。
【０１６３】
制御プロセッサ１４３は、世代（Ｎ）から最新世代にかけて、スロット内のデータ要素を、Ｒ−ＶＯＬに対応したスロットにコピーする（符号４８００４）。その際、コピー先にデータ要素が存在する場合には、より新しい世代に対応したデータ要素が上書きされる（符号４８００５）。世代（Ｎ）から最新世代にかけてこのようなコピーが完了した場合に、世代（Ｎ）に対応したスロットサイズのデータが確定する。
【０１６４】
なお、制御プロセッサ１４３は、キャッシュメモリ１４７にスロットが確保できない場合、キャッシュメモリ１４７における確定済のスロットサイズのデータを、Ｒ−ＶＯＬ用退避領域（例えば、ストレージプールの一部分（例えばプールＶＯＬ））６９９に退避する。或いは、例えば、制御プロセッサ１４３は、Ｒ−ＶＯＬに対するライトデータ要素を受領した場合、そのライトデータ要素を、Ｒ−ＶＯＬ用退避領域６９９に退避する。
【０１６５】
また、制御プロセッサ１４３は、図２４を参照して説明した方法に代えて、図２５を参照して説明する方法で、Ｒ−ＶＯＬ１８７Ｒに対応したスロットサイズ分のデータをキャッシュメモリ１４７上に確定することが可能である。すなわち、図２５に示すように、制御プロセッサ１４３は、差分ＢＭ部分（Ｎ）におけるオンビットに対応したデータ要素を対象スロットに読み出す。次に、制御プロセッサ１４３は、差分ＢＭ部分（Ｎ＋１）におけるオンビットに対応したデータ要素を、上記対象スロットに読み出す。その際、前の世代で既にデータ要素が読み出されていれば、差分ＢＭ部分（Ｎ＋１）におけるオンビットに対応したデータ要素は、対象スロットに書き込まれない。このような処理が、世代（Ｎ）から最新世代について行われることで、Ｒ−ＶＯＬ１８７Ｒに対応したスロットサイズ分のデータが確定される。
【実施例５】
【０１６６】
図２６は、本発明の第五の実施形態で行われる圧縮処理と解凍処理の概要を示す。これらの処理は、例えば、図示しない圧縮／解凍プログラムが制御プロセッサ１４３で実行されることにより行われる。
【０１６７】
制御プロセッサ１４３が、ホスト計算機１０１又は管理サーバ１１１から圧縮対象世代の指定を受け付ける。制御プロセッサ１４３は、圧縮対象世代の指定を受けた場合、圧縮対象世代に対応したＪＮＬデータ（世代間差分データまたはマージ差分データ）の位置及びデータサイズを、圧縮対象世代に対応した［先頭アドレス］及び［長さ］（第一のＪＮＬ管理テーブル２０７に記録されている情報要素）を参照することにより、特定する。また、制御プロセッサ１４３は、圧縮方式（例えば圧縮率を含む）を基に、特定されたデータサイズに基づくサイズの空き領域を、ＪＮＬ関連エリア１８８から確保する。
【０１６８】
そして、制御プロセッサ１４３は、圧縮対象世代に対応したＪＮＣＢ及びＪＮＬデータをＪＮＬ関連エリア１８８から読み出して圧縮し、圧縮後のＪＮＣＢ及びＪＮＬデータを、確保した空き領域に格納する。その後、制御プロセッサ１４３は、読出し元の領域（ＪＮＣＢ及びＪＮＬデータが記憶されている記憶領域）を解放する。これにより、その領域は空き領域として管理されることになる。
【０１６９】
制御プロセッサ１４３は、世代毎に、圧縮の有無と、圧縮後のＪＮＣＢ及びＪＮＬデータの在り処を示す情報と、圧縮後及び圧縮前のＪＮＣＢ及びＪＮＬデータのサイズ（圧縮後サイズ及び圧縮前サイズ）とを、所定の記憶資源（例えば制御メモリ１４５）で管理する。
【０１７０】
制御プロセッサ１４３は、解凍対象世代の指定を受け付けた場合、解凍対象世代に対応した圧縮前サイズ分の空き領域を、ＪＮＬ関連エリア１８８から確保する。制御プロセッサ１４３は、解凍対象世代に対応した圧縮後のＪＮＣＢ及びＪＮＬデータの在り処を上記所定の記憶資源で管理されている情報を参照することにより特定し、特定された在り処にある圧縮後のＪＮＣＢ及びＪＮＬデータを読み出す。そして、制御プロセッサ１４３は、その圧縮後のＪＮＣＢ及びＪＮＬデータを伸張し、解凍後のＪＮＣＢ及びＪＮＬデータを、上記確保した空き領域に格納する。その後、制御プロセッサ１４３は、読出し元の領域（圧縮後のＪＮＣＢ及びＪＮＬデータが記憶されている記憶領域）を解放する。これにより、その領域は空き領域として管理されることになる。
【０１７１】
以上が、第五の実施形態についての説明である。なお、圧縮及び／又は解凍は、制御プロセッサ１４３に代えて又は加えて、ハードウェア回路で行われてもよい。
【０１７２】
以上、本発明の幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１７３】
例えば、第一乃至第五のいずれの実施形態でも、計算機システムは、オープンシステムであってもメインフレームシステムであっても良い。
【０１７４】
また、例えば、ストレージシステム１２５及び／又は１６１は、ＮＡＳ（Network Attached Storage）であっても良い。
【０１７５】
また、Ｓ−ＶＯＬは、無くても良い。その場合、Ｒ−ＶＯＬにアクセスがあった場合の参照先は、Ｓ−ＶＯＬ内のブロックに代えて、Ｐ−ＶＯＬ内のブロック、又は、オンライン更新差分データ要素が記憶されているセグメントである。また、この場合、マーカが受領された時に、オンライン更新差分データが、世代間差分データになることになる。その際、ソート処理として、オンライン更新差分データ要素が、アドレス順にＪＮＬサブエリアから読み出され、別のＪＮＬサブエリアにアドレス順に書き込まれる。Ｓ−ＶＯＬが有れば、ソート処理がやり易く、Ｓ−ＶＯＬが無ければ、Ｓ−ＶＯＬのサイズ分の記憶容量の消費を削減することができる。
【図面の簡単な説明】
【０１７６】
【図１】本発明の第一の実施形態に係る計算機システムの構成を示す。
【図２】第一のストレージシステムにおける記憶領域構成の概要を示す。
【図３】ＪＮＬデータ要素の格納の概要を示す。
【図４】第一のストレージシステム内の制御メモリに記憶されているコンピュータプログラム及び情報を示す。
【図５】図４に示した構成管理テーブル、ＪＮＬエリア管理テーブル、バックアップ世代管理テーブル及び第一のＪＮＬ管理テーブルの例を示す。
【図６】オンライン更新差分データ、世代間差分データ及びマージ差分データのうちの世代間差分データを例に採ったデータ管理方式を示す。
【図７】ホストライトサイズ設定処理のフローを示す。
【図８】Ｐ−ＶＯＬにライトデータ要素を書き込むライト処理のフローを示す。
【図９】マーカ受領及びマーカ受領に応答して行われる処理のフローを示す。
【図１０】第一の実施形態でのソート処理のフローを示す。
【図１１】第一の実施形態でのマージ処理のフローである。
【図１２】第一の実施形態でのマージ処理に関するデータ要素の動きを示す。
【図１３】リストア処理のフローを示す。
【図１４】Ｒ−ＶＯＬ管理テーブルを利用したリード処理のフローを示す。
【図１５】Ｒ−ＶＯＬ管理テーブルを利用したライト処理のフローを示す。
【図１６】本発明の第二の実施形態においてＰ−ＶＯＬにライトデータ要素を書き込むライト処理のフローを示す。
【図１７】第二の実施形態でのソート処理のフローを示す。
【図１８】本発明の第三の実施形態においてＰ−ＶＯＬにライトデータ要素を書き込むライト処理のフローを示す。
【図１９】第三の実施形態でのソート処理のフローを示す。
【図２０】Ｒ−ＶＯＬ有りでのソート処理のフローを示す。
【図２１】第二、第三の実施形態におけるマーカ受領直後のＰ−ＶＯＬのライト処理を示す。
【図２２】本発明の第四の実施形態でのリストア処理の概要を示す。
【図２３】第四の実施形態でのＰ−ＶＯＬ、Ｒ−ＶＯＬ及びＪＮＬ関連エリアの構成例を示す。
【図２４】第四の実施形態のキャッシュメモリの使い方を示す。
【図２５】第四の実施形態の一変形例の説明図である。
【図２６】本発明の第五の実施形態で行われる圧縮処理と解凍処理の概要を示す。
【符号の説明】
【０１７７】
１０１…ホスト計算機、１１１…管理サーバ、１２５…第一のストレージシステム、１６１…第二のストレージシステム
【図１】
0005275691.tif 000002
【図２】
0005275691.tif 000003
【図３】
0005275691.tif 000004
【図４】
0005275691.tif 000005
【図５】
0005275691.tif 000006
【図６】
0005275691.tif 000007
【図７】
0005275691.tif 000008
【図８】
0005275691.tif 000009
【図９】
0005275691.tif 000010
【図１０】
0005275691.tif 000011
【図１１】
0005275691.tif 000012
【図１２】
0005275691.tif 000013
【図１３】
0005275691.tif 000014
【図１４】
0005275691.tif 000015
【図１５】
0005275691.tif 000016
【図１６】
0005275691.tif 000017
【図１７】
0005275691.tif 000018
【図１８】
0005275691.tif 000019
【図１９】
0005275691.tif 000020
【図２０】
0005275691.tif 000021
【図２１】
0005275691.tif 000022
【図２２】
0005275691.tif 000023
【図２３】
0005275691.tif 000024
【図２４】
0005275691.tif 000025
【図２５】
0005275691.tif 000026
【図２６】
0005275691.tif 000027