以下、図面を参照して実施の形態を説明する。
〔1〕本実施形態の情報処理装置の構成
図1は、本実施形態の情報処理装置1のハードウエア構成および機能構成を示すブロック図、図2は、本実施形態の情報処理装置1における要部構成を示すブロック図である。
図1および図2に示すように、情報処理装置1は、例えばパーソナルコンピュータであり、少なくとも、CPU(Central Processing Unit)10,記憶装置20,メモリ30およびバス40を有している。CPU10,記憶装置20およびメモリ30は、バス40を介して相互に通信可能に接続されている。
記憶装置20は、例えばHDD(Hard Disk Drive),SSD(Solid State Drive),USB(Universal Serial Bus)メモリである。なお、本実施形態では、記憶装置20はHDDであるものとし、以下では、記憶装置20をHDD20もしくはディスク20と称する場合がある。
記憶装置20は、リストア対象の区画(記憶領域)21を有している。ここで、リストア対象の区画21は、一つの記憶装置(HDD,SSD,USBメモリ等)における全ての記憶領域であってもよいし、一つの記憶装置内における部分的な記憶領域(例えばパーティションで区切られた領域)であってもよい。本実施形態において、区画21は、パーティションで区切られた部分的な領域とする。また、本実施形態では、リストア対象の区画21に、後述する書込み監視ドライバ17により区画21について取得される書込み管理ファイル(管理テーブル,管理情報)TCと、後述する取得部131により区画21について取得される使用域管理ファイル(管理テーブル,管理情報)TDとが保存される。さらに、本実施形態の記憶装置20では、区画21とは異なる区画において、後述する第2保存領域22が設けられるとともに、後述するバックアップデータ23が保存される。
メモリ30は、例えばRAM(Random Access Memory)であり、記憶装置20(区画21)とは異なり、且つ記憶装置20(区画21)の容量よりも小容量の第1保存領域である。メモリ30は、リストア開始時に、後述する取得部131によって取得される管理テーブル(管理情報)TAおよびTBを保存する。また、メモリ30は、リストア開始時に、後述する取得部131によってリストア対象の区画21から複製される管理テーブルTCおよびTDを保存する。
CPU(処理部,コンピュータ)10は、記憶装置20に保存されるプログラムを実行することにより、メイン制御部11,バックアップ制御部12,リストア制御部13,データ消去制御部14,ファイルシステム15,ディスクドライバ16および書込み監視ドライバ17としての機能を果たす。
メイン制御部11は、バックアップ制御部12,リストア制御部13およびデータ消去制御部14の各種機能を管理・制御する。
バックアップ制御部12は、区画21のリストアを行なう際に必要となるバックアップデータ23を取得し記憶装置20に保存する。
リストア制御部13は、図25および図26に示すフローチャートに従って後述するように、記憶装置20の区画21に対するリストアを制御するもので、取得部131としての機能を果たす。
取得部131は、区画21のリストアを実行する際に、リストア実行前の区画21の使用状況に係る第1情報と、リストア実行後の区画21の使用状況に係る第2情報とを取得してメモリ30に保存する。第1情報としては、後述する3種類の管理テーブルTB,TCおよびTDが含まれ、第2情報としては、後述する管理テーブルTAが含まれる。
なお、管理テーブルTA〜TDのデータ形式としては、管理対象の区画21における各データブロック(セクタ)の使用状況を各ビットに対応させて管理するビットマップ形式(第1形式)を用いてもよいし、区画21における使用状況をデータ開始位置およびデータ長で管理するエクステント形式(第2形式)を用いてもよい。なお、図3〜図24,図33,図34では、管理テーブルTA〜TDのデータ形式がビットマップ形式(第1形式)である場合、つまり管理テーブルTA〜TDがビットマップテーブル(ビットマップファイル)である場合について説明する。
管理テーブルTBは、リストア対象の区画21においてリストア実行開始直前に使用域になっている第1領域Bの情報を含むものである。つまり、第1領域Bは、リストア前の区画21においてファイルシステム15上で使用域として管理されていた領域である。管理テーブルTBは、リストア制御部13(取得部131)がリストア実行開始直前における区画21を参照することによって取得され、メモリ30に保存される。管理テーブルTBについては、図10を参照しながら後述する。
管理テーブルTCは、リストア対象の区画21において前回のリストア後のシステム稼働中にデータを書き込まれた第2領域Cの情報を含むものである。つまり、第2領域Cは、リストア前の区画21でファイルデータの書込みを行なった領域である。管理テーブルTCは、前回のリストア後のシステム稼働中に区画21に対するCPU10(ファイルシステム15)のアクセスを監視することによって、記憶装置20の区画21に書込み管理ファイルTCとして作成取得される。区画21に作成された書込み管理ファイルTCは、リストア開始時に、取得部131によって区画21からメモリ30へ複製保存される。管理テーブルTCについては、図11を参照しながら後述する。
ここで、図2に示すように、本実施形態のCPU10において、OS(Operating System)に含まれファイル制御を行なうファイルシステム15と、区画21に対するアクセスを行なうディスクドライバ16との間には、書込み監視ドライバ17が配置されている。書込み監視ドライバ17は、ファイルシステム15がディスクドライバ16経由でディスク20の区画21への書込みを要求するときの情報を取得することで、ファイルシステム15が書込みを行なった第2領域Cを特定し、書込み管理ファイル(管理テーブル)TCを作成する。
管理テーブルTDは、リストア対象の区画21において前回のリストア完了時(リストア後のデータ消去完了時)に使用域であった第3領域Dの情報を含むものである。つまり、第3領域Dは、前回のリストア完了時にファイルシステム15上で使用域として管理されていた領域である。管理テーブルTDは、リストア制御部13(取得部131)が前回のリストア完了時における区画21を参照することによって取得され、記憶装置20の区画21に使用域管理ファイルTDとして作成取得される。区画21に作成された使用域管理ファイルTDは、リストア開始時に、取得部131によって区画21からメモリ30へ複製保存される。管理テーブルTDについては、図12を参照しながら後述する。
管理テーブルTAは、リストア対象の区画21においてリストア実行後に未使用域となる第4領域Aの情報を含むものである。つまり、第4領域Aは、リストア後の区画21においてファイルシステム15上で未使用域として管理される領域である。管理テーブルTAは、リストア制御部13(取得部131)が区画21に対しリストアされるバックアップデータ23を参照することによって取得され、メモリ30に保存される。管理テーブルTAについては、図13を参照しながら後述する。
決定部141は、メモリ30に保存された管理テーブルTA〜TD(第1情報および第2情報)に基づいて、区画域21のうち、リストア実行後に上書き消去を実行すべき消去対象領域を決定(特定)する。このとき、決定部141は、第1領域B,第2領域Cおよび第3領域Dの論理和結果と、第4領域Aとの論理積結果を、消去対象領域として特定し決定する。このような消去対象領域の特定手法については、図3〜図14を参照しながら後述する。
消去部142は、決定部141によって決定された消去対象領域に対する上書き消去を実行する。
なお、リストア制御部13は、区画21にリストアすべきデータを消去対象領域に書き込むことによって消去対象領域に対する上書き消去を行なう機能も有している。この機能については、図15〜図26を参照しながら後述する。
また、取得部131は、管理テーブルTA〜TDの取得中に取得情報量がメモリ30の容量に達した場合、メモリ30における情報を、記憶装置20における第2保存領域22に保存してから、後続の情報をメモリ30に保存するように構成する。このとき、決定部141は、メモリ30および第2保存領域22に保存した管理テーブルTA〜TDに基づいて、消去対象領域を決定する。第2保存領域22は、記憶装置20において確保されるもので、メモリ30の容量よりも大容量かつ区画21の容量よりも小容量の領域であって区画21とは異なる領域である。このように管理テーブルTA〜TDをメモリ30および第2保存領域22に保存する場合の、情報処理装置1の機能や動作については、図33〜図36を参照しながら後述する。
さらに、取得部131は、管理テーブルTA〜TDの複数種類のデータ形式の中から、管理テーブルTA〜TDのデータサイズが最も小さくなるデータ形式を選択し、選択されたデータ形式で管理テーブルTA〜TDを取得してメモリ30に保存してもよい。このとき、複数種類のデータ形式としては、少なくとも、前述したビットマップ形式(第1形式)とエクステント形式(第2形式)とが含まれる。このようなデータ形式の選択機能については、図35を参照しながら後述する。
〔2〕本実施形態の情報処理装置の動作
以下、上述のごとく構成された本実施形態の情報処理装置1の動作について、図3〜図36を参照しながら説明する。
〔2−1〕消去対象領域の特定手法について
既存技術として、データ消去が必要な領域を特定することで区画内の不要なデータを消去する技術が知られている。しかし、区画内のデータをリストアした場合、リストア後の区画内で消去が必要な領域(消去対象領域)を特定してその領域内のデータを消去する技術については知られていない。このため、既存技術では、リストア後の区画内においてデータ消去が必要な領域を漏れなく特定して消去することができない。
ここで、既存技術による消去対象領域の特定手法について、図3〜図9を参照しながら具体的に説明する。図3〜図9は、既存技術による消去対象領域の特定手法を説明すべく、既存技術で用いられるテーブルの状態を示す図である。
既存技術では、例えば図3および図4にそれぞれ示すような2つの管理テーブルTaおよびTbを用いて管理対象の区画の使用状況が管理される。
図3に示す管理テーブルTaは、各データブロックが上書き消去されているか否かを使用状況として管理する。管理テーブルTaにおいて、“0”を設定されたビットに対応するデータブロックは、上書き消去された領域であり、“1”を設定されたビットに対応するデータブロックは、データを上書き消去されていない領域である。即ち、管理テーブルTaは上述した領域(第2領域)Cの情報に相当し、“0”を設定されたビットに対応するデータブロックは、ファイルデータの書込みを行なっていない領域であり、“1”を設定されたビットに対応するデータブロックは、ファイルデータの書込みを行なった領域である。
図4に示す管理テーブルTbは、使用状況として、各データブロックが使用域か未使用域かを使用状況として管理する。管理テーブルTbにおいて“0”を設定されたビットに対応するデータブロックは、未使用域であり、何らかのデータが残っている可能性のある領域である。一方、管理テーブルTbにおいて“1”を設定されたビットに対応するデータブロックは、使用域である。この管理テーブルTbは、上述した領域(第4,第1領域)A,Bの情報を組み合わせたものに相当する。
このとき、消去が必要な領域は、データが上書き消去されていない即ち有効なデータが書き込まれている領域(管理テーブルTaで“1”の領域)であって、未使用域(管理テーブルTbで“0”の領域)として特定される。つまり、消去対象領域を示すテーブルTcは、図5に示すように、管理テーブルTaとTbとの排他的論理和(XOR:exclusive OR)として得られる。テーブルTcにおいて、“0”を設定されたビットに対応するデータブロックは消去が不要な領域であり、“1”を設定されたビットに対応するデータブロックは消去が必要な領域である。
しかし、このような特定手法では、上述した領域(第3領域)Dの情報、つまり前回のリストア完了時にファイルシステム上で使用域として管理されていた領域Dの情報が考慮されていない。このため、リストア時に、消去が必要な領域の一部を消去対象領域として特定して消去することができず、情報漏えいの問題が生じる虞がある。
このように、消去が必要な領域の一部を消去対象領域として特定できなくなる状況について、図6〜図9を参照しながら説明する。特にここでは、前回のリストア完了時にファイルシステム上で使用域として管理されていた領域Dが、図6に示すテーブルTdの状態である場合に生じる状況について説明する。テーブルTdにおいて、“0”を設定されたビットに対応するデータブロックは、前回のリストア完了時の未使用域であり、“1”を設定されたビットに対応するデータブロックは、前回のリストア完了時の使用域である。
リストア時に消去を行なう場合、管理テーブルTb(システム稼動開始時の初期状態)とテーブルTd(システム稼動終了時の最終状態)との論理和として得られる図7のテーブルTeによって示される領域が、リストア時の使用域として認識されるべき領域である。したがって、リストア完了時に消去が必要な領域を示すテーブルTfは、図8に示すように、テーブルTeと管理テーブルTaとの排他的論理和(XOR)として得られる。
ここで、図5のテーブルTcによって示される消去対象領域と、図8のテーブルTfによって示される消去対象領域とを比較すると、既存技術による特定手法では、図9に示すように、領域X内の3つのデータブロックが消去されないまま残ることが分かる。つまり、既存技術による特定手法では、上述した領域Dの情報を考慮しないため、リストア時に、消去が必要な領域の一部を消去対象領域として特定して消去することができないことが分かる。このような状態になる領域(図6や図9の領域X参照)は、前回のリストア完了時のファイルシステム上で使用域として管理されており、その後、システム稼働中にファイルの削除などが行なわれ、上書きされることなくファイルシステム上で使用域から未使用域になった領域である。
上述したように、前回のリストア完了時のファイルシステム上で使用域として管理されていた領域Dの情報を考慮することなく、リストア時に消去が必要な領域を特定した場合、消去が必要な領域の一部を消去対象領域として特定できなくなる。
これに対し、本実施形態の情報処理装置1では、前述したように、リストア後の区画内で消去が必要な領域(消去対象領域)は、上記領域B,C,Dの論理和結果と、上記領域Aとの論理和結果として得られる領域である。即ち、消去対象領域は、上記領域B,C,Dを示す管理テーブルTB,TC,TDの論理和結果と、上記領域Aを示す管理テーブルTAとの論理和結果として得られるテーブルT1によって特定される。
以下に、本実施形態の情報処理装置1による消去対象領域の特定手法について、図10〜図14を参照しながら具体的に説明する。図10〜図14は、本実施形態の情報処理装置1による消去対象領域の特定手法を説明すべく、本実施形態で用いられるテーブルの状態を示す図である。
本実施形態の情報処理装置1では、既存技術で使用されていない情報、つまりリストア対象の区画21において前回のリストア完了時(リストア後のデータ消去完了時)に使用域であった第3領域Dの情報である管理テーブル(使用域管理ファイル)TDが考慮される。これにより、リストア時にデータを消去すべき領域を特定して消去する場合に消去すべき領域に漏れが生じるのを抑止することができる。本実施形態で使用される情報TDは、本実施形態での用途以外では必要性が低く、本実施形態での用途以外で取得されることは少ないと考えられる。
本実施形態の具体例においては、以下に示す4つの情報TA〜TDを用いて決定することで、リストア後に消去が必要な領域を漏れなく特定して消去することができ、情報漏えいを確実に防止できる。
図10に示す管理テーブルTBは、リストア前の区画21においてファイルシステム15上で使用域として管理されていた第1領域Bに関する情報である。つまり、管理テーブルTBにおいて、“0”を設定されたビットに対応するデータブロックは、リストア前の区画21においてファイルシステム15上で未使用域として管理されていた領域である。一方、管理テーブルTBにおいて、“1”を設定されたビットに対応するデータブロックは、リストア前の区画21においてファイルシステム15上で使用域として管理されていた領域である。そして、管理テーブルTBは、リストア開始時に、取得部131がリストア実行開始直前における区画21を参照することによって取得され、メモリ30に保存される。
図11に示す管理テーブル(書込み管理ファイル)TCは、リストア前の区画でファイルデータの書込みを行なった第2領域Cに関する情報である。つまり、管理テーブルTCにおいて、“1”を設定されたビットに対応するデータブロックは、リストア前の区画でファイルデータを書き込まれた領域である。一方、管理テーブルTCにおいて、“0”を設定されたビットに対応するデータブロックは、リストア前の区画でファイルデータを書き込まれていない領域である。そして、管理テーブルTCは、書込み監視ドライバ17が前回のリストア後のシステム稼働中に区画21に対する書込み要求を監視することで、区画21に書込み管理ファイルTCとして作成取得される。取得部131は、リストア開始時に、処理対象の区画21に書込み管理ファイルTCが存在するかを検索し、書込み管理ファイルTCが存在する場合、書込み管理ファイルTCを区画21からメモリ30へ複製して読み込む。
図12に示す管理テーブル(使用域管理ファイル)TDは、前回のリストア完了時(前回のリストア後のデータ消去完了時)にファイルシステム15上で使用域として管理されていた第3領域Dに関する情報である。つまり、管理テーブルTDにおいて、“1”を設定されたビットに対応するデータブロックは、前回のリストア完了時にファイルシステム15上で使用域として管理されていた領域である。一方、管理テーブルTDにおいて、“0”を設定されたビットに対応するデータブロックは、前回のリストア完了時にファイルシステム15上で未使用域として管理されていた領域である。そして、管理テーブルTDは、取得部131が前回のリストア完了時(データ消去完了時)における区画21を参照することで、区画21に使用域管理ファイルTDとして作成取得される。このとき、管理テーブルTDによって使用される領域も、管理テーブルTDの使用域に含まれる。取得部131は、リストア開始時に、処理対象の区画21に使用域管理ファイルTDが存在するかを検索し、使用域管理ファイルTDが存在する場合、使用域管理ファイルTDを区画21からメモリ30へ複製して読み込む。
図13に示す管理テーブルTAは、リストア後の区画21においてファイルシステム15上で未使用域として管理される第1領域Aに関する情報である。つまり、管理テーブルTAにおいて、“0”を設定されたビットに対応するデータブロックは、リストア後の区画21においてファイルシステム15上で使用域として管理される領域である。一方、管理テーブルTAにおいて、“1”を設定されたビットに対応するデータブロックは、リストア後の区画21においてファイルシステム15上で未使用域として管理される領域である。そして、管理テーブルTAは、リストア開始時に、取得部131が区画21に対しリストアされるバックアップデータ23を参照することで取得され、メモリ30に保存される。このとき、バックアップデータ23には、バックアップ制御部12によってバックアップデータ23を記憶装置20に保存する際に、未使用域を特定するための情報が予め組み込まれている。
図14に示すテーブルT1は、図10〜図13にそれぞれ示す管理テーブルTB,TC,TD,TAに基づき得られたデータ消去が必要な領域(消去対象領域)に関する情報である。つまり、テーブルT1は、管理テーブルTB,TC,TDの論理和結果(第1領域B,第2領域C,第3領域Dの論理和結果)と、管理テーブルTA(第4領域A)との論理積結果に対応する。テーブルT1において、“0”を設定されたビットに対応するデータブロックは、消去が不要な領域であり、“1”を設定されたビットに対応するデータブロックは、消去が必要な領域(消去対象領域)である。このように決定部141によって決定された消去対象領域に対する上書き消去が、消去部142によって実行される。
上述したように、本実施形態の情報処理装置1では、既存技術で使用されていない情報である使用域管理ファイルTDが考慮される。これにより、リストア時にデータを消去すべき領域を特定して消去する場合に消去すべき領域に漏れが生じるのを抑止することができる。
〔2−2〕リストア先を消去対象領域に移動する機能について
上述した通り、本実施形態のリストア制御部13は、区画21にリストアすべきデータを消去対象領域に書き込むことによって消去対象領域に対する上書き消去を行なう機能(リストア先を消去対象領域に移動する機能)を有している。ここで、当該機能が有効に用いられる状況について、図15〜図24を参照しながら説明する。なお、図15〜図24は、本実施形態の情報処理装置1におけるリストア制御部13の機能を説明すべく、本実施形態で用いられるテーブルの状態を示す図である。
図10〜図14を参照しながら上述した特定方法では、図15〜図20を参照しながら以下に説明する条件下において、リストアまたは消去すべくデータを書き込む領域(データブロック)が増加し、処理量が増大することがある。このような状況において、リストア制御部13の上記機能を用いることで、図21〜図24を参照しながら以下に説明するごとく、リストアまたは消去すべくデータを書き込む領域を少なくすることができる。
管理テーブルTB,TC,TDおよびTAの状態がそれぞれ図15,図16,図17および図18に示す状態である場合、これらの管理テーブルTA〜TDに基づき決定部141によって特定される消去対象領域は、図19のテーブルT2に示すようになる。図19のテーブルT2は、図15,図16,図17にそれぞれ示す管理テーブルTB,TC,TDの論理和結果と、図18に示す管理テーブルTAとの論理積結果に対応する。
図19に示すごとく得られたテーブルT2に対応する区画21では、図20に示すように、全領域(全てのデータブロック)に対し、リストアまたはデータ消去のための書込みが行なわれることになる。図20のテーブルTEは、図19の管理テーブルT2に示すごとく得られた消去対象領域を含む区画21において、リストアすべきデータのリストア先を消去対象領域に移動しない場合について、書き込みする領域と書き込みしない領域とを示している。ただし、図20に示すテーブルTEでは、全領域に対して書き込みされるため、書き込みしない領域は存在しない。
本実施形態では、図20に示すように全領域に対して書き込みを行なう状況で、リストア制御部13により、リストア時に消去が必要となる領域に、リストアで書き込むデータを優先的にリストアする機能が実現される。これにより、消去が必要な領域が、リストアするデータで上書きされることになり、リストアまたは消去するためにデータを書き込む領域を少なくすることができる。以下、図15〜図20を参照しながら上述した状況で、上記機能によってデータを書き込む領域が削減される具体例について、図21〜図24を参照しながら説明する。
まず、リストア前の各データブロックの使用域/未使用域に関する情報から求めた、消去が必要な領域は、図21のテーブルT3に示すようになる。つまり、図21に示すテーブルT3は、図15〜図17にそれぞれ示す管理テーブルTB,TC,TD(第1〜第3領域B,C,D)の論理和結果である。
ここで、リストア制御部13の上記機能により、リストアするデータで上書きされる領域を、データ消去で上書きされる領域に移動させた例を、図22に示す。このとき、リストア制御部13の上記機能は、図18に示す管理テーブルTA(リストア後の区画21においてファイルシステム15上で未使用域として管理される第1領域Aに関する情報)と図21に示す管理テーブルT3とを参照し、リストアするデータの一部を、データ消去で上書きされる領域に割り当てなおす。このように領域の移動・割当を行なった管理テーブルTA′が、図18に示す管理テーブルTAに代わる、新たな管理テーブルとして用いられる。なお、領域の移動・割当は、リストアするデータのフラグメントが発生し難くなるように考慮して行なわれる。管理テーブルTA′においても、“0”を設定されたビットに対応するデータブロックは、リストア後の区画21においてファイルシステム15上で使用域として管理される領域であり、“1”を設定されたビットに対応するデータブロックは、リストア後の区画21においてファイルシステム15上で未使用域として管理される領域である。
そして、図23に示すように、図22に示す新たな管理テーブルTA′と図21に示すテーブルT3との論理積結果として得られる管理テーブルT4が、リストア後に消去が必要な領域(消去対象領域)を示す。
図23に示すごとく得られたテーブルT4に対応する区画21では、図24に示すように、リストアまたはデータ消去のための書込みが行なわれることになる。図24のテーブルTFは、図23の管理テーブルT4に示すごとく得られた消去対象領域を含む区画21において、リストアすべきデータのリストア先を消去対象領域に移動した場合について、書き込みする領域と書き込みしない領域とを示している。図24に示すように、テーブルTFでは、領域Y内の5つのデータブロックが、書き込みしない領域となっている。
つまり、リストア先を消去対象領域に移動しない図20に示す場合と、リストア先を消去対象領域に移動した図24に示す場合とを比較すると、リストア先を消去対象領域に移動した方が、データを書き込むべき領域(データブロック)が少なくなり、処理量を削減することができる。
〔2−3〕データ消去の実行タイミングおよび本実施形態の機能について
ところで、ファイルシステム15上で未使用域として管理されている領域には、不要なデータが残っている可能性がある。このようなデータは、ファイル復旧ソフトウエア等によりファイルデータとして復元されると、情報漏えいの発生要因となる。そこで、このようなデータを消去するデータ消去ツールも開発されているが、データ消去ツールは、システム稼働中に実行されるものが一般的である。システム稼働中にデータの消去処理を行なうと、以下のように、稼働中のシステムにおいて負荷が増加する。
未使用域のデータを消去するためには、ファイルシステム情報を取得して使用域/未使用域を判断する必要がある。このとき発生するI/O(入出力要求)により負荷が増加する。また、未使用域であっても不要なデータが残っていない領域(データ消去後に一度もデータが上書きされていない領域)に対しては消去データを上書きする必要が無いため、このような領域におけるデータの消去処理は、負荷を高くするだけである。
また、削除ファイルのデータ消去処理を行なう場合、ユーザの操作によって作成されたファイルの削除以外に、OSやアプリケーションが作成する作業用ファイルの削除も行なわれるため、ユーザが認識している以上に高い負荷が発生している可能性がある。ただし、削除したファイルの領域が再利用される場合があることを考えると、ファイルの削除時に常にデータの消去処理を行なうと、消去処理が無駄になる場合がある。
このように、システム稼働中にデータの消去処理を行なう場合、システム稼働中に発生する負荷にデータの消去処理の負荷が加わるため、稼働中のシステムにおいて負荷が増加する。
そこで、本実施形態においては、システム稼働中に高負荷を与えることなく、既存ツールよりも少ない書込み量で不要なデータを消去するため、以下のような、システム稼働時の機能とリストア時の機能とを用いて、消去対象領域の特定およびデータ消去が行なわれる。
(i) システム稼働時の機能
システム稼働時に記憶装置20の区画21への書込みアクセスを監視することで書込みを行なった領域Cを管理し、当該領域Cに関する情報を書込み管理ファイル(管理テーブル)TCに保存する機能(図32参照)。当該機能は、上述した通り、ファイルシステム15とディスクドライバ16との間に配置された書込み監視ドライバ17によって実現される。
(ii)リストア時の機能
(ii-1)リストア前に使用域であった領域で且つリストア後に未使用域になる領域(B&A)を消去対象領域として特定し、当該領域に対するデータ消去を行なう機能(図27のステップS16および図30参照)。当該機能は、決定部141がリストア前の使用域を管理するテーブルTBとリストア後の未使用域を管理するテーブルTAとの論理積を算出するとともに、消去部142が前記論理積の結果で特定される消去対象領域のデータを消去することで実現される。
(ii-2)システム稼動中にファイルデータを書き込まれた領域で且つリストア後に未使用域になる領域(C&A)を消去対象領域として特定し、当該領域に対するデータ消去を行なう機能(図27のステップS12および図28参照)。当該機能は、決定部141が書込み管理ファイルTCとリストア後の未使用域を管理するテーブルTAとの論理積を算出するとともに、消去部142が前記論理積の結果で特定される消去対象領域のデータを消去することで実現される。
(ii-3)前回のリストア完了時(前回のリストア後のデータ消去完了時)に使用域であった領域で且つリストア後に未使用域になる領域(D&A;データの上書きは行なわれていないが使用域から未使用域になった領域)を消去対象領域として特定し、当該領域に対するデータ消去を行なう機能(図27のステップS15および図29参照)。当該機能は、決定部141が使用域管理ファイルTDとリストア後の未使用域を管理するテーブルTAとの論理積を算出するとともに、消去部142が前記論理積の結果で特定される消去対象領域のデータを消去することで実現される。
(ii-4)使用域管理ファイルTDが存在しない場合、リストア後に未使用域になる領域を消去対象領域として特定し、当該領域に対するデータ消去を行なう機能(図27のステップS17および図31参照)。当該機能は、消去部142がリストア後の未使用域を管理するテーブルTAを参照し、リストア後の未使用域のデータ消去を行なうことで実現される。
(ii-5)リストア完了時にファイルシステム15上で使用域として管理されている領域に関する情報を、使用域管理ファイルTDとして記憶装置20の区画21に更新保存する機能(図26のステップS117参照)。当該機能は、取得部131によって実現される。ここで保存された使用域管理ファイルTDは、区画21に対する次回のリストア時に管理テーブルTDとして用いられる。
本実施形態では、これらの機能が用いられ、システム稼動中には、書込み管理ファイルTCを取得するための監視処理のみが行なわれ、データの消去処理は、リストア時に行なわれる。これにより、システム稼動中には、データの消去処理による負荷が加わることがなく、負荷の増加を招くことがない。
〔2−4〕本実施形態の情報処理装置による処理手順
次に、図25〜図32に示すフローチャートに従って、本実施形態の情報処理装置1による処理手順について説明する。
〔2−4−1〕リストア手順
まず、図25および図26に示すフローチャート(ステップS101〜S118)に従って、本実施形態の情報処理装置1のリストア制御部13によるリストア手順について説明する。
取得部131は、リストア実行開始直前における区画21を参照し当該区画21に含まれる各データブロックの使用/未使用状態を把握することで、リストア先の使用域情報つまりリストア前の使用域を示す管理テーブルTBを取得し、メモリ30に保存する(ステップS101)。
また、取得部131は、処理対象の区画21に書込み管理ファイルTCが存在するかを検索し(ステップS102)、書込み管理ファイルTCが存在する場合(ステップS102のYESルート)、書込み管理ファイルTCを区画21からメモリ30へ複製して保存する(ステップS103)。書込み管理ファイルTCが存在しない場合(ステップS102のNOルート)、取得部131は、ステップS103の処理をスキップする。
また、取得部131は、処理対象の区画21に使用域管理ファイルTDが存在するかを検索し(ステップS104)、使用域管理ファイルTDが存在する場合(ステップS104のYESルート)、使用域管理ファイルTDを区画21からメモリ30へ複製して保存する(ステップS105)。使用域管理ファイルTDが存在しない場合(ステップS104のNOルート)、取得部131は、ステップS105の処理をスキップする。
さらに、取得部131は、区画21に対しリストアされるバックアップデータ23を参照し、リストア後の各データブロックの使用/未使用状態を把握することで、リストア後の未使用域を示す管理テーブルTAを取得し、メモリ30に保存する(ステップS106)。
ついで、リストア制御部13は、メモリ30に保存された管理テーブルTA〜TDに基づき、リストア先を消去対象領域に移動しない場合の書込みが必要な領域の情報TEを作成する(ステップS107)。このとき、リストア制御部13は、図15〜図20を参照しながら前述した手順で情報(テーブル)TEを作成する。
また、リストア制御部13は、メモリ30に保存された管理テーブルTA〜TDに基づき、リストア先を消去対象領域に移動した場合の書込みが必要な領域の情報TFを作成する(ステップS108)。このとき、リストア制御部13は、図21〜図24を参照しながら前述した手順で情報(テーブル)TFを作成し、メモリ30または記憶装置20に保存する。
そして、リストア制御部13は、情報TEの書込みデータ量が情報TFの書込みデータ量よりも多いか否かを判断する(ステップS109)。情報TEの書込みデータ量が情報TFの書込みデータ量よりも多い場合(ステップS109のYESルート)、リストア制御部13は、情報TE,TFに基づき、リストア先移動情報を作成する(ステップS110)。リストア先移動情報は、例えば図22に示すようにリストア先を消去対象領域に移動させるべく、移動させるべきリストアデータと移動先の位置とを特定するものである。一方、情報TEの書込みデータ量が情報TFの書込みデータ量以下である場合(ステップS109のNOルート)、リストア制御部13は、ステップS110の処理をスキップする。
この後、リストア制御部13は、バックアップデータ23から、リストア対象のデータを読み込み(ステップS111)、全てのデータを読み込み区画21に対するリストアを完了したか否かを判断する(ステップS112)。まだ全てのデータを読み込んでいない場合(ステップS112のNOルート)、リストア制御部13は、読み込んだリストア対象のデータについてのリストア先移動情報(ステップS110で作成した情報)があるか否かを判断する(ステップS113)。
リストア先移動情報がない場合(ステップS113のNOルート)、リストア制御部13は、リストア先を消去対象領域に移動させることなくバックアップ時のデータ位置をそのままリストア先とする(ステップS114)。そして、リストア制御部13は、リストア対象のデータをディスク20の区画21におけるリストア先に書き込みリストアを実行する(ステップS116)。
一方、リストア先移動情報がある場合(ステップS113のYESルート)、リストア制御部13は、リストア先移動情報を参照し、リストア対象のデータのリストア先を、リストア先移動情報によって規定される位置(消去対象領域の位置)に変更する(ステップS115)。そして、リストア制御部13は、リストア対象のデータをディスク20の区画21における変更後のリストア先に書き込みリストアを実行する(ステップS116)。
リストア対象のデータを書き込んだ後、リストア制御部13は、使用域管理情報、つまりリストア後の使用域を管理する使用域管理ファイルTDを更新してから(ステップS117)、ステップS111の処理に戻る。なお、ステップS117で更新された使用域管理ファイルTDは、区画21の次回リストア時に、前回のリストア完了時に使用域であった領域Dの情報として用いられる。
ステップS112において全てのデータを読み込みリストアを完了したと判断した場合(ステップS112のYESルート)、データ消去制御部14(決定部141および消去部142)によって、データ消去処理が実行される(ステップS118)。
〔2−4−2〕データ消去手順
次に、図27〜図31に示すフローチャートに従って、本実施形態の情報処理装置1のデータ消去制御部14(決定部141および消去部142)によるデータ消去手順について説明する。
まず、図27に示すフローチャート(S11〜S18)に従って、データ消去制御部14によるデータ消去手順の全体的な流れについて説明する。
データ消去制御部14は、メモリ30に書込み管理ファイルTCが存在するかを検索する(ステップS11)。書込み管理ファイルTCが存在する場合(ステップS11のYESルート)、データ消去制御部14は、図28を参照しながら後述するごとく、システム稼動中にファイルデータを書き込まれた領域で且つリストア後に未使用域になる領域(C&A)のデータ消去を行なってから(ステップS12)、ステップS13の処理に移行する。
一方、書込み管理ファイルTCが存在しない場合(ステップS11のNOルート)、データ消去制御部14は、書込み管理ファイルTCの初期化を行なってから(ステップS13)、ステップS14の処理に移行する。
ステップS14において、データ消去制御部14は、メモリ30に使用域管理ファイルTDが存在するかを検索する。使用域管理ファイルTDが存在する場合(ステップS14のYESルート)、データ消去制御部14は、図29を参照しながら後述するごとく、前回のリストア完了時に使用域であった領域で且つリストア後に未使用域になる領域(D&A)のデータ消去を行なう(ステップS15)。この後、データ消去制御部14は、図30を参照しながら後述するごとく、リストア前に使用域であった領域で且つリストア後に未使用域になる領域を消去対象領域(B&A)のデータ消去を行なってから(ステップS16)、ステップS18の処理に移行する。
一方、使用域管理ファイルTDが存在しない場合(ステップS14のNOルート)、データ消去制御部14は、図31を参照しながら後述するごとく、リストア後に未使用域になる領域のデータ消去を行なってから(ステップS17)、使用域管理ファイルTDの初期化を行なってから(ステップS18)、データ消去処理を終了する。
次に、図27のステップS12で実行されるデータ消去処理について、図28に示すフローチャート(ステップS21〜S24)に従って説明する。
決定部141は、メモリ30から、書込み管理ファイルTCとリストア後の未使用域を管理するテーブルTAとを取得する(ステップS21,S22)。そして、決定部141は、情報TCと情報TAとの論理積を算出することで、システム稼動中にファイルデータを書き込まれた領域で且つリストア後に未使用域になる領域(C&A)を消去対象領域として特定する。領域(C&A)があれば(ステップS23のYESルート)、消去部142は、当該領域(C&A)のデータを消去してから(ステップS24)、ステップS23の処理に戻る。領域(C&A)がなければ(ステップS23のNOルート)、消去部142は、図27のステップS12でのデータ消去処理を終了する。なお、ステップS24において、データ消去に際しての書込み回数などは消去方法に従う。
次に、図27のステップS15で実行されるデータ消去処理について、図29に示すフローチャート(ステップS31〜S34)に従って説明する。
決定部141は、メモリ30から、使用域管理ファイルTDとリストア後の未使用域を管理するテーブルTAとを取得する(ステップS31,S32)。そして、決定部141は、情報TDと情報TAとの論理積を算出することで、前回のリストア完了時に使用域であった領域で且つリストア後に未使用域になる領域(D&A)を消去対象領域として特定する。領域(D&A)があれば(ステップS33のYESルート)、消去部142は、当該領域(D&A)のデータを消去してから(ステップS34)、ステップS33の処理に戻る。領域(D&A)がなければ(ステップS33のNOルート)、消去部142は、図27のステップS15でのデータ消去処理を終了する。なお、ステップS34において、データ消去に際しての書込み回数などは消去方法に従う。
次に、図27のステップS16で実行されるデータ消去処理について、図30に示すフローチャート(ステップS41〜S44)に従って説明する。
決定部141は、メモリ30から、リストア前の使用域を管理するテーブルTBとリストア後の未使用域を管理するテーブルTAとを取得する(ステップS41,S42)。そして、決定部141は、情報TBと情報TAとの論理積を算出することで、リストア前に使用域であった領域で且つリストア後に未使用域になる領域(B&A)を消去対象領域として特定する。領域(B&A)があれば(ステップS43のYESルート)、消去部142は、当該領域(B&A)のデータを消去してから(ステップS44)、ステップS43の処理に戻る。領域(B&A)がなければ(ステップS43のNOルート)、消去部142は、図27のステップS16でのデータ消去処理を終了する。なお、ステップS44において、データ消去に際しての書込み回数などは消去方法に従う。
次に、図27のステップS17で実行されるデータ消去処理について、図31に示すフローチャート(ステップS51〜S53)に従って説明する。
使用域管理ファイルTDが存在しない場合、決定部141は、メモリ30から、リストア後の未使用域を管理するテーブルTAを取得する(ステップS51)。そして、決定部141は、テーブルTAを参照し、リストア後に未使用域になる領域があれば(ステップS52のYESルート)、消去部142は、当該領域のデータを消去してから(ステップS53)、ステップS52の処理に戻る。リストア後に未使用域になる領域がなければ(ステップS52のNOルート)、消去部142は、図27のステップS17でのデータ消去処理を終了する。なお、ステップS53において、データ消去に際しての書込み回数などは消去方法に従う。
〔2−4−3〕書込み管理ファイルの作成手順
ついで、図32に示すフローチャート(ステップS61〜S63)に従って、本実施形態の情報処理装置1(書込み監視ドライバ17)による書込み管理ファイル(管理テーブル)TCの作成手順について説明する。
図2に示すように、本実施形態のCPU10において、ファイルシステム15とディスクドライバ16との間には、書込み監視ドライバ17が配置されている。そして、書込み監視ドライバ17は、システム稼働中、リストア対象の区画21への書込み要求を監視することで、区画21に書込み管理ファイルTCを作成する。
つまり、図32に示すように、書込み監視ドライバ17は、システムが稼動中であるか否かを判断する(ステップS61)。システムが稼動中であれば(ステップS61のYESルート)、書込み監視ドライバ17は、リストア対象の区画21に対する書込み要求が発生したか否かを判断する(ステップS62)。書込み要求が発生しない場合(ステップS62のNOルート)、書込み監視ドライバ17は、ステップS61の処理に戻る。
一方、書込み要求が発生した場合(ステップS62のYESルート)、書き込み監視ドライバ17は、書込み管理ファイルTCにセクタ情報をセットすることで、リストア対象の区画21において前回のリストア後のシステム稼働中にデータを書き込まれた第2領域Cの情報を取得する(ステップS63)。第2領域Cの情報を取得した後、書き込み監視ドライバ17は、ステップS61の処理に戻る。なお、システムが稼動中でなくなれば(ステップS61のNOルート)、書込み監視ドライバ17は、書込み要求の監視を終了し書込み管理ファイルTCの作成を終了する。
〔2−5〕メモリの保存データ量がメモリ容量を超えた場合の処理について
区画(記憶領域)21内のデータブロックの使用状況などを管理する管理テーブルは、データブロックの数が増加(つまりディスク20の容量が増加)すると、管理テーブルのデータサイズも大きくなる。管理テーブルのデータサイズが大きくなると、ディスク20の容量に比べ管理テーブルを保存するメモリ30の容量は小さいため、メモリ30上に管理テーブルのデータ全体を一度に格納できなくなる。
このような状況について、図33および図34を参照しながら説明する。図33は、メモリ30に管理テーブルを格納できる状況を説明する図であり、図34は、メモリ30に管理テーブルを格納できない状況を説明する図である。図33および図34では、図3および図4を参照しながら上述した2つの管理テーブル(ビットマップテーブル)TaおよびTbを用いて管理対象の区画の使用状況を管理する例が示されている。
図33に示すように、ビットマップ形式の管理テーブルTa,Tbによってディスク上の30個のデータブロックを管理する場合、各管理テーブルTa,Tbのビット数は30ビットとなる。そして、図33に示す例では、2つの管理テーブルTa,Tbが必要であるため、管理テーブルTa,Tbを保存するメモリ30の容量は、少なくとも30ビット×2=60ビットだけ必要である。したがって、60ビット以上の容量をもつメモリ30を使用できる場合、メモリ30の容量が不足することはなく、問題なく処理を実行することができる。
しかし、図34に示すように、メモリ30の容量が60ビット分しか使用できないような状況で、管理すべきデータブロックの数が40個になると、10個分のデータブロックに対応する管理テーブルTa,Tbの内容を保存する領域(20ビット分)が確保できない。このため、10個分のデータブロックを管理することができなくなる。このような場合に、本実施形態のごとく、区画21のデータブロックを分割して管理する仕組み、つまり管理テーブル(上書き消去すべきデータブロックを判断する管理情報)TA〜TDを分割して管理する仕組みが有効である。特に、本実施形態において、取得部131は、メモリ30上のデータをディスク20上の第2保存領域22に退避しておき、必要なときに必要なデータを第2保存領域22から読み込むように構成される。
以下に、本実施形態において、管理テーブルTA〜TDを取得してメモリ(第1保存領域)30および第2保存領域22に保存する際の処理について、図35に示すフローチャート(ステップS201〜S212)に従って説明する。なお、図35は、本実施形態のリストア開始時における管理テーブルTA〜TDの取得保存手順を説明するフローチャートである。
図35に示す処理は、取得部131が管理テーブルTA〜TDをメモリ30上に読み込み取得する際(図25のステップS101,S103,S105,S107)で実行される。
上述した実施形態では、管理テーブルTA〜TDのデータ形式がビットマップ形式である場合について説明した。これに対し、以下に説明する図35に示す例では、取得部131は、まず、管理テーブルTA〜TDの複数種類のデータ形式の中から、取得対象の管理テーブルのデータサイズが最も小さくなるデータ形式を選択する(ステップS201)。
ここで、ディスク20における管理対象の区画21の使用領域を管理する方法としては、例えば、上述したビットマップ形式(第1形式)とエクステント形式(第2形式)とがある。
ビットマップ形式では、例えば、ある一つのデータブロックが使用中であれば当該データブロックに対応するビットに“1”を設定する一方で未使用であれば当該ビットに“0”を設定するようにビットマップ管理が行なわれる。ビットマップ形式では、ディスク20のサイズが大きくなり管理対象のデータブロック数が増加すると、そのサイズに比例してビットマップテーブルのサイズも大きくなる。
また、エクステント形式では、例えば、区画21における使用域または未使用域が、使用域または未使用域の開始位置と、使用域または未使用域のデータ長(大きさ)とによって管理される。エクステント形式では、データブロックの使用状況によって管理情報のデータサイズは変動するが、ディスク20のサイズが大きくなったからといって単純に管理情報のデータサイズが増加することはない。
そこで、図35に示す実施形態では、取得部131は、取得対象の管理テーブルについて、ビットマップ形式とエクステント形式とのどちらでデータを保存すると、メモリ30やディスク20を効率よく使用できるかを判断する。そして、取得部131は、以降の処理において、効率のよいデータ構造で取得対象の管理テーブルを取得保存する。
取得部131は、ステップS201でデータ形式を選択すると、選択されたデータ形式で管理テーブルを取得保存した場合のデータサイズを取得する(ステップS202)。当該データサイズとしては、ステップS201での判断時に算出された値が取得される。
そして、取得部131は、取得されたデータサイズの管理テーブルの全てをメモリ30に格納できるか否かを判断する(ステップS203)。取得対象の管理テーブルの全てをメモリ30に格納可能である場合(ステップS203のYESルート)、取得部131は、取得対象の管理テーブルの全てをメモリ30上に作成取得し(ステップS204)、処理を終了する。
一方、取得対象の管理テーブルの全てをメモリ30に格納できない場合(ステップS203のNOルート)、取得部131は、ステップS205〜S212の処理を実行する。
このとき、取得部131は、まず、リストア先の区画21についてのファイルシステム15の情報を参照して空き領域を検索し、取得対象の管理テーブルを格納する第2保存領域22をディスク(HDD)20上に確保しておく(ステップS205)。第2保存領域22を確保すると、取得部131は、管理テーブルの取得を開始し、ファイルシステム15の情報を参照して取得対象の管理テーブルをメモリ30上に作成取得する(ステップS206)。
そして、取得部131は、管理テーブルの取得中に取得情報量がメモリ30の容量に達したか否かを判断する(ステップS207)。取得情報量がメモリ30の容量に到達した場合(ステップS207のYESルート)、取得部131は、メモリ30上に取得された情報(取得対象の管理テーブルの一部)を、ディスク20上の第2保存領域(空き領域)22に書き出す(ステップS208)。このとき、リストアを開始するとリストア前の区画21のファイルシステム15は無効になるので、取得部131は、情報をディスク20のどこに書き出したかを示す情報をメモリ30上に保存する。
取得部131は、メモリ30上の情報を第2保存領域22に書き出すと、メモリ30上の管理テーブルのデータを初期化する(ステップS209)。この後、取得部131は、ステップS206の処理に戻り、ファイルシステム15の情報を参照して後続の管理テーブルをメモリ30上に作成取得し、以降、ステップS207〜S209の処理を繰り返し実行する。
一方、取得情報量がメモリ30の容量に到達していない場合(ステップS207のNOルート)、取得部131は、取得対象の管理テーブルの作成取得を完了したか否かを判断する(ステップS210)。完了していない場合(ステップS210のNOルート)、取得部131は、ステップS206の処理に戻る。また、完了している場合(ステップS210のYESルート)、取得部131は、メモリ30上の最後のデータをディスク20上の第2保存領域(空き領域)22に書き出す(ステップS211)。このときも、取得部131は、情報をディスク20のどこに書き出したかを示す情報をメモリ30上に保存する。
そして、取得部131は、メモリ30上の管理テーブルのデータを初期化し(ステップS212)、管理テーブルの取得保存処理を終了する。なお、上述のように、管理テーブルのデータをディスク20上に保存した場合、リストア完了時に管理テーブルで使用していた第2保存領域22のデータは、上書き消去される。
次に、図36に示すフローチャート(ステップS221〜S223)に従って、図35に示す手順によって第2保存領域22に保存された管理テーブルTA〜TDを用いる際の、当該管理テーブルTA〜TDの読出し手順について説明する。
なお、図36に示す処理は、管理テーブルTA〜TDがディスク20上の第2保存領域22に保存されている場合に実行され、管理テーブルTA〜TDの全てがメモリ30上に保存されている場合には実行されない。また、図36に示す処理は、例えば、図25のステップS107,S108で情報TE,TFを作成すべく管理テーブルのデータを取得する際に実行される。同様に、図36に示す処理は、例えば、図28のステップS21,S22や図29のステップS31,S32や図30のステップS41,S42や図31のステップS51で管理テーブルのデータを取得する際に実行される。
管理テーブルTA〜TDがディスク20上の第2保存領域22に保存されている場合、取得部131は、第2保存領域22における、処理に必要な管理テーブルのデータを、それぞれ、先頭から読み込めるだけ、メモリ30上に読み込む(ステップS221)。このとき、取得部131は、管理テーブルのどの領域を読み込んでいるかを判断するための情報(オフセット等)も、管理テーブルのデータとともにメモリ30上に保存する。
なお、ステップS221の処理を、図25のステップS107,S108で情報TE,TFを作成すべく管理テーブルのデータを取得する際に実行する場合、4つの管理テーブルTA〜TDの同一領域におけるデータがメモリ30上に読み込まれる。また、ステップS221の処理を、図28のステップS21,S22で管理テーブルのデータを取得する際に実行する場合、2つの管理テーブルTC,TAの同一領域におけるデータがメモリ30上に読み込まれる。ステップS221の処理を、図29のステップS31,S32や図30のステップS41,S42や図31のステップS51で管理テーブルのデータを取得する際に実行する場合も同様である。
この後、取得部131は、読み込んだ部分に対する処理(情報TE,TFの作成処理、もしくは、消去対象領域の特定・消去処理)を完了したか否かを判断する(ステップS222)。当該処理を完了していない場合(ステップS222のNOルート)、取得部131は、当該処理を完了するのを待機する。一方、当該処理を完了した場合(ステップS222のYESルート)、取得部131は、処理に必要な管理テーブルのデータを全て読み込んだか否かを判断する(ステップS223)。
まだデータを全て読み込んでいない場合(ステップS223のNOルート)、取得部131は、ステップS221の処理に戻り、メモリ30の初期化後、上記オフセット等の情報に基づき、後続するデータを第2保存領域22からメモリ30上に読み込む。以降、取得部131は、ステップS223でデータを全て読み込んだと判断するまで、ステップS221〜S223の処理を繰り返し実行する。取得部131は、ステップS223でデータを全て読み込んだと判断すると(ステップS223のYESルート)、管理テーブルTA〜TDの読出し処理を終了する。
図35および図36を参照しながら上述した処理により、本実施形態では、メモリ30上に管理情報のデータ全体を格納できない場合であっても、メモリ30上のデータをディスク20上の第2保存領域22に退避させておき、必要なときに必要なデータを第2保存領域22から読み込むことが可能になる。
なお、第2保存領域22に保存した管理情報(管理テーブルTA〜TD)のデータが上書きされるような場合、リストア制御部13は、上書きされる管理情報のデータをディスク20上の別の領域に移動する。その際、管理情報のファイルの位置情報も更新する。
〔3〕まとめ
〔3−1〕本実施形態によれば、記憶装置20の区画21のリストアを実行する際、区画21内に保存されたリストア前の情報であって、上書き消去すべき領域を判断する情報(本実施形態ではファイルTC,TD)が区画21からメモリ30上に複製保存される。これにより、区画記憶領域全体のリストアが可能になる。
〔3−2〕管理情報(管理テーブルTA〜TD)のデータサイズが大きくなったためにメモリ30上に管理情報のデータ全体を格納できない場合、本実施形態によれば、メモリ30上のデータが記憶装置20上の第2保存領域22に退避され、必要なときに必要なデータが第2保存領域22から読み込まれる。これにより、メモリ30上に管理情報のデータ全体を格納できない場合にも対応することができる。
〔3−3〕本実施形態では、取得対象の管理テーブル(管理情報)について、ビットマップ形式とエクステント形式とのどちらでデータを保存すると、メモリ30やディスク20を効率よく使用できるかが判断される。そして、効率のよいデータ構造で取得対象の管理テーブルが取得保存される。これにより、区画21やメモリ30や第2保存領域を有効に利用することができる。
〔3−4〕本実施形態では、リストア時に消去対象領域を特定する際に、既存技術で考慮されていない情報である使用域管理ファイルTD(前回のリストア完了時にファイルシステム15上で使用域として管理されていた領域Dに関する情報)が考慮される。これにより、図3〜図14を参照しながら前述したように既存技術では消去対象領域から漏れていた領域(図6,図9の領域X参照)も特定・消去可能となり、消去対象領域に漏れが生じるのを抑止することができる。従って、リストア後に消去が必要な領域を漏れなく特定して消去することができ、情報漏えいを確実に防止できる。
〔3−5〕本実施形態では、図20に示すように全領域に対して書き込みを行なう状況で、リストア時に消去が必要となる領域に、リストアで書き込むデータが、優先的にリストアされる。これにより、図21〜図24を参照しながら前述したように、消去が必要な領域が、リストアするデータで上書きされることになり、既存ツールに比べ、リストアまたは消去するためにデータを書き込む領域が少なくなる。従って、データ消去に際しての処理量を削減することができ、データ消去に要する処理時間を短縮することができる。
〔3−6〕本実施形態では、システム稼動中には、書込み管理ファイルTCを取得するための処理のみが行なわれ、データの消去処理はリストア時に行なわれる。つまり、システム稼働中、データ消去に係る処理として、書込み監視ドライバ17による監視のみが行なわれ、データ消去処理自体は、システム停止(オフライン)状態で実行される。このため、システム稼動中には、データの消去処理による負荷が加わることがなく、負荷の増加を招くことがない。
〔3−7〕本実施形態では、消去時(リストア時)のファイルシステム15の使用域情報として、バックアップ/リストア処理で取得した情報を利用することができるため、消去処理に際して使用域情報を別途取得する必要がない。
〔3−8〕本実施形態では、区画21のリストア時に不要なデータを消去しておくことで、パーソナルコンピュータ等の情報処理装置1の廃棄時には、廃棄時における区画21の使用域と、リストア後にデータが書き込まれた領域とのデータ消去を行なうだけで、区画21におけるデータ全体が消去されたことになる。つまり、廃棄時におけるデータ消去の処理量を削減しながら、情報漏えいを確実に防止できる。
〔3−9〕本実施形態では、リストア時に消去を行なう場合、リストアでデータを書き込んだ領域は消去対象としない。このため、既存ツールの機能、例えばWindows8(登録商標)のリセット機能(リカバリ対象の区画を全て上書き消去する機能)よりも、データを消去するために書き込まれるデータ量を削減することができる。
〔4〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
上述したバックアップ制御部12,リストア制御部13,取得部131,データ消去制御部14,決定部141および消去部142としての機能の全部もしくは一部は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のアプリケーションプログラム(データ消去プログラム)を実行することによって実現される。
また、上記アプリケーションプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
ここで、コンピュータとは、ハードウエアとOSとを含む概念であり、OSの制御の下で動作するハードウエアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウエアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記アプリケーションプログラムは、上述のようなコンピュータに、バックアップ制御部12,リストア制御部13,取得部131,データ消去制御部14,決定部141および消去部142としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
〔5〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータによってアクセスされる記憶装置における記憶領域のリストアを実行する際に、前記リストア実行前の前記記憶領域の使用状況に係る第1情報と前記リストア実行後の前記記憶領域の使用状況に係る第2情報とを取得して前記記憶領域とは異なる第1保存領域に保存し、
前記第1保存領域に保存された前記第1情報および前記第2情報に基づいて、前記記憶領域のうち、前記リストア実行後に上書き消去を実行すべき消去対象領域を決定し、
決定された前記消去対象領域に対する上書き消去を実行する、
処理を、前記コンピュータに実行させる、データ消去プログラム。
(付記2)
前記第1情報または前記第2情報の取得中に取得情報量が前記第1保存領域の容量に達した場合、前記第1保存領域における前記第1情報または前記第2情報を、前記記憶装置における第2保存領域に保存してから、後続の前記第1情報または前記第2情報を前記第1保存領域に保存し、
前記第1保存領域および前記第2保存領域に保存した前記第1情報および前記第2情報に基づいて、前記消去対象領域を決定する、
処理を、前記コンピュータに実行させる、付記1記載のデータ消去プログラム。
(付記3)
前記第1情報または前記第2情報の複数種類のデータ形式の中から、前記第1情報または前記第2情報のデータサイズが最も小さくなるデータ形式を選択し、選択されたデータ形式で前記第1情報と前記第2情報とを取得して前記第1保存領域に保存する、
処理を、前記コンピュータに実行させる、付記1または付記2に記載のデータ消去プログラム。
(付記4)
前記複数種類のデータ形式として、少なくとも、前記記憶領域における各データブロックの前記使用状況を各ビットに対応させて管理する第1形式と、前記記憶領域における前記使用状況をデータ開始位置およびデータ長で管理する第2形式とが含まれる、付記3記載のデータ消去プログラム。
(付記5)
前記記憶領域にリストアすべきデータを前記消去対象領域に書き込むことによって前記消去対象領域に対する上書き消去を行なう、
処理を、前記コンピュータに実行させる、付記1〜付記4のいずれか一項に記載のデータ消去プログラム。
(付記6)
前記第1情報として、前記記憶領域において前記リストア実行開始直前に使用域になっている第1領域の情報と、前記記憶領域において前回のリストア後のシステム稼働中にデータを書き込まれた第2領域の情報と、前記記憶領域において前記前回のリストア完了時に使用域であった第3領域の情報とが含まれ、
前記第2情報として、前記記憶領域において前記リストア実行後に未使用域となる第4領域の情報が含まれる、付記1〜付記5のいずれか一項に記載のデータ消去プログラム。
(付記7)
前記第1領域,前記第2領域および前記第3領域の論理和結果と、前記第4領域との論理積結果を、前記消去対象領域として決定する、
処理を、前記コンピュータに実行させる、付記6記載のデータ消去プログラム。
(付記8)
前記リストア実行開始直前における前記記憶領域を参照して前記第1領域の情報を取得し、
前記前回のリストア後のシステム稼働中に前記記憶領域に対する前記コンピュータのアクセスを監視して前記第2領域の情報を取得し、
前記前回のリストア完了時における前記記憶領域を参照して前記第3領域の情報を取得し、
前記記憶領域に対しリストアされるバックアップデータを参照して前記第4領域の情報を取得する、
処理を、前記コンピュータに実行させる、付記6または付記7に記載のデータ消去プログラム。
(付記9)
記憶領域を有するアクセス対象の記憶装置と、
前記記憶領域とは異なる第1保存領域と、
前記記憶領域のリストアを実行する際に、前記リストア実行前の前記記憶領域の使用状況に係る第1情報と前記リストア実行後の前記記憶領域の使用状況に係る第2情報とを取得して前記第1保存領域に保存する取得部と、
前記第1保存領域に保存された前記第1情報および前記第2情報に基づいて、前記記憶領域のうち、前記リストア実行後に上書き消去を実行すべき消去対象領域を決定する決定部と、
前記決定部によって決定された前記消去対象領域に対する上書き消去を実行する消去部と、を備えた、情報処理装置。
(付記10)
前記取得部は、前記第1情報または前記第2情報の取得中に取得情報量が前記第1保存領域の容量に達した場合、前記第1保存領域における前記第1情報または前記第2情報を、前記記憶装置における第2保存領域に保存してから、後続の前記第1情報または前記第2情報を前記第1保存領域に保存し、
前記決定部は、前記第1保存領域および前記第2保存領域に保存した前記第1情報および前記第2情報に基づいて、前記消去対象領域を決定する、付記9記載の情報処理装置。
(付記11)
前記取得部は、前記第1情報または前記第2情報の複数種類のデータ形式の中から、前記第1情報または前記第2情報のデータサイズが最も小さくなるデータ形式を選択し、選択されたデータ形式で前記第1情報と前記第2情報とを取得して前記第1保存領域に保存する、付記9または付記10に記載の情報処理装置。
(付記12)
前記複数種類のデータ形式として、少なくとも、前記記憶領域における各データブロックの前記使用状況を各ビットに対応させて管理する第1形式と、前記記憶領域における前記使用状況をデータ開始位置およびデータ長で管理する第2形式とが含まれる、付記11記載の情報処理装置。
(付記13)
前記記憶領域にリストアすべきデータを前記消去対象領域に書き込むことによって前記消去対象領域に対する上書き消去を行なうリストア制御部をさらに備える、付記9〜付記12のいずれか一項に記載の情報処理装置。
(付記14)
前記第1情報として、前記記憶領域において前記リストア実行開始直前に使用域になっている第1領域の情報と、前記記憶領域において前回のリストア後のシステム稼働中にデータを書き込まれた第2領域の情報と、前記記憶領域において前記前回のリストア完了時に使用域であった第3領域の情報とが含まれ、
前記第2情報として、前記記憶領域において前記リストア実行後に未使用域となる第4領域の情報が含まれる、付記9〜付記13のいずれか一項に記載の情報処理装置。
(付記15)
前記決定部は、前記第1領域,前記第2領域および前記第3領域の論理和結果と、前記第4領域との論理積結果を、前記消去対象領域として決定する、付記14記載の情報処理装置。
(付記16)
前記取得部は、
前記リストア実行開始直前における前記記憶領域を参照して前記第1領域の情報を取得し、
前記前回のリストア後のシステム稼働中に前記記憶領域に対する前記コンピュータのアクセスを監視して前記第2領域の情報を取得し、
前記前回のリストア完了時における前記記憶領域を参照して前記第3領域の情報を取得し、
前記記憶領域に対しリストアされるバックアップデータを参照して前記第4領域の情報を取得する、付記14または付記15に記載の情報処理装置。
(付記17)
コンピュータによってアクセスされる記憶装置における記憶領域のリストアを実行する際に、前記リストア実行前の前記記憶領域の使用状況に係る第1情報と前記リストア実行後の前記記憶領域の使用状況に係る第2情報とを取得して前記記憶領域とは異なる第1保存領域に保存し、
前記第1保存領域に保存された前記第1情報および前記第2情報に基づいて、前記記憶領域のうち、前記リストア実行後に上書き消去を実行すべき消去対象領域を決定し、
決定された前記消去対象領域に対する上書き消去を実行する、データ消去方法。
(付記18)
前記第1情報または前記第2情報の取得中に取得情報量が前記第1保存領域の容量に達した場合、前記第1保存領域における前記第1情報または前記第2情報を、前記記憶装置における第2保存領域に保存してから、後続の前記第1情報または前記第2情報を前記第1保存領域に保存し、
前記第1保存領域および前記第2保存領域に保存した前記第1情報および前記第2情報に基づいて、前記消去対象領域を決定する、付記17記載のデータ消去方法。
(付記19)
コンピュータによってアクセスされる記憶装置における記憶領域のリストアを実行する際に、前記リストア実行前の前記記憶領域の使用状況に係る第1情報と前記リストア実行後の前記記憶領域の使用状況に係る第2情報とを取得して前記記憶領域とは異なる第1保存領域に保存し、
前記第1保存領域に保存された前記第1情報および前記第2情報に基づいて、前記記憶領域のうち、前記リストア実行後に上書き消去を実行すべき消去対象領域を決定し、
決定された前記消去対象領域に対する上書き消去を実行する、
処理を、前記コンピュータに実行させる、データ消去プログラムを記録したコンピュータ読取可能な記録媒体。
(付記20)
プロセッサと、
記憶領域を有し前記プロセッサによってアクセスされる記憶装置と、
前記記憶領域とは異なる第1保存領域と、を有し、
前記プロセッサは、
前記記憶領域のリストアを実行する際に、前記リストア実行前の前記記憶領域の使用状況に係る第1情報と前記リストア実行後の前記記憶領域の使用状況に係る第2情報とを取得して前記記憶領域とは異なる第1保存領域に保存し、
前記第1保存領域に保存された前記第1情報および前記第2情報に基づいて、前記記憶領域のうち、前記リストア実行後に上書き消去を実行すべき消去対象領域を決定し、
決定された前記消去対象領域に対する上書き消去を実行する、情報処理装置。