(57)【特許請求の範囲】
【請求項１】
論理的に複数のブロックに区分され、バックアップ対象となるデータを記憶し、当該データが前記ブロック単位にアクセスされる記憶装置と、
前記記憶装置のデータをバックアップするバックアップ装置と、
前記ブロック単位に差分データを管理する差分管理機構とを備え、
前記差分管理機構は、
いずれかのブロックでデータが更新された場合、世代毎の更新ブロック数を示す更新ブロック数テーブルに対して、当該更新ブロックが登録されていた世代の更新ブロック数を一つ減算して現世代の更新ブロック数を一つ加算する更新数管理機構と、いずれかのブロックでデータが更新された場合、各ブロックの更新世代を表す差分マップ情報における前記更新ブロックの世代を現世代とする更新最新世代管理機構とを有すると共に、前記バックアップ装置に対して、前記記憶装置のデータの任意の世代の差分バックアップを行う場合、前記差分マップ情報から当該世代に相当する更新ブロックの情報を得ると共に、前記更新ブロック数テーブルから前記世代の更新ブロック数の情報を抽出し、これら情報を、前記任意の世代の差分バックアップを行うブロックの情報と、当該差分バックアップに必要なデータ量の情報として出力することを特徴とする差分バックアップ方式。
【請求項２】
差分管理機構は、記憶装置の全ブロックのデータがバックアップ装置に全面バックアップされた場合は、差分マップ情報の世代を初期化し、その後、いずれかのブロックでデータが更新された場合に、前記差分マップ情報と更新ブロック数テーブルを更新することを特徴とする請求項１記載の差分バックアップ方式。
【請求項３】
差分管理機構は、差分マップ情報を格納する領域を記憶装置内に確保して当該差分マップ情報を初期化することを特徴とする請求項２記載の差分バックアップ方式。
【請求項４】
バックアップ装置から記憶装置へのリストアを行う場合、
差分管理機構は、差分バックアップデータを世代毎に順次リストアすることを特徴とする請求項１記載の差分バックアップ方式。
【請求項５】
差分管理機構は、バックアップデータにチェックサムデータをブロック毎に付与すると共に、前記バックアップ装置から記憶装置へのリストアを行う場合は、前記チェックサムデータに基づいて、各ブロックのリストアデータが正しいか否かをチェックすることを特徴とする請求項４記載の差分バックアップ方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機システムの安全な運用上欠かせないデータバックアップの効率的運用を図るデータバックアップ方式に関する。
【０００２】
【従来の技術】
計算機システムの安全な運用において、計算機システムに障害が発生したときに速やかな復旧を図るため、多くのシステムで、データベースなどのアプリケーションデータや、計算機システム自身のデータのバックアップが行われている。計算機システム自体は、ハードウェアが復旧し、計算機システム自身のデータが格納されるべきディスク装置に再び格納されれば、運用を再開できる。また、本発明が対象としているデータベースデータにおいては、最新のバックアップデータが、格納されるべきディスク装置に格納され、このバックアップデータが取得された時点から計算機システムに障害が発生した時点までに、データベースに対して行われた操作を、その履歴を元に経時的に再実行することによって、障害発生時の状態まで復旧することができる。
【０００３】
データベースデータのバックアップ作業は、そのデータベースデータの一貫性を保証するため、チェックポインティングと呼ばれるデータベースデータの一斉書き出し操作を行った後、新たなデータベースへの書き込みを禁止するため、データベースの運用を一時停止して、データ退避作業、即ち、データベースデータが格納されているディスクデータを磁気テープなどにコピーするデータ退避作業を行う。
【０００４】
このように、データベースデータのバックアップを行うためには、一旦データベースの運用を停止する必要がある。このため、一般にバックアップ作業は、例えば、一日の業務終了後に、データベースの運用を停止し、データベースデータのソートや帳票処理を行ない、その後にデータ退避作業を行う、といった運用がなされていた。
【０００５】
ところが、近年、データベースデータが、あるものでは数百ＧＢに及ぶまで巨大化し、また、データベースの運用時間も延長される傾向にあり、バックアップのために必要な時間だけデータベースを停止することが運用上困難になってきている。このため、計算機システム障害の危険を抱えつつ、長時間のバックアップなしのデータベース運用を強いられる事態も発生している。
【０００６】
従来から、UNIXシステムなどにおいて、その全体をバックアップするのではなく、過去最新のバックアップから更新のあった差分データのみをバックアップする差分バックアップが、ファイルシステム上で実現されてきた。しかし、このファイルシステム上の差分バックアップは、バックアップ対象のファイルシステム上のすべてのファイルの更新時間をチェックし、更新時間が最後のバックアップ実行時よりも新しければそのファイルを退避するというものであるため、例えば巨大なデータベースファイルのような場合、データ更新部分がファイル全体に対してわずかであってもファイル全体をバックアップしなればならないという問題点があった。
【０００７】
特開平２−４２５２３号公報には、上記の問題点を解決する技術が開示されている。この公報に開示された技術は、磁気ディスク記憶装置の記憶領域をあるブロックに区切って管理し、各々のブロックに対応したビットからなるビットマップにより、当該ブロックに対するある期間での更新の有無を記録する。これにより、ディスクのブロック単位でバックアップすべき差分データを知ることができる。
【０００８】
【発明が解決しようとする課題】
データベースデータをバックアップする場合には、バックアップデータのデータベースデータとしての一貫性を保つため、データベースの運用を一時停止する必要がある。近年、データベースが巨大化しつつあり、巨大化するにつれ、バックアップに必要な時間も増大するので、十分なバックアップを行いつつ、システムを運用するのは困難になりつつある。
そこで、全面バックアップをバックアップの度に行うのではなく、更新、追加のあったデータのみをバックアップする差分バックアップ方式が注目されるが、上記のUNIXシステムなどに実装されている差分バックアップ方式は、最後の更新時間により、ファイル全体をバックアップするため、データベースのように１つのファイルの参照／更新を繰り返すアプリケーションの使用するファイルは常に全面バックアップが行われ効果的でないという問題点があった。
また、上記の特開平２−４２５２３号公報に開示された技術のように、ディスクごとに、ディスク機能として差分ブロックを記録する方式では、差分ブロックの多寡にかかわらず、定期的にディスク単位に差分バックアップを行うしかなく、また、差分バックアップのいずれかの世代の１つでも失われるとバックアップデータを再現するのが不可能になるという問題点もあった。
【０００９】
本発明は、上記のような問題点を解消するためになされたもので、計算機システムのデータのバックアップに関し、ディスク上の更新されたブロックのみのバックアップを複数世代にわたりとることができ、バックアップ作業の効率化、高信頼化を実現する差分バックアップ方式を得ることを目的とする。
【００１０】
【課題を解決するための手段】
本発明の請求項１に係る差分バックアップ方式は、論理的に複数のブロックに区分され、バックアップ対象となるデータを記憶し、当該データが前記ブロック単位にアクセスされる記憶装置と、前記記憶装置のデータをバックアップするバックアップ装置と、前記ブロック単位に差分データを管理する差分管理機構とを備え、前記差分管理機構は、いずれかのブロックでデータが更新された場合、世代毎の更新ブロック数を示す更新ブロック数テーブルに対して、当該更新ブロックが登録されていた世代の更新ブロック数を一つ減算して現世代の更新ブロック数を一つ加算する更新数管理機構と、いずれかのブロックでデータが更新された場合、各ブロックの更新世代を表す差分マップ情報における前記更新ブロックの世代を現世代とする更新最新世代管理機構とを有すると共に、前記バックアップ装置に対して、前記記憶装置のデータの任意の世代の差分バックアップを行う場合、前記差分マップ情報から当該世代に相当する更新ブロックの情報を得ると共に、前記更新ブロック数テーブルから前記世代の更新ブロック数の情報を抽出し、これら情報を、前記任意の世代の差分バックアップを行うブロックの情報と、当該差分バックアップに必要なデータ量の情報として出力することを特徴とするものである。
【００１１】
本発明の請求項２に係る差分バックアップ方式は、差分管理機構は、記憶装置の全ブロックのデータがバックアップ装置に全面バックアップされた場合は、差分マップ情報の世代を初期化し、その後、いずれかのブロックでデータが更新された場合に、前記差分マップ情報と更新ブロック数テーブルを更新するものである。
【００１２】
本発明の請求項３に係る差分バックアップ方式は、差分管理機構は、差分マップ情報を格納する領域を記憶装置内に確保して当該差分マップ情報を初期化するものである。
【００１６】
本発明の請求項４に係る差分バックアップ方式は、バックアップ装置から記憶装置へのリストアを行う場合、差分管理機構は、差分バックアップデータを世代毎に順次リストアするものである。
【００１７】
本発明の請求項５に係る差分バックアップ方式は、差分管理機構は、バックアップデータにチェックサムデータをブロック毎に付与すると共に、前記バックアップ装置から記憶装置へのリストアを行う場合は、前記チェックサムデータに基づいて、各ブロックのリストアデータが正しいか否かをチェックするものである。
【００２１】
【発明の実施の形態】
発明の実施の形態１．
図１は本発明が適用される計算機システムのハードウェア構成の一例を示した構成図である。
図１において、１０１はＣＰＵ、１０２はメモリ、１０３はＣＰＵ１０１とメモリ１０２とが接続されているメモリバス、１０４はメモリバス１０３に接続されたバスアダプタ、１０５はバスアダプタ１０４に接続された入出力バス、１０６、１０９はそれぞれ入出力バス１０５に接続された通常のSCSIアダプタである。１０７はSCSIアダプタ１０６から出ているSCSIバス、１０８はSCSIバス１０７に接続されバックアップデータが格納されるバックアップ装置としてのテープドライブ、１１０はSCSIアダプタ１０９から出ているSCSIバスである。１１１及び１１２はSCSIバス１１０に接続されたディスク装置であり、このディスク装置１１１及び１１２は、バックアップ対象のデータを記憶し、２ＫＢのブロック単位にアクセスされる。また、ディスク装置１１１及び１１２に記憶されたデータの全面バックアップ及び差分バックアップはテープドライブ１０８に格納される。ここで、全面バックアップとは、ディスク装置１１１及び１１２のバックアップ対象となるデータ全てをバックアップすることであり、差分バックアップとは、過去最新のバックアップ以後に更新されたデータのみ（以降、差分データと呼ぶ）をバックアップすることである。
【００２２】
図２は本発明が適用される計算機システムのソフトウェア構成の一例を示した構成図である。
図２において、２０１はディスクデータの参照／更新を行うアプリケーションプログラム、２０２はオペレーティングシステムであり本発明の実施の形態ではUNIXを使用する。２０３はディスクブロックの差分データを管理する差分管理機構であり、オペレーティングシステム配下の１疑似デバイスドライバとしてシステムに組み込まれる。２０４はディスク装置１１５及び１１６のブロック毎にバックアップの世代番号を管理する更新最新世代管理機構、２０５はバックアップの世代毎にディスク装置１１５及び１１６の更新ブロック数を管理する更新数管理機構、２０６はディスク装置１１１及び１１２のような物理的なディスク装置によって構成される仮想的な論理ディスク装置を管理する論理ボリューム管理機構である。システムから見て差分管理機構２０３と、更新最新世代管理機構２０４、世代毎の更新数管理機構２０５、及び、論理ボリューム管理機構２０６は同位置にある。２０７はシステム管理者によって使用され、差分管理機構２０３を制御するための制御コマンドであり、全面バックアップ及び差分バックアップを行なうことができる。
【００２３】
図３は全面バックアップ時の差分管理機構２０３の動作を示すフローチャートである。
図４は差分バックアップのためのメタ情報４００を示すものである。
図５は世代毎の更新ブロック数が登録される更新ブロック数テーブル５００を示すものである。更新ブロック数テーブル５００の先頭エントリは、世代１の更新ブロック数が３であることを示し、次エントリは、世代２の更新ブロック数が４であることを示している。
図６は各ブロック毎の変更履歴が格納される差分マップ情報６００を示すものであり、更新のあった最新の差分バックアップ世代番号がブロック毎に登録される。差分マップ情報６００の先頭エントリは、ブロック１が世代３で更新されたことを示し、次エントリは、ブロック２が世代４で更新されたことを示している。世代が０のエントリは、該ブロックが更新されていないことを示している。
なお、メタ情報４００と更新ブロック数テーブル５００は、論理ディスク装置の管理情報の中に含まれ、差分マップ情報６００は論理ディスク装置自身の中に含まれる。
【００２４】
ここで、バックアップの世代とについて説明する。
バックアップ世代は、差分バックアップが行われる度に新しい世代番号が与えられる。全面バックアップが行われると、該バックアップには世代番号として０が与えられ、その後、当該ディスク装置、または、論理ディスク装置にデータ更新が行われると、当該ブロックの更新有無を記憶する差分マップ情報６００には、次のバックアップ世代１が記憶される。ここで、差分バックアップが実行されると、差分マップ情報６００にバックアップ世代１が登録されているブロックのデータは退避される。差分バックアップ終了後、さらに、該ディスク装置にデータ更新が行われると当該ブロックの更新有無を記憶する差分マップ情報６００にはバックアップ世代２が登録される。
このようにして差分マップ情報６００には、複数バックアップ世代にわたってブロックの更新有無が登録されていく。
【００２５】
本発明の実施の形態１におけるアプリケーションプログラム２０１は、ディスクデータの参照及び変更を行うが、アプリケーションプログラム２０１が行うディスクデータの変更は常にディスクに反映される。従って、アプリケーションプログラム２０１実行中のどの時点でディスクデータのバックアップを実行しても、アプリケーションプログラム２０１からみたディスクデータの一貫性は保たれる。
また、アプリケーションプログラム２０１は差分管理機構２０３を通して同期的にディスクデータにアクセスする。アプリケーションプログラム２０１が書き込み命令を発行した場合は、ディスク装置への書き込みが終了するまで他の処理をはじめることはない。従って、差分管理機構２０３によるバックアップの実行時にディスク装置へのアクセスが禁止されると、アプリケーションプログラム２０１がオペレーティングシステム２０２に対してディスクアクセス命令を発行した時点で、その実行は停止する。つまり、差分管理機構２０３による全面バックアップ、または、差分バックアップの実行中は、アプリケーションプログラム２０１が関知することなく、アプリケーションプログラム２０１の実行を停止することができる。
【００２６】
次に、実際の運用に沿って、本発明が本発明の実施の形態にどのように適用されているかを説明する。
図７は差分バックアップの運用の一例を説明する説明図である。
本システムの使用者は隔週の月曜日を休業日としている。休業日に全面バックアップを行い、営業日は差分バックアップを行うことによりバックアップ作業を運用している。図７において「全」は全面バックアップを、数字は差分バックアップの世代番号を示す。番号１の差分バックアップ時には、全面バックアップ後初めての営業日である火曜日に発生した差分データを保持する。番号２の差分バックアップ時には火曜と水曜に発生した差分データを保持し、番号３の差分バックアップ時には水曜と木曜に発生した差分データを保持し、番号４の差分バックアップ時には木曜と金曜に発生した差分データを保持する。このように全面バックアップ後の最初の営業日を除いた各営業日に、２日分の差分データを重複してバックアップしているのは、バックアップデータを格納するテープデバイスのもしもの不良にも対応できるようにするためである。
【００２７】
ここで以降の説明のために、UNIXシステムにおける疑似デバイスドライバインターフェースと、差分管理機構２０３にディスク管理機構として取り入れられている論理ボリューム管理機構２０６とについて説明する。
疑似デバイスドライバは、UNIXシステムにおいて実際のデバイスを持たないデバイスドライバとされており、実際のデバイスは管理しないが、通常のデバイスドライバと同様のインターフェースがUNIXオペレーティングシステムとの間に定義されている。アプリケーションプログラムはopen、close、read、write、ioctl、などのシステムコールによって間接的に擬似デバイスドライバのサブルーチンを呼び出すことができる。また、擬似デバイスドライバをブロックデバイスと定義すればstrategyインターフェースを通してファイルシステム等から利用されることも可能である。
【００２８】
本発明の実施の形態１では、差分管理機構２０３は、オペレーティングシステム配下の１疑似デバイスドライバとしてシステムに組み込まれれており、差分バックアップ時、即ち、該疑似デバイスドライバに対して読み出し要求があったときは、差分マップ情報６００と、この差分マップ情報６００から知る当該バックアップ世代に更新のあったブロックデータと、該ブロックデータの論理ディスク装置における位置とを取りまとめてデータ送出する機能を持っている。
また、差分バックアップデータのリストア時、即ち、差分バックアップデータとして取得された差分マップ情報６００とブロックデータとが該疑似デバイスドライバに対して書き込みが行われたときは、受け取った差分マップ情報６００を元に、該差分データが再現されるべき、然る世代のバックアップが完了しているディスク装置、あるいは、論理ディスク装置にリストアする機能を持っている。このように差分管理機構２０３のインターフェースを疑似デバイスドライバインターフェースとし、上記の機能を持つことにより、簡便な差分バックアップ及びリストアのインターフェースを実現できる。
【００２９】
論理ボリューム管理機構２０６は、擬似デバイスドライバとしてシステムに組み込まれ、アプリケーションプログラム２０１からの上記システムコールによる入出力要求を直接受け取ることができる。従って、論理ボリューム管理機構２０６は、アプリケーションプログラム２０１が物理的なディスク装置１１１、１１２に対してアクセスした情報を仮想的な論理ディスク装置へのアクセスとし、その内容を、その論理ディスク装置を構成している実際のディスク装置１１１、１１２へ振り分ける。差分管理機構２０３はアプリケーションプログラム２０１からの入出力要求をこの論理ボリューム管理機構２０６インターフェースを通して受け取る。
【００３０】
次に、全面バックアップについて説明する。
バックアップ開始時にシステム管理者は、制御コマンド２０７の使用により、バックアップ対象のディスク装置１１１、１１２、バックアップに使用するテープデバイス１０８を指定して、全面バックアップを行う。このとき差分管理機構２０３は、以後の差分バックアップを実行する上で必要なメモリとディスク領域とが確保できるかを論理ボリューム管理機構２０６を用いてチェックする。確保可能ならば、全面バックアップ終了時に、制御コマンド２０７は、以後差分バックアップが可能であることをシステム管理者に報告し、確保不能ならばその旨を報告する。
【００３１】
論理ボリューム管理機構２０６は、その管理下にあるディスク資源から仮想的な論理ディスク装置を構成するため、管理するディスク資源に空があれば、自由に差分バックアップのための管理データの格納領域を確保することができる。なお、論理ボリューム管理機構２０６が格納領域を確保する差分バックアップのための管理データには、図６に示した差分マップ情報６００がある。
【００３２】
次に、差分バックアップのための管理データの確保、初期化について説明する。図３のフローチャートは、全面バックアップ時の差分管理機構２０３による上記管理データの確保、初期化の動作を示すものである。
まず、指定された論理ディスク装置（以降、ボリュームと呼ぶ）のサイズが差分管理上のブロックのサイズよりも大きいことを確認する（３０１）。ブロックのサイズ２ＫＢは本発明の実施の形態においてはコンフィグレーションデータとして与えられている。次に、指定されたボリュームが差分マップ情報６００用に何ブロック必要かを計算し、差分マップ情報６００の格納領域が確保できるかをチェックする（３０２）。本発明の実施の形態では差分マップ情報６００の各エントリには４ビットが割り当てられる（従って、本発明の実施の形態においてサポートできる最大の差分バージョンは１５である。）。ボリュームサイズが２ＧＢであるので差分マップ情報６００には５１２ＫＢ必要になる。
【００３３】
次に、３０３で差分マップ情報６００の格納領域を確保する。３０４では、差分マップ情報６００、及び、その他の管理データである図４のメタ情報４００と図５の更新ブロック数テーブル５００の初期化を行なう。
初期化処理として、図４のメタ情報４００に対しては、差分バックアップ実行中であることを示す実行中フラグ４０１をONし、現有効差分世代番号４０２、差分マップ情報６００のサイズ４０３、差分マップ情報６００が格納される論理ディスク名４０４、該論理ディスク上での差分マップ情報６００の格納位置４０５、ブロックのサイズ４０６、及び、差分マップ情報６００のエントリ数４０７が図４に示したように登録される。また、メタ情報４００のスーパーセットはメモリ上にも展開されるため、メモリ上のテーブルには上記情報に加えて、メモリ上に保持する差分マップ情報６００のアドレス４０８、バックアップ対象ボリューム名４０９、および、サイズ４１０が便宜上登録されている。
更新ブロック数テーブル５００に対しては、０から１５までのエントリが０で初期化される。ただし、差分バックアップ番号０は全面バックアップに相当しエントリ０は利用されない。
差分マップ情報６００に対しては、３０３で確保した差分マップ情報６００の格納領域全体が０で初期化される。
次に、３０５で差分マップ情報の取得開始を宣言し、３０６で現バックアップ世代を１とする。
この後、全面バックアップデータには差分バックアップのためのメタ情報４００と、全てのボリュームデータが書き込まれる。
【００３４】
制御コマンド２０７による全面バックアップにより、このように初期化済みの状態になるが、以降のアプリケーションプログラム２０１からのボリュームアクセス時の差分管理機構２０３の動作について、図８のフローチャートを用いて説明する。
差分管理機構２０３により実行される差分記録論理はボリュームアクセスの直後に実行され、この差分記録論理の実行終了をもってボリュームアクセスの終了とする。つまり、差分記録論理はディスクアクセスに対して常に同期的に動作する。
【００３５】
まず、該ボリュームアクセスが読み出しか書き込みかを判断する（７０１）。読み出しならば、差分記録の必要はないのでなにもせず実行を終了する。７０２でボリュームに対するアクセス開始バイト位置を本処理中の現オフセット位置として登録する。７０３で現オフセットに対応するブロックを求める。７０４で差分マップ情報６００を参照し、該ブロックの最新の変更のあった差分バックアップ世代が、現バックアップ世代に等しければ、差分マップ情報６００の該エントリ更新の必要はない。等しくなければ、更新最新世代管理機構２０４により差分マップ情報６００の当該エントリに現バックアップ世代をセットし（７０５）、更新ブロック数テーブル５００に関しては、更新数管理機構２０５により、現バックアップ世代での更新ブロック数に１加算し、登録されていたバックアップ世代の更新ブロック数を１減算する（７０６）。そして、差分マップ情報６００、および、更新ブロック数テーブル５００のディスク書き出しが必要な旨を示すフラグをONする（７０７）。次に、現オフセット位置にブロックサイズを加算し（７０８）、現オフセット位置が書き込み要求のあったディスク領域の内側かどうかを判断する（７０９）。以上の処理は書き込み要求のあったディスク領域に対応するブロックのすべてについて行われる。すべてのブロックについて処理が終了すると、ディスク書き出しが必要かどうか判断し（７１０）、書き出しが必要ならばディスク書き出しを行い、処理を終了する（７１１）。
【００３６】
次に、差分バックアップについて説明する。
差分バックアップを行なう際、システム管理者が望めばテープをロードする前に、制御コマンド２０７に対して、バックアップに必要なテープ容量を更新ブロック数テーブル５００から問合わすこともできる。
差分バックアップ世代を１とした火曜日の営業が終了すると、制御コマンド２０７によって、世代１の差分バックアップを行う。世代スコープを１として差分バックアップを制御コマンド２０７に依頼すると、制御コマンド２０７は論理ボリューム管理機構２０６のioctlインターフェースを通して、差分バックアップのスコープが１であることを通知する。この後制御コマンド２０７は該疑似インターフェースより読み出しを行いテープデバイスに書き込みを行う。これは、単純に読み出し／書き込みを疑似インターフェースとテープデバイスに対して行うのみである。疑似インターフェースを通して読み出し要求が来ると差分管理機構２０３は現差分バックアップ世代とスコープを参照して、差分マップ情報６００から該当するブロックを探し、図９に示すようなシーケンシャルデータを作成して返す。
【００３７】
図９のシーケンシャルデータの先頭には、スコープに当てはまる差分ブロックの数８０１が記録される。この差分ブロック数８０１には、現バックアップ世代は１でスコープは１なので、最新更新世代として１が登録されているブロックの数を更新ブロック数テーブル５００を参照して設定する。図９では、差分ブロックの数８０１に３５がセットされている。また、差分マップ情報６００をサーチして世代番号１を持つブロックを探し、該当するブロックを発見すると、ブロック位置８０２、世代番号８０３、該ブロックに対応するディスク領域のチェックサムデータ８０４、そして、対応するディスクデータ８０５をセットする。以後、発見したブロックごとに同様の操作を行い、適宜、上位に返す。なお、８０６から８０９に示すのは８０２から８０５と同様のデータセットである。上位へのデータ送信がすべて終了すると現バックアップ世代を１加算し、次のディスク更新からのバックアップ世代とする。
なお、チェックサムデータ８０４とは、例えば、ある検証を施したい１００バイトのデータに対して、２バイトづつ５０回順番に加算した２バイトデータのことであり、このチェックサムデータ８０４を予め求めて保持しておき、検証が必要なときには、再び１００バイトのデータに対して同様の加算を施し、チェックサムデータ８０４と比較し、もし等しくなければ、そのデータは信用できないというチエックを行なうためのものである。
【００３８】
水曜日にはスコープを２として差分バックアップを行う。世代１と２の更新数の合計について火曜日の差分バックアップと同様の処理を行う。このように、全面バックアップ後の２回目の日曜日まで差分バックアップが繰り返される。
【００３９】
次に、差分バックアップのリストアを、全面バックアップ後の初めての木曜日にシステムが使用不能になる障害が発生した場合の復旧作業を例にとり説明する。
ここではログデータによって行われる当日の変更データの復旧には触れない。復旧後のマシン上に再び本発明の実施の形態のシステムをインストールし、ディスク装置１１１又は１１２にかつてバックアップ対象であったボリュームと同サイズのボリュームを確保する。これに、制御コマンド２０７の全面バックアップリストアを実行する。これによって、該ボリューム管理情報中に差分バックアップのためのメタ情報４００が復旧され、全面バックアップデータがボリューム上にリストアされる。
【００４０】
システム管理者は、順番に差分バックアップのテープを制御コマンド２０７のリストア機能でリストアする。差分管理機構２０３は制御コマンド２０７から受け取ったデータを図９に示したブロック位置８０２に従って対応するボリューム上の領域へチェックサムデータ８０４を用いた確認の上リストアする。もし、チェックサムデータ８０４によりテープデータに不良があったときは、当該差分バックアップ世代番号をシステム管理者に報告する。
本リストア作業中では、火曜日に作成した差分バックアップ世代１のテープと、木曜日に作成した差分バックアップ世代２、３のテープをリストアすれば良いが、火曜日に作成した差分バックアップ世代１のテープに不良があったときは、水曜日に作成した差分バックアップ世代１、２のテープと木曜日に作成した差分バックアップ世代２、３のテープをリストアすれば良い。また、差分バックアップ世代２、３のテープの世代２部分に不良があったときは、差分バックアップ世代１、２のテープリストア後、世代２のリストアを禁止して差分バックアップ世代２、３のテープをリストアすれば良い。
【００４１】
以上説明したように本発明の実施の形態１によれば、大容量の１、または、複数のディスク装置に対してデータバックアップを行う場合に、初回の全面バックアップの後は、前回のバックアップ実行時からの差分データのみをバックアップすればよいので、バックアップ実行に要する時間を短縮することができる。
さらに、最新差分バックアップ世代に連続した１、または、複数の差分バックアップ世代を一つの差分バックアップ世代に取りまとめることが可能である。
【００４２】
また、疑似デバイスドライバインターフェースにより、例えば、UNIXシステムにおけるddコマンドのような順次読み出し／書き込みコマンドにより、差分ブロック管理データと差分データを、ユーザーは実際に更新のあったブロックを意識せずに、テープなどのシーケンシャルアクセスを行う記憶媒体に吸い上げることができ、差分バックアップデータのリストア時には、当該差分バックアップの前世代までリストア済みのバックアップボリュームに対し、該疑似デバイスドライバインターフェースにより吸い上げた差分バックアップデータを、該疑似デバイスドライバインターフェースに対して順次書き込みすることによりリストアできる。
【００４３】
さらに、該疑似ドライバインターフェースに、ブロックデータごとのチェックサムデータを付加する機能を設け、ブロックデータごとのチェックサムデータを保存することにより、差分バックアップデータの信頼性が向上する。
【００４４】
なお、差分バックアップ時には、退避先に圧縮の上格納するようにし、差分バックアップデータのリストア時には、圧縮格納されたデータを伸長してからリストアするようにすれば、差分バックアップデータのデータ量を減らすことができ、バックアップ媒体の有効利用が可能になる。
【００４５】
発明の実施の形態２．
図１０は、本発明の実施の形態２における差分バックアップ方式のハードウェア構成を示す構成図であり、図１と同様のものは、同一番号を付して説明を省略する。
図１０において、１１３は入出力バス１０５に接続された制御装置としてのSCSIアダプタであり、ファームウェアによりアダプタ機能として差分管理機構２０３を実現している。１１４はSCSIアダプタ１１３から出ているSCSIバス、９０２及び９０６はSCSIバス１１４に接続されたディスクパックであり、この２つのディスクパック９０２、９０６の他に、図示していない３つのディスクパック９０３〜９０５もSCSIバス１１４に接続されている。９０１はディスクパック９０２〜９０６のデータのバックアップが格納されるテープドライブである。なお、ディスクパック９０２〜９０６は、SCSIアダプタ１１３によって実現される差分バックアップ機能のバックアップ対象である。
オペレーティングシステムからSCSIアダプタ１１３はターゲットレベルのSCSIコントローラを内蔵する５つのディスクパック９０２〜９０６が接続されているように見える。SCSIの規格では同一バス上に最大８つのターゲットコントローラが許され、その内の３つ（ID7、ID6、ID5）は、図１１にそのフロントパネルを示す差分バックアップ機能付ディスク装置９００のマップ格納用ディスク、テープドライブ、および、SCSIアダプタ１１３が使用するので、オペレーティングシステムは利用できない。図１１において、９０１はテープドライブ、９０２から９０６にはディスクパックが装着される。なお、図１１のテープドライブ９０１及びディスクパック９０２〜９０６は、図１０のテープドライブ９０１及びディスクパック９０２〜９０６と同一のものである。９０７は全面バックアップスイッチ、９０８は全面リストアスイッチ、９０９は差分バックアップスイッチ、９１０は差分バックアップ確認スイッチ、９１１は差分リストアスイッチ、９１２は差分リストア確認スイッチ、９１３はテンキーである。
【００４６】
本発明の実施の形態２でのアプリケーションプログラム、および、オペレーティングシステムは発明の実施の形態１と同じである。本装置のデバイスドライバはタイムアウトしないため、本装置によるバックアップ、リストア実行中は本装置のディスクパック９０２〜９０６を使用するアプリケーションプログラムは自動的に停止する。従って、システム管理者は随時本装置によってバックアップを実行することができる。
全面バックアップを実行するときはテープをテープドライブ９０１に装着し、テンキー９１３によってバックアップするディスクパック９０２〜９０６を指定する。その後全面バックアップスイッチ９０７を押下すると全面バックアップが実行される。
差分バックアップを実行するときは、テープをテープドライブ９０１に装着後、差分バックアップを行うディスクパック９０２〜９０６をテンキー９１３で指定し、差分バックアップスイッチ９０９を押下し、スコープをテンキー９１３で指定し、差分バックアップ確認スイッチ９１０を押下することで行う。
全面リストアは全面バックアップデータの格納されたテープをテープドライブ９０１に装着し、リストア先のディスクパック９０２〜９０６をテンキー９１３で指定し、全面リストアスイッチ９０８を押下することで行う。
差分リストアは差分バックアップテープをテープドライブ９０１に装着し、差分リストア先のディスクパック９０２〜９０６をテンキー９１３で選択し、当該バックアップテープに含まれる最新世代とスコープをテンキー９１３で指定し、差分リストア確認スイッチ９１２を押下することによって行う。
【００４７】
以上説明したように本発明の実施の形態２によれば、バックアップ対象のデータを記憶するディスク装置１１５及び１１６と、バックアップデータが格納されるテープドライブ１１７とを制御するSCSIアダプタ１１３を備え、このSCSIアダプタ１１３内に、差分管理機構２０３を実現していることにより、オペレーティングシステムやオペレーティングシステム配下のソフトウェアに負担をかけずに差分バックアップ、リストア作業を行うことができる。
【００４８】
【発明の効果】
以上説明したように本発明によれば、バックアップ対象のデータを記憶している記憶装置のブロック毎に、各ブロック内のデータが更新された最新のバックアップ世代を差分マップ情報に記録し、該差分マップ情報に基づき、ユーザにより指定されたバックアップ世代に更新されたブロックのデータを入力しバックアップするので、過去最新のバックアップ以後に更新されたデータのみがバックアップされ、バックアップ実行に要する時間を短縮することができる。即ち、本発明では、バックアップを記憶装置へのアクセス単位と等しいブロック単位で行うようにしたので、従来のようなファイル全体やディスク単位に行うバックアップと比べて、必要な部分のみで済むことから、バックアップ実行に要する時間を短縮することができる。
【００４９】
また、差分バックアップを行なうときに、最新のバックアップ世代に連続した１又は複数のバックアップ世代が指定された場合には、一つのバックアップ世代に取りまとめてバックアップするので、更新データが少ない日にはバックアップを取らず、後日まとめてバックアップするという効率の良いバックアップ作業が行なえる。
【００５０】
さらに、１つのバックアップ媒体に複数のバックアップ世代のデータを格納できるので、１つのバックアップ媒体自身が読めなくなったとしても、他のバックアップ媒体を用いてバックアップデータを再現でき、信頼性の高いバックアップ作業が行なえる。
【図面の簡単な説明】
【図１】  本発明の実施の形態１における差分バックアップ方式のハードウェア構成を示す構成図である。
【図２】  本発明の実施の形態１における差分バックアップ方式のソフトウェア構成を示す構成図である。
【図３】  本発明の実施の形態１における差分バックアップの初期化処理のフローチャートである。
【図４】  本発明の実施の形態１における差分バックアップのためのメタ情報である。
【図５】  本発明の実施の形態１における更新ブロック数テーブルである。
【図６】  本発明の実施の形態１における差分マップ情報である。
【図７】  本発明の実施の形態１における差分バックアップの運用を説明する説明図である。
【図８】  本発明の実施の形態１におけるアプリケーションプログラム動作時の差分記録論理のフローチャートである。
【図９】  本発明の実施の形態１における差分バックアップ方式で作成したバックアップ媒体に格納される差分バックアップデータである。
【図１０】  本発明の実施の形態２における差分バックアップ方式のハードウェア構成を示す構成図である。
【図１１】  本発明の実施の形態２における差分バックアップ機能付ディスク装置のフロントパネルである。
【符号の説明】
１０１  ＣＰＵ、１０２  メモリ、１０３  メモリバス、１０４  バスアダプタ、１０５  入出力バス、１０６  SCSIアダプタ、１０７  SCSIバス、１０８  テープドライブ、１０９  SCSIアダプタ、１１０  SCSIバス、１１１  ディスク装置、１１２  ディスク装置、２０１  アプリケーションプログラム、２０２  オペレーティングシステム、２０３  差分管理機構、２０４  更新最新世代管理機構、２０５  更新数管理機構、２０６  論理ボリューム管理機構、２０７  制御コマンド、４００  メタ情報、５００  更新ブロック数テーブル、６００  差分マップ情報
【図１】
0003856855.tif 000002
【図２】
0003856855.tif 000003
【図３】
0003856855.tif 000004
【図４】
0003856855.tif 000005
【図５】
0003856855.tif 000006
【図６】
0003856855.tif 000007
【図７】
0003856855.tif 000008
【図８】
0003856855.tif 000009
【図９】
0003856855.tif 000010
【図１０】
0003856855.tif 000011
【図１１】
0003856855.tif 000012