(57)【特許請求の範囲】
【請求項１】
ディスク周辺装置に接続されたホスト・コンピュータと、前記ホスト・コンピュータおよび前記ディスク周辺装置に接続されたバックアップ・コンピュータと、前記バックアップ・コンピュータに接続されたテープ周辺装置とを有するデータ処理システムにおいて、前記ディスク周辺装置上に位置するデータの所望の部分のスナップショット・イメージを作成する方法であって、
（ａ）前記ディスク周辺装置から前記所望のデータのブロックを読み出すステップと、
（ｂ）ステップ（ａ）において読み出した前記ブロックと同じディスク周辺装置のアドレスから以前に読み出したデータのブロックが、前記バックアップ・コンピュータ内のオリジナル・データ・キャッシュ内で得ることができるか否かについて判定を行うステップと、
（ｃ）得られる場合、前記以前に読み出したデータのブロックを前記バックアップ・コンピュータから前記テープ周辺装置に転送するステップと、
（ｄ）得られない場合、ステップ（ａ）において読み出した前記データのブロックを前記ディスク周辺装置から前記バックアップ・コンピュータを介して前記テープ周辺装置に転送するステップと、
（ｅ）前記所望部分全体を前記テープ周辺装置に転送し終えるまで、ステップ（ａ）ないし（ｄ）を繰り返すステップと、
から成ることを特徴とする方法。
【請求項２】
ディスク周辺装置に接続されたホスト・コンピュータと、前記ホスト・コンピュータおよび前記ディスク周辺装置に接続されたバックアップ・コンピュータと、前記バックアップ・コンピュータに接続されたテープ周辺装置とを有するデータ処理システムにおいて、前記ディスク周辺装置上に位置するデータの所望の部分のスナップショット・イメージを作成する方法であって、
（ａ）前記ディスク周辺装置から前記所望データの複数のブロックを読み出すステップと、
（ｂ）前記複数のブロックを前記バックアップ・コンピュータ内のバッファ内に置くステップと、
（ｃ）ステップ（ｂ）において前記バッファ内に置いた各ブロック毎に、
同じディスク周辺装置のアドレスから以前に読み出したデータのブロックが前記バックアップ・コンピュータ内のオリジナル・データ・キャッシュ内で得ることができるか否かについて判定を行うステップと、得られる場合、現在前記バッファ内にある前記データのブロックを、前記バックアップ・コンピュータ内の以前に読み出したデータのブロックで置換するステップとを実行するステップと、
（ｄ）前記バッファの内容を前記バックアップ・コンピュータから前記テープ周辺装置に転送するステップと、
（ｅ）前記所望部分を前記ディスク周辺装置から前記テープ周辺装置に転送し終えるまで、ステップ（ａ）ないし（ｄ）を繰り返すステップと、
から成ることを特徴とする方法。
【請求項３】
ディスク周辺装置に接続されたホスト・コンピュータと、前記ホスト・コンピュータおよび前記ディスク周辺装置に接続されたバックアップ・コンピュータと、前記バックアップ・コンピュータに接続されたテープ周辺装置とを有するデータ処理システムにおいて、前記ディスク周辺装置上に位置するデータの所望の部分のスナップショット・イメージを作成する方法であって、
（ａ）前記ホスト・コンピュータから前記ディスク周辺装置への書き込みコマンドを監視するステップと、
（ｂ）書き込みコマンドが検出された場合、
（ｉ）前記書き込みコマンドを保留にするステップと、
（ｉｉ）前記書き込みコマンドが検出された前記ディスク周辺装置のアドレスからデータを前記バックアップ・コンピュータによってコピーするステップと、
（ｉｉｉ）ステップ（ｉｉ）においてコピーしたデータを、前記バックアップ・コンピュータ内のオリジナル・データ・キャッシュに格納するステップと、
（ｉｖ）前記書き込みを実行するステップと、
を実行するステップと、
（ｃ）前記データの所望部分の少なくとも１ブロックを、前記ディスク周辺装置から前記バックアップ・コンピュータによって読み出すステップと、
（ｄ）ステップ（ｃ）において読み出した各ブロック毎に、
同じディスク周辺装置のアドレスから以前に読み出したデータのブロックが前記バックアップ・コンピュータ内のオリジナル・データ・キャッシュ内で得ることができるか否かについて判定を行うステップと、得られる場合、前記以前に読み出したデータのブロックを前記バックアップ・コンピュータから前記テープ周辺装置に転送するステップと、得られない場合、ステップ（ｃ）において読み出したデータのブロックを前記バックアップ・コンピュータを介して前記テープ周辺装置に転送するステップと、
を実行するステップと、
ｅ）前記データの所望部分を前記ディスク周辺装置から前記テープ周辺装置に転送し終えるまで、ステップ（ａ）ないし（ｄ）を繰り返すステップと、
から成ることを特徴とする方法。
【請求項４】
ホスト・コンピュータと、コピー・オン・ライト機能を有し前記ホスト・コンピュータに接続されたディスク周辺装置と、前記ホスト・コンピュータおよび前記ディスク周辺装置に接続されたバックアップ・コンピュータとを有するデータ処理システムにおけるコピー・オン・ライト方法であって、
（ａ）前記ホスト・コンピュータから前記ディスク周辺装置への書き込みコマンドを監視するステップと、
（ｂ）書き込みコマンドが検出された場合、
（ｉ）前記書き込みコマンドを保留にするステップと、
（ｉｉ）前記書き込みコマンドが宛てられた前記ディスク周辺装置のアドレスからデータを前記バックアップ・コンピュータによってコピーするステップと、
（ｉｉｉ）ステップ（ｉｉ）においてコピーした各データのブロック毎に、
（１）前記ブロックのアドレスを、前記バックアップ・コンピュータ内のオリジナル・データ・キャッシュに既に格納されているブロックのアドレス・リストと比較するステップと、
（２）前記ブロックのアドレスが前記リスト上にある場合、前記ブロックを破棄するステップと、
（３）前記ブロックのアドレスが前記リスト上にない場合、前記ブロックを前記バックアップ・コンピュータ内の前記オリジナル・データ・キャッシュ内に格納し、前記ブロックのアドレスを前記リストに追加するステップと、
を実行するステップと、
（ｉｖ）前記書き込みを実行するステップと、
から成ることを特徴とする方法。
【請求項５】
請求項４記載の方法において、ステップｂ（ｉｉｉ）（３）が、前記ブロックの位置に対するポインタを、前記バックアップ・コンピュータに格納する追加ステップを含むことを特徴とする方法。
【請求項６】
請求項４記載の方法において、ステップｂ（ｉｉｉ）（３）が、前記ブロックに対する状態インディケータを格納する追加ステップを含み、前記状態インディケータが、前記ブロックが前記バックアップ・コンピュータから読み出したのか否かを示すことを特徴とする方法。
【請求項７】
データ処理システムであって、
ホスト・コンピュータと、
前記ホスト・コンピュータに接続され、内部プロセッサを有するディスク周辺装置と、
テープ周辺装置と、
前記ディクス周辺装置および前記テープ周辺装置に接続され、前記ホスト・コンピュータが前記ディスク周辺装置上のデータにアクセスし続ける間、前記ディスク周辺装置上のデータの少なくとも一部のスナップショット・コピーを前記テープ周辺装置上で作成するバックアップ・コンピュータと、
を備え、前記バックアップ・コンピュータが更に、
（ｉ）オリジナル・データ・キャッシュと、
（ｉｉ）前記ディスク周辺装置からコピー・オン・ライト（ＣＯＷ）データを受け取る手段と、ＣＯＷデータを前記オリジナル・データ・キャッシュに格納する手段とを有するデータ・キャッシュ・ユーティリティと、
（ｉｉｉ）前記ディスク周辺装置からデータ・コマンドを受け取る手段と、前記ディスク周辺装置からデータを受け取る手段と、前記テープ周辺装置にデータを送る手段とを有するバックアップ・ユーティリティと、
（ｉｖ）前記バックアップ・ユーティリティからの読み取りコマンドに応答して前記ディスク周辺装置からデータを受け取る手段と、受け取ったデータのディスク周辺装置アドレスとＣＯＷデータのディスク周辺装置アドレスとを比較する手段と、前記バックアップ・ユーティリティヘデータを供給する手段と、前記バックアップ・ユーティリティへ供給されるべきデータを、前記ディスク周辺装置から受け取ったデータ又は前記オリジナル・データ・キャッシュ内に格納されたＣＯＷデータから選択する手段とを有する読み取りユーティリティと、
を含むことを特徴とするデータ処理システム。
【請求項８】
コピー・オン・ライト機能を備えたディスク周辺装置と、該ディスク周辺装置に接続されたホスト・コンピュータとを有するデータ処理システムと共に用いるバックアップ・コンピュータ・システムであって、
前記ディスク周辺装置上の情報の少なくとも一部のバックアップ・コピーを格納するテープ周辺装置と、
前記ディクス周辺装置および前記テープ周辺装置に接続されたバックアップ・コンピュータであって、
前記ディスク周辺装置からコピー・オン・ライト・データを受け取る手段と、
前記コピー・オン・ライト・データを前記バックアップ・コンピュータに格納する手段と、
前記ディスク周辺装置からのバックアップ・データを要求する手段と、
要求に応答して前記ディスク周辺装置からバックアップ・データを受け取る手段と、
データを前記テープ周辺装置に転送する手段と、
前記受け取ったバックアップ・データまたは前記格納したコピー・オン・ライト・データのいずれかを、前記テープ周辺装置に転送するために選択する手段と、を有するバックアップ・コンピュータと、
を備えることを特徴とするバックアップ・コンピュータ・システム。
【請求項９】
テープ周辺装置と、コピー・オン・ライト機能を有するディスク周辺装置と、前記ディスク周辺装置に接続されたホスト・コンピュータと共に用いるバックアップ・コンピュータ・システムであって、
前記ディスク周辺装置および前記テープ周辺装置に接続されたバックアップ・コンピュータであって、
前記ディスク周辺装置からコピー・オン・ライト・データを受け取る手段と、
前記コピー・オン・ライト・データを前記バックアップ・コンピュータに格納する手段と、
前記ディスク周辺装置からのバックアップ・データを要求する手段と、
要求に応答して前記ディスク周辺装置からバックアップ・データを受け取る手段と、
データを前記テープ周辺装置に転送する手段と、
前記受け取ったバックアップ・データまたは前記格納したコピー・オン・ライト・データのいずれかを、前記テープ周辺装置に転送するために選択する手段と、を有するバックアップ・コンピュータを備えることを特徴とするバックアップ・コンピュータ・システム。
【請求項１０】
ホスト・コンピュータと共に用いるデータ記憶およびバックアップ・システムであって、
前記ホスト・コンピュータに接続され、コピー・オン・ライト機能を有するディスク周辺装置と、
前記ディスク周辺装置上の情報の少なくとも一部分のバックアップ・コピーを格納するテープ周辺装置と、
前記ディスク周辺装置および前記テープ周辺装置に接続されたバックアップ・コンピュータであって、
前記ディスク周辺装置からコピー・オン・ライト・データを受け取る手段と、
前記コピー・オン・ライト・データを前記バックアップ・コンピュータに格納する手段と、
前記ディスク周辺装置からのバックアップ・データを要求する手段と、
要求に応答して前記ディスク周辺装置からバックアップ・データを受け取る手段と、
データを前記テープ周辺装置に転送する手段と、
前記受け取ったバックアップ・データまたは前記格納したコピー・オン・ライト・データのいずれかを、前記テープ周辺装置に転送するために選択する手段と、を有するバックアップ・コンピュータと、
を備えることを特徴とするデータ記憶およびバックアップ・システム。
【請求項１１】
テープ周辺装置と、コピー・オン・ライト機能を有するディスク周辺装置と、前記ディスク周辺装置に接続されたホスト・コンピュータと共に用いるバックアップ・システムであって、
ユーティリティ・プログラムを実行するプロセッサと、
データ記憶手段と、
前記データ記憶手段内にあるオリジナル・データ・キャッシュと、
前記ディスク周辺装置からコピー・オン・ライト（ＣＯＷ）データを受け取る手段と、前記ＣＯＷデータを前記オリジナル・データ・キャッシュに格納する手段とを有するデータ・キャッシュ・ユーティリティと、
前記ディスク周辺装置に読み出しコマンドを発行する手段と、前記ディスク周辺装置からデータを受け取る手段と、データを前記テープ周辺装置に送る手段とを有するバックアップ・ユーティリティと、
前記バックアップ・ユーティリティからの読み出しコマンドに応答して前記ディスク周辺装置からデータを受け取る手段と、受け取ったデータの前記ディスク周辺装置のアドレスを、ＣＯＷデータのディスク周辺装置のアドレスと比較する手段と、データを前記バックアップ・ユーティリティに供給する手段と、前記ディスク周辺装置から受け取った前記データまたは前記オリジナル・データ・キャッシュ内に格納されている前記ＣＯＷデータのいずれかから、前記バックアップ・ユーティリティに供給するデータを選択する手段とを有する読み出しユーティリティと、
を備えることを特徴とするバックアップ・システム。
【請求項１２】
請求項７記載のデータ処理システムにおいて、前記バックアップ・コンピュータが、
オリジナル・データ・キャッシュと、
前記ディスク周辺装置からコピー・オン・ライト（ＣＯＷ）データを受け取る手段と、前記ＣＯＷデータを前記オリジナル・データ・キャッシュに格納する手段とを有するデータ・キャッシュ・ユーティリティと、
前記ディスク周辺装置に読み出しコマンドを発行する手段と、前記ディスク周辺装置からデータを受け取る手段と、データを前記テープ周辺装置に送る手段とを有するバックアップ・ユーティリティと、
前記バックアップ・ユーティリティからの読み出しコマンドに応答して前記ディスク周辺装置からデータを受け取る手段と、受け取ったデータの前記ディスク周辺装置のアドレスを、ＣＯＷデータのディスク周辺装置のアドレスと比較する手段と、データを前記バックアップ・ユーティリティに供給する手段と、前記ディスク周辺装置から受け取った前記データまたは前記オリジナル・データ・キャッシュ内に格納されている前記ＣＯＷデータのいずれかから、前記バックアップ・ユーティリティに供給するデータを選択する手段とを有する読み出しユーティリティと、
を含むことを特徴とするデータ処理システム。
【請求項１３】
請求項１１または１２記載のシステムにおいて、前記バックアップ・コンピュータが、更に、
前記オリジナル・データ・キャッシュのマップと、
前記マップ内に、前記ＣＯＷデータの前記ディスク周辺装置のアドレスを前記マップ内に格納する手段と、
前記オリジナル・データ・キャッシュ内の前記ＣＯＷデータに対するポインタを割り当て、前記マップに格納する手段と、
前記ディスク周辺装置から受け取ったデータのアドレスと一致する、格納したアドレスについて、前記マップをチェックする手段と、
を備えることを特徴とするシステム。
【請求項１４】
請求項１３記載のデータ処理システムにおいて、前記バックアップ・ユーティリティによって要求された各アドレス毎に、前記選択する手段が、前記マップ内に対応するアドレスが見つからない場合、前記受け取ったデータを選択し、前記マップ内に対応するアドレスが見つかった場合、前記オリジナル・データ・キャッシュのデータを選択することを特徴とするデータ処理システム。
【請求項１５】
請求項１３記載の装置において、前記データ・キャッシュ・ユーティリティが、更に、ＣＯＷデータを前記オリジナル・データ・キャッシュ内に格納する前に前記マップをチェックし、同じディスク周辺装置のアドレスからのデータが、前記オリジナル・データ・キャッシュに以前には格納されていないことを前記マップが示す場合のみ、前記データを前記オリジナル・データ・キャッシュに格納する手段を含むことを特徴とする装置。
【請求項１６】
請求項１４記載の装置において、前記データ・キャッシュ・ユーティリティが、更に、前記マップ内に、各ＣＯＷエントリ毎に状態フィールドを格納する手段を含み、前記状態フィールドが、前記オリジナル・データ・キャッシュ内の対応するＣＯＷデータが、前記読み出しユーティリティ選択手段によって選択されているか、または選択されていないかのいずれかを示すことを特徴とする装置。
【請求項１７】
請求項１６記載の装置において、前記読み出しユーティリティが、更に、前記オリジナル・データ・キャッシュから、前記状態フィールドに関連する前記ＣＯＷデータを前記読み出しユーティリティが選択する場合、前記状態フィールドの内容を変更する手段を含むことを特徴とする装置。
【請求項１８】
請求項１６記載の装置において、前記ポインタを割り当てる手段が、以前に割り当てたポインタに関連する前記状態フィールドが、当該ポインタに関連するＣＯＷデータが前記読み出しユーティリティ選択手段によって選択されたことを示す場合、前記以前に割り当てたポインタを再度割り当てる手段を含むことを特徴とする装置。
【発明の詳細な説明】
発明の背景
発明の分野
本発明は、一般的に、コンピュータと共に用いるデータ・バックアップ・システムに関し、更に特定すれば、記憶システムの使用中に当該記憶システムをテープにバックアップする装置および方法に関するものである。
従来技術の説明
データ処理システムは、通常、データおよびプログラムの記憶に１つ以上のディスク・ドライブを使用する。ホスト・コンピュータは、ディスク・システムから現在必要な特定の情報を引き出し、ホストが今後必要とする可能性があるが現時点では内部の主メモリには不要な、新たなまたは更新した情報、データあるいはプログラムをディスク・システムに送り格納する。
大企業や政府機関(governmental entity)のような多くの組織は、非常に大型の情報データベースを有し、素早いアクセスや変更が容易にできるようにしておく必要がある。これらのデータベースは、状況によっては、データが１テラバイト以上となり、単一の大型論理メモリ・システムに編成された多数のディスク・ドライブまたはディスク・ドライブ・アレイを内蔵する、大型データ記憶システムを必要とする場合もある。多くの場合、データベース・トランザクションの処理のみを専門に行う、または主にこれを行うホスト・プロセッサ、即ち、サーバがある。様々なデータベースのユーザは、ネットワークを通じて、そのデータベース要求をデータベース・サーバに送信し、要求したデータをデータベース・サーバから受信する。
かかる大型データベースを用いる組織は、典型的に、業務上の理由、法的な理由または保管の理由のために、頻繁にそのデータベースのバックアップを作成する必要がある。また、最近のディスク・システムは、一般に信頼性が高いデバイスであるが、組織によっては、記憶システムの障害の可能性に対する保護として、そのデータベースをバックアップしておくことを望む場合もある。
したがって、ディスク・システム上のデータの一部または全てのバックアップを周期的に行うのは、日常的な業務である。典型的に、これを行うには、バックアップしたいデータを磁気テープ上にコピーする。次に、システム・ユーザが決定したある時間期間にわたってテープを保持し、必要に応じてシステムを既知の状態に復元するために使用可能にしておく。
バックアップ動作を実行するためのユーティリティ・プログラムは、多数市販されている。典型的に、これらのユーティリティは、データベース・サーバ上で走らせることを意図したものである。場合によっては、ＬＡＮを通じてデータベース・サーバと通信する別のコンピュータ・システム上でユーティリティを走らせることも可能である。これは、ＬＡＮを通じてテラバイトものデータベースをバックアップする場合、バックアップ・ユーティリティをバックアップ・サーバ上で走らせても、ＬＡＮ上の別のコンピュータ上で走らせても、非常に時間がかかり、バックアップ・プロセスの間、データベース・サーバの参加が必要となるという欠点がある。データベース・サーバを巻き込むと、その処理パワーをサーバの主要なタスクから逸らせてしまい、システム・ユーザに対する応答時間が劣化したり、またはバックアップを完了するのに要する時間が長引く場合もある。
従来技術における他の問題として、一般に、組織は、それらのデータベースの、ある時点の「スナップショット」を望むということがあげられる。バックアップ中のデータ一貫性を確保する手段の１つは、バックアップ動作の間、ユーザがデータにアクセスするのを制限することである。極度に大きなデータベースのバックアップは、時として何時間も要する可能性があるので、組織にとっては、そのデータベースがバックアップの期間中そのユーザが使用できないというのは、多くの場合受け入れ難いことである。
従来技術には、この問題を解決し、バックアップの進行中にも引き続きユーザがデータベースヘの書き込みが可能なシステムが開発されている。例えば、米国特許第５，５３５，３８１号は、コピー・オン・ライト（ＣＯＷ：copy-on-write）技法を用いて、書き込みコマンドの実行に先立って「オリジナル」データを別個のバッファにセーブするシステムを開示する。ＣＯＷデータは、別個のテープ・レコードにおいてバックアップ・テープ上に格納されるので、テープ上に格納されたイメージはオリジナル・イメージの複製ではなく、オリジナル・データ・イメージを再生するためには、再統合が必要となる。
米国特許第５，４８７，１６０号は、別のＣＯＷ技法を開示する。ここでは、バックアップが完了するまで、オリジナル・データを予備のディスク・ドライブ上に格納しておき、次いで予備ドライブの内容をバルクでバックアップ・テープに転送する。この場合も、バックアップ・テープ上のイメージは断片化されており、オリジナル・イメージを再構成するためには、再統合プロセスが必要となる。
本発明は、バックアップ・プロセスの間でもユーザがシステムに無制限にアクセスすることができ、しかも再構成を必要としないスナップショット・バックアップ・イメージをテープ上に作成することにより、これらの問題および欠点を解決しようとするものである。
発明の概要
本発明は、市販のバックアップ・ソフトウエア・ユーティリティ・プログラムを用いて、データベースまたは記憶システムをテープ・バックアップ・システム上にバックアップする方法および装置に関する。
本発明の目的は、データベースのスナップショットを収容するバックアップ・テープを作成することである。
本発明の別の目的は、ユーザがアクセスし続けつつ、素早くかつ一貫的なデータベースのバックアップを可能にすることである。
別個のバックアップ機器(backup appliance)を用いて、ディスク・システムからテープ・システムヘのデータベースの転送を処理することは、本発明の特徴の１つである。
オリジナル・データベースのデータ・ブロックを一時的に格納しておき、バックアップ・テープ・システムヘの転送の前に、データベース・イメージに再統合することは、本発明の別の特徴である。
本発明の利点は、標準的な市販のバックアップ・ユーティリティ・プログラムを採用可能なことにある。
本発明の別の利点は、ホスト・プロセッサがバックアップに参加する必要がないことである。
本発明の更に別の利点は、テープ上のバックアップ・イメージが後の再統合または再構成を必要としないことである。
本発明のその他の特徴および利点は、好適な実施形態の詳細な説明およびその図面を参照した後には、当業者によって理解されていよう。
【図面の簡単な説明】
図１は、本発明にしたがってバックアップを行うデータ処理システムのブロック図である。
図２は、図１のデータ処理システムの機能編成を示す。
図３は、ＣＯＷ２３１のフローを示す。
図４は、ＯＤＣＵ２４３のフローを示す。
図５は、ＳＲＵ２４２のフローを示す。
図６は、ＭＭ２４５の編成を示す。
好適な実施形態の説明
ディスク記憶システム内に位置する大型データベースをテープ周辺装置にバックアップすることに関連して、好適な実施形態および方法について論ずる。ここに記載する装置および技法は、データベースのバックアップに限定される訳ではなく、記憶システム内における情報から選択したあらゆる部分のバックアップを行うため、または記憶装置１３０内の全情報の完全なバックアップを行うためにも容易に適合化が可能であることは、当業者には理解されよう。
図１を参照すると、多数のユーザ１０１が、ローカル・エリア・ネットワーク１１０を通じてサーバ１２０に接続されている。記憶装置１３０は、バス１６２、ＳＣＳＩまたはファイバ・チャネルを通じて、サーバ１２０と通信する。データベース１３１がテラバイト単位のデータを有するシステムの好適な実施形態では、サーバ１２０は、例えば、Microsoft社のＮＴオペレーティング・システムを走らせる、Data General社のAViiON Model 6600コンピュータとすることができ、記憶装置１３０は、１つ以上のインテリジェントＲＡＩＤディスク・アレイ例えば、単一の論理ディスク記憶装置として編成された、Data General社のCLARiiONディスク・アレイとすることができる。記憶装置１３０は、１つ以上の内部プロセッサを内蔵する。これらは、図１では、集合的に記憶プロセッサ（ＳＰ）１３２として示されている。ＳＰ１３２は、プログラムを実行し、サーバ１２０からのコマンドに応答することができる。ＳＰ１３２は、以下で論ずるコピー・オン・ライトのようなタスクを、サーバ１２０の参加なしに実行する機能を記憶装置１３０に与える。記憶装置１３０は、サーバ１２０が使用する、データベース１３１を含む様々なデータおよびプログラムを格納する。データベース１３１は、Oracle社、Microsoft社またはInformix社のような、数社のデータベース業者のいずれが供給するものでも可能である。
バックアップ機器（ＢＡ：backup appliance）１４０が、記憶装置１３０、バックアップ記憶ユニット（ＢＳＵ）１５０およびＬＡＮ１１０に接続されている。ＢＡ１４０は、記憶装置１３０、ＢＳＵ１５０およびＬＡＮ１１０と接続しこれらと共に動作可能であり、バックアップ・ユーティリティを走らせバックアップ・データを処理する十分な処理機能を有するのであれば、ユーザの好みのあらゆるコンピュータとすることができる。典型的に、ＢＡ１４０は、例えば、Data General AViiON Model3600のような、サーバ１２０よりも小型のコンピュータとすることができる。ＢＡ１４０は、標準的なネットワーク接続部１６４を介してＬＡＮ１１０に接続され、更にＳＣＳＩまたはファイバ・チャネル・バス１６３および１６５を通じて記憶装置１３０およびＢＳＵ１５０に接続されている。ＢＡ１４０は、サーバ１２０と同じオペレーティング・システム・ソフトウエアを走らせることができるが、必ずしもその必要はない。
ＢＡ１４０は、プロセッサ１４２と、ＲＡＭメモリ１４４およびディスク・ドライブ１４３から成る、メモリ・システム１４１とを含む。以下で詳細に論ずるが、メモリ・システム１４１は、記憶装置１３０からのオリジナル・データ・ブロックおよび関連情報を一時的に格納する。ＢＳＵ１５０は、例えば、Data General社のDLTアレイ・システムのように、大容量のテープ・システムであればいずれでも可能である。
図１の実施形態では、ＢＡ１４０は、ＬＡＮ１１０を通じてサーバ１２０と通信し、バックアップ・プロセスの準備および開始を調整する。バックアップの開始直前に、サーバ１２０によってデータベースを静止状態(quiescent state)に置かれなければならない。典型的に、このためには、仕掛かり中の全トランザクションを完了し、必要な全てのデータベース情報をサーバ１２０から記憶装置１３０に書き込んでしまうまで、新たなデータベース・トランザクションを一時的に禁止する必要がある。これによって、データベースが安定した一貫性のある状態にあることを確保する。正常なデータベース処理の割込は、典型的に、素早く行われ、ユーザに対する中断(disruption)は最少で済む。システムが静止状態になると直ぐに、バックアップを開始することができ、バックアップが行われている間、ユーザにはシステムを正常に使用し続けることが許される。
ここで図２を参照して、本発明によるバックアップ・システムの好適な実施形態の機能編成を示す。記憶装置１３０は、バックアップ動作の間にＳＰ１３２が実行する、コピー・オン・ライト（ＣＯＷ）プログラム２３１を収容する。ＣＯＷ２３１は、サーバ１２０から記憶装置１３０への書き込みコマンドを監視し、書き込みコマンドが検出された場合、記憶装置１３０内の当該メモリ・アドレスに現在あるデータをコピーするまで、書き込みの実行を保留させる。ここに説明する記憶装置１３０の実施形態では、記憶装置１３０のデータは、５１２バイトのブロック単位で、アドレス、コピーおよび移動が行われる。
変更マップ（ＭＭ：Modified Map）２４５およびオリジナル・データ・キャッシュ（ＯＤＣ：Original Data Cache）２４６は、メモリ・システム１４１の領域を表わす。好適な実施形態では、ＭＭ２４５およびＯＤＣ２４６は、ディスク・ドライブ１４３上に位置するファイルであり、ＭＭ２４５は、アクセス速度を高めるようにマップされたメモリである。以下で更に詳細に論ずるが、ＯＤＣ２４６の機能は、ＢＳＵ１５０に格納するスナップショット・データベース・イメージを構成するのに必要とされる時間まで、記憶装置１３０からコピーされる「オリジナル・データ」のブロックを一時的に保持することである。
ＭＭ２４５は、バックアップの間、ＯＤＣ２４６内に格納されている各ブロック毎に、１つのエントリを含む。関連するブロックのＯＤＣ２４６からＢＳＵ１５０への転送や、ＯＤＣ２４６におけるブロックの上書きによって、ＭＭ２４５のエントリが除去されることはない。ＭＭ２４５の内容および編成は図６に示し、以下で論ずる。
ＢＵ２４１、特殊読み出しユーティリティ（ＳＵＲ：Special Read Utility）２４２、およびオリジナル・データ・キャッシュ・ユーティリティ（ＯＤＣＵ：Original Data Cache Utility）２４３は、プロセッサ１４２上で走るプログラムである。ＢＵ２４１は、システム・ユーザの好みの市販バックアップ・ユーティリティであり、例えば、Legato NetworkerまたはCheyenne ARCserverである。ＳＲＵ２４２およびＯＤＣＵ２４３の動作はＢＵ２４１には透過的であり、開示するシステムにおける使用のために、ＢＵ２４１を変更する必要はない。ＢＵ２４１は、それが記憶装置１３０と直接通信しており、完全なバックアップ制御を行っていると信じている。
ＳＲＵ２４２およびＯＤＣＵ２４３は、ＭＭ２４５およびＯＤＣ２４６と通信し、これらを制御する。ＳＲＵ２４２は、次の機能を実行する。（１）ＢＵ２４１から記憶装置１３０にデータ読み出し要求を送出する。（２）記憶装置１３０から返送される要求データを受け取る。（３）受け取ったブロックの記憶装置１３０内のアドレスをＭＭ２４５と比較し、これらのアドレスから以前に読み出されたデータ・ブロックのいずれかが既にＯＤＣ２４６内にあるか否かについて判定を行うと同時に、受け取ったデータをＲＡＭ１４４のバッファに置いておく。（４）以前に読み出されたブロックが１つ以上ＯＤＣ２４６内に存在する場合、これらＯＤＣ２４６からのブロックを、現在バッファ内にある同じアドレスからのブロックの代わりに用いる（５）ＭＭ２４５を変更し、これらのブロックが既にＢＵ２４１に転送されたことを示す。（６）調和させたバッファの内容をＢＵ２４１に送出する。
好適な実施形態では、ＳＲＵ２４２は、ＢＵ２４１からの書き込みコマンドの濾過(filter)も行う。ＢＡ１４０サブシステムヘの書き込みコマンドは許されるが、ＢＵ２４１による記憶装置１３０への書き込みがバックアップ・プロセスの間に行われようとしても、そのいずれも許されない。
ＯＤＣＵ２４３は、次の機能を実行する。（１）記憶装置１３０からのＣＯＷデータ転送を監視する。（２）記憶装置１３０から受け取ったＣＯＷブロックが、バックアップ対象の記憶装置１３０の領域の一部であるか否かについて判定を行う。（３）一部である場合、受け取ったＣＯＷブロックの各々のアドレスを、ＭＭ２４５の内容と比較し、受け取ったバックアップ・ブロックのいずれかに対してエントリが既に存在するか否かについて判定を行う。（４）受け取ったオリジナルＣＯＷブロック毎に、ＭＭ２４５内にエントリを作成する。（５）オリジナルＣＯＷブロックをＯＤＣ２４６に格納する。
図６は、ＭＭ２４５の機能的編成を示す。バックアップの開始時には、ＭＭ２４５は空である。一旦バックアップが開始されると、サーバ１２０から記憶装置１３０内のデータ・ブロックヘの各書き込みコマンドにより、ＣＯＷ２３１は、最初に既存のデータをそのアドレスからコピーし、それをＣＯＷブロックとしてＯＤＣＵ２４３に送る。ＯＤＣＵ２４３がデータベース１３１からＣＯＷブロックを受け取り、当該ブロックからのオリジナル・データが以前にはＯＤＣ２４６内にない場合、ＯＤＣＵ２４３は、当該ブロックのために、ＭＭ２４５内にエントリを作成する。バックアップを行っている間、ＭＭ２４５は複数のエントリ１−Ｎを蓄積する。各エントリは、バックアップの間に記憶装置１３０からＯＤＣ２４６にコピーされた１つのオリジナル・データ・ブロックを表わす。１つのアドレスから受け取る最初のＣＯＷブロックのみがＯＤＣ２４６に格納される。それ以降の同じアドレスを有するＣＯＷブロックは、ＯＤＣＵ２４３によって無視される。
各ＭＭ２４５のエントリ１−Ｎは、４つの情報フィールドから成る。ここに記載する実施形態では、記憶装置１３０における各ブロックの記憶アドレスは、当該特定のデータ・ブロックが位置する、記憶装置１３０内部の特定の物理または論理コンポーネントの一意の識別子と、当該コンポーネント内部の特定の５１２バイト・ブロックに対するオフセットとで構成される。これら２つのアドレス・コンポーネントは、ＭＭ２４５のフィールド６１０および６２０に格納され、記憶装置１３０内の各データ・ブロック毎に一意の識別子を与える。フィールド６３０は、関連するデータ・ブロックの状態を収容する。ＯＤＣ２４６内の各ブロックは、ＢＵ２４１によって読み出された状態またはＢＵ２４１によって未だ読み出されていない状態の２つの内の一方である。最後に、フィールド６４０は、関連するデータ・ブロックが位置するＯＤＣ２４６へのオフセットを収容する。
一旦データベース１３１が静止状態に置かれたなら、バックアップ動作が開始される。図３は、ＣＯＷ２３１の動作を示す。ステップ３１０において、ＣＯＷ２３１は、サーバ１２０から記憶装置１３０への全てのコマンドを監視し、書き込みコマンドを検出する。ステップ３２０において記憶装置１３０に対する書き込みコマンドが検出された場合、ステップ３３０においてこのコマンドを保留とし、ステップ３４０において関連データをコピーする。サーバ１２０からの書き込みコマンドは、単一のデータ・ブロックまたはある数のデータ・ブロックをアドレスすることができる。書き込みコマンドによってアドレスされるブロックは全て、ステップ３４０においてコピーされる。ステップ３５０において、コピーされたデータ・ブロックまたはブロック群は、ＢＡ１４０に送られる。ブロックまたはブロック群をコピーした後、サーバ１２０からの書き込みコマンドを実行することができる。
当業者は良く分かっているであろうが、ＣＯＷ２３１は、ＳＰ１３２の使用可能な処理容量およびメモリ容量に応じて、必要であれば、追加の機能性を有するように設計することができる。ここに説明する実施形態では、比較的単純なＣＯＷ２３１の技法について論ずる。ＣＯＷ２３１は、記憶装置１３０への書き込み全てのコピーを作り、全てのブロックをコピーするまで、書き込み全体を保留にする。代替実施形態では、ＣＯＷ２３１は、比較的大きな書き込み要求、即ち、比較的大きな数のブロックに影響を及ぼす書き込み要求を、多数のより小さな漸増(increment)書き込みに分割することができる。次に、ＣＯＷ２３１は、各漸増書き込みによってアドレスされたブロックの部分がコピーされるまで、各漸増書き込みを保留するだけでよい。他の実施形態では、ＣＯＷ２３１は、バックアップする特定のアドレスのマップを維持し、書き込みがこれら特定のメモリ領域を対象とする場合にのみ、コピーを作成することも可能である。更に他の実施形態では、ＣＯＷ２３１は、記憶装置１３０内の既にコピーされたブロックのアドレス・テーブルを維持し、バックアップの間に以前にコピーされていないブロックについてのみ、コピー・オン・ライトを実行することも可能である。
図４は、ＯＤＣＵ２４３がステップ３５０においてＢＡ１４０に送られたＣＯＷブロックを処理する態様を示す。バックアップの開始時、ＯＤＣＵ２４３はステップ４１０を実行し、記憶装置１３０からのＣＯＷブロックを監視する。ステップ４２０において１つ以上のブロックが記憶装置１３０から受け取られた場合、ステップ４３０において受け取られたブロックのアドレスをチェックし、受け取られたデータが、バックアップ中の記憶装置１３０の部分の一部であるか否かについて判定を行う。受け取られたデータが、バックアップ中の記憶装置１３０の領域の一部ではない場合、ステップ４４０においてブロックは無視され、ＯＤＣＵ２４３はその監視を継続する。受け取られたデータがバックアップ中の記憶装置１３０の領域の一部である場合、ＭＭ２４５をチェックし、受け取られたブロックのいずれかの一意の識別子に対するエントリが、既にＭＭ２４５に存在するか否かについて判定を行う。これは、当該ブロックからのオリジナル・データが既にＯＤＣ２４６に格納されていることを意味する。ブロック・アドレスに対するエントリが既にＭＭ２４５に存在する場合、丁度受け取られたばかりのデータは、バックアップの間の同じブロックに対する後続の書き込みを表わす。この場合、受け取られたブロックは無視され、ステップ４１０の監視を続ける。
ステップ４６０において、受け取られたブロックのアドレスがＭＭ２４５内で見つからない場合、ステップ４７０において、当該ブロックに対する新たなＭＭ２４５のエントリを作成する。単一のデータベースのバックアップを行う場合、データ・ブロックをバックアップした後に、ＯＤＣ２４６に保持する必要はない。したがって、状態６３０に示すように、ＯＤＣＵ２４３は、ＢＳＵ１５０に既に移動させたブロックのＯＤＣオフセットが利用可能な場合、いずれのかかるオフセットでも再利用することができる。以前に使用されたＯＤＣオフセットが利用できない場合、ＯＤＣＵ２４３は新たなＯＤＣオフセットを割り当てる。代替実施形態として、ＯＤＣオフセットの再利用を許可しないことによって、バックアップ中にＭＭ２４５内の各エントリに確実に一意のＯＤＣオフセットを与え、全てのＯＤＣデータ・ブロックをＯＤＣ２４６内に維持することも可能である。最後に、ステップ４８０において、受け取ったブロックをＯＤＣ２４６に格納する。
図５は、ＳＲＵ２４２の動作を示す。先に示したように、ＢＵ２４１の視点からは、ＢＵ２４１は、記憶装置１３０に読み出しコマンドを発行し、要求したデータを受け取り、これをＢＳＵ１５０に送る。実際には、ＳＲＵ２４２がＢＵ２４１と記憶装置１３０との間に介在する。ステップ５１０において、ＳＲＵ２４２はＢＵ２４１から記憶装置１３０への読み出しコマンドを監視する。ステップ５４０において、読み出しコマンドは記憶装置１３０に渡される。読み出しが記憶装置１３０に向けられたものではない場合、ステップ５３０においてこの読み出しコマンドは実行のためにそのターゲットに渡される。ステップ５４０において、記憶装置１３０は、要求されたデータを引き出し、それをバックアップ機器に戻す。
ＢＵ２４１として採用される市販のユーティリティは、概略的に、それが各読み出し要求によって要求する、記憶装置１３０からの特定量のデータを制御し選択する。先に論じたように、好適な実施形態では、記憶装置１３０は、その操作およびアドレシングに対する標準的なデータ単位として、５１２バイトのデータ・ブロックを用いる。典型的に、ＢＵ２４１から読み出されるデータ量は、５１２バイトよりもかなり多い。例えば、ＢＵ２４１は、各読み出しコマンド毎に、６４Ｋバイトを要求する場合もある。ＳＲＵ２４２は、読み出し要求を記憶装置１３０に送出し、記憶装置が要求データを返送すると、返送された量のデータをＲＡＭ１４４内のバッファに置く。この時点において、バッファ内のデータ・ブロックの幾つかは、バックアップが開始された後に変更されたブロックである可能性がある。バックアップが正しいスナップショットを作成することを保証するために、要求データをＢＵ２４１に供給する前に、バッファ内にあるこのように変更されたデータ・ブロックのいずれもＯＤＣ２４６からの対応するオリジナル・データ・ブロックと置換しなければならない。
したがって、ステップ５６０において、バッファ内の各ブロックの記憶装置１３０における一意のアドレスを、ＭＭ２４５内に格納されているアドレスと比較し、当該アドレスに対するオリジナル・データが、ＯＤＣ２４６において得られるか否かについて判定を行う。ステップ５７０において、ＭＭ２４５内に格納されているアドレスと一致するアドレスを有するバッファ内の各ブロックを破棄し、ＯＤＣ２４６からのオリジナル・データ・ブロックと置換する。ステップ５８０において、ＢＳＵ１５０にバックアップするための準備のために、バッファ内に置かれた各オリジナル・データ・ブロックのＭＭ２４５の状態フィールドを更新し、ブロックをＯＤＣ２４６から読み出したことを反映する。ステップ５８０におけるブロック・ステータスの変化は、ＯＤＣＵ２４３にとっては、ＯＤＣ２４６内において当該ブロックによって占められている領域を上書きし、他のブロックの格納のために使用可能であることの指示として作用する。ステップ５９０において、今やオリジナル・データのみから成る、バッファの内容をＢＵ２４１に送出し、ＢＳＵ１５０に転送させる。
上述の好適な実施形態は、サーバ１２０がバックアップ・プロセスに参加することなく、記憶装置１３０からのＣＯＷ機能のみがあればよい、別個のバックアップ機器を用いて、データベース１３１のスナップショット・バックアップを生成する手段を提供する。ＭＭ２４５およびＯＤＣ２４６の機能は、記憶装置１３０に位置するように実現することができ、ＳＲＵ２４２およびＯＤＣＵ２４３のユーティリティは、プロセッサ１４２の代わりに、ＳＰ１３２上で走るように実現可能であることは理解されよう。この代替実施態様では、ＣＯＷデータ・ブロックの格納・およびＣＯＷデータとＢＵ２４１の読み出し要求に応答して読み出されるデータとの調和が、記憶装置１３０全体で得られる。この実施態様では、プロセッサ１４２に対する処理要求が減少し、ディスク１４３の必要性が低下または解消し、バス１６３上のトラフィックが減少するが、ＳＰ１３２の作業負荷を増大させ、ＭＭ２４５およびＯＤＣ２４６の格納に対処する記憶装置１３０が必要となるという影響が出る。
上述の特定的な実施形態は、あらゆる観点においても、限定としてではなく例示として見なすべきである。本発明の範囲は、前述の説明ではなく、添付の請求の範囲によって示すものとする。
【図１】
0003792258.tif 000002
【図２】
0003792258.tif 000003
【図３】
0003792258.tif 000004
【図４】
0003792258.tif 000005
【図５】
0003792258.tif 000006
【図６】
0003792258.tif 000007