(57)【要約】【課題】本発明は、操作性を格段的に向上させ得るストレージシステムを提案する。【解決手段】データの送受信を行うホスト計算機と、それぞれホスト計算機から送信されるデータを格納するためのボリュームが設けられた複数のストレージ装置とを有するストレージシステムにおいて、複数のストレージ装置の各ボリュームをリカバリする際の目印でなるチェックポイントを設定するチェックポイント設定部と、チェックポイント設定部により設定されたチェックポイントを管理するチェックポイント管理部と、チェックポイント管理部により管理された各ボリュームについてのチェックポイントの状態までのボリュームのリカバリを、複数のストレージ装置に指示するリカバリ指示部とを備えるようにした。【選択図】図１
2007219657.tif 000002
【特許請求の範囲】
【請求項１】
データの送受信を行うホスト計算機と、それぞれ前記ホスト計算機から送信される前記データを格納するためのボリュームが設けられた複数のストレージ装置とを有するストレージシステムにおいて、
前記複数のストレージ装置の各前記ボリュームをリカバリする際の目印でなるチェックポイントを設定するチェックポイント設定部と、
前記チェックポイント設定部により設定された前記チェックポイントを管理するチェックポイント管理部と、
前記チェックポイント管理部により管理された各前記ボリュームについての前記チェックポイントの状態までの前記ボリュームのリカバリを、前記複数のストレージ装置に指示するリカバリ指示部と
を備えることを特徴とするストレージシステム。
【請求項２】
前記チェックポイント設定部は、
任意のタイミングで前記チェックポイントを設定する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記チェックポイント設定部は、
ユーザの指定に応じたタイミングで前記チェックポイントを設定する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項４】
前記チェックポイント設定部は、
前記ホスト装置が認識する、所定のデータが前記ボリュームに書き込まれた時点を前記チェックポイントとして設定する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項５】
前記チェックポイント設定部は、
コンシステンシグループによりまとめられた前記複数のストレージ装置に対して前記チェックポイントを設定する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項６】
前記チェックポイント設定部は、
前記複数のストレージ装置の前記ボリュームにそれぞれ前記チェックポイントを設定し、
前記チェックポイント管理部は、
前記チェックポイント設定部により設定された各前記チェックポイントをひとまとめにして一括管理し、
前記リカバリ指示部は、
前記チェックポイント管理部により管理された各前記ボリュームについての前記チェックポイントの状態までの前記ボリュームのリカバリを、前記チェックポイントに対応するストレージ装置に指示する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項７】
前記チェックポイント設定部は、
時刻を前記チェックポイントとして設定する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項８】
前記チェックポイント設定部、前記チェックポイント管理部及び前記リカバリ指示部が、前記ホスト装置に設けられた
ことを特徴とする請求項１に記載のストレージシステム。
【請求項９】
前記チェックポイント管理部及び前記リカバリ指示部が、前記複数のストレージ装置のうちの、所定のストレージ装置であるマスタストレージ装置に設けられ、
前記リカバリ指示部は、
前記ホスト計算機からの指示に基づいて、前記チェックポイント管理部により管理された各前記ボリュームについての前記チェックポイントの状態までの前記ボリュームのリカバリを、前記複数のストレージ装置に指示する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項１０】
データの送受信を行うホスト計算機と、それぞれ前記ホスト計算機から送信される前記データを格納するためのボリュームが設けられた複数のストレージ装置とを有するストレージシステムのリカバリ方法において、
前記複数のストレージ装置の各前記ボリュームをリカバリする際の目印でなるチェックポイントを設定する第１のステップと、
前記第１のステップにおいて設定した前記チェックポイントを管理する第２のステップと、
前記第２のステップにおいて管理した各前記ボリュームについての前記チェックポイントの状態までの前記ボリュームのリカバリを、前記複数のストレージ装置に指示する第３のステップと
を備えることを特徴とするストレージシステムのリカバリ方法。
【請求項１１】
前記第１のステップでは、
任意のタイミングで前記チェックポイントを設定する
ことを特徴とする請求項１０に記載のストレージシステムのリカバリ方法。
【請求項１２】
前記第１のステップでは、
ユーザの指定に応じたタイミングで前記チェックポイントを設定する
ことを特徴とする請求項１０に記載のストレージシステムのリカバリ方法。
【請求項１３】
前記第１のステップでは、
前記ホスト装置が認識する、所定のデータが前記ボリュームに書き込まれた時点を前記チェックポイントとして設定する
ことを特徴とする請求項１０に記載のストレージシステムのリカバリ方法。
【請求項１４】
前記第１のステップでは、
コンシステンシグループによりまとめられた前記複数のストレージ装置に対して前記チェックポイントを設定する
ことを特徴とする請求項１０に記載のストレージシステムのリカバリ方法。
【請求項１５】
前記第１のステップでは、
前記複数のストレージ装置の前記ボリュームにそれぞれ前記チェックポイントを設定し、
前記第２のステップでは、
前記第１のステップにおいて設定した各前記チェックポイントをひとまとめにして一括管理し、
前記第３のステップでは、
前記第２のステップにおいて管理した各前記ボリュームについての前記チェックポイントの状態までの前記ボリュームのリカバリを、前記チェックポイントに対応するストレージ装置に指示する
ことを特徴とする請求項１０に記載のストレージシステムのリカバリ方法。
【請求項１６】
前記第１のステップでは、
時刻を前記チェックポイントとして設定する
ことを特徴とする請求項１０に記載のストレージシステムのリカバリ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びそのリカバリ方法に関する。特に、複数のストレージ装置を含むストレージシステムでのデータバックアップ及びリカバリ方法に関する。
【背景技術】
【０００２】
ストレージシステムにおけるデータのバックアップ（保存）及びリカバリ（復元）方法として、アプリケーションがデータを保存するために使用する一群のデータボリュームのスナップショットと、それらデータボリュームに対する書き込みデータのジャーナルを使用する方法が知られており、一般にＣＤＰ（Continuous Data Protection）などと呼ばれている。
【０００３】
例えば、特許文献１には、スナップショットとジャーナルを使用した典型的な方法が開示されている。この特許文献１では、ストレージ装置がデータボリュームに対するホスト計算機のデータ書き込み毎にジャーナルを作成して蓄積し、また、適当な間隔でデータボリュームに対するスナップショットを取得し、リカバリ時には、管理者が指定した特定の時点においてデータボリュームが保持していたデータ（リカバリデータボリュームイメージ、あるいは、単にリカバリイメージ）を、取得されたジャーナルとスナップショットを使用して再現する。
【０００４】
また、そのようなリカバリイメージを再現する単位として、ジャーナルグループに関する技術が開示されている。これは、アプリケーションが使用するストレージ装置の複数のデータボリュームをひとまとめにして管理し、それら複数のデータボリュームのリカバリを一括して行うための、管理単位である。
【０００５】
一般に、アプリケーションは、いくつかのデータボリュームを使用してデータを保存する。そのため、個々のデータボリュームごとに異なる時点のリカバリイメージを再現するのではなく、アプリケーションが使用する一群のデータボリュームに対して、同じ時点のリカバリイメージを再現することが必要となる。
【０００６】
開示されたジャーナルグループ技術では、１つのストレージ装置に含まれる複数のデータボリュームをひとまとめにして、それら複数のデータボリュームに対する特定の時点のリカバリイメージを再現するようになされている。
【０００７】
また、特許文献１では、リカバリイメージの特定時点の指定方法として、「目標時刻」を使用する方法が開示されている。これは、リカバリ時に、管理者が特定時点として過去の特定の時刻を指定するリカバリ方法である。
【０００８】
このリカバリ方法では、アプリケーションが認識する、特定のデータをデータボリューム群に書き込んだ時点（以下、これをチェックポイント（ＣＰ（Check Point））と呼ぶ）を指定することにより、データボリューム群が保持していたデータが、リカバリイメージに再現される。また、このリカバリ方法では、時刻を指定することにより、データボリューム群が保持していたデータが、リカバリイメージに再現される。
【０００９】
これは、通常運用時には、アプリケーションや、アプリケーションのＣＰを認識可能なその他のプログラムやユーザが、一般にはストレージ装置を制御するプログラムなどを通じて、ストレージ装置にＣＰを通知する。また、ストレージ装置は、蓄積しているジャーナルの特殊なエントリとしてＣＰを記憶する。そして、リカバリ時には、管理者は、ＣＰを指定する方法である。この方法では、指定されたＣＰが通知された時点でデータボリューム群が保持していたデータが、リカバリイメージに再現される。
【特許文献１】特開２００５−１８７３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述のようなストレージシステムでは、１つのストレージ装置に含まれる複数のデータボリュームに対する特定の時点のリカバリイメージを再現することができるが、アプリケーションが複数のストレージ装置に含まれる複数のデータボリュームを使用する場合、それら複数のストレージ装置にまたがるデータボリューム群に対する特定の時点のリカバリイメージを取得することができないという問題がある。
【００１１】
そこで、複数のストレージ装置にまたがるデータボリューム群に対する特定の時点のリカバリイメージを取得し、一括して管理することができれば、特定の時点のデータボリューム群に対するリカバリイメージを複数のストレージ装置に一括して指示することにより、複数のストレージ装置にまたがるデータボリューム群に対する特定の時点のリカバリイメージを再現することができるため、一段と操作性の高いストレージシステムを提供することができることとなる。
【００１２】
本発明は以上の点を考慮してなされたもので、操作性を格段的に向上させ得るストレージシステム及びそのリカバリ方法を提供するものである。
【課題を解決するための手段】
【００１３】
かかる課題を解決するため本発明においては、データの送受信を行うホスト計算機と、それぞれホスト計算機から送信されるデータを格納するためのボリュームが設けられた複数のストレージ装置とを有するストレージシステムにおいて、複数のストレージ装置の各ボリュームをリカバリする際の目印でなるチェックポイントを設定するチェックポイント設定部と、チェックポイント設定部により設定されたチェックポイントを管理するチェックポイント管理部と、チェックポイント管理部により管理された各ボリュームについてのチェックポイントの状態までのボリュームのリカバリを、複数のストレージ装置に指示するリカバリ指示部とを備えるようにした。
【００１４】
従って、ボリュームのリカバリイメージを再現するときには、１つのストレージ装置だけでなく、複数のストレージ装置にまたがるボリュームのチェックポイントを、複数のストレージ装置に一括して指示することで、複数のストレージ装置にまたがるボリュームのチェックポイントのリカバリイメージを再現することができる。
【００１５】
また、本発明においては、データの送受信を行うホスト計算機と、それぞれホスト計算機から送信されるデータを格納するためのボリュームが設けられた複数のストレージ装置とを有するストレージシステムのリカバリ方法において、複数のストレージ装置の各ボリュームをリカバリする際の目印でなるチェックポイントを設定する第１のステップと、第１のステップにおいて設定したチェックポイントを管理する第２のステップと、第２のステップにおいて管理した各ボリュームについてのチェックポイントの状態までのボリュームのリカバリを、複数のストレージ装置に指示する第３のステップとを備えるようにした。
【００１６】
従って、ボリュームのリカバリイメージを再現するときには、１つのストレージ装置だけでなく、複数のストレージ装置にまたがるボリュームのチェックポイントを、複数のストレージ装置に一括して指示することで、複数のストレージ装置にまたがるボリュームのチェックポイントのリカバリイメージを再現することができる。
【発明の効果】
【００１７】
本発明によれば、複数のストレージ装置の各ボリュームをリカバリする際の目印でなるチェックポイントを設定し、設定したチェックポイントを管理して、管理した各ボリュームについてのチェックポイントの状態までのボリュームのリカバリを、複数のストレージ装置に指示することにより、ボリュームのリカバリイメージを再現するときには、１つのストレージ装置だけでなく、複数のストレージ装置にまたがるボリュームのチェックポイントを、複数のストレージ装置に一括して指示することで、複数のストレージ装置にまたがるボリュームのチェックポイントのリカバリイメージを再現することができ、かくして操作性を格段的に向上させ得るストレージシステム及びそのリカバリ方法を実現できる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施例を、図を用いて詳細に説明する。
【００１９】
（１）第１実施例
図１は、第１実施例におけるストレージシステム１０の全体構成図である。ストレージシステム１０は、１台以上のホスト計算機１００と、複数台のストレージ装置３００とがストレージネットワーク８００により接続されて構成されている。図１では、構成の一例として、１台のホスト計算機１００と３台のストレージ装置３００を例示している。
【００２０】
３台のストレージ装置３００は、それぞれＳＴ１、ＳＴ２、ＳＴ３という識別子を有し、それぞれをストレージ装置３００Ａ、ストレージ装置３００Ｂ、ストレージ装置３００Ｃとする。本実施例では、全てのストレージ装置３００は、同じ構成を有している。
【００２１】
それぞれのストレージ装置３００は、管理装置３１０を有し、それぞれの管理装置３１０は、管理ネットワーク９００に接続されて構成されている。また、ホスト計算機１００も、管理ネットワーク９００に接続されており、ホスト計算機１００から管理装置３１０を制御することができるようになされている。
【００２２】
管理装置３１０は、ストレージ装置３００に対してホスト計算機１００からの指示を与える機能を有しており、ホスト計算機１００は、直接的にストレージ装置３００を制御することができると共に、管理ネットワーク９００を通じて、管理装置３１０を制御することにより、間接的にストレージ装置３００を制御できるようになされている。管理ネットワーク９００は、例えば、ＬＡＮ（Local Area network）等の所定のネットワーク技術を使用して構築することができるようになされている。
【００２３】
なお、本実施例では、ストレージ装置３００Ａ、ストレージ装置３００Ｂ、ストレージ装置３００Ｃがそれぞれ有する管理装置５００を、管理装置５００Ａ、管理装置５００Ｂ、管理装置５００Ｃとする。
【００２４】
ホスト計算機１００は、制御部１１０と、メモリ１２０と、Ｉ／Ｏポート１３０とを有する。制御部１１０は、ＣＰＵ（Central Processing Unit）や内部メモリ等で構成されており、ホスト計算機１００全体を制御する。
【００２５】
メモリ１２０には、アプリケーション１４０と、リカバリマネージャ１５０と、ＣＴＧテーブル１６０と、ＣＰテーブル１７０とが格納されている。このうち、リカバリマネージャ１５０、ＣＴＧテーブル１６０及びＣＰテーブル１７０の詳細は後述する。
【００２６】
Ｉ／Ｏポート１３０は、ストレージネットワーク８００と接続され、ストレージ装置３００と指示やデータ等をやり取りすると共に、管理ネットワーク９００と接続され、管理装置５００と指示等をやり取りする。
【００２７】
なお、ホスト計算機１００は、この他に、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）や、モニタディスプレイやスピーカ等の情報出力装置（図示せず）等を有する。
【００２８】
このホスト計算機１００は、制御部１１０がアプリケーション１４０及びリカバリマネージャ１５０をメモリ１２０から呼び出して実行することによって、後述するＣＰ取得処理や、リカバリイメージ再現処理等の各種の処理を行うようになされている。
【００２９】
図２は、第１実施例におけるストレージ装置３００の構成図である。ストレージ装置３００は、コントローラ３２０と、メモリ３３０と、Ｉ／Ｏポート３４０と、物理ボリューム３５０と、論理ボリューム３６０と、前述の管理装置３１０を有する。
【００３０】
コントローラ３２０は、ＣＰＵや内部メモリ等で構成されており、ストレージ装置３００全体を制御する。メモリ３３０には、コントローラ３２０で実行されるプログラムや、それらプログラムで使用されるデータが格納されており、詳細は後述する。Ｉ／Ｏポート３４０は、ストレージネットワーク８００と接続され、ホスト計算機１００と指示やデータ等をやり取りすると共に、管理装置３１０と接続され、当該管理装置３１０と指示等をやり取りする。
【００３１】
物理ボリューム２４０は、ホスト計算機１００から送られてくるデータを記憶するための物理的なハードウェアであり、ハードディスクドライブなどの不揮発性記憶デバイスが用いられる。
【００３２】
論理ボリューム２５０は、ホスト計算機１００で実行されるアプリケーション１１０がデータの読み書きのために指定する記憶領域の単位である。本発明では、論理ボリューム２５０は、物理ボリューム２４０そのものとして実装される場合もあれば、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）構成として複数の物理ボリューム２４０を用いて実装される場合もある。
【００３３】
管理装置２６０は、マイクロプロセッサ（図示せず）、内部メモリ（図示せず）及び通信インタフェース等を有するパーソナルコンピュータ等のコンピュータシステムとして構成されており、ストレージ装置３００を保守、管理するための装置であると共に、ホスト計算機１００からの指示に基づいて、間接的にストレージ装置３００を制御するための装置である。
【００３４】
図３は、第１実施例におけるストレージ装置３００のジャーナルグループ３７０の構成図である。ストレージ装置３００は、１又は複数の論理ボリューム３５０から構成されるジャーナルグループ（ＪＮＬＧ）３７０を有する。ジャーナルグループ３７０は、データボリューム（データＶＯＬ）３８０と、ジャーナルボリューム（ＪＮＬＶＯＬ）３９０とを有する。また、ストレージ装置３００は、１又は複数の論理ボリューム３５０から構成され、データボリューム３８０に対応するスナップショットボリューム（ＳＳＶＯＬ）４００を有する。
【００３５】
また、メモリ３３０には、ジャーナルグループ３７０を使用してジャーナルとスナップショットを取得するジャーナル作成プログラム（ＪＮＬ作成ＰＧ）４１０と、当該ジャーナル作成プログラム４１０がジャーナルグループ３７０を管理するために使用する管理テーブル４２０が格納されている。
【００３６】
このストレージ装置３００は、コントローラ３２０がプログラムや、それらプログラムで使用されるデータ、ジャーナル作成プログラム４１０をメモリ３３０から呼び出して実行することによって、ジャーナル作成処理等の各種の処理を行うようになされている。
【００３７】
この場合、コントローラ３２０は、アプリケーション１４０がデータボリューム３８０へ発行するライトを、ジャーナルとしてジャーナルボリューム３９０に蓄積し、アプリケーション１４０からの、又はユーザから情報入力装置等を介して取得したＣＰ取得指示を、特殊なジャーナルとしてジャーナルボリューム３９０に蓄積し、適当な間隔でデータボリューム３８０のスナップショットをスナップショットボリューム４００に取得する。
【００３８】
これにより、コントローラ３２０は、ジャーナルとスナップショットとを利用して、指示されたＣＰに対応するリカバリイメージを再現することができるようになされている。また、本実施例では、このような処理をリカバリという。
【００３９】
なお、ＣＰとは、リカバリマネージャ１５０が認識する、特定のデータをデータボリューム群に書き込んだ時点でなるチェックポイントを示している。このチェックポイントについては、リカバリイメージを再現する際の目印である。
【００４０】
本実施例では、アプリケーション１４０は、複数のストレージ装置３００に含まれるデータボリューム３８０を使用する。各ストレージ装置３００のコントローラ３２０は、それぞれのストレージ装置３００内のデータボリューム３８０を、ジャーナルグループ３７０によりひとまとめにすることにより、同じ時点のリカバリイメージを再現できる。
【００４１】
かかる構成に加えて、本実施例で開示するストレージシステム１０では、リカバリマネージャ１５０により、複数のストレージ装置３００に含まれるデータボリューム３８０をひとまとめにして、リカバリイメージを再現するようになされている。
【００４２】
具体的に、ストレージシステム１０では、複数のストレージ装置３００に含まれるデータボリューム３８０をひとまとめにして管理するために、それぞれのストレージ装置３００に含まれるデータボリューム３８０をジャーナルグループ３７０によってひとまとめに管理し、それら複数のストレージ装置３００に含まれるジャーナルグループ３７０をリカバリマネージャ１５０がひとまとめにして管理する。
【００４３】
このような、複数のジャーナルグループ３７０のまとまりを、コンシステンシグループ（以下、ＣＴＧ（Consistency Group）と呼ぶ）と呼ぶ。リカバリマネージャ１５０は、ＣＴＧに対してＣＰ取得やリカバリイメージ再現を指示する。なお、ＣＴＧを構成する物理ボリューム３５０については、ストレージ装置３００に外部接続されていても良い。ＣＴＧを対象としたＣＰ取得やリカバリイメージ再現については後述する。
【００４４】
図４は、第１実施例におけるＣＴＧグループ１６０の構成図である。ＣＴＧテーブル１６０は、ＣＴＧに含まれるジャーナルグループ３７０を管理するためのテーブルである。
【００４５】
ＣＴＧテーブル１６０は、ＣＴＧを特定するための識別子を含むＣＴＧＩＤ１６１と、当該ＣＴＧに含まれるジャーナルグループ３７０を示すＪＮＬＧ−ＩＤ１６２（１６２Ａ〜１６２Ｄ）と当該ＣＴＧに対して取得されたＣＰを管理するためのＣＰテーブル１７０へのポインタ情報１６３とからなる。ホスト計算機１００は、ＣＴＧテーブル１６０により、ＣＴＧを特定するＣＴＧＩＤから、当該ＣＴＧに含まれるジャーナルグループ３７０と、当該ＣＴＧに対して取得されたＣＰを管理するためのＣＰテーブル１７０を求めることが可能となる。
【００４６】
図４では、図１に示すような３台のストレージ装置３００があるストレージシステムシステムの構成におけるＣＴＧテーブル１６０を例示している。すなわち、ＣＴＧ１という識別子で特定されるＣＴＧは、ＳＴ１という識別子で特定されるストレージ装置３００に含まれるＪＧ１という識別子で特定されるジャーナルグループ３７０と、ＳＴ２という識別子で特定されるストレージ装置３００に含まれるＪＧ５という識別子で特定されるジャーナルグループ３７０と、ＳＴ３という識別子で特定されるストレージ装置３００に含まれるＪＧ２という識別子で特定されるジャーナルグループ３７０とを含むことを示している。
【００４７】
なお、ＣＴＧ１という識別子で特定されるＣＴＧは３つのジャーナルグループ３７０を含んでいるので、ＪＮＬＧ−ＩＤ１６２Ｄには対応するジャーナルグループ３７０がないことを示す無効値（ＮＵＬＬ）が入る。さらに、ＣＴＧ１という識別子で特定されるＣＴＧに対して取得したＣＰを管理するためのＣＰテーブル１７０は、ポインタ情報１６３から求めることができる。
【００４８】
図５は、第１実施例におけるリカバリマネージャ１２０のＣＴＧ管理画面７００である。本実施例では、ＣＴＧは複数のストレージ装置３００に含まれる複数のジャーナルグループ３７０の集まりとして構成される。リカバリマネージャ１５０は、ＣＴＧテーブル１６０によりＣＴＧを構成するジャーナルグループ３７０を特定するが、そのためには、ＣＴＧを構成するジャーナルグループ３７０を、あらかじめユーザが情報入力装置等を介して指定しなければならない。
【００４９】
図５に示すＣＴＧ管理画面７００は、ユーザが情報入力装置等を介してＣＴＧの構成を指定するときに、リカバリマネージャ１５０が表示する画面の一例である。リカバリマネージャ１５０は、ユーザから情報入力装置等を介してＣＴＧ構成指定の指示を受けると、ＣＴＧ管理画面７００を表示する。情報入力装置等を介してユーザはＣＴＧ管理画面７００に含まれるフィールドやボタンなどにより、ＣＴＧの構成情報を設定し、実行ボタン７０１の押下によりリカバリマネージャ１５０に伝える。リカバリマネージャ１５０は、ユーザから情報入力装置等を介して受け取ったＣＴＧの構成情報を、ＣＴＧテーブル１６０に反映する。
【００５０】
ＣＴＧ管理画面７００は、実行ボタン７０１と、ＣＴＧＩＤを指定するフィールド７０２と、ＣＴＧ構成指示の種別を表すフィールド７０３と、ＣＴＧに追加するジャーナルグループを指定するフィールド７０４と、ＣＴＧに登録済みのジャーナルグループを表示するフィールド７０５とを有する。
【００５１】
実行ボタン７０１は、ＣＴＧ管理画面７００に設定したＣＴＧの構成情報を確定し、リカバリマネージャ１５０に伝えるためのボタンである。ＣＴＧＩＤを指定するフィールド８０２は、ＣＴＧ管理画面７００により構成を指示するＣＴＧを特定するために、ＣＴＧＩＤを設定するフィールドである。
【００５２】
リカバリマネージャ１５０は、フィールド８０２に設定されたＣＴＧＩＤにより、ＣＴＧテーブル１６０の行を特定し、特定されたＣＴＧテーブル１６０の行の各フィールドに、ＣＴＧ管理画面７００が含む各フィールドにユーザが設定した値を格納する。
【００５３】
ＣＴＧ構成指示の種別を表すフィールド７０３は、ＣＴＧ構成指示が追加か削除かを表すフィールドである。ユーザによるＣＴＧの構成指示には２種類の指示があり、１つはＣＴＧへのジャーナルグループ３７０の追加であり、もう１つはＣＴＧからのジャーナルグループ３７０の削除である。
【００５４】
リカバリマネージャ１５０は、ＣＴＧ構成指示の種別を表すフィールド７０３で「追加」指示が選択された場合、ＣＴＧに追加するジャーナルグループを指定するフィールド７０４に設定されたジャーナルグループ３７０を識別する情報、具体的には、ストレージ装置３００の識別子とジャーナルグループ３７０の識別子の組を、ＣＴＧＩＤを指定するフィールド７０２に指定されたＣＴＧＩＤで特定されるＣＴＧテーブル１６０の行のＪＮＬＧ−ＩＤ１６２に設定する。
【００５５】
これにより、リカバリマネージャ１５０は、当該ＣＴＧＩＤで特定されるＣＴＧに、フィールド７０４で指定されたジャーナルグループ３７０が追加されたことを記憶する。なお、リカバリマネージャ１５０は、ＣＴＧに最初のジャーナルグループ３７０を追加するときには、上記のジャーナルグループ３７０のＣＴＧへの追加に加えて、新規ＣＰテーブル１６０の作成と、ＣＴＧテーブル１６０のポインタ情報１６３の設定を行う。
【００５６】
リカバリマネージャ１５０は、ＣＴＧ構成指示の種別を表すフィールド７０３で「削除」指示が選択された場合、ＣＴＧに登録済みのジャーナルグループを表示するフィールド７０５に表示されているジャーナルグループ３７０のリストから、選択された行に表示されているジャーナルグループ３７０を識別する情報、具体的には、ストレージ装置３００の識別子とジャーナルグループ３７０の識別子の組を、ＣＴＧＩＤを指定するフィールド７０２に指定されたＣＴＧＩＤで特定されるＣＴＧテーブル１６０の行のＪＮＬＧ−ＩＤ１６２から削除する。
【００５７】
これにより、リカバリマネージャ１５０は、当該ＣＴＧＩＤで特定されるＣＴＧから、フィールド７０５で指定されたジャーナルグループ３７０が削除されたことを記憶する。
【００５８】
図６は、第１実施例におけるＣＰテーブル１７０の構成図である。ＣＰテーブル１７０は、それぞれのストレージ装置３００が含むジャーナルグループ３７０に対応するＣＰ−ＪＩＤ１７２（１７２Ａ〜１７２Ｃ）と、当該ＣＰ−ＪＩＤ１７２をひとまとめにして一括に管理する一括チェックポイントを表すＣＰ−ＣＩＤ１７１とからなる。図６では、図１に示すような３台のストレージ装置３００があるシステム構成におけるＣＰテーブル１７０を例示している。
【００５９】
ＣＰ−ＣＩＤ１７１とＣＰ−ＪＩＤ１７２が含む値やその設定方法について詳細は後述するが、本実施例では、１つのＣＰ−ＣＩＤ１７１に対応して、３台のストレージ装置３００に含まれるジャーナルグループ３７０ごとに、ＣＰ−ＪＩＤ１７２が存在することに注意されたい。例えば、本実施例では、図６のＣＰ−ＪＩＤ１７２Ａについては、ＳＴ１であるストレージ装置３００ＡにおけるＪＧ１のジャーナルグループ３７０に対応している。
【００６０】
本実施例では、このような、１つのＣＰ−ＣＩＤ１７１と複数のストレージ装置３００に含まれるジャーナルグループ３７０に対応するＣＰ−ＪＩＤ１７２の組とを、ＣＰテーブル１７０のエントリと呼ぶ。さらには、ＣＰテーブル１７０は、十分な数の空きエントリを含む。
【００６１】
図７は、第１実施例におけるリカバリマネージャ１５０の、ＣＰ取得処理手順を示すフローチャートである。本実施例では、アプリケーション１４０は、ＣＰの取得をリカバリマネージャ１５０に指示する。すなわち、ＣＰ取得処理は、リカバリマネージャ１５０が、ＣＰ取得指示を受けたときに制御部１１０により起動される処理である。
【００６２】
なお、アプリケーション１４０は、ユーザからの指定に応じたタイミング、又は任意のタイミングで、ＣＰの取得をリカバリマネージャ１５０に指示するようになされている。
【００６３】
リカバリマネージャ１５０は、ステップＳ１０００で、アプリケーション１４０からのＣＰ取得指示を受領する。続いて、リカバリマネージャ１５０は、ステップＳ１０１０で、ＣＰテーブル１７０の新規エントリを取得する。次に、リカバリマネージャ１５０は、ステップＳ１０２０で、前のステップＳで取得したエントリのＣＰ−ＣＩＤ１７１に一意の識別子を記録する。
【００６４】
続いて、リカバリマネージャ１５０は、全てのストレージ装置３００にライト保留指示を出し（ステップＳ１０３０）、全てのストレージ装置３００からライト保留指示完了通知が返るのを待ち受ける（ステップＳ１０４０）。続いて、リカバリマネージャ１５０は、ステップＳ１０５０で、全てのストレージ装置３００に対して、ジャーナルグループ３７０にＣＰ取得を指示する。
【００６５】
このとき、ＣＰ取得指示を受けたそれぞれのストレージ装置３００は、それぞれのストレージ装置３００が含むジャーナルグループ３７０にＣＰを記憶し、取得したＣＰを特定する識別子を、ＣＰ取得完了通知とともにリカバリマネージャ１５０に返す。
【００６６】
続いて、リカバリマネージャ１５０は、ステップＳ１０６０で、それぞれのストレージ装置３００からＣＰ取得完了通知を受けると、全てのストレージ装置３００にライト保留解除を指示し（ステップＳ１０６０）、ＣＰ取得完了通知に含まれるそれぞれのジャーナルグループ３７０が取得したＣＰを示す識別子を、ステップＳ１０１０で取得したエントリの、ジャーナルグループ３７０に対応するＣＰ−ＪＩＤ１７２に記録する（ステップＳ１０８０）。
【００６７】
最後に、リカバリマネージャ１５０は、ステップＳ１０９０で、アプリケーション１４０にＣＰ取得完了通知とともに、複数のストレージ装置３００の含むジャーナルグループ３７０が取得したＣＰをひとまとめにしたＣＰを示す識別子として、ＣＰ−ＣＩＤ１７１に記憶した識別子を返す。
【００６８】
ストレージシステム１０では、このようなＣＰ取得処理により、複数のストレージ装置３００に含まれるジャーナルグループ３７０ごとに記憶されたＣＰを、ＣＰ−ＣＩＤ１７１に記憶された単一の識別子により一括して指定することができる。
【００６９】
図８は、第１実施例におけるリカバリマネージャ１５０の、リカバリイメージ再現処理手順を示すフローチャートである。本実施例では、アプリケーション１４０が、リカバリイメージの再現を、ＣＰ−ＣＩＤ１７１に記録された識別子を指定してリカバリマネージャ１５０に指示することにより実行する。リカバリイメージ再現処理は、リカバリマネージャ１５０が、リカバリイメージの再現を指示されたときに制御部１１０により起動される処理である。
【００７０】
リカバリマネージャ１５０は、ステップＳ１１００で、リカバリイメージ再現指示を、識別子とともに受領する。続いて、リカバリマネージャ１５０は、ステップＳ１１１０で、受領した識別子と同じ識別子をＣＰ−ＣＩＤ１７１に含むエントリを、ＣＰテーブル１７０から探し、ステップＳ１１２０で、該当するエントリが存在するかどうかをチェックする。
【００７１】
そして、リカバリマネージャ１５０は、受領した識別子と同じ識別子をＣＰ−ＣＩＤ１７１に含むエントリが存在しない場合、リカバリイメージ再現処理を異常終了する（ステップＳ１１３０）。これに対して、リカバリマネージャ１５０は、受領した識別子と同じ識別子をＣＰ−ＣＩＤ１７１に含むエントリを見つけたら、ステップＳ１１４０に進み、当該エントリに含まれるＣＰ−ＪＩＤ１７２から識別子を読み出し、対応するジャーナルグループ３７０を含むストレージ装置３００にリカバリイメージ再現を指示する。
【００７２】
このとき、リカバリイメージ再現を指示されたそれぞれのストレージ装置３００は、指示された識別子に対応するリカバリイメージを再現し、リカバリイメージ再現完了通知をリカバリマネージャ１５０に返す。
【００７３】
続いて、リカバリマネージャ１５０は、ステップＳ１１５０で、全てのストレージ装置３００からリカバリイメージ再現完了通知が返されるのを待ち受ける。最後に、リカバリマネージャ１５０は、ステップＳ１１６０で、リカバリイメージ再現完了通知を、リカバリイメージ再現指示元に返す。
【００７４】
ストレージシステム１０では、このようなリカバリイメージ再現処理により、単一の識別子に対応する複数のストレージ装置３００のリカバリイメージを再現することができる。
【００７５】
このように、ストレージシステム１０では、ホスト計算機１００で実行されるリカバリマネージャ１５０が、複数のストレージ装置３００で装置ごとに記録されるＣＰ（ＣＰ−ＪＩＤ１７２）と、それら複数のストレージ装置３００に記録されたＣＰをひとまとめにしたＣＰ（ＣＰ−ＣＩＤ１７１）を関連付ける。
【００７６】
そして、アプリケーション１４０は、リカバリマネージャ１５０にＣＰ取得を指示する。リカバリマネージャ１５０は、アプリケーション１４０からの指示を受け、それぞれのストレージ装置３００にＣＰ取得指示を発行する。それぞれのストレージ装置３００がＣＰを取得し、当該ＣＰを特定する識別子をリカバリマネージャ１５０に返すと、リカバリマネージャ１５０は、ストレージ装置３００ごとのＣＰをＣＰ−ＪＩＤ１７２としてひとまとめにし、それに新たに識別子を割り当ててＣＰ−ＣＩＤ１７１とし，ＣＰ−ＣＩＤをアプリケーション１４０に返す。
【００７７】
一方、アプリケーション１４０は、リカバリイメージを再現するときには、ＣＰ−ＣＩＤ１７１を指定してリカバリマネージャ１５０にリカバリイメージ再現指示を出す。リカバリマネージャ１５０は、ＣＰ−ＣＩＤ１７１から各ストレージ装置３００に対応するＣＰ−ＪＩＤ１７２を求め、それぞれのストレージ装置３００に対応するＣＰ−ＪＩＤ１７２を指定してリカバリイメージ再現を指示する。
【００７８】
これにより、ストレージシステム１０では、複数のストレージ装置をまたがって、ＣＰを取得し、ＣＰに対応するリカバリイメージを再現することが可能となる。
【００７９】
なお、本実施例では、リカバリマネージャ１４０がストレージネットワーク８００を経由して、ストレージ装置３００に様々な指示を与えた場合について述べてが、本発明はこれに限らず、管理装置３１０を制御することにより、管理ネットワーク９００を経由して、複数のストレージ装置３００指示するようにしても良い。これにより、ストレージシステム１０では、ストレージネットワーク８００のアクセス負荷を低減することができる。
【００８０】
（２）第２実施例
続いて、第２実施例について説明する。本実施例では、アプリケーションがデータボリュームに発行するライトに、個々のライトの発行順序を特定するに充分な精度の時刻情報が付与されるシステムにおける構成を開示する。
【００８１】
このような条件を満たすシステムとしてよく知られたものの一例として、例えば、ＩＢＭ（International Business Machines Corporation）社製のｚ／ＯＳが搭載されるシステムがある。このｚ／ＯＳでは、ストレージ装置に発行するライトに時刻情報を付与することが可能であり、当該時刻情報は１〜１０マイクロ秒の精度を有する。
【００８２】
一般に、ストレージ装置へのライトは数百マイクロ秒から数ミリ秒の時間を要するので、本時刻情報は、個々のライトの発行順序を特定するに充分な精度である。さらに、本実施例では、付与された時刻情報をジャーナルやスナップショットの管理情報として記録するシステムにおける構成を開示する。
【００８３】
本実施例は、前述のように、充分な精度の時刻情報が全てのライトに付与され、かつ、当該時刻情報がジャーナルやスナップショットの管理情報として記録されるストレージシステムを前提とする。なお、本実施例の説明では、第１実施例と共通の構成要素については同様であるため説明を省く。
【００８４】
図９は、第２実施例におけるストレージシステム２０の全体構成図である。ストレージシステム２０は、１台以上のホスト計算機１００と、複数台のストレージ装置３００と、ストレージネットワーク８００とが接続されて構成されている様子は第１実施例と同様である。本実施例では、ホスト計算機１００は、ストレージ装置３００へライトを発行する際、必ず時刻情報を付与するようになされている。
【００８５】
ホスト計算機１００の構成要素のうち、アプリケーション１４０及びＣＴＧテーブル１６０は第１実施例と同様である。その他のリカバリマネージャ１８０及びＣＰテーブル１９０は第２実施例に独自の構成である。リカバリマネージャ１８０とＣＰテーブル１９０の詳細は後述する。また、ストレージ装置３００の構成も、第１実施例と同様であり、ジャーナルグループ３７０を有し、リカバリイメージを再現可能であることも同様である。さらに、アプリケーション１４０が複数のストレージ装置３００に含まれるデータボリューム３８０を使用することも第１実施例と同様である。
【００８６】
図１０は、第２実施例におけるＣＰテーブル１９０の構成図である。ＣＰテーブル１９０は、ＣＰ−ＣＩＤ１９１と、時刻情報を保持するＣＰ−ＴＯＤ１９２からなる。第１実施例のＣＰテーブル１７０とは異なり、図１０では、ストレージシステムの構成に含まれるストレージ装置３００の台数にかかわる要素は存在しない。
【００８７】
ＣＰ−ＣＩＤ１９１とＣＰ−ＴＯＤ１９２が含む値やその設定方法について詳細は後述するが、１つのＣＰ−ＣＩＤ１９１に対応して、１つのＣＰ−ＴＯＤ１９２が存在することに注意されたい。
【００８８】
このような、１つのＣＰ−ＣＩＤ１９１と一つのＣＰ−ＴＯＤ１９２の組を、ＣＰテーブル１９０のエントリと呼ぶ。さらには、ＣＰテーブル１９０は、十分な数の空きエントリを含む。
【００８９】
図１１は、第２実施例におけるリカバリマネージャ１８０の、ＣＰ取得処理のフローチャートである。第１実施例と同様に、本実施例では、アプリケーション１４０は、ＣＰの取得をリカバリマネージャ１８０に指示する。すなわち、ＣＰ取得処理は、リカバリマネージャ１８０が、ＣＰ取得指示を受けたときに制御部１１０により起動される処理である。
【００９０】
リカバリマネージャ１８０は、ステップＳ１２００で、アプリケーション１４０からのＣＰ取得指示を受領する。続いて、リカバリマネージャ１８０は、ステップＳ１２１０で、ＣＰテーブルの新規エントリを取得する。次に、リカバリマネージャ１８０は、ステップＳ１２２０で、前のステップＳ１２１０で取得したエントリのＣＰ−ＣＩＤ１９１に一意の識別子を記録する。
【００９１】
続いて、リカバリマネージャ１８０は、ステップＳ１２３０で、取得したエントリのＣＰ−ＴＯＤ１９２に現在時刻を記録する。最後に、リカバリマネージャ１８０は、ステップＳ１２４０で、アプリケーション１４０にＣＰ取得完了通知とともに、複数のストレージ装置３００の含むジャーナルグループ３７０におけるＣＰを示す識別子として、ＣＰ−ＣＩＤ１９１に記憶した識別子を返す。
【００９２】
本実施例では、ＣＰ取得処理がリカバリマネージャ１４０によるＣＰテーブル１９０への情報の記録だけにとどまり、ストレージ装置３００への指示を含まないことに注意されたい。これにより、ストレージシステム４０では、ストレージ装置３００のアクセス負荷を低減することができる。
【００９３】
ストレージシステム２０では、このようなＣＰ取得処理で、複数のストレージ装置３００に含まれるジャーナルグループ３７０にわたったＣＰ取得を実現でき、この結果、ＣＰ−ＣＩＤ１９１に記憶された単一の識別子により、当該ＣＰを指定したリカバリイメージを再現することができる。
【００９４】
図１２は、第２実施例におけるリカバリマネージャ１８０の、リカバリイメージ再現処理のフローチャートである。本実施例では、アプリケーション１４０が、リカバリイメージの再現を、ＣＰ−ＣＩＤ１９１に記憶された識別子を指定してリカバリマネージャ１８０に指示することにより実行する。リカバリイメージ再現処理は、リカバリマネージャ１８０が、リカバリイメージの再現を指示されたときに制御部１１０により起動される処理である。
【００９５】
リカバリマネージャ１８０は、ステップＳ１３００で、リカバリイメージ再現指示を、識別子とともに受領する。続いて、リカバリマネージャ１８０は、ステップＳ１３１０で、受領した識別子と同じ識別子をＣＰ−ＣＩＤ１９１に含むエントリを、ＣＰテーブル１９０から探し、ステップＳ１３２０で該当するエントリが存在するかどうかをチェックする。
【００９６】
そして、リカバリマネージャ１８０は、受領した識別子と同じ識別子をＣＰ−ＣＩＤ１９１に含むエントリが存在しない場合、リカバリイメージ再現処理を異常終了する（ステップＳ１３３０）。これに対して、リカバリマネージャ１８０は、受領した識別子と同じ識別子をＣＰ−ＣＩＤ１９１に含むエントリを見つけたら、ステップＳ１３４０に進み、当該エントリに含まれるＣＰ−ＴＯＤ１９２を読み出し、当該時刻を「目標時刻」としてジャーナルグループ３７０のリカバリイメージを再現するよう、全てのストレージ装置３００に指示する。
【００９７】
このとき、リカバリイメージ再現を指示されたそれぞれのストレージ装置３００は、指示された「目標時刻」のリカバリイメージを再現し、リカバリイメージ再現完了通知をリカバリマネージャ１８０に返す。
【００９８】
続いて、リカバリマネージャ１８０は、ステップＳ１３５０で全てのストレージ装置３００からリカバリイメージ再現完了通知が返されるのを待ち受ける。最後に、リカバリマネージャ１８０は、ステップＳ１３６０で、リカバリイメージ再現完了通知を、リカバリイメージ再現指示元に返す。
【００９９】
ストレージシステム２０では、このようなリカバリイメージ再現処理により、単一の識別子に対応する複数のストレージ装置３００のリカバリイメージを再現することができる。
【０１００】
（３）第３実施例
続いて、第３実施例について説明する。前述の第１実施例及び第２実施例では、複数のストレージ装置をまたがったＣＰの管理をリカバリマネージャにより実施していた。本実施例では、リカバリマネージャではなくストレージ装置で、複数のストレージ装置をまたがるＣＰを管理する方法を開示する。なお、本実施例の説明では、第１実施例と共通の構成要素については説明を省く。
【０１０１】
図１３は、第３実施例におけるストレージシステム３０の全体構成図である。このストレージシステム３０は、１台以上のホスト計算機１００と、１台のマスタストレージ装置５００と、複数台のスレーブストレージ装置６００と、ストレージネットワーク８００で接続されて構成されている。図１３では、構成の一例として、１台のホスト計算機１００と、１台のマスタストレージ装置５００と、２台のスレーブストレージ装置６００とを例示している。
【０１０２】
２台のスレーブストレージ装置６００は、それぞれＳＴ１、ＳＴ２という識別子を持つものとし、それぞれをストレージ装置６００Ａ、ストレージ装置６００Ｂとする。１台のマスタストレージ装置５００は、ＳＴ３という識別子を持つものとする。なお、スレーブストレージ装置６００は、第１実施例及び第２実施例におけるストレージ装置３００と同等の機能を有している。すなわち、ジャーナルグループ３７０を構成し、その機能を使用してリカバリイメージを再現することができる。本実施例では、全てのスレーブストレージ装置６００は、同じ構成を有している。
【０１０３】
なお、本実施例では、マスタストレージ装置５００、スレーブストレージ装置６００Ａ、スレーブストレージ装置６００Ｂがそれぞれ有する管理装置を、管理装置５１０、管理装置６１０Ａ、管理装置６１０Ｂとする。
【０１０４】
なお、マスタストレージ装置５００は、後に述べるマスタに関する機能以外については、第１実施例及び第２実施例におけるストレージ装置３００と同等の機能を有している。また、マスタストレージ装置５００は、全てのスレーブストレージ装置６００と適当な通信手段により通信できるように接続される。図１３の構成例では、ストレージネットワーク８００を通じてマスタストレージ装置５００とスレーブストレージ装置６００が通信することができる。無論、他の通信手段を用いうることは、当業者には明らかである。
【０１０５】
ホスト計算機１００は、アプリケーション１４０とリカバリマネージャ２００を有する。第１実施例でホスト計算機１００にあったＣＴＧテーブル１６０及びＣＰテーブル１７０相当の要素は、本実施例におけるホスト計算機１００には特に必要としない。また、本実施例におけるリカバリマネージャ２００は、１台のマスタストレージ装置５００のみに対して、ＣＰ取得やリカバリイメージ再現を指示する。
【０１０６】
図１４は、第３実施例におけるマスタストレージ装置５００の構成図である。マスタストレージ装置５００は、ストレージ装置３００と同様の構成要素を多く含む。コントローラ３２０、メモリ３３０、Ｉ／Ｏポート３４０、物理ボリューム３５０、論理ボリューム３６０及び管理装置４１０は、ストレージ装置３００のものと全く同等の機能を有している。
【０１０７】
また、マスタストレージ装置５００は、ジャーナルグループ３７０とそれに含まれるデータボリューム３８０及びジャーナルボリューム３９０、並びにデータボリューム３８０に対応するスナップショットボリューム４００についても、ストレージ装置３００のものと同等である。
【０１０８】
さらに、マスタストレージ装置５００は、ジャーナルグループ３７０を使用してジャーナル及びスナップショットを取得するジャーナル作成プログラム４１０、ジャーナル作成プログラム４１０がジャーナルグループ２２０を管理するために使用する管理テーブル４２０についても、ストレージ装置３００のものと同様である。
【０１０９】
さらに、マスタストレージ装置５００は、これらの構成要素を使用して、アプリケーション１４０がデータボリューム３８０へ発行するライトを、ジャーナルとしてジャーナルボリューム３９０に蓄積し、アプリケーション１４０からの、又はユーザから情報入力装置を介して取得したＣＰ取得指示を、特殊なジャーナルとしてジャーナルボリューム３９０に蓄積し、適当な間隔でデータボリューム３８０のスナップショットをスナップショットボリューム４００に取得し、ジャーナルとスナップショットを利用して、指示されたＣＰに対応するリカバリイメージを再現することができることも、ストレージ装置３００のものと同様である。
【０１１０】
アプリケーション１４０は、１つのマスタストレージ装置５００と複数のスレーブストレージ装置６００とに含まれるデータボリューム３８０を使用する。マスタストレージ装置５００と各スレーブストレージ装置６００は、それぞれのストレージ装置内のデータボリューム３８０をジャーナルグループ３７０によりひとまとめにして同じ時点のリカバリイメージを再現できる。
【０１１１】
かかる構成に加えて、マスタストレージ装置５００は、当該マスタストレージ装置５００のみに含まれる構成要素として、ＣＰテーブル５２０と、ＣＰ取得プログラム（ＣＰ取得ＰＧ）５３０と、リカバリイメージ再現プログラム（リカバリイメージ再現ＰＧ）５４０とを有する。これらは、マスタストレージ装置５００のメモリ３３０に格納され、ＣＰ取得プログラム５３０と、リカバリイメージ再現プログラム５４０は、コントローラ３２０により実行される。
【０１１２】
なお、ＣＴＧテーブル１６０は、第１実施例で述べたホスト計算機１００が有していたＣＴＧテーブル１６０とまったく同じ構成を有している。本実施例では、ＣＴＧを管理するのはマスタストレージ装置５００なので、マスタストレージ装置５００がＣＴＧテーブル１６０を有する。
【０１１３】
これにより、このストレージシステム３０では、マスタストレージ装置５００が、全てのスレーブストレージ装置６００と適切に通信することにより、リカバリマネージャ２００が１つのマスタストレージ装置５００へ指示するだけで、マスタストレージ装置５００と複数のスレーブストレージ装置６００に含まれるデータボリューム３８０をひとまとめにして、リカバリイメージを再現できる。
【０１１４】
図１５は、第３実施例におけるＣＰテーブル５２０の構成図である。ＣＰテーブル５２０は、マスタストレージ装置５００及びそれぞれのスレーブストレージ装置６００が含むジャーナルグループ３７０に対応するＣＰ−ＪＩＤ５２２（５２２Ａ〜５２２Ｃ）と、当該ＣＰ−ＪＩＤ５２２をひとまとめにして一括に管理する一括チェックポイントを表すＣＰ−ＣＩＤ５２１とからなる。図１５では、図１３に示すような１台のマスタストレージ装置５００と２台のスレーブストレージ装置６００とがあるストレージシステムの構成におけるＣＰテーブル５２０を例示している。
【０１１５】
ＣＰ−ＣＩＤ５２１とＣＰ−ＪＩＤ５２２とが含む値やその設定方法について詳細は後述するが、１つのＣＰ−ＣＩＤ５２１に対応して、１台のマスタストレージ装置５００と２台のスレーブストレージ装置６００とに含まれるジャーナルグループ３７０ごとにＣＰ−ＪＩＤ５２２が存在することに注意されたい。例えば、図１５のＣＰ−ＪＩＤ５２２Ｃについては、ＳＴ３であるマスタストレージ装置５００におけるＪＧ２のジャーナルグループ３７０に対応している。
【０１１６】
本実施例では、このような、１つのＣＰ−ＣＩＤ５２１と、マスタストレージ装置５００及び複数のスレーブストレージ装置６００に含まれるジャーナルグループ３７０に対応するＣＰ−ＪＩＤ５２２との組を、ＣＰテーブル５２０のエントリと呼ぶ。さらには、ＣＰテーブル５２０は、十分な数の空きエントリを含む。
【０１１７】
図１６は、第３実施例におけるＣＰ取得プログラム５３０の、ＣＰ取得処理手順を示すフローチャートである。本実施例では、アプリケーション１４０は、ＣＰの取得をリカバリマネージャ２００に指示する。リカバリマネージャ２００は、ＣＰ取得をマスタストレージ装置５００に指示する。すなわち、ＣＰ取得処理は、リカバリマネージャ２００からマスタストレージ装置５００のＣＰ取得プログラム５３０が、ＣＰ取得指示を受けたときにコントローラ３２０により起動される処理である。
【０１１８】
ＣＰ取得プログラム５３０は、ステップＳ１４００で、リカバリマネージャ２００からのＣＰ取得指示を受領する。続いて、ＣＰ取得プログラム５３０は、ステップＳ１４１０でＣＰテーブル５２０の新規エントリを取得する。次に、ＣＰ取得プログラム５３０は、ステップＳ１４２０で、前のステップＳ１４１０で取得したエントリのＣＰ−ＣＩＤ５２１に一意の識別子を記録する。
【０１１９】
続いて、ＣＰ取得プログラム５３０は、当該マスタストレージ装置５００及び全てのスレーブストレージ装置６００にライト保留指示を出し（ステップＳ１４３０）、当該マスタストレージ装置５００全てのスレーブストレージ装置６００からライト保留指示完了通知が返るのを待ち受ける（ステップＳ１４４０）。
【０１２０】
続いて、ＣＰ取得プログラム５３０は、ステップＳ１４５０で、全てのスレーブストレージ装置６００に対してジャーナルグループ３７０にＣＰ取得を指示する。
【０１２１】
このとき、ＣＰ取得指示を受けたそれぞれのスレーブストレージ装置６００は、それぞれのスレーブストレージ装置６００が含むジャーナルグループ３７０にＣＰを記憶し、取得したＣＰを特定する識別子を、ＣＰ取得完了通知とともにＣＰ取得プログラム５３０に返す。
【０１２２】
続いて、ＣＰ取得プログラム５３０は、ステップＳ１４６０で、それぞれのスレーブストレージ装置６００からＣＰ取得完了通知を受け、ＣＰ取得完了通知に含まれるそれぞれのジャーナルグループ２２０が取得したＣＰを示す識別子を、ステップＳ１４１０で取得したエントリの、ジャーナルグループ３７０に対応するＣＰ−ＪＩＤ５２２に記録する（ステップＳ１４７０）。
【０１２３】
続いて、ＣＰ取得プログラム５３０は、ステップＳ１４８０で、マスタストレージ装置５００自身の持つジャーナルグループ３７０のＣＰを取得し、当該ＣＰを特定する識別子を、ステップＳ１４１０で取得したエントリの、マスタストレージ装置５００が持つジャーナルグループ３７０に対応するＣＰ−ＪＩＤ５２２に記録する。次に、ＣＰ取得プログラム５３０は、当該マスタストレージ装置５００及び全てのスレーブストレージ装置６００にライト保留解除を指示する（ステップＳ１４９０）。
【０１２４】
最後に、ＣＰ取得プログラム５３０は、ステップＳ１５００で、リカバリマネージャ２００にＣＰ取得完了通知とともに、当該マスタストレージ装置５００及び全てのスレーブストレージ装置６００のジャーナルグループ３７０が取得したＣＰをひとまとめにしたＣＰを示す識別子として、ＣＰ−ＣＩＤ５２１に記憶した識別子を返す。
【０１２５】
ストレージシステム３０では、このようなＣＰ取得プログラム５３０の処理により、マスタストレージ装置５００及び複数のスレーブストレージ装置６００に含まれるジャーナルグループ３７０ごとに記憶されたＣＰを、ＣＰ−ＣＩＤ５２１に記憶された単一の識別子により一括して指定することができる。
【０１２６】
図１７は、第３実施例におけるリカバリイメージ再現プログラム５４０の、リカバリイメージ再現処理手順を示すフローチャートである。本実施例では、アプリケーション１４０が、リカバリイメージの再現を、ＣＰ−ＣＩＤ５２１に記録された識別子を指定してリカバリマネージャ２００に指示することにより実行する。リカバリマネージャ２００は、マスタストレージ装置５００に当該識別子を指定して、リカバリイメージ再現を指示する。リカバリイメージ再現処理は、リカバリマネージャ２００からマスタストレージ装置５００のリカバリ再現プログラム５４０が、リカバリイメージ再現を指示されたときにコントローラ３２０により起動される処理である。
【０１２７】
リカバリ再現プログラム５４０は、ステップＳ１６００で、リカバリイメージ再現指示を、識別子とともに受領する。続いて、リカバリ再現プログラム５４０は、ステップＳ１６１０で、受領した識別子と同じ識別子をＣＰ−ＣＩＤ５２１に含むエントリを、ＣＰテーブル５２０から探し、ステップＳ１６２０で該当するエントリが存在するかどうかをチェックする。
【０１２８】
そして、リカバリ再現プログラム５４０は、受領した識別子と同じ識別子をＣＰ−ＣＩＤ５２１に含むエントリが存在しない場合、リカバリイメージ再現プログラム５４０は異常終了する（ステップＳ１６３０）。これに対して、リカバリ再現プログラム５４０は、受領した識別子と同じ識別子をＣＰ−ＣＩＤ５２１に含むエントリを見つけたら、ステップＳ１６４０に進み、当該エントリに含まれるＣＰ−ＪＩＤ５２２から識別子を読み出し、対応するジャーナルグループ３７０を含む全てのスレーブストレージ装置６００にリカバリイメージ再現を指示する。
【０１２９】
このとき、リカバリイメージ再現を指示されたそれぞれのスレーブストレージ装置６００は、指示された識別子に対応するリカバリイメージを再現し、リカバリイメージ再現完了通知をリカバリイメージ再現プログラム５４０に返す。
【０１３０】
続いて、リカバリイメージ再現プログラム５４０は、ステップＳ１６５０で全てのスレーブストレージ装置６００からリカバリイメージ再現完了通知が返されるのを待ち受ける。続いて、リカバリイメージ再現プログラム５４０は、ステップＳ１６６０で、マスタストレージ装置５００自身の持つジャーナルグループ３７０に対応するＣＰ−ＪＩＤ５２２から識別子を読み出し、その識別子で特定されるＣＰのリカバリイメージを再現する。最後に、リカバリイメージ再現プログラム５４０は、ステップＳ１６７０で、リカバリイメージ再現完了通知を、リカバリマネージャ２００に返す。
【０１３１】
ストレージシステム３０では、このようなリカバリイメージ再現プログラム５４０の処理により、単一の識別子に対応するマスタストレージ装置５００と複数のスレーブストレージ装置６００のリカバリイメージを再現することができる。
【０１３２】
また、本実施例におけるリカバリマネージャ２００は、マスタストレージ装置４００にのみ指示を出していることに注意されたい。これにより、ストレージシステム３０では、ホスト計算機１００の負荷を低減することができる。
【０１３３】
（４）第４実施例
続いて、第４実施例について説明する。本実施例では、第２実施例で述べた、充分な精度の時刻情報が全てのライトに付与され、かつ、当該時刻情報がジャーナルやスナップショットの管理情報として記録されるシステムを前提とする。さらに、本実施例では、第３実施例で述べた、リカバリマネージャではなく、ストレージ装置で複数のストレージ装置をまたがるＣＰを管理する方法を開示する。なお、本実施例の説明では、第３実施例と共通の構成要素については説明を省く。
【０１３４】
本実施例のストレージシステム４０の全体構成は、第３実施例と同等である。すなわち、図１３に示されている。ただし、本実施例では、ホスト計算機１００は、マスタストレージ装置５００及びスレーブストレージ装置６００へライトを発行する際、必ず時刻情報を付与することに注意されたい。
【０１３５】
図１８は、第４実施例におけるマスタストレージ装置５００の構成図である。本実施例のマスタストレージ装置５００は、基本的には、第３実施例のマスタストレージ装置５００と同等である。マスタストレージ装置５００は、本実施例特有の構成要素として、ＣＰテーブル５５０と、ＣＰ取得プログラム５６０と、リカバリイメージ再現プログラム５７０とを有する。これらは、マスタストレージ装置５００のメモリ３３０に格納され、ＣＰ取得プログラム５６０と、リカバリイメージ再現プログラム５７０は、コントローラ３２０により実行される。
【０１３６】
第３実施例と同様に、アプリケーション１４０は、１つのマスタストレージ装置５００と複数のスレーブストレージ装置６００に含まれるデータボリューム３８０を使用する。マスタストレージ装置５００と各スレーブストレージ装置６００は、当該マスタストレージ装置５００及びそれぞれのスレーブストレージ装置６００内のデータボリューム３８０をジャーナルグループ３７０によりひとまとめにして同じ時点のリカバリイメージを再現できる。
【０１３７】
さらに、本実施例では、マスタストレージ装置５００が、全てのスレーブストレージ装置６００と適切に通信することにより、リカバリマネージャ２００が１つのマスタストレージ装置５００へ指示するだけで、マスタストレージ装置５００と複数のスレーブストレージ装置６００に含まれるデータボリューム３８０をひとまとめにして、リカバリイメージを再現できることも、第３実施例と同様である。
【０１３８】
図１９は、第４実施例におけるＣＰテーブル５５０の構成図である。ＣＰテーブル５５０は、ＣＰ−ＣＩＤ５５１と時刻情報を保持するＣＰ−ＴＯＤ５５２からなる。第３実施例のＣＰテーブル５２０とは異なり、図１９では、システム構成に含まれるマスタストレージ装置５００やスレーブストレージ装置６００の台数にかかわる要素は存在しない。
【０１３９】
ＣＰ−ＣＩＤ５５１とＣＰ−ＴＯＤ５５２とが含む値やその設定方法について詳細は後述するが、１つのＣＰ−ＣＩＤ５５１に対応して、１つのＣＰ−ＴＯＤ５５２が存在することに注意されたい。
【０１４０】
このような、１つのＣＰ−ＣＩＤ５５１と１つのＣＰ−ＴＯＤ５５２の組を、ＣＰテーブル５５０のエントリと呼ぶ。さらには、ＣＰテーブル５５０は、十分な数の空きエントリを含む。
【０１４１】
図２０は、第４実施例におけるＣＰ取得プログラム５６０のフローチャートである。第３実施例と同様に、本実施例では、アプリケーション１４０は、ＣＰの取得をリカバリマネージャ２００に指示する。リカバリマネージャ２００は、ＣＰ取得をマスタストレージ装置５００に指示する。
【０１４２】
ＣＰ取得処理は、リカバリマネージャ２００からマスタストレージ装置５００のＣＰ取得プログラム５６０が、ＣＰ取得指示を受けたときにコントローラ３２０により起動される処理である。この際、ライトに付与される時刻情報と同等の時刻情報を、指示に含める。
【０１４３】
ＣＰ取得プログラム５６０は、ステップＳ１７００で、リカバリマネージャ２００からのＣＰ取得指示を受領する。続いて、ＣＰ取得プログラム５６０は、ステップＳ１７１０で、ＣＰテーブル５５０の新規エントリを取得する。次に、ＣＰ取得プログラム５６０は、ステップＳ１７２０で、前のステップＳ１７１０で取得したエントリのＣＰ−ＣＩＤ５５１に一意の識別子を記録する。
【０１４４】
続いて、ＣＰ取得プログラム５６０は、ステップＳ１７３０で、取得したエントリのＣＰ−ＴＯＤ５５２にリカバリマネージャ２００から受領した時刻を記録する。最後に、ＣＰ取得プログラム５６０は、ステップＳ１７４０で、リカバリマネージャ２００にＣＰ取得完了通知とともに、当該マスタストレージ装置５００及び複数のスレーブストレージ装置６００の含むジャーナルグループ３７０におけるＣＰを示す識別子として、ＣＰ−ＣＩＤ５５１に記憶した識別子を返す。
【０１４５】
本実施例では、ＣＰ取得処理がマスタストレージ装置５００によるＣＰテーブル５５０への情報の記録だけにとどまり、スレーブストレージ装置６００への指示を含まないことに注意されたい。これにより、ストレージシステム４０では、スレーブストレージ装置６００のアクセス負荷を低減することができる。
【０１４６】
ストレージシステム４０では、このようなＣＰ取得処理で、マスタストレージ装置４００と複数のスレーブストレージ装置６００に含まれるジャーナルグループ３７０にわたったＣＰ取得を実現でき、この結果、ＣＰ−ＣＩＤ５５１に記憶された単一の識別子により、当該ＣＰを指定したリカバリイメージを再現することができる。
【０１４７】
図２１は、第４実施例におけるリカバリイメージ再現プログラム５７０の、リカバリイメージ再現手順を示すフローチャートである。本実施例では、アプリケーション１４０が、リカバリイメージの再現を、ＣＰ−ＣＩＤ５５１に記憶された識別子を指定してリカバリマネージャ２００に指示することにより実行する。リカバリマネージャ２００は、マスタストレージ装置５００に当該識別子を指定して、リカバリイメージ再現を指示する。
【０１４８】
リカバリイメージ再現処理は、リカバリマネージャ２００からマスタストレージ装置５００のリカバリイメージ再現プログラム５７０が、リカバリイメージ再現を指示されたときにコントローラ３２０により起動される処理である。
【０１４９】
リカバリイメージ再現プログラム５７０は、ステップＳ１８００で、リカバリイメージ再現指示を、識別子とともに受領する。続いて、リカバリイメージ再現プログラム５７０は、ステップＳ１８１０で、受領した識別子と同じ識別子をＣＰ−ＣＩＤ５５１に含むエントリを、ＣＰテーブル５５０から探し、ステップＳ１８２０で該当するエントリが存在するかどうかをチェックする。
【０１５０】
そして、リカバリイメージ再現プログラム５７０は、受領した識別子と同じ識別子をＣＰ−ＣＩＤ５５１に含むエントリが存在しない場合、リカバリイメージ再現プログラム５７０を異常終了する（ステップＳ１８３０）。これに対して、リカバリイメージ再現プログラム５７０は、受領した識別子と同じ識別子をＣＰ−ＣＩＤ５５１に含むエントリを見つけたら、ステップＳ１８４０に進み、当該エントリに含まれるＣＰ−ＴＯＤ５５２を読み出し、当該時刻を「目標時刻」としてジャーナルグループ３７０のリカバリイメージを再現するよう、全てのスレーブトレージ装置６００に指示する。
【０１５１】
このとき、リカバリイメージ再現を指示されたそれぞれのスレーブストレージ装置６００は、指示された「目標時刻」のリカバリイメージを再現し、リカバリイメージ再現完了通知をリカバリイメージ再現プログラム５７０に返す。
【０１５２】
続いて、リカバリイメージ再現プログラム５７０は、ステップＳ１８５０で全てのスレーブストレージ装置６００からリカバリイメージ再現完了通知が返されるのを待ち受ける。
【０１５３】
やがて、リカバリイメージ再現プログラム５７０は、ステップＳ１８６０で、マスタストレージ装置５００自身の持つジャーナルグループ３７０の、ＣＰ−ＴＯＤ５５２の示す時刻を「目標時刻」としたリカバリイメージを再現する。最後に、リカバリイメージ再現プログラム５７０は、ステップＳ１８７０で、リカバリイメージ再現完了通知を、リカバリマネージャ２００に返す。
【０１５４】
ストレージシステム４０では、このようなリカバリイメージ再現プログラム５７０の処理により、単一の識別子に対応するマスタストレージ装置５００と複数のストレージ装置６００とのリカバリイメージを再現することができる。
【０１５５】
また、本実施例におけるリカバリマネージャ２００は、マスタストレージ装置５００にのみ指示を出していることに注意されたい。これにより、ストレージシステム４０では、ホスト計算機１００の処理負荷を低減することができる。
【産業上の利用可能性】
【０１５６】
本発明は、複数のストレージ装置で構成された、データのリカバリを行うストレージシステムに適用できる。
【図面の簡単な説明】
【０１５７】
【図１】第１実施例におけるストレージシステムの構成を示す略線図である。
【図２】第１実施例におけるストレージ装置の構成を示す略線図である。
【図３】第１実施例におけるストレージ装置の構成を示す略線図である。
【図４】第１実施例におけるＣＴＧテーブルの構成を示す略線図である。
【図５】第１実施例におけるＣＴＧテーブルの設定画面の説明に供する略線図である。
【図６】第１実施例におけるＣＰテーブルの構成を示す略線図である。
【図７】第１実施例におけるＣＰ取得処理の説明に供するフローチャートである。
【図８】第１実施例におけるリカバリイメージ再現処理の説明に供するフローチャートである。
【図９】第２実施例におけるストレージシステムの構成を示す略線図である。
【図１０】第２実施例におけるＣＰテーブルの構成を示す略線図である。
【図１１】第２実施例におけるＣＰ取得処理の説明に供するフローチャートである。
【図１２】第２実施例におけるリカバリイメージ再現処理の説明に供するフローチャートである。
【図１３】第３実施例におけるストレージシステムの構成を示す略線図である。
【図１４】第３実施例におけるマスタストレージ装置の構成を示す略線図である。
【図１５】第３実施例におけるＣＰテーブルの構成を示す略線図である。
【図１６】第３実施例におけるＣＰ取得処理の説明に供するフローチャートである。
【図１７】第３実施例におけるリカバリイメージ再現処理の説明に供するフローチャートである。
【図１８】第４実施例におけるマスタストレージ装置の構成を示す略線図である。
【図１９】第４実施例におけるＣＰテーブルの構成を示す略線図である。
【図２０】第４実施例におけるＣＰ取得処理の説明に供するフローチャートである。
【図２１】第４実施例におけるリカバリイメージ再現処理の説明に供するフローチャートである。
【符号の説明】
【０１５８】
１０、２０、３０、４０……ストレージシステム、１００……ホスト計算機、１１０……制御部、１２０……メモリ、１４０……アプリケーション、１５０、１８０、２００……リカバリマネージャ、１６０……ＣＴＧテーブル、１７０、１９０、５２０、５５０……ＣＰテーブル、３００……ストレージ装置、３１０、５１０、６１０……管理装置、３２０……コントローラ、３３０……メモリ、３７０……ジャーナルグループ、５００……マスタストレージ装置、５３０、５６０……ＣＰ取得プログラム、５４０、５７０……リカバリイメージ再現プログラム、６００……スレーブストレージ装置
【図１】
2007219657.tif 000003
【図２】
2007219657.tif 000004
【図３】
2007219657.tif 000005
【図４】
2007219657.tif 000006
【図５】
2007219657.tif 000007
【図６】
2007219657.tif 000008
【図７】
2007219657.tif 000009
【図８】
2007219657.tif 000010
【図９】
2007219657.tif 000011
【図１０】
2007219657.tif 000012
【図１１】
2007219657.tif 000013
【図１２】
2007219657.tif 000014
【図１３】
2007219657.tif 000015
【図１４】
2007219657.tif 000016
【図１５】
2007219657.tif 000017
【図１６】
2007219657.tif 000018
【図１７】
2007219657.tif 000019
【図１８】
2007219657.tif 000020
【図１９】
2007219657.tif 000021
【図２０】
2007219657.tif 000022
【図２１】
2007219657.tif 000023