(57)【要約】【課題】ホスト装置を基準とした時刻が指定された復元要求に従って、データの復元を行えるようにする。【解決手段】  本発明は、記憶部と、これを制御する制御部とを備えるストレージ装置である。記憶部上には、データボリュームと、ジャーナルボリュームと、スナップショットボリュームとが形成される。ストレージ装置は、ホスト装置から送られる書き込み要求に従い、書き込み要求に基づく所定のデータをデータボリュームに記憶する一方、ホスト装置から送られるホスト時刻情報を含む復元ポイント設定要求に対しては、当該ホスト時刻情報と関連付けられたバックアップデータを所定のボリュームに記憶する。データの復元に際しては、ストレージ装置は、ホスト装置から送られる復元要求に含まれるホスト時刻情報に基づいて、データボリュームにスナップショットデータを適用するとともに、ジャーナルデータをさらに適用することにより、データを復元する。【選択図】図１
2007323507.tif 000002
【特許請求の範囲】
【請求項１】
データをバックアップし、ホスト装置からの復元要求に基づいて、バックアップされた前記データの復元を行うストレージ装置において、
前記ストレージ装置は、
データボリュームとバックアップボリュームとが形成された記憶部と、
前記記憶部を制御する制御部と、を備え、
前記制御部は、前記ホスト装置から送られる書き込み要求に従い、前記書き込み要求に基づく所定のデータを前記データボリュームに記憶する一方、前記ホスト装置から送られるホスト時刻情報を含む復元ポイント設定要求に従い、前記ホスト時刻情報と関連付けられた所定のバックアップデータを前記バックアップボリュームに記憶することを特徴とするストレージ装置。
【請求項２】
前記バックアップボリュームは、ジャーナルボリュームを含み、
前記制御部は、前記復元ポイント設定要求に含まれるホスト時刻情報と前記ストレージ装置の時刻を基準とするストレージ時刻情報とを関連付けて前記ジャーナルボリュームに記憶することを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記制御部は、前記復元ポイント設定要求に含まれるホスト時刻情報と前記復元ポイント設定要求に基づくジャーナルデータとを関連付けて前記ジャーナルボリュームに記憶することを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記バックアップボリュームは、スナップショットボリュームを含み、
前記制御部は、前記復元ポイント設定要求がスナップショットに関する要求を含む場合に、前記データボリュームに対するスナップショットにより得られるスナップショットデータを前記スナップショットボリュームに記憶することを特徴とする請求項３のいずれかに記載のストレージ装置。
【請求項５】
前記ストレージ装置は、前記スナップショットボリュームを管理するためのスナップショットボリュームテーブルを備え、
前記制御部は、前記復元ポイント設定要求に含まれるホスト時刻情報を前記スナップショットボリュームテーブルに記憶することを特徴とする請求項４に記載のストレージ装置。
【請求項６】
前記制御部は、前記復元ポイント設定要求に従い、前記ストレージ時刻情報を前記ホスト時刻情報と関連付けて前記スナップショットボリュームテーブルに記憶することを特徴とする請求項５に記載のストレージ装置。
【請求項７】
前記制御部は、前記ホスト装置から送られるストレージ時刻情報が指定された復元要求に基づいて、前記スナップショットボリュームに記憶されたスナップショットデータを特定し、前記特定したスナップショットデータを前記データボリュームに適用するとともに、前記ジャーナルボリュームに記憶されたジャーナルデータを特定し、前記特定したスナップショットデータが適用された前記データボリュームに対して、前記特定したジャーナルデータをさらに適用することによって、データを復元することを特徴とする請求項６に記載のストレージ装置。
【請求項８】
前記制御部は、前記ホスト装置から送られるホスト時刻情報が指定された復元要求に基づいて、前記スナップショットボリュームに記憶されたスナップショットデータを特定し、前記特定したスナップショットデータを前記データボリュームに適用することによって、データを復元することを特徴とする請求項６に記載のストレージ装置。
【請求項９】
前記制御部は、前記ホスト装置から送られるホスト時刻情報が指定された復元要求に基づいて、前記ジャーナルボリュームに記憶されたジャーナルデータを特定し、前記特定したスナップショットデータが適用された前記データボリュームに対して、前記特定したジャーナルデータをさらに適用することによって、データを復元することを特徴とする請求項８に記載のストレージ装置。
【請求項１０】
前記制御部は、前記ホスト装置から送られるホスト時刻情報が指定された復元要求に従い、前記スナップショットボリューム管理テーブルに相互に関連付けられて記憶されたストレージ時刻情報およびホスト時刻情報に基づいて差分時間を求め、前記差分時間に基づくオフセット時刻情報に基づいた前記復元要求に含まれるホスト時刻情報に直近するストレージ時刻情報に従うスナップショットデータを特定し、前記特定したスナップショットデータを前記データボリュームに適用することによって、データを復元することを特徴とする請求項７に記載のストレージ装置。
【請求項１１】
ホスト装置に接続されたストレージ装置におけるデータのバックアップ方法であって、
前記ホスト装置から送られるアクセス要求を解釈する解釈ステップと、
該解釈の結果、前記アクセス要求が復元ポイント設定要求である場合に、前記復元ポイント設定要求に含まれるホスト時刻情報と関連付けられた所定のバックアップデータを前記バックアップボリュームに記憶するバックアップステップと、を備えることを特徴とするデータの処理方法。
【請求項１２】
前記バックアップステップは、前記復元ポイント設定要求に含まれるホスト時刻情報と前記ストレージ装置の時刻を基準とするストレージ時刻情報とを関連付けて、前記ストレージ装置におけるジャーナルボリュームに記憶するステップを含むことを特徴とする請求項１１に記載のデータの処理方法。
【請求項１３】
前記バックアップステップは、前記復元ポイント設定要求に含まれるホスト時刻情報と前記復元ポイント設定要求に基づくジャーナルデータとを関連付けて前記ジャーナルボリュームに記憶するステップを含むことを特徴とする請求項１２に記載のデータバックアップ方法。
【請求項１４】
前記バックアップステップは、前記復元ポイント設定要求がスナップショットに関する要求を含む場合に、前記データボリュームに対するスナップショットにより得られるスナップショットデータを、前記ストレージ装置におけるスナップショットボリュームに記憶するステップを含むことを特徴とする請求項１３に記載のデータバックアップ方法。
【請求項１５】
前記バックアップステップは、前記復元ポイント設定要求に含まれるホスト時刻情報を、前記スナップショットボリュームテーブルに記憶するステップを含むことを特徴とする請求項１４に記載のデータの処理方法。
【請求項１６】
前記バックアップステップは、前記復元ポイント設定要求に従い、前記ストレージ時刻情報を前記ホスト時刻情報と関連付けて前記スナップショットボリュームテーブルに記憶することを特徴とする請求項１５に記載のデータの処理方法。
【請求項１７】
前記解釈ステップによる解釈の結果、前記アクセス要求が復元要求である場合に、前記復元要求に含まれるストレージ時刻情報に基づいて、前記スナップショットボリュームに記憶されたスナップショットデータを特定し、前記特定したスナップショットデータを前記データボリュームに適用するとともに、前記ジャーナルボリュームに記憶されたジャーナルデータを特定し、前記特定したスナップショットデータが適用された前記データボリュームに対して、前記特定したジャーナルデータをさらに適用することによって、データを復元するステップをさらに含むことを特徴とする請求項１６に記載のデータの処理方法。
【請求項１８】
前記解釈ステップによる解釈の結果、前記アクセス要求が復元要求である場合に、前記復元要求に含まれるホスト時刻情報に基づいて、前記スナップショットボリュームに記憶されたスナップショットデータを特定し、前記特定したスナップショットデータを前記データボリュームに適用することによって、データを復元することを特徴とする請求項１６に記載のデータの処理方法。
【請求項１９】
前記解釈ステップによる解釈の結果、前記アクセス要求が復元要求である場合に、前記復元要求に含まれるホスト時刻情報に基づいて、前記ジャーナルボリュームに記憶されたジャーナルデータを特定し、前記特定したスナップショットデータが適用された前記データボリュームに対して、前記特定したジャーナルデータをさらに適用することによって、データを復元することを特徴とする請求項１８に記載のデータの処理方法。
【請求項２０】
前記解釈ステップによる解釈の結果、前記アクセス要求が復元要求である場合に、前記復元要求に含まれるホスト時刻情報に基づいて、前記スナップショットボリューム管理テーブルに相互に関連付けられて記憶されたストレージ時刻情報およびホスト時刻情報に基づいて差分時間を求め、前記差分時間に基づくオフセット時刻情報に基づいた前記復元要求に含まれるホスト時刻情報に直近するストレージ時刻情報に従うスナップショットデータを特定し、前記特定したスナップショットデータを前記データボリュームに適用することによって、データを復元することを特徴とする請求項１６に記載のデータの処理方法。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータシステムにおけるデータの消失を防止するため、ストレージ装置を用いたデータのバックアップおよび復元・復旧が行われる。このような復元・復旧を目的としたデータのバックアップとして、例えば、スナップショットやジャーナリングと呼ばれる技術がある。スナップショットは、ある時点におけるファイルシステムについてのデータイメージを保存する技術である。例えば、障害によりデータが失われた場合であっても、保存されたスナップショットデータを参照することによって、失われる前のデータを復元することができる。また、ジャーナリングは、データの書き込み時に、書き込まれるデータおよびその時刻をジャーナルエントリ（ジャーナルデータ）として保存する技術である。近年では、ジャーナリング技術およびスナップショット技術を融合した高速なデータ復元機構を実装したストレージ装置が注目されている。
【０００２】
一つの例として、下記特許文献１に示されるように、ストレージ装置は、ホスト装置からの書き込み要求に基づき、データボリュームに保存されるアプリケーションデータについてジャーナルエントリを保存するとともに、該データボリュームに対するスナップショットデータを保存する。この場合、ジャーナルエントリおよびスナップショットデータには、生成された順に固有の番号を割り当ててておく。これにより、データを復元する際には、所定のスナップショットデータが適用されるジャーナルエントリを容易に特定することができ、高速なデータの復元を実現している。
【特許文献１】特開２００５-１８７３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のストレージ装置は、データを復元するためにユーザによって指定される時刻として、ストレージ装置における時刻を基準にしてデータを復元するように設計されていた。しかしながら、一般的に、障害は、例えば、ホスト装置におけるユーザの作業ミス等のように、ホスト装置側で発生することが多い。ホスト装置において障害が発生した場合、ホスト装置は、障害内容および障害発生時刻等を含む障害情報をユーザに提供するが、この障害発生時刻はホスト装置内の時計機構に依存している。ユーザは、この障害発生時刻を参考にして、データを復元しようとする時刻を指定することになるが、ストレージ装置におけるデータの復元は、ストレージ装置内の時計機構に依存した時刻を基準にして行われる。したがって、ホスト装置内の時計機構とストレージ装置内の時計機構との間に、時間的なずれ（時間差）がある場合、ユーザが期待した時刻におけるデータを復元できないという課題がある。
【０００４】
また、複数のホスト装置が相互に連携しているシステムの場合、個々のホスト装置内の時計機構が示す時刻が異なっていることが想定される。したがって、このようなシステムにおいては基準となる時刻を一意に定めることができず、システム全体で基準時刻に同期したデータの復元を行うことは難しかった。
【課題を解決するための手段】
【０００５】
本発明のある観点によれば、データを適宜にバックアップし、ホスト装置からの復元要求に基づいて、バックアップされた当該データの復元を行うストレージ装置である。ストレージ装置は、データボリュームとバックアップボリュームとが形成された記憶部と、この記憶部を制御する制御部とを備える。バックアップボリュームは、典型的には、ジャーナルボリュームと、スナップショットボリュームと、コマンド管理ボリュームとからなる。これらのボリュームは、典型的には、ボリューム管理テーブルによって管理される。そして、制御部は、ホスト装置から送られる書き込み要求に従い、書き込み要求に基づく所定のデータをデータボリュームに記憶する一方、ホスト装置から送られるホスト時刻情報を含む復元ポイント設定要求に対しては、当該ホスト時刻情報と関連付けられた所定のバックアップデータをバックアップボリュームに記憶する。
【０００６】
また、制御部は、ホスト装置から送られるホスト時刻情報が指定された復元要求を受け取った場合であって、ホスト時刻情報を持たない時点におけるデータの復元を行おうとする場合には、まず、ボリューム管理テーブルにおけるスナップショットボリューム管理テーブルに相互に関連付けられて記憶されたストレージ時刻情報およびホスト時刻情報に基づいて差分時間を求める。そして、制御部は、当該差分時間に基づくオフセット時刻情報に基づいて、復元要求に含まれるホスト時刻情報に直近するストレージ時刻情報に従うスナップショットデータを特定し、さらに、当該特定したスナップショットデータをデータボリュームに適用する。
【０００７】
これによって、ストレージ装置は、ホスト装置からホスト時刻情報を含む復元要求を受けた場合には、格納したホスト時刻情報を利用しながらデータを復元することができ、ホスト時刻情報が格納されていない場合であっても、他の格納されたホスト時刻情報を利用して、復元要求に含まれるホスト時刻情報に可能な限り近い時刻情報でデータを復元することができる。
【発明の効果】
【０００８】
本発明によれば、ストレージ装置は、ホスト装置内の時刻を基準にした、ユーザが本来期待した通りのデータの復元を行うことができるようになる。
【発明を実施するための最良の形態】
【０００９】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【００１０】
図１は、本発明の一実施形態に係る記憶システムの概略を示している。記憶システム１は、上位装置として機能するホスト装置２が、ネットワークシステム３を介して、下位装置として機能するストレージ装置４と接続されることにより構成されている。
【００１１】
ホスト装置２は、典型的には、パーソナルコンピュータやワークステーション、メインフレーム等が該当する。ホスト装置２は、ＣＰＵ（Central Processing Unit）２１、メインメモリ２２、インターフェースユニット２３およびローカル入出力装置２４、時計機構２５等のハードウェア資源を備え、これらは内部バス２６により相互に接続されている。ホスト装置２はまた、デバイスドライバおよびオペレーティングシステム（ＯＳ）等のソフトウェア資源を備えている。これによって、ホスト装置２は、ＣＰＵ２１の制御の下、各種のプログラムを実行して、ハードウェア資源との協働作用により、所望の処理を実現する。例えば、ホスト装置２は、ＣＰＵ２１の制御の下、ＯＳ上でアプリケーションプログラムを実行する。アプリケーションプログラムは、ホスト装置２が本来的に遂行しようとする処理を実現するためのプログラムである。アプリケーションプログラムは、その実行に際して、ストレージ装置４に対してデータの読み込みや書き込み等のアクセスを要求する。このため、ホスト装置２には、ストレージマネージャが実装されている。ストレージマネージャは、ストレージ装置４に対するアクセスを管理するための管理プログラムである。ストレージマネージャは、ＯＳとは独立に設計されてもよいし、またはその一部として組み込まれていてもよい。各種のプログラムは、１つのモジュールとして構成されてもよいし、複数のモジュールとして構成されてもよい。
【００１２】
図２は、本発明の一実施形態に係る記憶システムのホスト装置におけるプログラムスタック構造の一例を示している。ストレージマネージャは、アプリケーションプログラムによるストレージ装置４に対するアクセス要求があると、ストレージ装置４に対して所定のコマンドを発行する。例えば、ストレージマネージャは、データの読み込みまたは書き込み要求に対しては、読み込み要求または書き込み要求コマンドを発行する。これらの読み込み要求コマンドおよび書き込み要求コマンドは、通常のＩ／Ｏ要求コマンドとして処理される。本実施形態のストレージマネージャは、さらに、復元ポイントの設定処理および復元処理に関する制御をも行っている。ストレージマネージャによるこれらの処理の詳細については後述する。
【００１３】
図１に戻り、ネットワーク３は、例えばＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線などから構成される。このネットワーク３を介したホスト装置２とストレージ装置４との間の通信は、例えばネットワーク３がＳＡＮである場合にはファイバーチャネルプロトコルに従って行われる。また、ネットワーク３がＬＡＮである場合にはＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００１４】
ストレージ装置４は、複数の物理的なディスクデバイスからなる記憶部４１と、該ディスデバイス部４１を制御する制御部４２とを備えている。
【００１５】
ディスクデバイスは、例えばＦＣ（Fibre Channel）ディスク、ＦＡＴＡ（Fibre Attached Technology Adapted）や、ＳＡＴＡ（Serial AT Attachment）ディスク、光ディスクドライブ等から構成される。１又は複数のディスクデバイスが提供する記憶領域上には、１又は複数の論理的なボリューム（以下、「論理ボリューム」という。）が定義される。
【００１６】
論理ボリュームには、例えば利用目的に応じた属性が与えられ、それぞれに割り当てられた固有の識別子（ＬＵＮ：Logical Unit Number）によって管理される。本実施形態では、ディスクデバイス部４１上に、データボリューム４１ａと、ジャーナルボリューム４１ｂと、スナップショットボリューム４１ｃと、コマンド管理ボリューム４１ｄとが定義されている。ここで、ジャーナルボリューム４１ｂと、スナップショットボリューム４１ｃと、コマンド管理ボリューム４１ｄとは、データのバックアップ用のボリュームとして機能する。
【００１７】
データボリューム４１ａは、アプリケーションプログラムがデータを読み書きするために使用するボリュームである。ジャーナルボリュームは、データボリューム４１ａの更新履歴情報であるジャーナルデータを格納するためのボリュームである。ジャーナルデータは、典型的には、データボリューム４１ａに書き込まれたデータと、当該データが書き込まれたデータボリューム４１ａ上のアドレスおよび当該データが書き込まれた時刻等の管理情報とから構成される。スナップショットボリューム４１ｃは、ある時点におけるデータボリューム４１ａのスナップショットデータ（イメージ）を格納するためのボリュームである。コマンド管理ボリューム４１ｄは、ホスト装置２から送られる所定のコマンドを一時的に保持するためのボリュームである。
【００１８】
論理ボリュームに対するアクセスは、所定サイズのブロックを単位として行われる。各ブロックには、論理ブロックアドレス（ＬＢＡ：Logical Block Address）が割り当てられている。したがって、ホスト装置２は、上述した識別子および論理ブロックアドレスに基づくアドレスをストレージ装置４の制御部４２に対して指定することにより、論理ボリュームに対するアクセスを行う。
【００１９】
制御部４２は、ＣＰＵ４２１、メモリ４２２、キャッシュ機構４２３および時計機構４２４を備えたシステム回路であり、ホスト装置２と記憶部４１との間の入出力を統括的に制御する。また、制御部４２は、典型的には、チャネルアダプタおよびディスクアダプタとを備える（図示せず）。メモリ４２２は、ＣＰＵ４２１のメインメモリとして機能する。例えば、メモリ４２２は、ＣＰＵ４２１の利用に供するため、図３に示すように、各種の制御プログラムやシステム構成情報、管理テーブル等を記憶する。図示はしていないが、制御部２は、その稼働中、ストレージ装置４内の障害の有無を監視しており、障害が発生したときにこれをユーザ（システム管理者）に通知する等の処理をモジュールを実装している。これら制御プログラムや各種の情報等は、例えば、ストレージ装置４に電源が投入された時点で、ＣＰＵ４２１の制御の下、所定のディスクデバイスから読み出され、メモリ４２２上に展開される。または、メモリ４２２が再書き込み可能な不揮発性メモリを含んで構成されている場合には、当該不揮発性メモリに恒常的に保持されていてもよい。
【００２０】
キャッシュ機構４２３はキャッシュメモリを備え、ホスト装置２と記憶部４１との間の入出力データを一時的に記憶するために利用される。つまり、ホスト装置２から送られるコマンドは、キャッシュメモリに保持される。また、記憶部４２のデータボリューム４１ａから読み出されたデータは、ホスト装置２に送り出すに際して、キャッシュメモリに保持される。
【００２１】
また、時計機構４２４は、時刻を計時しており、必要に応じてＣＰＵ４２１に時刻情報（タイムスタンプ）を提供する。各種の制御プログラムは、ＣＰＵ４２１の制御の下、時刻情報を利用する。
【００２２】
本実施形態に係る記憶システム１は、ホスト装置内の時計機構が示す時刻を基準にした時刻情報（以下、「ホスト時刻情報」という。）およびストレージ装置内の時計機構が示す時刻を基準にした時刻情報（以下、「ストレージ時刻情報」という。）のそれぞれにおいてデータを復元できるように設計されている。具体的には、ホスト装置２は、取得したホスト時刻情報を所定のコマンドに含めてストレージ装置４に送出し、ストレージ装置４は、送られてきたホスト時刻情報を所定の領域に格納しておき、ホスト時刻を基準とした復元要求に対しては、格納したホスト時刻情報を利用しながらデータを復元する。
【００２３】
図４は、本発明の一実施形態に係る記憶システムにおけるホスト装置の処理の流れを説明するための図である。具体的には、図４は、ホスト装置２上で実行されるストレージマネージャの処理の流れを説明している。ストレージマネージャは、例えば、ホスト装置２の起動に伴って起動され、ローカルメモリ２２上に常駐する。
【００２４】
すなわち、同図に示すように、ストレージマネージャは、アプリケーションプログラムによるストレージ装置４に対するＩ／Ｏ要求の発生を監視する（ＳＴＥＰ４０１）。Ｉ／Ｏ要求は、ここでは、通常のデータ読み込みまたはデータ書き込み要求である。ストレージマネージャは、例えば、データ書き込み要求を受けると、ストレージ装置４に書き込まれるべき実データを含む書き込み要求コマンドを生成して、ストレージ装置４に対して送出する（ＳＴＥＰ４０２）。図５（ａ）は、書き込み要求コマンドのデータフォーマットを示している。同図に示すように、書き込み要求コマンドは、制御コードフィールドと、データ長フィールドと、実データフィールドとからなる。実データフィールドは、実際に書き込まれるべきデータが入る可変長フィールドである。
【００２５】
ストレージマネージャはさらに、ホスト装置２上のシステム条件が復元ポイント設定条件を満たすか否かを監視する（ＳＴＥＰ４０３）。復元ポイント設定条件テーブルは、復元ポイントが設定されるべき条件を条件項目ごとに定義したテーブルである。図６は、本実施形態における復元ポイント設定条件テーブルの一例を説明するための図である。同図では、復元ポイントが設定されるべき条件として、ホスト装置２上の所定のジョブが完了したか、ホスト装置２における時刻が所定の時間になったか、所定のファイルがクローズされたか等が定義されている。また、アクションは、条件が満たされたときのバックアップ手法を定義しており、本実施形態では、ジャーナリングによるバックアップであるか、またはスナップショットによるバックアップであるかを示している。したがって、同図の復元ポイント設定条件テーブルによれば、例えば、ジョブが完了した場合およびファイルがクローズされた場合には、ジャーナリングによるバックアップが行われ、時刻が毎時００分になった場合には、スナップショットによるバックアップが行われることになる。復元ポイント設定条件テーブルは、編集可能であり、例えば、ストレージマネージャが提供するダイアログボックスにより、システム管理者は、条件を変更し、または新たな条件を定義することもできる。
【００２６】
図４に戻り、ストレージマネージャは、ホスト装置２上のシステム条件が復元ポイント設定条件テーブルにおけるいずれかの条件を満たすと判断した場合（ＳＴＥＰ４０３のＹｅｓ）、当該条件に対応する復元管理要求コマンドを生成し、ストレージ装置４に対して送出する（ＳＴＥＰ４０４）。本実施形態では、復元管理要求コマンドは、復元ポイント設定要求または復元要求のいずれかのコマンドであり、後述するように、ストレージ装置４においてコマンド管理ボリュームに書込まれる。
【００２７】
図５（ｂ）は、復元管理要求コマンドのデータフォーマットの一例を示すである。同図に示すように、復元管理要求コマンドは、制御コードフィールドと、データ長フィールドと、データフィールドとからなる。データフィールドは、さらに、コマンドフィールド、オプションフィールド、ホスト時刻情報フィールドおよびコメントフィールドからなる。コマンドフィールドは、復元ポイント設定要求または復元要求のいずれかが指定される。復元ポイント設定条件テーブルにおけるいずれかの条件を満たすと判断された場合、コマンドフィールドには復元ポイント設定要求が設定される。オプションフィールドは、スナップショットを行うか否かが指定される。「スナップショットなし」が指定された場合、ジャーナリングが指定されたことを意味する。コマンドフィールドに復元ポイント設定要求が設定された復元管理要求コマンドを、単に復元ポイント設定要求コマンドということもある。コメントフィールドは、ジャーナルボリュームに対して格納されるジャーナルデータの一部となる。
【００２８】
ストレージマネージャはまた、復元要求が与えられたか否かを監視する（ＳＴＥＰ４０５）。復元要求は、例えば、ストレージマネージャが提供するダイアログボックスを介してユーザから与えられる。復元要求を受け取ると、ストレージマネージャは、復元管理要求コマンドを生成し、ストレージ装置４に対してこれを送出する（ＳＴＥＰ４０６）。復元管理要求コマンドは、上述したように、コマンドフィールドに復元要求が設定されている。コマンドフィールドに復元要求が設定された復元管理要求コマンドを、単に復元要求コマンドということもある。
【００２９】
図７は、本発明の一実施形態に係る記憶システムにおけるストレージ装置４の処理の流れを説明するための図である。具体的には、同図は、ストレージ装置４の制御部４２上で実行される制御プログラムの処理の流れを説明している。なお、制御プログラムは、図３に示したように、各種の制御モジュールから構成されており、メインモジュール（図３において図示せず）から、適宜、対応する制御モジュールを呼び出すことによって、必要な処理を遂行している。
【００３０】
同図に示すように、ホスト装置２から送られた要求コマンドがキャッシュ機構４２３のキャッシュメモリに格納されると（ＳＴＥＰ７０１）、制御部４２は、時計機構を参照して時刻情報を取得するとともに（ＳＴＥＰ７０２）、当該要求コマンドを解釈する（ＳＴＥＰ７０３）。要求コマンドが読み込み要求である場合（ＳＴＥＰ７０４のＹｅｓ）、制御部４２は、指定されたアドレスに基づいてデータボリューム４１ａからデータを読み出す（ＳＴＥＰ７０５）。この場合、データボリューム４１ａは、実質的に変更されないので、ジャーナリングは行われない。これに対して、要求コマンドが書き込み要求である場合（ＳＴＥＰ７０６のＹｅｓ）、制御部４２は、指定されたアドレスに基づいてデータボリューム４１ａにデータを書き込み（ＳＴＥＰ７０７）、続けてジャーナリングを行う（ＳＴＥＰ７０８）。ジャーナリングは、ジャーナルボリュームに対して、指定されたアドレスを含む書き込みデータと取得した時刻情報とを関連付けたジャーナルデータを格納することにより行われる。なお、ここでいう時刻情報とは、ストレージ時刻情報を意味している。
【００３１】
また、要求コマンドが復元管理要求である場合（ＳＴＥＰ７０９のＹｅｓ）、制御部４２は、取得した時刻情報を関連付けた当該復元管理要求コマンドをコマンド管理ボリューム４１ｄに書き込む（ＳＴＥＰ７０９）。復元管理要求コマンドが復元ポイント設定要求である場合、ホスト時刻情報を含んでいる。詳細は後述するが、制御部４２は、コマンド管理ボリューム４１ｄを監視しており、コマンド管理ボリューム４１ｄに要求コマンドが存在する場合に、当該要求コマンドに応じた処理をさらに実行する。
【００３２】
図８は、本発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で実行される制御プログラムによるコマンド管理ボリュームの制御に関する処理の流れを説明するための図である。具体的には、同図は、制御部４２上の制御プログラムから呼び出されたコマンド管理制御モジュールの処理の流れを示している。
【００３３】
同図に示すように、制御部４２は、コマンド管理ボリューム４１ｄに要求コマンドが書き込まれたか否かを監視している（ＳＴＥＰ８０１）。コマンド管理ボリューム４１ｄにコマンドがある場合（ＳＴＥＰ８０１のＹｅｓ）、制御部４２は、コマンドに対応したサブルーチン処理を実行する（ＳＴＥＰ８０２）。そして、制御部４２は、実行されたコマンドをコマンド管理ボリューム４１ｄから削除する（ＳＴＥＰ８０３）。
【００３４】
図９は、本発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で実行される制御プログラムによるスナップショット処理の流れを説明するための図である。スナップショット処理は、復元ポイント設定要求コマンドにおいて「スナップショットを行う」が設定された場合に、スナップショット制御モジュールにより実行される処理である。
【００３５】
同図に示すように、制御部４２は、まず、ボリューム管理テーブルのスナップショットボリュームリストの終端に、ストレージ時刻情報およびホスト時刻情報等を含むスナップショット情報を登録する（ＳＴＥＰ９０１）。初期状態のように、スナップショットボリュームリスト等が存在していない場合には、制御部４２は、スナップショットボリュームリストを生成する。続いて、制御部４２は、データボリューム４１ａに対するスナップショットデータを取得し、これをスナップショットボリュームに格納する（ＳＴＥＰ９０２）。
【００３６】
図１０は、本発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で管理されるボリューム管理テーブルの一例を説明するための図である。
【００３７】
同図に示すように、ボリューム管理テーブルは、リスト構造を有するテーブルであって、記憶部４１上の論理ボリュームを管理するためのテーブルである。同図では、データボリューム４１ａリスト、ジャーナルボリュームリスト、およびスナップショットボリュームリストが示されている。スナップショットボリュームリストにおける一つのノードは、一回のスナップショット処理に対応するスナップショット情報を格納する。制御部４２は、
図１１は、本発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で実行される制御プログラムによるジャーナリングの処理の流れを説明するための図である。ここでいうジャーナリングは、復元ポイント設定要求コマンドにおいて「スナップショットを行わない」が設定された場合に、ジャーナル制御モジュールにより実行される処理である。
【００３８】
同図に示すように、制御部４２は、まず、ボリューム管理テーブルのジャーナルボリュームリストを参照して、ジャーナルデータを格納すべきジャーナルボリュームを特定する（ＳＴＥＰ１１０１）。具体的には、これは、ジャーナルボリュームリストにおけるＪＶＯＬ−ＤＶＯＬを参照することにより特定される。次に、制御部４２は、特定されたジャーナルボリュームのジャーナルヘッダ領域にジャーナル管理情報を格納する（ＳＴＥＰ１１０２）。ジャーナル管理情報は、例えば、ジャーナルアドレス、ホスト時刻情報、およびストレージ時刻情報を含んでいる。そして、制御部４２は、当該ジャーナルボリュームのジャーナルデータ領域にジャーナルデータを格納する（ＳＴＥＰ１１０３）。復元管理要求コマンドに基づくジャーナリング処理においては、ジャーナルデータは、コメントフィールドに格納されたコメントを含んでいる。
【００３９】
図１２は、本発明の一実施形態に係る記憶システムにおけるストレージ装置上のジャーナルボリュームの構成を説明するための図である。同図に示すように、ジャーナルボリュームは、ジャーナルヘッダ領域とジャーナルデータ領域とから構成されている。ジャーナルヘッダ領域には、例えば、ジャーナルアドレスやストレージ時刻情報、ホスト時刻情報等、ジャーナル管理に必要な情報が格納される。
【００４０】
図１３および図１４は、本発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で実行される制御プログラムによる復元処理の流れを説明するための図である。復元処理は、復元ポイント設定要求コマンドにおいて復元処理要求コマンドが設定された場合に、復元制御モジュールにより実行される処理である。
【００４１】
同図に示すように、復元処理においては、制御部４２は、ホスト装置２からの復元要求がホスト装置２における時刻を基準にデータを復元するものであるのか、ストレージ装置４における時刻を基準にデータを復元するものであるのかを判断する（ＳＴＥＰ１３０１）。
【００４２】
具体的には、制御部４２は、復元要求コマンドに含まれる時刻情報が、ホスト時刻基準またはストレージ時刻基準のいずれであるかを判断する。復元要求コマンドにおける時刻情報は、データを復元したい時点を示す時刻情報であり、ホスト時刻を基準にデータを復元するのか、ストレージ時刻を基準にデータを復元するのかが指定されている。このような時刻情報は、例えば、リカバリマネージャが提供するダイアログボックスを介してユーザによって与えられる。リカバリマネージャは、制御部４２に復元可能な時点を問い合わせ、その結果をユーザに提供することによって、ユーザが選択できるように設計されてもよい。復元要求コマンドに含まれる時刻情報がホスト時刻基準でない場合（ＳＴＥＰ１３０１のＮｏ）、制御部４２は、これをストレージ時刻基準であるものとみなし、ＳＴＥＰ１３０２からＳＴＥＰ１３０７までの処理を行う。これに対して、指定された時刻情報がホスト時刻基準である場合（ＳＴＥＰ１３０１のＹｅｓ）、制御部４２は、図１４に示すＳＴＥＰ１４０１からＳＴＥＰ１４１４までの処理を行う。
【００４３】
すなわち、指定された時刻情報がホスト時刻基準でない場合、当該指定された時刻情報をストレージ時刻基準であるとみなし、制御部４２は、指定された時刻情報に対して、ストレージ時刻を基準とした直近のスナップショット時刻情報を取得する。より具体的には、制御部４２は、ボリューム管理テーブルのスナップショットボリュームリストを参照して、スナップショット処理が行われた時刻を示す時刻情報（スナップショット時刻情報）ＳＳ−ＴＩＭＥ(i)を一つ抽出する（ＳＴＥＰ１３０２）。次に、制御部４２は、指定された時刻情報と抽出したスナップショット時刻情報ＳＳ−ＴＩＭＥ(i)とを比較して、指定された時刻情報がスナップショット時刻情報ＳＳ−ＴＩＭＥ(i)よりも前であるか否かを判断する（ＳＴＥＰ１３０３）。なお、指定された時刻情報と抽出したスナップショット時刻情報ＳＳ−ＴＩＭＥiとが一致する場合には、当該抽出したスナップショット時刻情報ＳＳ−ＴＩＭＥiに従うスナップショットデータをデータボリュームに適用する。この場合、システム管理者が意図した時点におけるデータが復元されることになる。
【００４４】
指定された時刻情報がスナップショット時刻情報ＳＳ−ＴＩＭＥiよりも前でない場合（ＳＴＥＰ１３０３のＮｏ）、制御部４２は、スナップショットボリュームリストから次のスナップショット時刻情報ＳＳ−ＴＩＭＥ(i=i+1)を抽出し（ＳＴＥＰ１３０２）、同様に比較する（ＳＴＥＰ１３０３）。この抽出・比較ステップは、該当するスナップショット時刻情報ＳＳ−ＴＩＭＥiが見つかるまで繰り返される。すべてのスナップショット時刻情報ＳＳ−ＴＩＭＥ(i; 0<i<n+1)について比較して見つからなかった場合には、制御部４２は、ホスト装置２にエラーを返して、処理を終了する。指定された時刻情報がスナップショット時刻情報よりも前である場合（ＳＴＥＰ１３０３のＹｅｓ）、制御部４２は、現在参照しているスナップショット時刻情報ＳＳ−ＴＩＭＥiよりも１つ前に遡ったスナップショット時刻情報ＳＳ−ＴＩＭＥ(S=i-1)を選択して、当該選択したスナップショット時刻情報ＳＳ−ＴＩＭＥ(S)に従うスナップショットデータに基づいてデータボリューム４１ａを復元する（ＳＴＥＰ１３０４）。これによって、指定された時刻情報に対して、ストレージ時刻を基準とした直近のスナップショット時刻情報に従うスナップショットデータを用いてデータが復元されることになる。
【００４５】
さらに、制御部４２は、ジャーナルボリューム４１ｂのジャーナルヘッダ領域を参照して、ジャーナリングが行われた時刻を示す時刻情報（ジャーナル時刻情報）ＪＨ−ＴＩＭＥ(i)を抽出する（ＳＴＥＰ１３０５）。次に、制御部４２は、指定された時刻情報と抽出したジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(i)とを比較して、指定された時刻情報がジャーナル時刻情報ＪＨ−ＨＴＩＭＥiよりも前であるか否かを判断する（ＳＴＥＰ１３０６）。指定された時刻情報がジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(s)iよりも古くない場合（ＳＴＥＰ１３０６のＮｏ）、制御部４２は、次のジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(i=i+1)を抽出し（ＳＴＥＰ１３０５）、同様に、判断する（ＳＴＥＰ１３０６）。指定された時刻情報がジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(i)よりも前である場合（ＳＴＥＰ１３０６のＹｅｓ）、制御部４２は、現在参照しているジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(i)よりも１つ過去に遡ったジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(J=i-1)を選択し、復元に用いたスナップショット時刻情報ＳＳ−ＴＩＭＥ(S)に示される時刻以降であって当該選択したジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(J)までのジャーナル時刻情報に従うジャーナルデータを抽出し、順次、データボリューム４１ａに適用することによって、データボリューム４１ａを復元する（ＳＴＥＰ１３０７）。これにより、指定された時刻情報に対して、ストレージ時刻を基準としたジャーナル時刻情報に従うジャーナルデータを用いてデータが復元されることになる。したがって、上記のスナップショットデータによる復元と組み合わせることによって、データの復元が高速に行われる。
【００４６】
一方、ＳＴＥＰ１３０１において指定された時刻情報がホスト時刻基準である場合、制御部４２は、まず、ボリューム管理テーブルのスナップショットボリュームリストを参照して、スナップショットが行われた、ホスト時刻基準のスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(i)を一つ抽出する（図１４のＳＴＥＰ１４０１）。次に、制御部４２は、指定された時刻情報と抽出したスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(i)とを比較して、指定された時刻情報がスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(i)より前であるか否かを判断する（ＳＴＥＰ１４０２）。指定された時刻情報がスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(i)よりも古くない場合（ＳＴＥＰ１４０２のＮｏ）、制御部４２は、次のスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(i=i+1)を抽出し（ＳＴＥＰ１４０１）、同様に判断する（ＳＴＥＰ１４０２）。この抽出ステップは、該当するスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(i)が見つかるまで繰り返される。これによって、指定された時刻情報に対して、ホスト時刻を基準にした直近のスナップショット時刻情報ＳＳ−ＨＴＩＭＥiが取得されることになる。すべてのスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(i)について比較して見つからなかった場合には、制御部４２は、ホスト装置２に対してエラーを返して、終了する。
【００４７】
指定された時刻情報がスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(i)よりも前である場合（ＳＴＥＰ１４０２のＹｅｓ）、制御部４２は、１つ過去に遡ったホスト時刻基準のスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(S=i-1)を抽出して、当該２つのスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(i)とＳＳ−ＨＴＩＭＥ(S)の間に、他のスナップショット時刻情報ＳＳ−ＴＩＭＥ(p)が一つ以上あるか否かをさらにチェックする（ＳＴＥＰ１４０３）。ここでいう他のスナップショット時刻情報ＳＳ−ＴＩＭＥ(p)とは、ストレージ時刻基準で行われたスナップショットの時刻を示す時刻情報である。このようなスナップショット時刻情報ＳＳ−ＴＩＭＥ(p)は、ストレージ装置４がホスト装置２に依存することなく（つまり、ホスト装置２の要求に基づかないで）スナップショットが行われた場合や、ホスト時刻情報を含まないスナップショット要求に基づいてスナップショットが行われた場合に、スナップショットボリュームリストに格納される。
【００４８】
他のスナップショット時刻情報ＳＳ−ＴＩＭＥ(p)がない場合（ＳＴＥＰ１４０３のＮｏ）、当該スナップショット時刻情報ＳＳ−ＨＴＩＭＥ(S)に従うスナップショットデータに基づいてデータボリューム４１ａを復元する（ＳＴＥＰ１４０７）。一方、他のスナップショット時刻情報ＳＳ−ＴＩＭＥ(p)がある場合、制御部４２は、指定されたホスト時刻基準の時刻情報に対応するストレージ時刻基準のスナップショット時刻情報ＳＳ−ＴＩＭＥ(S')を抽出するため、ＳＴＥＰ１４０４〜１４０６の処理を行う。
【００４９】
すなわち、他のスナップショット時刻情報ＳＳ−ＴＩＭＥ(p)が一つ以上ある場合（ＳＴＥＰ１４０３のＹｅｓ）、制御部４２は、ホスト時刻基準のスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(S)とストレージ時刻基準のスナップショット時刻情報ＳＳ−ＴＩＭＥ(S)との差分時間δＴを求める（ＳＴＥＰ１４０４）。つまり、図１０に示したコマンド管理ボリュームのスナップショットボリュームリストにおける同一ノード内のリストデータ、スナップショット時刻情報ＳＳ−ＴＩＭＥおよびＳＳ−ＨＴＩＭＥが参照される。
【００５０】
次に、制御部４２は、ストレージ時刻基準のスナップショット時刻情報ＳＳ−ＴＩＭＥ(S)を差分時間δＴによりオフセットしたオフセット時刻情報に対応するスナップショット時刻情報ＳＳ−ＴＩＭＥ(S.offset)を抽出する（ＳＴＥＰ１４０５）。制御部４２は、オフセットされたスナップショット時刻情報ＳＳ−ＴＩＭＥ(S.offset)とストレージ時刻基準のスナップショット時刻情報ＳＳ−ＴＩＭＥ（p)とを比較して、オフセットされたスナップショット時刻情報ＳＳ−ＴＩＭＥ(S.offset)がストレージ時刻基準のスナップショット時刻情報ＳＳ−ＴＩＭＥ(p)よりも後であるか否かを判断する（ＳＴＥＰ１４０６）。制御部４２は、スナップショット時刻情報ＳＳ−ＴＩＭＥ(S.offset)がスナップショット時刻情報ＳＳ−ＴＩＭＥ(p)よりも後でない場合、次のオフセットされたスナップショット時刻情報ＳＳ−ＴＩＭＥ(S.offset=S.offset+1)を抽出して（ＳＴＥＰ１４０５）、同様に判断する（ＳＴＥＰ１４０６）。スナップショット時刻情報ＳＳ−ＴＩＭＥ(S.offset)がスナップショット時刻情報ＳＳ−ＴＩＭＥ(p)よりも後である場合、制御部４２は、現在参照しているスナップショット時刻情報ＳＳ−ＨＴＩＭＥ(S.offset)に従うスナップショットデータに基づいてデータボリューム４１ａを復元する（ＳＴＥＰ１４０７）。
【００５１】
さらに、制御部４２は、ジャーナルボリューム４１ｂのジャーナルヘッダ領域を参照して、ジャーナリングが行われた、ホスト時刻基準のジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(j)を抽出する（ＳＴＥＰ１４０８）。次に、制御部４２は、指定された時刻情報と抽出したジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(j)を比較して、指定された時刻情報がジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(j)よりも前であるか否かを判断する（ＳＴＥＰ１４０９）。指定された時刻情報がジャーナル時刻情報ＪＨ−ＨＴＩＭＥiよりも古くない場合（ＳＴＥＰ１４０９のＮｏ）、制御部４２は、次のジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(j=j+1を抽出し（ＳＴＥＰ１４０８）、同様に、判断する（ＳＴＥＰ１４０９）。一方、指定された時刻情報がジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(j)よりも古い場合（ＳＴＥＰ１４０９のＹｅｓ）、制御部４２は、１つ過去に遡ったホスト時刻を基準にしたジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(J=j-1)を抽出して、当該２つのジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(j)とＪＨ−ＨＴＩＭＥ(J)の間に、他のジャーナル時刻情報ＪＨ−ＴＩＭＥ(q)が一つ以上あるか否かをさらにチェックする（ＳＴＥＰ１４１０）。ここでいう他のジャーナル時刻情報とは、ストレージ時刻基準で行われたジャーナリングの時刻を示す時刻情報である。
【００５２】
他のジャーナル時刻情報ＪＨ−ＴＩＭＥ(q)がない場合（ＳＴＥＰ１４１０のＮｏ）、データボリューム４１ａに反映するために用いたスナップショット時刻情報ＳＳ−ＴＩＭＥ以降のジャーナル時刻情報であって、１つ過去に遡ったジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(J)までのジャーナルデータを、順次に、データボリューム４１ａに適用することによって、データボリューム４１ａを復元する（ＳＴＥＰ１４１４）。
【００５３】
一方、他のジャーナル時刻情報ＪＨ−ＴＩＭＥ(q)が一つ以上ある場合、制御部４２は、指定されたホスト時刻基準の時刻情報に対応するストレージ時刻基準のジャーナル時刻情報を抽出するため、ＳＴＥＰ１４１０〜１４１３の処理を行う。
【００５４】
すなわち、他のジャーナル時刻情報ＪＨ−ＴＩＭＥ(q)が一つ以上ある場合（ＳＴＥＰ１４１０のＹｅｓ）、制御部４２は、ホスト時刻基準の１つ前のジャーナル時刻情報ＪＨ−ＨＴＩＭＥ(J)と、これに対応するストレージ時刻基準のジャーナル時刻情報ＪＨ−ＴＩＭＥ(J)との差分時間δＴを求める（ＳＴＥＰ１４１１）。次に、制御部４２は、ストレージ時刻基準のジャーナル時刻情報ＪＨ−ＴＩＭＥ（J)を差分時間δＴによりオフセットしたオフセット時刻情報に対応するジャーナル時刻情報ＪＨ−ＴＩＭＥ(J.offset)を抽出する（ＳＴＥＰ１４１２）。そして、制御部４２は、オフセットされたジャーナル時刻情報ＳＳ−ＴＩＭＥ（J.offset)とストレージ時刻基準のジャーナル時刻情報ＪＨ−ＴＩＭＥ(j)とを比較して、オフセットされたジャーナル時刻情報ＪＨ−ＴＩＭＥ(J.offset)がストレージ時刻基準のジャーナル時刻情報ＪＨ−ＴＩＭＥ(j)よりも前であるか否かを判断する（ＳＴＥＰ１４１３）。制御部４２は、ジャーナル時刻情報ＳＳ−ＴＩＭＥ(J.offset)がジャーナル時刻情報ＪＨ−ＴＩＭＥ(j)よりも前でない場合、次のオフセットされたジャーナル時刻情報ＪＨ−ＴＩＭＥ(J.offset=J.offset+1を抽出して、同様に判断する。ジャーナル時刻情報ＪＨ−ＴＩＭＥ（J.offset)がジャーナル時刻情報ＪＨ−ＴＩＭＥ(j)よりも古い場合、制御部４２は、データボリューム４１ａを復元するために用いたスナップショット時刻情報ＳＳ−ＴＩＭＥ(S)以降のジャーナル時刻情報であって、直近のジャーナル時刻情報ＪＨ−ＨＴＩＭＥ（J.offset)までのジャーナルデータを、順次に、データボリューム４１ａに適用することによって、データボリューム４１ａを復元する（ＳＴＥＰ１４１４）。これによって、システム管理者が意図した通りのホスト時刻基準の時刻におけるデータが復元されることになる。
【００５５】
図１５は、本発明の一実施形態に係る記憶システムにおけるデータのバックアップおよび復元処理を説明するための図であり、ホスト時刻およびストレージ時刻に基づくタイムシーケンスが示されている。
【００５６】
同図において、ストレージ時刻情報およびホスト時刻情報は、ストレージ装置４内に格納される時刻情報である。上述したように、例えば、スナップショット時刻情報であれば、スナップショットが行われる際にスナップショットボリュームリストに格納され、ジャーナル時刻情報であれば、ジャーナリングが行われる際にジャーナルボリュームのヘッダ領域に格納される。ホスト装置２からホスト時刻情報を含むコマンドが送られてきた場合にのみ、ストレージ装置４はホスト時刻情報を認識できるので、ホスト時刻情報を格納することができる。したがって、ホスト時刻情報を含むコマンドが送られてこなかった場合、ホスト時刻情報はnullとして扱われる。
【００５７】
「通常書き込み」に関わるタイムシーケンスは、通常の書き込み要求コマンドが発行された時刻を示している。同図は、ストレージ時刻基準において、９：５０、１０：１０、１０：２０、１０：４５および１１：１０に書き込み要求コマンドが発行され、これに基づいて書き込みが行われたことを示している。通常の書き込み要求コマンドは、ホスト時刻情報を含んでいないので、ホスト時刻情報はnullとなっている。
【００５８】
「復元ポイント設定」に関わるタイムシーケンスは、復元ポイント設定要求コマンドが発行された時刻を示している。上述したように、復元ポイント設定要求コマンドは、復元管理要求コマンドにおいて復元ポイント設定が指定された場合のコマンドである。復元ポイント設定要求コマンドは、オプションとしてスナップショットの有無を指定することができる。同図では、「スナップショットあり」の場合を黒矢印、「スナップショットなし」の場合を白矢印で示している。
【００５９】
「ジャーナリング」に関わるタイムシーケンスは、ストレージ装置４においてジャーナリングが行われた時刻を示している。ジャーナリングは、通常の書き込み要求コマンドに基づく書き込み処理に付随して行われるものと、復元ポイント設定要求コマンドに基づいて行われるものとがある。すなわち、復元ポイント設定要求コマンドにおいて、「スナップショットなし」が指定された場合、ストレージ装置４においてはジャーナリングのみが行われる。同図では、ストレージ時刻基準において、９：５０、１０：１０、１０：２０、１０：３０、１０：４５分および１１：１０にジャーナリングが行われたことが示されている。
【００６０】
「スナップショット」に関わるタイムシーケンスは、ストレージ装置４においてスナップショットが行われた時刻を示している。スナップショットは、ホスト装置２依存して行われるものと、ストレージ装置４が主体的に行うものとがある。ホスト装置２に依存したスナップショットは、復元ポイント設定要求コマンドに基づいて行われるものである。同図では、ストレージ時刻基準において、１０時００分および１１時００分にホスト依存のスナップショットが行われたことが示されている。
【００６１】
以上を前提にして、ホスト装置２上のユーザが、ホスト時刻基準で１０時４０分のデータを復元しようとする場合、ストレージマネージャのダイアログボックスにおいて１０：４０のホスト時刻基準の時刻情報を指定する。
【００６２】
ストレージマネージャは、この指示に基づいて、ホスト時刻基準の時刻情報“１０：４０”を含む復元要求コマンドを生成し、ストレージ装置４に送出する。
【００６３】
ストレージ装置４の制御部４２は、復元要求コマンドを受けて、スナップショットボリュームリストを参照し、ホスト時刻基準で、スナップショット時刻情報を古いものから順に検索し、１０：４０に対して直近のスナップショット時刻情報を抽出する。本例の場合、１０：３０を示すスナップショット時刻情報が抽出される。
【００６４】
次に、制御部４２は、ジャーナルボリュームのジャーナルヘッダ領域を参照し、ホスト時刻基準で、ジャーナル時刻情報を古いものから検索する。しかしながら、本例の場合、ホスト時刻情報を含むジャーナル時刻情報は、１１：００を示すジャーナル時刻情報までない。そこで、制御部４２は、ホスト時刻情報とストレージ時刻情報とが一対で格納されたリストデータに基づいて、ホスト時刻とストレージ時刻との差分時間δＴを求める。したがって、本例では、ホスト時刻がストレージ時刻に対して３０分の遅れがあることが認識される。制御部４２は、ストレージ時刻基準のストレージ時刻情報に差分時間＋３０分をオフセットしたジャーナル時刻情報であって、１０：４０までのジャーナル時刻情報を検索する。したがって、本例では、ホスト時刻基準で１０：４０（ストレージ時刻基準で１０：１０）のジャーナル時刻情報が抽出される。
【００６５】
そして、制御部４２は、抽出した直近のスナップショット時刻情報に従うスナップショットデータ（すなわち、ホスト時刻基準で１０：３０のスナップショットデータ）をデータボリューム４１ａに適用し、その後、抽出したジャーナル時刻情報に従うジャーナルデータ（すなわち、ストレージ時刻基準で１０：１０のジャーナルデータ）を、スナップショットデータを適用したデータボリューム４１ａにさらに適用して、最終的なデータボリューム４１ａを得る。これにより、ホスト時刻基準のデータが復元されることになる。
【００６６】
本実施形態に係る記憶システムによれば、すでに述べたようなまたは以下に述べるような効果ないしは利点を奏する。
【００６７】
すなわち、本実施形態に係る記憶システム１においては、ホスト装置２は、ストレージ装置４に対して所定のアクセスを行う場合には、内部で取得したホスト時刻情報を所定のコマンドに含めてストレージ装置４に送出し、ストレージ装置４は、送られてきたホスト時刻情報を所定の領域に格納しておく。ストレージ装置４は、ホスト装置２からホスト時刻を基準にした復元要求を受けた場合には、格納したホスト時刻情報を利用しながらデータを復元する。したがって、本実施形態によれば、システム管理者は、ホスト時刻を基準にしてデータを復元することができるようになる。
【００６８】
また、本実施形態に係る記憶システム１においては、復元要求に際して、ホスト時刻を基準に復元するのか、またはストレージ時刻を基準に復元するのかが指定される。したがって、本実施形態によれば、システム管理者は、障害の原因や内容に応じた適切な時刻を基準にしてデータを復元することができるようになる。
【００６９】
さらに、本実施形態に係る記憶システム１においては、ホスト時刻を基準に復元要求がされた場合であって、ストレージ装置４内に、対応するホスト時刻情報が格納されていない場合であっても、ホスト時刻とストレージ時刻との時間差を考慮して、可能な限り、復元要求されたホスト時刻に近い時刻で、データを復元することができる。
【００７０】
以上のように、本実施形態によれば、システム管理者は、本来期待した通りのデータの復元を行うことができるようになる。
【００７１】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。例えば、上述した処理はシーケンシャルに説明されているが、特にこれにこだわるものではない。従って、動作に矛盾が生じない限り、処理の順序を入れ替えまたは並行動作するように構成されても良い。
【００７２】
また、本実施形態に係る記憶システムでは、管理プログラムとしてのストレージマネージャがストレージ装置４に対して各種のコマンドを発行するように設計されているが、特にこれに限定されるものではない。例えば、ストレージマネージャの機能の全部または一部をアプリケーションプログラムに組み込むことによって、アプリケーションプログラムがストレージ装置４に対して各種のコマンドを発行するようにしてもよい。
【００７３】
さらに、本実施形態に係る記憶システムでは、バックアップボリュームの一部としてコマンド管理ボリュームが記憶部上に形成されているが、特にこれに限定されるものではない。例えば、コマンド管理ボリュームは、制御部のローカルメモリ上に形成されていてもよい。
【産業上の利用可能性】
【００７４】
本発明は、コンピュータ上で処理されるデータを記憶する記憶装置に幅広く適用することができる。
【図面の簡単な説明】
【００７５】
【図１】図１は、本発明の一実施形態に係る記憶システムの概略を示す図である。
【図２】図２は、本発明の一実施形態に係る記憶システムのホスト装置におけるプログラムスタック構造の一例を示す図である。
【図３】図３は、本発明の一実施形態に係るストレージ装置における制御部のメモリを説明するための図である。
【図４】図４は、本発明の一実施形態に係る記憶システムにおけるホスト装置の処理の流れを説明するための図である。
【図５】図５は、本発明の一実施形態に係る記憶システムにおける要求コマンドのデータフォーマットの一例を示す図である。
【図６】図６は、本発明の一実施形態に係る記憶システムにおける復元ポイント設定条件テーブルの一例を示す図である。
【図７】図７は、本発明の一実施形態に係る記憶システムにおけるストレージ装置４の処理の流れを説明するための図である。
【図８】図８は、本発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で実行される制御プログラムによるコマンド管理ボリュームの制御に関する処理の流れを説明するための図である。
【図９】図９は、本発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で実行される制御プログラムによるスナップショット処理の流れを説明するための図である。
【図１０】図１０は、発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で管理されるボリューム管理テーブルの一例を説明するための図である。
【図１１】図１１は、本発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で実行される制御プログラムによるジャーナリングの処理の流れを説明するための図である。
【図１２】図１２は、本発明の一実施形態に係る記憶システムにおけるストレージ装置上のジャーナルボリュームの構成を説明するための図である。
【図１３】図１３は、本発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で実行される制御プログラムによる復元処理の流れを説明するための図である。
【図１４】図１４は、本発明の一実施形態に係る記憶システムにおけるストレージ装置の制御部上で実行される制御プログラムによる復元処理の流れを説明するための図である。
【図１５】図１５は、本発明の一実施形態に係る記憶システムにおけるデータのバックアップおよび復元処理を説明するための図である。
【符号の説明】
【００７６】
１…記憶システム
２…ホスト装置
２１…ＣＰＵ
２２…ローカルメモリ
２３…インターフェース部
２４…ローカル入出力装置
２５…時計機構
３…ネットワークシステム
４…ストレージ装置
４１…記憶部
４１ａ…データボリューム
４１ｂ…ジャーナルボリューム
４１ｃ…スナップショットボリューム
４１ｄ…コマンド管理ボリューム
４２…制御部
４２１…ＣＰＵ
４２２…ローカルメモリ
４２３…キャッシュ機構
４２４…時計機構
【図１】
2007323507.tif 000003
【図２】
2007323507.tif 000004
【図３】
2007323507.tif 000005
【図４】
2007323507.tif 000006
【図５】
2007323507.tif 000007
【図６】
2007323507.tif 000008
【図７】
2007323507.tif 000009
【図８】
2007323507.tif 000010
【図９】
2007323507.tif 000011
【図１０】
2007323507.tif 000012
【図１１】
2007323507.tif 000013
【図１２】
2007323507.tif 000014
【図１３】
2007323507.tif 000015
【図１４】
2007323507.tif 000016
【図１５】
2007323507.tif 000017