説明

記憶システム並びにこれを用いたデータの管理方法

【課題】いくつかの復元ポイントにおいてデータの復元を試みた場合であっても、効率的にデータを復元できるようにする。
【解決手段】本発明は、ホスト装置に接続されるストレージ装置であって、各種論理ボリュームが形成された記憶部と、記憶部との間のI/O処理を制御する制御部とを備える。制御部は、データボリュームに対するジャーナルデータをジャーナルボリュームに格納すると共に、データボリュームに対するスナップショットデータをスナップショットボリュームに格納する。制御部は、復元ポイントを指定した復元要求に従い、スナップショットボリュームに格納されたスナップショットデータ適用し、さらにジャーナルボリュームに格納されたジャーナルデータを適用して、復元ポイントにおけるデータボリュームを復元する。このとき、制御部は、ジャーナルデータが適用されるデータボリューム上のデータをジャーナルバックアップボリュームに待避する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶システム及びこれを用いたデータの管理方法に関し、特に、ジャーナリングを行う記憶システム及びこの技術を利用したデータのバックアップ及びデータの復元方法に関する。
【背景技術】
【0002】
コンピュータシステムにおけるデータの消失を防止するため、ストレージ装置を用いたデータのバックアップおよび復元・復旧が行われる。このような復元・復旧を目的としたデータのバックアップとして、例えば、スナップショットやジャーナリングと呼ばれる技術が知られている。スナップショットは、ある時点におけるファイルシステムまたはボリュームについてのデータイメージを保存する技術である。例えば、障害によりデータが失われた場合であっても、保存されたスナップショットデータを参照することによって、失われる前のデータを復元することができる。また、ジャーナリングは、データの書き込み時に、書き込まれるデータおよびその時刻をジャーナルデータとして保存する技術である。近年では、ジャーナリング技術およびスナップショット技術を融合した高速なデータ復元機構を実装したストレージ装置が注目されている。
【0003】
一つの例として、下記特許文献1に示されるように、ストレージ装置は、ホスト装置からの書き込み要求に基づき、データボリュームに保存されるアプリケーションデータについてジャーナルデータを保存するとともに、例えば周期的に当該データボリュームに対するスナップショットデータを保存しておく。そして、ある特定の時点におけるデータを復元する場合は、その時点に最も近いスナップショットデータを適用してデータを復元し、さらにジャーナルデータを適用することにより、最終的なデータを復元する。
【特許文献1】特開2005-18738号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
データの復元作業において、一般に、システム管理者は、復元ポイントと呼ばれるデータが復元されるべき過去の時点を選んで、当該復元ポイントにおけるデータボリューム上のデータを復元する。この場合、システム管理者は、一つの復元ポイントにおけるデータを復元するだけでなく、最適な復元結果を求めて、いくつかの復元ポイントにおけるデータの復元を試みることが一般的である。
【0005】
従来のデータ復元方法においては、先の復元ポイントに替えて別の復元ポイントについてデータを復元する場合、その都度、上述した手順を踏む必要があった。すなわち、復元ポイントを単に変更する場合であっても、スナップショットデータの適用、ジャーナルデータの適用といった一連の処理を行わなければならなかった。これら一連の作業は、システム負荷が大きく、そのために復元に要する時間がかかるにもかかわらず、効率的なデータの復元について何ら考慮がなされていなかった。
【課題を解決するための手段】
【0006】
本発明のある観点によれば、本発明は、ホスト装置に接続されるストレージ装置であって、データのバックアップおよび復元を行うストレージである。当該ストレージは、少なくともデータボリューム、ジャーナルボリューム、スナップショットボリューム、ジャーナルバックアップボリュームが形成された記憶部と、記憶部との間のI/O処理を制御する制御部とを備える。そして、制御部は、データボリュームに対するジャーナルデータを作成し、当該作成したジャーナルデータをジャーナルボリュームに格納するジャーナリング部と、データボリュームに対するスナップショットデータを作成し、当該作成したスナップショットデータをスナップショットボリュームに格納するスナップショット部と、復元ポイントを指定した復元要求に従って、スナップショットボリュームに格納されたスナップショットデータ及び前記ジャーナルボリュームに格納されたジャーナルデータを適用して、復元ポイントにおけるデータボリュームを復元するデータ復元部と、データ復元部によってジャーナルデータが適用される前記データボリューム上のデータをジャーナルバックアップボリュームに格納するジャーナルデータバックアップ部と、を備えている。
【0007】
そして、スナップショット部は、データ復元部により復元されたデータボリュームに対して直ちにスナップショットデータを作成し、当該作成したスナップショットデータをスナップショットボリュームに格納する。
【0008】
また、本発明の他の観点によれば、本発明は、ホスト装置に接続されるストレージ装置においてデータのバックアップ及び復元を行うデータ管理方法である。当該データ管理方法では、ストレージ装置は、記憶部上にデータボリューム、ジャーナルボリューム、スナップショットボリューム及びジャーナルバックアップボリュームを形成し、データボリュームに対するジャーナルデータをジャーナルボリュームに格納するとともに、データボリュームに対する第1のスナップショットデータをスナップショットボリュームに格納しておく。次に、ストレージ装置は、復元ポイントを指定した復元要求を受け付けると、ベースとなるデータボリュームに対してスナップショットボリュームに格納されたスナップショットデータを適用し、さらに、当該スナップショットデータが適用されたベースとなるデータボリュームに対してジャーナルボリュームに格納されたジャーナルデータを適用する。ストレージ装置は、ジャーナルデータを適用する際に、ジャーナルデータが適用されるベースとなるデータボリューム上のデータをジャーナルバックアップボリュームに格納する。
【0009】
そして、ジャーナルデータが適用されることにより復元されたデータボリュームに対して直ちに第2のスナップショットデータを作成し、当該作成したスナップショットデータをスナップショットボリュームに格納する。
【発明の効果】
【0010】
本発明によれば、最適な復元結果を求めて、いくつかの復元ポイントにおいてデータの復元を試みた場合であっても、効率的にデータを復元することができるようになる。
【発明を実施するための最良の形態】
【0011】
次に、本発明の実施形態について、図面を参照しつつ説明する。
【0012】
図1は、本発明の一実施形態に係るストレージ装置を用いて構成されたストレージシステムを示している。同図に示すように、ストレージシステム1は、上位装置として機能するホスト装置2が、ネットワークシステム3を介して、下位装置として機能するストレージ装置4と接続されることにより構成されている。
【0013】
ホスト装置2は、典型的には、パーソナルコンピュータやワークステーション、メインフレーム等が該当する。ホスト装置2は、CPU(Central Processing Unit)21、メインメモリ22、インターフェースユニット23およびローカル入出力装置24等のハードウェア資源を備え、これらは内部バス25により相互に接続されている。ホスト装置2はまた、デバイスドライバやオペレーティングシステム(OS)、アプリケーションプログラム等のソフトウェア資源を備えている。これによって、ホスト装置2は、CPU21の制御の下、各種のプログラムを実行して、ハードウェア資源との協働作用により、所望の処理を実現する。例えば、ホスト装置2は、CPU21の制御の下、OS上でアプリケーションプログラムを実行する。アプリケーションプログラムは、ユーザがホスト装置2によって本来的に遂行しようとする処理を実現するためのプログラムである。アプリケーションプログラムは、その実行に際して、ストレージ装置4に対してデータの読み込みや書き込み等のアクセスを要求する。このため、ホスト装置2には、ストレージマネージャが実装される。ストレージマネージャは、ストレージ装置4に対するアクセスを管理するための管理プログラムである。ストレージマネージャはまた、例えば、ユーザがどの時点でデータを復元すべきかを示すマーカーを受け取って管理しておき、ユーザがデータの復元を必要とした場合に、そのマーカーを提示して、データの復元要求を作成する。マーカーは、例えば、ユーザのアクションによって任意に設定されたり、あるいはアプリケーションプログラムが終了した時点が選択され設定される。ストレージマネージャは、OSとは独立に設計されてもよいし、またはその一部として組み込まれていてもよい。各種のプログラムは、1つのモジュールとして構成されてもよいし、複数のモジュールとして構成されてもよい。
【0014】
ネットワークシステム3は、例えばSAN(Storage Area Network)、LAN(Local Area Network)、インターネット、公衆回線又は専用回線などから構成される。このネットワークシステム3を介したホスト装置2とストレージ装置4との間の通信は、例えば、ネットワーク3がSANである場合には、ファイバーチャネルプロトコルに従って行われる。また、ネットワーク3がLANである場合にはTCP/IPプロトコルに従って行われる。
【0015】
ストレージ装置4は、複数の物理的なディスクデバイスからなる記憶部41と、当該記憶部41を統括的に制御する制御部42とを備えている。
【0016】
ディスクデバイスは、例えばFC(Fibre Channel)ディスク、FATA(Fibre Attached Technology Adapted)や、SATA(Serial AT Attachment)ディスク、光ディスクドライブ等から構成される。1又は複数のディスクデバイスが提供する記憶領域上には、1又は複数の論理的なボリューム(以下、「論理ボリューム」という。)が定義される。
【0017】
各論理ボリュームには、固有の識別子(LUN:Logical Unit Number)が割り当てられ、論理ボリュームは当該識別子によって管理される。論理ボリュームに対するアクセスは、所定サイズのブロックを単位として行われる。各ブロックには、論理ブロックアドレス(LBA:Logical Block Address)が割り当てられている。したがって、ホスト装置2は、識別子および論理ブロックアドレスに基づく論理アドレスをストレージ装置4の制御部42に対して指定することにより、論理ボリュームに対するアクセスを行うことができる。
【0018】
各論理ボリュームには、例えば利用目的に応じた属性が与えられる。本実施形態では、記憶部41上に、データボリューム41aと、ジャーナルボリューム41bと、スナップショットボリューム41cと、ジャーナルバックアップボリューム41dとが定義されている。ここで、ジャーナルボリューム41b、スナップショットボリューム41c、及びジャーナルバックアップボリューム41dは、データのバックアップ用のボリュームとして機能する。
【0019】
データボリューム41aは、アプリケーションプログラムがデータを読み書きするために使用するボリュームである。他の実施形態で後に説明されるように、データボリューム41aが仮想論理ボリュームの一部として定義されていてもよい。ジャーナルボリュームは、データボリューム41aの更新履歴情報であるジャーナルデータを格納するためのボリュームである。ジャーナルデータは、典型的には、データボリューム41aに書き込まれたデータと、当該データが書き込まれたデータボリューム41a上のアドレスおよび当該データが書き込まれた時刻等の管理情報とから構成される。スナップショットボリューム41cは、ある時点におけるデータボリューム41aのスナップショットデータ(イメージ)を格納するためのボリュームである。スナップショットデータは、差分データとして構成されてもよい。ジャーナルバックアップボリューム41dは、データを復元する際に、ジャーナルデータが適用されるデータボリューム41a上のデータを待避すべく、格納するボリュームである。
【0020】
制御部42は、主として、CPU421と、メモリ422と、キャッシュ機構423とを備えたシステム回路であり、ホスト装置2と記憶部41との間の入出力処理を統括的に制御する。また、制御部42は、複数のチャネルアダプタ424及び複数のディスクアダプタ425とを備える。メモリ422は、CPU421のメインメモリとして機能する。メモリ422は、CPU421の利用に供するため、図2に示すように、例えば、各種の制御プログラムやシステム構成情報、管理テーブル等を記憶する。本実施形態では、制御プログラムとして、I/O制御プログラム、ジャーナル制御プログラム、スナップショット制御プログラム、データ復元制御プログラムが実装されている。また、ストレージ装置4内の障害の有無を監視し、障害が発生したときにこれをユーザ(システム管理者)に通知する等の処理を行う監視制御プログラムも実装されている。これら制御プログラムや各種の情報等は、例えば、ストレージ装置4に電源が投入された時点で、CPU421の制御の下、所定のディスクデバイスから読み出され、メモリ422上に展開される。または、メモリ422が再書き込み可能な不揮発性メモリを含んで構成されている場合には、当該不揮発性メモリに恒常的に保持されていてもよい。
【0021】
図1に戻り、キャッシュ機構423はキャッシュメモリを備え、ホスト装置2と記憶部41との間の入出力データを一時的に記憶するために利用される。つまり、ホスト装置2から送られるコマンドは、キャッシュメモリに保持される。また、記憶部42のデータボリューム41aから読み出されたデータは、ホスト装置2に送り出す際して、キャッシュメモリに保持される。
【0022】
チャネルアダプタ424は、それ自体、マイクロプロセッサと、メモリと、通信インターフェースとを備えたシステム回路であり、ネットワークシステム3に接続するためのポートを提供している。チャネルアダプタ424は、ホスト装置2からネットワークシステム3を介して送信される各種のコマンドを解釈し、実行する。チャネルアダプタ424のポートには、ネットワークアドレスが割り当てられている。これにより、個々のチャネルアダプタは、ネットワークシステム3上で識別され、NAS(Network Attached Storage)として機能することができるようになっている。
【0023】
ディスクアダプタも425また、それ自体、マイクロプロセッサと、メモリと、通信インターフェースとを備えたシステム回路であり、記憶部41のディスクデバイスとの間で通信プロトコル制御を行う入出力インターフェースとして機能している。ディスクアダプタ425は、例えば、ファイバーチャネルケーブルを介して、記憶部41の対応するディスクデバイスに接続され、ファイバーチャネルプロトコルに従ってディスクデバイスとの間でデータの受け渡しを行う。
【0024】
本実施形態に係るストレージシステムにおけるデータ管理は、データボリューム41aに対する所定のバックアップ処理が行われることを前提としている。すなわち、データボリューム41aの更新履歴情報であるジャーナルデータが収集され、ジャーナルボリューム41bに格納される。制御部42に実装されたジャーナル制御プログラムは、このようなジャーナリング処理を行う。また、定期又は不定期に、データボリューム41aに対するスナップショットデータが取得され、スナップショットボリューム41cに格納される。そして、これらバックアップされたデータは、データの復元処理の際に供されるように、構成されている。制御部42に実装されたスナップショット制御プログラムは、このようなスナップショット処理を行う。
【0025】
ジャーナルデータは、典型的には、ホスト装置2からデータの書き込み要求がある毎に作成される。また、スナップショットデータは、例えば、予め設定された時刻に、またはホスト装置2からのスナップショット要求に応答して、作成される。ホスト装置2では、どの時点におけるデータが復元可能であるかを示すマーカーが作成され、マーカー管理テーブルにおいて管理される。ホスト装置2は、システム管理者の指示の下、当該マーカーに従って指定された復元ポイントを含む復元要求を作成し、ストレージ装置4に送出する。
【0026】
図3は、本実施形態に係るストレージ装置4におけるデータのバックアップ処理および復元処理の概略を説明している。同図に示すように、ストレージ装置4は、ホスト装置2から書き込み対象データを伴ったデータ書き込み要求を受け取ると、当該書き込み対象データをデータボリューム41a上の所定の領域に書き込むとともに(図中A)、当該データを書き込んだ領域のアドレス及び日時からなるジャーナル管理情報と当該データとを関連付けたジャーナルデータを作成し、当該作成したジャーナルデータをジャーナルボリューム41bに格納する(図中B)。
【0027】
また、ストレージ装置4では、スナップショットを行うべき時刻が例えば予め設定されており、ストレージ装置4は、当該設定された時刻になると、データボリューム41aに対してスナップショットを行って、スナップショットデータを取得する。そして、ストレージ装置4は、当該スナップショットを取得した日時を含むスナップショット管理情報を作成して、これをスナップショット管理テーブルに登録するとともに、当該スナップショット管理情報と関連付けたスナップショットデータをスナップショットボリューム41cに格納する(図中C)。スナップショットデータは、例えば、時系列的に構成された差分データからなる。
【0028】
一方、ストレージ装置4は、ホスト装置2からデータの復元要求を受け取ると、データの復元処理を開始する。データの復元要求は、典型的には、マーカーに従って指定された復元ポイントを含んでいる。具体的には、ストレージ装置4は、差分データとして構成されるスナップショットデータを適用するため、ベースとなるデータボリュームを同定し、例えば別のディスクアダプタ425によって制御されるディスクデバイス上にその内容をコピーしてベースボリューム41a’を形成する(図中D)。つまり、ここでのベースボリューム41a’は、時間軸上で異なるデータボリューム41aである。次に、ストレージ装置4は、当該ベースボリューム41a’に対して差分データを順次適用することによって、指定された復元ポイントに最も近く、かつ当該復元ポイントよりも以前に作成したスナップショット(直近スナップショット)時におけるデータをベースボリューム41a’上に復元する(図中E)。ストレージ装置4は、復元された直近スナップショット時のベースボリューム41a’に対して、さらに、直近スナップショットから復元ポイントまでのジャーナルデータを順次に適用することによって、最終的なデータボリューム41aを復元する(図中F)。このとき、ストレージ装置4は、ジャーナルデータが適用されるベースボリューム41a’上のデータをジャーナルバックアップボリューム41dに格納する(図中G)。そして、ストレージ装置4は、復元された最終的なデータボリューム41aに対してスナップショットを行って、スナップショットデータを取得しておく(図中H)。ジャーナルバックアップボリューム41dにバックアップされたデータは、後述するように、他の復元ポイントによるデータの復元要求があった場合に、所定の条件の下で、先の復元が完了した時点で取得したスナップショットデータとともに、データの復元のために用いられる(図中EおよびI)。
【0029】
図4は、本発明の一実施形態に係るストレージ装置4のジャーナルボリューム41bにおけるジャーナルデータの一例を示す図である。ジャーナルデータは、上述したように、ホスト装置2からデータの書き込み要求があった場合に、制御部42の制御の下、作成され、ジャーナルボリュームに格納される。同図に示すように、ジャーナルデータは、例えば、書き込み日時と、書き込みデータと、アドレスとから構成され、これらはシリアル番号で管理されている。例えば、シリアル番号「13」のジャーナルデータは、「10:30」に「DDD」というデータが、データボリュームの「0001」番のアドレスに書き込まれている。
【0030】
ジャーナルデータの作成があると、それは復元ポイントの候補となりうる。システム管理者が復元ポイントの候補として登録を望む場合、ストレージマネージャは、ジャーナルデータに関連付けられた復元ポイントをマーカーとして設定する。また、マーカーは、例えば、ストレージ装置を利用するアプリケーションプログラムの実行が終了した時点が設定されうる。
【0031】
図5は、本発明の一実施形態に係るストレージ装置4を含むストレージシステムにおけるマーカー管理テーブルの一例を示す図である。マーカーもまた、シリアル番号で管理されており、復元ポイントと、ジャーナルデータのシリアル番号とが関連付けられている。本実施形態では、復元ポイントは、ジャーナルデータが作成された日時に対してわずかにオフセットされて設定されている。
【0032】
図6は、本発明の一実施形態に係るストレージ装置4のジャーナルバックアップボリューム41dにおけるバックアップデータの一例およびその適用の様子を示す図である。同図に示すように、ジャーナルバックアップボリューム41d上のバックアップデータは、データの復元の際に適用されたジャーナルデータのシリアル番号に対応する情報から構成される。ただし、上述したように、ジャーナルバックアップボリューム41dにおけるバックアップデータは、ジャーナルデータが適用されるべきベースボリューム41a’のデータを待避したものである。したがって、バックアップデータは、ベースボリューム上の一つ前の古いデータに対応することになる。
【0033】
また、同図に示すように、バックアップデータは、新しいデータ(つまり、シリアル番号が大きいデータ)から順番にベースボリューム41a’に適用される。
【0034】
図7および図8は、本発明の一実施形態に係るストレージ装置4におけるデータの復元処理を説明するためのフローチャートである。データの復元処理は、データ復元制御プログラムが制御部42上で実行され、実現される。
【0035】
同図に示すように、ストレージ装置4は、ホスト装置2からデータの復元要求を受け取ると、当該復元要求によって指定された復元ポイントが、前回適用したスナップショットデータを取得したスナップショット時刻よりも前であるか否かを判断する(STEP701)。ストレージ装置4が、復元要求を過去において受け取っておらず、またはデータのバックアップ処理を初期化した後の復元要求のように、復元要求が最初のものであるとみなすことができる場合には、前回適用したスナップショットは存在しないことになるが、この場合は、復元ポイントが前回適用したスナップショットよりも前であるとみなしている。指定された復元ポイントが前回適用したスナップショットよりも前であると判断した場合には(STEP701のYes)、ストレージ装置4は、ジャーナルバックアップボリューム41dの使用を可能にするため、ジャーナルバックアップボリューム41dを初期化する(STEP702)。ジャーナルバックアップボリューム41dの初期化は、例えば、ジャーナルバックアップボリューム41dが削除され新規作成される。また、ジャーナルバックアップボリューム41dは、システム管理者がストレージマネージャによって提供されるユーザインターフェースを介して、初期化されてもよい。さらに、ジャーナルバックアップボリューム41dは、データの復元処理から所定の期間が経過した後、初期化されるようにしてもよい。
【0036】
ストレージ装置4は、次に、指定された復元ポイントに最も近く、かつ当該復元ポイントよりも前に作成したスナップショット(直近スナップショット)を特定し(STEP703)、当該直近スナップショットに対するベースボリューム41a’を作成する(STEP704)。例えば、スナップショットが9:30、10:30、11:30の時刻に行われており、指定された復元ポイントが10:35であれば、10:30のスナップショットが特定されることになる。ベースボリューム41a’は、差分データとして構成されるスナップショットデータを適用するために基準となるデータボリューム41aのコピーボリュームである。ストレージ装置4は、例えば、現時点におけるデータボリューム41aを別のディスクアダプタ424によって制御されるディスクデバイス上にコピーすることによって、ベースボリューム41a’を作成する。
【0037】
続いて、ストレージ装置4は、直近スナップショットにおけるスナップショットデータをスナップショットボリューム41cから読み出して、これを当該作成したベースボリューム41a’に対して適用する(STEP705)。スナップショットデータが差分データにより構成されている場合には、当該差分データが順次に適用される。スナップショットデータがベースボリューム41a’に適用されることにより、スナップショットが行われた時刻までのデータがベースボリューム41a’上に復元されたことになる。
【0038】
ストレージ装置4は、次に、ジャーナルボリューム41bからジャーナルデータを読み出して、スナップショットデータが適用されたベースボリューム41’に対して、当該読み出したジャーナルデータを、順次に、さらに適用する。これにより、復元ポイントにおけるデータボリューム41aが復元されることになる。適用されるべきジャーナルデータは、直近スナップショットの時刻以降であって、復元ポイントを超えない範囲のジャーナルデータである。ジャーナルデータを適用する際、ストレージ装置4はまた、ジャーナルデータが適用されるべきベースボリューム41a’上のデータをジャーナルバックアップデータとして、ジャーナルバックアップボリューム41dに格納する(STEP706)。
【0039】
そして、ストレージ装置4は、復元されたデータボリューム41aに対してスナップショットを行って、スナップショットデータを取得し、これをスナップショットボリューム41cに格納する(STEP707)。これ以降、ストレージ装置4は、所定の条件の下で、ジャーナルバックアップボリューム41dに格納されたジャーナルバックアップデータを用いて、効率的に、データボリュームを復元できるようになる。
【0040】
一方、STEP701において、指定された復元ポイントが前回適用したスナップショットよりも前でない場合、ジャーナルバックアップボリューム41d上にジャーナルバックアップデータが存在する可能性があるので、ストレージ装置4は、図8に示されるSTEP708以降の処理を行う。
【0041】
具体的には、ストレージ装置4は、まず、復元完了時に行ったスナップショットにより取得したスナップショットデータを現在使用しているデータボリューム41aに適用して、当該スナップショット時点のデータをデータボリューム41a上に復元する(STEP708)。次に、ストレージ装置4は、復元要求によって指定された復元ポイントが、復元完了時に行ったスナップショットよりも前であるか否かを判断する(STEP709)。これは、復元要求により指定された復元ポイントが、前回の復元要求に従って適用したスナップショットの時刻と、当該前回の復元要求に従って復元完了時に行ったスナップショットの時刻との間の範囲にあるか否かを判断するものである。当該範囲には、ジャーナルバックアップデータが存在するからである。当該スナップショットよりも前であると判断する場合(STEP709のYes)、ストレージ装置4は、スナップショットデータが適用されたデータボリューム41aに対して、ジャーナルバックアップボリューム41dに格納されたジャーナルバックアップデータをさらに適用する。ジャーナルバックアップボリュームに格納されたバックアップデータは、時間的に、新しいものから順に適用される。これにより、復元要求によって指定された復元ポイントにおけるデータボリューム41aが復元されることになる。
【0042】
一方、STEP709において、指定された復元ポイントが復元完了時に行ったスナップショットよりも前でないと判断する場合(STEP709のNo)、ジャーナルバックアップデータを適用することはできないので、ストレージ装置4は、スナップショットデータが適用されて復元されたデータボリューム41aに対して、復元ポイントまでのジャーナルデータを適用することにより、最終的なデータボリューム41aを復元する(STEP711)。この場合、ジャーナルデータが適用されるデータボリューム上のデータをジャーナルバックアップデータとして、ジャーナルバックアップボリュームに同様に格納してもよい。そして、ストレージ装置4は、復元されたデータボリュームに対してスナップショットを行って、スナップショットデータを取得し、スナップショットボリュームに格納する(STEP712)。
【0043】
図9は、本発明の一実施形態に係るストレージ装置4におけるデータの復元処理をタイムシーケンスにより説明している。
【0044】
すなわち、同図に示すように、ある時間軸において、ストレージ装置4が稼働していて、ある時点で障害が発生したものとする。システム管理者は、復元ポイントを指定した最初の復元要求をストレージ装置4に与える。ストレージ装置4は、最初の復元要求を受けて、ベースボリューム41a’を作成し、スナップショットデータを適用することにより、直近スナップショット時点におけるデータをベースボリューム41a’上に復元する。続いて、ストレージ装置4は、ジャーナルデータが適用されるべきデータをジャーナルバックアップボリューム41dに格納しながら、ジャーナルデータをベースボリューム41a’に適用して、最終的なデータボリューム41aを復元する。そして、ストレージ装置4は、最終的なデータボリューム41aに対してスナップショットを行って、スナップショットデータを取得する。
【0045】
このようにデータを復元した後、システム管理者は、復元されたデータに対する検証等を行う。検証の過程において、再度のデータ復元が必要であると判断される場合、システム管理者は、別の復元ポイントを指定した復元要求をストレージ装置に与えることになる。本例では、再度の復元ポイントが、前回適用したスナップショットの時刻と、前回の復元後に行われたスナップショットの時刻の間に位置するものとする。
【0046】
ストレージ装置4は、再度の復元要求を受けて、ベースボリューム41a’に対して、最後に行ったスナップショットで取得したスナップショットデータを適用して、当該スナップショット時点におけるデータをベースボリューム41a’上に復元する。さらに、ストレージ装置4は、ジャーナルバックアップボリューム41dに格納されたジャーナルバックアップデータをベースボリューム41a’に対して適用することにより、指定した復元ポイントにおけるデータボリューム41aを復元する。
【0047】
以上のように、最初の復元要求において、データの復元直後にスナップショットを行ってスナップショットデータを取得しているので、後に発生しうるデータの復元要求に対して、効率的にデータを復元することができるようになる。
【0048】
特に、再度の復元要求においては、ジャーナルバックアップボリューム41dに格納されたジャーナルバックアップデータを利用しているので、さらに効率的にデータを復元することができるようになる。
【0049】
次に、本発明の他の実施形態に係るストレージ装置4について説明する。図10は、本発明の一実施形態に係るストレージ装置4の構成を示している。本実施形態に係るストレージ装置4は、記憶部41全体が提供する記憶容量が、実際のディスクデバイスにより提供される記憶領域(実記憶領域)よりも大きな、例えば将来的に拡張しようとする大きさの記憶領域を有する仮想的な論理ボリューム(仮想論理ボリューム)を定義できるように構成されている。すなわち、本実施形態に係るストレージ装置4は、ホスト装置2がアクセスする記憶部41上の論理ボリュームを仮想論理ボリュームに関連付けて、その後の運用状況に応じて、実記憶領域を動的に変更することができる。
【0050】
すなわち、同図に示すように、本実施形態に係るストレージ装置4においては、記憶部41は、プールボリューム41eを有している。プールボリューム41eは、仮想論理ボリュームのうち、データボリューム41aにより実際に提供される記憶領域以外に格納されるべきデータを、将来的にディスクデバイスが導入されてデータボリューム41aが拡張されるまでの間、一時的に格納する領域を提供するボリュームである。プールボリューム41aの定義内容は、システム構成情報の一部として、メモリ422に記憶される。
【0051】
ストレージ装置4は、すでに述べたように、データボリューム41aの記憶領域に対しては、ホスト装置2が認識する論理アドレス(LUNおよびLBA)と、記憶部41におけるディスクデバイス上の物理アドレスとを一対一に関連付けている。これによって、ホスト装置2は、所定の論理アドレスを指定することによって、記憶部41上の所望の記憶領域にアクセスすることができる。
【0052】
一方、プールボリューム41e上の記憶領域については、ホスト装置2が認識する論理アドレスと、実際にデータにアクセスするためのディスクデバイス上の物理アドレスとを直接的に関連付けていない。ストレージ装置4は、図11に示すように、仮想論理ボリュームにおけるデータボリューム41aの記憶領域(実記憶領域)を超える領域を指定したデータ書き込み要求がホスト装置2から与えられる毎に、当該データに対する記憶領域をプールボリューム41eに動的に割り当てている。
【0053】
このように、ストレージ装置4は、プールボリューム管理テーブルを保持し、仮想論理ボリュームとプールボリュームとの間の動的な割り当てを管理している。プールボリューム管理テーブルは、例えば、制御部42のメモリ422に保持される。ストレージ装置4は、仮想論理ボリューム内であるが実記憶領域を超える論理アドレスを指定したデータの書き込み要求を受け取った場合には、プールボリューム41eに格納するとともに、指定された論理アドレスとプールボリューム41eのアドレスを示すポインタとを関連付けて、プールボリューム管理テーブルに登録する。
【0054】
図12は、本発明の一実施形態に係るストレージ装置4におけるジャーナルデータ適用時の処理を説明するためのフローチャートである。具体的には、図12に示すフローチャートは、図7に示したSTEP706と置き換わるものである。上述したように、本発明のストレージ装置4は、データの復元処理の際に、ジャーナルデータが適用されるべきベースボリューム41a’上のデータをジャーナルバックアップボリューム41dに待避する。復元対象のデータボリューム41aが本実施形態のような仮想論理ボリュームとして機能する場合、実記憶領域を超える仮想領域については、ジャーナルデータを適用しようとする時点で、プールボリューム41eに割り当てられていない可能性がある。したがって、ストレージ装置4では、プールボリューム41eに対する割り当ての状態を管理し、動的に変更される実記憶領域に対するバックアップを行っている。
【0055】
すなわち、ストレージ装置4は、上述したように、スナップショットが行われた時刻までのデータをベースボリューム41a’上に復元に復元する(図7のSTEP705)。続いて、図12に示すように、ストレージ装置4は、復元しようとしているデータボリューム41aが仮想論理ボリュームであるか否かを判断する(STEP1201)。これは、メモリ422に保持されたシステム構成情報を参照し、データボリューム41aに仮想論理ボリュームの属性が与えられているか否かを判断することにより行われる。復元しようとしているデータボリューム41aが仮想論理ボリュームでない場合(STEP1201のNo)、ジャーナルデータが適用されるべきベースボリューム41a’上のデータをジャーナルバックアップボリュームに待避した後(STEP1202)、ジャーナルデータを適用する(STEP1206)。ストレージ装置4は、復元ポイントまでのジャーナルデータをすべて適用したか否かを判断し(STEP1207)、まだ適用すべきジャーナルデータがある場合には(STEP1207のNo)、STEP1201に戻る。
【0056】
一方、STEP1201において、復元しようとするデータボリューム41aが仮想論理ボリュームである場合(STEP1201のYes)、ジャーナルデータが適用されるべきベースボリューム41a’の領域がプールボリューム41eにすでに割り当てられているか否かを判断する(STEP1203)。プールボリューム41eにすでに割り当てられている場合には(STEP1203のYes)、仮想領域上の当該領域に対して、実記憶領域上の領域と同様の処理を行う(STEP1202)。
【0057】
STEP1203において、当該領域がプールボリューム41eに割り当てられていないと判断される場合、初期値をジャーナルバックアップボリュームに格納するとともに(STEP1204)、割り当てが行われたことを示すフラグをセットする(STEP1205)。図13は、本発明の一実施形態に係るストレージ装置4のジャーナルバックアップボリューム41dにおけるバックアップデータの一例を示している。初期値は、例えば、0またはnullデータである。続いて、ストレージ装置4は、ジャーナルデータを適用し(STEP1206)、復元ポイントまでのジャーナルデータをすべて適用するまで上記処理を繰り返す。
【0058】
以上のバックアップ処理を行うことによって、仮想論理ボリュームを扱うストレージ装置4においても、ジャーナルバックアップボリュームに格納されたデータを用いて、データボリューム41a上のデータを復元することができるようになる。
【0059】
上述したように、ホスト装置2上のストレージマネージャは、システム管理者に対してマーカーを提示して、データの復元要求を受け付ける。本実施形態では、ストレージマネージャは、ジャーナルデータを適用する時点でプールボリューム41eに割り当てられていない仮想領域に対して割り当ての解除を行うか否かの指定をシステム管理者に促すためのユーザインターフェースを提供する。ストレージマネージャは、当該解除指定を含むデータの復元要求を作成し、ストレージ装置4に送出する。
【0060】
図14は、本発明の一実施形態に係るストレージ装置4におけるジャーナルバックアップデータ適用時の処理を説明するフローチャートである。具体的には、図14に示すフローチャートは、図8に示したSTEP711と置き換わるものである。
【0061】
すなわち、図14に示すように、ストレージ装置4は、ホスト装置2からデータの復元要求を受け付けると、データの復元要求が割り当て領域の解除指定を含むか否かを判断する(STEP1401)。データの復元要求が割り当て領域の解除指定を含まない場合(STEP1401のNo)、通常の復元処理と同様に、ジャーナルバックアップボリューム41dに格納されたジャーナルバックアップデータを順次に適用する(1401のNo)。
【0062】
一方、データの復元要求が割り当て領域の解除指定を含む場合(STEP1401のYes)、プールボリューム管理テーブル上のフラグフィールドを参照しながら、該当する領域に対する関連付けを解除することによって、未割り当ての領域として復元する(STEP1402)。
【0063】
これによって、システム管理者は、データボリュームの復元に際して、仮想領域について、未割り当ての領域として復元するか、その領域が割り当てられているがデータを初期値として復元するかを任意に選択することができるようになる。
【0064】
本実施形態に係る記憶システムによれば、すでに述べたようなまたは以下に述べるような効果ないしは利点を奏する。
【0065】
すなわち、本実施形態に係るストレージ装置は、ジャーナルデータを適用する際、ジャーナルデータが適用されるべきベースボリューム上のデータをジャーナルバックアップボリュームに待避し、ジャーナルデータを適用することにより復元されたデータボリュームに対してスナップショットを行って、スナップショットデータを取得し、スナップショットボリュームに保持している。したがって、ストレージ装置4は、後のデータの復元要求に対して、復元直後に取得したスナップショットデータを用いて、効率的にデータを復元することができるようになる。また、ストレージ装置4は、当該スナップショットデータとともに、ジャーナルバックアップボリュームに格納されたジャーナルバックアップデータを用いて、効率的に、データボリュームを復元できるようになる。
【0066】
よって、本実施形態によれば、システム管理者は、最適な復元結果を求めて、いくつかの復元ポイントにおいてデータの復元を試みた場合であっても、効率的にデータを復元することができるようになる。
【産業上の利用可能性】
【0067】
本発明は、コンピュータシステム上で処理されるデータを記憶するストレージ装置に幅広く適用することができる。特に、本発明は、データの消失を防止するため、データのバックアップおよび復元・復旧のために用いられるストレージ装置に適用することができる。
【図面の簡単な説明】
【0068】
【図1】本発明の一実施形態に係るストレージ装置を用いて構成されたストレージシステムを示す図である。
【図2】本発明の一実施形態に係るストレージ装置における制御部のメモリ内容を説明するための図である。
【図3】本発明の一実施形態に係るストレージ装置におけるデータのバックアップ処理および復元処理の概略を説明するための図である。
【図4】本発明の一実施形態に係るストレージ装置のジャーナルボリュームにおけるジャーナルデータの一例を示す図である。
【図5】本発明の一実施形態に係るストレージ装置を含むストレージシステムにおけるマーカー管理テーブルの一例を示す図である。
【図6】本発明の一実施形態に係るストレージ装置のジャーナルバックアップボリュームにおけるバックアップデータの一例およびその適用の様子を示す図である。
【図7】本発明の一実施形態に係るストレージ装置におけるデータの復元処理を説明するためのフローチャートである。
【図8】本発明の一実施形態に係るストレージ装置におけるデータの復元処理を説明するためのフローチャートである。
【図9】本発明の一実施形態に係るストレージ装置におけるデータの復元処理を説明するタイムシーケンスである。
【図10】本発明の一実施形態に係るストレージ装置の構成を示している。
【図11】本発明の一実施形態に係るストレージ装置における仮想論理ボリュームを説明するための図である。
【図12】本発明の一実施形態に係るストレージ装置におけるジャーナルデータ適用時の処理を説明するためのフローチャートである。
【図13】本発明の一実施形態に係るストレージ装置のジャーナルバックアップボリュームにおけるバックアップデータの一例およびその適用の様子を示す図である。
【図14】本発明の一実施形態に係るストレージ装置におけるジャーナルバックアップデータ適用時の処理を説明するフローチャートである。
【符号の説明】
【0069】
1…記憶システム
2…ホスト装置
21…CPU
22…ローカルメモリ
23…インターフェース部
24…ローカル入出力装置
25…内部バス
3…ネットワークシステム
4…ストレージ装置
41…記憶部
41a…データボリューム
41b…ジャーナルボリューム
41c…スナップショットボリューム
41d…ジャーナルバックアップボリューム
42…制御部
421…CPU
422…ローカルメモリ
423…キャッシュ機構

