特許第6644427号(P6644427)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝情報システム株式会社の特許一覧

特許6644427FATファイルシステム及びそのプログラム
<>
  • 特許6644427-FATファイルシステム及びそのプログラム 図000002
  • 特許6644427-FATファイルシステム及びそのプログラム 図000003
  • 特許6644427-FATファイルシステム及びそのプログラム 図000004
  • 特許6644427-FATファイルシステム及びそのプログラム 図000005
  • 特許6644427-FATファイルシステム及びそのプログラム 図000006
  • 特許6644427-FATファイルシステム及びそのプログラム 図000007
  • 特許6644427-FATファイルシステム及びそのプログラム 図000008
  • 特許6644427-FATファイルシステム及びそのプログラム 図000009
  • 特許6644427-FATファイルシステム及びそのプログラム 図000010
  • 特許6644427-FATファイルシステム及びそのプログラム 図000011
  • 特許6644427-FATファイルシステム及びそのプログラム 図000012
  • 特許6644427-FATファイルシステム及びそのプログラム 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6644427
(24)【登録日】2020年1月10日
(45)【発行日】2020年2月12日
(54)【発明の名称】FATファイルシステム及びそのプログラム
(51)【国際特許分類】
   G06F 11/14 20060101AFI20200130BHJP
   G06F 16/13 20190101ALI20200130BHJP
【FI】
   G06F11/14 671
   G06F16/13 200
