(57)【要約】  計算機システムであって、サーバと、第１の記憶装置と、第２の記憶装置とを備え、前記第１の記憶装置は、重複排除データ、前記複数の重複排除データに共有される共有データ、及び、前記重複排除データ及び前記共有データを含む格納されたデータの種別を表す第１の種別データを格納し、前記重複排除データは、前記共有データと関連付けられ、前記共有データとの差を示す差分データを含み、前記サーバは、前記第２の記憶装置へ格納されたデータの種類を表す第２の種別データを、前記第１の種別データから生成し、前記第２の記憶装置は、シーケンシャルリードを行う場合に、前記重複排除データが読み出される位置より前の読み出し位置に、当該重複排除データに関連付けられた共有データを格納し、前記第２の種別データを格納する。【選択図】図６
2015527620.tif 000002
【特許請求の範囲】
【請求項１】
計算機システムであって、
クライアント計算機へデータを提供するサーバと、
前記クライアント計算機に提供するデータを格納する第１の記憶装置と、
前記第１の記憶装置へ格納されたデータをバックアップする第２の記憶装置と、を備え、
前記サーバは、プログラムを実行するプロセッサと、前記プロセッサで実行されるプログラムを格納するメモリと、を有し、
前記第１の記憶装置は、一部又は全部のデータを他のデータと共有する重複排除データ、前記複数の重複排除データに共有される共有データ、及び、前記重複排除データ及び前記共有データを含む格納されたデータの種別を表す第１の種別データを格納し、
前記重複排除データは、前記共有データへのポインタによって、前記共有データと関連付けられ、前記共有データとの差を示す差分データを含み、
前記サーバは、前記第２の記憶装置へ格納されるデータの種類を表す第２の種別データを、前記第１の種別データから生成し、
前記第２の記憶装置は、シーケンシャルリードを行う場合に、前記重複排除データが読み出される位置より前の読み出し位置に、当該重複排除データに関連付けられた共有データを格納し、前記生成された第２の種別データを格納することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記第２の記憶装置は、バックアップ対象に含まれる複数の前記共有データを格納し、前記複数の共有データが格納された読み出し位置より後に、前記複数の共有データに関連付けられる複数の重複排除データを格納することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記サーバは、前記第１の種別データを参照して、前記第２の記憶装置に格納される前記共有データを抽出することを特徴とする計算機システム。
【請求項４】
請求項１に記載の計算機システムであって、
前記サーバは、
前記第１の種別データを参照し、前記第２の記憶装置へバックアップされるデータが重複排除データであるかを判定し、
当該データが重複排除データである場合、当該重複排除データに関連付けられる共有データが、前記第２の記憶装置へ格納されているかを判定し、
前記第２の記憶装置は、前記共有データが前記第２の記憶装置へ格納されていない場合、当該共有データを格納した後、当該共有データの格納位置より後の読み出し位置に当該重複排除データを格納することを特徴とする計算機システム。
【請求項５】
請求項１に記載の計算機システムであって、
前記サーバは、
前記第２の記憶装置に格納されたデータのシーケンシャルリードを実行し、
前記読み出された第２の種別データを参照して、前記第１の記憶装置へ格納するデータの種別を判定し、
前記第１の記憶装置へ格納されるデータが重複排除データである場合、前記重複排除データが関連付けられる共有データとの関連付けの情報を前記第２の記憶装置から取得し、
前記取得した関連付けの情報から前記共有データへのポインタを生成し、
前記第２の記憶装置から読み出したデータから前記重複排除データの差分データを生成し、
前記第１の記憶装置は、前記生成した差分データを格納することを特徴とする計算機システム。
【請求項６】
クライアント計算機へデータを提供するサーバであって、
プログラムを実行するプロセッサと、
前記プロセッサで実行されるプログラムを格納するメモリと、を備え、
前記クライアント計算機に提供するデータを格納する第１の記憶装置及び前記第１の記憶装置へ格納されたデータをバックアップする第２の記憶装置と接続され、
前記第１の記憶装置は、
一部又は全部のデータを他のデータと共有する重複排除データ、前記複数の重複排除データに共有される共有データ、及び、前記重複排除データ及び前記共有データを含む格納されたデータの種別を表す第１の種別データを格納し、
前記重複排除データは、前記共有データへのポインタによって、前記共有データと関連付けられ、前記共有データとの差を示す差分データを含み、
前記サーバは、
前記第２の記憶装置へ格納されたデータの種類を表す第２の種別データを、前記第１の種別データから生成し、
シーケンシャルリードを行う場合に、前記重複排除データが読み出される位置より前の読み出し位置に、当該重複排除データに関連付けられた共有データを前記第２の記憶装置へ格納し、
前記生成された第２の種別データを第２の記憶装置へ格納することを特徴とするサーバ。
【請求項７】
請求項６に記載のサーバであって、
バックアップ対象に含まれる複数の前記共有データを前記第２の記憶装置へ格納し、前記複数の共有データが格納された読み出し位置より後に、前記複数の共有データに関連付けられる複数の重複排除データを前記第２の記憶装置へ格納することを特徴とするサーバ。
【請求項８】
請求項７に記載のサーバであって、
前記第１の種別データを参照して、前記共有データを抽出することを特徴とするサーバ。
【請求項９】
請求項６に記載のサーバであって、
前記第１の種別データを参照し、前記第２の記憶装置へバックアップされるデータが重複排除データであるかを判定し、
当該データが重複排除データである場合、当該重複排除データに関連付けられる共有データが、前記第２の記憶装置へ格納されているかを判定し、
前記共有データが前記第２の記憶装置へ格納されていない場合、当該共有データを前記第２の記憶装置へ格納した後、当該共有データの格納位置より後の読み出し位置に当該重複排除データを前記第２の記憶装置へ格納することを特徴とするサーバ。
【請求項１０】
請求項６に記載のサーバであって、
請求項６に記載のサーバであって、
前記第２の記憶装置に格納されたデータのシーケンシャルリードを実行し、
前記読み出された第２の種別データを参照して、前記第１の記憶装置へ格納するデータの種別を判定し、
前記第１の記憶装置へ格納されるデータが重複排除データである場合、前記重複排除データが関連付けられる共有データとの関連付けの情報を前記第２の記憶装置から取得し、
前記取得した関連付けの情報から前記共有データへのポインタを生成し、
前記第２の記憶装置から読み出したデータから前記重複排除データの差分データを生成し、
前記生成した差分データを前記第１の記憶装置へ格納することを特徴とするサーバ。
【請求項１１】
計算機システムにおけるデータの管理方法であって、
前記計算機システムは、クライアント計算機へデータを提供するサーバと、前記クライアント計算機に提供するデータを格納する第１の記憶装置と、前記第１の記憶装置へ格納されたデータをバックアップする第２の記憶装置と、を有し、
前記サーバは、プログラムを実行するプロセッサと、前記プロセッサで実行されるプログラムを格納するメモリと、を有し、
前記第１の記憶装置は、
一部又は全部のデータを他のデータと共有する重複排除データ、前記複数の重複排除データに共有される共有データ、及び、前記重複排除データ及び前記共有データを含む格納されたデータの種別を表す第１の種別データを格納し、
前記重複排除データは、前記共有データへのポインタによって、前記共有データと関連付けられ、前記共有データとの差を示す差分データを含み、
前記方法は、
前記サーバが、前記第２の記憶装置へ格納されたデータの種類を表す第２の種別データを、前記第１の種別データから生成し、
前記第２の記憶装置が、
シーケンシャルリードを行う場合に、前記重複排除データが読み出される位置より前の読み出し位置に、当該重複排除データに関連付けられた共有データを格納し、
前記生成された第２の種別データを格納することを特徴とする方法。
【請求項１２】
請求項１１に記載の方法であって、
前記第２の記憶装置は、バックアップ対象に含まれる複数の前記共有データを格納し、前記複数の共有データが格納された読み出し位置より後に、前記複数の共有データに関連付けられる複数の重複排除データを格納することを特徴とする方法。
【請求項１３】
請求項１２に記載の方法であって、
前記サーバは、前記第１の種別データを参照して、前記共有データを抽出することを特徴とする方法。
【請求項１４】
請求項１１に記載の方法であって、
前記サーバは、前記第１の種別データを参照し、前記第２の記憶装置へバックアップされるデータが重複排除データであるかを判定し、
前記サーバは、当該データが重複排除データである場合、当該重複排除データに関連付けられる共有データが、前記第２の記憶装置へ格納されているかを判定し、
前記第２の記憶装置は、前記共有データが格納されていない場合、当該共有データを格納した後、当該共有データの格納位置より後の読み出し位置に当該重複排除データを格納することを特徴とする方法。
【請求項１５】
請求項１１に記載の方法であって、
前記第２の記憶装置に格納されたデータのシーケンシャルリードを実行し、
前記サーバは、前記読み出された第２の種別データを参照して、前記第１の記憶装置へ格納するデータの種別を判定し、
前記サーバは、前記第１の記憶装置へ格納されるデータが重複排除データである場合、前記重複排除データが関連付けられる共有データとの関連付けの情報を前記第２の記憶装置から取得し、
前記サーバは、前記取得した関連付けの情報から前記共有データへのポインタを生成し、
前記サーバは、前記第２の記憶装置から読み出したデータから前記重複排除データの差分データを生成し、
前記第１の記憶装置は、前記生成した差分データを格納することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージへ格納されるデータの管理方法に関する。
【背景技術】
【０００２】
近年、ファイルサーバへ保存されるデータ量が急増している。ファイルサーバのデータ保持コストを削減するため、ファイルサーバへ保存されたファイルデータ量を削減できるファイルレベル重複排除機能が注目されている。
【０００３】
ファイルレベル重複排除機能は、ファイルサーバのファイルシステムへ格納されたファイル群の中から重複データボディを持つ重複ファイル群を抽出し、データボディを一つだけ残してその他のデータボディを削除して参照情報へ置き換えることによって実現される。複数のファイルが一つのデータボディを共有することによって、ファイルシステムへ格納された冗長なデータボディを削除できる。このため、ファイルシステムへ格納されるデータ量を削減できる。
【０００４】
一方、ファイルサーバの障害対策や災害対策のため、これまでと同様に、ファイルレベル重複排除されたファイルシステムが管理するデータは、定期的にテープ装置へバックアップされる。このバックアップには、例えば、Network Data Management Protocolを用いることができる。
【０００５】
例えば、米国特許明細書第８２０４８６２号は、重複排除データを回復する方法を開示する。すなわち、該方法では、重複排除データのセット中の各データセグメントは、１以上の重複排除参照によって参照されており、重複排除データセグメントのセットをクライアントシステムにリストアする要求を受信することを含む。前記方法は、さらに、重複排除データのセット中の各データセグメント毎に、該データセグメントを指す重複排除参照の数を示す参照データを生成することを含む。前記方法は、さらに、クライアント側へキャッシュするために重複排除データのセットから１以上のデータセグメントを選択するために参照データを使うこと、クライアントシステムのキャッシュに１以上のデータセグメントをキャッシュすること、クライアントシステムのキャッシュから１以上のデータセグメントをリストアすること、を含む。
【０００６】
また、米国特許明細書第８２００９２６号は、フルバックアップを生成するためにコンピュータに実装された方法を開示する。すなわち、コンピュータに実装された方法は、最初に、１セットのデータユニットの第一のフルバックアップを作成することを含む。コンピュータに実装された方法は、さらに、初回から変更されているデータユニットのセット中の１以上のデータユニットを識別することを含む。コンピュータに実装された方法は、初回から修正されている１以上のデータユニットのコピーの提供、及び、初回から修正されていない１以上のデータユニットのコピーへの参照によって、データユニットのセットの第二のフルバックアップを作成することを含む。該参照は、第二のフルバックアップが他のバックアップから独立した単体のバックアップとなるように、構成される。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以上に説明した従来の技術によると、ファイルサーバの管理者が、ファイルレベル重複排除が適用されたファイルシステムを、Network Data Management Protocolを用いて、ファイルレベルでテープへバックアップする場合、重複排除状態が解除されるため、バックアップデータが重複排除前の状態となる。
一方、米国特許明細書第８２０４８６２号に記載された技術を用いると、重複排除されたファイルシステムのファイルを重複排除した状態でバックアップ・リストアできる。しかし、米国特許明細書第８２０４８６２号に記載された技術はテープ装置の特性を考慮していない。そのため、テープ装置を用いたバックアップ・リストアへ米国特許明細書第８２０４８６２号を適用すると、ファイルのリストア時にテープ装置のシーク動作が多く発生する。テープのシーク動作とは、アクセスされるファイルを頭出しする処理である。テープ装置のシーク動作は長い時間が必要であるため、リストア時間が長くなる問題がある。
【０００８】
前述した先行技術は、テープへのバックアップを考慮したものではないため、この様な問題を解決することはできない。
【０００９】
そこで、本発明は、ファイルレベル重複排除を適用したファイルシステムにおいて、重複排除された状態でファイルをテープ装置へバックアップし、リストア時のテープ装置のシーク動作を抑えることを目的とする。
【課題を解決するための手段】
【００１０】
本願において開示される発明の代表的な一例は、テープ装置は、重複排除データより先に、当該重複排除データに関連付けられた共有データを格納する。
【００１１】
すなわち、本願において開示される発明の代表的な一例は、計算機システムであって、クライアント計算機へデータを提供するサーバと、前記クライアント計算機に提供するデータを格納する第１の記憶装置と、前記第１の記憶装置へ格納されたデータをバックアップする第２の記憶装置と、を備え、前記サーバは、プログラムを実行するプロセッサと、前記プロセッサで実行されるプログラムを格納するメモリと、を有し、前記第１の記憶装置は、一部又は全部のデータを他のデータと共有する重複排除データ、前記複数の重複排除データに共有される共有データ、及び、前記重複排除データ及び前記共有データを含む格納されたデータの種別を表す第１の種別データを格納し、前記重複排除データは、前記共有データへのポインタによって、前記共有データと関連付けられ、前記共有データとの差を示す差分データを含み、前記サーバは、前記第２の記憶装置へ格納されるデータの種類を表す第２の種別データを、前記第１の種別データから生成し、前記第２の記憶装置は、シーケンシャルリードを行う場合に、前記重複排除データが読み出される位置より前の読み出し位置に、当該重複排除データに関連付けられた共有データを格納し、前記生成された第２の種別データを格納することを特徴とする。
【発明の効果】
【００１２】
本発明の代表的な態様によれば、バックアップ及びリストアの時間を短縮できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第一の実施例におけるファイル共有システムの構成例を示す図である。
【図２Ａ】本発明の第一の実施例におけるクライアントの構成例を示すブロック図である。
【図２Ｂ】本発明の第一の実施例におけるバックアップサーバの構成例を示すブロック図である。
【図３Ａ】本発明の第一の実施例における管理端末の構成例を示すブロック図である。
【図３Ｂ】本発明の第一の実施例におけるファイルサーバの構成例を示すブロック図である。
【図４Ａ】本発明の第一の実施例におけるディスクストレージの構成例を示すブロック図である。
【図４Ｂ】本発明の第一の実施例におけるテープ装置の構成例を示すブロック図である。
【図５】本発明の第一の実施例におけるディスクストレージへ格納される重複排除ファイル群の構成例を説明する図である。
【図６】本発明の第一の実施例におけるテープ装置のテープへ格納されるデータの構造を示す図である。
【図７】本発明の第一の実施例におけるテープへ格納されるバックアップデータの作成の概要を説明する図である。
【図８】本発明の第一の実施例における抽出ファイルリストの構成を示す図である。
【図９】本発明の第一の実施例におけるバックアップ処理のフローチャートである。
【図１０】本発明の第一の実施例におけるリストア処理のフローチャートである。
【図１１】本発明の第二の実施例におけるファイルサーバの構成例を示すブロック図である。
【図１２】本発明の第二の実施例における共有データ保持ファイルバックアップ済みリストの構成を示す図である。
【図１３】本発明の第二の実施例におけるテープ装置のテープへ格納されるデータ構造を示す図である。
【図１４】本発明の第二の実施例におけるバックアップ処理のフローチャートである。
【図１５】本発明の第二の実施例における重複排除ファイルバックアップ処理のフローチャートである。
【発明を実施するための形態】
【００１４】
まず、本発明の実施例の概要について説明する。
【００１５】
本発明の代表的な実施例では、ファイルレベルで重複排除されたファイル群（重複排除ファイル群）は共有データボディを保持するファイル（共有データ保持ファイル）を参照することによって、一つのデータボディを共有している。実施例では、まず、ファイルレベル重複排除機能が適用されたファイルシステムから、共有データ保持ファイルをテープ装置へ全てバックアップする。その後、重複排除ファイル群と通常のファイルをテープ装置へバックアップする。この際、共有データ保持ファイルへの参照情報を重複排除ファイルのヘッダ情報へ記録する。
【００１６】
リストア時には、共有データ保持ファイルを復元した後、重複排除ファイル及び通常のファイルを復元する。重複排除ファイルを復元する際、重複排除ファイルのヘッダ情報から共有データ保持ファイルの格納パスを取得し、取得したパスに基づいて復元された重複排除ファイルへ共有データ保持ファイルへの参照を設定する。
【００１７】
以上の処理によって、重複排除された状態でファイルをテープ装置へバックアップし、リストア時のテープ装置のシーク動作を抑えることができる。
【００１８】
また、本発明のシステムは、ファイル共有サービスをエンドユーザへ提供するファイルサーバ、ファイルサーバがファイルデータを格納するディスクストレージ、ファイルサーバがファイルデータをバックアップするテープ装置、ファイルサーバへバックアップ指示を行うバックアップサーバ、及び、システムを管理する管理端末を有する。システムは、エンドユーザが利用するクライアントと接続される。
【００１９】
ファイルサーバのバックアッププログラムは、バックアップサーバのバックアップサーバプログラムからバックアップ要求を受けると、ディスクストレージへ格納されたファイルシステムボリュームからファイルのデータを読み出す。そして、読み出したファイルのデータをテープ装置へ送信する。テープ装置は、受信したデータをテープへ書き込む。この時、バックアッププログラムは、共有データ保持ファイルを先にテープ装置へ送信し、ファイルシステムをテープへバックアップする。共有データ保持ファイルのバックアップが完了した後、バックアッププログラムは、重複排除ファイル及び通常ファイルのデータをテープ装置へ送信し、テープへバックアップする。
【００２０】
一方、ファイルサーバのバックアッププログラムは、バックアップサーバのバックアップサーバプログラムからリストア要求を受け付けると、テープ装置のテープからデータを読み出し、テープから読み出したファイルをディスクストレージへ格納されたファイルシステムへ書き込む。この際、バックアップ時に先にバックアップされた共有データ保持ファイル群のファイルがまず復元され、次に、重複排除ファイル及び通常ファイルが復元される。
【００２１】
以後、本発明の実施例について、ファイル単位でデータを管理するファイルシステムについて説明するが、本発明は、ファイル単位でデータを管理するファイルシステムに限らず、データをある塊（例えば、ブロック、セクタなど）で管理するシステムに適用することができる。
【００２２】
以後に説明する実施例は一例であって、本発明は、明細書に開示された形態に限定されるものではない。
【００２３】
（第一の実施例）
図１は、第一の実施例におけるファイル共有システムの構成例を示す図である。
【００２４】
第一の実施例におけるファイル共有システムは、バックアップサーバ１００２、管理端末１００３、ファイルサーバ１００４、ディスクストレージ１００５及びテープ装置１００６を有し、ネットワーク１００７を介してクライアント１００１と接続されている。
【００２５】
クライアント１００１は、ファイル共有システムが提供されるエンドユーザが使用する計算機であり、その構成及び処理は後述する（図２Ａ）。バックアップサーバ１００２は、バックアップ要求及びリストア要求をファイルサーバ１００４へ送信する計算機であり、その構成及び処理は後述する（図２Ｂ）。
【００２６】
管理端末１００３は、本実施例におけるファイル共有システムを管理する計算機であり、バックアップ及びリストアの時間なども管理する。管理端末１００３の構成及び処理は後述する（図３Ａ）。ファイルサーバ１００４は、クライアント１００１へファイル共有サービスを提供する計算機であり、その構成及び処理は後述する（図３Ｂ）。
【００２７】
クライアント１００１、バックアップサーバ１００２、管理端末１００３及びファイルサーバ１００４は、ネットワーク１００７によって接続される。ネットワーク１００７は、例えば、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋであり、Ｅｔｈｅｒｎｅｔ（登録商標、以下同じ）及び無線通信回線などを用いて構成することができる。本実施例において、クライアント１００１、バックアップサーバ１００２、管理端末１００３及びファイルサーバ１００４間の接続形態は実施例として記載したものに限らない。
【００２８】
ディスクストレージ１００５は、ファイルサーバ１００４が管理するファイルデータを保持する記憶装置であり、その構成及び処理は後述する（図４Ａ）。テープ装置１００６は、ファイルサーバ１００４が管理するファイルデータをテープへ書き込み、及びテープから読み出す装置であり、その構成及び処理は後述する（図４Ｂ）。
【００２９】
ファイルサーバ１００４、ディスクストレージ１００５及びテープ装置１００６はネットワーク１００８によって接続される。ネットワーク１００８は、例えば、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌプロトコルを用いたＳｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋである。なお、ｉＳＣＳＩなどのプロトコルを用いたネットワークでもよい。ネットワーク１００７及びネットワーク１００８は、別のネットワークでも、一つのネットワークでもよい。本実施例において、ファイルサーバ１００４、ディスクストレージ１００５及びテープ装置１００６間の接続形態は実施例として記載したものに限らない。
【００３０】
また、本実施例では、ファイルサーバ１００４が、後述するバックアップ処理（図９。図１４、図１５）及びリストア処理（図１０）を実行するが、ファイルサーバ１００４以外の装置（例えば、バックアップサーバ１００２）が、これらの処理を実行してもよい。
【００３１】
図２Ａは、本実施例におけるクライアント１００１の構成例を示すブロック図である。
【００３２】
クライアント１００１は、プロセッサ（ＣＰＵ）２００１、メモリ２００２及びネットワークインタフェース２００５を有し、これらの装置は内部通信路によって相互に接続されている。
【００３３】
プロセッサ２００１は、メモリ２００２へ格納されたアプリケーションプログラム２００３及びファイルアクセスプログラム２００４を実行する。
【００３４】
アプリケーションプログラム２００３は、クライアント１００１を操作するエンドユーザが利用するプログラムであり、例えば、表計算プログラムである。ファイルアクセスプログラム２００４は、ファイルサーバ１００４が提供するファイル共有サービスを利用するためのプログラムである。
【００３５】
アプリケーションプログラム２００３は、ファイルサーバ１００４が管理するファイルを利用する場合、ファイルアクセスプログラム２００４へファイルアクセスを要求する。ファイルアクセスプログラム２００４は、ファイルアクセス要求を受信すると、ファイル共有サービスを利用するためのプロトコル（例えば、Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（ＣＩＦＳ）プロトコル）を用いて、ネットワークインタフェース２００５を通して、ファイルサーバ１００４のファイルサーバプログラム３１０５へファイルアクセス要求を送信する。そして、ファイルアクセスプログラム２００４は、ファイルアクセス結果をファイルサーバ１００４のファイルサーバプログラム３１０５から受信し、結果をアプリケーションプログラム２００３へ返す。
【００３６】
図２Ｂは、本実施例におけるバックアップサーバ１００２の構成例を示すブロック図である。
【００３７】
バックアップサーバ１００２は、プロセッサ（ＣＰＵ）２１０１、メモリ２１０２及びネットワークインタフェース２１０５を有し、これらのデバイスは内部通信路によって相互に接続されている。
【００３８】
プロセッサ２１０１は、メモリ２１０２へ格納されたバックアップサーバプログラム２１０３を実行する。
【００３９】
バックアップサーバプログラム２１０３は、ファイルサーバ１００４のバックアッププログラム３１０７へ、ネットワークインタフェース２１０５を通して、バックアップ要求及びリストア要求を送信するためのプログラムである。バックアップサーバ１００２は、Ｎｅｔｗｏｒｋ  Ｄａｔａ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＮＤＭＰ）などのプロトコルを用いて、バックアップ要求及びリストア要求を送信するとよいが、要求の転送方法は実施例として記載したものに限らない。
【００４０】
また、バックアップサーバプログラム２１０３は、バックアップスケジュール２１０４に基づいて定期的にバックアップを生成してもよい。バックアップスケジュール２１０４はバックアップ取得間隔及びバックアップ取得日時などを保持する。バックアップスケジュール２１０４は、本実施例におけるファイル共有システムの管理者が、エディタ及び／又はＧｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ（ＧＵＩ）などを用いて設定する。なお、バックアップスケジュール２１０４の設定方法は実施例として記載したものに限らない。
【００４１】
図３Ａは、本実施例における管理端末１００３の構成例を示すブロック図である。
【００４２】
管理端末１００３は、プロセッサ（ＣＰＵ）３００１、メモリ３００２及びネットワークインタフェース３００５を有し、これらのデバイスは内部通信路によって相互に接続されている。
【００４３】
プロセッサ３００１は、メモリ３００２へ格納されている管理インタフェースプログラム３００３及び管理プログラム３００４を実行する。
【００４４】
管理インタフェースプログラム３００３は、本実施例のファイル共有システムを管理する管理者へ管理画面を提供するためのプログラムであり、管理者が入力した設定情報を管理プログラム３００４へ送信する。
【００４５】
管理プログラム３００４は、管理者が入力した設定情報をファイルサーバ１００４及びバックアップサーバ１００２へ設定するためのプログラムである。例えば、管理プログラム３００４は、管理者が入力したバックアップ間隔情報をバックアップサーバ１００２のバックアップスケジュール２１０４へ設定する。設定情報はＳＳＨ  Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＳＦＴＰ）などのプロトコルを用いて転送するとよいが、設定情報の転送方法は実施例として記載したものに限らない。
【００４６】
図３Ｂは、本実施例におけるファイルサーバ１００４の構成例を示すブロック図である。
【００４７】
ファイルサーバ１００４は、プロセッサ（ＣＰＵ）３１０１、メモリ３１０２、ネットワークインタフェース３１０８及びストレージインタフェース３１０９を有し、これらのデバイスは内部通信路によって相互に接続されている。
【００４８】
プロセッサ３１０１は、メモリ３１０２へ格納されているファイルサーバプログラム３１０５、ファイルシステムプログラム３１０６及びバックアッププログラム３１０７を実行する。
【００４９】
ファイルサーバプログラム３１０５は、ファイル共有サービスをクライアント１００１へ提供するためのプログラムである。ファイルサーバプログラム３１０５は、クライアント１００１のファイルアクセスプログラム２００４からファイルアクセス要求を受けると、ファイルシステムプログラム３１０６へファイルアクセスを要求する。そして、ファイルサーバプログラム３１０５は、ファイルアクセス結果をファイルシステムプログラム３１０６から受信し、受信した結果をクライアント１００１のファイルアクセスプログラム２００４へ返す。ファイルサーバプログラム３１０５は、例えば、ＮＦＳデーモンでよいが、実施例として記載したものに限らない。
【００５０】
ファイルシステムプログラム３１０６は、ディスクストレージ１００５へ格納されたデータへアクセスするためのプログラムである。ファイルシステムプログラム３１０６は、ネットワークインタフェース３１０８を通して、ファイルサーバプログラム３１０５からファイルアクセス要求を受けると、ストレージインタフェース３１０９を通して、ディスクストレージ１００５のディスク４００５へ格納されたデータへアクセスする。そして、ファイルシステムプログラム３１０６は、アクセス結果をファイルサーバプログラム３１０５へ返す。
【００５１】
ファイルサーバ１００４は、ファイルへアクセスするためのファイル管理情報３１０３、ファイルデータ３１０４及び抽出ファイルリスト３１１０を、メモリ３１０２に保持する。
【００５２】
ファイル管理情報３１０３は、ファイルの管理者の情報及びディスク４００５へ格納されたファイルデータのブロックアドレスなどを含む管理情報である。ファイル管理情報３１０３はファイルシステムプログラム３１０６が作成する。なお、ファイル管理情報３１０３は、ディスクストレージ１００５のディスク４００５にも格納される。ファイルサーバ１００４は、再起動の際に、ディスク４００５へ格納されたファイル管理情報３１０３を読み出して、利用できる。
【００５３】
ファイルデータ３１０４は、ディスク４００５へ格納されたファイルデータを読み出し、読み出されたデータをメモリ３１０２へ書き込んだデータである。ファイルデータ３１０４は、ファイルシステムプログラム３１０６が作成する。なお、ファイルデータ３１０４は、ディスクストレージ１００５のディスク４００５へ格納されている。ファイルサーバ１００４は、再起動の際に、ディスク４００５へ格納されたファイルデータ３１０４を読み出し、利用できる。
【００５４】
バックアッププログラム３１０７は、バックアップサーバ１００２からの要求に基づいて、ディスク４００５へ格納されたファイル群を複製するためプログラムである。
【００５５】
バックアッププログラム３１０７は、バックアップサーバ１００２のバックアップサーバプログラム２１０３から、ネットワークインタフェース３１０８を通して、バックアップ要求を受信すると、ストレージインタフェース３１０９を通してディスク４００５からファイル群を読み出し、読み出したデータをテープ装置１００６のテープ４１０５へ格納する。バックアップ処理の詳細は後述する（図９）。
【００５６】
また、バックアッププログラム３１０７は、バックアップサーバ１００２のバックアップサーバプログラム２１０３から、ネットワークインタフェース３１０８を通して、リストア要求を受信すると、ストレージインタフェース３１０９を通して、テープ装置１００６のテープ４１０５からデータを読み出し、読み出したデータをディスク４００５へ書き込む。これによって、バックアッププログラム３１０７は、ファイルを復元する。リストア処理の詳細は後述する（図１０）。
【００５７】
抽出ファイルリスト３１１０は、バックアッププログラム３１０７が利用するデータである。抽出ファイルリスト３１１０は、後述する共有データ保持ファイル５００２のリストを含む。抽出ファイルリスト３１１０は、バックアッププログラム３１０７がファイル群をバックアップする際に作成される。本実施例において、抽出ファイルリスト３１１０がどのように使用されるかは後述する。
【００５８】
本実施例では、バックアッププログラム３１０７は、ファイルレベル重複排除がされたファイルをテープ装置１００６へバックアップする際に、後述する共有データ保持ファイル５００２をバックアップした後に、重複排除されたファイル５００１Ａ及び５００１Ｂをバックアップする。さらに、バックアッププログラム３１０７は、テープ装置１００６へバックアップされるファイルのヘッダに、リストア時に使用する情報を設定する。
【００５９】
さらに、バックアッププログラム３１０７は、ファイルをディスクストレージ１００５へリストアする際に、共有データ保持ファイル５００２を復元した後、重複排除ファイル５００１Ａ及び５００１Ｂを復元する。バックアッププログラム３１０７は、重複排除ファイル５００１Ａ及び５００１Ｂを復元する際に、共有データ保持ファイル５００２へ参照情報５００６を設定する。
【００６０】
このように、重複排除ファイル５００１Ａなどをバックアップする前に、共有データ保持ファイル５００２を先にテープ装置１００６へバックアップすることによって、重複排除ファイル５００１Ａ及び５００１Ｂを復元する際に必要となる共有データ保持ファイル５００２への参照を設定できる。
【００６１】
また、重複排除ファイル５００１Ａをリストアする前に、共有データ保持ファイル５００２をディスクストレージ１００５へリストアすることによって、重複排除ファイル５００１Ａ及び５００１Ｂから共有データ保持ファイル５００２への参照を設定できる。
【００６２】
図４Ａは、本実施例におけるディスクストレージ１００５の構成例を示すブロック図である。
【００６３】
ディスクストレージ１００５は、プロセッサ（ＣＰＵ）４００１、メモリ４００２、ディスクコントローラ４００４及びストレージインタフェース４００６を有し、これらのデバイスは内部通信路によって相互に接続されている。
【００６４】
ディスクコントローラ４００４は、ディスク４００５と接続されており、ディスク４００５を制御する。ディスクコントローラ４００４は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）機能を有し、複数のディスク４００５を冗長化することによって、ディスクストレージ１００５の耐障害性を向上させる。
【００６５】
プロセッサ４００１は、メモリ４００２へ格納されたストレージ管理プログラム４００３を実行する。ストレージ管理プログラム４００３は、ディスクコントローラ４００４のＲＡＩＤ機能を管理するプログラムであり、例えば、冗長化するディスクアレイを構成し、ディスク４００５へのデータの入出力を制御する。
【００６６】
ディスク４００５は、磁気ディスクドライブ又は半導体記憶装置（ＳＳＤ）であるが、実施例として記載したものに限らない。
【００６７】
本実施例において、ディスクストレージ１００５は、冗長化機能を有しないストレージ装置でもよく、ディスクストレージ１００５の構成は実施例として記載したものに限らない。
【００６８】
図４Ｂは、本実施例におけるテープ装置１００６の構成例を示すブロック図である。
【００６９】
テープ装置１００６は、プロセッサ（ＣＰＵ）４１０１、メモリ４１０２、テープコントローラ４１０４及びストレージインタフェース４１０６を有し、これらのデバイスは内部通信路によって相互に接続されている。
【００７０】
テープコントローラ４１０４は、テープ装置１００６に装着されたテープ４１０５へのデータの入出力及びテープ４１０５のシーク動作を制御する。プロセッサ４１０１は、メモリ４１０２へ格納されたテープ管理プログラム４１０３を実行する。テープ管理プログラム４１０３はバックアップ及びリストアに必要なテープ４１０５をテープヘッドへローディングするプログラムである。
【００７１】
本実施例において、ファイルデータをバックアップする記憶装置は、実施例として記載したテープ装置１００６に限らず、光ディスク装置などのストレージ装置でもよい。
【００７２】
なお、本実施例では、ディスクストレージ１００５へ格納されたデータをテープ装置１００６へバックアップし、テープ装置１００６へバックアップされたデータをディスクストレージ１００５にリストアする処理について説明する。しかし、本発明は、前述した構成に限らず、ディスクストレージ１００５は、ファイルサーバ１００４にファイルデータを提供するために、ランダムアクセス性能が高い（アクセス時間が短い）記憶装置であればよく、テープ装置１００６は、ディスクストレージ１００５へ格納されたデータをバックアップするシーケンシャルアクセス性能が高い（格納されたデータに記録された順にアクセスするのに適しており、ランダムアクセスのためのシーク動作時間が長い）記憶装置であれば効果を奏する。
【００７３】
図５は、本実施例におけるディスクストレージ１００５へ格納される重複排除ファイル群の構成例を説明する図である。
【００７４】
重複排除ファイル群は、重複排除ファイル５００１Ａ、重複排除ファイル５００１Ｂ及び共有データ保持ファイル５００２を含む。重複排除ファイル５００１Ａ、５００１Ｂ及び共有データ保持ファイル５００２は、前述したファイル管理データ３１０３、ブロックポインタ５０１０及びデータブロック５００８Ｂ等を含む。ファイル管理データ３１０３は、ユーザＩＤ（ＵＩＤ）５００３、グループＩＤ（ＧＩＤ）５００４などの管理データと、重複排除に必要なポインタ５００６及びフラグ５００７を含む。
【００７５】
図５に示すように、ポインタ５００６は、重複排除ファイル５００１が共有データ保持ファイル５００２を参照するために用いる。ポインタ５００６には、ｉｎｏｄｅ番号、ファイルパスなどを用いることができる。なお、ポインタ５００６は、共有データ保持ファイル５００２を参照できるデータであればよく、実施例として記載したものに限らない。
【００７６】
フラグ５００７は、重複排除ファイル５００１と、共有データ保持ファイル５００２と、それ以外のファイルとを区別するために使用される。例えば、フラグ５００７の第一ビットは重複排除ファイルであることを示し、第２ビット目は共有データ保持ファイルであることを示す定義をしてもよい。
【００７７】
ブロックポインタ５０１０は、ディスク４００５上のファイルデータの格納位置を示すデータである。重複排除ファイル５００１Ａ、５００１Ｂ及び共有データ保持ファイル５００２が実データを有しない場合、ブロックポインタ５０１０は設定されない。
【００７８】
図５では、重複排除ファイル５００１Ａ及びＢには、ブロックポインタ５０１０が設定されている。重複排除処理後に重複排除ファイル５００１Ａ及びＢが更新されたため、ブロックポインタ５０１０は、更新による差分データを示す。差分データは、ディスク４００５へ格納される（５００８Ａ、５００８Ｃ）。図５では、重複排除ファイル５００１Ａ及び５００１Ｂで、異なる差分データが格納される。
【００７９】
図５では、重複排除処理が実行される時点では、二つの重複排除ファイル５００１Ａ及び５００１Ｂが同じファイルデータを有している、従って、重複排除処理が実行された結果、二つのファイル５００１Ａ及び５００１Ｂは同じ共有データ保持ファイル５００２を参照している。一方、他の重複排除ファイルが前記二つのファイルと同じファイルデータを有する場合、前記他のファイルが同じ共有データ保持ファイル５００２を参照する。
【００８０】
重複排除ファイル５００１Ａ及び重複排除ファイル５００１Ｂは、重複排除処理前は、同じファイルデータを保持している。重複排除処理時に、共有データ保持ファイル５００２が作成される。共有データ保持ファイル５００２には、重複排除ファイル５００１Ａ又は５００１Ｂのファイルデータが設定される。そして、重複排除ファイル５００１Ａ及び５００１Ｂは、共有データ保持ファイル５００２を参照する。ファイルシステムプログラム３１０６が重複排除ファイル５００１Ａ又は５００１Ｂへアクセスする際、ファイルシステムプログラム３１０６はフラグ５００７に含まれる重複排除データファイルフラグを参照し、ファイルシステムプログラム３１０６はアクセス先のファイルが重複排除ファイルであるかを判定する。
【００８１】
図６は、本実施例におけるテープ装置１００６のテープ４１０５へ格納されるデータの構造を示す図である。
【００８２】
各ファイルのテープデータ６０００は、テープの先頭からファイルシステムボリュームに保持される。まず、共有データ保持ファイル５００２がテープデータ６０００の先頭から格納される。全ての共有データ保持ファイル５００２がテープ４１０５へ格納された後、重複排除ファイル５００１及び通常ファイルが格納される。このため、テープ４１０５の先頭から見て、共有データ保持ファイル５００２の読み出し位置が重複排除ファイル５００１の読み出し位置より手前になる。このため、データをテープ４１０５の先頭からシーケンシャルリードする際に、共有データ保持ファイル５００２が重複排除ファイル５００１より先に読み出される。
【００８３】
共有データ保持ファイル５００２が格納されたテープ領域６１０１は、ヘッダ６００１及びデータ６００４を含む。ヘッダ６００１は、ファイル管理データ３１０３の情報を保持する。テープデータ６０００へ格納されるファイルが共有データ保持ファイル５００２である場合に、ヘッダ６００１の共有データフラグ６００３が設定され、共有データ保持ファイル５００２のデータがデータ６００４へ格納される。複数の共有データ保持ファイルがある場合、テープ領域６１０１と同じデータ構造で、複数の共有データ保持ファイル５００２が格納される。
【００８４】
共有データ保持ファイル５００２のバックアップが終了した後、重複排除ファイル５００１及び通常ファイルがテープ４１０５へ格納される。本実施例において、重複排除ファイル５００１をテープ４１０５へバックアップするためのテープ領域６００５は、ヘッダ６００１及びデータ６００４を含む。ヘッダ６００１は、ファイル管理データ３１０３の情報を保持する。テープデータ６０００へ格納されるファイルが重複排除ファイル５００１である場合、ヘッダ６００１の重複排除データフラグ６００７が設定される。
【００８５】
共有データパス６００２は、重複排除ファイル５００１が参照している共有データ保持ファイル５００２への参照情報を保持する。参照情報は、共有データ保持ファイル５００２のファイルパスを用いることができる。なお、参照情報は、共有データ保持ファイル５００２を一意に特定できる情報、例えばｉｎｏｄｅ番号やファイルパスやブロックアドレスでもよく、実施例として記載したものに限らない。
【００８６】
テープ領域６００５のデータ６００４は、重複排除ファイル５００１Ａ、Ｂの差分データ５００８Ａ、Ｃを格納する。
【００８７】
本実施例における通常ファイルのテープ領域６０１１は、ヘッダ６００１及びデータ６００４を含む。ヘッダ６００１は、ファイル管理データ３１０３の情報を格納する。またデータ６００４は、ファイルのデータを格納する。
【００８８】
本発明のテープデータの構造において、重複排除ファイル５００１と通常ファイルとの格納順序は図示したものに限らない。図６では、重複排除ファイル５００１の後に通常ファイルを格納しているが、この順序は逆でもランダムでもよい。
【００８９】
図７は、本実施例におけるテープ４１０５へ格納されるバックアップデータの作成の概要を説明する図である。
【００９０】
ディスク４００５は、四つの重複排除ファイル５００１及び二つの共有データ保持ファイル５００２を格納する。重複排除ファイル１（７００７）及び重複排除ファイル２（７００４）は共有データ保持ファイル１（７００２）を参照し、重複排除ファイル３（７００８）及び重複排除ファイル４（７００５）は共有データ保持ファイル２（７００３）を参照する。
【００９１】
本実施例のバックアップ方法では、まず、共有データ保持ファイル群７００１をテープ４１０５へ格納する。共有データ保持ファイル群７００１は、前述してテープデータ６０００の構造で格納される。図７に示す例では、共有データ保持ファイル１（７００２）がテープ４１０５の先頭から格納された後に、共有データ保持ファイル２（７００３）が格納される。この例では、二つの共有データ保持ファイル５００２がディスク４００５へ格納されているため、二つの共有データ保持ファイル５００２を格納した時点でバックアップが終了する。その後、重複排除ファイル５００１群７００６をテープ４１０５へ格納する。図７に示す例では、重複排除ファイル１（７００７）、重複排除ファイル２（７００４）、重複排除ファイル３（７００８）及び重複排除ファイル４（７００５）の順で格納される。なお、前述した通り、重複排除ファイルの格納順序は図示したものに限らない。
【００９２】
このように、共有データ保持ファイル群７００１をテープ４１０５へ格納した後、重複排除ファイル群７００６をテープ４１０５へ格納する。
【００９３】
図８は、本実施例における抽出ファイルリスト３１１０の構成を示す図である。
【００９４】
抽出ファイルリスト３１１０は、バックアッププログラム３１０７の実行時に作成される。又は、予め、抽出ファイルリスト３１１０を作成しておき、重複排除時やファイル作成時に随時更新するものでもよい。
【００９５】
抽出ファイルリスト３１１０は、共有データ保持ファイル５００２のリスト１２００１、重複排除ファイル５００１のリスト１２００２及び通常ファイルのリスト１２００３を含む。
【００９６】
共有データ保持ファイルのリスト１２００１は、その先頭から、各共有データ保持ファイルのファイルパス１２００４を示すリストの要素を含む。他のリストも、その先頭からファイルパス１２００４を示すリストの要素を含む。
【００９７】
なお、本実施例においては、共有データ保持ファイルと、それ以外のファイルとを区別できればよいので、重複排除ファイル５００１のリスト１２００２及び通常ファイルのリストは一つのリストでもよい。また、共有データ保持ファイルのリスト１２００１のみでもよい。
【００９８】
図９は、本実施例におけるバックアップ処理のフローチャートである。ファイルサーバ１００４のプロセッサ３１０１がバックアッププログラム３１０７実行することによって、図９に示すバックアップ処理が行われる。
【００９９】
バックアッププログラム３１０７は、バックアップサーバ１００２のバックアップサーバプログラム２１０３からバックアップ要求を受信すると、ディスク４００５を検索して共有データ保持ファイル５００２と重複排除ファイル５００１と通常ファイルとを分類する（ステップ８００１）。具体的には、バックアッププログラム３１０７は、ファイル管理データ３１０３のフラグ５００７を参照して、各ファイルの種類を特定する。そして、バックアッププログラム３１０７は、ファイルを分類した結果を、抽出ファイルリスト３１１０に保存する。
【０１００】
その後、バックアッププログラム３１０７は、抽出ファイルリスト３１１０の共有データ保持ファイルリスト１２００１からファイルを一つ選択する（ステップ８００２）。
【０１０１】
そして、バックアッププログラム３１０７は、ステップ８００２で取り出したファイルのファイル管理データ３１０３を用いて、テープのデータ構造６０００のヘッダ６００１を作成する（ステップ８００３）。具体的には、バックアッププログラム３１０７は、ヘッダ６００１の共有データフラグ６００３を設定する。
【０１０２】
そして、バックアッププログラム３１０７は、共有データ保持ファイル５００２のデータ５００８Ｂを読み出し（ステップ８００４）、ヘッダ６００１及び読み出したデータをテープ４１０５へ格納する（ステップ８００５）。
【０１０３】
そして、バックアッププログラム３１０７は、全ての共有データ保持ファイル５００２がバックアップされたかを判定する（ステップ８００６）。判定の結果、一部の共有データ保持ファイル５００２がテープ４１０５へ格納されていない場合（ステップ８００６で「Ｎ」）、ステップ８００２へ戻り、処理を続ける。一方、全ての共有データ保持ファイル５００２をテープ４１０５へ格納した場合（ステップ８００６で「Ｙ」）、バックアッププログラム３１０７は、ステップ８００７へ進み、重複排除ファイル５００１及び通常ファイルをテープへ格納する。
【０１０４】
バックアッププログラム３１０７は、抽出ファイルリスト３１１０の重複排除ファイルのリスト１２００２又は通常ファイルのリスト１２００３から一つファイルを選択する（ステップ８００７）。
【０１０５】
そして、バックアッププログラム３１０７は、取り出したファイルのファイルタイプを判定する（ステップ８００８）。判定の結果、取り出したファイルが通常ファイルである場合、バックアッププログラム３１０７は、従来のバックアップ処理、すなわち従来と同様の方法でファイルをテープへ格納する（ステップ８０１３）。
【０１０６】
一方、取り出したファイルが重複排除ファイル５００１である場合、ステップ８００９からステップ８０１１を実行する。まず、重複排除ファイル５００１のファイル管理データ３１０３を用いてヘッダ６００１を作成する（ステップ８００９）。具体的には、バックアッププログラム３１０７は、ヘッダ６００１の重複排除データフラグ６００７を設定する。さらに、バックアッププログラム３１０７は、ファイル管理データ３１０３のポインタ５００６を用いて共有データ保持ファイル５００２のファイルパスを取得し、共有データ保持ファイル５００２のファイルパスをヘッダ６００１の共有データパス６００２に設定する。次に、バックアッププログラム３１０７は、重複排除ファイル５００１の差分データ５００８Ａ及び５００８Ｂを読み込む（ステップ８０１０）。そして、バックアッププログラム３１０７は、作成したヘッダと差分データをテープ４１０５へ格納する（ステップ８０１１）。
【０１０７】
その後、バックアッププログラム３１０７は重複排除ファイル５００１及び通常ファイルが全てバックアップされたかを判定する（ステップ８０１２）。判定の結果、一部の重複排除ファイル５００１又は通常ファイルがテープ４１０５へ格納されていない場合（ステップ８０１２で「Ｎ」）、ステップ８００７に戻り、次のファイルの処理を続ける。一方、全ての重複排除ファイル５００１及び通常ファイルのテープ４１０５への格納が完了した場合（ステップ８０１２で「Ｙ」）、バックアッププログラム３１０７はバックアップ処理を終了する。
【０１０８】
以上に説明したバックアッププログラム３１０７の動作によって、テープ４１０５の初めに共有データ保持ファイル５００２が保存された後、重複排除ファイル５００１及び通常ファイルが保存される。すなわち、図９に示すバックアップ処理では、テープ４１０５の先頭から見て、共有データ保持ファイル５００２の読み出し位置が重複排除ファイル５００１の読み出し位置より手前になる。このため、データをテープ４１０５の先頭からシーケンシャルリードする際に、重複排除ファイル５００１より先に共有データ保持ファイル５００２が読み出される。
【０１０９】
次に、テープ４１０５へバックアップされたファイルのリストア処理について説明する。リストア処理において、テープへバックアップされたファイルをテープの先端から順次リストアする（シーケンシャルリードする）ことを前提とする。シーケンシャルリードによって、テープの読み出し性能を最大限に発揮できる。例えば、テープの半ばに保存されたファイルをリストアする場合、ファイルの頭出し処理（シーク処理）が必要となる。磁気ディスクドライブ（ＨＤＤ）や半導体記憶装置（ＳＳＤ）などと比べて、テープのシーク処理にかかる時間が非常に長いため、シーク処理を行うとテープの読み出し性能は大きく低下し、リストア時間が長くなる。
【０１１０】
なお、シーケンシャルリードに向く特性を持つ記憶媒体には、テープの他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、フロッピーディスクなどがある。本発明のリストア処理はこれらの記憶媒体に対しても有効である。つまり、本発明は順次読み出しと頭出しを伴う読み出し（ランダムリード）との性能差が大きい記憶媒体に有効である。
【０１１１】
図１０は、本実施例におけるリストア処理のフローチャートである。ファイルサーバ１００４のプロセッサ３１０１がバックアッププログラム３１０７を実行することによって、図１０に示すリストア処理が行われる。
【０１１２】
バックアッププログラム３１０７は、バックアップサーバ１００２のバックアップサーバプログラム２１０３からリストア要求を受信すると、テープ装置１００６に装着されたテープ４１０５をロードし、テープ４１０５の先頭から末端に向かって、一つずつファイルを読み出し（ステップ９００１）、読み出したファイルのヘッダ６００１のフラグを調べる（ステップ９０１０）。
【０１１３】
ヘッダ６００１に共有データフラグ６００３が設定されている場合、バックアッププログラム３１０７はファイル管理データ３１０３及びデータ６００４をファイルとしてディスク４００５に書き込む（ステップ９００２）。そして、バックアッププログラム３１０７は、ファイル管理データ３１０３のフラグ５００７に共有データ保持ファイル５００２であることを示すフラグを設定する（ステップ９００３）。
【０１１４】
一方、ヘッダ６００１に重複排除データフラグ６００７が設定されている場合、バックアッププログラム３１０７は、ヘッダ６００１から共有データパス６００２を取得する（ステップ９００４）。そして、バックアッププログラム３１０７は、データ６００４をテープ４１０５から読み出し、ファイルとしてディスク４００５に書き込む（ステップ９００５）。そして、バックアッププログラム３１０７は、ファイル管理データ３１０３のフラグ５００７に、リストアされたファイルが重複排除ファイル５００１であることを示すフラグを設定する（ステップ９００６）。
【０１１５】
そして、バックアッププログラム３１０７は、ファイル管理データ３１０３のポインタ５００６に参照情報を設定する（ステップ９００７）。具体的には、バックアッププログラム３１０７は、ステップ９００４で取得した共有データ保持ファイル５００１のパスを用いて、参照情報を設定する。
【０１１６】
一方、ステップ９０１０においてヘッダ６００１にフラグが設定されていないと判定された場合、バックアッププログラム３１０７は、読み出したファイルを通常ファイルとしてリストアする（ステップ９００８）。
【０１１７】
その後、テープ４１０５へ格納された全てのファイルがリストアされたかを判定する（ステップ９０２０）。判定の結果、一部のファイルがリストアされていない場合（ステップ９０２０で「Ｎ」）、ステップ９００１に戻り、次のファイルの処理を続ける。一方、全てのファイルのリストアが完了した場合（ステップ９０２０で「Ｙ」）、バックアッププログラム３１０７は処理を終了する。
【０１１８】
以上に説明したように、第一の実施例によると、図９で前述したバックアップ処理において、共有データ保持ファイル５００２を重複排除ファイルより先の読み出し位置格納するようにテープ４１０５へ格納している。そのため、図１０に示すシーケンシャルリードによってバックアップデータをリストアする処理においては、ステップ９００２及び９００３が先に実行され、共有データ保持ファイル５００２がリストアされた後、重複排除ファイル５００１がリストアされる。すなわち、重複排除ファイル５００１をリストアする時点で共有データ保持ファイル５００２が存在するので、ステップ９００７でポインタ５００６を設定することができる。なお、共有データ保持ファイル５００２と重複排除ファイル５００１との順序を考慮せずにリストアすると、重複排除ファイル５００１をリストアする時点で共有データ保持ファイル５００２が存在しないので、ステップ９００７でポインタ５００６を設定できない。
【０１１９】
このため、第一の実施例によると、ファイルレベル重複排除を行ったファイルシステムにおいて、重複排除状態を維持ししたままバックアップ及びリストアが可能となる。このため、リストア時のテープ装置のシーク動作を抑制することができる。
【０１２０】
（第二の実施例）
第二の実施例は、重複排除されたファイルシステムのファイルをテープ４１０５へバックアップする際に、第一の実施例のように共有データ保持ファイル５００２を纏めて先にバックアップしない。このため、第二の実施例では、重複排除ファイル５００１をバックアップする際に、関連する共有データ保持ファイル５００２が未だバックアップされていなければ、共有データ保持ファイル５００２を先にバックアップする。
【０１２１】
なお、第二の実施例において、前述した第一の実施例と同じ構成には同じ符号を付し、それらの説明は省略する。
【０１２２】
図１１は、第二の実施例におけるファイルサーバ１００４の構成例を示すブロック図である。
【０１２３】
第二の実施例のファイルサーバ１００４は、第一の実施例の抽出ファイルリスト３１１０の代わりに、共有データ保持ファイルバックアップ済みリスト１３００１をメモリ３１０２に保持する。
【０１２４】
共有データ保持ファイルバックアップ済みリスト１３００１は、既にテープ４１０５へバックアップされた共有データ保持ファイル５００２のリストであり、ファイルの参照情報（ｉｎｏｄｅ、ファイルパスなど）を含む。有データ保持ファイルバックアップ済みリスト１３００１は、バックアッププログラム３１０７がファイルをバックアップする際に作成される。
【０１２５】
図１２は、第二の実施例における共有データ保持ファイルバックアップ済みリスト１３００１の構成を示す図である。
【０１２６】
共有データ保持ファイルバックアップ済みリスト１３００１は、共有データ保持ファイル５００２のファイルパス１４００１を含む。共有データ保持ファイルバックアップ済みリスト１３００１がどのように使用されるかは後述する。
【０１２７】
図１３は、第二の実施例におけるテープ装置１００６のテープ４１０５へ格納されるデータ構造を示す図である。
【０１２８】
第二の実施例では、第一の実施例のように、テープの先頭から共有データ保持ファイル５００２を配置するのではなく、参照元の重複排除ファイル５００１より先に、参照先の共有データ保持ファイル５００２を配置する。図１３に示す例では、通常ファイル６０１１がテープの先頭に保存されている。また、テープに保存されている、重複排除ファイル５００１は、共有データ保持ファイル５００２を参照している。このため、バックアッププログラム３１０７は、バックアップ処理実行時に、共有データ保持ファイル５００２をテープ４１０５に格納した後（６１０１）、参照元の重複排除ファイル５００１をテープ４１０５に格納する（６００５）。
【０１２９】
図１４は、第二の実施例におけるバックアップ処理のフローチャートである。
【０１３０】
バックアッププログラム３１０７は、バックアップサーバ１００２のバックアップサーバプログラム２１０３からバックアップ要求を受信すると、ディスク（ファイルシステムボリューム）４００５からファイルを一つ選択する（ステップ１１００１）。
【０１３１】
そして、バックアッププログラム３１０７は、選択したファイルのタイプを判定する（ステップ１１００２）。判定の結果、選択したファイルが通常ファイルである場合、バックアッププログラム３１０７は、従来のバックアップ処理、すなわち従来と同様の方法でファイルをテープ４１０５へ格納する（ステップ１１００３）。
【０１３２】
一方、選択したファイルが共有データ保持ファイル５００２である場合、バックアッププログラム３１０７は、共有データ保持ファイル５００２のために、共有データフラグ６００３が設定されたヘッダを作成する（ステップ１１００４）。そして、バックアッププログラム３１０７は、ファイルのデータを読み出し（ステップ１１００５）、作成されたヘッダ及び読み出したデータをテープ４１０５へ格納する（ステップ１１００６）。そして、バックアッププログラム３１０７は、共有データ保持ファイル５００２のパスを共有データ保持ファイルバックアップ済みリスト１３００１へ登録する（ステップ１１００７）。
【０１３３】
一方、選択したファイルが重複排除ファイル５００１である場合、後述する重複排除ファイルバックアップ処理を実行する（ステップ１５０００）。
【０１３４】
その後、バックアッププログラム３１０７は、ディスク４００５へ格納されたファイルが全てバックアップされたかを判定する（ステップ１１０１２）。判定の結果、ファイルがテープ４１０５へ格納されていない場合（ステップ１１０１２で「Ｎ」）、ステップ１１００１に戻り、次のファイルの処理を続ける。一方、全てのファイルがテープ４１０５へ格納された場合（ステップ１１０１２で「Ｙ」）、バックアッププログラム３１０７は処理を終了する。
【０１３５】
図１５は、第二の実施例における重複排除ファイルバックアップ処理のフローチャートである。図１５に示す重複排除ファイルバックアップ処理は、バックアップ処理（図１４）のステップ１５０００において実行される。
【０１３６】
まず、バックアッププログラム３１０７は、重複排除ファイル５００１が参照している共有データ保持ファイル５００２の参照情報を取得する（ステップ１５００１）。
【０１３７】
そして、バックアッププログラム３１０７は、共有データ保持ファイルバックアップ済みリスト１３００１を検索し、共有データ保持ファイルが既にテープ４１０５に格納されているかを判定する（ステップ１５００２）。判定の結果、ステップ１５００１で取得した参照情報が共有データ保持ファイルバックアップ済みリスト１３００１に記録されていない場合、共有データ保持ファイル５００２をバックアップする（ステップ１５００３）。この処理は、バックアップ処理（図１４）のステップ１１００４からステップ１１００７の処理と同じである。
【０１３８】
一方、取得したパスが共有データ保持ファイルバックアップ済みリスト１３００１に記録されている場合、ステップ１５００５に進み、バックアッププログラム３１０７は、重複排除ファイルのヘッダ６００１を作成する。具体的には、バックアッププログラム３１０７は、重複排除データフラグ６００７及び共有データ保持ファイル５００２のパスを共有データパス６００２へ格納する（ステップ１５００５）。
【０１３９】
そして、バックアッププログラム３１０７は、重複排除ファイル５００１の差分データ５００８を読み出す（ステップ１５００６）。最後に、バックアッププログラム３１０７は、作成したヘッダ６００１と読み出した重複排除ファイル５００１の差分データをテープ４１０５へ格納する（ステップ１５００７）。
【０１４０】
以上に説明したバックアッププログラム３１０７の動作によって、テープ４１０５の先頭から見て、共有データ保持ファイル５００２の読み出し位置が、当該共有データ保持ファイル５００２に対応する重複排除ファイル５００１の読み出し位置より手前になる。このため、データをテープ４１０５の先頭からシーケンシャルリードする際に、重複排除ファイル５００１より先に共有データ保持ファイル５００２が読み出される。
【０１４１】
以上に説明したように、本発明の第二の実施例によれば、重複排除ファイル５００１をバックアップする際に、共有データ保持ファイル５００２が既にテープ４１０５へ格納されているかを判定する。共有データ保持ファイル５００２がテープ４１０５へ格納されていなければ、共有データ保持ファイル５００２を重複排除ファイル５００１より先にテープへ格納する。このため、リストア実行時に、共有データ保持ファイル５００２が重複排除ファイル５００１より先に復元されるので、重複排除ファイル５００１が復元される際に参照先の共有データ保持ファイル５００２が必ず存在する。
【０１４２】
よって、テープの先頭に共有データ保持ファイル５００２を格納しなくてよく、バックアップ時にファイルシステムボリュームの検索が不要になるため、高速にバックアップ可能となる。
【０１４３】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【図１】
2015527620.tif 000003
【図２Ａ】
2015527620.tif 000004
【図２Ｂ】
2015527620.tif 000005
【図３Ａ】
2015527620.tif 000006
【図３Ｂ】
2015527620.tif 000007
【図４Ａ】
2015527620.tif 000008
【図４Ｂ】
2015527620.tif 000009
【図５】
2015527620.tif 000010
【図６】
2015527620.tif 000011
【図７】
2015527620.tif 000012
【図８】
2015527620.tif 000013
【図９】
2015527620.tif 000014
【図１０】
2015527620.tif 000015
【図１１】
2015527620.tif 000016
【図１２】
2015527620.tif 000017
【図１３】
2015527620.tif 000018
【図１４】
2015527620.tif 000019
【図１５】
2015527620.tif 000020
【国際調査報告】
2015527620.tif 000021
2015527620.tif 000022
2015527620.tif 000023