(57)【要約】【課題】データ記憶装置の内容を高速でバックアップおよび復元するための方法および装置を提供する。【解決手段】第１および第２のパーティションを含みかつ前記第１のパーティション内の個々の物理ブロックは第２のパーティション内の個々の物理ブロックと対になっているデータ記憶媒体（１８）と、物理ブロックの各対のための状態フラグ表（３０）と、状態フラグに従って物理ブロック上で読取り動作および書込み動作を行うためのコントローラ（２６）とを備える装置を提供する。この装置で実行する方法も提供する。【選択図】図１
2008204460.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２のパーティションを含むデータ記憶媒体であって、前記第１のパーティション内の個々の物理ブロックは前記第２のパーティション内の個々の物理ブロックと対になっている前記データ記憶媒体と、
前記物理ブロックの各対に対する状態フラグ表と、
前記状態フラグに従って前記物理ブロック上で読取り動作および書込み動作を行うコントローラと、
を備える装置。
【請求項２】
前記状態フラグは、ごみ（ｇａｒｂａｇｅ）、データ、バックアップ、およびライブの１つを含む状態を識別する、請求項１記載の装置。
【請求項３】
バックアップ動作に応じて、バックアップ状態はごみ状態に変わり、ライブ状態はデータ状態に変わる、請求項２記載の装置。
【請求項４】
復元動作に応じて、バックアップ状態はデータ状態に変わり、ライブ状態はごみ状態に変わる、請求項２記載の装置。
【請求項５】
読取り動作はデータ状態またはライブ状態を有する物理ブロックだけで行い、前記状態フラグは読取り動作では変わらない、請求項２記載の装置。
【請求項６】
書込み動作はごみ状態またはライブ状態を有する物理ブロックだけで行い、各書込み動作によりごみ状態はライブ状態に変わり、データ状態はバックアップ状態に変わる、請求項２記載の装置。
【請求項７】
前記状態フラグを記憶するための不揮発性メモリを更に備える、請求項１記載の装置。
【請求項８】
前記状態フラグを記憶するための揮発性メモリを更に備え、電源が落ちた場合はディスク回転エネルギーを用いて前記データ記憶媒体内の前記状態フラグを記憶する、請求項１記載の装置。
【請求項９】
複数の論理ブロック・アドレスを更に備え、各論理ブロック・アドレスは１対の物理ブロック・アドレスに対応する、請求項１記載の装置。
【請求項１０】
前記第１のパーティション内の物理ブロックと対になる物理ブロックを有する第３のパーティションを更に備える、請求項１記載の装置。
【請求項１１】
記憶装置内に物理ブロックの第１および第２の集合を設けかつ前記第１の集合内の個々の物理ブロックは前記第２の集合内の個々の物理ブロックと対になっており、
物理ブロックの各対に対する状態フラグを設け、
前記状態フラグに従って前記物理ブロックの１つで動作を実行し、
前記実行した動作に応じて前記状態フラグを変更する、
ことを含む方法。
【請求項１２】
前記状態フラグは、ごみ、データ、バックアップ、およびライブの１つを含む状態を識別する、請求項１１記載の方法。
【請求項１３】
バックアップ動作に応じて、バックアップ状態はごみ状態に変わり、ライブ状態はデータ状態に変わる、請求項１２記載の方法。
【請求項１４】
復元動作に応じて、バックアップ状態はデータ状態に変わり、ライブ状態はごみ状態に変わる、請求項１２記載の方法。
【請求項１５】
読取り動作はデータ状態またはライブ状態を有する物理ブロックだけで行う、請求項１２記載の方法。
【請求項１６】
書込み動作はごみ状態またはライブ状態を有する物理ブロックだけで行い、各書込み動作によりごみ状態はライブ状態に変わり、データ状態はバックアップ状態に変わる、請求項１２記載の方法。
【請求項１７】
前記物理ブロックの第１および第２の集合は高速のバックアップ動作および復元動作をサポートするためにデータ記憶媒体を分割するときに割当てる、請求項１１記載の方法。
【請求項１８】
バックグランドの動作でデータを移して、クリーン／ダーティ・フラグにより制御される、セクションの階層システムを持つ連続的なライブ・パーティションおよびバックアップ・パーティションを作ることを更に含む、請求項１１記載の方法。
【請求項１９】
バックアップ読取りホスト・コマンドを出すことを更に含む、請求項１１記載の方法。
【請求項２０】
バックアップ動作および復元動作はブート・シーケンス中に行う、請求項１１記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶装置に関するものであって、より特定すると、データ記憶装置の内容を非常に高速でバックアップおよび復元するための方法および装置に関するものである。
【背景技術】
【０００２】
データ記憶装置の内容を以前の既知の良い状態に復元する必要がある場合がある。このような場合の例としては、記憶装置のデータがウイルスや悪意のある人または不注意な人により壊された場合、新しい装置ドライバまたはソフトウエア（ＳＷ）の他の部分がオペレーティング・システム（ＯＳ）のローディングを妨げる場合、重要なファイルが偶然消されまたは重ね書きされた場合などがある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
記憶装置の内容を復元するためのバックアップ方法は周知である。しかし、かかるバックアップ方法では、通常、時間のかかるデータのコピーを行う。
データ記憶装置の内容を高速でバックアップおよび復元するための方法および装置が必要である。
【課題を解決するための手段】
【０００４】
本発明は、第１および第２のパーティションを含みかつ第１のパーティション内の個々の物理ブロックは第２のパーティション内の個々の物理ブロックと対になっているデータ記憶媒体と、物理ブロックの各対の状態フラグ表と、状態フラグに従って物理ブロック上で読取り動作および書込み動作を行うためのコントローラとを備える装置を提供する。
【０００５】
別の態様では、本発明は記憶装置内に物理ブロックの第１および第２の集合を設けかつ第１の集合内の個々の物理ブロックは第２の集合内の個々の物理ブロックと対になっており、物理ブロックの各対の状態フラグを設け、状態フラグに従って物理ブロックの１つで動作を実行し、実行した動作に応じて状態フラグを変更することを含む方法を提供する。
【０００６】
状態フラグは、ごみ（ｇａｒｂａｇｅ）、データ（ｄａｔａ）、バックアップ（ｂａｃｋｕｐ）、およびライブ（ｌｉｖｅ）の１つを含み、バックアップ動作に応じて、バックアップ状態はごみ状態に変わりまたライブ状態はデータ状態に変わり、また復元動作に応じて、バックアップ状態はデータ状態に変わりまたライブ状態はごみ状態に変わる。
【０００７】
別の態様では、読取り動作はデータ状態またはライブ状態を有する物理ブロックだけで行い、書込み動作はごみ状態またはライブ状態を有する物理ブロックだけで行う。
状態フラグは不揮発性メモリまたは揮発性メモリ内に記憶し、電源が落ちたときは回転エネルギーを用いて記憶媒体に書き込むことができる。
【実施例】
【０００８】
図１は、本発明の１つの実施の形態に従って構築されるコンピュータ装置１０の略図である。この装置は、基本入出力システム（ＢＩＯＳ）１４およびオペレーティング・システム（ＯＳ）１６を含むホスト・コンピュータ１２を含む。ディスク・ドライブなどのデータ記憶装置１８はインターフェース２０を介してホストと通信する。データ記憶装置はホスト内に取り付けてもよいし、ホストから離れた場所にあってもよい。ユーザがホストにアクセスするのに用いるユーザ・インターフェース２２を設ける。データ記憶装置は、インターフェース２４、コントローラ２６、および１個以上のデータ記憶ディスクを含む記憶媒体２８を含む。フラグ表３０も含む。フラグ表の中のフラグは、記憶媒体上の各物理的位置にあるデータの状態を示すのに用いられる。フラグ表は不揮発性メモリ（例えば、記憶媒体上の隠れたパーティションまたはフラッシュ・メモリなどの別のメモリでよい）内に記憶してよい。記憶媒体は少なくとも２つのパーティションに分割する。本発明の１つの実施の形態では、２つの物理パーティションは１つのパーティションに見える仮想パーティションを形成する。動作するときフラグに従って、データは記憶媒体に書き込まれまた記憶媒体から読み取られる。
【０００９】
本発明は、ユーザが、データ記憶装置の１つ以上の指定されたパーティション（例えば、保護パーティション）の状態のスナップショットを作り、後で、選択されたパーティションのデータを、最後にスナップショットを取ったときの状態に復元することができる方法および機器を提供する。これを行うには、ディスクを構成するときに保護パーティションごとに「影（ｓｈａｄｏｗ）」（例えば、見えない）パーティションを作り、論理ブロック・アドレス（ＬＢＡ）を保持する。ＬＢＡは、ＬＢＡで識別される物理的位置にあるデータの変化したバージョンおよびバックアップ・バージョンの状態すなわち属性を識別するポインタ（状態フラグとも呼ぶ）を持つ。この装置はディスク・ドライブの低レベルの制御を実行するファームウエアの変更だけで実現してよいが、不揮発性メモリの形の若干のハードウエア（ＨＷ）を追加することにより性能が更に良くなる。
【００１０】
本発明の１つの実施の形態に従って構築される装置では、１つの論理ディスク・ブロック（１つのＬＢＡでアドレス指定する）を２つの物理ディスク・ブロックで表す。この２つの物理ブロックをライブ・ブロックおよび影ブロックと呼ぶ。ユーザは、この装置がデータ記憶装置の保護パーティション内に記憶されているデータのスナップショットを取るためのコマンドを入力してよい。スナップショットを取るときは、ライブ物理ブロックにはバックアップの印を付け（該当するフラグをセットすることにより）、古いバックアップ物理ブロックには有効データを含まないという印を付ける。ライブ物理ブロックに有効データを書き込まなかった場合は何も動作する必要はなく、前にバックアップと指定された物理ブロックはそのまま有効なバックアップである。印を付けるには、物理ブロック内のデータの状態を識別する複数の状態フラグを用いて行う。
【００１１】
復元動作を行うときは、バックアップ・データを用いてデータ記憶装置を既知の良い状態に復元する。次に、有効データを含むという印をバックアップ・ブロックに付け、また無効データ（ごみとも呼ぶ）を含むという印をライブ・ブロックに付ける。
その後の読取り動作では有効データを持つブロックにアクセスする。他方で、書込み動作ではごみに重ね書きする。この場合は、新しいデータはライブ・データになり、その対の片方（前の有効データを持つブロック）はバックアップになる。
【００１２】
この方法では、バックアップ動作中および復元動作中はデータ処理を行わない。より特定して述べると、バックアップ動作中および復元動作中はデータのコピーを行わず、状態フラグを変更するだけである。更に、どの読取りまたは書込み動作でも１つの物理ブロックだけにアクセスする（最初の書込み動作では恐らく１つのフラグ更新を行う）。したがって、バックアップ動作および復元動作はほぼ瞬時であり、読取り動作および書込み動作の速度は変わらない。
【００１３】
本発明の動作を示す例として、ディスクを分割するときに割り当てるパーティションをＲおよびＳとする。パーティション内の物理的データ記憶位置を識別するのに２つの同じサイズの物理的ブロック領域を用いる。Ｒは最初は正規のパーティションを形成し、Ｓは影すなわち隠れパーティションを形成する。影パーティションは、最初はバックアップ物理ブロックを含む。Ｒパーティション内の各物理ブロックはＳパーティション内の１つの物理ブロックに関連する。これらの関連する物理ブロックを単一の論理ブロック・アドレス（ＬＢＡ）で識別する。ホストはＬＢＡを参照するコマンドを出し、ディスク・ドライブのファームウエアは関連する物理ブロックの１つへの、または１つからのデータ転送を指示する。
【００１４】
物理ブロックは無効データ（ごみ（Ｇ）とも呼ぶ）または有効データ（Ｄ）を含んでよい。または、物理ブロックはバックアップ・データ（Ｂ）またはライブ・データ（Ｌ）を含んでよい。この説明で用いる用語を説明すると、バックアップ・データは見えるパーティションにユーザがスナップショットにより作ったデータであり、ライブ・データはユーザが最初に書き込んで通常は後でユーザがアクセスするデータである。無効データは、重ね書きしてよいデータ（書き込まなかったディスク・ブロックの内容など）や、新しいバックアップが作られた後の、ディスク・ブロックの古いバックアップ・データ内容である。有効データは、バックアップ後に最初の書込み動作を行うまで、一度にバックアップ・データおよびライブ・データとの両方の役割を果たす。
【００１５】
物理ブロックの各対内のデータの状態を識別するのに用いてよい４つの状態フラグの組合せがある。これらのフラグの組合せを表１に示す。各フラグは１対の物理ブロックの状態を識別する。各フラグ内の第１番目の文字はＲパーティション内の物理ブロックに対応し、第２番目の文字はＳパーティション内の物理ブロックに対応する。
【表１】
2008204460.tif 000003
これらの組合せは物理ブロックの対ごとに２ビットのフラグで符号化してよい。各可能なフラグ値のディスク動作については後で説明する。
【００１６】
本発明では、関連する４つの基本的なディスク動作がある。すなわち、バックアップ、復元、読取り、および書込みである。物理ブロック内のデータの状態はこれらの動作を実行するときに変わってよい。各動作のまた各フラグ値の、物理ブロック・データの状態の変化および新しいフラグ値を以下の表で説明する。
【００１７】
バックアップ動作では、バックアップ状態（Ｂ）を有するブロック内のデータのスナップショットを取る。バックアップ動作のフラグを表２に示す。
【表２】
2008204460.tif 000004
バックアップ動作を行うとき、物理ブロック対の一方の物理ブロックが無効データを含む（例えば、有効データをそのブロックに書き込まなかった）場合は何も動作する必要はない。物理ブロック対がバックアップ・データおよびライブ・データを含む場合は、ライブ・データを持つ物理ブロックに有効データを含むという印を付ける（その対の片方が最初にライブ・データを受けるときは有効データはバックアップ・ブロックになる）。古いバックアップ・データはごみになり、後でライブ・データで重ね書きされてよい。
【００１８】
復元動作では、バックアップ状態を有する物理ブロック内のデータを用いてデータ記憶装置を既知の良い状態に復元する。復元動作のフラグを表３に示す。
【表３】
2008204460.tif 000005
復元動作を行うとき、物理ブロック対の片方が無効データを含む（有効データをそのブロックに書き込まなかった）場合は何も動作する必要はない。物理ブロック対がバックアップ・データおよびライブ・データを含む場合はライブ・データを持つブロックにごみという印を付け、ごみは後で新しいライブ・データで重ね書きされてよい。古いバックアップ・データは新しい有効データになる（これは「復元」を表す）。
【００１９】
読取り動作ではＬＢＡで識別される物理的位置からのデータとこれに対応するフラグとを読み取り、書込み動作ではＬＢＡで識別される恐らく異なる物理的位置へのデータとこれに対応するフラグとを書き込む。ホストは読取り動作および書込み動作のコマンドの中でＬＢＡを指定して、データのブロックを受けまたは送る。フラグはディスク・ドライブが保持する。フラグについてはホストは知らず、ホストのコマンドの中に現われない。データは、指定したＬＢＡとフラグの値とに対応する物理的ディスク位置から読取られ、または物理的ディスク位置に書き込まれる。
【００２０】
読取り動作についてのフラグを表４に示す。
【表４】
2008204460.tif 000006
読取り動作を行ってもフラグは変わらない。データは２つのパーティションの中から、有効データ（Ｄ）またはライブ・データ（Ｌ）を含む一方から取得される。
【００２１】
書込み動作についてのフラグを表５に示す。
【表５】
2008204460.tif 000007
書込み動作を行うとＧフラグおよびＤフラグが変わる。データはごみデータ（Ｇ）またはライブ・データ（Ｌ）を含むパーティションに書き込む。ごみに重ね書きした場合はライブ・データ（Ｌ）になり、その対のブロック（有効データという印を付ける）はバックアップになる。
【００２２】
図２は本発明の１つの実施の形態の動作を示す流れ図である。ブロック４０は２つの同じサイズの物理ブロック領域を確立したことを示す。ブロックの各領域は記憶媒体内のパーティション内の物理的位置を識別する。一方の領域内の個々のブロックは他方の領域内の個々のブロックと対になる。
ブロック４２に示すように、物理ブロックの各対に状態または属性を割当てる。ブロック４４に示すように、物理ブロックの少なくとも１つで複数の動作の１つを実行する。この動作に応じて、物理ブロックの対の状態または属性を更新する（ブロック４６）。このようにしてデータのバックアップ・バージョンを保持し、このバックアップ・バージョンを用いて、記憶装置内に記憶されているデータを前のバックアップ状態（既知の良い状態）に復元することができる。
【００２３】
この方法を実現する方法はいろいろある。概念的に簡単な方法は、フラグを不揮発性のランダム・アクセス・メモリ（ＲＡＭ）内に保存することである。１つの実施の形態では、１つの物理ブロックは０．５ＫＢのデータを含む。
別の１００ＧＢの影パーティションを持つ１００ＧＢのパーティションを考える。データの読取り、書込み、バックアップ、および復元の目的でアクセスすべき物理ブロックを見つけるには、これらの２つのパーティションおよびフラグの始まりだけ知ればよい。この例では、パーティションの始まりをオフセットとして用いて、アクセスするブロックの位置を見つける。
【００２４】
５１２バイトのディスク・ブロックの場合は、フラグに必要なＲＡＭは０．５Ｋ・８／２＝２Ｋ倍だけデータ領域より小さい。この例では、フラグに必要なメモリは１００ＧＢ／２Ｋ＝５０ＭＢである。これは、正規パーティションおよび影パーティション内の２００ＧＢのディスク空間に対応する。ＲＡＭはフラッシュ技術を用いれば経済的に実現することができる。ディスクの読取り動作および書込み動作の実行時間は１ｍｓより速くないので、フラグを含むメモリは高速である必要はない。
【００２５】
オブジェクト記憶装置（ＯＳＤ）ドライブの場合は、すでに大型の不揮発性ＲＡＭを用いているのでコストを更に削減することができる。実際には、より現実的なシナリオは、インストールするソフトウエア（ＳＷ）およびオペレーティング・システム（ＯＳ）に２０ＧＢの影パーティションを用いることである。なぜなら、これらは瞬時のバックアップおよび復元が必要だからである。影パーティションは記憶面積に関して、すなわち、ホストが直接アクセスできない同じサイズの隠れパーティション用の空間に関して、コストが高い。この例では、１００ＧＢの影空間を用いることにより、同じ機械の５人の異なるユーザが２０ＧＢのソフトウエア（ＳＷ）影パーティションを有することができる。
【００２６】
通常、ドライブの寿命内に行えるバックアップ動作および復元動作は数千回に過ぎないと予想される。復元の後、ブロックへの最初の書込みのときだけフラグを変える必要がある。したがって、安価なフラッシュ・メモリでも書込みサイクル限度が１０，０００回なので十分である。
別のオプションはダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）を用いてフラグを記憶することである。ディスク・ドライブでは、電源が落ちた場合は、このメモリの内容は回転プラッタの残留エネルギーを用いてディスクに書き込まれる。次に電源が回復したとき、保存されたＲＡＭ内容が復元される。  
【００２７】
別の例では、フラグを記憶媒体上に記憶した、階層ファイル・システムと同じ方法を用いてよい。バックグランドとして、全てのライブ・ブロック・データをＲパーティションに移し、対のブロック内のデータをＳパーティションに移してよい。更に、ブロックの集合をセクションに分割してよい。これは恐らく更に多くのレベルのスーパーセクションを形成する。その中の全てのライブ・データをＲに移した場合は各セクションまたはスーパーセクションにクリーンという印を付け、そうでない場合はダーティという印を付けてよい。復元動作の直後は、多くのブロックがダーティになるのでデータ・アクセスは遅くなり、またこの場合はフラグもディスクからアクセスする必要がある。バックグランドのタスクがセクション内のブロックをクリーンにするに従って、トップ・レベル（クリーン／ダーティ）のフラグ（ディスクでバックアップされたＲＡＭ）だけをチェックすればよく、また読取り／書込み動作は常にＲパーティション内だけで行う。
【００２８】
サブセクションは慣習的にシリンダ（またはトラック）に対応し、そのダーティ・フラグが消費するのは同じシリンダ内の１システム・ビットだけである。一例では１シリンダ内に約２００ブロックある。これにより、不揮発性（または回転エネルギー・バックアップ）ＲＡＭの必要量は数ＫＢに減る。
更に最適化するには（やはり階層的ファイル・システムの考えを用いて）、ＲブロックとＳブロックとを交互に、そのＤＧフラグと共に互いに次々に（または交互のシリンダに）割当てる。
【００２９】
バックアップ動作および復元動作はＯＳロードの前のブート・シーケンス中に（すなわち、基本入出力システム（ＢＩＯＳ）制御の下で、またはプレブート・ソフトウエア環境で）行うべきである。さもないと、システムが破損することがある。この方法では、コンピュータをブートしなくても壊れたＯＳを修復する（すなわち復元する）ことができる。更に、スナップショット／復元動作を要求するのにアクセス制御（例えば、パスワードに基づく）を用いてよい。ＯＳがウイルス（マルウェア）に汚染された場合はこれらのパスワードが洩れることがあるので、ＯＳが起動した後で、ＢＩＯＳにより（例えば、フリーズ・ロックを用いて）パスワード機能を不能にしなければならない。
【００３０】
この概念を更に拡張することができる。例えば、２つ以上の影パーティションをライブ・パーティションに割り当てて、その全てを完全に保護することやソフトウエア（ＳＷ）集合またはＯＳの異なるバージョンを瞬時に復元することができる。本発明は、ソフトウエア（ＳＷ）の開発、テスト、ベンチマーキング、またはウイルスやワームやその他の有害なＳＷの処理に有用であろう。
【００３１】
バックアップ物理ブロックは、安全性を犠牲にせずにＯＳへの読取り専用アクセスに利用できるようにすることができる。これは、ライブ・データ・ブロックが存在するかどうかに関係なくデータをバックアップ・ブロックから読み取る特殊なバックアップ読取りホスト・コマンドにより行うことができる。これは、バックアップ・パーティションの外部バックアップを行うことや、ライブ・データがすでにディスクに書き込まれているときは完全に復元せずにバックアップ・データにアクセスできるようにするのに有用である。
【００３２】
本発明についていくつかの実施の形態に関して記述したが、特許請求の範囲に規定されている本発明の範囲から逸れない限り、上に述べた実施の形態に種々の変更を行って良いことは当業者に明らかである。
【図面の簡単な説明】
【００３３】
【図１】本発明の１つの実施の形態に従って構築されるコンピュータ装置の略図である。
【図２】本発明の方法を示す流れ図である。
【符号の説明】
【００３４】
２６  コントローラ
２８  データ記憶媒体
３０  状態フラグ表
【図１】
2008204460.tif 000008
【図２】
2008204460.tif 000009
【外国語明細書】
2008204460000001.pdf