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