(57)【要約】【課題】ファイルの更新時に電源断などが起きても元の状態にファイルシステムを戻す。【解決手段】ファイル制御領域に設けられる、１つのファイルが記憶されたクラスタにおける先頭クラスタ番号情報と、前記１つのファイルが記憶されたクラスタに関するクラスタ数分のデータクラスタチェーン情報と、未使用のクラスタの数情報とを含む管理情報をＦＡＴ管理手段１１が用いて、記録媒体中のファイル管理を行う。ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の上記管理情報のいずれか１つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込む。ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、更新完了を示す完了情報を書き込む。【選択図】図１
2018037030.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体中に、ファイルを書き込む所定容量のクラスタを複数備え、
ファイル制御領域に設けられる、１つのファイルが記憶されたクラスタにおける先頭クラスタ番号情報と、前記１つのファイルが記憶されたクラスタに関するクラスタ数分のデータクラスタチェーン情報と、未使用のクラスタの数情報とを含む管理情報をＦＡＴ管理手段が用いて、前記記録媒体中のファイル管理を行うＦＡＴファイルシステムにおいて、
ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の前記管理情報中の所要の１つとそのセクタアドレスとより構成される管理情報コピーセットを時系列に書き込むロールバック領域管理手段と、
ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、前記ロールバック領域管理手段により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込む更新完了確認手段と
を備えることを特徴とするＦＡＴファイルシステム。
【請求項２】
前記記録媒体を含むシステム停止から復旧したときに、前記ロールバック領域の最終書き込み情報が完了情報でない場合に、最後に書き込まれた完了情報以降の管理情報コピーセットを時系列の新しい側から順に前記ファイル制御領域に書き戻すと共に、ロールバック領域における書き戻した情報の次に更新完了を示す完了情報を書き込む復旧処理手段を
具備することを特徴とする請求項１に記載のＦＡＴファイルシステム。
【請求項３】
前記ＦＡＴ管理手段は、ファイルデータの上書きを行う場合に、上書きするデータを未使用のクラスタに書き込むことを特徴とする請求項１または２に記載のＦＡＴファイルシステム。
【請求項４】
前記ＦＡＴ管理手段は、ファイルデータの上書きを行う場合に、クラスタ単位で上書きすることを特徴とする請求項３に記載のＦＡＴファイルシステム。
【請求項５】
前記ＦＡＴ管理手段が、１つのクラスタへ書き込みを行う毎に、ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込むことを特徴とする請求項３または４に記載のＦＡＴファイルシステム。
【請求項６】
ロールバック領域管理手段が、対応する管理情報コピーセットを時系列に書き込むと、前記ＦＡＴ管理手段が、前記ファイル制御領域の管理情報を更新することを特徴とする請求項５に記載のＦＡＴファイルシステム。
【請求項７】
前記ＦＡＴ管理手段が全てのクラスタへの上書き処理を終了し、前記ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込み、前記ＦＡＴ管理手段が前記ファイル制御領域における管理情報の更新を完了した場合に、前記更新完了確認手段が完了情報を書き込むことを特徴とする請求項６に記載のＦＡＴファイルシステム。
【請求項８】
記録媒体中に、ファイルを書き込む所定容量のクラスタを複数備え、前記記録媒体中のファイル管理をコンピュータが行うＦＡＴファイルシステムの前記コンピュータを、
ファイル制御領域に設けられる、１つのファイルが記憶されたクラスタにおける先頭クラスタ番号情報と、前記１つのファイルが記憶されたクラスタに関するクラスタ数分のデータクラスタチェーン情報と、未使用のクラスタの数情報とを含む管理情報を用いてファイル管理を行うＦＡＴ管理手段、
ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の前記管理情報中の所要の１つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込むロールバック領域管理手段、
ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、前記ロールバック領域管理手段により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込む更新完了確認手段
として機能させることを特徴とするＦＡＴファイルシステムのプログラム。
【請求項９】
前記コンピュータを更に、
前記記録媒体を含むシステムがシステム停止から復旧したときに、前記ロールバック領域の最終書き込み情報が完了情報でない場合に、最後に書き込まれた完了情報以降の管理情報コピーセットを時系列の新しい側から順に前記ファイル制御領域に書き戻すと共に、ロールバック領域における書き戻した情報の次に更新完了を示す完了情報を書き込む復旧処理手段
として機能させることを特徴とする請求項８に記載のＦＡＴファイルシステムのプログラム。
【請求項１０】
前記コンピュータを前記ＦＡＴ管理手段として、ファイルデータの上書きを行う場合に、上書きするデータを未使用のクラスタに書き込むように機能させることを特徴とする請求項８または９に記載のＦＡＴファイルシステムのプログラム。
【請求項１１】
前記コンピュータを前記ＦＡＴ管理手段として、ファイルデータの上書きを行う場合に、クラスタ単位で上書きするように機能させることを特徴とする請求項１０に記載のＦＡＴファイルシステムのプログラム。
【請求項１２】
前記コンピュータを前記ＦＡＴ管理手段として、１つのクラスタへ書き込みを行う毎に、ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込むように機能させることを特徴とする請求項１０または１１に記載のＦＡＴファイルシステムのプログラム。
【請求項１３】
前記コンピュータをロールバック領域管理手段機能させて、対応する管理情報コピーセットを時系列に書き込むと、前記コンピュータを前記ＦＡＴ管理手段として、前記ファイル制御領域の管理情報を更新するように機能させることを特徴とする請求項１２に記載のＦＡＴファイルシステムのプログラム。
【請求項１４】
前記コンピュータを前記ＦＡＴ管理手段として機能させて、全てのクラスタへの上書き処理を終了し、前記コンピュータを前記ロールバック領域管理手段として機能させて、対応する管理情報コピーセットを時系列に書き込み、前記コンピュータを前記ＦＡＴ管理手段として機能させて前記ファイル制御領域における管理情報の更新を完了した場合に、前記コンピュータを前記更新完了確認手段として、完了情報を書き込むように機能させることを特徴とする請求項１３に記載のＦＡＴファイルシステムのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記録媒体中に、ファイルを書き込む所定容量のクラスタを複数備える、ＦＡＴファイルシステム及びそのプログラムに関するものである。
【背景技術】
【０００２】
ＦＡＴファイルシステムでは、ファイルの管理する際にメタ情報(以下、管理情報)を用いており、この管理情報を用いて１ファイル毎にユーザデータの記憶を行っている。ＦＡＴファイルシステムに用いられる管理情報には、ファイルアロケーションテーブル（以下、ＦＡＴ）、ディレクトリエントリ（以下、ＤＥ）、未使用のクラスタ数を保持するFSInfoがあり、それぞれは論理的に離れた領域に保持される。
【０００３】
ＮＡＮＤ型フラッシュメモリのような特定のサイズ単位（以下、セクタ）でアクセスするストレージデバイス（記録媒体）では、ファイルの作成、更新、削除などにより管理情報に変更が生じる場合、管理情報が論理的に離れた領域に保持されるため、複数回のデータ書き込みが必要になる。また、セクタには他ファイルの管理情報が含まれている。
【０００４】
上記のようなストレージデバイスにおいて電断が発生すると、管理情報の一部だけが更新された状態となる。管理情報の一部だけが更新された状態では、ＦＡＴファイルシステム全体の整合性がとれていないことがある。ＦＡＴファイルシステム全体の整合性がとれていない場合、更新しようとしたファイルまたは更新を行っていないファイルが、存在しない、ファイルが読めないなどの問題が発生することがある。
【０００５】
また、ファイルの既存データを上書き中に電断が発生し、電断復旧後に上書き中の全てデータを更新前に戻すことができない場合、電断復旧後のファイルデータは一部だけが上書きされた状態となる。
この電断復旧方法では、ファイルの上書きが不可分な操作である必要がある場合に、ファイルデータの一部だけが上書きされた不完全な或いは意味のないファイルが残る問題が発生する可能性がある。
【０００６】
上記に対し、ファイルの更新の途中で電源断などのシステム停止が生じたような場合の対策として、以下のような手法を備えたファイルシステムが知られている。特許文献１には、ファイルとその格納位置を示す位置情報を記録してある第１記録媒体と、第１記録媒体とは異なる第２記録媒体とを備えるファイル更新装置であって、第１記録媒体中のファイルを複数の更新手順を経て更新し、どの更新手順まで実施済みであるかを示す進行情報を第２記録媒体中に記録し、更新前のファイルとは別に、更新後のファイルを第１記録媒体中に記録し、更新後のファイルについての第１記録媒体中の格納位置を示す更新情報を第２記録媒体中に記録し、更新後のファイルについて更新情報が記録された後に、当該更新情報に基づいて、当該ファイルの第１記録媒体中の格納位置を示すように、当該ファイルの更新前の格納位置を示している第１記録媒体中の位置情報を更新することが開示されている。
【０００７】
特許文献２には、不揮発メモリ上のＦＡＴ、ノード情報テーブルを主記憶装置上にコピーし、ＦＡＴ及びノード情報テーブルの更新を主記憶装置１２０上で行うＦＡＴファイルシステムが開示されている。このシステムでは、ファイル領域に格納されているファイルの更新時、ファイルの更新箇所に対応するクラスタの内容をそのままにして空きクラスタに更新後の内容を書き込み、ファイルクローズ時、主記憶装置上にコピーし更新したＦＡＴ及びノード情報テーブルの内容を、それぞれ不揮発メモリ上のＦＡＴエリア及びＲＤＥ（ルートディレクトリエントリ）に書き戻すように構成している。
【０００８】
特許文献３には、情報記憶媒体上において所定の最小記憶単位よりも大きい所定容量の領域を管理単位領域とし、この管理単位領域内に主情報たるデータを記憶するためのデータ領域と該データに係る管理情報を記憶するための管理情報領域とを設けてデータ記憶管理するシステムが開示されている。このシステムでは、上記管理情報領域に、データの記憶状況を表す情報を保持するための状態保持部と上記情報記憶媒体上に設定された上記各管理単位領域の系列中において自己が該当する順位に先行する管理単位領域の順位を表す情報を保持するための先行順位保持部とを設定し、上記データ領域に対するデータの書き込み動作が中断されてから復旧させるときには、上記管理情報領域の状態保持部に保持された情報と先行順位保持部に保持された情報とを利用して、書き込みが中断されたデータを復旧させる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−１５７９９７号公報
【特許文献２】特開２００４−１０２６６０号公報
【特許文献３】特開２００３−３３１５８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記の特許文献１、２の手法では、ファイルの更新完了後にファイル管理情報の最終的な更新が行わなければならない。また、特許文献３の手法では、書き込みが中断されたデータの復旧が煩わしいという問題がある。
【００１１】
本発明は上記のような問題に鑑みてなされたもので、その目的は、ファイルの更新時に電源断などのシステム停止が起きても元の状態にファイルシステムを戻し、適切なファイルの状態を実現することが可能なＦＡＴファイルシステム及びそのプログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明に係るＦＡＴファイルシステムは、記録媒体中に、ファイルを書き込む所定容量のクラスタを複数備え、ファイル制御領域に設けられる、１つのファイルが記憶されたクラスタにおける先頭クラスタ番号情報と、前記１つのファイルが記憶されたクラスタに関するクラスタ数分のデータクラスタチェーン情報と、未使用のクラスタの数情報とを含む管理情報をＦＡＴ管理手段が用いて、前記記録媒体中のファイル管理を行うＦＡＴファイルシステムにおいて、ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の前記管理情報中の所要の１つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込むロールバック領域管理手段と、ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、前記ロールバック領域管理手段により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込む更新完了確認手段とを備えることを特徴とする。
【００１３】
本発明に係るＦＡＴファイルシステムでは、前記記録媒体を含むシステムがシステム停止から復旧したときに、前記ロールバック領域の最終書き込み情報が完了情報でない場合に、最後に書き込まれた完了情報以降の管理情報コピーセットを時系列の新しい側から順に前記ファイル制御領域に書き戻すと共に、ロールバック領域における書き戻した情報の次に更新完了を示す完了情報を書き込む復旧処理手段を具備することを特徴とする。
【００１４】
本発明に係るＦＡＴファイルシステムでは、前記ＦＡＴ管理手段は、ファイルデータの上書きを行う場合に、上書きするデータを未使用のクラスタに書き込むことを特徴とする。
【００１５】
本発明に係るＦＡＴファイルシステムでは、前記ＦＡＴ管理手段は、ファイルデータの上書きを行う場合に、クラスタ単位で上書きすることを特徴とする。
【００１６】
本発明に係るＦＡＴファイルシステムでは、前記ＦＡＴ管理手段が、１つのクラスタへ書き込みを行う毎に、ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込むことを特徴とする。
【００１７】
本発明に係るＦＡＴファイルシステムでは、ロールバック領域管理手段が、対応する管理情報コピーセットを時系列に書き込むと、前記ＦＡＴ管理手段が、前記ファイル制御領域の管理情報を更新することを特徴とする。
【００１８】
本発明に係るＦＡＴファイルシステムでは、前記ＦＡＴ管理手段が全てのクラスタへの上書き処理を終了し、前記ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込み、前記ＦＡＴ管理手段が前記ファイル制御領域における管理情報の更新を完了した場合に、前記更新完了確認手段が完了情報を書き込むことを特徴とする。
【００１９】
本発明に係るＦＡＴファイルシステムのプログラムは、記録媒体中に、ファイルを書き込む所定容量のクラスタを複数備え、前記記録媒体中のファイル管理をコンピュータが行うＦＡＴファイルシステムの前記コンピュータを、ファイル制御領域に設けられる、１つのファイルが記憶されたクラスタにおける先頭クラスタ番号情報と、前記１つのファイルが記憶されたクラスタに関するクラスタ数分のデータクラスタチェーン情報と、未使用のクラスタの数情報とを含む管理情報を用いてファイル管理を行うＦＡＴ管理手段、ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の前記管理情報中の所要の１つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込むロールバック領域管理手段、ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、前記ロールバック領域管理手段により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込む更新完了確認手段として機能させることを特徴とする。
【００２０】
本発明に係るＦＡＴファイルシステムのプログラムでは、前記コンピュータを更に、前記記録媒体を含むシステムがシステム停止から復旧したときに、前記ロールバック領域の最終書き込み情報が完了情報でない場合に、最後に書き込まれた完了情報以降の管理情報コピーセットを時系列の新しい側から順に前記ファイル制御領域に書き戻すと共に、ロールバック領域における書き戻した情報の次に更新完了を示す完了情報を書き込む復旧処理手段として機能させることを特徴とする。
【００２１】
本発明に係るＦＡＴファイルシステムのプログラムでは、前記コンピュータを前記ＦＡＴ管理手段として、ファイルデータの上書きを行う場合に、上書きするデータを未使用のクラスタに書き込むように機能させることを特徴とする。
【００２２】
本発明に係るＦＡＴファイルシステムのプログラムでは、前記コンピュータを前記ＦＡＴ管理手段として、ファイルデータの上書きを行う場合に、クラスタ単位で上書きするように機能させることを特徴とする。
【００２３】
本発明に係るＦＡＴファイルシステムのプログラムでは、前記コンピュータを前記ＦＡＴ管理手段として、１つのクラスタへ書き込みを行う毎に、ロールバック領域管理手段が対応する管理情報コピーセットを時系列に書き込むように機能させることを特徴とする。
【００２４】
本発明に係るＦＡＴファイルシステムのプログラムでは、前記コンピュータをロールバック領域管理手段機能させて、対応する管理情報コピーセットを時系列に書き込むと、前記コンピュータを前記ＦＡＴ管理手段として、前記ファイル制御領域の管理情報を更新するように機能させることを特徴とする。
【００２５】
本発明に係るＦＡＴファイルシステムのプログラムでは、前記コンピュータを前記ＦＡＴ管理手段として機能させて、全てのクラスタへの上書き処理を終了し、前記コンピュータを前記ロールバック領域管理手段として機能させて、対応する管理情報コピーセットを時系列に書き込み、前記コンピュータを前記ＦＡＴ管理手段として機能させて前記ファイル制御領域における管理情報の更新を完了した場合に、前記コンピュータを前記更新完了確認手段として、完了情報を書き込むように機能させることを特徴とする。
【発明の効果】
【００２６】
本発明によれば、ロールバック領域に、ファイルの更新の際に、更新に係るファイルのその時点の上記管理情報のいずれか１つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込み、ファイルの更新結果と前記ファイル制御領域の管理情報の整合性がとれた場合に、書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込むので、ファイルの更新時に電源断などのシステム停止が起きても、最後に書き込まれた完了情報の次の管理情報コピーセットを用いて元の状態にファイルシステムを戻すことが可能である。
【図面の簡単な説明】
【００２７】
【図１】本発明に係るＦＡＴファイルシステムの実施形態を示すブロック図。
【図２】本発明に係るＦＡＴファイルシステムの実施形態によるファイル更新処理手順を示す図。
【図３】本発明に係るＦＡＴファイルシステムの実施形態によるファイル更新処理手順を示す図。
【図４】本発明に係るＦＡＴファイルシステムの実施形態によるファイル更新処理手順を示す図。
【図５】本発明に係るＦＡＴファイルシステムの実施形態によるシステム停止後の復旧処理手順を示す図。
【図６】本発明に係るＦＡＴファイルシステムの実施形態によるシステム停止後の復旧処理手順を示す図。
【図７】本発明に係るＦＡＴファイルシステムの実施形態によるファイルの上書き処理手順を示す図。
【図８】本発明に係るＦＡＴファイルシステムの実施形態によるファイルの上書き処理手順を示す図。
【図９】本発明に係るＦＡＴファイルシステムの実施形態によるファイルの上書き処理手順を示す図。
【図１０】本発明に係るＦＡＴファイルシステムの実施形態によるファイルの上書き処理手順を示す図。
【図１１】本発明に係るＦＡＴファイルシステムの実施形態によるファイルの上書き処理手順を示すフローチャート。
【図１２】図１１のフローチャートにおけるサブルーチンの処理手順を示すフローチャート。
【発明を実施するための形態】
【００２８】
以下添付図面を参照して、本発明に係るＦＡＴファイルシステム及びそのプログラムの実施形態を説明する。各図において、同一の構成要素には同一の符号を付して重複する説明を省略する。図１に、本実施形態に係るＦＡＴファイルシステムの構成図を示す。
【００２９】
図１に示されるように、本実施形態に係るＦＡＴファイルシステムは、例えばＮＡＮＤ型フラッシュメモリなどにより構成される記録媒体部２０と、ＣＰＵや主メモリなどにより構成され、記録媒体部２０を制御する記録媒体制御部１０とを備える。このファイルシステムは、パーソナルコンピュータやサーバなどに搭載されることができる。
【００３０】
記録媒体部２０には、ファイル制御領域２００とロールバック領域３００が設けられている。ファイル制御領域２００には、データ領域（Ｄａｔａ）＿２１０が設けられており、このデータ領域２１０には、所定容量のデータクラスタ（ｄａｔａ）を複数（２２１〜２２ｎ（整数））備えている。更に、データ領域２１０には、ＤＥ（ｒｏｏｔ）＿２１１、ＤＥ（ｓｕｂ）＿２１２、ＤＥ（ｓｕｂ）＿２１３が設けられている。ＤＥ（ｒｏｏｔ）＿２１１は、ルートディレクトリの情報、ルートに存在するファイルのファイル名などが記憶された領域であり、ＤＥ（ｓｕｂ）＿２１２とＤＥ（ｓｕｂ）＿２１３は、ルートディレクトリ以外のディレクトリの情報、サブディレクトリに存在するファイルのファイル名などが記憶された領域であり、これらファイル毎のＤＥ（ｒｏｏｔ）には、ファイルの先頭クラスタのクラスタ番号が記憶される。
【００３１】
記録媒体部２０のファイル制御領域２００には、ＭＢＲ（マスターブートレコード）＿２３１、ＰＢＲ（パーティションブートレコード）＿２３２、ＦＳＩｎｆｏ＿２３３、ＦＡＴ［１］（ＦＡＴテーブル１）＿２３４、ＦＡＴ［２］（ＦＡＴテーブル２）＿２３５が設けられている。
【００３２】
ＭＢＲ２３１は、パーティション情報などが記憶された領域であり、ＰＢＲ＿２３２は、ＦＡＴやＤＥに関する情報が記憶された領域である。ＦＳＩｎｆｏ＿２３３は、未使用のクラスタの数情報が記憶される領域である。ＦＡＴ［１］＿２３４は、ファイルの場所を示す情報が記憶される領域であり、ファイル毎のＦＡＴには、ファイルのクラスタ数分のデータクラスタチェーン情報が記憶される。ＦＡＴ［２］＿２３５は、ＦＡＴ［１］＿２３４と同様の機能を有する領域であり、ＦＡＴ［１］＿２３４のバックアップ（ミラー）領域とすることも可能な領域である。ここでは、ＦＡＴ［２］＿２３５まで示しているが、記録媒体部２０の容量に応じて適宜な数Ｎが設けられる。つまり、ＦＡＴ［１］〜ＦＡＴ［Ｎ］が設けられる。
【００３３】
上記ＦＳＩｎｆｏ＿２３３、ＦＡＴ［１］＿２３４、ＦＡＴ［２］＿２３５、ＤＥ（ｒｏｏｔ）＿２１１、ＤＥ（ｓｕｂ）＿２１２とＤＥ（ｓｕｂ）＿２１３の領域に記憶されている情報は、管理情報である。１つのファイルの管理情報は、ファイル名により統括されており、ファイル名により特定可能である。記録媒体部２０には、ロールバック領域３００が設けられている。このロールバック領域３００には、ファイルの更新の際に、上記管理情報のいずれか１つとそのセクタアドレスとにより構成される管理情報コピーセットが時系列に書き込まれる。
【００３４】
記録媒体制御部１０には、ＦＡＴ管理手段１１、ロールバック領域管理手段１２、更新完了確認手段１３、復旧処理手段１４が設けられる。ＦＡＴ管理手段１１は、ファイル制御領域２００に設けられる、１つのファイルが記憶された１または複数のクラスタにおける先頭クラスタ番号情報（ファイル毎のＤＥ（ｒｏｏｔ）内）と、上記１つのファイルが記憶された複数のクラスタに関するクラスタ数分のデータクラスタチェーン情報（ファイルのＦＡＴ内）と、未使用のクラスタの数情報（ＦＳＩｎｆｏ内）とを含む管理情報を用いて、上記記録媒体部２０中のファイル管理を行う。
【００３５】
ロールバック領域管理手段１２は、ロールバック領域３００に、ファイルの更新の際に、更新に係るファイルのその時点の上記管理情報のいずれか１つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込むものである。更新完了確認手段１３は、ファイルの更新結果と上記ファイル制御領域２００の管理情報の整合性がとれた場合に、上記ロールバック領域管理手段１２により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報（デリミタ）を書き込むものである。復旧処理手段１４は、上記記録媒体を含むシステムが電源断などのシステム停止から復旧したときに、上記ロールバック領域３００の最終書き込み情報が完了情報（デリミタ）でない場合に、最後に書き込まれた完了情報（デリミタ）以降の管理情報コピーセットを時系列の新しい側から順に上記ファイル制御領域２００に書き戻すと共に、ロールバック領域３００における書き戻した情報の次に更新完了を示す完了情報（デリミタ）を書き込むものである。
【００３６】
以上のように構成されたＦＡＴファイルシステムにおけるファイル更新動作を説明する。図２に、ＦＡＴファイルシステムにおけるファイル更新動作に関係する領域として、ファイル制御領域２００の管理情報とデータクラスタ（ｄａｔａ）２２１〜２２ｎの一部の領域と、ロールバック領域３００が示されている。管理情報の領域として、ＦＳＩｎｆｏ＿２３３、ＦＡＴ＿２３０、ＤＥ（ｒｏｏｔ）＿２１１、ＤＥ（ｓｕｂ）＿２１２とＤＥ（ｓｕｂ）＿２１３が示されている。ＦＡＴ＿２３０は、ＦＡＴ［１］〜ＦＡＴ［Ｎ］を含むものとして示している。
【００３７】
記録媒体部２０に記録してあるファイルの更新を行う場合に、ロールバック領域３００に、更新に係るファイルのその時点の前記管理情報のいずれか１つとそのセクタアドレスとにより構成される管理情報コピーセットを時系列に書き込む（ロールバック領域管理手段１２）。図２の例では、ファイル名ＦＬのファイル更新によってＦＡＴ＿２３０（ＦＡＴ［１］〜ＦＡＴ［Ｎ］中の所定の１テーブル）のデータクラスタチェーン情報を更新する必要があるため、ファイル制御領域２００のその時点の管理情報であるＦＡＴ＿２３０の情報とそのセクタアドレス（この１テーブルが記憶されているセクタアドレス）をロールバック領域３００のアドレス＃１に書き込む（図２（ａ）Ｓ１１）。
【００３８】
次に図２（ｂ）に示すように、ファイル名ＦＬのファイルデータ更新を、データクラスタ（ｄａｔａ）２２１〜２２ｎ中の例えばデータクラスタ（ｄａｔａ）２２２において行う（Ｓ１２）と共に、ファイル制御領域２００のＦＡＴ＿２３０の管理情報を更新する（Ｓ１３）。この図２の例は、ファイルの更新結果とファイル制御領域２００の管理情報の整合性が未だとれていない場合を示す。このため、上記ロールバック領域管理手段１２により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報を書き込むことは行われていない。
【００３９】
図３のファイル更新動作例は、図２に示したファイル更新動作に続いて行われたものを示す。図２に示した動作に続いて、ファイル名ＦＬのファイル更新によってＦＡＴ＿２３０（ＦＡＴ［１］〜ＦＡＴ［Ｎ］中の所定の１テーブル（図２の場合と同じテーブル））のデータクラスタチェーン情報を更新する必要があるため、ファイル制御領域２００のその時点の管理情報であるＦＡＴ＿２３０の情報とそのセクタアドレスをロールバック領域３００のアドレス＃２に書き込む（図３（ａ）Ｓ２１）。
【００４０】
次に図３（ａ）に示すように、ファイル名ＦＬのファイルデータ更新を、データクラスタ（ｄａｔａ）２２１〜２２ｎ中の例えばデータクラスタ（ｄａｔａ）２２３において行う（Ｓ２２）と共に、ファイル制御領域２００のＦＡＴ＿２３０の情報を更新する（Ｓ２３）。更に、Ｓ２２の処理でファイル名ＦＬの先頭クラスタを変更する必要が生じたため、図３（ｂ）に示すように、ＤＥ（ｓｕｂ）＿２１２の情報とそのセクタアドレスをロールバック領域３００のアドレス＃３に書き込む（図３（ｂ）Ｓ２４）。更に、ファイル制御領域２００のＤＥ（ｓｕｂ）＿２１２の情報（先頭クラスタ番号情報）を更新する（Ｓ２５）。
【００４１】
また、Ｓ２２の処理で未使用クラスタ数の変更を行う必要が生じたために、図４（ａ）に示すように、ＦＳＩｎｆｏ＿２３３の情報とそのセクタアドレスをロールバック領域３００のアドレス＃４に書き込む（図４（ａ）Ｓ２６）。また、ファイル制御領域２００のＦＳＩｎｆｏ＿２３３の情報を更新する（図４（ｂ）Ｓ２７）。なお、この図４から図６において、ロールバック領域３００の横幅が図１から図３までのものよりも幅広に描いているが、これは文字列の多い構成要素を図示したためであり、ロールバック領域３００の容量が変化したことを示すものではない。
【００４２】
以上により、ファイル名ＦＬのファイル更新が、データクラスタ（ｄａｔａ）２２１〜２２ｎ中の例えばデータクラスタ（ｄａｔａ）２２２及びデータクラスタ（ｄａｔａ）２２３において行われ、対応するファイル制御領域２００の管理情報の更新がＦＡＴ＿２３０、ＤＥ（ｓｕｂ）＿２１２及びＦＳＩｎｆｏ＿２３３にて行われ、ファイル名ＦＬのファイルの更新結果とファイル制御領域２００の管理情報の整合性がとれた状態となっている。このため、上記ロールバック領域管理手段１２により書き込まれた管理情報コピーセットの次に、更新完了を示す完了情報（デリミタ）が書き込まれる（図４（ｂ）Ｓ２８）。
【００４３】
さて、上記記録媒体部２０が電源断などのシステム停止から復旧したときに、ロールバック領域３００の最終書き込み情報が完了情報（デリミタ）であれば、図４を用いて説明したようにファイルの更新結果とファイル制御領域２００の管理情報の整合性がとれている状態にあるので、復旧処理を行う必要はない。これに対し、上記記録媒体部２０が電源断などのシステム停止から復旧したときに、ロールバック領域３００の最終書き込み情報が完了情報（デリミタ）でない場合には、復旧処理手段１４により復旧処理が行われる。以下に、この復旧処理の説明を行う。
【００４４】
図５（ａ）に示すように、記録媒体部２０が電源断などのシステム停止から復旧したときに、ロールバック領域３００の最終書き込み情報が完了情報（デリミタ）ではなく、アドレス＃１に記憶された最終の完了情報（デリミタ）以降に、ＦＡＴ＿２３０の情報とそのセクタアドレスが記憶され（ロールバック領域３００のアドレス＃２）、ＤＥ（ｓｕｂ）＿２１２の情報とそのセクタアドレスが記憶され（ロールバック領域３００のアドレス＃３）、ＦＳＩｎｆｏ＿２３３の情報とそのセクタアドレスが記憶され（ロールバック領域３００のアドレス＃４）ていたものとする。
【００４５】
上記の場合に、最後に書き込まれた完了情報以降の管理情報コピーセットを時系列の新しい側から順に上記ファイル制御領域２００に書き戻す。まず、ロールバック領域３００のアドレス＃４に記憶されているＦＳＩｎｆｏ＿２３３の情報を、同アドレスに記憶されているセクタアドレスのファイル制御領域２００に書き戻す（図５（ａ）Ｓ３１）。次に、ロールバック領域３００のアドレス＃３に記憶されているＤＥ（ｓｕｂ）＿２１２の情報を、同アドレスに記憶されているセクタアドレスのファイル制御領域２００に書き戻す（図５（ｂ）Ｓ３２）。
【００４６】
更に、ロールバック領域３００のアドレス＃２に記憶されているＦＡＴ＿２３０の情報を、同アドレスに記憶されているセクタアドレスのファイル制御領域２００に書き戻す（図６（ａ）Ｓ３３）。必要な情報の書き戻しが終了すると、ロールバック領域３００における書き戻した情報の次に更新完了を示す完了情報（デリミタ）を書き込む（図６（ｂ）Ｓ３４）。なお、本実施形態では、ロールバック領域３００の先頭アドレス＃１に完了情報（デリミタ）を書き込んである場合を示したが、この書込みを行わず、先頭アドレス＃１まで戻ると書き戻しを終了するようにしても良い。
【００４７】
次に、本実施形態に係るＦＡＴファイルシステムにおいてファイルデータの上書きを行う場合処理を説明する。この処理では、各手段が次の通り処理を行う。ＦＡＴ管理手段１１は、ファイルデータの上書きを行う場合に、上書きするデータを未使用のクラスタに書き込む。本実施形態では、上書き前の旧クラスタ番号を保持した状態で、上書きするデータを未使用のクラスタに書き込む。ＦＡＴ管理手段１１は、ファイルデータの上書きを行う場合に、クラスタ単位で上書きする。ＦＡＴ管理手段１１が、１つのクラスタへ書き込みを行う毎に、ロールバック領域管理手段１２が対応する管理情報コピーセットを時系列に書き込む。ロールバック領域管理手段１２が、対応する管理情報コピーセットを時系列に書き込むと、上記ＦＡＴ管理手段１１が、上記ファイル制御領域２００の管理情報を更新する。ＦＡＴ管理手段１１が全てのクラスタへの上書き処理を終了し、上記ロールバック領域管理手段１２が対応する管理情報コピーセットを時系列に書き込み、上記ＦＡＴ管理手段１１が上記ファイル制御領域２００における管理情報の更新を完了した場合に、上記更新完了確認手段１３が完了情報を書き込む。
【００４８】
本実施形態では、上書き前の旧クラスタ番号を保持した状態で、上書きするデータを未使用のクラスタに書き込む。ここでは、ファイル名ＦＲのサイズが１０クラスタのファイルにおいて、先頭から２クラスタ分のデータを上書き更新する場合を例とする。図７は当該ファイル名ＦＲのファイルに関する上書き前の、ファイル制御領域２００の情報と、ロールバック領域３００の情報と、ＦＡＴテーブルの情報と、上書き前の旧クラスタ番号を保持するレジスタＲの情報を示している。システムの運用中であればロールバック領域３００には、既に他のファイルに関する情報などが記憶されているはずであるが、説明の都合上、省略してある。
【００４９】
図７において、ファイル制御領域２００の、ＦＳＩｎｆｏの領域には未使用クラスタ数が記憶され、ＦＡＴの領域には右側のＦＡＴテーブルに示すようなデータクラスタチェーン情報が記憶され、ＤＥの領域には先頭クラスタ番号情報が記憶されている。このファイルは、ＦＡＴテーブルの情報から判るように、クラスタ番号１のデータの次にクラスタ番号２のデータが続き、クラスタ番号２のデータの次にクラスタ番号３のデータが続き、・・・、クラスタ番号９のデータの次にクラスタ番号１０のデータが続き、クラスタ番号１０が終端となっている。この関係がファイル制御領域２００において、ＤＥの領域の先頭クラスタ番号情報が「１」であり、以下、矢印で、クラスタ１（ｄａｔａ）、クラスタ２（ｄａｔａ）、・・・、クラスタ１０（ｄａｔａ）と続いていることを示している。
【００５０】
まず、当該ファイルのクラスタ１（ｄａｔａ）のデータに対し上書きする処理による各領域の変化が図８に示され、処理手順が図８のＳＳ１に示されている。本実施形態では、上書きするデータを未使用のクラスタ番号１１のクラスタに書き込み、未使用クラスタ数が記憶されたＦＳＩｎｆｏ（の情報）をロールバック領域３００のアドレス＃１へ書き込む。また、ファイル制御領域２００の、ＦＳＩｎｆｏの領域に記憶されている未使用クラスタ数を「１」減少させる。
【００５１】
次に、当該ファイルの第１番目のクラスタをクラスタ番号１１のクラスタとするのに先立って、データクラスタチェーン情報が記憶されたＦＡＴ（の情報）をロールバック領域３００のアドレス＃２へ書き込むと共に、ファイル制御領域２００の、ＦＡＴテーブルのクラスタ番号１１のＦＡＴ値（次クラスタ番号）に「２」を書き込む。更に、当該ファイルの先頭クラスタをクラスタ番号１１のクラスタとするため、先頭クラスタ番号情報が記憶されたＤＥ（の情報）をロールバック領域３００のアドレス＃３へ書き込み、ファイル制御領域２００のＤＥ（の情報）を「１１」へ変更する。その後、上書き前の旧クラスタ番号を保持するレジスタＲに「１」を書き込む。
【００５２】
次に、当該ファイルのクラスタ２（ｄａｔａ）のデータに対し上書きする処理による各領域の変化が図９に示され、処理手順が図９のＳＳ２に示されている。本実施形態では、上書きするデータを未使用のクラスタ番号１２のクラスタに書き込み、未使用クラスタ数が記憶されたＦＳＩｎｆｏ（の情報）をロールバック領域３００のアドレス＃４へ書き込む。また、ファイル制御領域２００の、ＦＳＩｎｆｏの領域に記憶されている未使用クラスタ数を「１」減少させる。
【００５３】
次に、当該ファイルの第２番目のクラスタをクラスタ番号１２のクラスタとするのに先立って、データクラスタチェーン情報が記憶されたＦＡＴ（の情報）をロールバック領域３００のアドレス＃５へ書き込むと共に、ファイル制御領域２００の、ＦＡＴテーブルのクラスタ番号１１のＦＡＴ値（次クラスタ番号）を「１２」に更新し、ＦＡＴテーブルのクラスタ番号１２のＦＡＴ値（次クラスタ番号）に「３」を書き込む。その後、上書き前の旧クラスタ番号を保持するレジスタＲに「２」を追加する。この結果、上書き前の旧クラスタ番号を保持するレジスタＲには、「１」、「２」が保持される。
【００５４】
以上のようにして、先頭から２クラスタ分のデータを上書きした後に、上書き前のデータが格納されているクラスタの無効化と、ファイルの更新結果とファイル制御領域２００の管理情報の整合性をとる処理を図１０に示すように行う。ここでは、処理手順が図１０のＳＳ３に示されている。まず、上書き前のデータが格納されているクラスタの無効化のために、データクラスタチェーン情報が記憶されたＦＡＴ（の情報）をロールバック領域３００のアドレス＃６へ書き込むと共に、ファイル制御領域２００の、ＦＡＴテーブルのクラスタ番号１及びクラスタ番号２のＦＡＴ値（次クラスタ番号）を「００」に更新する。
【００５５】
また、未使用クラスタ数が記憶されたＦＳＩｎｆｏ（の情報）をロールバック領域３００のアドレス＃７へ書き込み、ファイル制御領域２００の、ＦＳＩｎｆｏの領域に記憶されている未使用クラスタ数を「２」増加させる。更に、上書き前の旧クラスタ番号を保持するレジスタＲに保持されているクラスタ番号「１」及び「２」をクリアする。以上により、ファイルの更新結果とファイル制御領域２００の管理情報の整合性がとれたため、上記更新完了確認手段１３が完了情報（デリミタ）をロールバック領域３００の最終空白アドレスであるアドレス＃８に書き込む。
【００５６】
上記のようにしてファイルデータの上書きを行っているときに、完了情報（デリミタ）をロールバック領域３００に書き込む前に電源断などのシステム停止となった場合には、図５と図６により説明した場合と同様にしてロールバック領域３００の情報をファイル制御領域２００へ書き戻してファイルデータの上書き前に戻って処理を行うことができる。
【００５７】
本実施形態におけるファイルデータの上書き処理動作を図１１及び図１２のフローチャートにより説明する。処理の開始から、ループＳ９１とループ９４により挟まれている処理Ｓ９２と処理Ｓ９３を更新データサイズ（クラスタ数ｎ（整数））分となるまで繰り返す。まず、１つ目のクラスタに対するデータの書き込みのため、新しいクラスタを割り当てる（Ｓ９２）。次に、「管理情報更新」のサブルーチン処理Ｓ９３が行われる。
【００５８】
サブルーチン処理Ｓ９３は、図１２に示されている。つまり、「管理情報更新」のサブルーチンでは、ファイル制御領域２００の該当管理情報をロールバック領域３００へ書き込み（Ｓ９３１）、ファイル制御領域２００の管理情報を更新する（Ｓ９３２）。
【００５９】
処理Ｓ９２と処理Ｓ９３が更新データサイズ（クラスタ数ｎ（整数））分となるまで繰り返された後には、ファイルの更新結果とファイル制御領域２００の管理情報の整合性がとれるので、更新完了確認手段１３が完了情報（デリミタ）をロールバック領域３００の最終空白アドレスへ書き込んで（Ｓ９５）、処理終了となる。
【００６０】
以上のようにしてファイルデータの上書きの際には、ファイル制御領域２００の該当管理情報をロールバック領域３００へ書き込むので、電源が断となった場合には、ロールバック領域３００の管理情報をファイル制御領域２００へ書き戻しすることで、ファイル制御領域２００のファイル記録状態と管理情報の整合性をとることができ、安定的なシステム運用を図ることができる。
【符号の説明】
【００６１】
１０  記録媒体制御部
１１  ＦＡＴ管理手段
１２  ロールバック領域管理手段
１３  更新完了確認手段
１４  復旧処理手段
２０  記録媒体部
２００  ファイル制御領域
２１０  データ領域
３００  ロールバック領域
【図１】
2018037030.tif 000003
【図２】
2018037030.tif 000004
【図３】
2018037030.tif 000005
【図４】
2018037030.tif 000006
【図５】
2018037030.tif 000007
【図６】
2018037030.tif 000008
【図７】
2018037030.tif 000009
【図８】
2018037030.tif 000010
【図９】
2018037030.tif 000011
【図１０】
2018037030.tif 000012
【図１１】
2018037030.tif 000013
【図１２】
2018037030.tif 000014