(57)【特許請求の範囲】
【請求項１】
複数の計算機により共有される共有媒体のイメージバックアップを行うバックアップシステムであって、
前記複数の計算機のうちのいずれかの計算機が前記共有媒体のある領域に書き込む際に、該領域の書き込み前のイメージデータをログとして前記書き込みを行った計算機で管理し、
前記複数の計算機が管理するログをまとめて全体のログを生成するログ管理手段であって、同一領域に対するログが複数ある場合は、イメージバックアップ開始時点以降、最も古いログを用いるログ管理手段と、
リストア時に、前記全体のログを用いて前記イメージバックアップ開始時点のデータを生成する生成手段と
を備えることを特徴とするバックアップシステム。
【請求項２】
前記複数の計算機の各々のログを一時的に保存する一時ログ格納手段をさらに備え、前記ログ管理手段は、該一時ログ格納手段に保存された各ログを編集して、前記全体のログを生成することを特徴とする請求項１記載のバックアップシステム。
【請求項３】
前記ログ管理手段は、前記複数の計算機のうちのいずれかが前記共有媒体にアクセスしたとき、アクセスした計算機からアクセス通知を受け取り、該アクセスした計算機のログを保存することで、前記全体のログを生成することを特徴とする請求項１記載のバックアップシステム。
【請求項４】
前記共有媒体のバックアップデータを格納するバックアップ格納手段をさらに備え、前記ログ管理手段は、前記全体のログを該バックアップ格納手段に保存することを特徴とする請求項１記載のバックアップシステム。
【請求項５】
前記共有媒体のバックアップデータを格納するバックアップ格納手段と、前記全体のログを格納するログ格納手段とをさらに備えることを特徴とする請求項１記載のバックアップシステム。
【請求項６】
前記共有媒体のバックアップデータを格納するバックアップ格納手段をさらに備え、前記ログ管理手段は、前記全体のログを該バックアップデータに上書きすることを特徴とする請求項１記載のバックアップシステム。
【請求項７】
前記ログ管理手段が管理するログと、ログが上書きされるバックアップデータのアドレス情報とを格納するログ格納手段をさらに備え、前記生成手段は、該アドレス情報に基づいて、ログを対応するバックアップデータに上書きすることを特徴とする請求項１記載のバックアップシステム。
【請求項８】
前記生成手段は、前記全体のログが前記共有媒体のバックアップデータに上書きされていない場合、該全体のログを先に参照し、必要に応じて、該バックアップデータを後で参照することを特徴とする請求項１記載のバックアップシステム。
【請求項９】
複数の計算機により共有される共有媒体のイメージバックアップを行うバックアップ方法であって、
イメージバックアップ開始時点以降、
前記複数の計算機のうちのいずれかの計算機が前記共有媒体のある領域に書き込む際に、該領域の書き込み前のイメージデータをログとして前記書き込みを行った計算機で管理し、
イメージバックアップを行うコンピュータが、前記複数の計算機が管理するログをまとめて全体のログを生成し、前記全体のログを生成する際に、同一領域に対するログが複数ある場合は、イメージバックアップ開始時点以降、最も古いログを用い、
リストア時に、前記全体のログを用いて前記イメージバックアップ開始時点のデータを生成する、
ことを特徴とするバックアップ方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機（コンピュータ）システムのディスク等の記録媒体に格納されたデータをバックアップし、必要なときにリストアするシステムおよびその方法に関する。
【０００２】
【従来の技術】
従来の計算機システムでは、ファイルシステムがバックアップを行う際に、まず、ファイル単位で、使用されているブロックのアドレス等のブロック情報を調べる。そして、該当するブロックのデータをディスクから読み出すことにより、ファイルを読み、読んだデータをテープにコピーする。このような動作をファイル毎に繰り返すことで、ファイルのバックアップが行われていた。
【０００３】
しかし、この方法では、多数のファイルのバックアップを行う場合、ディスクへのアクセスがランダムアクセスに近くなるため、システムの性能を損ねる原因となっていた。
【０００４】
そこで、バックアップを効率化するために、ファイルが占めている複数のブロックを直接コピーするイメージバックアップが用いられるようになった。この方法では、計算機システムは、ファイルを選択的にコピーする代わりに、ディスク内でファイルが占めているブロックの領域を一括してコピーする。このため、１回のディスクアクセスでバックアップが行われ、処理が効率化される。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した従来のバックアップ方法には、以下のような問題がある。
【０００６】
従来のイメージバックアップでは、ディスクを単位としてデータをコピーすることはできたが、ファイルやディレクトリを単位としてコピーすることはできなかった。このため、必要のないデータまでコピーしなければならないという問題があった。また、バックアップされたデータをリストアするには、すべてのデータをディスク上にコピーして展開する必要があった。
【０００７】
さらに、複数の計算機がディスクを共有して処理を行うクラスタシステムにおいてバックアップを行おうとすると、次のような問題が発生する。
クラスタシステムは、複数の計算機が共有ディスクに同時にアクセスするためのファイルシステム（ディスク共用ファイルシステム）を備えており、各計算機は、書き込みデータをキャッシュする領域を備えている。このため、単に共有ディスクをコピーするだけでは、キャッシュされた書き込みデータ（ライトキャッシュ）の内容がコピーに反映されないので、通常のイメージバックアップを行うことは不可能である。
【０００８】
また、従来の計算機システムでは、イメージバックアップを業務の稼動中に（オンラインで）行うために、ファイルシステムが、データの変更を契機として、変更前の元データを別の領域に退避させ、ディスクをコピーした後に、退避されていた元データをコピーに上書きしていた。これにより、バックアップデータ上で、バックアップ開始時点の内容を確定することができた。
【０００９】
しかし、クラスタシステムにおいては、同一のファイル領域に対して、複数の計算機による変更がほとんど同時に発生する場合があり、元データを用いてバックアップ開始時点の内容を確定する方法を、直接適用できないという問題がある。
【００１０】
このように、従来のバックアップ方法では、クラスタシステムにおける大量のデータを効率的にバックアップすることができない。このため、クラスタシステムにおける有効なバックアップ方法は開発されておらず、バックアップされたデータを効率的に閲覧する方法もない。
【００１１】
本発明の課題は、ディスク共用ファイルシステムを有する計算機システムにおいて、データを効率的にバックアップするシステムおよびその方法を提供することである。
【００１２】
【課題を解決するための手段】
図１は、本発明のバックアップシステムの原理図である。
本発明の第１の局面において、バックアップシステムは、コピー手段１と制御手段２を備え、複数の計算機３により共有される共有媒体４のバックアップを行う。
【００１３】
コピー手段１は、共有媒体４の複数の単位領域を一括してバックアップ媒体５にコピーする。制御手段２は、各計算機３が共有媒体４に書き込む書き込みデータを管理し、バックアップ時に、各計算機３の書き込みデータを共有媒体４に反映させる。
【００１４】
各計算機３は、共有媒体４のデータを変更するとき、書き込みデータをライトキャッシュとして保持し、共有媒体４へのアクセスが可能になったとき、その内容を共有媒体４に書き込む。制御手段２は、各計算機３が保持する書き込みデータの有無を管理し、バックアップ時に、計算機３が保持する書き込みデータを共有媒体４に書き込む制御を行う。
【００１５】
共有媒体４の格納領域は、例えば、ブロックのような単位領域毎に分割されている。コピー手段１は、すべての書き込みデータが書き込まれた後に、例えば、イメージバックアップのような方法により、共有媒体４の複数の単位領域を一括してバックアップ媒体５にコピーする。
【００１６】
このようなバックアップシステムによれば、ディスク共用ファイルシステムにおいて、各計算機３が保持する書き込みデータを含めて、共有媒体４のバックアップを効率よく行うことができる。
【００１７】
また、本発明の第２の局面において、バックアップシステムは、ログ管理手段６と生成手段７を備え、複数の計算機３により共有される共有媒体４のイメージバックアップを行う。
【００１８】
ログ管理手段６は、複数の計算機３のうちのいずれかの計算機３が共有媒体４のある領域に書き込む際に、その領域の書き込み前のイメージデータをログとして書き込みを行った計算機３で管理し、複数の計算機３が管理するログをまとめて全体のログを生成する。そして、同一領域に対するログが複数ある場合は、イメージバックアップ開始時点以降、最も古いログを用いる。生成手段７は、リストア時に、全体のログを用いて、イメージバックアップ開始時点のデータを生成する。
【００１９】
計算機３が共有媒体４のデータを変更するとき、変更前の元データがログとして保存される。ログ管理手段６は、各計算機３のログを管理し、２つ以上の計算機３のログをまとめて、システム全体のログを生成する。そして、生成手段７は、例えば、共有媒体４のバックアップデータに全体のログを上書きすることで、バックアップ開始時点の内容を確定する。
【００２０】
このようなバックアップシステムによれば、複数の計算機３によるデータの変更を契機として保存された元データが編集され、全体のログが生成される。したがって、ディスク共用ファイルシステムにおいても、システムの稼動中にバックアップを効率よく行うことができる。
【００２１】
また、本発明の第３の局面において、バックアップシステムは、コピー手段１とグループ管理手段８を備え、複数の計算機３により共有される共有媒体４のバックアップを行う。
【００２２】
グループ管理手段８は、共有媒体４に格納されたファイルのグループを設定し、そのグループに含まれるファイルが占める単位領域をリストアップする。コピー手段１は、リストアップされた複数の単位領域を一括してバックアップ媒体５にコピーする。
【００２３】
グループ管理手段８は、１つ以上のファイルを含むグループを設定し、そのグループに含まれる各ファイルが占める単位領域をリストアップする。そして、コピー手段１は、例えば、イメージバックアップのような方法により、各ファイルを区別することなく、リストアップされた複数の単位領域を一括してバックアップ媒体５にコピーする。
【００２４】
このようなバックアップシステムによれば、ディスク共用ファイルシステムにおいて、バックアップするファイルを指定することが可能になり、不要なファイルのコピーを行う必要がなくなる。したがって、バックアップが効率化される。
【００２５】
また、本発明の第４の局面において、バックアップシステムは、コピー手段１と領域管理手段９を備え、計算機３からアクセスされるファイルを格納する格納媒体４のバックアップを行う。
【００２６】
領域管理手段９は、格納媒体４の単位領域毎に使用されているか否かを判定し、使用されている単位領域をリストアップする。コピー手段１は、リストアップされた複数の単位領域を一括してバックアップ媒体５にコピーする。
【００２７】
領域管理手段９は、格納媒体４の各単位領域を管理し、各単位領域がファイルとして使用されているか否かを判定して、ファイルが占める単位領域をリストアップする。そして、コピー手段１は、例えば、イメージバックアップのような方法により、各ファイルを区別することなく、リストアップされた複数の単位領域を一括してバックアップ媒体５にコピーする。
【００２８】
このようなバックアップシステムによれば、ファイルとして使用されていない単位領域のコピーを行う必要がなくなる。したがって、ファイルシステムにおけるバックアップが効率化される。
【００２９】
また、本発明の第５の局面において、バックアップシステムは、コピー手段１と領域管理手段９を備え、計算機３からアクセスされるファイルを格納する格納媒体４のバックアップを行う。
【００３０】
領域管理手段９は、格納媒体４の単位領域のうち、前回のバックアップの後で変更があった単位領域を差分としてリストアップする。コピー手段１は、リストアップされた複数の単位領域を一括して、差分バックアップデータとしてバックアップ媒体５にコピーする。
【００３１】
バックアップシステムは、適当なタイミングで格納媒体４のバックアップを時系列に行う。領域管理手段９は、格納媒体４の各単位領域を管理し、前回のバックアップの後で変更された単位領域や、ファイルとして新たに使用された単位領域をリストアップする。そして、コピー手段１は、例えば、イメージバックアップのような方法により、各ファイルを区別することなく、リストアップされた複数の単位領域を一括してバックアップ媒体５にコピーする。これにより、変更のあった単位領域のみが、差分として保存される。
【００３２】
このようなバックアップシステムによれば、前回のバックアップの後でデータに変更がなかった単位領域のコピーを行う必要がなくなる。したがって、ファイルシステムにおけるバックアップが効率化される。
【００３３】
例えば、図１の共有媒体４は、後述する図２の共有ディスク１３に対応し、図１のバックアップ媒体５は、図２のバックアップ媒体１５またはテープ１６に対応する。また、例えば、図１のコピー手段１は、図２のコピー管理部２５に対応し、図１の制御手段２は、図２のキャッシュ制御部２１に対応し、図１のログ管理手段６は、図２のログ管理部２６に対応し、図１の生成手段７および領域管理手段９は、図２のブロック管理部２２に対応し、図１のグループ管理手段８は、図２のグループ管理部２３に対応する。
【００３４】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
本実施形態の計算機システムは、複数の計算機と、それらの計算機が共有する共有ディスクと、複数の計算機が共有ディスクに同時にアクセスするためのファイルシステムとを備える。
【００３５】
この計算機システムは、データのバックアップの際に、改良されたイメージバックアップにより、ディスクのすべての内容をバックアップ用の媒体に直接コピーする。また、計算機のディスクに対するアクセスを検出し、アクセスの発生する以前の元データをログ媒体に保存する。そして、ログ媒体に保存されたデータを用いて、バックアップ開始時点のイメージ（データの内容）を確定する。以下では、この元データを、Before Image Log（ＢＩログ）、または、単にログと呼ぶことにする。
【００３６】
本実施形態のイメージバックアップにおいて、バックアップ動作に関する主な特徴は以下の通りである。
（ａ．１）各計算機のメモリ上のライトキャッシュの内容を管理し、バックアップ時に、各計算機のライトキャッシュの内容をディスクに反映させる。これにより、クラスタ内のデータの矛盾が生じることがなくなる。
（ａ．２）ディスクに書き込みを行おうとする各計算機がＢＩログを残し、バックアップ時に複数の計算機のＢＩログをマージする。これにより、バックアップ終了後にすべてのログをまとめたシステム全体のログが編集され、このログを用いてデータを確定することで、バックアップ（コピー）中のライトによるデータの破壊が防止される。
（ａ．３）ディスクに書き込みを行おうとする各計算機が、ＢＩログの責任を持つ特定の計算機に書き込みを通知し、その計算機がＢＩログを管理する。これにより、複数の計算機のログが特定の計算機に送られ、マージされてログ媒体に保存される。このログを用いてデータを確定することにより、バックアップ中のライトによるデータの破壊が防止される。
（ａ．４）ＢＩログを保存する媒体として、バックアップデータと同一の媒体を選択する。これにより、バックアップと同時にログを保存することができる。
（ａ．５）ＢＩログを保存する媒体として、バックアップデータと別の媒体を選択する。これにより、バックアップデータを保存する媒体が上書き不可能な場合でも、ログを残すことができる。
（ａ．６）ＢＩログをバックアップデータに上書きしてから、バックアップ媒体に保存する。これにより、リストア時に複数の媒体を参照する必要がなくなる。
（ａ．７）ＢＩログの中に、上書きの対象となるバックアップデータのアドレス情報を書き込んでおく。これにより、ログの管理情報にアクセスしなくても、ログを読むだけで、ログをバックアップデータに上書きすることが可能になる。
（ａ．８）ディスク上のブロックのうち、使用済みのものをリストアップして、必要な部分のみをコピーする。これにより、コピーするデータの量を削減されるため、コピー時間の短縮と必要な媒体容量の削減が可能になる。
（ａ．９）ディスク上の使用済みのブロックのうち、前回のバックアップ以後に変更があったもの（差分）をリストアップして、変更部分のみをコピーする。このような差分バックアップにより、コピーするデータの量を削減されるため、コピー時間の短縮と必要な媒体容量の削減が可能になる。
（ａ．１０）バックアップが完了した後、リストアの前に、差分バックアップデータ同士、または差分バックアップデータと全体バックアップデータの内容を、ブロック単位でマージする。差分バックアップデータをまとめておくことで、リストアが効率化される。
（ａ．１１）差分バックアップデータの記録開始時点を選択できるようにする。リストア時に、選択された時点以後の差分バックアップデータのみを用いることで、その時点より前に行われた変更を無視することができ、柔軟なリストアが可能になる。
（ａ．１２）ディスクのコピー処理をクラスタ内の複数の計算機に分散する。これにより、負荷が分散され、コピー時間が短縮される。
【００３７】
また、本実施形態のイメージバックアップにおいて、ファイルのグループ化に関する主な特徴は以下の通りである。
（ｂ．１）ファイルをグループ化し、グループに含まれているファイルの占めるブロックを管理して、バックアップ時には、それらのファイルが使用するブロックのみをコピーする。これにより、ファイルのグループの設定と、グループ単位のファイルのバックアップが可能になる。
（ｂ．２）ディレクトリを単位としてファイルをグループ化し、ディレクトリに含まれるすべてのファイルをグループとして設定する。これにより、ファイルのグループの設定と、グループ単位のファイルのバックアップが可能になる。
（ｂ．３）グループとして設定されたディレクトリの下の特定のファイルまたはディレクトリを、グループから除外する。これにより、あるグループとして設定されたディレクトリに含まれる特定のファイルを、グループから除外することができ、柔軟なグループ設定が可能になる。
（ｂ．４）複数のグループを設定し、それぞれ別のスケジュールでバックアップを行う。これにより、柔軟なグループ設定とバックアップが可能になる。
（ｂ．５）１つのファイルが複数のグループに属することを認める。これにより、柔軟なグループ設定とバックアップが可能になる。
【００３８】
また、本実施形態のイメージバックアップにおいて、リストア動作に関する主な特徴は以下の通りである。
（ｃ．１）ファイルシステムが、バックアップデータを保存する媒体を、ディスクの代わりにそのままマウントする。これにより、バックアップデータを保存する媒体をディスクの代わりにアクセスすることができ、リストアのための特別な操作が不要になる。
（ｃ．２）上述した差分バックアップが行われた場合、必要に応じて、全体バックアップデータまで、各世代のバックアップデータを探索して遡る。これにより、ファイルのブロックが最新の差分バックアップデータに含まれていないときに、それより前のバックアップにより保存されたブロックを参照して利用することができる。したがって、リストア時に、ユーザにはすべてのデータが存在しているように見せることが可能になる。
（ｃ．３）バックアップテープから必要なブロックのみを、バッファとして用いるディスクにロードし、それらのブロックをキャッシュとして利用する。これにより、必要なブロックのみをバッファ上に配置することが可能になり、頻繁にアクセスされるブロックへのアクセス効率が向上する。
（ｃ．４）バックアップテープから必要なブロックのみをディスクにロードし、テープに繋がっていない計算機に対してデータを見せる。これにより、クラスタ内のテープを持たない計算機でも、テープに保存されたバックアップデータを読むことが可能になる。
（ｃ．５）ＢＩログがバックアップデータに上書きされていない場合、ＢＩログを先に参照し、必要に応じて、バックアップデータを後で参照する。ログとバックアップデータが別々に媒体に保存されている場合、ログの存在と内容を確認して、ログがあればログを参照し、ログがなければバックアップデータを参照する。これにより、リストア後のデータに矛盾が生じることがなくなる。
【００３９】
図２は、上述したようなイメージバックアップを行うクラスタシステムの構成図である。図２のクラスタシステムは、複数の計算機１１、１２、共有ディスク１３、ログ媒体１４、バックアップ媒体１５、およびテープ１６を備える。
【００４０】
複数の計算機１１は、共有ディスク１３を共有し、ディスク１３に格納されたファイルにアクセスしながらデータ処理を行う。計算機１１、１２および共有ディスク１３はクラスタを構成し、クラスタ内には、一般に、１つ以上の共有ディスク１３が設けられる。ログ媒体１４は、計算機１１のＢＩログを格納し、バックアップ媒体１５およびテープ１６は、ディスク１３内のファイルのバックアップデータを格納する。
【００４１】
計算機１２は、クラスタを管理する計算機であり、キャッシュ制御部２１、ブロック管理部２２、グループ管理部２３、媒体制御部２４、コピー管理部２５、ログ管理部２６、およびテープ制御部２７を含む。これらの管理部および制御部は、例えば、プログラムにより記述されたソフトウェアに対応し、ブロック管理部２２は、ファイルシステムの主要部に対応する。
【００４２】
キャッシュ制御部２１は、各計算機１１のメモリ上に設けられたキャッシュ２８を制御する。キャッシュ２８には、ディスク１３に格納されたクラスタのファイルに対して計算機１１が書き込むデータが一時的に保存される。
【００４３】
また、ブロック管理部２２は、ファイルへのブロック割当てを行い、ファイルの各ブロックがどのディスク１３のどのアドレスに割り当てられているかを管理する。グループ管理部２３は、ユーザが定義したグループと、グループに含まれているファイルを管理する。
【００４４】
また、媒体制御部２４は、バックアップ媒体１５へのアクセスを制御し、コピー管理部２５は、ディスク１３からバックアップ媒体１５へのデータのコピー動作を管理する。ログ管理部２６は、各計算機１１のＢＩログとログ媒体１４を管理し、テープ制御部２７は、テープ１６へのアクセスを制御する。
【００４５】
このようなクラスタシステムによれば、ブロック管理部２２がディスク１３上のバックアップ対象ファイルのブロックを管理し、コピー管理部２５がそれらのブロックをバックアップ媒体１５にコピーすることにより、バックアップが行われる。コピー中に発生したクラスタ内の各計算機１１の書き込みに基づくＢＩログは、ログ管理部２６によりログ媒体にコピーされる。ログ媒体に格納されたＢＩログは、後でバックアップ媒体１５に反映されるか、または、そのままログの形式で保持される。
【００４６】
ログ媒体１４およびバックアップ媒体１５は、ディスクやテープのような不揮発な媒体である。バックアップ媒体１５がディスクである場合、それはテープ１６に対するバッファとしても利用され、テープ制御部２７がバックアップ媒体１５からテープ１６へバックアップデータをコピーする。
【００４７】
まず、図３から図１６までを参照しながら、上述した特徴（ａ．１）〜（ａ．７）に関する動作を詳細に説明する。
キャッシュ制御部２１は、（ａ．１）のキャッシュ管理を行い、バックアップ時に、キャッシュ２８内の書き込みデータ（ライトキャッシュ）をディスク１３に反映させる。キャッシュ制御部２１は、クラスタ内のすべてのキャッシュ２８について以下のような情報を登録したキャッシュテーブルを管理する。
・計算機名
・ファイル名
・ファイル内の領域（オフセット、サイズ）
・キャッシュがダーティか否か（書き込みデータがディスク１３に反映されずに残っているか否か）
ある計算機１１がダーティキャッシュを生成するとき、キャッシュ制御部２１は、対応するファイルの対応する領域内について他の計算機１１が持っているライトキャッシュを破棄するように、各計算機１１に指示する。そして、バックアップ時には、すべてのダーティキャッシュをディスク１３に書き出すように、各計算機１１に指示する。書き出しを指示された計算機１１は、キャッシュ２８内のライトキャッシュをディスク１３に書き込む。
【００４８】
こうして、クラスタ内のすべてのライトキャッシュがディスク１３に反映されると、コピー管理部２５によりイメージバックアップが実行され、ディスク１３内のデータがバックアップ媒体１５にコピーされる。これにより、クラスタ内のデータの矛盾が生じることなく、バックアップが行われる。
【００４９】
図３は、キャッシュ制御部２１がライトキャッシュをディスク１３に反映させる処理のフローチャートである。バックアップが開始されると、キャッシュ制御部２１は、まず、キャッシュテーブルを探索して、クラスタ内にダーティキャッシュが残っているか否かをチェックする（ステップＳ１）。
【００５０】
ダーティキャッシュが残っていれば、その計算機名と、書き込み先のファイル名および領域の情報を取得する（ステップＳ２）。次に、その計算機に対して、ディスク１３の対応するファイルの対応する領域にダーティキャッシュを反映させるように指示し（ステップＳ３）、ステップＳ１以降の処理を繰り返す。そして、ステップＳ１においてダーティキャッシュがなくなると、処理を終了する。
【００５１】
また、ログ管理部２６は、ＢＩログに関して、（ａ．２）または（ａ．３）のログ管理を行う。
図４は、（ａ．２）のログ管理を示している。図４において、各計算機１１は、各自の一時ログ媒体３１とログ管理ファイル３２を持ち、ログ管理部２６は、バックアップ終了後に、すべての計算機１１のログをまとめてシステム全体のログを編集し、ログ媒体１４に格納する。ログ管理ファイル３２には、各ログについて以下のような情報を記録したログリストが含まれる。
・ディスク１３のデバイス名
・領域（オフセット、サイズ）
・時刻
このうち、時刻は、ログが生成された時刻を表し、他のログとの前後関係を決定するために用いられる。ここでは、実際の時刻の代わりに、計算機１２に備えられたクロック部３３が生成する論理時刻（logical time）を用いている。クロック部３３は、例えば、最初のログが生成されたときに論理時刻“１”を生成し、以後、ログが生成される度に論理時刻を１ずつインクリメントする。
【００５２】
各計算機１１は、一時ログ媒体３１のログとログ管理ファイル３２のログリストをログ管理部２６に送り、ログ管理部２６は、受け取ったログの中に同一領域のログが複数あれば、最も古いものを優先的に残してログを編集する。こうして編集されたログをバックアップ媒体１５に上書きすることで、バックアップ開始時点のイメージが確定され、バックアップ中のディスク１３への書き込みによる変更をキャンセルすることができる。
【００５３】
図５は、ログ管理部２６によるログ編集処理のフローチャートである。ログ管理部２６は、まず、クラスタ内のすべての計算機１１からログとログリストを受け取り（ステップＳ１１）、受け取ったログを時刻の古い順にソートして、作業用ログリストを用意する（ステップＳ１２）。
【００５４】
次に、最も古いログを選択し（ステップＳ１３）、それと同一領域のログが作業用ログリストにあるか否かをチェックする（ステップＳ１４）。同一領域のログがなければ、選択されたログを作業用ログリストに追加し（ステップＳ１５）、同一領域のログがあれば、選択されたログを破棄する（ステップＳ１６）。
【００５５】
次に、未選択のログがあるか否かをチェックし（ステップＳ１７）、そのようなログが残っていれば、ステップＳ１３以降の処理を繰り返す。そして、すべてのログを選択すると、作業用ログリストに含まれるログをログ媒体１４に記録して（ステップＳ１８）、処理を終了する。
【００５６】
図６は、（ａ．３）のログ管理を示している。図６において、各計算機１１は、ログをログ管理部２６に送り、ログ管理部２６は、受け取ったログをログ媒体１４に記録し、対応するデバイス名および領域（オフセット、サイズ）をログ管理ファイル３４に記録する。このように、図６のログ管理では、ログが初めからログ媒体１４に置かれることになる。こうして記録されたログをバックアップ媒体１５に上書きすることで、バックアップ開始時点のイメージが確定される。
【００５７】
図７は、ログ管理部２６によるログ記録処理のフローチャートである。ログ管理部２６は、まず、クラスタ内の計算機１１からログを受け取り（ステップＳ２１）、それと同一領域のログが既にログ媒体１４に保存されているか否かをチェックする（ステップＳ２２）。同一領域のログが保存されていなければ、受け取ったログをログ媒体１４に記録し（ステップＳ２３）、同一領域のログが保存されていれば、受け取ったログを記録しない。
【００５８】
次に、クラスタ内のすべての計算機１１からログを受け取ったか否かをチェックし（ステップＳ２４）、ログを送っていない計算機１１があれば、ステップＳ２１以降の処理を繰り返す。そして、すべての計算機１１からログを受け取ると、処理を終了する。
【００５９】
図４のログ管理では、バックアップ終了後に各計算機１１のログがまとめてログ管理部２６に送られるので、通信コストが小さいという利点がある。しかし、一時ログ媒体３１を必要とするため、ハードウェアコストが増大し、バックアップ終了後にログを編集しなければならないため、後処理が必要となる。
【００６０】
これに対して、図６のログ管理では、一時ログ媒体３１と後処理が不要であるという利点がある。しかし、各計算機１１でログが発生する度にログ管理部２６に送られるので、図４の場合より通信コストが増大する。
【００６１】
図６のログ管理は、さらに（ａ．４）または（ａ．５）のログ管理に分類することができる。（ａ．４）のログ管理では、ログ媒体１４の代わりにバックアップ媒体１５にログを保存し、（ａ．５）のログ管理では、ログ媒体１４にログを保存する。
【００６２】
図８は、（ａ．４）のログ管理を示している。ディスク１３のコピー先であるバックアップ媒体１５がテープではなく、テープ１６に対するバッファとして用いられるディスクである場合、バックアップ媒体１５への部分的上書きが可能である。そこで、コピー管理部２５とログ管理部２６が連携することにより、バックアップ対象となるディスク１３のコピーが行われているとき、コピーと同時にログをバックアップ媒体１５に記録することができる。
【００６３】
このとき、まず、ログ管理部２６がログをバックアップ媒体１５に記録した後に、ログが存在しない領域に関して、コピー管理部２５がディスク１３のデータをバックアップ媒体１５にコピーする。
【００６４】
図９は、ログ管理部２６によるログ記録処理のフローチャートである。ログ管理部２６は、まず、保存すべきログの管理情報を、図１０に示すようなログ管理ファイル３４に記録し（ステップＳ３１）、ログをバックアップ媒体１５にコピーする（ステップＳ３２）。次に、コピーしていない他のログがあるか否かをチェックし（ステップＳ３３）、そのようなログがあれば、ステップＳ３１以降の処理を繰り返す。そして、すべてのログをコピーし終えると、処理を終了する。
【００６５】
図１０のログ管理ファイルには、ログ毎に、デバイス名、元アドレス、および長さが記録されている。デバイス名は、対応するディスク１３の識別情報を表し、元アドレスと長さは、それぞれ、対応する領域のオフセットとサイズを表す。
【００６６】
図１１は、コピー管理部２５によるコピー処理のフローチャートである。コピー管理部２５は、まず、バックアップ対象のディスク１３の開始アドレスを現在のアドレスとしてコピーを開始し（ステップＳ４１）、現在のアドレスが終了アドレスか否かをチェックする（ステップＳ４２）。
【００６７】
現在のアドレスが終了アドレスでなければ、次に、そのアドレスがログ管理ファイル３４に存在するか否かをチェックする（ステップＳ４３）。現在のアドレスがログ管理ファイル３４に存在しなければ、そのアドレスのブロックをバックアップ媒体１５にコピーし（ステップＳ４４）、ログ管理ファイル３４に存在すれば、そのアドレスのブロックのコピーを行わない。
【００６８】
次に、次のアドレスを現在のアドレスとして（ステップＳ４５）、ステップＳ４２以降の処理を繰り返す。そして、ステップＳ４２において現在のアドレスが終了アドレスに一致すると、処理を終了する。
【００６９】
図１２は、（ａ．５）のログ管理を示している。バックアップ媒体１５が、テープのように、部分的上書きが不可能な媒体の場合、バックアップ媒体１５とは別のログ媒体１４を用意して、ログだけをその媒体上に置く。これにより、バックアップ媒体１５とは別の媒体にログを残すことができる。このとき、ログ管理部２６とコピー管理部２５は、それぞれ、ログの記録とディスク１３のコピーを独立に行う。
【００７０】
図１３は、ログ管理部２６によるログ記録処理のフローチャートである。図１３のステップＳ５１およびＳ５３の処理は、それぞれ、図９のステップＳ３１およびＳ３３の処理と同様である。ステップＳ５１の処理の後、ログ管理部２６は、ログをログ媒体１４にコピーし（ステップＳ５２）、ステップＳ５３の処理を行う。
【００７１】
図１４は、コピー管理部２５によるコピー処理のフローチャートである。図１４のステップＳ６１、Ｓ６２、Ｓ６３、およびＳ６４の処理は、それぞれ、図１１のステップＳ４１、Ｓ４２、Ｓ４４、およびＳ４５の処理と同様である。この場合、バックアップ対象のディスク１３のすべてのブロックがバックアップ媒体１５にコピーされる。
【００７２】
また、（ａ．６）のログ管理では、ログ管理部２６は、バックアップ時に、ＢＩログをバックアップ媒体１５に上書きしてから保存する。このようにログとバックアップデータをあらかじめマージして保存しておけば、リストア時に、バックアップ媒体１５のみを参照すればよく、複数の媒体を参照する必要がなくなる。したがって、リストアが効率化される。
【００７３】
図１５は、（ａ．６）のログ管理を示している。図１５において、ログ管理部２６は、ログ管理ファイル３４を参照しながら、ログ媒体１４の複数のログを、それぞれ、バックアップ媒体１５の対応する領域に上書きして、ログとバックアップデータをマージする。その後、テープ制御部２７により、バックアップ媒体１５のデータがテープ１６に保存される。
【００７４】
また、（ａ．７）のログ管理では、ログ管理部２６は、バックアップ時に、ＢＩログのデータとともに、ログの上書き先のバックアップデータのアドレス情報を記録しておく。本来、ログの管理情報であるログ管理ファイルを参照しないとログにはアクセスできないが、ログの中に管理情報を書いておけば、ログを読むだけでログをバックアップデータに上書きすることができる。したがって、ログの管理情報を参照しなくても、ログを解消することが可能になり、ログ管理が効率化される。
【００７５】
図１６は、このようなログ媒体のデータ形式を示している。図１６において、元アドレスと長さは、それぞれ、対応する上書き先の領域のオフセットとサイズを表し、これらはログの管理情報に相当する。
【００７６】
次に、図１７から図２７までを参照しながら、上述した特徴（ａ．８）〜（ａ．１２）および（ｂ．１）〜（ｂ．５）に関する動作を詳細に説明する。
図１７は、（ａ．８）および（ａ．９）のブロック管理と、（ｂ．１）〜（ｂ．５）のグループ管理を示している。使用済みブロックリスト４１は、（ａ．８）のブロック管理で用いられ、変更ブロックリスト４２は、（ａ．９）のブロック管理で用いられる。また、グループブロックリスト４３およびグループ変更ブロックリスト４４は、（ｂ．１）〜（ｂ．５）のグループ管理で用いられる。
【００７７】
（ａ．８）のブロック管理では、ブロック管理部２２は、ディスク１３上のファイルに割当て済みのブロックを、使用済みブロックリスト４１に記録して管理する。そして、ブロック管理部２２は、使用済みブロックリスト４１に記録されたブロックをコピー管理部２５に通知し、コピー管理部２５は、通知されたブロックのみをコピーする。このように、バックアップデータとして必要なブロックのみをコピーすることで、コピー時間が短縮され、必要な媒体容量が削減される。
【００７８】
使用済みブロックリスト４１は、例えば、図１８に示すような空き領域管理表から生成される。図１８の空き領域管理表は、ブロック管理部２２により管理され、ディスク１３のすべてのブロックのブロック識別情報（ブロック番号）と、各ブロックが使用中か否かを示すフラグ情報を有する。ここでは、フラグ“○”が空きブロックを表し、フラグ“×”が使用中のブロックを表す。
【００７９】
ブロック管理部２２は、バックアップ時に、空き領域管理表から使用中のブロックのブロック番号をリストアップし、使用済みブロックリスト４１を生成する。例えば、図１８の空き領域管理表からは、図１９に示すような使用済みブロックリストが生成される。
【００８０】
また、（ａ．９）のブロック管理では、ブロック管理部２２は、ディスク１３上のブロックのうち前回のバックアップの後で変更のあったブロックを、変更ブロックリスト４２に記録して管理する。そして、ブロック管理部２２は、変更ブロックリスト４２に記録されたブロックを差分としてコピー管理部２５に通知し、コピー管理部２５は、通知されたブロックのみをコピーする。これにより、差分バックアップ（インクリメンタルバックアップ）が行われる。
【００８１】
例えば、ファイルｆがブロックｘ、ｙ、およびｚを使用しているとき、前回のバックアップの後で、ブロックｘに上書きが行われ、新たにブロックｕが追加されたとする。この場合、ブロックｘおよびｕが変更ブロックリスト４２に記録され、バックアップ時には、これらのブロックの内容がコピーされる。
【００８２】
ディスク１３上のすべてのブロックのバックアップ（全体バックアップ）を行う代わりに、このような差分バックアップを行うことで、コピー時間が短縮され、必要な媒体容量が削減される。
【００８３】
図２０は、ブロック管理部２２による変更ブロックリスト更新処理のフローチャートである。この処理では、ファイルへの書き込み要求から変更のあったブロックが判定され、そのブロックが変更ブロックリスト４２に追加される。
【００８４】
まず、ブロック管理部２２は、計算機１１からファイルへの書き込み要求を受け取る（ステップＳ７１）。書き込み要求には、ファイル名と書き込み領域のオフセットａおよびサイズＳが含まれている。次に、対応するファイルのａ〜ａ＋Ｓの範囲に割当てられているブロックのブロック番号を求め（ステップＳ７２）、そのブロック番号を変更ブロックリスト４２に追加する（ステップＳ７３）。そして、要求されたブロックにアクセスして、書き込みのための処理を行い（ステップＳ７４）、処理を終了する。
【００８５】
また、（ｂ．１）のグループ管理では、グループ管理部２３は、ブロック管理部２２と連携しながらファイルをグループ毎に管理し、各グループに属するファイルが使用しているブロックを、グループブロックリスト４３に記録して管理する。そして、グループ管理部２３は、特定のグループのグループブロックリスト４３に記録されたブロックをコピー管理部２５に通知し、コピー管理部２５は、通知されたブロックのみをコピーする。これにより、特定のグループに関するバックアップが行われる。
【００８６】
また、（ｂ．２）のグループ管理では、グループ管理部２３は、ディレクトリを単位としてファイルをグループ化し、ディレクトリに含まれるすべてのファイルをグループとして設定する。
【００８７】
また、（ｂ．３）のグループ管理では、グループ管理部２３は、グループとして設定されたディレクトリの下の特定のファイルまたはディレクトリを、グループから除外する。これにより、あるグループとして設定されたディレクトリに含まれる特定のファイルを、グループから除外することができる。
【００８８】
以上説明した（ｂ．１）〜（ｂ．３）のグループ管理により、ユーザが任意のファイルをグループ化し、グループ単位でファイルのバックアップを行うことが可能になる。
【００８９】
このようなグループ管理の例として、ファイルシステム上に、図２１に示すようなディレクトリツリーが存在する場合を考える。図２１において、Ａ、Ｂ、Ｃ、およびＤはディレクトリ名を表し、ａ、ｂ、ｃ、ｄ、ｅ、およびｆはファイル名を表す。ユーザは、任意のディレクトリ名およびファイル名を用いて、ファイルのグループを設定することができる。
【００９０】
ここで、ユーザが、図２２に示すようなグループリストを入力して、グループの設定を指示したとする。図２の“ｄｉｒ＿Ａ／＊”および“ｄｉｒ＿Ｃ／＊”は、ディレクトリＡおよびＣのすべてのファイルをグループに含めることを表し、“Ｘ  ｄｉｒ＿Ｄ／ｆｉｌｅ＿ｄ”は、ディレクトリＤのファイルｄをグループから除くことを表す。
【００９１】
このとき、グループ管理部２３は、ディレクトリＡおよびＣに属するすべてのファイルのうち、ファイルｄを除いた残りのファイルａ、ｂ、ｃ、ｅ、およびｆをグループとして選択する。そして、各ファイルに割当てられたブロックのブロック番号をブロック管理部２２から取得し、グループブロックリスト４３に記録する。
【００９２】
図２３は、別のディレクトリツリーに関するグループリストの例を示している。このグループリストは、ディレクトリＸのファイルａ、ディレクトリＹのファイルｂ、およびディレクトリＺのすべてのファイルをグループに含め、ディレクトリＺのファイルｃをグループから除くことを表している。
【００９３】
このブロックリストからは、例えば、図２４に示すようなグループブロックリストが生成される。図２４において、“ｂｌｏｃｋｎｏ”はブロック番号を表し、複数の連続するブロック番号は１まとまりにして記録されている。
【００９４】
バックアップ時には、ファイルに関するメタ情報と、グループブロックリスト４３に記録されたブロック番号と、対応するブロックのデータがバックアップ媒体にコピーされる。メタ情報としては、ディレクトリツリーに含まれるすべてのファイルのファイル名と属性か、または、グループに属するファイルのファイル名と属性が用いられる。
【００９５】
また、リストア時にファイルが参照されると、ブロック管理部２２は、そのファイル名から対応するブロック番号を求め、そのブロックのバックアップデータにアクセスする。
【００９６】
このとき、メタ情報としてすべてのファイルの情報が記録されていると、計算機１１には、図２１のファイルｄのように、グループに属さないファイルのファイル名も見えることになる。しかし、ファイルｄのブロックのバックアップデータは存在しないため、このファイルを参照するとエラーが返される。これに対して、メタ情報としてグループに属するファイルの情報のみを記録しておけば、計算機１１には、グループに属さないファイルのファイル名は見えないので、見えているすべてのファイルの参照が可能になる。
【００９７】
さらに、グループ管理部２３は、前回のバックアップの後で変更のあったブロックを、グループ単位でグループ変更ブロックリスト４４に記録して管理する。そして、グループ管理部２３は、グループ変更ブロックリスト４４に記録されたブロックを差分としてコピー管理部２５に通知し、コピー管理部２５は、通知されたブロックのみをコピーする。これにより、グループ単位で差分バックアップが行われる。
【００９８】
図１９および図２４のブロックリストでは、ブロック番号が明示的に記録されているが、代わりに元アドレスと長さを用いて連続する複数のブロックの集合を記録してもよい。他のブロックリストについても同様である。
【００９９】
また、（ｂ．４）のグループ管理では、グループ管理部２３は、複数のグループを設定し、それぞれ別のスケジュールでバックアップを行う。また、（ｂ．５）のグループ管理では、グループ管理部２３は、１つのファイルが複数のグループに属することを認めるようなグループ化を行う。これにより、柔軟なグループ設定とバックアップが可能になる。
【０１００】
図１７のディスク１３の斜線部分は、上述した様々なブロックリストのうちの１つに記録されたブロックの集合を表しており、これらのブロックのデータは、コピー管理部２５により、バックアップ媒体１５の斜線部分にコピーされる。
【０１０１】
このような方法によれば、あらかじめ生成されたブロックリストに基づいてバックアップが行われるため、異なるファイルのブロックを含む複数のブロックを一括してコピーすることができる。したがって、ファイル単位でコピーする場合に比べて、ディスク１３へのアクセス回数が大幅に削減され、ランダムアクセスに近い状況は発生しにくくなる。
【０１０２】
また、（ａ．１０）のブロック管理では、差分バックアップを行った後、リストアの前に、差分バックアップデータ同士、または差分バックアップデータと全体バックアップデータの内容を、ブロック単位でマージする。さらに、全体バックアップデータと差分バックアップデータを含む２つ以上のバックアップデータをマージしておいてもよい。差分バックアップデータをあらかじめまとめておくことで、リストアが効率化される。
【０１０３】
図２５は、このようなマージ処理の例を示している。図２５において、全体バックアップデータ５１は、最初の世代Ｇ３のバックアップデータを表し、差分バックアップデータ５２、５３は、それぞれ、世代Ｇ２、Ｇ１における差分を表す。この場合、世代Ｇ３が最も古く、世代Ｇ１が最も新しい。斜線部分は、バックアップデータが存在する領域を表している。
【０１０４】
ここで、全体バックアップデータ５１と差分バックアップデータ５２をマージすると、バックアップデータ５４が生成される。ただし、同一領域においては、より新しいデータが優先的に保存される。この場合、リストア時には、バックアップデータ５４と差分バックアップデータ５３のみを用いて、データが参照される。
【０１０５】
また、差分バックアップデータ５２と差分バックアップデータ５３をマージすると、バックアップデータ５５が生成される。この場合、リストア時には、バックアップデータ５５と全体バックアップデータ５１のみを用いて、データが参照される。
【０１０６】
また、（ａ．１１）のブロック管理では、差分バックアップを行う際に、ユーザが差分の基準となる時点を選択し、ブロック管理部２２は、指定された時点以後に変更のあったブロックのみを、変更ブロックリスト４２に記録する。そして、コピー管理部２５は、それらのブロックのみをコピーする。
【０１０７】
これにより、必要に応じて差分バックアップの開始時点を変更することができ、前回のバックアップが行われた時点と選択された時点の間に発生した変更は、バックアップ媒体１５には保存されない。したがって、リストアに反映させる変更を取捨選択することが可能になる。
【０１０８】
図２６は、差分バックアップの開始時点を変更する例を示している。ここでは、時刻ｔ０において前回の差分バックアップが行われ、時刻ｔ０とｔ１の間にブロックｘおよびｙが変更ブロックリスト４２に追加され、時刻ｔ１とｔ２の間にブロックｚが変更ブロックリスト４２に追加されるものとする。ユーザが差分バックアップの開始時点を変更しなければ、時刻ｔ２において、変更ブロックリスト４２には、ブロックｘ、ｙ、およびｚが時刻ｔ０からの差分として記録されている。
【０１０９】
しかし、ユーザが時刻ｔ１を差分バックアップの開始時点として指定すると、ブロック管理部２２は、時刻ｔ１において、変更ブロックリスト４２を一旦クリアして、ブロックｘおよびｙのブロック番号を消去する。その後、ブロックｚが変更ブロックリスト４２に追加され、時刻ｔ２においては、ブロックｚのみが時刻ｔ１からの差分として記録される。そして、次のバックアップ時には、時刻ｔ１からの差分に基づいて、差分バックアップが行われる。
【０１１０】
また、（ａ．１２）のコピー管理では、クラスタ内に複数のディスク１３が存在する場合、コピー管理部２５は、各計算機１１にいずれかのディスク１３のコピーを指示し、クラスタ内でコピーを行う計算機１１を分散させる。そして、各計算機１１は、コピー管理部２５から指示されたディスク１３のコピーを行う。このように、複数の計算機１１がコピーを行うことで、バックアップの負荷が分散され、コピー時間が短縮される。
【０１１１】
図２７は、このようなコピー管理の例を示している。図２７のクラスタ内には、複数のバックアップ媒体１５が設けられている。コピー管理部２５は、コピー対象のディスク１３とコピー先のバックアップ媒体１５のデバイス名を各計算機１１に通知し、コピー作業を依頼する。コピー作業を依頼された計算機１１は、通知されたデバイス名のディスク１３のデータを、通知されたデバイス名のバックアップ媒体１５にコピーする。このとき、複数の計算機１１により、コピー作業が並列に行われる。
【０１１２】
次に、図２８から図３５までを参照しながら、上述した特徴（ｃ．１）〜（ｃ．５）に関するリストア時の動作を詳細に説明する。
（ｃ．１）の動作では、ファイルシステムが、ディスク１３の代わりにバックアップ媒体１５をそのままマウントすることで、データをリストアする。これにより、各計算機１１は、バックアップ媒体１５に保存されたバックアップデータに直接アクセスできるようになり、リストアのための特別な操作が不要になる。
【０１１３】
図２８は、ブロック管理部２２がバックアップ媒体１５をファイルシステム上にマウントする処理を示している。図２８において、ディスク１３のデータ（斜線部分）がバックアップ媒体１５にコピーされた後、計算機１１からディスク１３の参照要求を受け取ると、ブロック管理部２２は、バックアップ媒体１５上の対応するデータを計算機１１に返す。
【０１１４】
図２９は、このような参照処理のフローチャートである。ブロック管理部２２は、まず、計算機１１からファイルの読み込み要求を受け取る（ステップＳ８１）。読み込み要求には、ファイル名と読み込み領域のオフセットａおよびサイズＳが含まれている。次に、バックアップ媒体１５のメタ情報を参照し（ステップＳ８２）、対応するファイルのａ〜ａ＋Ｓの範囲に割当てられているブロックの番号＃ｘを求める（ステップＳ８３）。
【０１１５】
次に、そのブロック番号＃ｘのデータが保存されているバックアップ媒体１５上のブロックの番号＃ｙを求め（ステップＳ８４）、そのブロックのデータを読んで（ステップＳ８５）、読み込み要求に応答し（ステップＳ８６）、処理を終了する。
【０１１６】
また、（ｃ．２）の動作では、差分バックアップのリストア時に、必要に応じて、複数の差分バックアップデータを最新のものから順に探索しながら遡る。差分バックアップの場合、複数の世代のバックアップデータのうちのいずれかに必要なデータが保存されているため、それらのバックアップデータを探索することで、すべてのデータを計算機１１に提示することができる。
【０１１７】
図３０は、このような世代管理を示している。図３０において、各世代のバックアップデータは、それぞれ異なるバックアップ媒体１５に保存されている。ブロック管理情報６１は、ファイル名と、ディスク１３のデバイス名およびブロック番号とをマッピングしている。また、ブロック管理情報６２は、バックアップデータの世代毎に設けられ、ディスク１３のデバイス名およびブロック番号と、バックアップ媒体１５の識別情報およびブロック番号とをマッピングしている。
【０１１８】
計算機１１からファイルのアクセス要求を受け取ると、ブロック管理部２２は、ブロック管理情報６１を参照して、ファイル名に対応するデバイス名とブロック番号を取得し、それらを媒体制御部２４に渡す。
【０１１９】
媒体制御部２４は、各世代のバックアップデータを生成順に管理し、最も新しい世代Ｇ１のブロック管理情報６２を参照して、与えられたデバイス名とブロック番号（ブロック情報）があるか否かをチェックする。与えられたブロック情報がある場合は、それに対応するバックアップ媒体１５のブロック番号を取得し、世代Ｇ１のバックアップ媒体１５を参照する。与えられたブロック情報がない場合は、それより１つ前の世代Ｇ２のブロック管理情報６２を参照し、そのブロック情報があるか否かをチェックする。
【０１２０】
このような処理を繰り返しながら、世代を１つずつ遡っていけば、いずれかの世代のバックアップ媒体１５において、与えられたブロック情報に対応するデータを参照することができる。このように、差分バックアップが行われた場合でも、過去のバックアップデータを利用して、すべてのデータをユーザに見せることが可能になる。
【０１２１】
図３１は、差分バックアップのリストアの例を示している。図３１において、全体バックアップデータ７１は、最初の世代Ｇ３のバックアップデータを表し、差分バックアップデータ７２、７３は、それぞれ、世代Ｇ２、Ｇ１における差分を表す。斜線部分は、バックアップデータが存在するブロックを表している。例えば、差分バックアップデータ７２においては、ブロック８１、８２が変更されたデータに対応し、ブロック８３が新たに追加されたデータに対応する。
【０１２２】
リストア時に、ブロック９３、９４のデータが要求されると、世代Ｇ１の差分バックアップデータ７３の対応するブロックが参照され、ブロック９２、９７のデータが要求されると、世代Ｇ２まで遡って、差分バックアップデータ７２の対応するブロックが参照される。また、ブロック９１、９５、９６のデータが要求されると、世代Ｇ３まで遡って、全体バックアップデータ７１の対応するブロックが参照される。
【０１２３】
さらに、図２５に示したようなマージ処理が行われた場合は、マージされた２つのバックアップデータの代わりに、マージにより生成されたバックアップデータを用いて、同様のリストア動作が行われる。
【０１２４】
また、（ｃ．３）および（ｃ．４）の動作では、バックアップデータがテープ１６に保存されている場合、バックアップ媒体１５を、クラスタ内のすべての計算機１１からアクセス可能なバッファとして用いる。そして、計算機１１がバックアップデータを参照したとき、必要なブロックのみをバックアップ媒体１５にロードし、それらのブロックをキャッシュとして利用する。これにより、必要なデータのみをバックアップ媒体１５上に配置することができ、頻繁にアクセスされるデータへのアクセス効率が向上する。
【０１２５】
図３２は、バックアップ媒体１５をバッファとして利用する処理を示している。ここでは、図２の構成では計算機１２のみがテープ１６に接続されているので、この計算機１２のテープ制御部２７が、テープ１６から必要なブロックのデータを読み出して、バックアップ媒体１５上に配置する。バックアップ媒体１５としては、例えば、ディスクが用いられる。こうしてバックアップ媒体１５にロードされたデータを参照することで、テープ１６に接続されていない計算機１１でも、テープ１６に保存されたバックアップデータを読むことが可能になる。
【０１２６】
図３３は、バックアップデータの参照処理のフローチャートである。図３２のステップＳ９１〜Ｓ９３の処理は、図２９のステップＳ８１〜Ｓ８３の処理と同様である。次に、ブロック管理部２２は、ステップＳ９３で得られたブロック番号＃ｘのデータが保存されているテープ１６上のブロックの番号＃ｙを求め（ステップＳ９４）、そのブロックのキャッシュがバックアップ媒体１５上にあるか否かをチェックする（ステップＳ９５）。
【０１２７】
キャッシュがバックアップ媒体１５上になければ、テープ制御部２７が、そのブロックのデータをテープ１６から読んで、バックアップ媒体１５上の空いているブロック＃ｚに書き込む（ステップＳ９６）。そして、ブロック管理部２２は、書き込まれたデータを用いて読み込み要求に応答し（ステップＳ９７）、処理を終了する。また、キャッシュがバックアップ媒体１５上にあれば、ブロック管理部２２は、そのデータを用いて読み込み要求に応答し（ステップＳ９７）、処理を終了する。
【０１２８】
また、（ｃ．５）の動作では、ログ媒体１４のＢＩログがバックアップ媒体１５のバックアップデータに上書きされておらず、ログとバックアップデータが別々に保存されている場合、ログを先に参照し、必要に応じて、バックアップデータを後で参照する。リストア時にログを参照することで、バックアップ開始時点のイメージが再現され、データの矛盾が生じることがなくなる。
【０１２９】
図３４は、ログ媒体１４のログを参照する処理を示している。計算機１１からアクセス要求を受け取ると、ブロック管理部２２は、ログ管理部２６にログの存在と内容を確認して、要求されたデータのログがあれば、ログ媒体１４を参照し、ログがなければ、バックアップ媒体１５を参照する。
【０１３０】
図３５は、このような参照処理のフローチャートである。図３５のステップＳ１０１〜Ｓ１０３の処理は、図２９のステップＳ８１〜Ｓ８３の処理と同様である。次に、ブロック管理部２２は、ステップＳ１０３で得られたブロック番号＃ｘのログがあるか否かをログ管理部２６に問い合わせ（ステップＳ１０４）、回答をチェックする（ステップＳ１０５）。
【０１３１】
問い合せたブロックのログがあれば、ログ媒体１４上のそのログを読み、そのようなログがなければ、対応するバックアップ媒体１５上のブロックの番号＃ｙを求めて、そのブロックのバックアップデータを読む（ステップＳ１０７）。そして、読み込み要求に応答し（ステップＳ１０８）、処理を終了する。
【０１３２】
ところで、図２のクラスタシステムでは、キャッシュ制御部２１、ブロック管理部２２、グループ管理部２３、媒体制御部２４、コピー管理部２５、ログ管理部２６、およびテープ制御部２７を、管理用の計算機１２に設けているが、これらの制御部および管理部の一部または全部を、複数の計算機１１に分散して設けてもよい。
【０１３３】
図３６は、このようなクラスタシステムにおけるバックアップ動作を示している。図３６においては、コピー管理部２５、ログ管理部２６、およびテープ制御部２７が計算機１１に分散して設けられ、コピー管理部２５を有する計算機１１が、ディスク１３の内容をバックアップ媒体１５にコピーする。
【０１３４】
各計算機１１は、このコピーの最中に発生するＢＩログを、ログ管理部２６を有する計算機１１に転送し、この計算機１１がログを編集してログ媒体１４に書く。そして、バックアップデータとログは、それぞれ、テープ制御部２７を有する計算機１１により、テープ１６に書かれる。
【０１３５】
図３７は、図３６のクラスタシステムにおけるリストア動作を示している。図３７においては、テープ制御部２７を有する計算機１１が、他の計算機１１からの読み込み要求を受け取り、必要なバックアップデータとログを別々にテープ１６から読んで、それぞれ、バックアップ媒体１５とログ媒体１４上に展開する。
【０１３６】
展開が済むと、読み込みを要求した計算機１１は、ログがあれば、ログ媒体１４からログを読む。ログがなければ、ブロック管理部２２からファイル名に対応するブロック番号を受け取り、バックアップ媒体１５からバックアップデータを読む。
【０１３７】
ただし、テープ制御部２７を有する計算機１１自身が読み込みを要求する場合は、バックアップデータとログをバックアップ媒体１５とログ媒体１４上に展開する必要はない。
【０１３８】
図３８は、図３６のクラスタシステムにおいて、バックアップデータをテープ１６に書く前にログの上書きを行う場合を示している。図３８においては、バックアップデータとログが確定した段階で、ログ管理部２６は、ログ媒体１４のログを、バックアップ媒体１５のバックアップデータに上書きする。上書きが済むと、テープ制御部２７は、上書きされたバックアップデータをテープ１６に書く。
【０１３９】
図３９は、図３８のクラスタシステムにおけるリストア動作を示している。図３９においては、テープ制御部２７は、ログが上書きされたバックアップデータをテープ１６から読んで、バックアップ媒体１５上に展開する。そして、読み込みを要求した計算機１１は、バックアップ媒体１５から必要なデータを読む。ただし、テープ制御部２７を有する計算機１１自身が読み込みを要求する場合は、データをバックアップ媒体１５上に展開する必要はない。
【０１４０】
図２の計算機１１、１２は、例えば、図４０に示すような情報処理装置を用いて構成することができる。図４０の情報処理装置は、ＣＰＵ（中央処理装置）１１１、メモリ１１２、入力装置１１３、出力装置１１４、外部記憶装置１１５、媒体駆動装置１１６、およびネットワーク接続装置１１７を備え、それらはバス１１８により互いに接続されている。
【０１４１】
メモリ１１２は、例えば、ＲＯＭ（read only memory）、ＲＡＭ（random access memory）等を含み、処理に用いられるプログラムとデータを格納する。ＣＰＵ１１１は、メモリ１１２を利用してプログラムを実行することにより、必要な処理を行う。
【０１４２】
図２のキャッシュ制御部２１、ブロック管理部２２、グループ管理部２３、媒体制御部２４、コピー管理部２５、ログ管理部２６、およびテープ制御部２７は、例えば、プログラムにより記述されたソフトウェアコンポーネントとしてメモリ１１２に格納される。
【０１４３】
入力装置１１３は、例えば、キーボード、ポインティングデバイス、タッチパネル等であり、ユーザからの指示や情報の入力に用いられる。出力装置１１４は、例えば、ディスプレイ、プリンタ、スピーカ等であり、ユーザへの問い合わせや処理結果の出力に用いられる。
【０１４４】
外部記憶装置１１５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク（magneto-optical disk）装置、テープ装置等である。情報処理装置は、この外部記憶装置１１５に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ１１２にロードして使用する。また、外部記憶装置１１５は、共有ディスク１３、ログ媒体１４、バックアップ媒体１５、テープ１６等として用いられる。
【０１４５】
媒体駆動装置１１６は、可搬記録媒体１１９を駆動し、その記録内容にアクセスする。可搬記録媒体１１９としては、メモリカード、フロッピーディスク、ＣＤ−ＲＯＭ（compact disk read only memory ）、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。ユーザは、この可搬記録媒体１１９に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ１１２にロードして使用する。
【０１４６】
ネットワーク接続装置１１７は、計算機間を結ぶ通信ネットワークへの接続に用いられ、通信に伴うデータ変換を行う。情報処理装置は、上述のプログラムとデータをネットワーク接続装置１１７を介して他の装置から受け取り、必要に応じて、それらをメモリ１１２にロードして使用する。
【０１４７】
図４１は、図４０の情報処理装置にプログラムとデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体１１９や外部のデータベース１２０に保存されたプログラムとデータは、メモリ１１２にロードされる。そして、ＣＰＵ１１１は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
【０１４８】
【発明の効果】
本発明によれば、クラスタシステムのような、ディスク共用ファイルシステムを有する計算機システムにおいて、システムの稼働中にデータを効率的にバックアップすることができる。また、リストア時に、バックアップデータを効率的に参照することができる。
【図面の簡単な説明】
【図１】本発明のバックアップシステムの原理図である。
【図２】クラスタシステムの構成図である。
【図３】キャッシュ制御処理のフローチャートである。
【図４】第１のログ管理を示す図である。
【図５】ログ編集処理のフローチャートである。
【図６】第２のログ管理を示す図である。
【図７】第１のログ記録処理のフローチャートである。
【図８】第３のログ管理を示す図である。
【図９】第２のログ記録処理のフローチャートである。
【図１０】ログ管理ファイルを示す図である。
【図１１】第１のコピー処理のフローチャートである。
【図１２】第４のログ管理を示す図である。
【図１３】第３のログ記録処理のフローチャートである。
【図１４】第２のコピー処理のフローチャートである。
【図１５】第５のログ管理を示す図である。
【図１６】ログ媒体のデータ形式を示す図である。
【図１７】ブロック管理とグループ管理を示す図である。
【図１８】空き領域管理表を示す図である。
【図１９】使用済みブロックリストを示す図である。
【図２０】変更ブロックリスト更新処理のフローチャートである。
【図２１】ディレクトリツリーを示す図である。
【図２２】第１のグループリストを示す図である。
【図２３】第２のグループリストを示す図である。
【図２４】グループブロックリストを示す図である。
【図２５】差分バックアップデータのマージを示す図である。
【図２６】差分バックアップ開始時点の変更を示す図である。
【図２７】コピー管理を示す図である。
【図２８】バックアップ媒体のマウントを示す図である。
【図２９】第１の参照処理のフローチャートである。
【図３０】世代管理を示す図である。
【図３１】差分バックアップのリストアを示す図である。
【図３２】バッファとしてのバックアップ媒体を示す図である。
【図３３】第２の参照処理のフローチャートである。
【図３４】ログの参照を示す図である。
【図３５】第３の参照処理のフローチャートである。
【図３６】第１のバックアップを示す図である。
【図３７】第１のリストアを示す図である。
【図３８】第２のバックアップを示す図である。
【図３９】第２のリストアを示す図である。
【図４０】情報処理装置の構成図である。
【図４１】記録媒体を示す図である。
【符号の説明】
１  コピー手段
２  制御手段
３、１１、１２  計算機
４  共有媒体
５、１５  バックアップ媒体
６  ログ管理手段
７  生成手段
８  グループ管理手段
９  領域管理手段
１３  共有ディスク
１４  ログ媒体
１６  テープ
２１  キャッシュ制御部
２２  ブロック管理部
２３  グループ管理部
２４  媒体制御部
２５  コピー管理部
２６  ログ管理部
２７  テープ制御部
２８  キャッシュ
３１  一時ログ媒体
３２、３４  ログ管理ファイル
３３  クロック部
４１  使用済みブロックリスト
４２  変更ブロックリスト
４３  グループブロックリスト
４４  グループ変更ブロックリスト
５１、７１  全体バックアップデータ
５２、５３、７２、７３  差分バックアップデータ
５４、５５  バックアップデータ
６１、６２  ブロック管理情報
８１、８２、８３、９１、９２、９３、９４、９５、９６、９７  ブロック
１０１  アクセス要求
１１１  ＣＰＵ
１１２  メモリ
１１３  入力装置
１１４  出力装置
１１５  外部記憶装置
１１６  媒体駆動装置
１１７  ネットワーク接続装置
１１８  バス
１１９  可搬記録媒体
１２０  データベース
【図１】
0004127461.tif 000002
【図２】
0004127461.tif 000003
【図３】
0004127461.tif 000004
【図４】
0004127461.tif 000005
【図５】
0004127461.tif 000006
【図６】
0004127461.tif 000007
【図７】
0004127461.tif 000008
【図８】
0004127461.tif 000009
【図９】
0004127461.tif 000010
【図１０】
0004127461.tif 000011
【図１１】
0004127461.tif 000012
【図１２】
0004127461.tif 000013
【図１３】
0004127461.tif 000014
【図１４】
0004127461.tif 000015
【図１５】
0004127461.tif 000016
【図１６】
0004127461.tif 000017
【図１７】
0004127461.tif 000018
【図１８】
0004127461.tif 000019
【図１９】
0004127461.tif 000020
【図２０】
0004127461.tif 000021
【図２１】
0004127461.tif 000022
【図２２】
0004127461.tif 000023
【図２３】
0004127461.tif 000024
【図２４】
0004127461.tif 000025
【図２５】
0004127461.tif 000026
【図２６】
0004127461.tif 000027
【図２７】
0004127461.tif 000028
【図２８】
0004127461.tif 000029
【図２９】
0004127461.tif 000030
【図３０】
0004127461.tif 000031
【図３１】
0004127461.tif 000032
【図３２】
0004127461.tif 000033
【図３３】
0004127461.tif 000034
【図３４】
0004127461.tif 000035
【図３５】
0004127461.tif 000036
【図３６】
0004127461.tif 000037
【図３７】
0004127461.tif 000038
【図３８】
0004127461.tif 000039
【図３９】
0004127461.tif 000040
【図４０】
0004127461.tif 000041
【図４１】
0004127461.tif 000042