【請求項の数】14
【全頁数】16
(21)【出願番号】特願2016-172170(P2016-172170)
(22)【出願日】2016年9月2日
(65)【公開番号】特開2018-37030(P2018-37030A)
(43)【公開日】2018年3月8日
【審査請求日】2019年1月21日
(73)【特許権者】
【識別番号】391016358
【氏名又は名称】東芝情報システム株式会社
(74)【代理人】
【識別番号】100090169
【弁理士】
【氏名又は名称】松浦 孝
(74)【代理人】
【識別番号】100074147
【弁理士】
【氏名又は名称】本田 崇
(72)【発明者】
【氏名】和田 征洋
【審査官】 大桃 由紀雄
(56)【参考文献】
【文献】 特開2000−284995(JP,A)
【文献】 特開2006−134123(JP,A)
【文献】 特開2009−230395(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/13
G06F 11/14
(57)【特許請求の範囲】
【請求項1】
記録媒体中に、ファイルを書き込む所定容量のクラスタを複数備え、
ファイル制御領域に設けられる、1つのファイルが記憶されたクラスタにおける先頭クラスタ番号情報と、前記1つのファイルが記憶されたクラスタに関するクラスタ数分のデータクラスタチェーン情報と、未使用のクラスタの数情報とを含む管理情報をFAT管理手段が用いて、前記記録媒体中のファイル管理を行うFATファイルシステムにおいて、
ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の前記管理情報中の所要の1つとそのセクタアドレスとより構成される管理情報コピーセットを時系列に書き込むロールバック領域管理手段と、
ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、前記ロールバック領域管理手段により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込む更新完了確認手段と
を備えることを特徴とするFATファイルシステム。
【請求項2】
前記記録媒体を含むシステム停止から復旧したときに、前記ロールバック領域の最終書き込み情報が完了情報でない場合に、最後に書き込まれた完了情報以降の管理情報コピーセットを時系列の新しい側から順に前記ファイル制御領域に書き戻すと共に、ロールバック領域における書き戻した情報の次に更新完了を示す完了情報を書き込む復旧処理手段を
具備することを特徴とする請求項1に記載のFATファイルシステム。
【請求項3】
前記FAT管理手段は、ファイルデータの上書きを行う場合に、上書きするデータを未使用のクラスタに書き込むことを特徴とする請求項1または2に記載のFATファイルシステム。
【請求項4】
前記FAT管理手段は、ファイルデータの上書きを行う場合に、クラスタ単位で上書きすることを特徴とする請求項3に記載のFATファイルシステム。
【請求項5】
前記FAT管理手段が、1つのクラスタへ書き込みを行う毎に、ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込むことを特徴とする請求項3または4に記載のFATファイルシステム。
【請求項6】
ロールバック領域管理手段が、対応する管理情報コピーセットを時系列に書き込むと、前記FAT管理手段が、前記ファイル制御領域の管理情報を更新することを特徴とする請求項5に記載のFATファイルシステム。
【請求項7】
前記FAT管理手段が全てのクラスタへの上書き処理を終了し、前記ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込み、前記FAT管理手段が前記ファイル制御領域における管理情報の更新を完了した場合に、前記更新完了確認手段が完了情報を書き込むことを特徴とする請求項6に記載のFATファイルシステム。
【請求項8】
記録媒体中に、ファイルを書き込む所定容量のクラスタを複数備え、前記記録媒体中のファイル管理をコンピュータが行うFATファイルシステムの前記コンピュータを、
ファイル制御領域に設けられる、1つのファイルが記憶されたクラスタにおける先頭クラスタ番号情報と、前記1つのファイルが記憶されたクラスタに関するクラスタ数分のデータクラスタチェーン情報と、未使用のクラスタの数情報とを含む管理情報を用いてファイル管理を行うFAT管理手段、
ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の前記管理情報中の所要の1つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込むロールバック領域管理手段、
ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、前記ロールバック領域管理手段により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込む更新完了確認手段
として機能させることを特徴とするFATファイルシステムのプログラム。
【請求項9】
前記コンピュータを更に、
前記記録媒体を含むシステムがシステム停止から復旧したときに、前記ロールバック領域の最終書き込み情報が完了情報でない場合に、最後に書き込まれた完了情報以降の管理情報コピーセットを時系列の新しい側から順に前記ファイル制御領域に書き戻すと共に、ロールバック領域における書き戻した情報の次に更新完了を示す完了情報を書き込む復旧処理手段
として機能させることを特徴とする請求項8に記載のFATファイルシステムのプログラム。
【請求項10】
前記コンピュータを前記FAT管理手段として、ファイルデータの上書きを行う場合に、上書きするデータを未使用のクラスタに書き込むように機能させることを特徴とする請求項8または9に記載のFATファイルシステムのプログラム。
【請求項11】
前記コンピュータを前記FAT管理手段として、ファイルデータの上書きを行う場合に、クラスタ単位で上書きするように機能させることを特徴とする請求項10に記載のFATファイルシステムのプログラム。
【請求項12】
前記コンピュータを前記FAT管理手段として、1つのクラスタへ書き込みを行う毎に、ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込むように機能させることを特徴とする請求項10または11に記載のFATファイルシステムのプログラム。
【請求項13】
前記コンピュータをロールバック領域管理手段機能させて、対応する管理情報コピーセットを時系列に書き込むと、前記コンピュータを前記FAT管理手段として、前記ファイル制御領域の管理情報を更新するように機能させることを特徴とする請求項12に記載のFATファイルシステムのプログラム。
【請求項14】
前記コンピュータを前記FAT管理手段として機能させて、全てのクラスタへの上書き処理を終了し、前記コンピュータを前記ロールバック領域管理手段として機能させて、対応する管理情報コピーセットを時系列に書き込み、前記コンピュータを前記FAT管理手段として機能させて前記ファイル制御領域における管理情報の更新を完了した場合に、前記コンピュータを前記更新完了確認手段として、完了情報を書き込むように機能させることを特徴とする請求項13に記載のFATファイルシステムのプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、記録媒体中に、ファイルを書き込む所定容量のクラスタを複数備える、FATファイルシステム及びそのプログラムに関するものである。
【背景技術】
【0002】
FATファイルシステムでは、ファイルの管理する際にメタ情報(以下、管理情報)を用いており、この管理情報を用いて1ファイル毎にユーザデータの記憶を行っている。FATファイルシステムに用いられる管理情報には、ファイルアロケーションテーブル(以下、FAT)、ディレクトリエントリ(以下、DE)、未使用のクラスタ数を保持するFSInfoがあり、それぞれは論理的に離れた領域に保持される。
【0003】
NAND型フラッシュメモリのような特定のサイズ単位(以下、セクタ)でアクセスするストレージデバイス(記録媒体)では、ファイルの作成、更新、削除などにより管理情報に変更が生じる場合、管理情報が論理的に離れた領域に保持されるため、複数回のデータ書き込みが必要になる。また、セクタには他ファイルの管理情報が含まれている。
【0004】
上記のようなストレージデバイスにおいて電断が発生すると、管理情報の一部だけが更新された状態となる。管理情報の一部だけが更新された状態では、FATファイルシステム全体の整合性がとれていないことがある。FATファイルシステム全体の整合性がとれていない場合、更新しようとしたファイルまたは更新を行っていないファイルが、存在しない、ファイルが読めないなどの問題が発生することがある。
【0005】
また、ファイルの既存データを上書き中に電断が発生し、電断復旧後に上書き中の全てデータを更新前に戻すことができない場合、電断復旧後のファイルデータは一部だけが上書きされた状態となる。
この電断復旧方法では、ファイルの上書きが不可分な操作である必要がある場合に、ファイルデータの一部だけが上書きされた不完全な或いは意味のないファイルが残る問題が発生する可能性がある。
【0006】
上記に対し、ファイルの更新の途中で電源断などのシステム停止が生じたような場合の対策として、以下のような手法を備えたファイルシステムが知られている。特許文献1には、ファイルとその格納位置を示す位置情報を記録してある第1記録媒体と、第1記録媒体とは異なる第2記録媒体とを備えるファイル更新装置であって、第1記録媒体中のファイルを複数の更新手順を経て更新し、どの更新手順まで実施済みであるかを示す進行情報を第2記録媒体中に記録し、更新前のファイルとは別に、更新後のファイルを第1記録媒体中に記録し、更新後のファイルについての第1記録媒体中の格納位置を示す更新情報を第2記録媒体中に記録し、更新後のファイルについて更新情報が記録された後に、当該更新情報に基づいて、当該ファイルの第1記録媒体中の格納位置を示すように、当該ファイルの更新前の格納位置を示している第1記録媒体中の位置情報を更新することが開示されている。
【0007】
特許文献2には、不揮発メモリ上のFAT、ノード情報テーブルを主記憶装置上にコピーし、FAT及びノード情報テーブルの更新を主記憶装置120上で行うFATファイルシステムが開示されている。このシステムでは、ファイル領域に格納されているファイルの更新時、ファイルの更新箇所に対応するクラスタの内容をそのままにして空きクラスタに更新後の内容を書き込み、ファイルクローズ時、主記憶装置上にコピーし更新したFAT及びノード情報テーブルの内容を、それぞれ不揮発メモリ上のFATエリア及びRDE(ルートディレクトリエントリ)に書き戻すように構成している。
【0008】
特許文献3には、情報記憶媒体上において所定の最小記憶単位よりも大きい所定容量の領域を管理単位領域とし、この管理単位領域内に主情報たるデータを記憶するためのデータ領域と該データに係る管理情報を記憶するための管理情報領域とを設けてデータ記憶管理するシステムが開示されている。このシステムでは、上記管理情報領域に、データの記憶状況を表す情報を保持するための状態保持部と上記情報記憶媒体上に設定された上記各管理単位領域の系列中において自己が該当する順位に先行する管理単位領域の順位を表す情報を保持するための先行順位保持部とを設定し、上記データ領域に対するデータの書き込み動作が中断されてから復旧させるときには、上記管理情報領域の状態保持部に保持された情報と先行順位保持部に保持された情報とを利用して、書き込みが中断されたデータを復旧させる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2004−157997号公報
【特許文献2】特開2004−102660号公報
【特許文献3】特開2003−331586号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、上記の特許文献1、2の手法では、ファイルの更新完了後にファイル管理情報の最終的な更新が行わなければならない。また、特許文献3の手法では、書き込みが中断されたデータの復旧が煩わしいという問題がある。
【0011】
本発明は上記のような問題に鑑みてなされたもので、その目的は、ファイルの更新時に電源断などのシステム停止が起きても元の状態にファイルシステムを戻し、適切なファイルの状態を実現することが可能なFATファイルシステム及びそのプログラムを提供することである。
【課題を解決するための手段】
【0012】
本発明に係るFATファイルシステムは、記録媒体中に、ファイルを書き込む所定容量のクラスタを複数備え、ファイル制御領域に設けられる、1つのファイルが記憶されたクラスタにおける先頭クラスタ番号情報と、前記1つのファイルが記憶されたクラスタに関するクラスタ数分のデータクラスタチェーン情報と、未使用のクラスタの数情報とを含む管理情報をFAT管理手段が用いて、前記記録媒体中のファイル管理を行うFATファイルシステムにおいて、ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の前記管理情報中の所要の1つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込むロールバック領域管理手段と、ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、前記ロールバック領域管理手段により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込む更新完了確認手段とを備えることを特徴とする。
【0013】
本発明に係るFATファイルシステムでは、前記記録媒体を含むシステムがシステム停止から復旧したときに、前記ロールバック領域の最終書き込み情報が完了情報でない場合に、最後に書き込まれた完了情報以降の管理情報コピーセットを時系列の新しい側から順に前記ファイル制御領域に書き戻すと共に、ロールバック領域における書き戻した情報の次に更新完了を示す完了情報を書き込む復旧処理手段を具備することを特徴とする。
【0014】
本発明に係るFATファイルシステムでは、前記FAT管理手段は、ファイルデータの上書きを行う場合に、上書きするデータを未使用のクラスタに書き込むことを特徴とする。
【0015】
本発明に係るFATファイルシステムでは、前記FAT管理手段は、ファイルデータの上書きを行う場合に、クラスタ単位で上書きすることを特徴とする。
【0016】
本発明に係るFATファイルシステムでは、前記FAT管理手段が、1つのクラスタへ書き込みを行う毎に、ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込むことを特徴とする。
【0017】
本発明に係るFATファイルシステムでは、ロールバック領域管理手段が、対応する管理情報コピーセットを時系列に書き込むと、前記FAT管理手段が、前記ファイル制御領域の管理情報を更新することを特徴とする。
【0018】
本発明に係るFATファイルシステムでは、前記FAT管理手段が全てのクラスタへの上書き処理を終了し、前記ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込み、前記FAT管理手段が前記ファイル制御領域における管理情報の更新を完了した場合に、前記更新完了確認手段が完了情報を書き込むことを特徴とする。
【0019】
本発明に係るFATファイルシステムのプログラムは、記録媒体中に、ファイルを書き込む所定容量のクラスタを複数備え、前記記録媒体中のファイル管理をコンピュータが行うFATファイルシステムの前記コンピュータを、ファイル制御領域に設けられる、1つのファイルが記憶されたクラスタにおける先頭クラスタ番号情報と、前記1つのファイルが記憶されたクラスタに関するクラスタ数分のデータクラスタチェーン情報と、未使用のクラスタの数情報とを含む管理情報を用いてファイル管理を行うFAT管理手段、ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の前記管理情報中の所要の1つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込むロールバック領域管理手段、ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、前記ロールバック領域管理手段により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込む更新完了確認手段として機能させることを特徴とする。
【0020】
本発明に係るFATファイルシステムのプログラムでは、前記コンピュータを更に、前記記録媒体を含むシステムがシステム停止から復旧したときに、前記ロールバック領域の最終書き込み情報が完了情報でない場合に、最後に書き込まれた完了情報以降の管理情報コピーセットを時系列の新しい側から順に前記ファイル制御領域に書き戻すと共に、ロールバック領域における書き戻した情報の次に更新完了を示す完了情報を書き込む復旧処理手段として機能させることを特徴とする。
【0021】
本発明に係るFATファイルシステムのプログラムでは、前記コンピュータを前記FAT管理手段として、ファイルデータの上書きを行う場合に、上書きするデータを未使用のクラスタに書き込むように機能させることを特徴とする。
【0022】
本発明に係るFATファイルシステムのプログラムでは、前記コンピュータを前記FAT管理手段として、ファイルデータの上書きを行う場合に、クラスタ単位で上書きするように機能させることを特徴とする。
【0023】
本発明に係るFATファイルシステムのプログラムでは、前記コンピュータを前記FAT管理手段として、1つのクラスタへ書き込みを行う毎に、ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込むように機能させることを特徴とする。
【0024】
本発明に係るFATファイルシステムのプログラムでは、前記コンピュータをロールバック領域管理手段機能させて、対応する管理情報コピーセットを時系列に書き込むと、前記コンピュータを前記FAT管理手段として、前記ファイル制御領域の管理情報を更新するように機能させることを特徴とする。
【0025】
本発明に係るFATファイルシステムのプログラムでは、前記コンピュータを前記FAT管理手段として機能させて、全てのクラスタへの上書き処理を終了し、前記コンピュータを前記ロールバック領域管理手段として機能させて、対応する管理情報コピーセットを時系列に書き込み、前記コンピュータを前記FAT管理手段として機能させて前記ファイル制御領域における管理情報の更新を完了した場合に、前記コンピュータを前記更新完了確認手段として、完了情報を書き込むように機能させることを特徴とする。
【発明の効果】
【0026】
本発明によれば、ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の上記管理情報のいずれか1つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込み、ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込むので、ファイルの更新時に電源断などのシステム停止が起きても、最後に書き込まれた完了情報の次の管理情報コピーセットを用いて元の状態にファイルシステムを戻すことが可能である。
【図面の簡単な説明】
【0027】
図1】本発明に係るFATファイルシステムの実施形態を示すブロック図。
図2】本発明に係るFATファイルシステムの実施形態によるファイル更新処理手順を示す図。
図3】本発明に係るFATファイルシステムの実施形態によるファイル更新処理手順を示す図。
図4】本発明に係るFATファイルシステムの実施形態によるファイル更新処理手順を示す図。
図5】本発明に係るFATファイルシステムの実施形態によるシステム停止後の復旧処理手順を示す図。
図6】本発明に係るFATファイルシステムの実施形態によるシステム停止後の復旧処理手順を示す図。
図7】本発明に係るFATファイルシステムの実施形態によるファイルの上書き処理手順を示す図。
図8】本発明に係るFATファイルシステムの実施形態によるファイルの上書き処理手順を示す図。
図9】本発明に係るFATファイルシステムの実施形態によるファイルの上書き処理手順を示す図。
図10】本発明に係るFATファイルシステムの実施形態によるファイルの上書き処理手順を示す図。
図11】本発明に係るFATファイルシステムの実施形態によるファイルの上書き処理手順を示すフローチャート。
図12図11のフローチャートにおけるサブルーチンの処理手順を示すフローチャート。
【発明を実施するための形態】
【0028】
以下添付図面を参照して、本発明に係るFATファイルシステム及びそのプログラムの実施形態を説明する。各図において、同一の構成要素には同一の符号を付して重複する説明を省略する。図1に、本実施形態に係るFATファイルシステムの構成図を示す。
【0029】
図1に示されるように、本実施形態に係るFATファイルシステムは、例えばNAND型フラッシュメモリなどにより構成される記録媒体部20と、CPUや主メモリなどにより構成され、記録媒体部20を制御する記録媒体制御部10とを備える。このファイルシステムは、パーソナルコンピュータやサーバなどに搭載されることができる。
【0030】
記録媒体部20には、ファイル制御領域200とロールバック領域300が設けられている。ファイル制御領域200には、データ領域(Data)_210が設けられており、このデータ領域210には、所定容量のデータクラスタ(data)を複数(221〜22n(整数))備えている。更に、データ領域210には、DE(root)_211、DE(sub)_212、DE(sub)_213が設けられている。DE(root)_211は、ルートディレクトリの情報、ルートに存在するファイルのファイル名などが記憶された領域であり、DE(sub)_212とDE(sub)_213は、ルートディレクトリ以外のディレクトリの情報、サブディレクトリに存在するファイルのファイル名などが記憶された領域であり、これらファイル毎のDE(root)には、ファイルの先頭クラスタのクラスタ番号が記憶される。
【0031】
記録媒体部20のファイル制御領域200には、MBR(マスターブートレコード)_231、PBR(パーティションブートレコード)_232、FSInfo_233、FAT[1](FATテーブル1)_234、FAT[2](FATテーブル2)_235が設けられている。
【0032】
MBR231は、パーティション情報などが記憶された領域であり、PBR_232は、FATやDEに関する情報が記憶された領域である。FSInfo_233は、未使用のクラスタの数情報が記憶される領域である。FAT[1]_234は、ファイルの場所を示す情報が記憶される領域であり、ファイル毎のFATには、ファイルのクラスタ数分のデータクラスタチェーン情報が記憶される。FAT[2]_235は、FAT[1]_234と同様の機能を有する領域であり、FAT[1]_234のバックアップ(ミラー)領域とすることも可能な領域である。ここでは、FAT[2]_235まで示しているが、記録媒体部20の容量に応じて適宜な数Nが設けられる。つまり、FAT[1]〜FAT[N]が設けられる。
【0033】
上記FSInfo_233、FAT[1]_234、FAT[2]_235、DE(root)_211、DE(sub)_212とDE(sub)_213の領域に記憶されている情報は、管理情報である。1つのファイルの管理情報は、ファイル名により統括されており、ファイル名により特定可能である。記録媒体部20には、ロールバック領域300が設けられている。このロールバック領域300には、ファイルの更新の際に、上記管理情報のいずれか1つとそのセクタアドレスとにより構成される管理情報コピーセットが時系列に書き込まれる。
【0034】
記録媒体制御部10には、FAT管理手段11、ロールバック領域管理手段12、更新完了確認手段13、復旧処理手段14が設けられる。FAT管理手段11は、ファイル制御領域200に設けられる、1つのファイルが記憶された1または複数のクラスタにおける先頭クラスタ番号情報(ファイル毎のDE(root)内)と、上記1つのファイルが記憶された複数のクラスタに関するクラスタ数分のデータクラスタチェーン情報(ファイルのFAT内)と、未使用のクラスタの数情報(FSInfo内)とを含む管理情報を用いて、上記記録媒体部20中のファイル管理を行う。
【0035】
ロールバック領域管理手段12は、ロールバック領域300に、ファイルの更新の際に、更新に係るファイルのその時点の上記管理情報のいずれか1つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込むものである。更新完了確認手段13は、ファイルの更新結果と上記ファイル制御領域200の管理情報の整合性がとれた場合に、上記ロールバック領域管理手段12により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報(デリミタ)を書き込むものである。復旧処理手段14は、上記記録媒体を含むシステムが電源断などのシステム停止から復旧したときに、上記ロールバック領域300の最終書き込み情報が完了情報(デリミタ)でない場合に、最後に書き込まれた完了情報(デリミタ)以降の管理情報コピーセットを時系列の新しい側から順に上記ファイル制御領域200に書き戻すと共に、ロールバック領域300における書き戻した情報の次に更新完了を示す完了情報(デリミタ)を書き込むものである。
【0036】
以上のように構成されたFATファイルシステムにおけるファイル更新動作を説明する。図2に、FATファイルシステムにおけるファイル更新動作に関係する領域として、ファイル制御領域200の管理情報とデータクラスタ(data)221〜22nの一部の領域と、ロールバック領域300が示されている。管理情報の領域として、FSInfo_233、FAT_230、DE(root)_211、DE(sub)_212とDE(sub)_213が示されている。FAT_230は、FAT[1]〜FAT[N]を含むものとして示している。
【0037】
記録媒体部20に記録してあるファイルの更新を行う場合に、ロールバック領域300に、更新に係るファイルのその時点の前記管理情報のいずれか1つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込む(ロールバック領域管理手段12)。図2の例では、ファイル名FLのファイル更新によってFAT_230(FAT[1]〜FAT[N]中の所定の1テーブル)のデータクラスタチェーン情報を更新する必要があるため、ファイル制御領域200のその時点の管理情報であるFAT_230の情報とそのセクタアドレス(この1テーブルが記憶されているセクタアドレス)をロールバック領域300のアドレス#1に書き込む(図2(a)S11)。
【0038】
次に図2(b)に示すように、ファイル名FLのファイルデータ更新を、データクラスタ(data)221〜22n中の例えばデータクラスタ(data)222において行う(S12)と共に、ファイル制御領域200のFAT_230の管理情報を更新する(S13)。この図2の例は、ファイルの更新結果とファイル制御領域200の管理情報の整合性が未だとれていない場合を示す。このため、上記ロールバック領域管理手段12により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込むことは行われていない。
【0039】
図3のファイル更新動作例は、図2に示したファイル更新動作に続いて行われたものを示す。図2に示した動作に続いて、ファイル名FLのファイル更新によってFAT_230(FAT[1]〜FAT[N]中の所定の1テーブル(図2の場合と同じテーブル))のデータクラスタチェーン情報を更新する必要があるため、ファイル制御領域200のその時点の管理情報であるFAT_230の情報とそのセクタアドレスをロールバック領域300のアドレス#2に書き込む(図3(a)S21)。
【0040】
次に図3(a)に示すように、ファイル名FLのファイルデータ更新を、データクラスタ(data)221〜22n中の例えばデータクラスタ(data)223において行う(S22)と共に、ファイル制御領域200のFAT_230の情報を更新する(S23)。更に、S22の処理でファイル名FLの先頭クラスタを変更する必要が生じたため、図3(b)に示すように、DE(sub)_212の情報とそのセクタアドレスをロールバック領域300のアドレス#3に書き込む(図3(b)S24)。更に、ファイル制御領域200のDE(sub)_212の情報(先頭クラスタ番号情報)を更新する(S25)。
【0041】
また、S22の処理で未使用クラスタ数の変更を行う必要が生じたために、図4(a)に示すように、FSInfo_233の情報とそのセクタアドレスをロールバック領域300のアドレス#4に書き込む(図4(a)S26)。また、ファイル制御領域200のFSInfo_233の情報を更新する(図4(b)S27)。なお、この図4から図6において、ロールバック領域300の横幅が図1から図3までのものよりも幅広に描いているが、これは文字列の多い構成要素を図示したためであり、ロールバック領域300の容量が変化したことを示すものではない。
【0042】
以上により、ファイル名FLのファイル更新が、データクラスタ(data)221〜22n中の例えばデータクラスタ(data)222及びデータクラスタ(data)223において行われ、対応するファイル制御領域200の管理情報の更新がFAT_230、DE(sub)_212及びFSInfo_233にて行われ、ファイル名FLのファイルの更新結果とファイル制御領域200の管理情報の整合性がとれた状態となっている。このため、上記ロールバック領域管理手段12により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報(デリミタ)が書き込まれる(図4(b)S28)。
【0043】
さて、上記記録媒体部20が電源断などのシステム停止から復旧したときに、ロールバック領域300の最終書き込み情報が完了情報(デリミタ)であれば、図4を用いて説明したようにファイルの更新結果とファイル制御領域200の管理情報の整合性がとれている状態にあるので、復旧処理を行う必要はない。これに対し、上記記録媒体部20が電源断などのシステム停止から復旧したときに、ロールバック領域300の最終書き込み情報が完了情報(デリミタ)でない場合には、復旧処理手段14により復旧処理が行われる。以下に、この復旧処理の説明を行う。
【0044】
図5(a)に示すように、記録媒体部20が電源断などのシステム停止から復旧したときに、ロールバック領域300の最終書き込み情報が完了情報(デリミタ)ではなく、アドレス#1に記憶された最終の完了情報(デリミタ)以降に、FAT_230の情報とそのセクタアドレスが記憶され(ロールバック領域300のアドレス#2)、DE(sub)_212の情報とそのセクタアドレスが記憶され(ロールバック領域300のアドレス#3)、FSInfo_233の情報とそのセクタアドレスが記憶され(ロールバック領域300のアドレス#4)ていたものとする。
【0045】
上記の場合に、最後に書き込まれた完了情報以降の管理情報コピーセットを時系列の新しい側から順に上記ファイル制御領域200に書き戻す。まず、ロールバック領域300のアドレス#4に記憶されているFSInfo_233の情報を、同アドレスに記憶されているセクタアドレスのファイル制御領域200に書き戻す(図5(a)S31)。次に、ロールバック領域300のアドレス#3に記憶されているDE(sub)_212の情報を、同アドレスに記憶されているセクタアドレスのファイル制御領域200に書き戻す(図5(b)S32)。
【0046】
更に、ロールバック領域300のアドレス#2に記憶されているFAT_230の情報を、同アドレスに記憶されているセクタアドレスのファイル制御領域200に書き戻す(図6(a)S33)。必要な情報の書き戻しが終了すると、ロールバック領域300における書き戻した情報の次に更新完了を示す完了情報(デリミタ)を書き込む(図6(b)S34)。なお、本実施形態では、ロールバック領域300の先頭アドレス#1に完了情報(デリミタ)を書き込んである場合を示したが、この書込みを行わず、先頭アドレス#1まで戻ると書き戻しを終了するようにしても良い。
【0047】
次に、本実施形態に係るFATファイルシステムにおいてファイルデータの上書きを行う場合処理を説明する。この処理では、各手段が次の通り処理を行う。FAT管理手段11は、ファイルデータの上書きを行う場合に、上書きするデータを未使用のクラスタに書き込む。本実施形態では、上書き前の旧クラスタ番号を保持した状態で、上書きするデータを未使用のクラスタに書き込む。FAT管理手段11は、ファイルデータの上書きを行う場合に、クラスタ単位で上書きする。FAT管理手段11が、1つのクラスタへ書き込みを行う毎に、ロールバック領域管理手段12が対応する管理情報コピーセットを時系列に書き込む。ロールバック領域管理手段12が、対応する管理情報コピーセットを時系列に書き込むと、上記FAT管理手段11が、上記ファイル制御領域200の管理情報を更新する。FAT管理手段11が全てのクラスタへの上書き処理を終了し、上記ロールバック領域管理手段12が対応する管理情報コピーセットを時系列に書き込み、上記FAT管理手段11が上記ファイル制御領域200における管理情報の更新を完了した場合に、上記更新完了確認手段13が完了情報を書き込む。
【0048】
本実施形態では、上書き前の旧クラスタ番号を保持した状態で、上書きするデータを未使用のクラスタに書き込む。ここでは、ファイル名FRのサイズが10クラスタのファイルにおいて、先頭から2クラスタ分のデータを上書き更新する場合を例とする。図7は当該ファイル名FRのファイルに関する上書き前の、ファイル制御領域200の情報と、ロールバック領域300の情報と、FATテーブルの情報と、上書き前の旧クラスタ番号を保持するレジスタRの情報を示している。システムの運用中であればロールバック領域300には、既に他のファイルに関する情報などが記憶されているはずであるが、説明の都合上、省略してある。
【0049】
図7において、ファイル制御領域200の、FSInfoの領域には未使用クラスタ数が記憶され、FATの領域には右側のFATテーブルに示すようなデータクラスタチェーン情報が記憶され、DEの領域には先頭クラスタ番号情報が記憶されている。このファイルは、FATテーブルの情報から判るように、クラスタ番号1のデータの次にクラスタ番号2のデータが続き、クラスタ番号2のデータの次にクラスタ番号3のデータが続き、・・・、クラスタ番号9のデータの次にクラスタ番号10のデータが続き、クラスタ番号10が終端となっている。この関係がファイル制御領域200において、DEの領域の先頭クラスタ番号情報が「1」であり、以下、矢印で、クラスタ1(data)、クラスタ2(data)、・・・、クラスタ10(data)と続いていることを示している。
【0050】
まず、当該ファイルのクラスタ1(data)のデータに対し上書きする処理による各領域の変化が図8に示され、処理手順が図8のSS1に示されている。本実施形態では、上書きするデータを未使用のクラスタ番号11のクラスタに書き込み、未使用クラスタ数が記憶されたFSInfo(の情報)をロールバック領域300のアドレス#1へ書き込む。また、ファイル制御領域200の、FSInfoの領域に記憶されている未使用クラスタ数を「1」減少させる。
【0051】
次に、当該ファイルの第1番目のクラスタをクラスタ番号11のクラスタとするのに先立って、データクラスタチェーン情報が記憶されたFAT(の情報)をロールバック領域300のアドレス#2へ書き込むと共に、ファイル制御領域200の、FATテーブルのクラスタ番号11のFAT値(次クラスタ番号)に「2」を書き込む。更に、当該ファイルの先頭クラスタをクラスタ番号11のクラスタとするため、先頭クラスタ番号情報が記憶されたDE(の情報)をロールバック領域300のアドレス#3へ書き込み、ファイル制御領域200のDE(の情報)を「11」へ変更する。その後、上書き前の旧クラスタ番号を保持するレジスタRに「1」を書き込む。
【0052】
次に、当該ファイルのクラスタ2(data)のデータに対し上書きする処理による各領域の変化が図9に示され、処理手順が図9のSS2に示されている。本実施形態では、上書きするデータを未使用のクラスタ番号12のクラスタに書き込み、未使用クラスタ数が記憶されたFSInfo(の情報)をロールバック領域300のアドレス#4へ書き込む。また、ファイル制御領域200の、FSInfoの領域に記憶されている未使用クラスタ数を「1」減少させる。
【0053】
次に、当該ファイルの第2番目のクラスタをクラスタ番号12のクラスタとするのに先立って、データクラスタチェーン情報が記憶されたFAT(の情報)をロールバック領域300のアドレス#5へ書き込むと共に、ファイル制御領域200の、FATテーブルのクラスタ番号11のFAT値(次クラスタ番号)を「12」に更新し、FATテーブルのクラスタ番号12のFAT値(次クラスタ番号)に「3」を書き込む。その後、上書き前の旧クラスタ番号を保持するレジスタRに「2」を追加する。この結果、上書き前の旧クラスタ番号を保持するレジスタRには、「1」、「2」が保持される。
【0054】
以上のようにして、先頭から2クラスタ分のデータを上書きした後に、上書き前のデータが格納されているクラスタの無効化と、ファイルの更新結果とファイル制御領域200の管理情報の整合性をとる処理を図10に示すように行う。ここでは、処理手順が図10のSS3に示されている。まず、上書き前のデータが格納されているクラスタの無効化のために、データクラスタチェーン情報が記憶されたFAT(の情報)をロールバック領域300のアドレス#6へ書き込むと共に、ファイル制御領域200の、FATテーブルのクラスタ番号1及びクラスタ番号2のFAT値(次クラスタ番号)を「00」に更新する。
【0055】
また、未使用クラスタ数が記憶されたFSInfo(の情報)をロールバック領域300のアドレス#7へ書き込み、ファイル制御領域200の、FSInfoの領域に記憶されている未使用クラスタ数を「2」増加させる。更に、上書き前の旧クラスタ番号を保持するレジスタRに保持されているクラスタ番号「1」及び「2」をクリアする。以上により、ファイルの更新結果とファイル制御領域200の管理情報の整合性がとれたため、上記更新完了確認手段13が完了情報(デリミタ)をロールバック領域300の最終空白アドレスであるアドレス#8に書き込む。
【0056】
上記のようにしてファイルデータの上書きを行っているときに、完了情報(デリミタ)をロールバック領域300に書き込む前に電源断などのシステム停止となった場合には、図5図6により説明した場合と同様にしてロールバック領域300の情報をファイル制御領域200へ書き戻してファイルデータの上書き前に戻って処理を行うことができる。
【0057】
本実施形態におけるファイルデータの上書き処理動作を図11及び図12のフローチャートにより説明する。処理の開始から、ループS91とループ94により挟まれている処理S92と処理S93を更新データサイズ(クラスタ数n(整数))分となるまで繰り返す。まず、1つ目のクラスタに対するデータの書き込みのため、新しいクラスタを割り当てる(S92)。次に、「管理情報更新」のサブルーチン処理S93が行われる。
【0058】
サブルーチン処理S93は、図12に示されている。つまり、「管理情報更新」のサブルーチンでは、ファイル制御領域200の該当管理情報をロールバック領域300へ書き込み(S931)、ファイル制御領域200の管理情報を更新する(S932)。
【0059】
処理S92と処理S93が更新データサイズ(クラスタ数n(整数))分となるまで繰り返された後には、ファイルの更新結果とファイル制御領域200の管理情報の整合性がとれるので、更新完了確認手段13が完了情報(デリミタ)をロールバック領域300の最終空白アドレスへ書き込んで(S95)、処理終了となる。
【0060】
以上のようにしてファイルデータの上書きの際には、ファイル制御領域200の該当管理情報をロールバック領域300へ書き込むので、電源が断となった場合には、ロールバック領域300の管理情報をファイル制御領域200へ書き戻しすることで、ファイル制御領域200のファイル記録状態と管理情報の整合性をとることができ、安定的なシステム運用を図ることができる。
【符号の説明】
【0061】
10 記録媒体制御部
11 FAT管理手段
12 ロールバック領域管理手段
13 更新完了確認手段
14 復旧処理手段
20 記録媒体部
200 ファイル制御領域
210 データ領域
300 ロールバック領域

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12