(57)【要約】      （修正有）【課題】データの書き込み操作をジャーナル情報として記録するストレージ装置において、新たに書き込むデータが過去に書き込んだデータを完全に上書きすることなくジャーナル情報を削減し、また厳密な段階的回復を行えるようにする。【解決手段】ジャーナル情報を、ブロック単位のジャーナルデータ情報と、それを参照するマップ情報を含むジャーナルログ情報に分けて、ジャーナル記憶領域に格納する。ジャーナルログ情報間で、ジャーナルデータ情報のブロック内容が一致するものが存在する場合、新しいジャーナルログ情報のマップ情報を、古いジャーナルログ情報のマップ情報により参照される内容が一致するブロックを参照するように書き換える。ジャーナルログ情報の表す操作内容を損なうことなく、冗長なジャーナルデータ情報をブロック単位で削減することにより、ジャーナル情報の削減を行う。【選択図】図４
2007200182.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスと、前記記憶デバイスに対する計算機装置からのデータ書き込み要求を制御する制御部と、を備えたストレージ装置において、
前記記憶デバイスは、主データ記憶領域と、前記主データ記憶領域に対する差分情報をジャーナル情報として記憶するジャーナル記憶領域とを備え、
前記ジャーナル記憶領域は、前記ジャーナル情報のジャーナルログ情報の記憶領域と、前記ジャーナル情報のジャーナルデータ情報の記憶領域と、を含んで構成されるストレージ装置。
【請求項２】
前記制御部は、前記計算機装置からの書き込み要求を、前記ジャーナル情報としてジャーナル記憶領域に格納する際に、前記ジャーナル情報を、ジャーナルログ情報とジャーナルデータ情報に分けて、前記ジャーナルログ情報を前記ジャーナルログ記憶領域へ、前記ジャーナルデータ情報を前記ジャーナルデータ記憶領域へ格納する、請求項１記載のストレージ装置。
【請求項３】
前記ジャーナルデータ情報は、前記ジャーナルデータ記憶領域に、固定長単位に分割されて格納され、
前記分割された各ジャーナルデータ情報の単位が前記ジャーナルデータ記憶領域内の複数のブロックのうちどのブロックに格納されているかのマップ情報が、前記ジャーナルログ記憶領域に格納されている、請求項２記載のストレージ装置。
【請求項４】
前記ジャーナルデータ記憶領域を固定長ブロック単位に分割し、
前記各ブロック単位について、前記制御部が当該ブロックを参照した参照数からなる配列をジャーナルデータ管理情報として、前記ジャーナル記憶領域に格納した、請求項３記載のストレージ装置。
【請求項５】
前記制御部は、
前記ジャーナルデータ管理情報を参照し、前記ジャーナルデータ情報を前記参照数がゼロの前記ブロックに格納し、前記ジャーナルデータ管理情報を更新して、前記ジャーナルデータ情報を格納したブロックに対応する参照数を１増加する、請求項４記載のストレージ装置。
【請求項６】
前記制御部は、前記ジャーナルデータ情報を除く前記ジャーナル情報に前記マップ情報を付加し、これを前記ジャーナルログ情報として、前記ジャーナルログ記憶領域の空き領域に格納し、
前記ジャーナルログ情報の格納後、ジャーナルログ管理情報のうちの前記ジャーナルログ記憶領域における使用中の領域の大きさを示すレングスを、ジャーナルログ情報の大きさを加えたものに更新する、請求項５記載のストレージ装置。
【請求項７】
前記制御部は、新たなジャーナル情報と、既に前記ジャーナル記憶領域に格納されている既存のジャーナル情報とを比較し、前記ジャーナルデータ記憶領域に内容が重複する前記ブロックが存在する場合、前記新たなジャーナル情報のジャーナルログ情報の前記マップ情報を、前記既存のジャーナル情報の内容が一致するブロックを参照するように変更する、請求項４記載のストレージ装置。
【請求項８】
前記制御部は、新たなジャーナル情報と、既に前記ジャーナル記憶領域に格納されている既存のジャーナル情報とを比較し、前記ジャーナルデータ記憶領域に内容が重複する前記ブロックが存在する場合、前記既存のジャーナル情報のジャーナルログ情報の前記マップ情報を、前記新たなジャーナル情報の内容が一致するブロックを参照するように変更する、請求項４記載のストレージ装置。
【請求項９】
前記制御部は、前記ジャーナルデータ管理情報を更新し、変更前の前記マップ情報によって参照されていた前記ブロックの参照数を１減少し、変更後の前記マップ情報によって参照される前記ブロックの参照数を１増加する、請求項７又は８記載のストレージ装置。
【請求項１０】
前記制御部は、前記参照数が０になった前記ブロックを、新たな前記ジャーナル情報の前記ジャーナルデータ情報の記憶領域として解放する、請求項９記載のストレージ装置。
【請求項１１】
前記制御部が前記主データ記憶領域に前記ジャーナル情報を反映させる場合、前記ジャーナルデータ管理情報を更新して、前記マップ情報によって参照されていた全ての前記ブロックに対応する前記参照数を１ずつ減少させ、前記ジャーナルログ情報の大きさを、前記主データ記憶領域に反映された前記ジャーナル情報の大きさ分減じたものにする、請求項３記載のストレージ装置。
【請求項１２】
前記制御部は、前記マップ情報によって参照される前記ブロックの前記ジャーナルデータ情報を、前記ジャーナルログ情報によって指定される前記主データ記憶領域のアドレスに反映させる、請求項１１記載のストレージ装置。
【請求項１３】
前記制御部は、選択した時点以降の前記ジャーナル情報を破棄するように構成された、破棄される前記ジャーナル情報の前記マップ情報によって参照されていた全ての前記ブロックに対応する前記参照数を１ずつ減少させる、請求項３記載のストレージ装置。
【請求項１４】
記憶デバイスと、前記記憶デバイスに対する計算機装置からのデータ書き込み要求を制御する制御部と、を備えたストレージ装置において、前記制御部は、前記主データ記憶領域に対する前記差分情報であるジャーナル情報を、ジャーナルログ情報と、ジャーナルデータ情報に分けて管理し、複数の前記ジャーナルログ間で同一の前記ジャーナルデータ情報を共有する、ストレージ装置。
【請求項１５】
上位装置に接続されるストレージ装置であって、
データボリュームと、
コントロールユニットと、
前記データボリュームに対するログを記憶する領域と、前記データボリュームに対する差分データを記憶する領域と前記差分データを記憶する領域のブロック番号と前記ログ情報との対応関係を規定したブロックリストと、を備えるジャーナルボリュームとを備え、
前記コントロールユニットは、前記上位装置から書き込み要求があった場合、前記書き込み要求を前記ジャーナルボリュームに書き込み、前記書き込んだ書き込み要求のログが複数となったとき、前記ログのうち最も古いログに対応する差分データに基づき、該最も古い差分データと内容が一致する部分が存在する新しい差分データの有無を検討し、重複しているブロック番号の対応関係を、前記最も古いログに対応するブロック番号に変更するとともに、重複したブロック番号に対応する前記差分データを記憶する領域のブロックを解放するようにした、ストレージ装置。
【請求項１６】
前記コントロールユニットが前記ブロックリストに参照情報を関連させ、この参照情報に基づいて、前記ブロックの解放を実行する、請求項１５記載のストレージ装置。
【請求項１７】
前記コントロールユニットが前記ブロックリストを介して、参照した前記差分データを記憶する領域のブロックに参照情報を付加し、参照情報がある値になった場合に、前記ブロックの解放を実行する、請求項１５記載のストレージ装置。
【請求項１８】
前記コントロールユニットは、指定時刻のタイミングで、前記重複しているブロック番号の対応関係を、前記最も古いログに対応するブロック番号に変更するとともに、重複したブロック番号に対応する前記差分データを記憶する領域のブロックを解放するようにした、請求項１５記載のストレージ装置。
【請求項１９】
前記コントロールユニットは、前記上位装置からトランザクションが送信されていないタイミングで、前記重複しているブロック番号の対応関係を、前記最も古いログに対応するブロック番号に変更するとともに、重複したブロック番号に対応する前記差分データを記憶する領域のブロックを解放するようにした、請求項１５記載のストレージ装置。
【請求項２０】
請求項１記載のストレージ装置である第１のストレージ装置と、当該第１のストレージ装置に通信経路を介して接続された第２のストレージ装置と、を備え、前記通信経路を介して、前記第１のストレージ装置から前記第２のストレージ装置に、前記ジャーナル情報を伝送することによって、両方のストレージ装置に格納されるデータ内容の同期化を図るストレージシステムであって、前記第１のストレージ装置が、前記ジャーナル情報を、前記ジャーナルログ情報の列と、請求項３記載のマップで参照されるブロック番号の情報の列と、前記ジャーナルデータ情報の列として前記第２のストレージ装置に伝送する際に、前記ブロック番号の情報の列に重複するブロック番号を含めないことにより、前記ジャーナルデータ情報列から重複する内容のデータブロックを省くようにしたストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ装置及びストレージシステムに係り、データボリュームに対する差分情報をジャーナルボリュームに格納してなる、ストレージ装置及びストレージシステムに関するものである。
【背景技術】
【０００２】
データベースシステムにおいて、データベースに格納される情報の損失を防止する技術として、一般に、ジャーナリングが用いられている。ジャーナリングは、データベースに対する更新操作の内容をジャーナル情報としてデータベースとは別の領域に記録し、データベースに障害が発生した場合に、予め取得しておいたデータベースのバックアップに、バックアップ取得後のジャーナル情報を反映することにより、データベースの復元を可能にする技術である。ジャーナル情報は、換言すれば、差分情報である。
【０００３】
データストレージシステムにおいて、バックアップおよびリストア処理を高速に行う技術として、差分バックアップが用いられている。差分バックアップは、最初に全体のデータをバックアップした後に、差分情報をバックアップするものである。データベースに障害が発生した場合に、バックアップした全体のデータに対して差分情報を反映することにより、高速なリストアを可能にする。差分バックアップは、データストレージシステムに対するジャーナリングを応用したものである。
【０００４】
例えば、特許文献１は、データストレージシステムにジャーナリングを適用することにより、ストレージ装置に格納されるデータの損失を防止する技術を開示している。
【０００５】
また、特許文献２には、データストレージシステムに対する災害等による障害の発生に備えて、ストレージ装置に格納されるデータを遠隔地に設置される別のストレージ装置にリストアする場合に、差分情報を用いることにより、ストレージ装置の負担を軽減する技術が開示されている。
【０００６】
さらに、特許文献３には、データストレージシステムに、過去の差分情報による操作を打ち消す新たな差分情報が追加される場合に、過去の差分情報を削除することにより、ジャーナル情報を削減して短時間でリストア処理を可能にする技術が開示されている。
【特許文献１】特開２００５−１８７３８号広報
【特許文献２】特開２００５−２２２１１０号公報
【特許文献３】特開２００２−１３２５６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
既述の従来の技術のように、差分情報を削減するためには、新たな差分情報が過去の差分情報を打ち消す必要があった。従って、データの書き込み操作をジャーナル情報として記録するストレージ装置において、ジャーナル情報を削減するためには、新たに書き込むデータが過去に書き込んだデータを上書きする必要があり、データを完全には上書きしない場合、即ち、上書きしないデータが一部でも存在する場合は、ジャーナル情報を削減することができなかった。しかしながら、差分情報を削減する処理により、過去の差分情報は削除されるため、差分情報の反映を選択的に行うことにより、差分情報が記録されている過去の任意の時点でのデータの状態を復元しようとする場合に、従来の技術は、削除された過去の差分情報から新たな任意の時点の差分情報までの間のデータイメージを復元することはできなかった。従って、ソフトウェア障害からの回復等のために管理者の指示等に沿ってジャーナル情報を過去のものから逐次記憶デバイスに記憶されたデータに反映していく、段階的回復を目的とした場合、従来の技術は、削除されたジャーナル情報からそれを上書きするジャーナル情報までの間の記憶データの状態を段階的に回復することはできなかった。
【０００８】
このような課題を解決するために、本発明は、差分データ情報を削減しつつ、ジャーナルログ情報の記録を開始した後の任意時点での記憶データの状態を回復可能なストレージ装置を提供することを目的とするものである。さらに、本発明は、複数のストレージ装置を備えたリモートコピーシステムにおいて、ストレージ装置間で伝送されるジャーナル情報から重複するデータブロックを取り除くことにより、リモートコピーの際伝送される情報量を削減することを目的とするものである。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明は、ジャーナル情報を、ジャーナルログ情報とジャーナルデータ情報に分けて、これらを区別して管理することを特徴とするものである。即ち、本発明の第１は、記憶デバイスと、前記記憶デバイスに対する計算機装置からのデータ書き込み要求を制御する制御部と、を備えたストレージ装置において、前記記憶デバイスは、主データ記憶領域と、前記主データ記憶領域に対する差分情報をジャーナル情報として記憶するジャーナル記憶領域とを備え、前記ジャーナル記憶領域は、前記ジャーナル情報のジャーナルログ情報の記憶領域と、前記ジャーナル情報のジャーナルデータ情報の記憶領域と、を含んで構成されることを特徴とする。
【００１０】
本発明の第２は、記憶デバイスと、前記記憶デバイスに対する計算機装置からのデータ書き込み要求を制御する制御部と、を備えたストレージ装置において、前記制御部は、前記主データ記憶領域に対する前記差分情報であるジャーナル情報を、ジャーナルログ情報と、ジャーナルデータ情報に分けて管理し、複数の前記ジャーナルログ間で同一の前記ジャーナルデータ情報を共有する、ことを特徴とする。
【００１１】
さらに、本発明の第３は、上位装置に接続されるストージ装置であって、データボリュームと、コントロールユニットと、前記データボリュームに対するログを記憶する領域と、前記データボリュームに対する差分データを記憶する領域と前記差分データを記憶する領域のブロック番号と前記ログ情報との対応関係を規定したブロックリストと、を備えるジャーナルボリュームとを備え、
前記コントロールユニットは、前記上位装置から書き込み要求があった場合、前記書き込み要求を前記ジャーナルボリュームに書き込み、前記書き込んだ書き込み要求のログが複数となったとき、前記ログのうち最も古いログに対応する差分データに基づき、該最も古い差分データと内容が一致する部分が存在する新しい差分データの有無を検討し、重複しているブロック番号の対応関係を、前記最も古いログに対応するブロック番号に変更するとともに、重複したブロック番号に対応する前記差分データを記憶する領域のブロックを解放するようにした、ことを特徴とするものである。
【００１２】
さらに、本発明の第４は、前記ストレージ装置である第１のストレージ装置と、当該第１のストレージ装置に通信経路を介して接続された第２のストレージ装置と、を備え、前記通信経路を介して、前記第１のストレージ装置から前記第２のストレージ装置に、前記ジャーナル情報を伝送することによって、両方のストレージ装置に格納されるデータ内容の同期化を図るストレージシステムであって、前記第１のストレージ装置が、前記ジャーナル情報を、前記ジャーナルログ情報の列と、請求項記載のマップで参照されるブロック番号の情報の列と、前記ジャーナルデータ情報の列として前記第２のストレージ装置に伝送する際に、前記ブロック番号の情報の列に重複するブロック番号を含めないことにより、前記ジャーナルデータ情報列から重複する内容のデータブロックを省くようにした、ことを特徴とするものである。
【００１３】
本発明によれば、前記主データ記憶領域に対する前記差分情報であるジャーナル情報を、ジャーナルログ情報と、ジャーナルデータ情報に分けて、複数の前記ジャーナルログ間で同一の前記ジャーナルデータ情報を共有することにより、前記ジャーナル情報を圧縮する、ことができる。
【発明の効果】
【００１４】
以上説明したように、本発明によれば、ジャーナル情報を削減しつつ、ジャーナル情報の記録を開始した後の任意時点での記憶データの状態を回復（ステップリカバリ）可能なストレージ装置を提供することができる。さらに、本発明によれば、複数のストレージ装置を備えたリモートコピーシステムにおいて、ストレージ装置間で伝送されるジャーナル情報から重複するデータブロックを取り除くことにより、リモートコピーの際伝送される情報量を削減することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を用いて、本発明の実施の形態について説明する。
実施形態１
図１は、本発明に係わるストレージ装置の第１の実施形態を示した、ストレージ装置の機能ブロック図である。ストレージ装置１０１は、ＳＡＮ（Storage Area Network）等を介して、上位装置(ホスト装置)としての計算機装置１０２に接続され、計算機装置１０２から発行される、データの読み込み、書き込み等の要求を受け付け、これを処理する。ストレージ装置１０１は、制御部１０３、主データ記憶領域（データボリューム）１０４およびジャーナル記憶領域（ジャーナルボリューム）１０５からなる。制御部（コントロールユニット）１０３は、ストレージ装置１０１全体を制御する。制御部１０３は、計算機装置１０２からの記憶デバイスに対する読み込み、書き込み等の要求を処理する。主データ記憶領域１０４およびジャーナル記憶領域１０５は、ハードディスク装置または不揮発性メモリ等から構成される。ジャーナリングが行なわれない場合、計算機装置１０２から書き込まれるデータは、主データ記憶領域１０４に直接格納される。ジャーナリングが行なわれる場合、ジャーナリング開始後、新たなデータは、ジャーナル情報としてジャーナル記憶領域１０５に格納される。この場合、主データ記憶領域１０４にはジャーナリング開始時のスナップショットが、ジャーナル記憶領域１０５にはジャーナリング開始後の主データ記憶領域１０４に対する差分データが、それぞれ格納される。
【００１６】
ジャーナル記憶領域１０５に格納されたジャーナル情報は、管理者の指示等に従って、制御部１０３によって、主データ記憶領域１０４に反映される。ジャーナリング実行中に計算機装置１０２に読み込まれるデータは、制御部１０３により、主データ記憶領域１０４およびジャーナル記憶領域１０５に格納されるデータから構成される。
【００１７】
図２は、本実施例の制御部１０３の構成を示す。制御部１０３は、ＣＰＵ（Central Processing Unit）２０１、Ｉ／Ｏ（Input/Output）インタフェース２０２、ＲＡＭ（Random Access Memory）等の主記憶メモリ２０３およびＲＯＭ（Read Only Memory）等のプログラム記憶領域２０４からなる。制御部１０３は、プログラム記憶領域２０４に格納されたストレージ装置制御プログラム２０５を主記憶メモリ２０３に読み出し、ＣＰＵ２０１上でこのプログラム実行することにより、ストレージ装置１０１全体を制御する。制御部１０３は、計算機装置１０２との通信、主データ記憶領域１０４およびジャーナル記憶領域１０５へのアクセスを、Ｉ／Ｏインタフェース２０２を介して行う。
【００１８】
図３はジャーナル記憶領域１０５の構成を示す。ジャーナル記憶領域１０５は、ジャーナルログ記憶領域３０１、ジャーナルデータ記憶領域３０２、ジャーナルログ管理情報３０３およびジャーナルデータ管理情報３０４から構成されている。ジャーナルログ記憶領域３０１は、後述するジャーナルログ情報を、リングバッファとして、格納する領域である。ジャーナルログ記憶領域３０１は、ジャーナルログ管理情報３０３により管理される。ジャーナルログ管理情報３０３は、ジャーナルログ記憶領域３０１の全体のサイズ、ジャーナルログ記憶領域における使用中の領域の先頭を示すポインタおよび使用中の領域の大きさを示すレングスからなり、ジャーナルログ記憶領域の使用中および未使用の領域を管理するためのものである。ここで、未使用の領域は、使用中の領域の先頭を示すポインタに使用中の領域の大きさを示すレングスを加えた位置から始まり、全体のサイズから使用中の領域の大きさを示すレングスを引いた値の大きさをもつ領域として定義される。
【００１９】
ジャーナルデータ記憶領域３０２は、後述するジャーナルデータ情報をディスクセクタ単位等のブロック単位で格納する領域であり、ジャーナルデータ管理情報３０４によって管理される。ジャーナルデータ管理情報３０４は、ジャーナルデータ領域３０２について、各ブロックに一対一に対応する参照数を格納する配列の情報を備え、制御部１０３は、この管理情報によりジャーナルデータ記憶領域の使用中および未使用のブロックを管理する。参照数は負でない整数であり、使用中のブロックは参照数がゼロでないブロックとして、未使用のブロックは参照数がゼロのブロックとして、それぞれ定義される。
【００２０】
図４は、ジャーナル情報がジャーナル記憶領域１０５に格納される様子を示すブロック図である。ジャーナル情報４０１は、計算機装置１０２からストレージ装置１０１に対する書き込み要求に対応し、例えば、ジャーナル情報を一意に識別するためのＩＤとしてこの要求を前記制御部１０３が受け付けた時刻、データを主データ記憶領域１０４に書き込む位置を示すオフセットとしての主データ記憶領域１０４のセクタ番号、主データ記憶領域に書き込まれるデータの長さを示すレングスとしてデータのセクタ数、および、書き込まれるデータの内容を格納する可変長のデータブロックからなる。
【００２１】
ジャーナル情報４０１に含まれる情報のうち、データブロックは、セクタ単位のブロックに分割され、分割されたデータブロックがジャーナルデータ情報４０２として、ジャーナル記憶領域３０２の未使用の複数のブロックに分けて格納される。このとき、ジャーナルデータ情報４０２は、ジャーナル記憶領域３０２の連続したブロックに格納される必要は必ずしもない。ジャーナルデータ情報４０２がジャーナル記憶領域３０２上の格納されたアドレスはジャーナル記憶領域３０２のブロック番号の配列からなるブロックリスト(マップ情報４０３)として、ジャーナルログ記憶領域３０１に格納される。マップ情報４０３は、ジャーナル情報４０１からデータブロックを除いた情報（ＩＤ、オフセット、レングス）と併せて、可変長のジャーナルログ情報４０４の一部として、ジャーナルログ記憶領域３０１に格納される。
【００２２】
図５は、ジャーナル情報をストレージ装置に追加する手順を示すフローチャートである。ストレージ装置１０１は、計算機装置１０２からの書き込み要求を、制御部１０３において受け付け、ジャーナル情報４０１を生成する（ステップ５０１）。制御部１０３は、生成したジャーナル情報４０１を格納可能な未使用領域が、ジャーナル記憶領域１０５にあるか判定する（ステップ５０２）。具体的には、ジャーナル情報４０１のレングス情報、即ち必要なブロック数を元に、ジャーナルログ情報４０４の大きさを見積もり、ジャーナルログ管理情報３０３を参照して、ジャーナルログ記憶領域３０１に必要な大きさの未使用領域があり、かつ、ジャーナルデータ管理情報３０４を参照して、ジャーナルデータ記憶領域３０２に必要な数の未使用ブロックがあるかどうかを判定する。
【００２３】
ジャーナル情報４０１を格納可能な未使用領域がジャーナル記憶領域１０５に存在しない場合、計算機装置１０２に対して書き込み要求の失敗を示す応答を返し（ステップ５０３）、処理を終了する。ジャーナル情報４０１を格納可能な未使用領域が存在する場合、ジャーナルデータ管理情報３０４を参照し、未使用のブロック即ち参照数がゼロのブロックに対応する、ジャーナルデータ記憶領域３０２のブロックに、ジャーナルデータ情報４０２をブロック単位に分割して格納する（ステップ５０４）。
【００２４】
次に、ジャーナルデータ管理情報３０４を更新し、新たにデータを格納したブロックに対応する参照数について、参照数を１増加すなわちゼロから１にする（ステップ５０５）。次に、新たにデータを格納したブロックのブロック番号とジャーナルデータ記憶領域のアドレスとの配列としてマップ情報４０３を生成する（ステップ５０６）。生成したマップ情報は、ジャーナル情報４０１のデータブロックを除いた情報と併せて、ジャーナルログ情報４０４を構成して、制御部１０３は、ジャーナルログ管理情報３０３を参照し、ジャーナルログ記憶領域３０１の未使用の領域、即ちジャーナルログ管理情報３０３の使用中の領域の先頭を示すポインタに使用中の領域の大きさを示すレングスを加えた値によって示される位置に、新たなジャーナルログ情報を格納する（ステップ５０７）。
【００２５】
次に、制御部１０３は、ジャーナルログ管理情報３０３を更新し、使用中の領域の大きさを示すレングスを、今回のジャーナルログ情報４０４の大きさを加えたものにする（ステップ５０８）。最後に、計算機装置１０２に対して書き込み要求の成功を示す応答を返し（ステップ５０９）、処理を終了する。
【００２６】
図６は、ジャーナル情報４０１を削減する手順を示す。ストレージ装置１０１の制御部１０３は、新たなジャーナル情報４０１を、ジャーナルデータ情報４０２およびジャーナルログ情報４０４としてジャーナル記憶領域１０５に格納した後、マップ情報４０３によって参照される新たに追加されたジャーナルデータ情報４０２の各ブロックについて、古いジャーナルログ情報のマップ情報によって参照される古いジャーナルデータ情報の各ブロックと、内容が一致するかを判定する（６０１）。ここで、ブロック内容が同一かどうかの判定には、両ブロックに格納されるビット列が完全に一致するかを判定すればよいが、例えば、誤り訂正のためにブロック毎にＣＲＣ（Cyclic Redundancy Check）情報等を付加している場合は、最初にそれらを比較することにより、一致しない場合のビット列の比較を省略する。
【００２７】
制御部１０３は、内容が一致するブロックが存在しない場合、マップ情報４０３によって参照される次の新しいブロックについて、既述の比較の処理を繰り返す。内容が一致するブロックが存在する場合、マップ情報４０３を更新し、古いジャーナルデータ情報のブロックを参照するようにブロック番号を差し替える（ステップ６０２）。次に、ジャーナルデータ管理情報３０４を更新し、マップ情報４０３の変更前に参照されていたブロックの参照数を１減少し、変更後に参照されるブロックの参照数を１増加する（ステップ６０３）。ここで、参照数がゼロとなったブロックを空き領域とすることができることになり、ジャーナル情報４０１がジャーナル記憶領域１０５に占める領域を、空き領域となったブロック分だけ削減できる。
【００２８】
ブロックリスト（マップ情報）の更新を、制御部１０３は、指定された時刻に実行するか、計算機装置からトランザクションが制御部に送られてこない時に実行するか、ジャーナル情報がある任意の数分溜まった場合に実行するか、など特に制限されない。
【００２９】
以上の手順を、マップ情報４０３によって参照される新しいブロックについて繰り返し（ステップ６０４）、全ての新しいブロックの比較が完了した場合、処理を終了する。
【００３０】
図７は、ジャーナル情報を主データ記憶領域１０４に反映する手順を示す。ジャーナル情報の反映は、管理者の指示等に従って行う。例えば、管理者は、時刻を指定することにより、その時刻までのジャーナル情報の反映を指示する。ストレージ装置１０１の制御部１０３は、管理者からの指示を受け、ジャーナル記憶領域１０５に格納される最も古いジャーナル情報４０１から指定された時刻までのジャーナル情報によって主データ記憶領域１０４を更新する。最も古いジャーナル情報４０１は、ジャーナルログ管理情報３０３の使用中の領域の先頭を示すポインタによって指されるジャーナルログ記憶領域３０１に格納される最も古いジャーナルログ情報４０４、および、そのマップ情報４０３によって参照されるジャーナルデータ記憶領域３０２に格納されるジャーナルデータ情報４０２によって表される。
【００３１】
ジャーナル情報４０１を主データ記憶領域１０４に反映することは、制御部１０３が、ジャーナルログ情報４０４によって示される主データ記憶領域１０４の位置に、マップ情報４０３によって参照される、ジャーナルデータ情報４０２の内容を書き込むことによって行なわれる（ステップ７０１）。次いで、制御部１０３は、ジャーナルデータ管理情報３０４を更新、すなわち、マップ情報４０３によって参照されていた各ブロックの参照数を１減少する（ステップ７０２）。ここで、参照数がゼロになったブロックは未使用となり解放されるが、参照数がゼロでないブロック即ち他のジャーナルログ情報のマップ情報により参照されているブロックは、引き続き使用中のブロックとして非開放となる。
【００３２】
次に、ジャーナルログ管理情報３０２を更新、すなわち、ジャーナルログ記憶領域３０１における、使用中の領域の先頭を示すポインタを、ジャーナルログ情報４０４の大きさを加えたものとし、使用中の領域の大きさを示すレングスを、ジャーナルログ情報４０４の大きさを減じたものとする（ステップ７０３）。これにより、ジャーナルログ情報４０４がジャーナルログ記憶領域３０１に占めていた領域は未使用となり解放される。以上の手順を、より新しいジャーナル情報について繰り返し（ステップ７０４）、指定された時刻よりも古いジャーナル情報がなくなった場合、処理を終了する。
【００３３】
図８は、ジャーナリングされている操作の取り消し、即ち、ジャーナル情報を破棄する手順を示す。ジャーナリングされている操作の取り消しは、ジャーナル情報の反映と同様に、管理者の指示等に従って行い、指定された時刻以降のジャーナル情報を破棄するものである。ストレージ装置１０１の制御部１０３は、管理者からの指示を受け、ジャーナルログ管理情報３０３を参照し、古いものから順にジャーナルログ情報をたどっていくことにより、指定された時刻以降のＩＤをもつジャーナルログ情報４０４を特定する（ステップ８００）。破棄対象となるジャーナル情報４０１は、ジャーナルログ情報４０４、および、そのマップ情報４０３によって参照されるジャーナルデータ情報４０２によって定義される。ジャーナル情報４０１の破棄は、制御部１０３によって、まず、ジャーナルデータ管理情報３０４を更新し、マップ情報４０３によって参照される各ブロックの参照数を１減少することによって行なわれる（ステップ８０１）。
【００３４】
次に、ジャーナルログ管理情報３０２を更新し、使用中の領域の大きさを示すレングスを、ジャーナルログ情報４０４の大きさを減じたものとする（ステップ８０２）。以上の手順を、より新しいジャーナル情報について繰り返し（ステップ８０３）、指定された時刻よりも新しいジャーナル情報がなくなった場合、処理を終了する。
【００３５】
以上に説明したように、ストレージ装置は、ジャーナル情報に含まれるデータブロックをセクタ単位のブロックに分割し、ブロック単位で内容を比較することによって、ジャーナル情報単位でデータを完全に上書きする場合に限らず、データを部分的に上書きする場合でも、ジャーナル情報を削減することができる。また、ジャーナル情報の削減の際に削減される情報は冗長なデータブロックであり、ジャーナル情報に含まれる情報は完全に再現可能な状態で残るため、ジャーナル情報を削減した場合においても、ジャーナル情報の記録を開始した後の任意時点の状態を段階的に回復することができる。
【００３６】
実施形態２
図９は、本発明の第２の実施形態であるストレージ装置を示す。第１の実施例と同様の構成には同一の符合を付しその説明を省略する。第１のストレージ装置９０１と、第２のストレージ装置９０２は、インターネット等のネットワーク９０３を介して接続されている。第２のストレージ装置９０２は、第１のストレージ装置９０２と同一の内容を保持するバックアップシステムとして利用されている。初期状態として、例えば磁気テープによるバックアップとリストア等の手法を用いて、第１のストレージ装置９０１と第２のストレージ装置９０２の格納するデータ内容を同期化する。以後、第１のストレージ装置９０１と第２のストレージ装置９０２のデータ内容を同期化させるためには、第１のストレージ装置９０１に対する書き込み操作の内容を、ネットワーク９０３を介して第２のストレージ装置９０２に伝送し、第２のストレージ装置において書き込みを実行すればよい。そこで、ネットワーク９０３を介し伝送される書込み操作の内容として、同期が完了している主データ記憶領域１０４に対する差分情報、即ち、ジャーナル記憶領域１０５に格納されるジャーナル情報４０１が用いられる。
【００３７】
図１０は、ネットワークを介して伝送されるジャーナル情報のデータ構成を表現したものである。ジャーナル記憶領域１０５に格納されるジャーナル情報は、定期的にまたは管理者の指示等によって、ひとつまたは複数のジャーナル情報をまとめて、ネットワーク９０３を介して、ジャーナルログ情報列１００１、ブロック番号情報列１００２、ジャーナルデータ情報列１００３として伝送される。ジャーナルログ情報列１００１は、ジャーナルログ記憶領域３０１に格納されている、伝送するひとつまたは複数のジャーナルログ情報に、そのサイズを付加したものである。
【００３８】
ブロック番号情報列１００２は、伝送するジャーナルログ情報のマップ情報によって参照されるジャーナルデータ情報４０２が格納されるジャーナルデータ記憶領域３０２のブロック番号の列に、その数即ち伝送するブロック数を付加したものである。ジャーナルデータ情報列１００３は、ブロック番号情報列１００２によって示される、ジャーナルデータ記憶領域３０２のブロックの内容を、ブロック番号情報列１００２の順に並べたものであり、その数はブロック番号情報列１００２のブロック数に一致する。
【００３９】
ここで、伝送する複数のジャーナルログ情報のマップ情報によって参照されるジャーナルデータ情報は一度だけ伝送すればよく、ブロック番号情報列１００２を生成する際に重複するブロック番号を含めないことにより、データ内容の重複するブロックを余分に送信することを防ぐ。従って、ブロック番号情報列１００２のブロック数は、ジャーナルログ情報列１００１に含まれるジャーナルログ情報のマップ情報の大きさを合計したものよりも、重複するブロックの数だけ少なくなる。なお、ストレージ装置間でジャーナル記憶領域の構成が異なる等の場合は、受信側において、ジャーナルログ情報列１００１のマップ情報およびブロック番号情報列１００２に含まれるブロック番号を、ジャーナルデータ記憶領域内の絶対的な位置を示すものではなく、個々のブロックを区別するためのタグとして扱えばよい。
【００４０】
以上に説明したように、本実施形態における装置は、ネットワークに伝送するジャーナル情報から重複する余分なデータブロックを取り除くことにより、リモートコピーを行う場合にネットワークに伝送する情報量を削減することができる。
【００４１】
以上説明した実施形態はそれぞれ一例であって、本発明が既述の実施形態に限定されるものではない。
【図面の簡単な説明】
【００４２】
【図１】本発明の第１の実施形態に係るストレージ装置の構成を示すブロック図である。
【図２】ストレージ装置の制御部の構成を示すブロック図である。
【図３】ストレージ装置のジャーナル記憶領域の構成を示すブロック図である。
【図４】ジャーナル情報がジャーナル記憶領域に格納される様子を示すブロック図である。
【図５】ストレージ装置にジャーナル情報を追加する手順を示すフローチャートである。
【図６】ストレージ装置に対して、ジャーナル情報を削減する手順を示すフローチャートである。
【図７】ストレージ装置にジャーナル情報を反映する手順を示すフローチャートである。
【図８】ストレージ装置において、ジャーナル情報を破棄する手順を示すフローチャートである。
【図９】ジャーナル情報を削減可能にしたリモートコピーシステムのブロック図である。
【図１０】ネットワークを介して、ストレージ装置間で伝送されるジャーナル情報のデータイメージである。
【符号の説明】
【００４３】
１０１  ストレージ装置
１０２  計算機装置
１０３  制御部
１０４  主データ記憶領域
１０５  ジャーナル記憶領域
２０１  ＣＰＵ
２０２  Ｉ／Ｏインタフェース
２０３  主記憶メモリ
２０４  プログラム記憶領域
２０５  ストレージ装置制御プログラム
３０１  ジャーナルログ記憶領域
３０２  ジャーナルデータ記憶領域
３０３  ジャーナルログ管理情報
３０４  ジャーナルデータ管理情報
４０１  ジャーナル情報
４０２  ジャーナルデータ情報
４０３  マップ情報
４０４  ジャーナルログ情報
９０１  第１のストレージ装置
９０２  第２のストレージ装置
９０３  ネットワーク
１００１  ジャーナルログ情報列
１００２  ブロック番号情報列
１００３  ジャーナルデータ情報列
【図１】
2007200182.tif 000003
【図２】
2007200182.tif 000004
【図３】
2007200182.tif 000005
【図４】
2007200182.tif 000006
【図５】
2007200182.tif 000007
【図６】
2007200182.tif 000008
【図７】
2007200182.tif 000009
【図８】
2007200182.tif 000010
【図９】
2007200182.tif 000011
【図１０】
2007200182.tif 000012