(57)【要約】【課題】  効率よくバックアップを行う。【解決手段】  記憶領域が複数の小さな領域１００に細分化されたバックアップ対象ドライブ１０１に対して行われるデータの書き込みを検出する検出手段１０２、検出手段１０２の検出に応答してデータが書き込まれた領域の位置を特定する特定手段１０３、特定された位置の情報を記録する記録手段１０４、記録手段１０４に記録された位置の情報を用いて前記バックアップ対象ドライブ１０１から当該情報で示された位置の領域のデータを読み出す読み出し手段１０５、読み出されたデータと記録手段１０４に記録されている位置の情報とをペアにしてバックアップ対象ドライブ１０１とは物理的に異なる他の記憶要素１０６に記憶させる記憶制御手段１０７を備える。バックアップ対象ドライブの小さな領域単位にバックアップを行うので、効率よくバックアップを行うことができる【選択図】  図１６
2013029902.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が複数の小さな領域に細分化されたバックアップ対象ドライブに対して行われるデータの書き込みを検出する検出手段と、
前記検出手段の検出に応答して前記データが書き込まれた領域の位置を特定する特定手段と、
前記特定手段によって特定された位置の情報を記録する記録手段と、
前記記録手段に記録された位置の情報を用いて前記バックアップ対象ドライブから当該情報で示された位置の領域のデータを読み出す読み出し手段と、
前記読み出し手段によって読み出されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとは物理的に異なる他の記憶要素に記憶させる記憶制御手段と
を備えたことを特徴とするバックアップ装置。
【請求項２】
さらに、前記読み出し手段によって読み出されたデータを圧縮する圧縮手段を備え、前記記憶制御手段は、この圧縮手段によって圧縮されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとは物理的に異なる他の記憶要素に記憶させることを特徴とする請求項１に記載のバックアップ装置。
【請求項３】
さらに、前記圧縮手段によって圧縮されたデータまたは前記読み出し手段によって読み出されたデータを暗号化する暗号化手段を備え、前記記憶制御手段は、この暗号化手段によって暗号化されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとは物理的に異なる他の記憶要素に記憶させることを特徴とする請求項２に記載のバックアップ装置。
【請求項４】
記憶領域が複数の小さな領域に細分化されたバックアップ対象ドライブに対して行われるデータの書き込みを検出する検出工程と、
前記検出工程の検出に応答して前記データが書き込まれた領域の位置を特定する特定工程と、
前記特定工程によって特定された位置の情報を記録する記録工程と、
前記記録工程で記録された位置の情報を用いて前記バックアップ対象ドライブから当該情報で示された位置の領域のデータを読み出す読み出し工程と、
前記読み出し工程によって読み出されたデータと前記記録工程で記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとは物理的に異なる他の記憶要素に記憶させる記憶制御工程と
を含むことを特徴とするバックアップ方法。
【請求項５】
バックアップ装置のコンピュータを、
記憶領域が複数の小さな領域に細分化されたバックアップ対象ドライブに対して行われるデータの書き込みを検出する検出手段、
前記検出手段の検出に応答して前記データが書き込まれた領域の位置を特定する特定手段、
前記特定手段によって特定された位置の情報を記録する記録手段、
前記記録手段に記録された位置の情報を用いて前記バックアップ対象ドライブから当該情報で示された位置の領域のデータを読み出す読み出し手段、
前記読み出し手段によって読み出されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとは物理的に異なる他の記憶要素に記憶させる記憶制御手段
として機能させることを特徴とするプログラム。
【請求項６】
記憶領域が複数の小さな領域に細分化されたバックアップ対象ドライブに記憶されたデータをネットワークを介したサーバー上にバックアップするバックアップシステムにおいて、
前記バックアップ対象ドライブに対して行われるデータの書き込みを検出する検出手段と、
前記検出手段の検出に応答して前記データが書き込まれた領域の位置を特定する特定手段と、
前記特定手段によって特定された位置の情報を記録する記録手段と、
前記記録手段に記録された位置の情報を用いて前記バックアップ対象ドライブから当該情報で示された位置の領域のデータを読み出す読み出し手段と、
前記読み出し手段によって読み出されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとネットワークを介して接続される前記サーバーに記憶させる記憶制御手段と
を備えたことを特徴とするバックアップシステム。
【請求項７】
さらに、前記読み出し手段によって読み出されたデータを圧縮する圧縮手段を備え、前記記憶制御手段は、この圧縮手段によって圧縮されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記サーバーへネットワークを介して送信することを特徴とする請求項６に記載のバックアップシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータ等の二次記憶装置（補助記憶装置ともいう）や外付け記憶装置（以下、これらを単に記憶装置という）のデータをバックアップするためのバックアップ装置、バックアップ方法、プログラム及びバックアップシステムに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータの記憶装置は一段と大容量化する傾向にあり、テラ（Ｔ）バイトクラスの記憶装置も、業務用はもちろんのこと、家庭などのパーソナルユースにおいても普通に用いられるようになってきた。
【０００３】
記憶装置には、ハードディスクやシリコンディスクなど様々なデバイスが用いられる。一般的には経済的な理由により、単位記憶容量あたりの価格（ビット単価）が安いハードディスクが用いられるが、一方で、ハードディスクはシリコンディスクに比べて障害耐性が劣るという課題がある。ハードディスクはモータなどの回転機構やヘッドなどの駆動機構を含むため、それらの機構にトラブルが発生することがあるからである。
【０００４】
したがって、記憶装置にハードディスクを使用する場合は、不意なトラブルに備えた事前の対策（データのバックアップ）が欠かせない。ちなみに、データのバックアップとは、一の記憶装置（バックアップ対象ドライブ）に記憶されているデータの全て又は一部を二の記憶装置（バックアップ先ドライブ）に保存することをいう。
【０００５】
記憶装置の関連技術としては、以下のようなものがある。たとえば、下記の特許文献１には、二次記憶装置を複数のハードディスクで構成し、それら複数のハードディスクにデータを多重化して書き込むという、いわゆる「ＲＡＩＤ」（レイド：Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  ＤｉｓｋｓまたはＲｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）の技術が記載されている。
【０００６】
また、下記の特許文献２には、一つのハードディスク内にデータ領域とバックアップ領域とを設け、バックアップ時にはデータ領域のデータを物理セクタ単位に読み出してバックアップ領域にコピー（バックアップ）するという技術が記載されている。
【０００７】
また、下記の特許文献３には、フラッシュメモリを用いた二次記憶装置の書き込みに際し、停電等の不意な電源遮断に伴うデータ喪失問題（詳細は後述）を回避した技術が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平７−１３４６３７号公報
【特許文献２】特開２００４−１７１１７１号公報
【特許文献３】特開２００３−３０８２５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、関連技術は、以下の課題を有している。
特許文献１記載の技術は、ＲＡＩＤの技術であり、バックアップの技術ではない。詳細には、複数のハードディスクの１台が故障してもデータを喪失しないという障害耐性向上の技術に過ぎず、そのままでは、定期的または不定期に一の記憶装置から二の記憶装置にデータをバックアップするという技術には適用できない。
【００１０】
また、特許文献２記載の技術は、一つのハードディスク内にデータ領域とバックアップ領域とを設けるという技術であり、要するに、一の記憶装置のデータを同じ記憶装置（一の記憶装置）にバックアップする技術である。このため、一の記憶装置にトラブルが発生した場合には、バックアップデータも失われてしまうという課題を有している。
【００１１】
また、特許文献３記載の技術は、フラッシュメモリに適用する専用の技術であり、ハードディスクのバックアップに関する技術ではない。すなわち、フラッシュメモリはセクタのデータを書き換える際に、セクタ内の書き換え不要データをＲＡＭに待避し、データを書き換えた後にその待避データをフラッシュメモリに書き戻しているが、不意な電源遮断が発生するとＲＡＭに待避中のデータが失われてしまい、フラッシュメモリのセクタデータに不整合が生じるという不都合がある。特許文献３の技術は、この不都合を解決するために、上記の「書き換え不要データ」を不揮発性の記憶装置に待避させるとしたものに過ぎず、一般的なデータのバックアップ技術ではない。
【００１２】
その他、データバックアップの関連技術として、たとえば、「Ａｃｒｏｎｉｓ  Ｔｒｕｅ  Ｉｍａｇｅ」（アクロニス社の登録商標）などの専用パッケージソフトが知られている。しかしながら、この種のパッケージソフトは、ファイル単位でバックアップするものであり、ファイルシステムにアクセスする際のオーバヘッドが大きく、バックアップの効率が悪いという課題がある。かかる課題は、とりわけ大容量の記憶装置に適用する場合に看過できない。大容量の記憶装置は大量のファイルを記憶しているため、そのファイルの数だけオーバヘッドが大きくなり、ますますバックアップの効率が悪くなる（バックアップに要する時間が長くなる）からである。
【００１３】
そこで、本発明の目的は、効率よくバックアップを行うことができるバックアップ装置、バックアップ方法、プログラム及びバックアップシステムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明に係るバックアップ装置は、記憶領域が複数の小さな領域に細分化されたバックアップ対象ドライブに対して行われるデータの書き込みを検出する検出手段と、前記検出手段の検出に応答して前記データが書き込まれた領域の位置を特定する特定手段と、前記特定手段によって特定された位置の情報を記録する記録手段と、前記記録手段に記録された位置の情報を用いて前記バックアップ対象ドライブから当該情報で示された位置の領域のデータを読み出す読み出し手段と、前記読み出し手段によって読み出されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとは物理的に異なる他の記憶要素に記憶させる記憶制御手段とを備えたことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、バックアップ対象ドライブの小さな領域単位にバックアップを行うので、ファイルシステムに依存せず、効率よくバックアップを行うことができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態の適用例を示すネットワーク構成図である。
【図２】宅内ネットワーク２の構成図である。
【図３】ＮＡＳ９のハードウェア構成図である。
【図４】ＮＡＳ９のモデル図である。
【図５】データディスク１５ｂの記憶空間の物理的な構造模式図である。
【図６】ファイルシステムの一例構造図である。
【図７】クラスタ記録ファイル群３７の概念図である。
【図８】初期化時の動作フローを示す図である。
【図９】ファイル書き込み時の動作フローを示す図である。
【図１０】クラスタ番号記録の概念図である。
【図１１】バックアップ時の動作フローを示す図である。
【図１２】ランレングス圧縮の概念図である。
【図１３】バックアップ動作の概念図である。
【図１４】リカバリ時の動作フローを示す図である。
【図１５】リカバリの概念図である。
【図１６】付記１の構成図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を図面を参照しながら説明する。
＜実施形態の適用例＞
図１は、実施形態の適用例を示すネットワーク構成図である。この図において、ネットワーク１は、宅内ネットワーク２と、インターネット等の広域ネットワーク３と、この広域ネットワーク３を介して宅内ネットワーク２からアクセス可能なファイルサーバ４とを含んで構成されている。
【００１８】
ファイルサーバ４は、任意のファイルを保存したり読み出したりできる公知のファイル蓄積サービスを提供するものであり、一般的には当該サービスの利用に際して事前にユーザ登録を行ったり、利用可能な記憶容量や課金の有無等の手続を行ったりするが、ここでは、それらの手続に関して特に限定しない。広域ネットワーク３を介して宅内ネットワーク２からアクセス可能なファイルサーバ４であればよく、特に、任意のファイルを保存したり読み出したりできるサービスを提供するものであればよい。
【００１９】
本実施形態では、このサービスを利用してデータのバックアップを行うものとする。つまり、宅内ネットワーク２のデータのバックアップ先をファイルサーバ４とするが、思想的には、これは一例である。広域ネットワーク３に接続された他の記憶要素をバックアップ先としてもよいし、あるいは、宅内ネットワーク２に存在する他の記憶要素をバックアップ先としてもよい。しかしながら、昨今の時代背景（とりわけ、ネットワーク利用のクラウド環境）を考慮すると、バックアップ先をネットワーク上のサーバ、つまり、実施形態におけるファイルサーバ４とすることが時代にマッチしているから、以下の説明では、このような考え方に従い、バックアップ先をファイルサーバ４とすることとする。
【００２０】
図２は、宅内ネットワーク２の構成図である。この図において、宅内ネットワーク２は、広域ネットワーク３（図１参照）に接続されたモデム５と、このモデム５と宅内ＬＡＮ６との間に介在して両ネットワーク（広域ネットワーク３と宅内ＬＡＮ６）間を流れるデータパケットの転送制御を行うルータ７と、宅内ＬＡＮ６に接続されたパーソナルコンピュータ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ：以下、ＰＣと略す）８及びネットワークストレージ装置（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ：以下、ＮＡＳと略す）９とを含んで構成されている。
【００２１】
ＮＡＳ９は、ＰＣ８の外付け記憶装置として用いられる。たとえば、ＰＣ８の仮想ディスクにＮＡＳ９を割り当てることにより、ＮＡＳ９をＰＣ８の二次記憶装置として利用することができる。ＰＣ８は複数台であってもよい。複数台のＰＣ８の仮想ディスクにＮＡＳ９を割り当てておけば、このＮＡＳ９を複数台のＰＣ８の共用ディスクとして利用することができる。このような使い方（ＮＡＳ９の共用）は、データのバックアップ作業の効率を改善できるから好ましい。ＮＡＳ９を使用しない場合は、各々のＰＣ８でバックアップを行わなければならず、それだけバックアップが面倒になるが、ＮＡＳ９を共用すればＮＡＳ９のバックアップだけで済み、手間を軽減できるからである。
【００２２】
なお、ここでは宅内ネットワーク２としているが、「宅内」に限らない。たとえば、職場や公共施設あるいは遊戯施設などの任意の場所であってもよい。要は、インターネット等の広域ネットワーク３に接続可能な小規模や中規模または大規模なネットワーク（図では宅内ＬＡＮ６）が構築された場所であって、且つ、当該ネットワーク（図では宅内ＬＡＮ６）内で共有または１台のＰＣ８で占有されるＮＡＳ９を備えたものであればよい。
【００２３】
また、ここでは、インターネット等の広域ネットワーク３に接続可能な小規模や中規模または大規模なネットワークの具体例として、有線式の宅内ＬＡＮ６（有線ＬＡＮ）を示しているが、これも一例に過ぎない。無線ＬＡＮであってもよく、あるいは有線と無線の混在ＬＡＮであってもよい。
【００２４】
図３は、ＮＡＳ９のハードウェア構成図である。この図において、ＮＡＳ９は、マイクロプロセッサ１０と、ＲＯＭ１１と、ＲＡＭ１２と、データ転送用システムバス１３と、ハードディスクインターフェース１４と、ハードディスク装置１５と、ネットワークインターフェース１６とを含んで構成されている。
【００２５】
マイクロプロセッサ１０は、予めＲＯＭ１１やハードディスク装置１５に書き込まれているプログラム（図４のアプリケーションソフト１７、オペレーティングシステム１８、ハードディスクドライバ１９及びインターフェースドライバ２０など）をＲＡＭ１２にロードして、そのプログラムを実行することにより、このＮＡＳ９の各部の動作を統括制御する。
【００２６】
データ転送用システムバス１３は、マイクロプロセッサ１０や、ＲＯＭ１１、ＲＡＭ１２、ハードディスクインターフェース１４及びネットワークインターフェース１６の間でやりとりされるデータの転送路であり、ネットワークインターフェース１６は、宅内ＬＡＮ６（図２参照）を経由したデータの送信や受信を行い、ハードディスクインターフェース１４は、マイクロプロセッサ１０の制御を受け、ハードディスク装置１５に対するデータの書き込み及びハードディスク装置１５からのデータの読み出しを行う。
【００２７】
図４は、ＮＡＳ９のモデル図である。図示のモデルは、上位層にアプリケーションソフト１７を配置するとともに、中位層にオペレーティングシステム１８を配置し、且つ、下位層にハードディスクドライバ１９とインターフェースドライバ２０とを配置したソフトウェア部２１を、インターフェース部２２やハードディスクコントローラ２３、ネットワークコントローラ２４及びハードディスク装置１５などからなるハードウェア部２５の上位に設けた構造を有している。
【００２８】
ハードディスク装置１５は、物理的に独立した複数のドライブ（ここでは、二つのハードディスク１５ａ、１５ｂ）を備えており、ここでは、左側のハードディスク１５ａをシステム用、右側のハードディスク１５ｂをデータ用とする。以下、左側のハードディスク１５ａを「システムディスク１５ａ」といい、また、右側のハードディスク１５ｂを「データディスク１５ｂ」ということにする。
【００２９】
データディスク１５ｂは、バックアップ対象ドライブであり、このデータディスク１５ｂには、バックアップ対象のユーザデータ（宅内ネットワーク２のＰＣ８で使用するワープロデータなどの様々なデータ）が格納される。
【００３０】
また、システムディスク１５ａは、ＮＡＳ９の起動ドライブであり、このシステムディスク１５ａには、ＮＡＳ９の動作に必要なシステムデータ（アプリケーションソフト１７、オペレーティングシステム１８、ハードディスクドライバ１９及びインターフェースドライバ２０など）が格納されるとともに、さらに、後述するクラスタ記録ファイル群３７（クラスタ番号ファイル３８とクラスタデータ集約ファイル３９：：図７や図１０参照）の格納領域と、後述する復元用データ４０（図１５参照）の展開領域とが確保されている。
【００３１】
なお、実施形態では、バックアップの対象をデータディスク１５ｂとしており、システムディスク１５ａはバックアップの対象外になっているが、システムディスク１５ａの不意なトラブル（ディスククラッシュ等）を考慮すると、たとえば、データディスク１５ｂに、システムディスク１５ａのカーボンコピーを格納するための領域を設けておいてもよい。このようにすると、システムディスク１５ａのトラブル発生時に、システムディスク１５ａを交換後、カーボンコピーを用いて速やかにシステムを復旧できるので好ましい。
【００３２】
インターフェース部２２は、ハードウェアバス２６（図３のデータ転送用システムバス１３に相当）を含み、このハードウェアバス２６を介してソフトウェア部２１と、ハードディスクコントローラ２３及びネットワークコントローラ２４との間のデータのやりとりを中継する。
【００３３】
インターフェース部２２とハードディスクコントローラ２３は一体として、図３のハードディスクインターフェース１４を構成し、また、インターフェース部２２とネットワークコントローラ２４は一体として、図３のネットワークインターフェース１６を構成する。
【００３４】
ハードディスクコントローラ２３とハードディスク装置１５（システムディスク１５ａとデータディスク１５ｂ）との間は、ＳＡＴＡやＳＣＳＩまたはＰＡＴＡなどの標準インターフェース２７ａ、２７ｂを介して接続されており、また、ネットワークコントローラ２４と宅内ＬＡＮ６（図２参照）との間は、ＥＴＨＥＲＮＥＴ（登録商標）やＷｉＦｉなどの通信媒体２８を介して接続されている。
【００３５】
ソフトウェア部２１に含まれる各種ドライバプログラム（ハードディスクドライバ１９やインターフェースドライバ２０など）は、ハードウェア部２５の製品ごとの仕様の違いを吸収するためのものであり、これらのドライバプログラムは、ハードウェア部２５の構成に応じて適宜に入れ替えられるようになっている。たとえば、ハードウェア部２５の構成が「製品Ａ」と「製品Ｂ」の場合、少なくとも、これらの「製品Ａ」と「製品Ｂ」に対応したドライバプログラムをソフトウェア部２１の下位層（ドライバ層）に配置するという操作（インストール操作）を行うようになっている。
【００３６】
なお、インターフェースドライバ２０は、不図示の操作部（キーボードとマウス等）や表示部（液晶ディスプレイ等）などの製品に対応した汎用ドライバプログラムまたは専用ドライバプログラムであり、それら各部の仕様の違いを吸収して、各部とオペレーティングシステム１８との間のデータのやりとりを中継する。
【００３７】
図５は、データディスク１５ｂ（システムディスク１５ａも同様）の記憶空間の物理的な構造模式図である。この図の（ａ）に示すように、データディスク１５ｂは、円盤状の磁気ディスク（以下、単にディスクという）２９を有する。ディスク２９の枚数は１又は複数（記憶容量にもよるが一般的には複数）であり、複数の場合は各ディスクが同一軸で一体回転するようになっている。
【００３８】
ディスク２９は同心状に並べられた多数のトラックと、そのトラックを一定容量ごとに細分化したセクタとからなり、典型的なセクタサイズ（容量）は５１２バイトである。
【００３９】
セクタの位置は「ディスク番号」と「トラック番号」と「セクタ番号」の組み合わせで表すことができるが、一般的には、トラック番号はシリンダ番号（複数枚のディスクを考慮したもの）で表され、また、ディスク番号はヘッド番号で表されるため、実際には「シリンダ番号」と「ヘッド番号」と「セクタ番号」の組み合わせが用いられる。この組み合わせのことを、各々のパラメータの頭文字をとって「ＣＨＳパラメータ」という。ちなみに、シリンダ番号は最外周のシリンダを０、ディスク番号は最上面のディスクを０として順に数えていき、セクタ番号は、トラックの最初のセクタを１として順に番号を割り振る。
【００４０】
ＣＨＳパラメータは、システムディスク１５ａやデータディスク１５ｂの構造を直接的に表すパラメータであり、いわゆる物理的なパラメータであるため、製品ごとの違いがあって使い勝手が悪い。そこで、かかる物理的なパラメータを用いずにセクタの位置を指定できる便利な手法として、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）方式が採用されている。
【００４１】
ＬＢＡ方式は、システムディスク１５ａやデータディスク１５ｂの構造や仕様に関わらず、その記憶空間を論理的に細分化して各々の細分化領域にセクタ番号を付したものであり、オペレーティングシステム１８やハードディスクドライバ１９は、このＬＢＡ方式に従ってシステムディスク１５ａやデータディスク１５ｂにアクセスする。このように、ＬＢＡ方式は、ハードディスク装置１５の物理的な仕様を考慮する必要がなく、プログラム開発の効率を改善できるという大きな利点を有することから、特殊な用途を除き、ほとんどのコンピュータ応用機器で利用されている。ちなみに、ハードディスク装置１５の内部ではＬＢＡからＣＨＳパラメータへの変換が行われる。この変換機能は一般的にハードディスクコントローラ２３に実装されている。つまり、ハードディスク装置１５のハードディスクコントローラ２３は、ＣＨＳパラメータを用いて物理的なセクタを特定し、その物理セクタにアクセスする。
【００４２】
ところで、システムディスク１５ａやデータディスク１５ｂを「セクタ単位」でアクセスすると、セクタはきわめて小さな容量（５１２バイト）であることから、アクセスの効率が悪い。そこで、実際にはいくつかのセクタをまとめた「クラスタ」と呼ばれる大きめの単位でアクセスする。１クラスタはセクタの倍数であり、一般的には、図５の（ｂ）に示すように１クラスタ＝８セクタで構成されるが、これに限定されない。
【００４３】
システムディスク１５ａやデータディスク１５ｂのクラスタ数をＮとした場合、システムディスク１５ａやデータディスク１５ｂの論理的な記憶空間は、図５の（ｃ）に示すように、クラスタ０からクラスタＮまでが順次に並んだ構造（ＬＢＡ方式の構造）になる。オペレーティングシステム１８やハードディスクドライバ１９は、この構造（論理的な記憶空間）に従ってシステムディスク１５ａやデータディスク１５ｂをアクセスする。
【００４４】
図６は、ファイルシステムの一例構造図である。ファイルシステムとは、オペレーティングシステム１８が持つ機能の一つであり、この図において、ファイルシステムは、マスタブートレコード３０、ブートレコード３１、ＦＡＴ１（ファイル情報）３２、ＦＡＴ２（ＦＡＴ１のコピー）３３、ディレクトリエントリ３４及びデータ３５をＬＢＡ方式の論理セクタ３６に割り当てて管理する。
【００４５】
たとえば、図示の例では、マスタブートレコード３０を論理セクタ３６のセクタ０（実際にはセクタ１から始まるが、ここでは説明の便宜上、セクタ０から始まるものとする）に割り当て、ブートレコード３１をセクタ１に割り当て、ＦＡＴ１（ファイル情報）３２をセクタ２とセクタ３に割り当て、ＦＡＴ２（ＦＡＴ１のコピー）３３をセクタ４とセクタ５に割り当て、ディレクトリエントリ３４をセクタ６に割り当て、データ３５をセクタ７〜に割り当てて管理している。
【００４６】
なお、マスターブートレコード（ＭＢＲ）とは、コンピュータ応用機器（この実施形態ではＮＡＳ９）の起動時に最初に読み込まれるシステムディスク１５ａの特定部分（セクタ）のことをいい、このマスターブートレコードに続いてブートレコードが読み込まれる。ブートレコードにはディスクの構造、たとえば、どの様に論理ドライブが設定されているか、また、パーテションはどの様になっているかなどといった情報が格納されている。また、ＦＡＴとは、Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅの略で、代表的なファイルシステムにおける管理領域を指す用語であるが、ＦＡＴに限らず、ＦＡＴ３２やＮＴＦＳあるいはＨＦＳ＋などの他のファイルシステムによって管理される領域であってもよい。
【００４７】
前記のとおり、ＦＡＴでは、ディスクをクラスタと呼ばれる論理単位に分割し、データのサイズに応じてこのクラスタを１個ないし複数個割り当てることでファイルを構成する。このとき、あるファイルを構成しているのはどのクラスタか、またクラスタの使用／未使用といった情報を、ＦＡＴと呼ばれる管理領域、つまり、図６のＦＡＴ１（ファイル情報）３２に記録して管理する。ＦＡＴは、いわば、本の目次あるいは法務局に登記されている土地台帳のようなものである。このＦＡＴ１（ファイル情報）３２はファイル管理上、きわめて重要な情報であるため、一般的には安全性を考慮してＦＡＴ１（ファイル情報）３２の複製物を作り、それをＦＡＴ２（ＦＡＴ１のコピー）３３として記録管理している。
【００４８】
次に、実施形態の動作を説明するが、はじめに、実施形態の動作に必要な重要なファイル（クラスタ記録ファイル群３７）について説明する。
【００４９】
図７は、クラスタ記録ファイル群３７の概念図である。この図において、クラスタ記録ファイル群３７は、システムディスク１５ａの所定領域に生成される二つのファイル（クラスタ番号ファイル３８とクラスタデータ集約ファイル３９）で構成される。
【００５０】
クラスタ番号ファイル３８は、バックアップ対象ドライブ（データディスク１５ｂ）に対して書き込みが行われたときに、その書き込みがあったクラスタの番号（クラスタの位置を示す情報）を記録するために用いられる。ここで、書き込みとは、クラスタのデータに変更があったときのことをいい、この“とき”には、ファイルの書き込みがあったときもちろんのこと、ファイルの削除が行われたときや、バックアップ対象ドライブ（データディスク１５ｂ）の初期化（フォーマットともいう）が行われたときも含まれる。
【００５１】
このクラスタ番号ファイル３８は、バックアップ対象ドライブ（データディスク１５ｂ）の初期化が行われたときに、システムディスク１５ａの所定領域に空の状態（何も記録されていない白紙の状態）で生成され、以降、バックアップ対象ドライブ（データディスク１５ｂ）に対して書き込みが行われるたびに、その書き込みが行われたクラスタの番号が順次に記録されていく。
【００５２】
たとえば、クラスタ１、クラスタ７、クラスタ２５６７０、クラスタ２５６７１、クラスタ２５６７７、クラスタ２５６７９の順に書き込みが行われた場合を想定すると、まず、クラスタ番号の「１」が記録され、次いで、クラスタ番号の「７」が追加記録され、以降、クラスタ番号の「２５６７０」、クラスタ番号の「２５６７１」、クラスタ番号の「２５６７７」、クラスタ番号の「２５６７９」の順に追加記録される結果、最終的にクラスタ番号ファイル３８には、“１，７，２５６７０，２５６７１，２５６７７，２５６７９”という数列が記録される。
【００５３】
なお、ここでは、クラスタ番号ファイル３８をカンマ区切りのテキストファイル形式（いわゆるＣＳＶ形式：Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）としているが、これは一例に過ぎない。他の区切り記号を用いてもよく、あるいは、データベース型式等の他のファイル形式であってもよい。
【００５４】
クラスタデータ集約ファイル３９は、バックアップを行う際に使用されるファイルである。したがって、このクラスタデータ集約ファイル３９は、バックアップを行う際にシステムディスク１５ａの所定領域に存在していればよく、その生成時期については特に限定しない。たとえば、上記のクラスタ番号ファイル３８と同様に、バックアップ対象ドライブ（データディスク１５ｂ）の初期化が行われたときに、システムディスク１５ａの所定領域に空の状態で生成してもよいし、あるいは、バックアップを行う際にシステムディスク１５ａの所定領域に空の状態で生成してもよい。
【００５５】
クラスタデータ集約ファイル３９は、要するに、書き込みが行われたクラスタのデータを集約してファイル化したものであり、バックアップの際に、上記のクラスタ番号ファイル３８と一緒にバックアップ先ドライブ（図１のファイルサーバ４）に蓄積保存されるものである。システムディスク１５ａ内のクラスタ番号ファイル３８とクラスタデータ集約ファイル３９は、バックアップ後、初期化される（元の白紙の状態に戻される）。
【００５６】
クラスタデータ集約ファイル３９へのクラスタデータの集約は、次のようにして行われる。まず、システムディスク１５ａ内のクラスタ番号ファイル３８を参照し、記録されている数列の先頭のクラスタ番号を読み出す。すなわち、前記の例ではクラスタ番号の「１」を読み出し、次いで、データディスク１５ｂのクラスタ１のデータを読み込んで、そのデータをクラスタデータ集約ファイル３９に書き込むという動作を、クラスタ番号ファイル３８に記録されている残りのクラスタ番号の全てについて繰り返し行うことにより、最終的に、クラスタ１、クラスタ７、クラスタ２５６７０、クラスタ２５６７１、クラスタ２５６７７及びクラスタ２５６７９の全てのデータを集約したクラスタデータ集約ファイル３９が得られる。
【００５７】
そして、そのようにして得られたクラスタデータ集約ファイル３９とクラスタ番号ファイル３８とをバックアップ先ドライブ（図１のファイルサーバ４）に送信して蓄積保存させた後、システムディスク１５ａ内のクラスタ番号ファイル３８とクラスタデータ集約ファイル３９を初期化して（元の白紙の状態に戻して）、バックアップ処理を完了する。
【００５８】
バックアップ先ドライブ（図１のファイルサーバ４）には、バックアップを行った回数分のクラスタ番号ファイル３８とクラスタデータ集約ファイル３９のペアが蓄積される。リカバリを行う際には、所望のペアを選択し、そのペア（クラスタ番号ファイル３８とクラスタデータ集約ファイル３９）に基づいてデータを復元し、復元先ドライブ（データディスク１５ｂ）に書き戻せばよい。各ペアのファイル日時はバックアップ時期を示すので、バックアップ先ドライブ（図１のファイルサーバ４）は、いわばバックアップデータの世代管理を行っていることになる。このため、任意の日時のペアを選択することにより、時期を遡った遡及的なリカバリを行うことができる。
【００５９】
ここで、“集約”とは、書き換えられたクラスタデータを個別に取り出し可能な形で一つのファイル（クラスタデータ集約ファイル３９）にとりまとめる（パッケージ化またはコンテナ化ともいう）ことをいう。集約の仕方は特に限定しないが、たとえば、データベース形式のファイルとしてもよい。つまり、データベースの一つのレコードを一つのクラスタに割り当てるとともに、そのレコードを番号フィールドとデータフィールドとに分け、且つ、番号フィールドとクラスタ番号ファイル３８とをリンクさせるようにしてもよい。このようにすれば、クラスタ番号ファイル３８に記録されたクラスタ番号をキー（手掛かり情報）にして、データベース（クラスタデータ集約ファイル３９）から当該クラスタ番号のクラスタデータを個別に読み出すことができるから、後述するリカバリ時の動作（図１４参照）を支障なく行うことができる。
【００６０】
実施形態の動作は「初期化時の動作」、「ファイル書き込み時の動作」、「バックアップ時の動作」及び「リカバリ時の動作」の４つであり、以下、各々の動作ごとに具体的に説明する。
【００６１】
＜初期化時の動作＞
初期化時の動作とは、ハードディスク装置１５を初期化するときに実行する動作であり、その動作は、以下のとおりである。
図８は、初期化時の動作フローを示す図である。一般的にハードディスク装置１５の初期化は、オペレーティングシステム１８とハードディスクドライバ１９との協調作業によって行われる。すなわち、初期化機能のうち、ハードウェア非依存部分をオペレーティングシステム１８が担当し、ハードウェア依存部分をハードディスクドライバ１９が担当することにより、一体として、ハードディスク装置１５の初期化を行っている。したがって、以下に説明する各々の処理部分（ステップ）は、オペレーティングシステム１８とハードディスクドライバ１９のいずれに含まれるかを一概にいうことはできない。その処理内容がハードウェア非依存部分に関係する場合にはオペレーティングシステム１８に含まれると理解し、また、ハードウェア依存部分に関係する場合にはハードディスクドライバ１９に含まれると理解すればよい。
【００６２】
図示の動作フローは、バックアップ対象ドライブの初期化開始イベントに応答して実行される。バックアップ対象ドライブは、ここでは、図４のデータディスク１５ｂである。このフローを開始すると、まず、バックアップ対象ドライブ（データディスク１５ｂ）の情報を取得する（ステップＳ１１）。取得する情報は、少なくともＬＢＡ情報であり、具体的にはクラスタ数や１クラスタを構成するセクタ数及びセクタの容量などである。もちろん、これ以外の情報を取得してもかまわない。
【００６３】
バックアップ対象ドライブの情報を取得すると、次に、内容が空の状態の「クラスタ記録ファイル群３７」をシステムディスク１５ａに作成する（ステップＳ１２）。クラスタ記録ファイル群３７とは、本実施形態に特有のもの（図７や図１０のクラスタ記録ファイル群３７参照）であり、このクラスタ記録ファイル群３７は、先にも説明したとおり、二つのファイルを含む。一のファイルは、書き込み（データの変更）があったクラスタの番号を記録するもの（図７や図１０のクラスタ番号ファイル３８参照）、二のファイルは、書き込み（データの変更）があったクラスタのデータを集約して記録するもの（図７や図１０のクラスタデータ集約ファイル３９参照）である。
【００６４】
システムディスク１５ａに空のクラスタ記録ファイル群３７を作成すると、次に、バックアップ対象ドライブ（データディスク１５ｂ）のＦＡＴ領域（図６のＦＡＴ１（ファイル情報）３２及びＦＡＴ２（ＦＡＴ１のコピー）３３）の初期化（ステップＳ１３）と、ディレクトリエントリ（図６のディレクトリエントリ３４）の初期化（ステップＳ１４）とを順次に実行して、フローを終了する。
【００６５】
以上の処理部分（ステップＳ１１〜ステップＳ１４）は、公知の初期化時の動作と同じである。実施形態の相違部分は、バックアップ対象ドライブのＦＡＴ領域（図６のＦＡＴ１（ファイル情報）３２及びＦＡＴ２（ＦＡＴ１のコピー）３３）の初期化（ステップＳ１３）と、ディレクトリエントリ（図６のディレクトリエントリ３４）の初期化（ステップＳ１４）とを行う際に、それぞれ、書き込みクラスタ記録の処理（ステップＳ１５、ステップＳ１６）を行う点にある。
【００６６】
ステップＳ１５における書き込みクラスタ記録の処理は、バックアップ対象ドライブのＦＡＴ領域（図６のＦＡＴ１（ファイル情報）３２及びＦＡＴ２（ＦＡＴ１のコピー）３３）の初期化（ステップＳ１３）を行う際に、その初期化に伴って内容が変化するクラスタの番号を、先の一のファイル（図７や図１０のクラスタ番号ファイル３８）に書き込むという処理である。また、同様に、ステップＳ１６における書き込みクラスタ記録の処理は、バックアップ対象ドライブのディレクトリエントリ（図６のディレクトリエントリ３４）の初期化（ステップＳ１３）を行う際に、その初期化に伴って内容が変化するクラスタの番号を、先の一のファイル（図７や図１０のクラスタ番号ファイル３８）に書き込むという処理である。
【００６７】
したがって、この初期化時の動作では、システムディスク１５ａに空の「クラスタ記録ファイル群３７」（図７や図１０のクラスタ記録ファイル群３７参照）が作成されるとともに、データディスク１５ｂのＦＡＴやディレクトリエントリの初期化に伴い、クラスタ記録ファイル群３７を構成する一のファイル（図７や図１０のクラスタ番号ファイル３８参照）に、それらのＦＡＴやディレクトリエントリのクラスタ番号が記録される。
【００６８】
＜ファイル書き込み時の動作＞
ファイル書き込み時の動作とは、アプリケーションソフト１７やオペレーティングシステム１８でバックアップ対象ドライブ（データディスク１５ｂ）に対するデータの書き込みが発生したときに実行する動作であり、その動作は、以下のとおりである。
図９は、ファイル書き込み時の動作フローを示す図である。前記の初期化時の動作と同様に、このファイル書き込み時の動作も、オペレーティングシステム１８とハードディスクドライバ１９との協調作業によって行われる。すなわち、ファイル書き込み機能のうち、ハードウェア非依存部分をオペレーティングシステム１８が担当し、ハードウェア依存部分をハードディスクドライバ１９が担当することにより、一体として、ハードディスク装置１５へのデータの書き込みを行っている。したがって、以下に説明する各々の処理部分（ステップ）は、オペレーティングシステム１８とハードディスクドライバ１９のいずれに含まれるかを一概にいうことはできない。その処理内容がハードウェア非依存部分に関係する場合にはオペレーティングシステム１８に含まれると理解し、また、ハードウェア依存部分に関係する場合にはハードディスクドライバ１９に含まれると理解すればよい。
【００６９】
このフローを開始すると、まず、ファイルシステムは、クラスタ単位の書き込みデータを用意し（ステップＳ２１）、次いで、ハードディスクドライバ１９に対して、書き込み対象のクラスタ番号と書き込みデータとを送る（ステップＳ２２）。そして、ハードディスクドライバ１９は、ＬＢＡ→ＣＨＳパラメータ変換を行うとともに、クラスタデータをセクタデータに変換してデータディスク１５ｂの対象セクタに書き込む（ステップＳ２３）という動作を全ての書き込みデータについて繰り返し実行した後、フローを終了する。
【００７０】
以上の処理部分（ステップＳ２１〜ステップＳ２３）は、公知のファイル書き込み時の動作と同じである。実施形態の相違部分は、クラスタデータをセクタデータに変換してデータディスク１５ｂの対象セクタにデータを書き込む（ステップＳ２３）際に、書き込みクラスタ記録の処理（ステップＳ２４）を行う点にある。
【００７１】
ステップＳ２４における書き込みクラスタ記録の処理は、バックアップ対象ドライブ（データディスク１５ｂ）のファイル書き込みのクラスタ番号を、先の一のファイル（図７や図１０のクラスタ番号ファイル３８）に書き込むという処理である。
【００７２】
したがって、このファイル書き込み時の動作では、バックアップ対象ドライブ（データディスク１５ｂ）に対するファイルの書き込みが発生するたびに、一のファイル（図７や図１０のクラスタ番号ファイル３８参照）に、その書き込みファイルのクラスタ番号が記録される。
【００７３】
図１０は、クラスタ番号記録の概念図である。この図において、左端の縦長図形は、データディスク１５ｂの論理クラスタ構造を示しており、縦長図形を構成する横長矩形状の升目はそれぞれクラスタを表している。
【００７４】
ここで、黒く塗りつぶされたクラスタがデータの書き換えが行われたものであるとする。つまり、クラスタ番号の「１」と「７」と「２５６７０」と「２５６７１」と「２５６７７」と「２５６７９」の４つがデータの書き換えクラスタであるとする。この場合、クラスタ記録ファイル群３７を構成する一のファイル（クラスタ番号ファイル３８）には、「１」、「７」、「２５６７０」、「２５６７１」、「２５６７７」及び「２５６７９」の各クラスタ番号が記録されることになる。
【００７５】
なお、クラスタ記録ファイル群３７を構成する二のファイル（クラスタデータ集約ファイル３９）は、後述のバックアップ時において使用されるものであり、このクラスタデータ集約ファイル３９には、後述のバックアップ時の動作において、クラスタ記録ファイル群３７に記録されているクラスタ番号を有するクラスタのデータを集約したものが記録される。たとえば、図示の例では、クラスタ番号ファイル３８に「１」、「７」、「２５６７０」、「２５６７１」、「２５６７７」及び「２５６７９」の各クラスタ番号が記録されているので、後述のバックアップ時の動作において、それらのクラスタ番号に対応した、クラスタ１のデータ、クラスタ７のデータ、クラスタ２５６７０のデータ、クラスタ２５６７１のデータ、クラスタ２５６７７のデータ及びクラスタ２５６７９のデータが集約して記録される。
【００７６】
＜バックアップ時の動作＞
バックアップとは、バックアップ対象ドライブ（データディスク１５ｂ）のデータを他の記憶要素（バックアップ先ドライブ）に保存することをいう。バックアップ先ドライブはバックアップ対象ドライブ以外のもの（物理的に異なるもの）であればよく、実施形態では、特にそれに限定されないが、図１のファイルサーバ４をバックアップ先ドライブとしている。なお、１台のハードディスクに複数のパーティションを作成し、そのうちの一つのパーティションをバックアップ先とすることも一部で行われているが、このようなバックアップ手法は安全性の点で好ましくない。１台のハードディスクに物理的な障害が生じた場合はバックアップ先のハーティションにもアクセスできず、データの復旧（リカバリ）が不可能になるからである。したがって、実施形態におけるバックアップ先ドライブは、バックアップ対象ドライブ（データディスク１５ｂ）と物理的に異なる他の記憶要素（たとえば、図１のファイルサーバ４）であるものとする。
【００７７】
実施形態におけるバックアップ機能は、主にアプリケーションソフト１７に実装されており、アプリケーションソフト１７は、定期的または不定期に当該バックアップ機能を実行する。
図１１は、バックアップ時の動作フローを示す図である。このフローにおいて、定期的または不定期にバックアップを開始すると、まず、バックアップ対象ドライブ（データディスク１５ｂ）の書き込み禁止を設定する（ステップＳ３１）。言うまでもなく、この書き込み禁止は、データディスク１５ｂの未使用期間中に行わなければならない。たとえば、深夜などのようにＰＣ８が使用されていない期間であるか否かを確認してから、書き込み禁止の設定を行うことが望ましい。あるいは、より積極的に、ＰＣ８に対して動作中であるかの問い合わせを行い（たとえば、ＰＣ８に対するＰ−ｉｎｇ発行など）、応答がなかった場合に書き込み禁止の設定を行うようにしてもよい。
【００７８】
書き込み禁止の設定を行うと、次に、システムディスク１５ａに格納されているクラスタ記録ファイル群３７を参照し（ステップＳ３２）、そのクラスタ記録ファイル群３７に含まれるクラスタ番号ファイル３８の記録情報（クラスタ番号）を読み込み、クラスタ番号の若い順に、データディスク１５ｂからクラスタデータを読み込む（ステップＳ３３）。
【００７９】
次いで、読み込んだクラスタデータを圧縮する（ステップＳ３４）。この圧縮は、バックアップデータのサイズを小さくして、バックアップ先ドライブ（本実施形態では図１のファイルサーバ４）の容量圧迫回避や、広域ネットワーク３などの通信トラフィック低減などを目的として行われる。圧縮の方法は様々考えられるが、たとえば、ランレングス圧縮などの冗長性を取り除く手法であってもよい。
【００８０】
図１２は、ランレングス圧縮の概念図である。この図において、８個の論理セクタで構成された１個の論理クラスタを考える。一般的にファイルシステムではクラスタ単位でファイルを書き込むため、しばしば、一つのクラスタに１ないしは複数の未使用セクタが生じることがある。かかる未使用セクタは同一のダミーデータ（たとえば、“０ｘｆｆ”のバイトデータ）で埋められていることが多い（冗長性がある）ため、このような冗長性を取り除くことにより、バックアップデータのサイズを小さくすることができる。
【００８１】
今、一つのクラスタの半分が“０ｘｆｆ”のバイトデータで埋められているものとする。つまり、未使用セクタが４個あるものとする。この場合の未使用セクタのサイズは、５１２バイト×４＝２０４８バイトとなり、これを１Ｋ＝１０２４バイトで表すと、２Ｋバイトになる。ちなみに、１Ｋ＝１０２４バイトは、１０進数の１０００に最も近い２の累乗（２の１０乗）であり、プログラムの分野で多用されている表記法である。一般的に１０進数の１０００は１ｋ（小文字の単位記号とキロという読み方）で表されるが、ハードディスク装置の記憶容量やクラスタサイズなどは大文字の単位記号（Ｋ）と“ケー”という読み方で区別する習わしになっているので、本明細書でもその区別に従うものとする。
【００８２】
ランレングス圧縮を適用すると、４個の未使用セクタのサイズを２Ｋバイトから５バイトに小さくできる。これは、長さデータの４バイトとデータの１バイトとを加えた５バイトになるからである。
【００８３】
クラスタデータを圧縮すると、次に、圧縮を完了したクラスタデータを含むクラスタデータをクラスタ記録ファイル群３７のクラスタデータ集約ファイル３９に書き出し（ステップＳ３５）、ステップＳ３３〜ステップＳ３５の処理を全てのクラスタ番号のデータについて繰り返す。そして、全てのクラスタ番号のデータに対する処理が完了（ステップＳ３６の“ＹＥＳ”）すると、次に、バックアップ対象ドライブ（データディスク１５ｂ）の書き込み禁止を解除し（ステップＳ３７）、クラスタ記録ファイル群３７のクラスタ番号ファイル３８とクラスタデータ集約ファイル３９をバックアップ先ドライブ（図１のファイルサーバ４）に送信し（ステップＳ３８、ステップＳ４９）、クラスタ記録ファイル群３７のクラスタ番号ファイル３８を初期化（ステップＳ４０）してから、フローを終了する。
【００８４】
図１３は、バックアップ動作の概念図である。（ａ）は１回目のバックアップ、（ｂ）は２回目のバックアップを示している。今、１回目のバックアップを行う際、クラスタ番号ファイル３８に「２５」、「２８」、「５０」、「１２３４」、「１８９０」、「２５４０」の４個のクラスタ番号が記録されているものとすると、この場合、クラスタデータ集約ファイル３９には、それらのクラスタ番号に対応した、クラスタ２５のデータ、クラスタ２８のデータ、クラスタ５０のデータ、クラスタ１２３４のデータ、クラスタ１８９０のデータ、及び、クラスタ２５４０のデータが集約して記録される。そして、これらの集約クラスタデータに対して圧縮が行われた後、バックアップ先ドライブ（図１のファイルサーバ４）に送信され、保存される。この保存されたバックアップデータを「バックアップデータ＃１」ということにする。
【００８５】
２回目のバックアップも同様である。すなわち、２回目のバックアップを行う際、クラスタ番号ファイル３８に「２５」、「２７」、「１００」、「１２３４」、「１５００」、「２６００」の４個のクラスタ番号が記録されているものとすると、この場合も、クラスタデータ集約ファイル３９には、それらのクラスタ番号に対応した、クラスタ２５のデータ、クラスタ２７のデータ、クラスタ１００のデータ、クラスタ１２３４のデータ、クラスタ１５００のデータ、及び、クラスタ２６００のデータが集約して記録される。そして、これらの集約クラスタデータに対して圧縮が行われた後、バックアップ先ドライブ（図１のファイルサーバ４）に送信され、保存される。この保存されたバックアップデータを「バックアップデータ＃２」ということにする。
【００８６】
このように、バックアップ先ドライブ（図１のファイルサーバ４）には、バックアップを行うたびに、そのバックアップ時点までに変更があったクラスタの集約データ（バックアップデータ＃１、＃２）が蓄積保存される。ここで、（ａ）のときのバックアップデータ＃１は、（ｂ）のときのバックアップデータ＃２よりも日時が古い。ちなみに、ここでは２回のバックアップ（バックアップデータ＃１、＃２）しか示していないが、バックアップは後述のリカバリを実行するまでであれば何回行ってもよい。たとえば、ｍ回行ったとすると、バックアップ先ドライブ（図１のファイルサーバ４）には、＃１〜＃ｍまでのバックアップデータが保存されることになる。＃１〜＃ｍまでのバックアップデータは、１回目、２回目、３回目、・・・・、ｍ回目の順にバックアップ日時が新しくなるので、任意の日時に遡ったリカバリが可能になる。
【００８７】
図示の例では、１回目のバックアップ日時に遡れば、バックアップデータ＃１に基づき、クラスタ２５のデータ、クラスタ２８のデータ、クラスタ５０のデータ、クラスタ１２３４のデータ、クラスタ１８９０のデータ、及び、クラスタ２５４０のリカバリを行うことができ、あるいは、最新の日時であれば、バックアップデータ＃２に基づき、クラスタ２５のデータ、クラスタ２７のデータ、クラスタ１００のデータ、クラスタ１２３４のデータ、クラスタ１５００のデータ、及び、クラスタ２６００のリカバリを行うことができる。
【００８８】
なお、図示の例では、２回目のバックアップにおけるクラスタデータ集約ファイル３８のクラスタ２５とクラスタ１２３４を黒く塗りつぶしているが、これは、１回目のバックアップにおけるクラスタデータ集約ファイル３８と重複するクラスタデータを示している。この重複クラスタデータの取り扱いについては、以下のリカバリ時の動作で説明する。
【００８９】
＜リカバリ時の動作＞
リカバリ（復元またはリストアともいう）とは、バックアップ先ドライブ（図１のファイルサーバ４）に保存しておいたバックアップデータを用いて、バックアップ対象ドライブ（データディスク１５ｂ）のデータを復元することをいう。リカバリの対象となるドライブ（データディスク１５ｂ）のことを復元先ドライブともいう。
【００９０】
先のバックアップ機能と同様に、実施形態におけるリカバリ機能も主にアプリケーションソフト１７に実装されており、アプリケーションソフト１７は、不定期に当該リカバリ機能を実行する。
【００９１】
図１４は、リカバリ時の動作フローを示す図である。このフローにおいて、まず、復元したいバックアップ日時を選択する（ステップＳ５１）。バックアップ日時は、ファイルサーバ４に保存されているバックアップデータのファイル日時リストから選択することができる。たとえば、図１３の（ａ）、（ｂ）に示す二つのバックアップデータ（バックアップデータ＃１とバックアップデータ＃２）を例にし、バックアップデータ＃１のファイル日時を「２０１１／０７／２０  ２１：００：００」、バックアップデータ＃２のファイル日付けを「２０１１／０７／２１  ２１：００：００」とすると、これら二つの日時のいずれかを選択することができる。古い日時であれば、「２０１１／０７／２０  ２１：００：００」を選択すればよく、または、最新の日時であれば、「２０１１／０７／２１  ２１：００：００」を選択すればよい。
【００９２】
復元したいバックアップ日時を選択すると、次に、一番古いバックアップのクラスタ記録と、それ以降のクラスタ記録とを比較し、日時が古い重複クラスタを除外する（ステップＳ５２）。
【００９３】
次いで、除外したクラスタを除き、仮想のディスクイメージファイル（図１５の復元用データ４０参照）にバックアップされたデータから対象となるクラスタ位置順にコピーし（ステップＳ５３）、二番目以降、順次バックアップのクラスタ記録と、それ以降のクラスタ記録とを比較し、以降のクラスタ記録と重複するクラスタを除外する（ステップＳ５４）。
【００９４】
次いで、除外したクラスタを除き、仮想のディスクイメージファイルにバックアップされたデータから対象となるクラスタ位置順にコピーし（ステップＳ５５）、選択日時のバックアップファイルであるか否かを判定し（ステップＳ５６）、選択日時のバックアップファイルでなければ、ステップＳ５４に戻り、選択日時のバックアップファイルであれば、次に、データのないクラスタ位置を圧縮し（ステップＳ５７）、生成された仮想のディスクイメージを復元先ドライブ（データディスク１５ｂ）に送信し（ステップＳ５８）、復元先ドライブ（データディスク１５ｂ）のハードディスクコントローラ２３に対して、受け取ったクラスタデータを物理データに変換してディスク２９に書き込む（ステップＳ５９）という旨の指令を行った後、フローを終了する。
【００９５】
図１５は、リカバリの概念図である。この図において、今、バックアップ先ドライブ（ファイルサーバ４）に二つのバックアップデータ＃１、＃２が保存されているものとする。なお、これらのバックアップデータ＃１、＃２は、図１３の同名データと同じものである。
【００９６】
バックアップデータ＃１には、クラスタ番号「２５」、「２８」、「５０」、「１２３４」、「１８９０」、「２５４０」の４つのクラスタデータが含まれており、また、バックアップデータ＃２には、クラスタ番号「２５」、「２７」、「１００」、「１２３４」、「１５００」、「２６００」の４つのクラスタデータが含まれている。そのうち、重複クラスタのデータは、黒く塗りつぶされた「２５」と「１２３４」の二つのデータである。
【００９７】
これら二つのバックアップデータ＃１、＃２を用いてリカバリする場合、すなわち、最新日時のバックアップデータ＃２を選択してリカバリする場合は、非重複クラスタと、重複クラスタのうちの新しいクラスタとを組み合わせて復元用データ４０（仮想のディスクイメージ）を生成する。つまり、日時が古い方のバックアップデータ＃１のクラスタ２５とクラスタ１２３４以外のクラスタデータから復元用データ４０を生成する。たとえば、この例では、バックアップデータ＃１のクラスタ２８、クラスタ５０、クラスタ１８９０、クラスタ２５４０と、バックアップデータ＃２のクラスタ２５、クラスタ２７、クラスタ１００、クラスタ１２３４、クラスタ１５００、クラスタ２６００とを組み合わせて復元用データ４０（仮想のディスクイメージ）を生成する。
【００９８】
したがって、図示の例の場合、復元用データ４０は、クラスタ２５（＃２）、クラスタ２７（＃２）、クラスタ２８（＃１）、クラスタ５０（＃１）、クラスタ１００（＃２）、クラスタ１２３４（＃２）、クラスタ１５００（＃２）、クラスタ１８９０（＃１）、クラスタ２５４０（＃１）、クラスタ２６００（＃２）で構成されることになり、復元先ドライブ（データディスク１５ｂ）の該当クラスタが、セクタ単位にこれらの復元用データ４０で置き換えられる（復元される）ことになる。
【００９９】
以上のとおりであるから、本実施形態によれば、以下の効果を奏することができる。
（１）バックアップの効率改善：
たとえば、冒頭で説明したデータバックアップ用のパッケージソフトでは、ファイル単位でバックアップを行っている。このようなファイル単位のバックアップは、必然的にファイルシステムへのアクセスを必要とするので、効率が悪く、バックアップに相当の時間を必要とするという課題がある。本実施形態では、クラスタ単位にバックアップを行うので、ファイルシステムにアクセスする必要がない。したがって、ファイル単位でバックアップを行う場合に比べて効率を改善でき、バックアップに要する時間を短縮化することができる。
【０１００】
なお、実施形態では、「クラスタ単位」でバックアップを行っているが、これに限定されない。バックアップ対象ドライブ（データディスク１５ｂ）のディスク２９上における細分化された記憶単位であればよく、たとえば、セクタ単位であってもよい。ただし、セクタ単位でバックアップを行う場合は、たとえば、１クラスタ＝８セクタのクラスタ単位で行う場合に比べて、そのセクタ数（８セクタ）に比例した処理が必要になるため、処理効率の観点からは「クラスタ単位」で行うことが現実的であるものの、思想的には、この例（セクタ単位で行う）を除外しない。
【０１０１】
（２）バックアップデータのサイズ縮小：
たとえば、ファイル単位でバックアップを行う場合、バックアップデータのサイズは、バックアップ対象の全ファイルの合計サイズ相当になる。たとえば、５個のファイルをバックアップするものとし、各々のファイルサイズを便宜的に１０Ｍとすると、バックアップデータのサイズは１０Ｍ×５＝５０Ｍになる。しかし、既存のファイルに変更を加えた場合、その変更はファイルの一部分であることが多い。たとえば、ワープロ文書ファイルの一部の文字を変更したり、削除したり、文字を追加したりした場合、その変更箇所はワープロ文書内のごく一部分に過ぎない。本実施形態では、クラスタ単位でバックアップを行うので、変更部分を含むクラスタのみバックアップすることができ、バックアップデータのサイズを縮小することができる。かかるバックアップデータのサイズ縮小により、実施形態では、バックアップ先ドライブ（ファイルサーバ４）の記憶容量を圧迫しないという利点が得られ、また、広域ネットワーク３などの通信トラフックの増大を招かないという利点が得られる。
加えて、実施形態では、クラスタデータを圧縮したものをバックアップデータとしているので、より一層、バックアップデータのサイズ縮小を図ることができる。
バックアップデータのサイズ縮小は、とりわけ、ネットワーク利用のクラウド環境におけるバックアップやリカバリの際に大きな効果を発揮する。クラウド環境では、ネットワーク上の様々なリソースをクライアントで利用するが、その際にネットワークに大量のトラフィックが流れ、ネットワークの帯域が圧迫される。帯域圧迫の要因はデータ量である。本実施形態によれば、バックアップデータのサイズ縮小を図ることができるので、トラフィックを抑制し、かかる帯域圧迫を回避して、クラウド環境の動作低下を招かないという有益な効果が得られる。
【０１０２】
（３）遡及的なリカバリの実現：
実施形態では、バックアップを行うたびに、その時点のクラスタ記録ファイル群３７（クラスタ番号ファイル３８とクラスタデータ集約ファイル３９）をバックアップデータ（図１３や図１５のバックアップデータ＃１、＃２参照）としてバックアップ先ドライブ（ファイルサーバ４）に蓄積保存するので、いわゆるバックアップデータの履歴管理を行うことができ、所望の時期に遡った遡及的なリカバリを行うことができる。
【０１０３】
（４）既存のコンピュータ応用機器への適用容易性：
実施形態の主要な機能は、クラスタ記録ファイル群３７（クラスタ番号ファイル３８とクラスタデータ集約ファイル３９）の生成機能と、バックアップ対象ドライブ（データディスク１５ｂ）の初期化時に行われる書き込みクラスタ記録の処理（図７のステップＳ１５、ステップＳ１６）と、バックアップ対象ドライブ（データディスク１５ｂ）のファイル書き込み処理時に行われる書き込みクラスタ記録の処理（図９のステップＳ２４）と、バックアップ処理（図１１のステップＳ３１〜ステップＳ４０）と、リカバリ処理（図１４のステップＳ５１〜ステップＳ５９）とである。
【０１０４】
これらの各機能はソフトウェアで実現することができる。ソフトウェアの実装位置は、特に限定しないが、アプリケーションソフト１７やオペレーティングシステム１８あるいはハードディスクドライバ１９になる。たとえば、ユーザ操作を必要としない機能（バックアップ処理とリカバリ処理以外の機能）については、オペレーティングシステム１８やハードディスクドライバ１９に実装してもよい。特にハードウェアに依存する部分が多い機能については、ハードディスクドライバ１９に実装してもよい。また、バックアップ処理やリカバリ処理の機能については、ユーザ操作を必要とすることがあるため、アプリケーションソフト１７として実装したり、あるいは、既存のアプリケーションソフト１７を改良して実装したりしてもよい。
【０１０５】
このように、実施形態の主要な機能をソフトウェアで実装できるので、バックアップ対象ドライブ（データディスク１５ｂ）を含むコンピュータ応用機器（実施形態ではＮＡＳ９）のハードウェア構成に一切手を加える必要がない。したがって、そのようなバックアップ対象ドライブを含むコンピュータ応用機器であれば、如何なるものであっても実施形態の技術を適用することができる。
【０１０６】
なお、以上の説明では、バックアップ対象ドライブをハードディスクとしているが、これに限定されない。ＬＢＡ方式でアクセス可能な記憶デバイスであればよく、たとえば、半導体メモリで構成されたいわゆるシリコンディスクであってもよいし、あるいは、ＣＤ−ＲやＤＶＤ−Ｒなどの光磁気ディスクドライブであってもよい。また、バックアップ対象ドライブのインターフェースについてもＳＡＴＡやＳＣＳＩまたはＰＡＴＡなどに限定されない。たとえば、ＳＤカード規格のインターフェースや、ＵＳＢメモリ規格のインターフェース、あるいは、テープデバイス規格のインターフェースなどであってもよい。
【０１０７】
また、実施形態では、バックアップ先ドライブ（ファイルサーバ４）に生のバックアップデータ（図１３や図１５のバックアップデータ＃１、＃２参照）を蓄積保存しているが、悪意の第三者に盗み読まれないようにするために、バックアップデータを暗号化してからバックアップ先ドライブ（ファイルサーバ４）に蓄積保存することが望ましい。暗号化の方法は特に限定しない。たとえば、２５６ｂｉｔＡＥＳ暗号などを用いてもよい。
【０１０８】
以上、本発明のいくつかの実施形態を説明したが、この発明は、これらに限定されるものではなく、特許請求の範囲に記載された発明とその均等の範囲を含むものである。
以下に、本件出願の特許請求の範囲に記載された発明を付記する。
【０１０９】
（付記１）
図１６は、付記１の構成図である。
請求項１記載の発明は、記憶領域が複数の小さな領域（１００；実施形態のクラスタまたはセクタに相当）に細分化されたバックアップ対象ドライブ（１０１；実施形態のデータディスク１５ｂに相当）に対して行われるデータの書き込みを検出する検出手段（１０２；実施形態のマイクロプロセッサ１０に相当）と、
前記検出手段（１０２）の検出に応答して前記データが書き込まれた領域の位置を特定する特定手段（１０３；実施形態のマイクロプロセッサ１０に相当）と、
前記特定手段（１０３）によって特定された位置の情報を記録する記録手段（１０４；実施形態のマイクロプロセッサ１０に相当）と、
前記記録手段（１０４）に記録された位置の情報を用いて前記バックアップ対象ドライブ（１０１）から当該情報で示された位置の領域のデータを読み出す読み出し手段（１０５；実施形態のマイクロプロセッサ１０に相当）と、
前記読み出し手段（１０５）によって読み出されたデータと前記記録手段（１０４）に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブ（１０１）とは物理的に異なる他の記憶要素（１０６；実施形態のファイルサーバ４に相当）に記憶させる記憶制御手段（１０７；実施形態のマイクロプロセッサ１０に相当）と
を備えたことを特徴とするバックアップ装置（１０８；実施形態のＮＡＳ９に相当）である。
【０１１０】
（付記２）
請求項２記載の発明は、さらに、前記読み出し手段によって読み出されたデータを圧縮する圧縮手段を備え、前記記憶制御手段は、この圧縮手段によって圧縮されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとは物理的に異なる他の記憶要素に記憶させることを特徴とする請求項１に記載のバックアップ装置である。
【０１１１】
（付記３）
請求項３記載の発明は、さらに、前記圧縮手段によって圧縮されたデータまたは前記読み出し手段によって読み出されたデータを暗号化する暗号化手段を備え、前記記憶制御手段は、この暗号化手段によって暗号化されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとは物理的に異なる他の記憶要素に記憶させることを特徴とする請求項２に記載のバックアップ装置である。
【０１１２】
（付記４）
請求項４記載の発明は、記憶領域が複数の小さな領域に細分化されたバックアップ対象ドライブに対して行われるデータの書き込みを検出する検出工程と、
前記検出工程の検出に応答して前記データが書き込まれた領域の位置を特定する特定工程と、
前記特定工程によって特定された位置の情報を記録する記録工程と、
前記記録工程で記録された位置の情報を用いて前記バックアップ対象ドライブから当該情報で示された位置の領域のデータを読み出す読み出し工程と、
前記読み出し工程によって読み出されたデータと前記記録工程で記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとは物理的に異なる他の記憶要素に記憶させる記憶制御工程と
を含むことを特徴とするバックアップ方法である。
【０１１３】
（付記５）
請求項５記載の発明は、バックアップ装置のコンピュータを、
記憶領域が複数の小さな領域に細分化されたバックアップ対象ドライブに対して行われるデータの書き込みを検出する検出手段、
前記検出手段の検出に応答して前記データが書き込まれた領域の位置を特定する特定手段、
前記特定手段によって特定された位置の情報を記録する記録手段、
前記記録手段に記録された位置の情報を用いて前記バックアップ対象ドライブから当該情報で示された位置の領域のデータを読み出す読み出し手段、
前記読み出し手段によって読み出されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとは物理的に異なる他の記憶要素に記憶させる記憶制御手段
として機能させることを特徴とするプログラムである。
【０１１４】
（付記６）
請求項６記載の発明は、記憶領域が複数の小さな領域に細分化されたバックアップ対象ドライブに記憶されたデータをネットワークを介したサーバー上にバックアップするバックアップシステムにおいて、
前記バックアップ対象ドライブに対して行われるデータの書き込みを検出する検出手段と、
前記検出手段の検出に応答して前記データが書き込まれた領域の位置を特定する特定手段と、
前記特定手段によって特定された位置の情報を記録する記録手段と、
前記記録手段に記録された位置の情報を用いて前記バックアップ対象ドライブから当該情報で示された位置の領域のデータを読み出す読み出し手段と、
前記読み出し手段によって読み出されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記バックアップ対象ドライブとネットワークを介して接続される前記サーバーに記憶させる記憶制御手段と
を備えたことを特徴とするバックアップシステムである。
【０１１５】
（付記７）
請求項７記載の発明は、さらに、前記読み出し手段によって読み出されたデータを圧縮する圧縮手段を備え、前記記憶制御手段は、この圧縮手段によって圧縮されたデータと前記記録手段に記録されている位置の情報とをペアにして、前記サーバーへネットワークを介して送信することを特徴とする請求項６に記載のバックアップシステムである。
【符号の説明】
【０１１６】
３  広域ネットワーク（ネットワーク）
４  ファイルサーバ（他の記憶要素、サーバ）
９  ＮＡＳ（バックアップ装置）
１０  マイクロプロセッサ（検出手段、特定手段、記録手段、読み出し手段、記憶制御手段）
１５ｂ  データディスク（バックアップ対象ドライブ）
１００  領域
１０１  バックアップ対象ドライブ
１０２  検出手段
１０３  特定手段
１０４  記録手段
１０５  読み出し手段
１０６  他の記憶要素
１０７  記憶制御手段
１０８  バックアップ装置
【図１】
2013029902.tif 000003
【図２】
2013029902.tif 000004
【図３】
2013029902.tif 000005
【図４】
2013029902.tif 000006
【図５】
2013029902.tif 000007
【図６】
2013029902.tif 000008
【図７】
2013029902.tif 000009
【図８】
2013029902.tif 000010
【図９】
2013029902.tif 000011
【図１０】
2013029902.tif 000012
【図１１】
2013029902.tif 000013
【図１２】
2013029902.tif 000014
【図１３】
2013029902.tif 000015
【図１４】
2013029902.tif 000016
【図１５】
2013029902.tif 000017
【図１６】
2013029902.tif 000018