JP3882467B2 - 記憶装置システムのスナップショット管理方法 - Google Patents
記憶装置システムのスナップショット管理方法 Download PDFInfo
- Publication number
- JP3882467B2 JP3882467B2 JP2000154367A JP2000154367A JP3882467B2 JP 3882467 B2 JP3882467 B2 JP 3882467B2 JP 2000154367 A JP2000154367 A JP 2000154367A JP 2000154367 A JP2000154367 A JP 2000154367A JP 3882467 B2 JP3882467 B2 JP 3882467B2
- Authority
- JP
- Japan
- Prior art keywords
- snapshot
- data
- logical unit
- update
- management table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は主として、コンピュータの外部記憶装置システムにおけるスナップショット管理方法に関するものである。
【0002】
【従来の技術】
一般にハードディスクなどのコンピュータの外部記憶装置に記録されたデータは、装置の障害、ソフトウェアの欠陥、誤操作などによりデータを喪失した場合に、喪失したデータを回復できるように定期的にテープなどにコピーして保存しておくこと(バックアップ)が必要である。その際、コピー作業中にデータが更新され、データに不整合が生じるとバックアップとして意味をなさないため、コピー作業中はデータの整合性を保証する必要がある。
【0003】
バックアップされるデータの整合性を保証するためには、データにアクセスするバックアッププログラム以外のプログラムを停止すればよいが、高可用性が要求されるシステムではプログラムを長時間停止させることができない。そのため、バックアップ中にプログラムがデータを更新することを妨げず、なおかつバックアップ開始時点でのデータの記憶イメージを作成する仕組みを提供する必要がある。ここで、ある時点でのデータの記憶イメージをスナップショットと呼び、指定された時点のスナップショットを作成しつつデータの更新が可能な状態を提供する仕組みをスナップショット管理方法と呼ぶ。また、スナップショット管理方法によりスナップショットを作成することをスナップショットの取得と呼び、スナップショット取得の対象となったデータをオリジナルデータと呼ぶ。また、スナップショットを作成した状態をやめることをスナップショットの削除と呼ぶ。
【0004】
従来のスナップショット管理方法の一つとして、データの二重化による方法が挙げられる。
【0005】
この方法では、スナップショットを取得していない通常の状態において、コンピュータ上のプログラムがすべてのデータを2つの記憶領域に二重化(ミラー)する。スナップショットを取得する時は二重化を停止して2つの記憶領域を独立な領域に分離し、1つの領域をオリジナルデータ、もう1つの領域をスナップショットとして提供する。
【0006】
スナップショットを取得し二重化を停止している間は、オリジナルデータの記憶領域に対するデータの更新を許可するとともに、データ更新が発生した場合は更新した位置を記録しておく。スナップショット削除時には、データの二重化を再開するとともに、2つの記憶領域の間で内容が一致していない更新データを更新位置の記録をもとにオリジナルデータの記憶領域からスナップショットとして提供していた記憶領域にコピーする(ミラー再同期化)。
【0007】
コンピュータ上のプログラムでデータを二重化する方法は、例えば米国特許5,051,887に示されている。
【0008】
【発明が解決しようとする課題】
データの二重化によるスナップショット管理方法では、ミラー再同期化時において、更新/参照をする通常アクセスと更新データのコピーアクセスがオリジナルデータの記憶領域に集中し、通常アクセスの性能が低下する。ミラー再同期化にかかる時間は、スナップショットを取得して二重化を停止している間に更新されたデータ量に比例するので、更新アクセスが単位時間あたり同じ回数発生すると仮定した場合、ミラー再同期化にかかる時間は二重化の停止時間に比例して大きくなる。スナップショットからバックアップをとる場合、コンピュータが介在して比較的低速なテープなどにコピーを行うため、スナップショットを取得して二重化を停止している時間が長く、通常アクセスの性能が低下するミラー再同期化時間が長くなるという課題がある。
【0009】
また、スナップショットの利用後にスナップショット削除を指示する必要があるため、バックアップの終了を契機としてスナップショット削除プログラムを起動するようなタイミングを管理するプログラムが必要となり、バックアッププログラムが複雑化する。複雑化に対応してプログラムの開発期間が長くなるため価格も上昇し、構成するシステムが高価になるという課題がある。
【0010】
本発明の第1の目的は、スナップショットを取得して二重化を停止している時間を短縮することで、ミラー再同期化中の更新データのコピー量を削減し、性能が低下するミラー再同期化時間を短縮したスナップショット管理方法を提供することである。
【0011】
本発明の第2の目的は、スナップショット利用後のスナップショット削除指示を省略することでバックアッププログラムを簡略化し、安価なシステムでスナップショット管理方法を提供することである。
【0012】
【課題を解決するための手段】
前記第1の目的を達成するために本発明は、データの二重化によるスナップショット管理方法において、一時的なテンポラリ領域としてディスクアレイ内にテンポラリLUを設ける。テンポラリLUは高速なディスクであり、スナップショットを取得して二重化を停止している時間を短縮することができる。
【0013】
また、前記第2の目的を達成するために本発明は、データの二重化によるスナップショット管理方法において、一時的なテンポラリ領域としてディスクアレイ内にテンポラリLUを設ける。テンポラリLUにスナップショットを保存することにより、スナップショット削除処理を不要とする。
【0014】
【発明の実施の形態】
〔第1の実施形態〕
本発明の第1の実施形態は、データの二重化によるスナップショット管理方法において、二重化を停止している時間を短縮することにより、ミラー再同期化をする際のオリジナルデータのコピー量を削減し、データベースプログラムからのデータアクセス性能が低下するミラー再同期化時間を短縮するためのものである。
【0015】
また、スナップショット利用後のスナップショット削除指示を省略することでバックアッププログラムを簡略化するためのものである。
【0016】
なお、本発明ではスナップショットの利用例として、バックアップをとりあげるが、OLAP(OnLine Analytical Processing)やシステムテスト等の他の目的においても利用が可能である。
【0017】
(1)構成の説明
本発明の第1の実施形態のシステム構成を図1を用いて説明する。図1において、コンピュータ100とディスクアレイ200が、SCSIインタフェース140、240を介してSCSIバス300で接続されている。コンピュータ100のメモリ120には、データベースプログラム126、バックアッププログラム127があり、コンピュータ100を制御するCPU110によって実行される。ディスクアレイ200には、ディスクコントローラ250によって制御されるディスク251〜253があり、またメモリ220内にはスナップショット管理プログラム221があり、CPU210によって実行される。なお、ディスク251〜253は仮想的なディスクであってもよく、おのおのが2つ以上のディスクから構成されたアレイであってもよい。
【0018】
各ディスク251〜253内の記憶領域は、SCSIの論理ユニットであるLU(Logical Unit)としてコンピュータからアクセスされる。各ディスク251〜253に対応する各記憶領域をそれぞれLU261〜263とする。本実施形態では、ディスクアレイ220内のスナップショット管理プログラム221が、LU261とLU262を二重化して管理し、LU261をオリジナルデータを持ったミラー元LUとし、LU262をオリジナルデータのミラーであるミラー先LUとする。また、LU263は、スナップショットを取得する際に一時的なコピー先となるテンポラリLUとし、コピー元はLU262である。
【0019】
次に、コンピュータ100内のプログラムについて説明する。
【0020】
データベースプログラム126は、実行中にミラー元LUであるLU261にアクセスし、また、データ更新を制御してLU261内のデータの整合性を保証するバックアップモードに切替える機能を持つ。バックアップモードへはユーザまたはバックアッププログラム127からの指示により遷移する。バックアッププログラム127は、ユーザからの指示によってスナップショットを保存したテンポラリLUであるLU263からテープ等にバックアップするためのデータを読み出す機能と、ディスクアレイ200にSCSIのModeSelectコマンドを発行する機能と、データベースプログラム126にバックアップモードの有効化、無効化を指示する機能を持つ。
【0021】
次に、ディスクアレイ200内のプログラム、および、管理表について説明する。
【0022】
ディスクアレイ200のスナップショット管理プログラム221は、コンピュータ100からの要求に応じてディスクコントローラ250にディスクアクセスを指示するディスクアクセスサブプログラム230と、1つのLUに対する更新を二重化してあらかじめ指定された別のLUにも適用し、2つのLUに同じ内容を書き込むLUミラーサブプログラム231を持つ。例えば本実施形態では、LU261に対するアクセスをLU262に二重化する。また、スナップショット管理プログラム221は、スナップショットを取得する際にミラー先LUからテンポラリLUにオリジナルデータを一時的にコピー(テンポラリコピー)し、コピーが完了した位置を後述するコピー位置管理表223に記録するするテンポラリコピーサブプログラム233と、二重化を停止しているとき(非ミラー時)にミラー元LUに対する更新を検出する非ミラー時更新監視サブプログラム234と、その更新位置を後述する非ミラー時更新位置管理表222に記録する非ミラー時更新位置管理サブプログラム235と、ミラー再同期化を行う際にミラー元LUの更新部分をミラー先LUにコピーするミラー再同期サブプログラム232を持つ。
【0023】
非ミラー時更新位置管理表222は、非ミラー時に更新されたミラー元LUの更新位置を記録するもので、ミラー元LUにつき一つ設置する。非ミラー時更新位置管理表222は、図2に示すようなビットマップとし、ミラー元LU内のすべてのLBAセット番号、更新状態から成る。LBAセットは、LUの全領域に対して、1個以上の同数のLBA(Logical Block Address)を単位として先頭から分割していったときの個々の集合であり、LBAセット番号は、LBAの先頭側から各LBAセットに通し番号をつけたものである。更新状態は、LBAセットが更新されたかどうかを示し、「更新」、「非更新」に応じてそれぞれ1、0を指定する。更新状態の初期設定値は0である。図2の例では、LBAセット番号1の領域のみが非ミラー時に更新されている状態を示す。
【0024】
コピー位置管理表223は、テンポラリコピー時にミラー先LUからテンポラリLUへのコピーが済んだ更新位置を記録するもので、ミラー先LUにつき一つ設置する。コピー位置管理表223は、図3に示すようなビットマップとし、ミラー先LU内のすべてのLBAセット番号、コピー状態から成る。LBAセット番号の定義は、非ミラー時更新位置管理表222と同様である。コピー状態は、LBAセットがコピーされたかどうかを示し、「コピー未完」、「コピー完」に応じてそれぞれ1、0を指定する。コピー状態の初期設定値は1である。図3の例では、LBAセット番号0、1の領域がコピー完であることを示す。なお、非ミラー時更新位置管理表222の更新状態と、コピー位置管理表223のコピー状態の指定値は、比較しているLU間でデータが一致している場合を0、一致していない場合を1と言い換えることもできる。
【0025】
(2)スナップショットの取得
ミラー元LUであるLU261のスナップショットをテンポラリLUであるLU263として提供する場合を例にとり、スナップショット取得時におけるバックアッププログラム127とスナップショット管理プログラム221の動作を図4のフローチャートを用いて説明する。
【0026】
まず、コンピュータ100のバックアッププログラム127がデータベースプログラム126に指示を与え、バックアップモードを有効化してスナップショットを取得するデータの整合性を保証する(ステップ2000)。次に、バックアッププログラム127は、ディスクアレイ200にスナップショットを取得するためのModeSelectコマンドを発行する(ステップ2001)。ディスクアレイ200のスナップショット管理プログラム221は、ModeSelectコマンドを受信すると(ステップ3000)、非ミラー時更新監視サブプログラム234と非ミラー時更新位置管理サブプログラム235を有効化し、LU261の更新位置記録を開始する(ステップ3001)。以降、LU261が更新されると、非ミラー時更新位置管理表222における更新されたLBAを含むLBAセットの更新状態に1を設定し、更新があったことを記録する。次に、スナップショット管理プログラム221は、LUミラーサブプログラム231を無効化し、LU261とLU262の二重化を停止する(ステップ3002)。これにより、ミラー元LUであるLU261に対する更新がミラー先LUであるLU262に反映されなくなる。次に、スナップショット管理プログラム221は、ModeSelectコマンドの終了ステータスをコンピュータ100のバックアッププログラム127に送信する(ステップ3003)。バックアッププログラム127は、ModeSelectコマンドの終了ステータスを受信すると(ステップ2002)、データベースプログラム126に指示を与え、バックアップモードを無効化する(ステップ2003)。
【0027】
次に、バックアッププログラム127は、ディスクアレイ200に対し、LU263にスナップショットを保存するためのテンポラリコピー開始を指示するModeSelectコマンドを発行する(ステップ2004)。ディスクアレイ200のスナップショット管理プログラム221は、ModeSelectコマンドを受信すると(ステップ3004)、テンポラリコピーサブプログラム233を有効化し、ミラー先LUであるLU262からテンポラリLUであるLU263にデータのコピーを行うとともに、コピーが完了したLBAセットについて、コピー位置管理表223におけるコピー状態を0に設定し、コピーが済んだことを記録する(ステップ3005)。データのコピーは、LU262を含むディスク252にREADコマンドを発行して指定したLBAのデータを読み出し、LU263を含むディスク253にWRITEコマンドを発行してLU262に指定したLBAと同じLBAに読み出したデータを書きこむことで実施する。これをLU262とLU263の全領域に対して行う。データのコピーは、COPYコマンドを用いてもよい。データコピーが完了すると、スナップショット管理プログラム221は、LUミラーサブプログラム231を有効化し、LU261とLU262の二重化を再開する(ステップ3006)。これにより、LU261に対する更新がLU262にも反映される。次に、スナップショット管理プログラム221は、非ミラー時更新監視サブプログラム234と非ミラー時更新位置管理サブプログラム235を無効化し、LU261の更新位置記録を停止する(ステップ3007)。以降、非ミラー時更新位置管理表222は変更されなくなる。次に、スナップショット管理プログラム221は、ミラー再同期サブプログラムを有効化し、非ミラー時更新位置管理表222を参照して、LU261とLU262で内容が一致しない部分をLU261からLU262にコピーする(ステップ3008)。次に、スナップショット管理プログラム221は、ModeSelectコマンドの終了ステータスをコンピュータ100のバックアッププログラム127に送信する(ステップ3009)。バックアッププログラム127は、ModeSelectコマンドの終了ステータスを受信し動作を終了する(ステップ2005)。
【0028】
ここで、ステップ3008でLU261からLU262へのデータコピーを行うミラー再同期サブプログラム232の動作を図5のフローチャートを用いて説明する。まず、ミラー再同期サブプログラム232が、非ミラー時更新位置管理表222に更新記録として1があるかどうかを調べる(ステップ1001)。もし、更新記録である1がなければミラー再同期化が完了したので処理を終了する(ステップ1002)。更新記録があれば、該当記録位置の更新を抑止し(ステップ1003)、該当記録位置のデータをミラー元LUであるLU261からミラー先LUであるLU262にコピーする(ステップ1004)。データのコピーは、LU261を含むディスク251にREADコマンドを発行して指定したLBAのデータを読み出し、LU262を含むディスク252にWRITEコマンドを発行してLU261に指定したLBAと同じLBAに読み出したデータを書きこむことで実施する。データのコピーは、COPYコマンドを用いてもよい。次に、ミラー再同期サブプログラム232は、該当記録位置の更新抑止を解除し(ステップ1005)、非ミラー時更新位置管理表222の該当する更新記録に0を設定して更新記録を削除し(ステップ1006)、ステップ1001に戻る。
【0029】
以上が、スナップショット取得時におけるバックアッププログラム127とスナップショット管理プログラム221の動作である。
【0030】
(3)データ読み出しと書きこみ、および、スナップショット読み出しの際のコンピュータ動作
まず、コンピュータ100が、ディスクアレイ200にあるLU261のデータにアクセスする場合のデータベースプログラム126の動作を説明する。データベースプログラム126は、スナップショット取得の有無に関係なく、同じ動作を行う。
【0031】
データベースプログラム126がLU261のデータを読み出す場合、データベースプログラム126はディスクアレイ200に対し、LU261のデータを読み出すREADコマンドを発行する。最後に、データベースプログラム126は、ディスクアレイ200からデータとステータスを受信し動作を終了する。また、データベースプログラム126がLU261にデータを書きこむ場合、データベースプログラム126はディスクアレイ200に対し、LU261にデータを書きこむWRITEコマンドを発行し、データを送信する。最後に、データベースプログラム126は、ディスクアレイ200からステータスを受信し動作を終了する。
【0032】
次に、コンピュータ100が、ディスクアレイ200にあるLU261のスナップショットを読み出す場合のバックアッププログラム127の動作を説明する。
【0033】
バックアッププログラム127がLU261のスナップショットを読み出す場合、バックアッププログラム127はディスクアレイ200に対し、LU261のテンポラリLUであるLU263のデータを読み出すREADコマンドを発行する。最後に、バックアッププログラム127は、ディスクアレイ200からデータとステータスを受信し動作を終了する。なお、スナップショットのデータをディスクアレイ200が送信できない場合、ディスクアレイ200からエラーステータスのみを受信する。
【0034】
(4)データ読み出しと書きこみ、および、スナップショット読み出しの際のディスクアレイ動作
まず、コンピュータ100が、ディスクアレイ200にあるLU261のデータにアクセスする場合のスナップショット管理プログラム221の動作を説明する。
【0035】
コンピュータ100がLU261のデータを読み出す場合、スナップショット管理プログラム221がLU261に対するREADコマンドを受信する。次に、LUミラーサブプログラム231が有効で、かつ、ミラー再同期サブプログラム232による更新部分のコピーが終了していれば、LU261、もしくは、ミラー先LUであるLU262からデータを読み出す。そうでなければ、LU261からデータを読み出す。最後に、読み出し
たデータとステータスをコンピュータ100に送信する。LU261とミラー先LUであるLU262の内容が一致している場合は、両者のいずれかからデータを読み出すことにより負荷を分散させることができる。
【0036】
コンピュータ100がLU261にデータを書きこみ記憶内容を更新する場合、スナップショット管理プログラム221がLU261に対するWRITEコマンドとデータを受信する。次に、LUミラーサブプログラム231が有効であればLU261とミラー先LUであるLU262にデータを書きこみ、無効であればLU261にデータを書きこむ。次に、非ミラー時更新監視サブプログラム234と非ミラー時更新位置管理サブプログラム235が有効であれば、LU261の非ミラー時更新位置管理表222に対して更新したLBAを含むLBAセットの更新状態を1に設定し、無効であれば何もしない。最後に、ステータスをコンピュータ100に送信する。
【0037】
次に、コンピュータ100が、ディスクアレイ200にあるLU261のスナップショットを読み出す場合のスナップショット管理プログラム221の動作を説明する。
【0038】
コンピュータ100がLU261のスナップショットを読み出す場合、スナップショット管理プログラム221がLU261のテンポラリLUであるLU263に対するREADコマンドを受信する。次に、スナップショット管理プログラム221はコピー位置管理表223を参照し、READコマンドで指定されたLBAを含むLBAセットのコピー状態を調べる。コピー状態が0、すなわち、テンポラリLUであるLU263にLU261のスナップショットが保存されている場合は、LU263からデータを読み出す。コピー状態が1、すなわち、テンポラリLUであるLU263にLU261のスナップショットが保存されていない場合は、ミラー先LUであるLU262からデータを読み出す。最後に、読み出したデータとステータスをコンピュータ100に送信する。スナップショットのデータを送信できない場合、ディスクアレイ200にエラーステータスのみを送信する。
【0039】
なお、ミラー再同期サブプログラム232による更新部分のコピー中は、コピー処理とコンピュータ100によるLU261へのデータアクセス処理が同じLU261に集中するため、データアクセス性能が低下する。
【0040】
(5)効果
本実施形態によれば、スナップショット取得時に二重化を停止して片方の記憶領域をスナップショットとして提供するスナップショット管理方法において、スナップショットを保存するのための一時的なテンポラリ領域としてテンポラリLUであるLU263を設けることにより、ミラー元LUであるLU261とミラー先LUであるLU262の二重化停止時間を短縮することができ、非ミラー時更新位置管理表222に記録される更新位置の量を削減することができる。したがって、ミラー再同期化をする際に、更新されたオリジナルデータをミラー元LUからミラー先LUにコピーする量を削減することができ、コンピュータ100からのデータアクセス性能が低下するミラー再同期化時間を短縮できるという効果がある。
【0041】
スナップショットのデータ量が同じ場合、二重化停止時間はミラー先LUからスナップショットを送り、受け手側に取込むときの転送速度に反比例する。ミラー再同期化時間は、二重化停止中に更新されたデータ量に比例するので、更新アクセスが単位時間あたり同じ回数発生すると仮定した場合、ミラー再同期化時間は二重化停止時間に比例する。したがって、ミラー再同期化時間は、ミラー先LUからスナップショットを送り、受け手側に取込むときの転送速度に反比例する。
【0042】
たとえば、試算として、本実施形態におけるディスクコントローラ250の転送能力に十分に余裕があるとした場合、LU261〜263の読み出し・書き込み性能をともに80メガバイト/秒とすると、80メガバイト/秒でミラー先LUからテンポラリLUにスナップショットをコピーすることができる。したがって、本実施形態では、ミラー先LUからスナップショットを送り、受け手側に取込むときの転送速度は、80メガバイト/秒となる。ここで、バイト/秒とは、1秒あたりに転送できるデータのバイト数である。
【0043】
一方、従来の方法でバックアップをテープにとる場合、ミラー先LUからスナップショットを読み出して、コンピュータに転送し、さらに、そこからテープに書き込む。全体の転送性能は、ミラー先LUの読み出し性能、ディスクアレイからコンピュータへの転送性能、コンピュータ内部の転送性能、コンピュータからテープへの転送性能、テープの書き込み性能のうち一番低い値になる。ミラー先LUの読み出し性能は同様に80メガバイト/秒であるが、巻き取り性能の観点から見てもテープの書き込み性能は低く、たとえば40メガバイト/秒の性能であるならば、全体の転送性能は40メガバイト/秒となる。よって、従来の方法では、ミラー先LUからスナップショットを送り、受け手側に取込むときの転送速度は、40メガバイト/秒となる。また、他の部位の転送性能が低いことも考えられる。
【0044】
したがって、LU261〜263の読み出し・書き込み性能をともに80メガバイト/秒、テープの書き込み性能を40メガバイト/秒とする試算では、本実施形態は従来の方法に対して、ミラー先LUからスナップショットを送り、受け手側に取込むときの転送速度が2倍となる。ミラー再同期化時間は、ミラー先LUからスナップショットを送り、受け手側に取込むときの転送速度に反比例することから、本実施形態は従来の方法に対してミラー再同期化時間を半分にすることができる。
【0045】
また、本実施形態によれば、スナップショットを保存するのための一時的なテンポラリ領域としてテンポラリLUであるLU263を設けることにより、スナップショットの利用後にスナップショット削除を指示する必要がないため、バックアップを実施するプログラムを簡素化できる。したがって、プログラムの開発期間を短縮できるので、安価なシステムを構成できるという効果がある。
【0046】
なお、本発明ではコンピュータ100とディスクアレイ200を接続するインターフェースをSCSIバス300としたが、FibreChannel等の他のインターフェースであってもよい。
【0047】
また、スナップショット取得時点のLU261のオリジナルデータをリストアしたい場合は、テンポラリLUであるLU263にスナップショットを保存しているので、LU263をミラー元LUに切り替えればよい。
【0048】
また、スナップショット取得時において、図4のステップ2004のテンポラリコピー開始を指示するModeSelectコマンド発行を省略することもできる。この場合、ステップ3005からステップ3008は、スナップショット管理プログラム221がステップ3003の終了後に実施すればよい。ステップ3005からステップ3008の実行した結果のステータスがエラーとなった場合は、以降にコンピュータ100から発行された任意のコマンドに対するステータスをCheckConditionとし、それを受けてコンピュータ100が発行したRequestSenseコマンドに対して、エラーを伝えるセンスデータを送信すればよい。
【0049】
〔第2の実施形態〕
本発明の第2の実施形態は、第1の実施形態と同様に、データの二重化によるスナップショット管理方法において、二重化を停止している時間を短縮することにより、ミラー再同期化をする際のオリジナルデータのコピー量を削減し、データベースプログラムからのデータアクセス性能が低下するミラー再同期化時間を短縮するためのものである。
【0050】
また、第1の実施形態と同様に、スナップショット利用後のスナップショット削除指示を省略することでバックアッププログラムを簡略化するためのものである。
【0051】
第1の実施形態との違いは、テンポラリLUにスナップショットを保存する際に、ミラー先LU全体のコピーではなく、前回のテンポラリLUに保存したスナップショットとの差分をテンポラリLUにコピーすることである。
【0052】
なお、本発明ではスナップショットの利用例として、バックアップをとりあげるが、OLAP(OnLine Analytical Processing)やシステムテスト等の他の目的においても利用が可能である。
【0053】
(1)構成の説明
本発明の第2の実施形態のシステム構成を図6を用いて説明する。簡略化のため、第1の実施形態との違いについてのみ説明する。
【0054】
図6において、LU263は、第1の実施形態と同様に一時的なスナップショットを保存するテンポラリLUであると同時に、前回のスナップショットが保存してあるテンポラリLUである。
【0055】
ディスクアレイ200のスナップショット管理プログラム221は、第1の実施形態に加え、スナップショット取得時点から次回のスナップショット取得時点まで、ミラー元LUに対する更新を検出する常時更新監視サブプログラム237と、その更新位置を後述する常時更新位置管理表224に記録する常時更新位置管理サブプログラム238を持つ。
【0056】
また、テンポラリコピーサブプログラム233は、スナップショットを取得する際にミラー先LUからテンポラリLUにオリジナルデータを一時的にコピー(テンポラリコピー)するという第1の実施形態の機能に加え、スナップショットを取得する際にミラー先LUから前回のスナップショットが保存してあるテンポラリLUに対して前回のスナップショットとの差分をコピーする機能を持つ。また、テンポラリコピーサブプログラム233は、コピーが完了した位置をスナップショット取得時点で確定した常時更新位置管理表224に記録する機能を持つ。テンポラリコピー時において、スナップショット取得時点で確定した常時更新位置管理表224は第1の実施形態のコピー位置管理表223に代わりをするものであり、コンピュータ100がディスクアレイ200にあるLU261のスナップショットを読み出す場合、スナップショット管理プログラム221は第1の実施形態のコピー位置管理表223に代わりスナップショット取得時点で確定した常時更新位置管理表224を参照する。
【0057】
また、常時更新位置管理表224は、スナップショット取得時点から次回のスナップショット取得時点までに更新されたミラー元LUの更新位置を記録するものであり、更新状況の記録を停止し確定させた後も次回のスナップショット取得に備えて更新位置の監視を続けて行う必要があるため、常時更新位置管理表224は、ミラー元LUにつき2つ以上設置する。常時更新位置管理表224は、図7に示すようなビットマップとし、ミラー元LU内のすべてのLBAセット番号、更新状態から成る。LBAセット番号、更新状態の定義は、非ミラー時更新位置管理表222と同様である。更新状態の初期設定値は、1回目のスナップショット取得では1、2回目以降のスナップショットでは0である。図7の例では、LBAセット番号1の領域のみがスナップショット取得時点から次回のスナップショット取得時点までの間に更新されている状態を示す。なお、常時更新位置管理表224の更新状態の指定値は、ミラー元LUであるLU261と前回のスナップショットを保存してあるテンポラリLUのLU263の間でデータが一致している場合を0、一致していない場合を1と言い換えることもできる。
【0058】
(2)スナップショットの取得
第2の実施形態では、第1の実施形態と異なり、スナップショットの取得時において、前回スナップショットを保存したテンポラリLUに対してスナップショット取得以降の差分データをコピーすることで、新たなスナップショットをテンポラリLUに保存する。1回目のスナップショット取得では、前回のスナップショットを保存したテンポラリLUが存在しないため、第1の実施形態と同様の手順となる。ただし、次回のスナップショット保存の際に差分コピーを実施するため、スナップショット管理プログラム221は図4のステップ3001の次のステップにおいて、常時更新位置管理表224を作成するための常時更新監視サブプログラム237および常時更新位置管理サブプログラム238を有効化する。以降、データベースプログラム126からのデータの書き込み要求があった場合は、常時更新位置管理表224における更新されたLBAを含むLBAセットの更新状態に1を設定し、更新があったことを記録する。
【0059】
次に、2回目以降のスナップショット取得とテンポラリLUへのスナップショット保存手順について説明する。
【0060】
2回目以降のスナップショット取得の際も、常時更新位置管理表224には、スナップショット取得から次のスナップショット取得までの間の更新状況を記録する。スナップショット管理プログラム221は図4のステップ3001の次のステップにおいて、前回のスナップショットから今回のスナップショットまでの更新を記録した常時更新位置管理表224を確定させ、今回のスナップショットから次回のスナップショットまでの常時更新位置管理表224の記録を開始する。以降、スナップショット管理プログラム221は図4のステップ3001の次のステップにおいて、常時更新位置管理表224を確定し、次の常時更新位置管理表224の記録を開始する。
【0061】
また、テンポラリLUであるLU263には前回のスナップショットが保存されたままとなっている。
【0062】
テンポラリコピーの際は、スナップショット管理プログラム221が、テンポラリコピーサブプログラム233により、スナップショット取得時点で確定した常時更新位置管理表224を参照し、ミラー先LUであるLU262からテンポラリLUであるLU263に前回のスナップショットとの差分コピーを行う。それ以外の動作は、第1の実施形態と同様である。
【0063】
ここで、差分をコピーするテンポラリコピー時のテンポラリコピーサブプログラム動作を図8のフローチャートを用いて説明する。まず、スナップショット管理プログラム221は、常時更新位置管理表224に更新記録として更新状態に1があるかどうかを調べる(ステップ1201)。もし、更新記録である1がなければ処理完了として終了する(ステップ1202)。そうでなければ、該当記録位置のデータをミラー先LUである262からテンポラリLUであるLU263にコピーする(ステップ1203)。データのコピーは、LU262を含むディスク252にREADコマンドを発行して指定したLBAのデータを読み出し、LU263を含むディスク253にWRITEコマンドを発行してLU262に指定したLBAと同じLBAに読み出したデータを書きこむことで実施する。データのコピーは、COPYコマンドを用いてもよい。最後に、常時更新位置管理表224の該当する更新記録に0を設定して更新記録を削除し(ステップ1204)、ステップ1201に戻る。
【0064】
(3)データ読み出しと書きこみ、および、スナップショット読み出しの際のコンピュータ動作
コンピュータ100が、ディスクアレイ200にあるLU261のデータにアクセスする場合のデータベースプログラム126の動作、および、コンピュータ100が、ディスクアレイ200にあるLU261のスナップショットを読み出す場合のバックアッププログラム127の動作は、第1の実施形態と同様である。
【0065】
(4)データ読み出しと書きこみ、および、スナップショット読み出しの際のディスクアレイ動作
まず、コンピュータ100が、ディスクアレイ200にあるLU261のデータにアクセスする場合のスナップショット管理プログラム221の動作を説明する。
【0066】
コンピュータ100がLU261のデータを読み出す場合のスナップショット管理プログラム221の動作は、第1の実施形態と同様である。
【0067】
コンピュータ100がLU261にデータを書きこみ記憶内容を更新する場合、スナップショット管理プログラム221がLU261に対するWRITEコマンドとデータを受信する。次に、LUミラーサブプログラム231が有効であればLU261とミラー先LUであるLU262にデータを書きこみ、無効であればLU261にデータを書きこむ。次に、更新記録をとっているミラー元LUの常時更新位置管理表224に対して、更新したLBAを含むLBAセットの更新状態を1に設定する。次に、非ミラー時更新監視サブプログラム234と非ミラー時更新位置管理サブプログラム235が有効であれば、LU261の非ミラー時更新位置管理表222に対して更新したLBAを含むLBAセットの更新状態を1に設定し、無効であれば何もしない。最後に、ステータスをコンピュータ100に送信する。
【0068】
次に、コンピュータ100が、ディスクアレイ200にあるLU261のスナップショットを読み出す場合のスナップショット管理プログラム221の動作を説明する。
【0069】
コンピュータ100がLU261のスナップショットを読み出す場合、スナップショット管理プログラム221がLU261のテンポラリLUであるLU263に対するREADコマンドを受信する。次に、スナップショット管理プログラム221は、スナップショット取得時に確定し、かつ、テンポラリコピー時に第1の実施形態におけるコピー位置管理表223の代わりとして用いられる常時更新位置管理表224を参照し、READコマンドで指定されたLBAを含むLBAセットの更新状態を調べる。更新状態が0、すなわち、テンポラリLUであるLU263にLU261のスナップショットが保存されている場合は、LU263からデータを読み出す。コピー状態が1、すなわち、テンポラリLUであるLU263にLU261のスナップショットが保存されていない場合は、ミラー先LUであるLU262からデータを読み出す。最後に、読み出したデータとステータスをコンピュータ100に送信する。スナップショットのデータを送信できない場合、ディスクアレイ200にエラーステータスのみを送信する。
【0070】
(5)効果
第2の実施形態では、第1の実施形態と同様に、スナップショットを保存するのための一時的なテンポラリ領域としてテンポラリLUであるLU263を設けることにより、ミラー元LUであるLU261とミラー先LUであるLU262の二重化停止時間を短縮することができ、非ミラー時更新位置管理表222に記録される更新位置の量を削減することができる。さらに第2の実施形態では、テンポラリLUに前回のスナップショットを保存しておき、テンポラリコピー時に前回のスナップショットとの差分のみをコピーするので、さらにLU261とLU262の二重化停止時間を短縮することができる。したがって、ミラー再同期化をする際に、更新されたオリジナルデータをミラー元LUからミラー先LUにコピーする量を削減することができ、コンピュータ100からのデータアクセス性能が低下するミラー再同期化時間を短縮できるという効果がある。
【0071】
また、第2の実施形態では、第1の実施形態と同様に、スナップショットを保存するのための一時的なテンポラリ領域としてテンポラリLUであるLU263を設けることにより、スナップショットの利用後にスナップショット削除を指示する必要がないため、バックアップを実施するプログラムを簡素化できる。したがって、プログラムの開発期間を短縮できるので、安価なシステムを構成できるという効果がある。
【0072】
また、テンポラリコピー時のコピー方法として、第1の実施形態におけるLU262全体をコピーする方法と、第2の実施形態のLU262とLU263の差分のみをコピーする方法とを選択できるコピー方法選択サブプログラムをスナップショット管理プログラム221に追加することも考えられる。これは、前回のスナップショットからの更新がLU261内のほぼ全領域に実施されたときに、LU262全体をLBAセットの先頭から連続的にコピーする方がコピー時間を短縮できる場合があることを想定してのものである。これにより、前回のスナップショットからの更新データの量に応じて、テンポラリコピーの方法をユーザが選択することができテンポラリコピーを効率よく行える。したがって、LU261とLU262の二重化停止時間を短縮することができることから、ミラー再同期化をする際に、更新されたオリジナルデータをミラー元LUからミラー先LUにコピーする量を削減することができ、コンピュータ100からのデータアクセス性能が低下するミラー再同期化時間を短縮できるという効果がある。
【0073】
なお、本発明ではコンピュータ100とディスクアレイ200を接続するインターフェースをSCSIバス300としたが、FibreChannel等の他のインターフェースであってもよい。
【0074】
また、スナップショット取得時点のLU261のオリジナルデータをリストアしたい場合は、テンポラリLUであるLU263にスナップショットを保存しているので、LU263をミラー元LUに切り替えればよい。
【0075】
また、スナップショット取得時において、図4のステップ2004のテンポラリコピー開始を指示するModeSelectコマンド発行を省略することもできる。この場合、ステップ3005からステップ3008は、スナップショット管理プログラム221がステップ3003の終了後に実施すればよい。ステップ3005からステップ3008の実行した結果のステータスがエラーとなった場合は、以降にコンピュータ100から発行された任意のコマンドに対するステータスをCheckConditionとし、それを受けてコンピュータ100が発行したRequestSenseコマンドに対して、エラーを伝えるセンスデータを送信すればよい。
【0076】
【発明の効果】
以上述べたように、本発明によれば、データを2つの記憶領域に二重化し、スナップショット取得時に二重化を停止して片方の記憶領域をスナップショットとして提供するスナップショット管理方法において、スナップショットを保存するのための一時的なテンポラリ領域として、ディスクアレイ内に高速なディスクからなるテンポラリLUを設けることにより、スナップショット取得のために二重化を停止している時間を短縮することができる。したがって、ミラー再同期化をする際に、更新されたオリジナルデータをミラー先LUにコピーする量を削減することができ、データベースプログラムからのデータアクセス性能が低下するミラー再同期化時間を短縮できるという効果がある。
【0077】
また、本実施形態によれば、スナップショットを保存するのための一時的なテンポラリ領域としてテンポラリLUを設けることにより、スナップショットの利用後にスナップショット削除を指示する必要がないため、バックアップを実施するプログラムを簡素化できる。したがって、プログラムの開発期間を短縮できるので、安価なシステムを構成できる
という効果がある。
【図面の簡単な説明】
【図1】第1の実施形態におけるシステム構成図である。
【図2】第1の実施形態における非ミラー時更新位置管理表の説明図である。
【図3】第1の実施形態におけるコピー位置管理表の説明図である。
【図4】第1の実施形態におけるスナップショット取得フローである。
【図5】第1の実施形態におけるミラー再同期サブプログラムの動作フローである。
【図6】第2の実施形態におけるシステム構成図である。
【図7】第2の実施形態における常時更新位置管理表の説明図である。
【図8】第2の実施形態におけるテンポラリコピーサブプログラムの動作フローである。
【符号の説明】
100…コンピュータ、126…データベースプログラム、127…バックアッププログラム、200…ディスクアレイ、221…スナップショット管理プログラム、222…非ミラー時更新位置管理表。
Claims (5)
- 上位装置からの要求を処理するプロセッサと、
前記プロセッサに接続され、情報を格納するメモリと、
前記上位装置からアクセスの対象となる第1の論理ユニットと、
前記第1の論理ユニットのデータが格納される第2の論理ユニットと、
データが一時的に格納される第3の論理ユニットと、
を有し、
前記メモリは、前記第1の論理ユニットに書き込まれたデータの更新された位置が格納される第1の更新位置管理表と、
前記第2の論理ユニットから前記第3の論理ユニットに書き込まれたデータの更新された位置が格納される第2の更新位置管理表と、
前記上位装置からスナップショットを取得する要求から次のスナップショットを取得する要求までの間に、前記第1の論理ユニットに書き込まれたデータの更新された位置が格納される第3の更新位置管理表と、を備え、
前記プロセッサは、前記上位装置から送信された書き込みデータを前記第1の論理ユニットに書き込むとともに、前記書き込みデータを前記第2の論理ユニットに書き込み、
前記上位装置からスナップショットを取得する第1の要求を受領した際、前記プロセッサは、前記第1の論理ユニットに更新された位置を前記第1の更新位置管理表と前記第3の更新位置管理表に記録するとともに、前記第2の論理ユニットにデータを書き込むことを停止し、
前記プロセッサは、前記第2の論理ユニットのデータを前記第3の論理ユニットに書き込むとともに、前記第2の更新位置管理表に前記書き込んだ位置を記録し、
前記第3の論理ユニットにデータの書き込みが終了した後、前記プロセッサは、前記第1の更新位置管理表に基づいて、前記第1の論理ユニットから前記第2の論理ユニットに対して、更新されたデータを書き込み、
さらに、前記上位装置からスナップショットを取得する第2の要求を受領した場合に前記第2の論理ユニットから前記第3の論理ユニットにデータを書き込む際、前記プロセッサは、前記第2の更新管理表を利用してデータを書き込むか、または、前記第3の更新管理表に基づいてデータを書き込むか、を選択する記憶システム。 - 請求項1記載の記憶システムにおいて、
前記上位装置が前記第1の要求に対するスナップショットのデータを読み込む場合、前記プロセッサは、前記第2の更新位置管理表又は前記第3の更新位置管理表により、前記第2の論理ユニット又は前記第3の論理ユニットから前記スナップショットのデータを読み出す記憶システム。 - 請求項1記載の記憶システムにおいて、
前記プロセッサと前記第1乃至3の論理ユニットと、に接続され、前記プロセッサの指示によって、前記第1乃至3の論理ユニットにアクセスするディスクコントローラを有する記憶システム。 - 請求項3記載の記憶システムにおいて、
前記コンピュータからの要求に応じて、前記プロセッサが前記ディスクコントローラに前記第1乃至3の論理ユニットにアクセスする指示するディスクアクセスプログラムと、
前記プロセッサが前記第1の論理ユニットに更新されたデータを前記第2の論理ユニットに書き込むLUミラーサブプログラムと、
前記プロセッサが前記第2の論理ユニットから前記第3の論理ユニットにデータを書き込むスナップショット管理プログラムと、
前記プロセッサが前記第1の論理ユニットから前記第2の論理ユニットに更新されたデータを書き込むことを停止している際、前記第1の論理ユニットに対する更新を検出する非ミラー時更新監視プログラムと、
前記第1の論理ユニットに対する更新された位置を前記メモリに格納する非ミラー時更新位置管理プログラムと、
前記プロセッサが前記第1の論理ユニットから前記第2の論理ユニットに対して、再度、同期化を行うミラー再同期プログラムと、
を前記メモリに有する記憶システム。 - 請求項1記載の記憶システムにおいて、
前記メモリは、前記第1の論理ユニットに対する前記第3の更新管理表を複数有し、
前記上位装置からスナップショットを取得する第3の要求を受領した場合、
前記プロセッサは、前記第3の更新管理表を確定した後、前記第3の要求からの更新の位置を記録する新たな第3の更新管理表を作成する記憶システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000154367A JP3882467B2 (ja) | 2000-05-22 | 2000-05-22 | 記憶装置システムのスナップショット管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000154367A JP3882467B2 (ja) | 2000-05-22 | 2000-05-22 | 記憶装置システムのスナップショット管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001331378A JP2001331378A (ja) | 2001-11-30 |
JP3882467B2 true JP3882467B2 (ja) | 2007-02-14 |
Family
ID=18659471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000154367A Expired - Fee Related JP3882467B2 (ja) | 2000-05-22 | 2000-05-22 | 記憶装置システムのスナップショット管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3882467B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100349139C (zh) * | 2004-02-19 | 2007-11-14 | 华为技术有限公司 | 一种快照过程中向源卷写数据的方法 |
US7487386B2 (en) * | 2005-03-30 | 2009-02-03 | International Business Machines Corporation | Method for increasing file system availability via block replication |
JP4800031B2 (ja) | 2005-12-28 | 2011-10-26 | 株式会社日立製作所 | ストレージシステム及びスナップショット管理方法 |
JP2007188267A (ja) | 2006-01-12 | 2007-07-26 | Hitachi Ltd | 記憶制御装置及びその制御方法 |
JP5194962B2 (ja) * | 2008-04-03 | 2013-05-08 | 富士通株式会社 | データ処理方法、ストレージ装置およびストレージシステム |
JP5488952B2 (ja) | 2008-09-04 | 2014-05-14 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
GB2480599A (en) * | 2010-05-17 | 2011-11-30 | Tech Universit T Muenchen | Hybrid OLTP and OLAP database |
CN109783274B (zh) * | 2017-11-15 | 2023-03-14 | 阿里巴巴集团控股有限公司 | 一种磁盘快照的管理方法、装置以及可读存储介质 |
-
2000
- 2000-05-22 JP JP2000154367A patent/JP3882467B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001331378A (ja) | 2001-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3868708B2 (ja) | スナップショット管理方法及び計算機システム | |
JP3714184B2 (ja) | 記憶装置のデータ領域間複写処理方法、及び記憶システム | |
JP3726559B2 (ja) | ダイレクトバックアップ方法および記憶装置システム | |
JP3316500B2 (ja) | 移動されたデータの完全性を維持しながらraidセットにおけるドライブ数の拡張 | |
US7072915B2 (en) | Copy method supplementing outboard data copy with previously instituted copy-on-write logical snapshot to create duplicate consistent with source data as of designated time | |
JP3974538B2 (ja) | 情報処理システム | |
JP4108973B2 (ja) | バックアップシステム | |
US6981115B2 (en) | Method of data backup in a computer system and a storage system therefor | |
JP4199993B2 (ja) | スナップショット取得方法 | |
JP4486348B2 (ja) | ドライブの稼働時間を抑止するディスクアレイ | |
US7461176B2 (en) | Method for initialization of storage systems | |
US6886075B2 (en) | Memory device system and method for copying data in memory device system | |
JPH08305500A (ja) | 記憶制御装置、それを含むデータ記憶システムおよび二重ペア抑止方法 | |
JP3606797B2 (ja) | 記憶装置のデータ領域間の複写処理方法、記憶システム、及びその記憶媒体 | |
JP3832223B2 (ja) | ディスクアレイのディスク障害復旧方法 | |
JPH07191811A (ja) | 磁気ディスク装置の移行方式 | |
JP2002132554A (ja) | データベースアクセス方法 | |
JP2023055998A (ja) | ストレージシステム及びストレージシステムの制御方法 | |
JP3882467B2 (ja) | 記憶装置システムのスナップショット管理方法 | |
JP3490266B2 (ja) | ディスクシステムと磁気テープライブラリ装置によるバックアップシステム及びバックアップ方法 | |
JPH11120057A (ja) | ファイルバックアップ方法 | |
JP4394467B2 (ja) | ストレージシステム、サーバ装置及び先行コピーデータ生成方法 | |
JP4187778B2 (ja) | バックアップシステム及びバックアップ方法 | |
JP4122724B2 (ja) | データの複製方法及び情報処理システム | |
JP2001290713A (ja) | 記憶装置システム及びそのバックアップ取得方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060314 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060417 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060425 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060626 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061024 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061106 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101124 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101124 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121124 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121124 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131124 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |