JP6644427B2 - Fatファイルシステム及びそのプログラム - Google Patents

Fatファイルシステム及びそのプログラム Download PDF

Info

Publication number
JP6644427B2
JP6644427B2 JP2016172170A JP2016172170A JP6644427B2 JP 6644427 B2 JP6644427 B2 JP 6644427B2 JP 2016172170 A JP2016172170 A JP 2016172170A JP 2016172170 A JP2016172170 A JP 2016172170A JP 6644427 B2 JP6644427 B2 JP 6644427B2
Authority
JP
Japan
Prior art keywords
file
fat
information
management
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016172170A
Other languages
English (en)
Other versions
JP2018037030A (ja
Inventor
征洋 和田
征洋 和田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Information Systems Japan Corp
Original Assignee
Toshiba Information Systems Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Information Systems Japan Corp filed Critical Toshiba Information Systems Japan Corp
Priority to JP2016172170A priority Critical patent/JP6644427B2/ja
Publication of JP2018037030A publication Critical patent/JP2018037030A/ja
Application granted granted Critical
Publication of JP6644427B2 publication Critical patent/JP6644427B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

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

Claims (14)

  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ファイルシステムのプログラム。

JP2016172170A 2016-09-02 2016-09-02 Fatファイルシステム及びそのプログラム Active JP6644427B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016172170A JP6644427B2 (ja) 2016-09-02 2016-09-02 Fatファイルシステム及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016172170A JP6644427B2 (ja) 2016-09-02 2016-09-02 Fatファイルシステム及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2018037030A JP2018037030A (ja) 2018-03-08
JP6644427B2 true JP6644427B2 (ja) 2020-02-12

Family

ID=61567468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016172170A Active JP6644427B2 (ja) 2016-09-02 2016-09-02 Fatファイルシステム及びそのプログラム

Country Status (1)

Country Link
JP (1) JP6644427B2 (ja)

Also Published As

Publication number Publication date
JP2018037030A (ja) 2018-03-08

Similar Documents

Publication Publication Date Title
US10235066B1 (en) Journal destage relay for online system checkpoint creation
US10152381B1 (en) Using storage defragmentation function to facilitate system checkpoint
CN103365743B (zh) 用于在计算环境中处理快照的方法和系统
JP4292882B2 (ja) 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
KR102033323B1 (ko) 플래시 메모리에서 사용하는 로그 구조 파일시스템의 메타데이터 저장 방법
CN106407040A (zh) 一种远程数据复制方法及系统
CN106662981A (zh) 存储设备、程序和信息处理方法
US20160224588A1 (en) Data integrity and loss resistance in high performance and high capacity storage deduplication
US20130246726A1 (en) Method and device for a memory system
US20100217788A1 (en) Storage system format for transaction safe file system
US20070061540A1 (en) Data storage system using segmentable virtual volumes
DE102010013263A1 (de) Techniken, um ein energieausfallsicheres Caching ohne atomare Metadaten durchzuführen
JP2011039805A5 (ja)
CN112631950B (zh) 一种l2p表的保存方法、系统、设备以及介质
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
KR101738965B1 (ko) 가비지 컬렉션 저널링 장치 및 방법
KR20110046118A (ko) 적응적 로깅 장치 및 방법
TW201439767A (zh) 依電性檔案複本管理技術
JP2008090378A (ja) ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体
KR100981064B1 (ko) 저널링 파일 시스템을 이용한 소프트웨어 레이드에서의 일관성 유지방법
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
JP6644427B2 (ja) Fatファイルシステム及びそのプログラム
JP4741976B2 (ja) ディスクアレイ装置およびデータ管理方法
JP2007128448A (ja) ファイルシステム及びファイル情報処理方法
JP2006323462A (ja) ファイルコピー装置およびファイルコピー方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190121

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200107

R150 Certificate of patent or registration of utility model

Ref document number: 6644427

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250