【特許請求の範囲】
【請求項1】
ホスト装置に接続されるストレージ装置であって、
少なくともデータボリューム、ジャーナルボリューム、スナップショットボリューム、ジャーナルバックアップボリュームが形成された記憶部と、
前記記憶部との間のI/O処理を制御する制御部と、を備え、
前記制御部は、
前記データボリュームに対するジャーナルデータを作成し、当該作成したジャーナルデータを前記ジャーナルボリュームに格納するジャーナリング部と、
前記データボリュームに対するスナップショットデータを作成し、当該作成したスナップショットデータを前記スナップショットボリュームに格納するスナップショット部と、
復元ポイントを指定した復元要求に従って、前記スナップショットボリュームに格納されたスナップショットデータ及び前記ジャーナルボリュームに格納されたジャーナルデータを適用して、前記復元ポイントにおけるデータボリュームを復元するデータ復元部と、
前記データ復元部によって前記ジャーナルデータが適用される前記データボリューム上のデータを前記ジャーナルバックアップボリュームに格納するジャーナルデータバックアップ部と、
を備えたことを特徴とするストレージ装置。
【請求項2】
前記スナップショット部は、
前記データ復元部により復元されたデータボリュームに対してスナップショットデータを作成し、当該作成したスナップショットデータを前記スナップショットボリュームに格納することを特徴とする請求項1記載のストレージ装置。
【請求項3】
前記データ復元部は、
前記復元要求によって指定された復元ポイントと異なる復元ポイントを指定した他の復元要求に従い、前記復元されたデータボリュームに対するスナップショットにより取得されたスナップショットデータを適用して、データボリュームを復元することを特徴とする請求項2記載のストレージ装置。
【請求項4】
前記データ復元部は、
前記復元したデータボリュームに対するスナップショットデータを作成した時刻に従って、前記ジャーナルバックアップボリュームに格納されたデータを適用するかまたは前記ジャーナルボリュームに格納されたジャーナルデータを適用するかを判断することを特徴とする請求項3記載のストレージ装置。
【請求項5】
前記データ復元部は、
前記他の復元要求によって指定された復元ポイントが、前記復元したデータボリュームに対するスナップショットデータを作成した時刻よりも前である場合、前記ジャーナルバックアップボリュームに格納されたデータを適用して、前記他の復元要求によって指定された復元ポイントにおけるデータボリュームを復元することを特徴とする請求項4記載のストレージ装置。
【請求項6】
前記ストレージ装置は、
前記ジャーナルバックアップボリュームに格納されたデータを管理する管理情報を保持するジャーナルバックアップ管理テーブルをさらに備えることを特徴とする請求項1記載のストレージ装置。
【請求項7】
前記データボリュームは、前記記憶部が提供する実記憶領域を超える領域を含む仮想論理ボリュームとして定義され、
前記記憶部には、前記実記憶領域以外の領域に記憶されるべきデータを格納するプールボリュームがさらに形成され、
前記制御部は、前記実記憶領域以外の領域と前記プールボリュームとを関連付けるプールボリューム管理テーブルを有し、
前記ジャーナルデータバックアップ部は、前記データ復元部によって前記ジャーナルデータが適用される前記プールボリューム上のデータを前記ジャーナルバックアップボリュームに格納することを特徴とする請求項1記載のストレージ装置。
【請求項8】
前記データ復元部は、前記プールボリューム管理テーブルを参照し、前記スナップショットデータが適用されたデータボリュームのうちの実記憶領域以外の領域に前記プールボリューム上の領域が割り当てられていないと判断される場合に、前記ジャーナルバックアップボリュームに初期値を格納することを特徴とする請求項7記載のストレージ装置。
【請求項9】
ホスト装置に接続されるストレージ装置において、
少なくともデータボリューム、ジャーナルボリューム、スナップショットボリューム、ジャーナルバックアップボリュームが形成された記憶部と、
前記ディスクデバイスとの間のI/O処理を制御する制御部と、を備え、
前記制御部は、
前記データボリュームに対するジャーナルデータを作成し、当該作成したジャーナルデータを前記ジャーナルボリュームに格納するジャーナリング部と、
前記データボリュームに対するスナップショットデータを作成し、当該作成したスナップショットデータを前記スナップショットボリュームに格納するスナップショット部と、
復元ポイントを指定した復元要求に従って、前記スナップショットボリュームに格納されたスナップショットデータ及び前記ジャーナルボリュームに格納されたジャーナルデータを適用して、前記復元要求に含まれる指定時刻におけるデータボリュームを復元するデータ復元部と、を備え、
前記スナップショット部は、前記データ復元部により復元されたデータボリュームに対して、当該データボリュームが更新される前に、スナップショットデータを作成し、当該作成したスナップショットデータを前記スナップショットボリュームに格納することを特徴とするストレージ装置。
【請求項10】
前記ストレージ装置は、
前記データ復元部によって前記ジャーナルデータが適用されるデータを前記ジャーナルバックアップボリュームに格納するジャーナルデータバックアップ部をさらに備えることを特徴とする請求項9記載のストレージ装置。
【請求項11】
ホスト装置に接続されるストレージ装置におけるデータ管理方法であって、
記憶部上にデータボリューム、ジャーナルボリューム、スナップショットボリューム及びジャーナルバックアップボリュームを形成するステップと、
データボリュームに対するジャーナルデータをジャーナルボリュームに格納するとともに、前記データボリュームに対する第1のスナップショットデータをスナップショットボリュームに格納するステップと、
復元ポイントを指定した復元要求を受け付けて、ベースとなるデータボリュームに対して前記スナップショットボリュームに格納されたスナップショットデータを適用するステップと、
前記スナップショットデータが適用されたベースとなるデータボリュームに対してジャーナルボリュームに格納されたジャーナルデータを適用するステップと、を含み、
前記ジャーナルデータを適用するステップは、前記ジャーナルデータが適用される前記ベースとなるデータボリューム上のデータをジャーナルバックアップボリュームに格納するステップを含むことを特徴とするデータ管理方法。
【請求項12】
前記データ管理方法は、
前記ジャーナルデータが適用されることにより復元されたデータボリュームに対して第2のスナップショットデータを作成し、当該作成したスナップショットデータを前記スナップショットボリュームに格納するステップをさらに含むことを特徴とする請求項11記載のデータ管理方法。
【請求項13】
前記データ管理方法は、
前記復元要求によって指定された復元ポイントと異なる復元ポイントを指定した他の復元要求を受け付けるステップと、
前記受け付けた他の復元要求に従って、前記復元されたデータボリュームに対するスナップショットにより取得された第2のスナップショットデータを適用するステップと、をさらに含むことを特徴とする請求項12記載のデータ管理方法。
【請求項14】
前記データ管理方法は、
前記復元したデータボリュームに対する第2のスナップショットデータを作成した時刻に従って、前記ジャーナルバックアップボリュームに格納されたデータを適用するかまたは前記ジャーナルボリュームに格納されたジャーナルデータを適用するかを判断するステップをさらに含むことを特徴とする請求項13記載のデータ管理方法。
【請求項15】
前記データ管理方法は、
前記判断するステップの結果に従って、前記ジャーナルバックアップボリュームに格納されたデータを、前記第2のスナップショットデータが適用されたデータボリュームに対して、適用するステップをさらに含むことを特徴とする請求項14記載のデータ管理方法。
【請求項16】
前記データ管理方法は、
前記データボリュームを、前記記憶部が提供する実記憶領域を超える領域を含む仮想論理ボリュームとして定義するステップを含み、
前記形成するステップは、前記実記憶領域以外の領域に記憶されるべきデータを格納するプールボリュームを形成し、
前記ジャーナルデータを適用するステップは、前記ジャーナルデータが適用される前記プールボリューム上のデータを前記ジャーナルバックアップボリュームに格納することを特徴とする請求項15記載のデータ管理方法。
【請求項17】
前記データ管理方法は、
前記実記憶領域以外の領域と前記プールボリュームとを関連付けるプールボリューム管理テーブルを参照するステップをさらに含み、
前記ジャーナルバックアップボリュームに格納するステップは、前記スナップショットデータが適用されたデータボリュームのうちの実記憶領域以外の領域に前記プールボリューム上の領域が割り当てられていないと判断される場合に、前記ジャーナルバックアップボリュームに初期値を格納することを特徴とする請求項16記載のストレージ装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate