(57)【要約】【課題】保護を対象とするファイルから容易にログデータを取得することができるデータアクセス装置を得る。【解決手段】ディレクトリエントリの予約領域に、差分データが保持されているデータの論理ブロック番号を示す差分クラスタ番号と、差分データのブロック番号を示す代替クラスタ番号とを格納する。データ検索部１０２は、ディレクトリエントリから差分クラスタ番号と代替クラスタ番号とを読み込む。データ更新部１０５は、差分クラスタ番号のデータブロックを更新する場合、更新前のデータブロックに対応したブロック番号を代替クラスタ番号に設定する。【選択図】図１
2008123104.tif 000002
【特許請求の範囲】
【請求項１】
ファイルのディレクトリエントリの予約領域から、差分データが保持されているデータの論理ブロック番号を示す差分クラスタ番号と、前記差分データのブロック番号を示す代替クラスタ番号とを読み込むデータ読取手段と、
前記差分クラスタ番号のデータブロックを更新する場合、更新前のデータブロックに対応したブロック番号を前記代替クラスタ番号に設定する差分データ更新手段とを備えたデータアクセス装置。
【請求項２】
ファイルのディレクトリエントリの予約領域から、差分データが保持されているデータの論理ブロック番号を示す差分クラスタ番号と、差分データのブロック番号を示す代替クラスタ番号とを読み込むデータ読取手段と、
前記差分クラスタ番号のデータブロックを更新する場合、更新されるデータを複写したデータブロックのブロック番号を前記代替クラスタ番号に設定する差分データ更新手段とを備えたデータアクセス装置。
【請求項３】
差分データ更新手段は、代替クラスタ番号として、不良ブロックとして保持したブロックの物理ブロック番号を付与することを特徴とする請求項１または請求項２記載のデータアクセス装置。
【請求項４】
差分データ更新手段は、代替クラスタ番号として、差分データの物理ブロック番号に対応した論理ブロック番号を付与することを特徴とする請求項１または請求項２記載のデータアクセス装置。
【請求項５】
差分クラスタ番号に対応したブロックが読み込めない場合、代替クラスタ番号に示すブロックのデータを取り出し、前記差分クラスタ番号のデータとして設定してファイルを復旧するデータ復旧手段を備えたことを特徴とする請求項１から請求項４のうちのいずれか１項記載のデータアクセス装置。
【請求項６】
ファイルのディレクトリエントリの予約領域から、当該ファイルの差分データの先頭ブロックの論理ブロック番号を示す差分クラスタ番号を読み込むデータ読取手段と、
前記ファイルを更新する場合、前記差分クラスタ番号を新たに設定すると共に、当該新たに設定した差分クラスタ番号を先頭クラスタ番号としてＦＡＴ領域のクラスタチェーンを更新する差分データ更新手段とを備えたデータアクセス装置。
【請求項７】
ＦＡＴ領域に対応した予備ＦＡＴ領域から、ファイルの開始クラスタ番号と接続クラスタ番号とに対応した前記ファイルの差分ファイルの物理ブロック番号を読み込むデータ読取手段と、
前記ファイルを更新する場合、当該更新するファイルの差分ファイルのブロックに対応させて前記予備ＦＡＴ領域の物理ブロック番号を更新する差分データ更新手段とを備えたデータアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、主として携帯情報端末や携帯電話といった電子機器に搭載され、フラッシュメモリやハードディスクといったメディアにアクセスするデータアクセス装置に関するものである。
【背景技術】
【０００２】
従来のデータアクセス装置は、ディスクに格納した保護対象ファイルのデータが変化する際に、端末装置に搭載したＯＳ（オペレーティングシステム）の機能が提供するファイルのデータ変化情報をリアルタイムに取得し、ファイルのデータ変化情報に対して、ロギングデータの取得を行っていた（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００３−９１４２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のデータアクセス装置では、ファイルのログ情報を管理するためのロギング領域を端末装置内にファイル単位でバックアップを作成する。このため、バックアップデータを探し出す際に、ファイルに関連したロギングデータをロギング領域から別途、検索する必要があり、操作が面倒であると共に、ロギングデータ件数が増大するにつれ、ロギングデータを取得するまでの時間が件数に比例してかかるという問題点があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、保護を対象とするファイルから容易にログデータを取得することができるデータアクセス装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るデータアクセス装置は、ファイルのディレクトリエントリの予約領域から、差分データが保持されているデータの論理ブロック番号を示す差分クラスタ番号と、差分データのブロック番号を示す代替クラスタ番号とを読み込むデータ読取手段と、差分クラスタ番号のデータブロックを更新する場合、更新前のデータブロックに対応したブロック番号を代替クラスタ番号に設定する差分データ更新手段とを備えたものである。
【発明の効果】
【０００７】
この発明のデータアクセス装置は、ディレクトリエントリの予約領域に差分クラスタ番号と代替クラスタ番号とを格納し、差分クラスタ番号のデータブロックを更新する場合、更新前のデータブロックに対応したブロック番号を代替クラスタ番号に設定するようにしたので、保護を対象とするファイルから容易にログデータを取得することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、この発明の実施の形態１によるデータアクセス装置を示す構成図である。
データアクセス装置は、例えば、携帯情報端末や携帯電話に搭載され、データアクセス装置には大容量ストレージであるハードディスクがメディア１として接続される。メディア１は、データアクセス装置に対して、接続が可能であればハードディスクである必要はなく、フロッピー（登録商標）ディスクやフラッシュメモリのメモリカードのような挿抜可能なリムーバブルメディアでも良い。データ読込部２は、データ管理部１００の命令を受けて、メディア１に保存されているファイルで、必要なデータの読込処理を実行する機能部である。データ書込部３は、データ管理部１００の命令を受けて、メディア１にデータを保存するために、必要なデータの書込処理を実行する機能部である。データ管理部１００は、データ読込部２やデータ書込部３に対して、必要な命令を要求し、必要な制御を実施するための機能部である。
【０００９】
次に、データ管理部１００について説明する。
データ管理部１００は、データ取得部１０１、データ検索部１０２、エントリ管理部１０３、データ解析部１０４、データ更新部１０５、データ復旧部１０６を備えている。データ取得部１０１は、ユーザの指定やシステム内で重要とされるファイルに対して、メディア１内でのファイルの位置と更新するデータの内容を保持し、ファイルで構成する情報とは別に、差分情報をメディアに保持するかを決定する機能を有している。データ検索部１０２は、データ取得部１０１で入力されたパス名から、パス名を構成するディレクトリを解析し、ファイルを見つけ出すまでのブロックを呼び出す機能を有している。また、データ検索部１０２は、メディア１の論理ブロック番号と物理ブロック番号の管理を行っており、データ読込部２に対して、メディア１より読み込むブロックの位置を指示する。エントリ管理部１０３は、データ検索部１０２で読み込まれたブロックより、必要なディレクトリエントリを探し出し、ファイルやディレクトリの属性情報の取得や設定を行う。
【００１０】
データ読込部２、データ取得部１０１、データ検索部１０２、エントリ管理部１０３で、ファイルのディレクトリエントリの予約領域から、差分データが保持されているデータの論理ブロック番号を示す差分クラスタ番号と、差分データのブロック番号を示す代替クラスタ番号とを読み込むデータ読取手段を構成している。
【００１１】
データ解析部１０４は、エントリ管理部１０３により取得されたファイルの属性情報のうち、属性情報にファイルの差分データが保持されているかを判定し、必要に応じてファイルの更新の有無を判断するための機能部である。データ更新部１０５は、データ解析部１０４で更新が必要であると判断された場合、復旧用のクラスタをメディアに確保し、ファイル内に保存するデータと、復旧用に保存するデータを判断し、データ書込部３に対して、書き込み先を指定するよう構成されている。これらデータ解析部１０４とデータ更新部１０５及びデータ検索部１０２で、差分クラスタ番号のデータブロックを更新する場合、更新前のデータブロックに対応したブロック番号を代替クラスタ番号に設定する差分データ更新手段を構成している。
【００１２】
データ復旧部１０６は、データ読込部２でメディア１より正常にデータを読み込めない場合に、データ解析部１０４で把握している属性情報を用いて、メディア１内のファイルが正常に読み込めるようにデータを更新する機能部である。そして、これらデータ解析部１０４、データ更新部１０５、データ復旧部１０６及びデータ検索部１０２で、差分クラスタ番号に対応したブロックが読み込めない場合、代替クラスタ番号に示すブロックのデータを取り出し、差分クラスタ番号のデータとして設定してファイルを復旧するデータ復旧手段を構成している。
【００１３】
尚、上記データ管理部１００におけるデータ取得部１０１〜データ復旧部１０６の各構成は、それぞれの機能に対応するソフトウェアと、これを実行するためのＣＰＵやメモリ等のハードウェアから実現されている。
【００１４】
図２は、ＭＳ−ＤＯＳのＦＡＴ（File Allocation Table）型のファイルシステムにおいて、ファイルの属性情報であるディレクトリエントリを示す説明図である。
図２のディレクトリエントリは３２バイトで構成され、ＦＡＴ型のファイルシステムで管理されているメディア１においてディレクトリやファイルの情報を格納する。ファイルを特定するディレクトリエントリの場合、ディレクトリ内で一意に特定されるファイル名と、ファイルの種別を示す拡張子と、ファイルの性質を示す属性と、ファイルが格納される領域を示す予約領域と、ファイルの作成された日時や更新された日時を示す更新日時と、ファイルの格納先を示すクラスタ番号と、ファイルのサイズを示すファイルサイズと、保護するデータを格納するクラスタ番号を格納する差分クラスタ番号、差分クラスタ番号がファイルを構成するどのクラスタの代替かを示す代替クラスタ番号から構成される。
【００１５】
次に動作について説明する。先ず、ＦＡＴ型ファイルシステムの概要について説明する。ＦＡＴ型ファイルシステムは、セクタと呼ばれる単位でデータを記録し、１セクタには、通常５１２バイトのデータを記録することが可能である。セクタは、物理アドレスによりメディアの物理的な位置が一意に決定され、先頭のセクタより連続的な番号が振られている。しかし、データにアクセスする際、一般的には、物理アドレスでメディアの物理的な位置を指定することはなく、論理セクタ番号でメディアの位置を指定してアクセスする。その理由は、メディアの種類によっては、メディアの物理構造が異なるためで、ファイルシステムにおいて、セクタを物理アドレスで管理する場合、扱うメディアが多種に渡ると、多種のメディア毎にセクタを管理する必要性が生じるためである。そこで、アドレスを指定する際には論理アドレスを使用し、論理アドレスに対する物理アドレスは、メディアに応じたドライバが変換するようにする。これにより、ファイルシステムはメディア毎に対応しなくて済むようになる。
【００１６】
次に、メディア１がデータアクセス装置と接続されているとき、指定されたパス名に該当するファイル名を検索し、差分データの存在を確認するまでの手順を説明する。
メディア１がＦＡＴ型ファイルシステムで構成されている場合、メディア１内のファイルにアクセスする場合には、メディア内に記載されているディレクトリエントリを探索する必要がある。ファイル指定はパス名より一意に指定されることで、ルートディレクトリより目的のディレクトリ一覧から見つけ出すことが可能となる。
【００１７】
ファイルのディレクトリエントリを探し出すためには、データ取得部１０１に対して指定されたパス名をデータ検索部１０２に引渡し、パス名の解析を行い、データ読込部２で必要となるクラスタをデータ検索部１０２が特定し、読み込まれたクラスタの内容から属性情報を取得するためにエントリ管理部１０３で解析する。
【００１８】
パス名により指定されたファイル名は、ルートディレクトリより探し出され、パス付ファイル名で指定されたファイル名のうち、“／”で区分されている先頭より抽出したディレクトリ名より読み込みを開始する。“／”で区分して得られるディレクトリ名と３２バイトより構成されるディレクトリエントリ内のファイル名を比較し、一致するディレクトリエントリを探し出す。データ検索部１０２で読み込むデータの中から一致するディレクトリエントリが存在し場合、ディレクトリエントリより次に読み込むべきクラスタ番号を取得する。データ検索部１０２は、データ読込部２よりメディア１に対して、取得したクラスタ番号を読み込むように命令する。
【００１９】
読み込まれたクラスタは、更にデータとしてルートディレクトリと同様に３２バイトより構成されるディレクトリエントリが連続して格納されている。パス名により“／”で区分されているファイル名を算出して、データ検索部１０２は、読み込んだクラスタ内のデータと比較し、ディレクトリエントリのファイル名と一致するものが存在するかを確認する。パス名において、パスの最後はファイル名を示すため、パス付きファイル名のファイル名の一つ前にあるディレクトリ名までの検索を行い、一致するディレクトリを探し出す。
【００２０】
データ検索部１０２で、パス名で指定されたファイルのディレクトリエントリが特定されたことで、指定したファイルのディレクトリエントリが取得できる。次にエントリ管理部１０３は、ディレクトリエントリに含まれている属性情報の全てを取得する。データ解析部１０４では、エントリ管理部１０３で取得された属性情報から、論理ブロック番号で記載されているクラスタ番号と、予約領域内に含まれている差分クラスタ番号を取得する。予約領域は、何も定義されていない値が入っていない場合は、通常のファイルシステムと同じで、ファイルが構成する以外の情報を保持していないと判定する。しかし予約領域の例えば、先頭２バイトの位置に、メディアを構成するクラスタの範囲内の番号が格納されていた場合には、ファイルとは別に、差分データが存在すると判定する。尚、本実施の形態では、先頭２バイトの位置に差分クラスタ番号が格納されるよう予め決められているが、予約領域内であれば、どの位置であってもよい。
【００２１】
メディア１に保存されているファイルの他に、差分データをメディア１に保持するかは、データ取得部１０１が決定している。データ取得部１０１は、例えばメディア１に保存されているファイルのうち、ユーザが重要と判断したファイルに重み付けを行い、データの更新対象となった場合に、差分データを取得して保存するように判断する。
【００２２】
先ず、差分データを作成しない場合の一般的なデータ修正処理を説明する。
図３は、差分データを作成しない場合の説明図である。
先ず、データを更新するための場所を特定するために、ファイル内の位置を特定する。データ解析部１０４では、ファイルの属性情報を把握しているので、ディレクトリエントリより取得した開始クラスタ（０ｘ０００２）よりデータを読み込む。開始クラスタ番号がデータ検索部１０２に渡されると、データ検索部１０２は論理ブロック番号である開始クラスタ番号を該当する物理ブロック番号（０ｘ００１０）に変換する。尚、論理ブロック番号と物理ブロック番号との対応関係を示すデータはメディア１に格納されており、データ検索部１０２は、この対応関係を示すデータを取得することでそのメディア１における論理ブロックと物理ブロックとの対応関係を把握する。
【００２３】
データ読込部２では、データ検索部１０２から指示された物理ブロック番号の内容を読み出し、データ検索部１０２を介して、データ解析部１０４に応答する。データの内容が連続して形成されるよう、データが格納される論理ブロック番号の順はＦＡＴで管理されているため、ＦＡＴを介してデータが出現するまで、データ検索部１０２よりデータ読込部２に対して読み込みを行うことを命令する。
【００２４】
データ読込部２では、データ取得部１０１より更新対象となるデータが出現するまで、ファイルを連続して読み込む。データ解析部１０４は、読み込まれたデータの内容を確認し、データ取得部１０１より更新したいデータが存在する論理ブロック（＝０ｘ０００３）を特定する。データ解析部１０４では、特定された論理ブロックの論理ブロック番号に基づき、メディア１にデータが格納されている物理ブロック番号である旧物理ブロック番号をデータ検索部１０２に問い合わせ、得られた論理ブロック番号（０ｘ０００３）と旧物理ブロック番号（０ｘ００１４）とを、データ更新部１０５に渡す。
【００２５】
次に、データ更新部１０５は、修正内容を物理ブロック番号（０ｘ００１６）に書き込むようデータ書込部３に指示を行うと共に、論理ブロック番号（０ｘ０００３）に、物理ブロック番号を（０ｘ００１６）を関連付ける。また、物理ブロック番号（０ｘ００１４）の内容は、次に使われるための準備として消去される。このように、論理ブロック番号に対応した物理ブロック番号は必ず一つ存在する。
【００２６】
次に、差分データ作成処理を説明する。この差分データ作成処理として二つの手法があり、先ず、第１の手法について説明する。
図４は、差分データを作成する場合の第１の手法を示す説明図である。
上述した差分データを作成しない場合と同様に、修正対象ブロックが論理ブロック番号（０ｘ０００３）であるとする。データ更新部１０５は、修正対象ブロックの論理ブロック番号（０ｘ０００３）を差分クラスタ番号として指定する。また、修正されたデータは論理ブロック番号（０ｘ０００３）に対して、物理ブロック番号（０ｘ００１６）を割り当てる。一方、元々論理ブロック番号（０ｘ０００３）に割り当てられていた物理ブロック番号（０ｘ００１４）は、内容を消去せず、不良ブロック扱いとする。そして、データ更新部１０５は、代替クラスタ番号として、不良ブロック扱いとした物理ブロック番号（０ｘ００１４）を格納する。
【００２７】
ここで、代替ブロックや不良ブロックはメディア１としての容量には含まれないため、第１の手法ではメディア１としての見かけ上の容量が減少することがない。
【００２８】
次に、上記第１の手法で差分データが作成された場合の、差分データの復元動作について説明する。
図５は、第１の手法の復元動作の説明図である。
データ取得部１０１により、データ検索部１０２に対して更新するファイル名を含むパス名が指定されると、データ検索部１０２は、パス名を解析して、ファイルを構成している開始クラスタ番号を取得する。更新するデータの対象となるファイルは、取得した開始クラスタ番号より読み込みが開始されるが、読み込めないブロックが発生した場合、エントリ管理部１０３は、ファイルが破損していると判断する。読み込めないブロックの論理ブロック番号が、ディレクトリエントリの差分クラスタ番号と一致した場合、データ解析部１０４は、データ復旧部１０６に対してこのブロックを復旧するように命令する。
【００２９】
データ復旧部１０６は、破損している論理ブロックが使用できないことをデータ更新部１０５に通知し、データ検索部１０２で把握しているブロックの管理において、該当する物理ブロック番号が使用できないことを設定する。データ復旧部１０６は、次に差分クラスタ番号により保持されている論理ブロック番号をデータ解析部１０４よりデータ検索部１０２に通知し、破損している論理ブロック番号の物理ブロック番号（０ｘ００１６）を、代替クラスタ番号に関連付けられている物理ブロック番号（０ｘ００１４）に置き換えるように命令する。
【００３０】
データ検索部１０２は、論理ブロック番号（０ｘ０００３）に対応する物理ブロック番号は（０ｘ００１４）として割り当てを行って、割り当て結果をデータ更新部１０５に通知する。また、予約領域内の差分クラスタ番号と代替クラスタ番号は無効になるため、データ更新部１０５は、論理ブロック番号と物理ブロック番号の対応関係を新たな割り当てで更新すると共に、予約領域内の差分クラスタ番号と代替クラスタ番号を削除するようデータ書込部３に指示する。
【００３１】
次に、差分データの作成及び差分データの復元処理における第２の手法を説明する。
図６は、差分データ作成の第２の手法を示す説明図である。
上記第１の手法と同様に、論理ブロック番号（０ｘ０００３）の論理クラスタが修正対象ブロックであるとする。データ更新部１０５は、修正対象のクラスタ（＝０ｘ０００３）を差分クラスタ番号として設定する。データ検索部１０２は、修正されたデータの論理ブロック番号（０ｘ０００３）に対して、物理ブロック番号（０ｘ００１１）を割り当てる。また、元々、論理ブロック番号（０ｘ０００３）に割り当てられていた物理ブロック番号（０ｘ００１４）は、内容を消去せず、未使用であった論理ブロック番号（０ｘ０００５）に関連付けされる。また、代替クラスタ番号として、差分データのブロックに対応した論理ブロック番号（０ｘ０００５）を設定する。更に、論理ブロック番号（０ｘ０００５）は使用済みであることを示す０ｘＦＦとする。そして、データ更新部１０５は、このような割り当てをメディア１に書き込むようデータ書込部３に指示する。
【００３２】
このように差分データが作成される第２の手法を適用した場合の差分データの復元動作を次に説明する。
図７は、差分データを復元する場合の第２の手法の説明図である。
読み込めないブロックの論理ブロック番号が、ディレクトリエントリの差分クラスタ番号と一致した場合、データ解析部１０４は、データ復旧部１０６に対して復旧するように命令する。
【００３３】
データ復旧部１０６は、破損している論理ブロックが使用できないことをデータ更新部１０５に通知し、データ検索部１０２で把握しているブロックの管理において、該当する物理ブロック番号が使用できないことを設定する。データ復旧部１０６は、次に差分クラスタ番号により保持されている論理ブロック番号をデータ解析部１０４よりデータ検索部１０２に通知し、破損している論理ブロック番号の物理ブロック番号（０ｘ００１６）を、代替クラスタ番号に設定されている論理ブロック番号（０ｘ０００５）に割り当てられている物理ブロック番号（０ｘ００１４）に置き換えるように命令する。
【００３４】
データ検索部１０２は、論理ブロック番号（０ｘ０００３）に対応する物理ブロック番号は（０ｘ００１４）として割り当てを行う。また、読み込めないブロックの論理ブロック番号に割り当てられていた物理ブロック番号（０ｘ００１１）は、不良ブロックとして扱う。データ更新部１０５は、これらの割り当てをメディア１に書き込むようデータ書込部３に指示する。また、予約領域内の差分クラスタ番号と代替クラスタ番号が無効になるため、データ更新部１０５は、これらの番号を削除するようデータ書込部３に指示する。
【００３５】
第２の手法では、このように代替ブロックを使用しないため、例えばフロッピー（登録商標）ディスクのような代替ブロックを備えていないメディア１であっても適用することができる。即ち、第２の手法では、差分データを論理ブロック番号に対応付けて保持するため、フロッピー（登録商標）ディスクのように、代替ブロックを持たず、かつ、論理ブロック番号と物理ブロック番号とが固定的に管理されているようなメディア１であっても適用することができる。
【００３６】
以上のように、実施の形態１では、更新するデータを消去せずに保持したまま、更新すべきデータの内容を別のクラスタに書き込むようにすることで、データを更新する一つ前のデータを保持しておくことができる。また、ファイルが破損した場合でも、通常のファイル操作を行うために必要な領域のみでデータを保持することが出来、破損ブロックを修復することができる。
【００３７】
尚、実施の形態１では、パス付きのファイル名の区切りは“／”で指定することを前提としているが、“￥”による区切りでも内容は同一であり、問題はない。また、読み込み単位をブロックで対応させているが、セクタでも問題はない。また保存するデータの単位は、ブロックでの読込処理や書込処理の操作を行う場合はブロックで、セクタで読込処理や書込処理の操作を行う場合はセクタで管理する。
またディレクトリエントリの更新は、ブロック内で上書きを想定しているが、元のディレクトリエントリを削除して、ディレクトリとの関連が変わらない位置で、新たに記載しても良い。
【００３８】
以上のように実施の形態１のデータアクセス装置によれば、ファイルのディレクトリエントリの予約領域から、差分データが保持されているデータの論理ブロック番号を示す差分クラスタ番号と、差分データのブロック番号を示す代替クラスタ番号とを読み込むデータ読取手段と、差分クラスタ番号のデータブロックを更新する場合、更新前のデータブロックに対応したブロック番号を代替クラスタ番号に設定する差分データ更新手段とを備えたので、ファイルの本体とバックアップの関連が、ファイルの情報からだけで辿ることができる。その結果、ファイル内のデータの欠落やファイルの破損が発生した場合でも、容易にファイルを復旧させることができる。
【００３９】
また、実施の形態１のデータアクセス装置によれば、差分データ更新手段は、代替クラスタ番号として、不良ブロックとして保持したブロックの物理ブロック番号を付与するようにしたので、不良ブロックはファイルを格納するメディアの容量には含まれないため、ユーザが使用可能な領域を使用することがなく、メディアとしての見かけ上の容量を減少させることがないという効果がある。
【００４０】
また、実施の形態１のデータアクセス装置によれば、差分データ更新手段は、代替クラスタ番号として、差分データの物理ブロック番号に対応した論理ブロック番号を付与するようにしたので、メディアとして代替ブロックを持たないものであっても適用可能という効果がある。
【００４１】
また、実施の形態１のデータアクセス装置によれば、差分クラスタ番号に対応したブロックが読み込めない場合、代替クラスタ番号に示すブロックのデータを取り出し、差分クラスタ番号のデータとして設定してファイルを復旧するデータ復旧手段を備えたので、ファイル内のデータの欠落やファイルの破損が発生した場合でも、確実にファイルを復旧させることができる。
【００４２】
尚、上記実施の形態１では、差分データとして更新前のデータを保持するようにしたが、更新後のデータを差分データとして保持するようにしてもよい。即ち、差分データ更新手段が、差分クラスタ番号のデータブロックを更新する場合、更新されるデータを複写したデータブロックのブロック番号を代替クラスタ番号に設定するよう構成してもよい。このように構成することにより、より新しいデータが保持されるため、ファイル内のデータの欠落やファイルの破損が発生した場合でも、その時点により近い状態のファイルを復旧させることができる。
【００４３】
実施の形態２．
実施の形態２は、差分クラスタ番号をＦＡＴのチェーンで管理するようにしたものである。図面上の構成は実施の形態１と同様であるため、図１を援用して説明する。実施の形態２のデータ読取手段は、ファイルのディレクトリエントリの予約領域から、ファイルの差分データの先頭ブロックの論理ブロック番号を示す差分クラスタ番号を読み込むよう構成されている。また、差分データ更新手段は、ファイルを更新する場合、差分クラスタ番号を新たに設定すると共に、新たに設定した差分クラスタ番号を先頭クラスタ番号としてＦＡＴ領域のクラスタチェーンを更新するよう構成されている。
【００４４】
図８は、実施の形態２の説明図である。
開始クラスタ番号は、図２で示したようなディレクトリエントリに格納されている開始クラスタ番号であり、ＦＡＴの中ではファイルを構成するクラスタチェーンの次クラスタ番号が格納されている。第１の接続クラスタ番号は、開始クラスタ番号の次クラスタ番号が示す論理ブロック番号で、ＦＡＴ内にはファイルの次のクラスタを構成する次クラスタ番号が格納されている。第２の接続クラスタ番号は、第１の接続クラスタの次に接続されている論理ブロック番号で、ファイルの終了を示す値が、第２の接続クラスタ番号を示すＦＡＴの位置に格納されている。
【００４５】
差分クラスタ番号は、ディレクトリエントリの予約領域内に設定されており、論理ブロック番号が割り当てられている。尚、実施の形態２では、実施の形態１における代替クラスタ番号は設定されない。ＦＡＴ内には差分クラスタ番号の内容を先頭とするファイルのクラスタチェーンに続く、論理クラスタ番号として、次クラスタ番号が格納されている。
【００４６】
実施の形態１では、差分クラスタ番号には、更新がかけられたブロックに該当する箇所を差分データとして保持したが、本実施の形態では、更新がかけられた際、ファイル全体を差分データと保持することで、破損ブロックの保護を可能とする。
【００４７】
次に、実施の形態２の動作について説明する。
更新の対象となるファイル名を含むパス名が更新される内容と共にデータ更新部１０５で指定されると、データ検索部１０２はパス名を受け取り、パス名を解析して、エントリ管理部１０３でファイル名の属性情報を持つディレクトリエントリを特定する。データ解析部１０４により、解析された属性情報から、ファイルの開始クラスタ番号と差分クラスタ情報の他に、ファイルサイズを取得する。データ更新部１０５でファイルの更新を行う前に、開始クラスタ番号よりＦＡＴのクラスタチェーンで関連付けられている情報を利用して、連続してクラスタの内容をデータ検索部１０２が指示し、データ読込部２で読み込む。読み込む際には、まったく同じ内容で複写したブロックを順次作成する。
【００４８】
開始クラスタ番号をデータ検索部１０２からデータ読込部２に対して、読み込む命令をした後、データ検索部１０２はＦＡＴより空いている論理クラスタ番号を検索し、内容を複写するようにデータ更新部１０５に命令する。同じ手順で、開始クラスタ番号に続く、論理ブロック番号で示されている第1の接続クラスタ番号の内容を、差分クラスタ番号に続く第1の接続クラスタ番号に複写する。ファイルを構成するチェーンのクラスタを読み込んで複写したブロックを作成した後、データ更新部１０５は、差分クラスタ番号を構成とするＦＡＴのチェーンを更新し、データ検索部１０２にて管理する。複写を必要とするブロックの数は、ファイルのデータが構成されているブロック数、即ち、ＦＡＴにおいてファイルに割り当てられているチェーンのブロック数である。
【００４９】
データ更新後、ファイルを構成している開始クラスタ番号からＦＡＴのチェーンの順番に更新する内容を検索して、データ更新部１０５で把握している更新するデータの内容に置き換える。データの置き換えが終了すると、データ更新部１０５は、修正されたブロックの書き込みを行うように、データ書込部３に対して命令する。データを更新するタイミングは全ての複写が終了した後に実行しているが、更新がかかるブロックは、更新が終了した後に複写を行う。
【００５０】
ブロック数の数だけの複写とデータの更新が終了すると、データ解析部１０４は、ディレクトリエントリの差分クラスタ番号が格納されたディレクトリエントリを、エントリ管理部１０３経由でデータ更新部１０５に渡し、データ書込部３で、メディア１に対して書き込みを行う。データ更新部１０５は、差分クラスタより作成されたチェーンの情報を持つＦＡＴについても、データ検索部１０２よりデータ更新部１０５に対してＦＡＴ情報を渡して、データ書込部３で更新する。ＦＡＴの書き込みは、ディレクトリエントリを書き込み前に行っても良い。
【００５１】
また、データの復旧については、データ復旧部１０６は、読み込めなかったブロックのみを置き換えるか、あるいは、ファイル全体を置き換えても良い。置き換えの基本的な動作は実施の形態１と同様である。
【００５２】
以上のように、更新するデータの複写を作成することで、常に最新の状態がメディア１内にバックアップされる上、ファイルの本体とバックアップの関連が、ファイルの情報からだけで辿ることができる。そして、ファイルが破損した場合でも、通常のファイル操作を行うために必要な領域のみでデータを保持することが出来る。差分クラスタから開始されるＦＡＴのチェーンが、本来のファイルと同等の内容を保持しているため、ファイルのどこが破損しても、該当するブロックが存在するために、必ず復旧することが可能となる。また、実施の形態２においても、差分データの管理に代替ブロックを使用しないため、フロッピー（登録商標）ディスクのような代替ブロックを備えていないメディア１であっても適用することができる。
【００５３】
また、実施の形態２では、ファイルの重要度は、ユーザにより差分データの保持の有無を決定するようにしているが、ファイルの更新がなくても、一定時間の経過により、同じデータを更新するよう構成しても良い。更に、上記例ではファイルは３つのブロックで構成されていることが、この個数に限定されるものではない。
【００５４】
尚、上記実施の形態２では、差分データとしてファイル全体をバックアップするよう構成したが、更新されるデータブロックが最小限含まれるよう構成してもよい。即ち、更新されるデータブロックが複数個に渡って存在する場合、これらのデータブロックをＦＡＴのクラスタチェーンで保持することで、ファイル全体をバックアップするのに比べて、必要な容量を少なくすることができる。
【００５５】
また、上記実施の形態２では、更新前のファイルを差分データとして保持したが、更新後のファイルの複写ファイルを差分データとして保持してもよい。
【００５６】
以上のように、実施の形態２のデータアクセス装置によれば、ファイルのディレクトリエントリの予約領域から、ファイルの差分データの先頭ブロックの論理ブロック番号を示す差分クラスタ番号を読み込むデータ読取手段と、ファイルを更新する場合、差分クラスタ番号を新たに設定すると共に、新たに設定した差分クラスタ番号を先頭クラスタ番号としてＦＡＴ領域のクラスタチェーンを更新する差分データ更新手段とを備えたので、更新されるデータブロックが複数個に渡る場合でも適用可能で、ファイルの本体とバックアップの関連が、ファイルの情報からだけで辿ることができる。その結果、ファイル内のデータの欠落やファイルの破損が発生した場合でも、容易にファイルを復旧させることができる。
【００５７】
実施の形態３．
実施の形態３は、ＦＡＴ領域の次領域の設けられている予備ＦＡＴ領域を用いて差分ファイルの物理ブロック番号を記載するようにしたものである。図面上の構成は、実施の形態１と同様であるため、図１を援用して説明する。
【００５８】
実施の形態３のデータ読取手段は、ＦＡＴ領域に対応した予備ＦＡＴ領域から、ファイルの開始クラスタ番号と接続クラスタ番号とに対応したファイルの差分ファイルの物理ブロック番号を読み込むよう構成されている。また、差分データ更新手段は、ファイルを更新する場合、更新するファイルの差分ファイルのブロックに対応させて予備ＦＡＴ領域の物理ブロック番号を更新するよう構成されている。
【００５９】
図９は、実施の形態３におけるＦＡＴの関係を示す説明図である。
ＦＡＴ領域には、ディレクトリエントリの先頭クラスタ番号と同じ番号で開始クラスタ番号が格納され、更に、ＦＡＴ上で開始クラスタ番号のリンク先を示す第１の接続クラスタ番号と、ファイルの最後を示す第２の接続クラスタ番号が格納される。
また、予備ＦＡＴ領域には、開始クラスタ番号に対応する物理ブロックと同一の内容が複写されたブロックの先頭物理ブロック番号が格納され、更に、第１の接続クラスタ番号の内容が複写されたブロックを示す第１の物理ブロック番号、第２の接続クラスタ番号の内容が複写されたブロックを示す第２の物理ブロック番号が格納されている。
【００６０】
実施の形態１及び実施の形態２では、差分データの管理は論理ブロック番号で管理していたが、実施の形態３では、ファイルの更新が発生した場合、全てのブロック番号の予備として、別の物理ブロックに複写された領域を確保する。
【００６１】
ファイルの更新が発生した場合、データ更新部１０５は、更新されるブロックの他に、データ検索部１０２で確保された空きクラスタに内容を複写する。複写されたブロックは、メディア内のＦＡＴ領域の次領域にある予備ＦＡＴ領域の中で、ＦＡＴの位置に該当する位置に、次のクラスタ番号を記載するのではなく、物理ブロック番号を書き込む。ファイルの更新が発生した場合、全てのブロックに対して複写を実行しても、更新がかかったブロックのみを予備ＦＡＴ領域に反映させても良い。
【００６２】
また、データの復旧については、データ復旧部１０６は、読み込めなかったブロックのみを置き換えるか、あるいは、ファイル全体を置き換えても良い。実施の形態３では、データ検索部１０２で管理されているファイルのクラスタ番号と物理ブロック番号の関係に基づいて、対応する物理ブロック番号のデータを読み込めなかったブロックのデータと置き換える。また、ファイル全体を置き換える場合は、予備ＦＡＴ領域に格納されている物理ブロック番号に基づいて全てのブロックのデータを読み出し、ファイル全体を復旧する。
【００６３】
以上のように、実施の形態３のデータアクセス装置によれば、ＦＡＴ領域に対応した予備ＦＡＴ領域から、ファイルの開始クラスタ番号と接続クラスタ番号とに対応したファイルの差分ファイルの物理ブロック番号を読み込むデータ読取手段と、ファイルを更新する場合、更新するファイルの差分ファイルのブロックに対応させて予備ＦＡＴ領域の物理ブロック番号を更新する差分データ更新手段とを備えたので、常に最新の状態がバックアップされる上、ファイルの本体とバックアップの関連が、ファイルの情報からだけで辿ることができる。また、論理クラスタ番号が割り振られていないブロックを割り当てることで、本来のデータ容量を減らすことなく、バックアップの作成が可能となる。
【図面の簡単な説明】
【００６４】
【図１】この発明の実施の形態１によるデータアクセス装置を示す構成図である。
【図２】この発明の実施の形態１によるデータアクセス装置のディレクトリエントリを示す説明図である。
【図３】この発明の実施の形態１によるデータアクセス装置の差分データを作成しない場合の説明図である。
【図４】この発明の実施の形態１によるデータアクセス装置の差分データを作成する場合の第１の手法を示す説明図である。
【図５】この発明の実施の形態１によるデータアクセス装置の差分データを作成する場合の第１の手法における復元動作を示す説明図である。
【図６】この発明の実施の形態１によるデータアクセス装置の差分データを作成する場合の第２の手法を示す説明図である。
【図７】この発明の実施の形態１によるデータアクセス装置の差分データを作成する場合の第２の手法における復元動作を示す説明図である。
【図８】この発明の実施の形態２によるデータアクセス装置の動作を示す説明図である。
【図９】この発明の実施の形態３によるデータアクセス装置の動作を示す説明図である。
【符号の説明】
【００６５】
１  メディア、２  データ読込部、３  データ書込部、１０１  データ取得部、１０２  データ検索部、１０３  エントリ管理部、１０４  データ解析部、１０５  データ更新部、１０６  データ復旧部。
【図１】
2008123104.tif 000003
【図２】
2008123104.tif 000004
【図３】
2008123104.tif 000005
【図４】
2008123104.tif 000006
【図５】
2008123104.tif 000007
【図６】
2008123104.tif 000008
【図７】
2008123104.tif 000009
【図８】
2008123104.tif 000010
【図９】
2008123104.tif 000011