[go: up one dir, main page]

JP2004078461A - Log recording method, file management program, and information device - Google Patents

Log recording method, file management program, and information device Download PDF

Info

Publication number
JP2004078461A
JP2004078461A JP2002236409A JP2002236409A JP2004078461A JP 2004078461 A JP2004078461 A JP 2004078461A JP 2002236409 A JP2002236409 A JP 2002236409A JP 2002236409 A JP2002236409 A JP 2002236409A JP 2004078461 A JP2004078461 A JP 2004078461A
Authority
JP
Japan
Prior art keywords
file
log
operation request
transaction
program
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.)
Pending
Application number
JP2002236409A
Other languages
Japanese (ja)
Inventor
Kazunobu Kashiwabuchi
柏渕 和信
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.)
Axess Corp
Original Assignee
Axess 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 Axess Corp filed Critical Axess Corp
Priority to JP2002236409A priority Critical patent/JP2004078461A/en
Priority to PCT/JP2003/010329 priority patent/WO2004017205A1/en
Priority to AU2003257842A priority patent/AU2003257842A1/en
Publication of JP2004078461A publication Critical patent/JP2004078461A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】ファイルシステムが持つ通常のファイル操作の性能、信頼性に影響を及ぼさない様に構成され、かつ必要十分な障害回復性能を有する障害回復機能付きファイルシステムを実現する。
【解決手段】ジャーナルファイルを、ログの記録を行う対象とするファイルシステムの管理下のファイルとして作成しておく。そして、アプリケーションプログラムからファイル操作要求があった際に、ファイル操作要求の処理が開始されること、および対象のファイルについてのファイル操作要求の処理に伴うメタデータの更新情報をジャーナルファイルに記録しておく。システム起動時にジャーナルファイルを調べ、未完了のファイル操作の処理が見つかった場合には、ジャーナルファイルに記録された情報に基づいて、当該ファイル操作の回復処理を行う。
【選択図】  図1
An object of the present invention is to provide a file system with a failure recovery function that is configured so as not to affect the performance and reliability of a normal file operation of the file system and has a necessary and sufficient failure recovery performance.
A journal file is created as a file under the management of a file system for which a log is to be recorded. Then, when a file operation request is received from the application program, the processing of the file operation request is started, and the update information of the metadata accompanying the processing of the file operation request for the target file is recorded in the journal file. deep. When the system starts up, the journal file is checked, and if an incomplete file operation process is found, the file operation recovery process is performed based on the information recorded in the journal file.
[Selection diagram] Fig. 1

Description

【0001】
【発明の属する技術分野】
本発明は、ファイル装置に対する中断されたファイル操作の処理を回復させる為の障害回復機能に関する。
【0002】
【従来の技術】
コンピュータ上で、ファイル装置に記録されるファイルを管理する為の方式や、そのような管理を行なうソフトウェアは、ファイルシステムと呼ばれる。ファイルシステムは、アプリケーションプログラムからのファイル操作要求を受けつけ、ファイル装置へのデータの保存等を効率的に行なう機能を担う。一般的に、ファイルの作成方法、ファイル装置上でのファイル管理の方法、管理領域とデータ領域の格納場所等を含むファイル管理に関する様々な事項がファイルシステムの種類によって、それぞれ定められている。
【0003】
例えば、FATファイルシステムと呼ばれるファイルシステムは、ファイル装置を、ファイルの管理情報を格納する領域(以下、本明細書において管理領域と記す)と、ファイルの内容を格納するデータ領域とに分けて管理する。管理領域は、FAT(File Allocation Table;ファイル割当て表)とディレクトリエントリと言われる情報を含み、FATによってファイルを構成するデータの格納位置を管理し、また、ディレクトリエントリによってファイル名、ディレクトリ名、属性等を管理する。
【0004】
一方、システムのクラッシュ時等にファイル操作処理が中断してしまいファイル装置の内容に不具合が発生したときすぐに復旧できるように、ファイリシステムに障害回復機能を持つことが要求される。ファイル装置の障害は例えば次のような場面で生じる。一般的に、ファイルシステムは、キャッシュ領域を持つことによって、アプリケーションプログラムに対して高速なファイル操作処理を提供している。したがって、突然システムがダウンすると、キャッシュ領域に記憶されていたファイル操作の内容がファイル装置上には反映されなかったり、或いは、ファイル装置上の管理領域の情報である、いわゆるメタデータと、データ領域にあるファイル内容のデータとの間に不整合が生じたりする。
【0005】
このような障害に対処できるようにするために、現在、障害回復機能を実現するように構成されたファイルシステムが提案されつつある。
【0006】
【発明が解決しようとする課題】
一般的には、アプリケーションプログラムからのファイル操作に関する内容をログとして記録することによって、障害回復機能を実現することができると考えることができる。しかしながら、障害回復機能は、通常のファイル操作の処理に負荷の増大を生じるものであるから、どのような内容をログとして記録するか、ログをどのような形式で、どこに記録するか等、ログ記録に関する様々な事項が、障害回復の性能、および、通常のファイル操作の性能(つまり、ログ記録に伴い処理負荷が増大し、通常のファイル操作に対する処理の性能がどの程度低下するか)に影響を与えることに注目しなければならない。したがって、通常のファイル操作の性能に可能な限り影響を与えることがなく、かつ必要十分な障害回復機能を実現したファイルシステムが望まれることになる。
【0007】
また、障害回復機能を有するファイルシステムを構築しようとする場合、多くのケースでは、既に完成しているファイルシステムに障害回復機能を付加する形で行なうことになる。したがって、障害回復機能は、既存のファイルシステムの性能、信頼性に影響を与えない様に、できるだけシンプルな形式で既存のファイルシステムに付加できる構成であることが要求される。
【0008】
本発明は以上のような事情に鑑みてなされたものである。すなわち、本発明は、ファイルシステムが持つ通常のファイル操作の性能、信頼性に影響を及ぼさない様に構成され、かつ必要十分な障害回復性能を有する障害回復機能付きファイルシステムを実現する為の方法、プログラム、およびこのような障害回復機能を備えた情報機器を提供することを目的とする。
【0009】
【課題を解決するための手段】
上記目的を達成する為に、まず、ファイル操作要求に関するログの記録は、ファイル操作要求の対象となるファイルを管理するファイルシステムの管理下で作成された所定のファイルであるログファイルに対して行うことにする。ログファイルは、ファイルシステムの管理下のファイルとして操作することができるので、ログ記録を簡略化することができる。そして、アプリケーションプログラムからファイル操作要求があった際に、ファイル操作要求の種別と、ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第1の更新情報をログファイルに記録することにする。つまり、ファイル操作要求の処理に伴う管理領域(いわゆる、メタデータ)の更新の内容のみをログ記録の対象とする。このことによってログ記録に伴うファイル操作処理の負荷の増大を抑制する。さらに、ログファイルへの情報の書き込みは、ログファイルについてのファイル装置上での管理領域の更新が生じない所定の条件で行う(請求項1)。通常のファイル書き込みの処理では、管理領域への書き込みと、データ領域への書き込みの少なくとも2回の書き込みが生じるが、上記構成によればログファイルへのログ記録のための書き込みでは、データ領域に対する書き込みのみとされるので、ログ記録の処理速度を高速化できる。
【0010】
ログファイルへの書き込みの際に管理領域の更新が生じないようにする所定の条件は、例えば、該ログファイル内を、1つのファイル操作要求に関するログを記録するためのエントリを複数含んだ構成とし、該複数のエントリを巡回使用することである(請求項2)。
【0011】
また、所定の条件として、さらに、複数のエントリのうち使用中のエントリに関するファイル操作を強制的に完了させることにより、使用中のエントリを解放させて使用するようにしておくのが好ましい(請求項3)。
【0012】
或いは、所定の条件とは、ログファイルを固定サイズとして使用することであっても良い(請求項4)。
【0013】
ログファイル内の複数のエントリのサイズはすべて等しい所定のサイズとなっているのが好ましい(請求項5)。このことにより、エントリの検索を高速に行うことが可能になる。また、ログファイル内でのエントリのフラグメテーションを回避し、エントリを効率よく巡回使用することが可能になる。
【0014】
或いは、複数のエントリは、それぞれ所定の単位サイズの整数倍のサイズであっても良い(請求項6)。
【0015】
また、エントリのファイル装置への書き込みが高速化できるように、エントリの所定のサイズは、ログファイルが格納されるファイル装置に対する1回の不可分のアクセスに対応するサイズであることが好ましい(請求項7)。エントリの所定のサイズは、ファイル装置の1セクタサイズと等しい構成であるのが好ましい(請求項8)。
【0016】
或いは、エントリの所定のサイズは、ファイル装置の1セクタサイズ以下であり、かつ、1つのセクタ内には1つのエントリのみ格納される構成であっても良い(請求項9)。
【0017】
なお、ファイルシステムは、FAT型ファイルシステムであり、管理領域は、FATおよびディレクトリについての情報を含む構成であっても良い(請求項10)。
【0018】
また、上記目的を達成する為に、ファイル操作要求の対象となるファイルを管理するファイルシステムの管理下で作成された所定のファイルであるログファイルに対してログの記録を行うこととする。そして、アプリケーションプログラムからファイル操作要求があった際に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第1の更新情報を、ログファイルに対する書き込み回数が1回で終了するようにログファイルに書き込むようにする(請求項11)。この場合、ログ記録の処理速度を高速化できる。
【0019】
また、上記目的を達成するため、第1のファイルシステムの管理下で作成された所定のファイルであるログファイルに対してログの記録を行うことにする。そして、ログ記録の対象とする(つまり、障害回復機能を付加する対象とする)第2のファイルシステムに対してアプリケーションプログラムからファイル操作要求があった際に、ファイル操作要求の種別と、ファイル操作要求の対象となるファイルについての第2のファイルシステムの管理下のファイル装置上での管理領域の更新に関わる更新情報を、ログファイルに記録することにする。すなわち、第2のファイルシステムにおけるファイル操作要求の処理に伴う管理領域(いわゆる、メタデータ)の更新情報のみをログ記録の対象とする。そして、ログファイルへの情報の書き込みは、ログファイルについての第1のファイルシステム管理下のファイル装置上での管理領域の更新が生じない所定の条件で行う(請求項12)。以上の構成により、ログ記録の対象とするファイルシステムと、ログを記録しておく所定のファイルを管理するファイルシステムとを別々にすることができる。
【0020】
なお、アプリケーションプログラムからファイル操作要求を受け付けた際に、以上で説明したログ記録方法で該ファイル操作要求に関するログをログファイルに書き込むログ記録プログラムと、システム起動の際にログファイルを調べ、完了していないファイル操作要求がある場合に当該ファイル操作要求の回復処理を行う回復プログラムとを備えるファイル管理プログラムを構成することができる(請求項13)。
【0021】
上記目的を達成するため、下記のような機能が付加されたファイル管理プログラムと、ログ記録プログラムと、回復プログラムとから、ファイル装置の障害回復機能を実現する(請求項14)。
すなわち、ファイル管理プログラムには、
(1)コンピュータ上で動作するアプリケーションプログラムからファイル操作要求を受け付けた際に、ログ記録プログラムに対して、該ファイル操作要求の処理が開始されたことを通知すると共に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第1の更新情報を提供する機能と、
(2)該ファイル操作要求の処理が完了した際に、ログ記録プログラムに対して該ファイル操作要求が完了したことを通知する機能とを付加する。
また、ログ記録プログラムは、以下の機能を持つように構成する。
(1)ファイル操作要求の処理が開始されたことの通知を受けた際に、予めファイル管理プログラムの管理下のファイルとして作成しておいたログファイルに、取得したファイル操作要求の種別および第1の更新情報と共に、ファイル操作要求の処理が開始されたことを記録する機能と、
(2)ファイル操作要求の処理が完了したことの通知を受けた際に、ログファイルに所定の完了の記録を行う機能。
また、回復プログラムは、以下の機能を持つように構成する。
(1)システム起動の際にログファイルを調べ、完了していないファイル操作要求がある場合に当該ファイル操作要求をログファイルの内容に基づいて回復処理する機能。
ファイル装置の障害回復機能を実現する為にファイル管理プログラムに対しては上記の機能を付加すれば良いので、ファイル管理プログラムに対して障害回復機能をシンプルな形式で付加することができる。したがって、ファイル管理プログラムへの障害回復機能の付加に伴い、通常のファイル操作要求の処理の信頼性や性能の低下を生じない様にすることができる。
【0022】
この場合、ログ記録プログラムによるログファイルへの情報の書き込みは、ログファイルについてのファイル装置上での管理領域の更新が生じない所定の条件で行われることが好ましい(請求項15)。
【0023】
【発明の実施の形態】
図1は、本発明の実施形態である、障害回復機能付きファイル管理プログラム(以下、障害回復機能付きファイルシステム10と記す)の機能の構成を表すブロック図である。障害回復機能付きファイルシステム10において、ファイルシステム3はファイルシステムとしての機能を実現するプログラムに、ログ記録システム5はログ記録機能を実現するプログラムに、そして、回復処理マネージャ7は回復機能を実現するプログラムに対応する。障害回復機能付きファイルシステム10は、コンピュータ、PDA、携帯電話等の様々な情報機器に実装し、ディスク装置、フラッシュメモリなどの様々なタイプのファイル装置のファイルを管理するよう機能させることができる。ここでは、一例として、ファイル装置としてディスク装置を用いるものとしている。
【0024】
以下では、障害回復機能付きファイルシステム10の詳細について、次の項目順に説明を行う。
1.障害回復機能付きファイルシステム10の全体構成
2.ジャーナルファイルJFの構成
3.ログ記録システム5および回復マネージャ7の動作の詳細
【0025】
1.障害回復機能付きファイルシステムの全体構成
障害回復機能付きファイルシステム10において、ファイルシステム3は、アプリケーションプログラム(以下、アプリケーションと記す)からのファイル操作要求を受け付けてファイル操作処理を実行する、FAT型のファイルシステムとして一般的な機能を持つ。ファイルシステム3は、ファイル装置としてディスク装置HD1を管理する。ファイルシステム3は、一般的なファイルシステムにおける処理と同様に、アプリケーションからのファイル操作要求に対して、(1)アプリケーションからのファイル操作要求を主記憶上のキャッシュ領域に保存し、(2)アプリケーションからファイルクローズ要求があったとき、或いはキャッシュ領域がフルになったときなどに、キャッシュ領域の内容をディスク装置HD1上に反映する、という動作を行う。
【0026】
ファイルシステム3は、FAT(ファイル割当て表)によってファイル格納位置を管理するFAT型のファイルシステムであり、一般的なFAT型のファイルシステムと同様に、ディスク装置HD1を、FAT領域11および12、ディレクトリ領域13、およびファイルの内容のデータが格納されるデータ領域15からなる構成として管理する(図2参照)。ファイルシステムとしての信頼性の向上のため、FATはFAT11および12に二重化される。
【0027】
ファイルシステム3には、ログ記録システム5および回復マネージャ7と連携して動作する為の機能が付加される。このことにより、アプリケーションからファイル操作要求が生じたときには、ファイル操作が開始したことと共に、ファイル操作要求の種別の情報と、ファイル操作要求の処理に伴う、ファイル操作要求の対象のファイルについてのディスク装置HD1上での管理領域の更新に関わる更新情報と(これらの情報を、以下、トランザクション情報と記す)が、ディスク装置HD1内の所定のファイルに記録される。トランザクション情報を記録する所定のファイルを、以下、ジャーナルファイルJFと記す。また、アプリケーションからのファイル操作要求が完了したときには、当該処理が完了したことがジャーナルファイルJFに記録される。アプリケーションからのファイル操作要求は、下記のようなものを含む。
・ファイル・ディレクトリの作成
・ファイルへの書込み
・ファイル・ディレクトリの削除
・ファイル・ディレクトリの名前変更
・ファイル・ディレクトリの情報設定
以下では、これらの個々のファイル操作の処理をトランザクションと呼ぶ。ファイルシステム3は、トランザクションが発生したとき、トランザクションが開始されたことをログ記録システム5に通知する。また、トランザクションが完了したときには、そのことをログ記録システム5に通知する。
【0028】
ログ記録システム5は、トランザクションが開始されたことと共に、トランザクション情報をディスク装置HD1内に作成されたログ記録用のジャーナルファイルJFに記録するように機能する。ジャーナルファイルJFは、ファイルシステム3の管理下の通常のファイルとしてディスク装置HD1内に作成される。回復マネージャ7は、ファイル操作要求の処理が電源断などにより中断したような場合に、システムの起動時等に作動し、ジャーナルファイルJFを用いて、未完了となっているトランザクションを回復させるように機能する。
【0029】
障害回復機能付きファイルシステム10が提供する障害回復機能は、トランザクションの種類にしたがって次のような内容となる。
(a)「ファイル・ディレクトリの作成」、「ファイル・ディレクトリの削除」、「ファイル・ディレクトリの名前変更」、「ファイル・ディレクトリの情報設定」については、中断された処理を再実行して復旧させる。
(b)「ファイルへの書込み」については、中断された処理を取り消して、「ファイルへの書込み」が行われる前の状態に復旧させる。
したがって、「ファイルへの書込み」のトランザクションに関しては、書込みデータについてはログ記録を行わず、管理情報(FAT、およびディレクトリエントリの内容)についてのみログ記録を行うことになる。このことにより、ジャーナルファイルJFを小さなサイズに押さえること、障害回復機能の付加に伴いファイルシステムとしての書込み処理速度が低下しないようにすることが可能になる。
【0030】
2.ジャーナルファイルJFの構成
ジャーナルファイルJFの構成、およびログ記録システム5によるジャーナルファイルJFの管理について説明する。ログ記録システム5は、トランザクションが開始されたことを、トランザクション情報と共にジャーナルファイルJFに記録し、トランザクションが完了したときには、当該トランザクションが完了したことをジャーナルファイルJFに記録する。
【0031】
ジャーナルファイルJFの構成を図3に示す。ジャーナルファイルJFは、システムの起動時など、アプリケーションからファイルシステム3に対して初期化要求があったときに、未だ作成されていない場合にはファイルシステム3の管理下の通常のファイルとして作成される。1つのトランザクションに関するトランザクション情報は、1つのトランザクションエントリ17に記録される。各トランザクションエントリ17は、等しいサイズを持つ。
【0032】
ジャーナルファイルJFに対するログ記録システム5からの書込み操作は、ジャーナルファイルJF自身の管理領域の情報(つまり、メタデータ)の更新が発生しない様な所定の条件を満たすように行われる。所定の条件の一つは、所定のサイズとして作成されたジャーナルファイルJF中でのトランザクションエントリの数をN個とすると、N個のトランザクションエントリを巡回使用することである。つまり、トランザクションが発生する度に、第1番目のトランザクションエントリから順に使用して行き、第N番目のトランザクションエントリを使用した後は、再び先頭に戻って、空きのトランザクションエントリを捜して用いるようにする。
【0033】
また、所定の条件の一つは、ジャーナルファイルJF内でトランンザクションエントリが使用中のもので一杯である場合には、いずれかのトランザクションエントリ(例えば、最も古いトランザクションが記録されているトランザクションエントリ)のトランザクションについて、ファイルシステム3が管理するキャッシュ領域の内容をディスク装置HD1に反映させることにより完了させ、それにより、トランザクションエントリを解放させることである。
【0034】
上記のジャーナルファイルJFに対する取り扱いの所定の条件、(1)ジャーナルファイルを巡回使用すること、(2)ジャーナルファイルがフルになった場合は強制的に解放して使用することは、ジャーナルファイルJFのサイズを固定することを実現するための条件に対応している。ログ記録システム5は、ジャーナルファイルJFに対するトランザクション情報の書込みを行うときには、予め知ることのできるジャーナルファイルJFの格納位置に基づいて、ジャーナルファイルJFのデータ領域(つまり、トランザクションエントリ)に直接書込みを行うことができる。このことは、通常のファイルに対する情報の書込みは、管理領域(メタデータ)の更新のための書き込みと、データ領域の更新の為の書き込みとの少なくとも2回の書き込みが発生するが、ログ記録システム5によるジャーナルファイルJFへのログの書込みでは、データ領域への1回の書き込みしか発生しないことを意味している。このことは、ファイルシステムへの障害回復機能の追加に伴う、ファイル操作処理の処理速度の低下を抑えるという効果をもたらす。
【0035】
トランザクションエントリ17のサイズは、ディスク装置HD1の1セクタサイズ(例えば、512バイト)と等しくしている。1セクタサイズは、ディスク装置にアクセスする際の不可分のアクセス単位である。したがって、トランザクションエントリ17への書込みは、ディスク装置HD1に対する1回の書き込みで完結させることができる。このことは、1つのトランザクションエントリに対する書込みが中断するようなことがあっても、壊れるのは1つのトランザクションエントリのみであるという効果をもたらす。他のトランザクションエントリにまで被害が及ぶことがない。
【0036】
なお、トランザクションエントリ17は、1セクタより小さいサイズであったとしても、1セクタ内には1つのトランザクションエントリのみ格納するという条件が満たされる場合には、上記の同様の効果が得られる。
【0037】
また、トランザクションエントリ17のサイズが一定であることは、トランザクションエントリ17の検索を高速に行うこと、および、ジャーナルファイルJFのフラグメンテーション(断片化)を回避し、ジャーナルファイルJFの巡回使用を効率よく行うことを可能にする。なお、トランザクションエントリ検索の高速化、フラグメンテーションの回避という効果については、トランザクションエントリ17のサイズが一定であれば、トランザクションエントリのサイズが1セクタと等しくない場合にも得られる。全てのトランザクションエントリのサイズが一定でなくても、それぞれトランザクションサイズが、単位サイズの整数倍になっているような場合には、トランザクションエントリの検索の高速化、およびフラグメンテーションの回避の効果を得ることができる。
【0038】
図4は、1つのトランザクションエントリ17内に記録されるトランザクション情報の詳細を示している。トランザクションエントリ内に記録されるトランザクション情報の内容について下記に示す。
(a)「状態」(符号21)
「状態」には、トランザクションの状態として、“未使用”、“開始”、“完了”の3つのいずれかが記録される。それぞれ次のような意味を持つ。
“未使用”:このトランザクションエントリは使用されていない
“開始”:このエントリのトランザクションは開始した
“完了”:このエントリのトランザクションは完了した
(b)「シーケンス番号」(符号22)
ログ記録システム5がトランザクションに対して付与するトランザクションの通し番号。最小の値が、最も早く開始されたトランザクションであることを表す。
(c)「トランザクションタイプ」(符号23)
トランザクションの種別を示す名前を記載する。
(d)「トランザクションID」(符号24)
ログ記録システム5がトランザクションに対して付与するトランザクションの識別番号。
(e)ファイルID(符号25)
(f)「トランザクション個別情報のサイズ」(符号26)
(g)「トランザクション個別情報」(符号27)
トランザクションの個別の情報である。記録内容はトランザクションの種別によって異なる。
【0039】
ログ記録システム5は、トランザクションについてのシーケンス番号やトランザクションIDの管理を行なっている。ログ記録システム5は、ファイルシステム3から通知によりトランザクションが開始されたことを知ると、当該トランザクションに対してシーケンス番号やトランザクションIDを付与すると共に、トランザクション情報を取得して、トランザクションエントリ17に記録する。
【0040】
3.ログ記録システム5および回復マネージャ7の動作の詳細
以下では、ログ記録システム5によるトランザクション情報の記録、および回復マネージャ7による回復処理の動作について、各トランザクション毎に項目を分けて説明する。
【0041】
3.1 ファイル・ディレクトリ作成
ファイルまたはディレクトリの作成のトランザクションに対するトランザクションの開始の記録は、
a. アプリケーションからのファイル作成要求
b. アプリケーションからのディレクトリ作成要求
の発生に伴って行われる。
ファイルシステム3はアプリケーションからこのような要求を受け取ると、処理を開始する前に、ログ記録システム5に対して、ファイル・ディレクトリ作成のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【0042】
次に、ログ記録システム5は、このトランザクションに対する、シーケンス番号およびトランザクションIDの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム3により付与されたファイルIDも取得して記録する。さらに、ログ記録システム5は、下記のようなトランザクション個別情報をファイルシステム3から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」=“CreateFile”(ファイル作成であることを示す情報)
・シーケンス番号、ファイルID、トランザクションID
・トランザクション個別情報(下記(a)−(e))
(a)作成するファイルのSFN(ショートファイルネーム)
(b)作成するファイルの属性
(c)親ディレクトリのクラスタ番号
(d)親ディレクトリの属性
(e)作成するファイル名
【0043】
なお、トランザクションが完了したことの記録は、
a−1. アプリケーションからのファイルクローズ要求の処理完了
a−2. ファイルのフラッシュ(flush)の完了
b. ファイル作成処理の完了
に伴って行われる。
なお、フラッシュ(flush)は、ファイルシステムが一般的に有する機能の一つであり、ファイルシステムが管理するキャッシュ領域の内容をファイル装置に反映する処理を表す。フラッシュ(flush)の処理は、アプリケーションからのファイルのコミットの要求、或いは、ファイルシステムが管理するキャッシュ領域がフルになった場合のようなファイルシステム内部での要因により実行される。
【0044】
ログ記録システム5によって以上のようにトランザクションの開始の記録、完了の記録が行われる一方で、回復マネージャ7は、システム起動時等に作動し、ジャーナルファイルJF内に「ファイル・ディレクトリの作成」のトランザクションで未完了のものが見つかると次のような手順で回復処理を行う。
(回復処理手順)
(1)親ディレクトリに回復の対象のファイルが作成されているか確認する。(なお、ここで回復の対象のファイルが作成されている場合には、回復処理を行う必要はないので回復処理を終了できる。)
(2)次に、親ディレクトリのチェック・修復を行う。具体的には、異常なディレクトリエントリがあれば削除する。
(3)次に、親ディレクトリに、回復の対象のファイルを作成する。
【0045】
一例として、アプリケーションが、ファイル名称がファイルAのファイルを作成するという操作要求を発したものとして、ログ記録システム5によるログ記録の流れと、回復マネージャ7の回復処理の流れを示す。図5は、この場合の、アプリケーション、ファイルシステム3、およびログ記録システム5によるログ記録の流れを示すフローチャートである。アプリケーションが「ファイルAの作成」をファイルシステム3に対して要求すると(S1)、ファイルシステム3は、「ファイルAの作成」というトランザクションが発生したことをログ記録システムに対して通知する(S2)。このとき、ファイルシステム3からログ記録システム5へ、「ファイルAの作成」に関するトランザクション情報が提供される。
【0046】
次に、ログ記録システム5は、ジャーナルファイルJFの所定のトランザクションエントリに、トランザクション情報と共に、「ファイルAの作成」が開始されたことを書き込む(S3)。一方、ファイルシステム3は、「ファイルAの作成」を処理する(S4)。そして、「ファイルAの作成」が完了すると(S5)、ファイルシステム3からの通知により、ログ記録システム5は、「ファイルAの作成」に対応するトランザクションエントリを検索してトランザクションの状態を完了にする(S6)。
【0047】
図6は、「ファイルAの作成」の処理が、電源断などにより中断してしまう場合を示している。この場合、ディスク装置HD1上には実際にはファイルAの作成は行われていない。図7は、図6のように中断した状態からシステムを起動させた場合の回復マネージャ7の動作の流れである。システム起動時等にアプリケーションプログラムがファイルシステム3の初期化を行う(S11)。ことを契機として、回復マネージャ7は作動し、まずジャーナルファイルJFを検索して未完了のトランザクションがあるかどうかをチェックする(S12)。いま、図6のように「ファイルAの作成」が中断した後であることを想定しているので、ここでは、「ファイルAの作成」のトランザクションが未完了であることがみつかる(S12:YES)。なお、未完了のトランザクションが見つからない場合には(S12:NO)、回復処理を終了する。
【0048】
次に回復マネージャ7は、上述の回復処理手順によりトランザクション情報に基づいて「ファイルAの作成処理」を再実行する(S13)。「ファイルAの作成」の再実行が完了すると、未完了となっている(つまり、“開始”のままとなっている)トランザクションエントリの状態を“完了”にする(S14)。なお、“完了”となったトランザクションエントリは、新たなトランザクションを記録する為に用いることができる。
【0049】
3.2 ファイルへの書き込み
「ファイルへの書き込み」というトランザクションが開始したことの、ジャーナルファイルJFへの記録は、
a. アプリケーションからのファイルへの書き込み要求
の発生に伴って行われる。
ファイルシステム3は、アプリケーションから「ファイルへの書き込み」要求を受け取ると、処理を開始する前に、ログ記録システム5に対して、「ファイルへの書き込み」のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【0050】
次に、ログ記録システム5は、このトランザクションに対する、シーケンス番号およびトランザクションIDの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム3により付与されたファイルIDも取得して記録する。さらに、ログ記録システム5は、下記のようなトランザクション個別情報をファイルシステム3から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」=“WriteFile”(ファイルへの書き込みであることを示す情報)
・シーケンス番号、ファイルID、トランザクションID
・トランザクション個別情報(下記(a)−(e))
(a)書込み対象のファイルの識別情報
(a−1)親ディレクトリのクラスタ番号
(a−2)親ディレクトリの属性、
(a−3)ディレクトリエントリの(親ディレクトリ内の)位置
(b)書込み対象のファイルの書込み前のサイズ
(c)書込みサイズ
(d)書込み対象のファイルの書込み前の最終クラスタ番号
(e)書込み対象のファイルの書込み前のファイルポジション
【0051】
なお、このトランザクションが完了したことの記録は、
a. アプリケーションからのファイルクローズ要求の完了
b. ファイルのフラッシュ(flush)の完了
に伴って行われる。
【0052】
ログ記録システム5によって以上のようにトランザクションの開始の記録、完了の記録が行われる一方で、回復マネージャ7は、システム起動時等に作動し、ジャーナルファイルJF内に「ファイルへの書き込み」のトランザクションで未完了のものが見つかると次のような手順で回復処理を行う。
(回復処理手順)
(1)割り当てたまま、使われていないクラスタ(ロストクラスタ)を未使用に戻す。
(2)書き込み対象のファイルのクラスタチェーンについて、複数のあるFAT間の不整合を、先頭のFAT(FAT11)を以降のFAT(FAT12)にコピーすることで解決する。
(3)未終端のクラスタチェーンを終端させる。
(4)ディレクトリエントリとFATを一致させる。具体的には、書込み対象のクラスタチェーンをディレクトリエントリに合わせて切りつめること、または、ファイルサイズを書込み対象のファイルのクラスタチェーン数に合わせて切りつめることを行う。
なお、上記(1)のロストクラスタを未使用に戻すことは、実際には、「ファイルへの書き込み」のトランザクションの内部的な処理として実行される「ファイルへのクラスタの割り当て」のトランザクションについて必要なトランザクション情報をログ記録することによって達成される(3.2.1「ファイルへのクラスタの割り当て」参照)。
【0053】
一例として、アプリケーションが、ファイル名称がファイルBのファイルへの書込みを行う操作要求を発したものとして、ログ記録システム5によるログ記録の流れと、回復マネージャ7による回復処理の流れを説明する。図8は、この場合の、アプリケーション、ファイルシステム3、およびログ記録システム5によるログ記録の流れを示すフローチャートである。アプリケーションが「ファイルBへの書込み」をファイルシステム3に要求すると(S31)、ファイルシステム3は、「ファイルBへの書込み」というトランザクションが発生したことをログ記録システムに対して通知する(S32)。このとき、ファイルシステム3からログ記録システム5へ、「ファイルBへの書込み」に関するトランザクション情報が提供される。
【0054】
次に、ログ記録システム5は、ジャーナルファイルJFの所定のトランザクションエントリに、トランザクション情報と共に、「ファイルBへの書込み」が開始されたことを書き込む(S33)。一方、ファイルシステム3は、「ファイルBへの書込み」を処理する(S34)。そして、アプリケーションからのファイルクローズ要求等により「ファイルBへの書込み」が完了すると(S35)、ファイルシステム3からの通知により、ログ記録システム5は、「ファイルBへの書込み」に対応するトランザクションエントリを検索してトランザクションの状態を“開始”から“完了”にする(S36)。
【0055】
図9は、「ファイルBへの書込み」の処理が、電源断などにより中断してしまう場合を示している。この場合、ディスク装置HD1上への「ファイルBへの書込み」処理は中途半端に終了しディスク装置HD1は正常でない状態となっている。典型的な例としては、ディスク装置HD1の管理領域のみが更新されデータ領域が更新されていない状態、つまり、管理領域とデータ領域の間に不整合が生じている状態である。図10は、図9のように中断した状態からシステムを起動させた場合の回復マネージャ7の動作の流れである。システム起動時にアプリケーションは、ファイルシステム3の初期化を行う(S41)。このことを契機として、回復マネージャ7は作動し、まずジャーナルファイルJFを検索して、未完了のトランザクションがあるかどうかをチェックする(S42)。いま、図9のように「ファイルBへの書込み」が中断した後であるので、ここでは、「ファイルBへの書込み」のトランザクションが未完了であることがみつかる(S42:YES)。なお、未完了のトランザクションが見つからない場合には(S42:NO)、回復処理を終了する。
【0056】
次に回復マネージャ7は、上述の回復処理手順により、トランザクション情報に基づいて「ファイルBへの書込み」を取り消して、トランザクションの開始前の状態に戻す(S43)。取り消しの処理が完了すると、未完了となっているトランザクションエントリの「状態」を“完了”にする(S44)。
【0057】
3.2.1 ファイルへのクラスタの割り当て
「ファイルへのクラスタの割り当て」というトランザクションが開始したことの、ジャーナルファイルJFへの記録は、
a. ファイルの最初のクラスタを割り当てる前
b. クラスタリンクの追加用のクラスタを割り当てる前
に行われる。
ファイルシステム3は、このようなタイミングで、ログ記録システム5に対して、「ファイルへのクラスタの割り当て」のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【0058】
次に、ログ記録システム5は、このトランザクションに対する、シーケンス番号およびトランザクションIDの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム3により付与されたファイルIDも取得して記録する。さらに、ログ記録システム5は、下記のようなトランザクション個別情報をファイルシステム3から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」=“AllocCluster”(ファイルへのクラスタの割り当てあることを示す情報)
・シーケンス番号、ファイルID、トランザクションID
・トランザクション個別情報(下記(a)−(b))
(a)対象のファイルの識別情報
(a−1)親ディレクトリのクラスタ番号
(a−2)親ディレクトリの属性、
(a−3)ディレクトリエントリの(親ディレクトリ内の)位置
(a−4)最初のクラスタ番号
(b)割り当てたクラスタ番号のリスト
【0059】
なお、このトランザクションが完了したことの記録は、
a−1. 割り当てたクラスタが、対象のファイルのディレクトリエントリに設定され、ディレクトリエントリとFATがフラッシュ(flush)されたとき。
a−2. 割り当てたクラスタの属するファイルがクローズ(close)されたとき。
b−1. クラスタの連結が完了し、FATがフラッシュ(flush)されたとき。
b−2. 割り当てたクラスタの属するファイルがクローズ(close)されたとき。
に行われる。
【0060】
上記「ファイルへの書き込み」の回復処理の一部として上記トランザクション情報に基づいて次のような回復処理を行う。
(回復処理手順)
(1)割り当てたクラスタを未使用に戻す。
【0061】
3.3 ファイル・ディレクトリの削除
ファイル・ディレクトリの削除というトランザクションが開始したことの、ジャーナルファイルJFへの記録は、
a. アプリケーションからのファイル削除の要求
b. アプリケーションからのディレクトリ削除の要求
の発生に伴って行われる。
ファイルシステム3は、アプリケーションから「ファイル・ディレクトリの削除」の要求を受け取ると、ログ記録システム5に対して、「ファイル・ディレクトリの削除」のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【0062】
次に、ログ記録システム5は、このトランザクションに対する、シーケンス番号およびトランザクションIDの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム3により付与されたファイルIDも取得して記録する。さらに、ログ記録システム5は、下記のようなトランザクション個別情報をファイルシステム3から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」=“DeleteFile”(ファイルへ削除であることを示す情報)
・シーケンス番号、ファイルID、トランザクションID
・トランザクション個別情報(下記(a))
(a)削除の対象のファイルの識別情報
(a−1)親ディレクトリのクラスタ番号
(a−2)親ディレクトリの属性
(a−3)ディレクトリエントリの位置
(a−4)対象のファイルの属性
(a−5)対象のファイルの最初のクラスタ番号
(a−6)対象のファイルのLFN(ロングファイルネーム)のディレクトリエントリ数
(a−7)対象のファイルのalias(別名)のチェックサム
【0063】
なお、このトランザクションが完了したことの記録は、
a. ファイル・ディレクトリ削除処理の完了
に伴って行われる。
【0064】
ログ記録システム5によって以上のようにトランザクションの開始の記録、完了の記録が行われる一方で、回復マネージャ7は、システム起動時等に作動し、ジャーナルファイルJF内に「ファイル・ディレクトリの削除」のトランザクションで未完了のものが見つかると次のような手順で回復処理を行う。
(回復処理手順)
(1)削除の対象のファイル・ディレクトリの削除を再実行する。
【0065】
「ファイル・ディレクトリの削除」のトランザクションを回復させる際の動作の流れは、未完了のトランザクションを見つけ出し再実行による回復を行うことであり、「ファイル・ディレクトリの作成」に関し図5〜7を参照して上述した場合と同様である。
【0066】
3.4 ファイル・ディレクトリの名前変更
ファイル・ディレクトリの名前変更というトランザクションが開始したことの、ジャーナルファイルJFへの記録は、
a. アプリケーションからのファイル名変更の要求
の発生に伴って行われる。
ファイルシステム3は、アプリケーションから「ファイル・ディレクトリの名前変更」の要求を受け取ると、ログ記録システム5に対して、ファイル・ディレクトリの名前変更のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【0067】
次に、ログ記録システム5は、このトランザクションに対する、シーケンス番号およびトランザクションIDの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム3により付与されたファイルIDも取得して記録する。さらに、ログ記録システム5は、下記のようなトランザクション個別情報をファイルシステム3から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」=“RenameFile”(名前変更であることを示す情報)
・シーケンス番号、ファイルID、トランザクションID
・トランザクション個別情報(下記(a),(b))
(a)名前変更の対象のファイルの識別情報
(a−1)親ディレクトリのクラスタ番号
(a−2)親ディレクトリの属性
(a−3)ディレクトリエントリの位置
(a−4)対象のファイルの属性
(a−5)対象のファイルの最初のクラスタ番号
(a−6)対象のファイルのLFN(ロングファイルネーム)のディレクトリエントリ数
(a−7)対象のファイルのaliasのチェックサム
(b)対象のファイルの新しいファイル名
【0068】
なお、このトランザクションが完了したことの記録は、
a. ファイル・ディレクトリの名前変更処理の完了
に伴って行われる。
【0069】
ログ記録システム5によって以上のようにトランザクションの開始の記録、完了の記録が行われる一方で、回復マネージャ7は、システム起動時等に作動し、ジャーナルファイルJF内に「ファイル・ディレクトリの名前変更」のトランザクションで未完了のものが見つかると次のような手順で回復処理を行う。
(回復処理手順)
(1)名前変更の対象のファイル・ディレクトリの名前変更の処理を再実行する。
【0070】
「ファイル・ディレクトリの名前変更」のトランザクションを回復させる際の動作の流れは、未完了のトランザクションを見つけ出し再実行による回復を行うことであり、「ファイル・ディレクトリの作成」に関し図5〜7を参照して上述した場合と同様である。
【0071】
3.5 ファイル・ディレクトリの情報設定
ファイル・ディレクトリの情報設定というトランザクションが開始したことの、ジャーナルファイルJFへの記録は、
a. アプリケーションからのファイル・ディレクトリ情報設定の要求
の発生に伴って行われる。
ファイルシステム3は、アプリケーションから「ファイル・ディレクトリの情報設定」の要求を受け取ると、ログ記録システム5に対して、「ファイル・ディレクトリの情報設定」のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【0072】
次に、ログ記録システム5は、このトランザクションに対する、シーケンス番号およびトランザクションIDの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム3により付与されたファイルIDも取得して記録する。さらに、ログ記録システム5は、下記のようなトランザクション個別情報をファイルシステム3から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」=“SetStatFile”(情報設定であることを示す情報)
・シーケンス番号、ファイルID、トランザクションID
・トランザクション個別情報(下記(a)−(d))
(a)情報設定の対象のファイルの識別情報
(a−1)親ディレクトリのクラスタ番号
(a−2)ディレクトリエントリの(親ディレクトリ内の)位置
(b)対象のファイルの属性
(c)対象のファイルの元の属性
(d)対象のファイルの新しい属性
【0073】
なお、このトランザクションが完了したことの記録は、
a. ファイル・ディレクトリの情報設定の処理の完了
に伴って行われる。
【0074】
ログ記録システム5によって以上のようにトランザクションの開始の記録、完了の記録が行われる一方で、回復マネージャ7は、システム起動時等に作動し、ジャーナルファイルJF内に「ファイル・ディレクトリの情報設定」のトランザクションで未完了のものが見つかると次のような手順で回復処理を行う。
(回復処理手順)
(1)情報設定の対象のファイル・ディレクトリの情報設定の処理を再実行する。
【0075】
「ファイル・ディレクトリの情報設定」のトランザクションを回復させる際の動作の流れは、未完了のトランザクションを見つけ出し再実行による回復を行うことであり、「ファイル・ディレクトリの作成」に関し図5〜7を参照して上述した場合と同様である。
【0076】
以上説明したように、障害回復機能付きファイルシステム10は、中断されたファイル操作要求を回復する機能を実現する。上述した障害回復機能付きのファイルシステム10について、様々な変形例を構成することができる。例えば、ログ記録および回復処理の対象となるトランザクションとして上述したものは例証として示したものであって、ディスク装置の内容変更を伴うような他のトランザクションに対しても、上述した場合と同様にログ記録および回復処理機能を適用することができる。
【0077】
トランザクションの「状態」についての記録は、トランザクションが開始されていること、完了していることが分かれば良いので、「状態」の表現に関する様々な形式が有り得る。例えば、トランザクションが完了したことは、状態を開始から完了に書き換えること以外に、トランザクションエントリの内容を消去する形式での表現も有り得る。
【0078】
また、上述の実施形態では、ファイルシステム3の管理下にあるのは1つのディスク装置であるものとして説明しているが、一般的なファイルシステムと同様にファイルシステム3が複数のファイル装置を管理下におくように構成することはできるので、ログ記録の対象とする(つまり、障害回復の対象とする)ファイル装置と、ジャーナルファイルを格納するファイル装置とを別々のものとする構成を実現することもできる。例えば、ファイルシステム3の管理下にディスク装置とフラッシュメモリがあるものとして、ログ記録の対象をディスク装置とする場合に、ジャーナルファイルはフラッシュメモリ上に格納しておく構成とすることができる。
【0079】
1つのコンピュータシステムにおいて、種類の異なるファイルシステムを混在させることが可能である。したがって、ログ記録の対象とする(つまり、障害回復の対象とする)ファイルシステムと、ジャーナルファイルを格納しておくファイルシステムとを別々のものとする構成を実現することもできる。すなわち、1つのコンピュータシステムにファイルシステムAと、ファイルシステムBが存在し、ファイルシステムAをログ記録の対象とする(つまり、ファイルシステムAについて障害回復を行う)場合に、ジャーナルファイルは、ファイルシステムBによる管理下に置く。この場合、ジャーナルファイルは、ファイルシステムBにおける通常のファイルとして作成され、ジャーナルファイルには、ファイルシステムAにおけるトランザクションの発生に伴って、ファイルシステムAについてのトランザクション情報が記録される。
【0080】
図1に示すように、この障害回復機能付きファイルシステム10では、ログ記録システム5によるログ記録機能は、ファイルシステム3からトランザクションの開始を通知することによって行われ、また、回復マネージャ7による回復機能は、アプリケーションからのファイルシステム初期化要求に伴い行われるように構成されている。この構成は、既存のファイルシステムに対して障害回復機能を付加することを容易にすると共に、障害回復機能の付加に伴う既存のファイルシステムの信頼性の低下を回避することを可能にする。
【0081】
本発明の範囲には、以上説明した障害回復機能付きファイルシステムの機能を実現するための方法、プログラム、およびこのような機能が実現された情報機器が含まれる。
【0082】
【発明の効果】
以上説明したように本発明によれば、ジャーナルファイルJFは、ファイルシステムの管理下のファイルとして作成され、また、ログ記録の内容は、ファイル操作対象のファイルのメタデータの更新に関する情報のみである。したがって、ログ記録を簡略化でき、ログ記録に伴うファイル操作の処理速度の低減を回避することができる。また、ジャーナルファイルに対するログの書き込みは、ジャーナルファイル自身のメタデータの更新が生じない様に行われる。したがって、ジャーナルファイルへのログの書き込みの処理速度を高速化することができる。
【図面の簡単な説明】
【図1】図1は、本発明の実施形態である、障害回復機能付きファイル管理プログラムの機能の構成を表すブロック図である。
【図2】FAT型ファイルシステムによるディスク装置の管理上の構成を示す図である。
【図3】図1の障害回復機能付きファイル管理プログラムによって管理されるジャーナルファイルの構成を示す図である。
【図4】図3のジャーナルファイル内のトランザクションエントリの構成を示す図である。
【図5】ファイルの作成が行われる場合の、ログの記録の動作を表すフローチャートである。
【図6】図5のファイルの作成の処理において、処理が中断した場合を示す図である。
【図7】図6のようにファイル作成の処理が中断した後の、回復処理の動作を表すフローチャートである。
【図8】ファイルへの書き込みが行われる場合の、ログの記録の動作を表すフローチャートである。
【図9】図8のファイルへの書き込みの処理において、処理が中断した場合を示す図である。
【図10】図9のようにファイル作成の処理が中断した後の、回復処理の動作を表すフローチャートである。
【符号の説明】
3 ファイルシステム
5 ログ記録システム
7 回復マネージャ
10 障害回復機能付きファイルシステム
17 トランザクションエントリ
21 状態
22 シーケンス番号
23 トランザクションタイプ
24 トランザクションID
25 ファイルID
27 トランザクション個別情報
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a failure recovery function for recovering an interrupted file operation for a file device.
[0002]
[Prior art]
A method for managing files recorded in a file device on a computer and software for performing such management are called a file system. The file system has a function of receiving a file operation request from an application program and efficiently storing data in a file device. In general, various items related to file management including a method of creating a file, a method of managing a file on a file device, a storage area of a management area and a storage area of a data area, and the like are determined depending on the type of file system.
[0003]
For example, a file system called a FAT file system manages a file device by dividing it into an area for storing file management information (hereinafter, referred to as a management area in this specification) and a data area for storing file contents. I do. The management area includes a FAT (File Allocation Table; file allocation table) and information called a directory entry. The FAT manages the storage location of data constituting a file, and the directory entry uses a file name, a directory name, and an attribute. Manage etc.
[0004]
On the other hand, the file system is required to have a failure recovery function so that when a file operation process is interrupted at the time of a system crash or the like and a failure occurs in the contents of the file device, it can be recovered immediately. The failure of the file device occurs, for example, in the following situations. Generally, a file system has a cache area to provide high-speed file operation processing to an application program. Therefore, if the system suddenly goes down, the contents of the file operation stored in the cache area are not reflected on the file device, or so-called metadata, which is information on the management area on the file device, and the data area. Inconsistency with the data of the file contents in the file.
[0005]
In order to cope with such a failure, a file system configured to realize a failure recovery function is currently being proposed.
[0006]
[Problems to be solved by the invention]
Generally, it can be considered that the failure recovery function can be realized by recording the contents related to the file operation from the application program as a log. However, since the failure recovery function causes an increase in the load on the processing of normal file operations, log information such as what content is to be recorded as a log, what format the log is to be recorded in, and where is to be recorded. Various items related to recording affect the performance of failure recovery and the performance of normal file operations (that is, how much the processing load increases due to log recording and the performance of processing for normal file operations decreases). It must be noted that giving. Therefore, a file system that does not affect the performance of normal file operations as much as possible and realizes a necessary and sufficient failure recovery function is desired.
[0007]
In many cases, a file system having a failure recovery function is constructed by adding a failure recovery function to an already completed file system. Therefore, the failure recovery function is required to have a configuration that can be added to the existing file system in a format as simple as possible so as not to affect the performance and reliability of the existing file system.
[0008]
The present invention has been made in view of the above circumstances. That is, the present invention is a method for realizing a file system with a failure recovery function configured so as not to affect the performance and reliability of a normal file operation of the file system and having necessary and sufficient failure recovery performance. , A program, and an information device having such a failure recovery function.
[0009]
[Means for Solving the Problems]
In order to achieve the above object, first, recording of a log relating to a file operation request is performed on a log file which is a predetermined file created under the management of a file system that manages a file targeted for the file operation request. I will. Since the log file can be operated as a file under the management of the file system, log recording can be simplified. Then, when a file operation request is made from the application program, the type of the file operation request and the first update information relating to the update of the management area on the file device for the file targeted for the file operation request are stored in the log file. I will record it. That is, only the contents of the update of the management area (so-called metadata) associated with the processing of the file operation request are set as the log recording targets. This suppresses an increase in the load of the file operation processing accompanying the log recording. Further, the writing of the information to the log file is performed under a predetermined condition that does not cause the update of the management area of the log file on the file device. In the normal file writing process, at least two times of writing to the management area and writing to the data area occur. However, according to the above configuration, writing to the log file for log recording causes Since only writing is performed, the processing speed of log recording can be increased.
[0010]
The predetermined condition for preventing the management area from being updated when writing to the log file is, for example, a configuration in which the log file includes a plurality of entries for recording a log relating to one file operation request. That is, the plurality of entries are used cyclically (claim 2).
[0011]
Further, as a predetermined condition, it is preferable that a file operation relating to an in-use entry among a plurality of entries is forcibly completed, so that the in-use entry is released and used. 3).
[0012]
Alternatively, the predetermined condition may be that a log file is used as a fixed size.
[0013]
Preferably, the sizes of the plurality of entries in the log file are all equal to a predetermined size (claim 5). This makes it possible to search for an entry at high speed. In addition, it is possible to avoid fragmentation of entries in the log file and to efficiently use the entries cyclically.
[0014]
Alternatively, each of the plurality of entries may have a size that is an integral multiple of a predetermined unit size.
[0015]
Also, the predetermined size of the entry is preferably a size corresponding to one inseparable access to the file device storing the log file so that writing of the entry to the file device can be speeded up. 7). It is preferable that the predetermined size of the entry is configured to be equal to one sector size of the file device.
[0016]
Alternatively, the predetermined size of the entry may be smaller than one sector size of the file device, and only one entry may be stored in one sector.
[0017]
The file system may be a FAT type file system, and the management area may be configured to include information on the FAT and the directory.
[0018]
In order to achieve the above object, a log is recorded in a log file that is a predetermined file created under the management of a file system that manages a file to be requested for a file operation. Then, when a file operation request is made from the application program, the type of the file operation request and the first update information relating to the update of the management area on the file device for the file targeted for the file operation request are The log file is written to the log file so that the number of times the log file is written is completed once. In this case, the processing speed of log recording can be increased.
[0019]
In order to achieve the above object, a log is recorded in a log file which is a predetermined file created under the management of the first file system. When a file operation request is issued from an application program to a second file system to be logged (that is, to which a failure recovery function is added), the type of the file operation request and the file operation request Update information relating to the update of the management area on the file device managed by the second file system for the file to be requested is recorded in a log file. That is, only the update information of the management area (so-called metadata) associated with the processing of the file operation request in the second file system is targeted for log recording. Then, the writing of the information to the log file is performed under a predetermined condition that does not cause the update of the management area on the file device under the first file system management for the log file (claim 12). According to the above configuration, a file system to be subjected to log recording and a file system to manage a predetermined file for recording a log can be separated.
[0020]
When a file operation request is received from an application program, a log recording program that writes a log related to the file operation request to a log file using the log recording method described above, and a log file is checked at the time of system startup, and the log file is checked. It is possible to configure a file management program including a recovery program for performing a recovery process of a file operation request when there is a file operation request that has not been made (claim 13).
[0021]
In order to achieve the above object, a failure recovery function of a file device is realized from a file management program to which the following functions are added, a log recording program, and a recovery program.
That is, the file management program includes
(1) When a file operation request is received from an application program running on a computer, the log recording program is notified that the processing of the file operation request has started, and the type of the file operation request and A function of providing first update information relating to update of a management area on a file device for a file targeted for the file operation request;
(2) When the processing of the file operation request is completed, a function of notifying the log recording program that the file operation request has been completed is added.
The log recording program is configured to have the following functions.
(1) Upon receiving the notification that the processing of the file operation request has started, the type of the acquired file operation request and the first file are added to the log file created in advance as a file managed by the file management program. A function that records that the processing of the file operation request has started, together with the update information of
(2) A function of recording a predetermined completion in a log file upon receiving notification that the processing of the file operation request has been completed.
The recovery program is configured to have the following functions.
(1) A function of examining a log file at the time of system startup and, when there is a file operation request that has not been completed, recovering the file operation request based on the contents of the log file.
Since the above function may be added to the file management program in order to realize the failure recovery function of the file device, the failure recovery function can be added to the file management program in a simple format. Therefore, it is possible to prevent the reliability and performance of the processing of a normal file operation request from being reduced with the addition of the failure recovery function to the file management program.
[0022]
In this case, it is preferable that the writing of the information to the log file by the log recording program is performed under a predetermined condition that does not cause the update of the management area of the log file on the file device.
[0023]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a block diagram illustrating a functional configuration of a file management program with a failure recovery function (hereinafter, referred to as a file system with a failure recovery function 10) according to an embodiment of the present invention. In the file system 10 with a failure recovery function, the file system 3 is a program for realizing a function as a file system, the log recording system 5 is a program for realizing a log recording function, and the recovery processing manager 7 is a realization of a recovery function. Corresponds to the program. The file system 10 with a failure recovery function can be mounted on various information devices such as a computer, a PDA, and a mobile phone, and can function to manage files of various types of file devices such as a disk device and a flash memory. Here, as an example, a disk device is used as a file device.
[0024]
Hereinafter, the details of the file system 10 with a failure recovery function will be described in the order of the following items.
1. Overall Configuration of File System 10 with Failure Recovery Function
2. Structure of journal file JF
3. Details of the operation of the log recording system 5 and the recovery manager 7
[0025]
1. Overall configuration of file system with disaster recovery function
In the file system 10 with a failure recovery function, the file system 3 has a general function as a FAT type file system that receives a file operation request from an application program (hereinafter, referred to as an application) and executes a file operation process. . The file system 3 manages the disk device HD1 as a file device. The file system 3 stores (1) the file operation request from the application in a cache area on the main storage in response to the file operation request from the application, and (2) the application in response to the file operation request from the application. When a file close request is issued from the server, or when the cache area becomes full, the contents of the cache area are reflected on the disk device HD1.
[0026]
The file system 3 is a FAT-type file system that manages file storage locations by using a FAT (file allocation table). Like the general FAT-type file system, the file system 3 stores the disk drive HD1 in the FAT areas 11 and 12 and the directory. It is managed as a configuration including an area 13 and a data area 15 in which data of file contents is stored (see FIG. 2). The FAT is duplexed into FATs 11 and 12 to improve the reliability as a file system.
[0027]
A function for operating in cooperation with the log recording system 5 and the recovery manager 7 is added to the file system 3. As a result, when a file operation request is issued from the application, the file operation is started, the information on the type of the file operation request, and the disk device for the file to be subjected to the file operation request accompanying the processing of the file operation request. Update information related to the update of the management area on the HD 1 and these information (hereinafter, referred to as transaction information) are recorded in a predetermined file in the disk device HD1. A predetermined file for recording transaction information is hereinafter referred to as a journal file JF. When the file operation request from the application is completed, the completion of the process is recorded in the journal file JF. The file operation request from the application includes the following.
File and directory creation
・ Write to file
File and directory deletion
File and directory name
・ File / directory information setting
Hereinafter, the processing of these individual file operations is called a transaction. When a transaction occurs, the file system 3 notifies the log recording system 5 that the transaction has started. Further, when the transaction is completed, the fact is notified to the log recording system 5.
[0028]
The log recording system 5 functions to record the transaction information in the log recording journal file JF created in the disk device HD1 together with the start of the transaction. The journal file JF is created in the disk device HD1 as a normal file managed by the file system 3. When the processing of the file operation request is interrupted due to a power failure or the like, the recovery manager 7 operates at the time of system startup or the like, and recovers an incomplete transaction using the journal file JF. Function.
[0029]
The failure recovery function provided by the file system 10 with a failure recovery function has the following contents according to the type of transaction.
(A) Regarding “create file directory”, “delete file directory”, “rename file directory”, and “set information of file directory”, execute the interrupted process again to recover .
(B) With regard to “writing to a file”, the interrupted process is canceled and the state before the “writing to the file” is performed is restored.
Therefore, regarding the transaction of “writing to a file”, log recording is not performed for write data, and log recording is performed only for management information (FAT and contents of directory entry). As a result, it is possible to keep the journal file JF to a small size and prevent the write processing speed of the file system from being reduced due to the addition of the failure recovery function.
[0030]
2. Structure of journal file JF
The configuration of the journal file JF and the management of the journal file JF by the log recording system 5 will be described. The log recording system 5 records the start of the transaction in the journal file JF together with the transaction information, and when the transaction is completed, records the completion of the transaction in the journal file JF.
[0031]
FIG. 3 shows the configuration of the journal file JF. The journal file JF is created as a normal file under the management of the file system 3 when the journal file JF is not yet created when an initialization request is issued from the application to the file system 3 such as when the system is started. . Transaction information on one transaction is recorded in one transaction entry 17. Each transaction entry 17 has an equal size.
[0032]
The write operation from the log recording system 5 to the journal file JF is performed so as to satisfy a predetermined condition that updating of information (that is, metadata) of the management area of the journal file JF itself does not occur. One of the predetermined conditions is to use N transaction entries cyclically, where N is the number of transaction entries in the journal file JF created as a predetermined size. That is, each time a transaction occurs, the transaction is used in order from the first transaction entry, and after using the Nth transaction entry, the process returns to the beginning again to search for and use an empty transaction entry. I do.
[0033]
One of the predetermined conditions is that if the transaction entries are full in use in the journal file JF, any one of the transaction entries (for example, the transaction entry in which the oldest transaction is recorded) The transaction is completed by reflecting the contents of the cache area managed by the file system 3 on the disk device HD1, thereby releasing the transaction entry.
[0034]
The above-mentioned predetermined conditions for handling the journal file JF, (1) cyclic use of the journal file, and (2) forced release of the journal file when the journal file becomes full, are used in the journal file JF. It corresponds to the condition for realizing the fixed size. When writing the transaction information to the journal file JF, the log recording system 5 directly writes to the data area (that is, transaction entry) of the journal file JF based on the storage position of the journal file JF that can be known in advance. be able to. This means that writing of information to a normal file involves at least two writes: writing for updating a management area (metadata) and writing for updating a data area. Writing a log to the journal file JF by No. 5 means that only one write to the data area occurs. This has the effect of suppressing a reduction in the processing speed of the file operation processing due to the addition of the failure recovery function to the file system.
[0035]
The size of the transaction entry 17 is equal to one sector size (for example, 512 bytes) of the disk device HD1. One sector size is an indivisible access unit when accessing the disk device. Therefore, writing to the transaction entry 17 can be completed by one writing to the disk device HD1. This has the effect that even if writing to one transaction entry is interrupted, only one transaction entry is corrupted. There is no damage to other transaction entries.
[0036]
Even if the size of the transaction entry 17 is smaller than one sector, the same effect as described above can be obtained if the condition that only one transaction entry is stored in one sector is satisfied.
[0037]
The fact that the size of the transaction entry 17 is constant means that the search of the transaction entry 17 is performed at high speed, the fragmentation (fragmentation) of the journal file JF is avoided, and the journal file JF is used cyclically efficiently. Make it possible. Note that the effects of speeding up the transaction entry search and avoiding fragmentation can be obtained even when the size of the transaction entry 17 is not equal to one sector if the size of the transaction entry 17 is constant. Even if the sizes of all transaction entries are not constant, if the transaction size is an integral multiple of the unit size, the effect of speeding up the search of transaction entries and avoiding fragmentation can be obtained. Can be.
[0038]
FIG. 4 shows details of the transaction information recorded in one transaction entry 17. The contents of the transaction information recorded in the transaction entry are shown below.
(A) “State” (reference numeral 21)
In the “state”, any one of three states of “unused”, “started”, and “completed” is recorded as the state of the transaction. Each has the following meaning.
"Unused": This transaction entry is not used
“Start”: Transaction of this entry has started
“Completed”: The transaction for this entry has been completed
(B) “Sequence number” (reference numeral 22)
Transaction serial number given to the transaction by the log recording system 5. The lowest value represents the earliest started transaction.
(C) “Transaction type” (reference numeral 23)
Enter the name indicating the type of transaction.
(D) “Transaction ID” (reference numeral 24)
Transaction identification number assigned to the transaction by the log recording system 5.
(E) File ID (reference numeral 25)
(F) “Size of transaction individual information” (reference numeral 26)
(G) “Transaction individual information” (reference numeral 27)
This is the individual information of the transaction. The recorded contents differ depending on the type of transaction.
[0039]
The log recording system 5 manages a sequence number and a transaction ID of a transaction. When the log recording system 5 knows that a transaction has been started by a notification from the file system 3, the log recording system 5 assigns a sequence number and a transaction ID to the transaction, acquires transaction information, and records it in the transaction entry 17. .
[0040]
3. Details of the operation of the log recording system 5 and the recovery manager 7
Hereinafter, the recording of transaction information by the log recording system 5 and the operation of the recovery processing by the recovery manager 7 will be described separately for each transaction.
[0041]
3.1 Creating files and directories
The record of the start of a transaction for a file or directory creation transaction is:
a. File creation request from application
b. Directory creation request from application
Is performed in response to the occurrence of
Upon receiving such a request from the application, the file system 3 notifies the log recording system 5 of the start of the file directory creation transaction and provides transaction information regarding the transaction before starting the processing. .
[0042]
Next, the log recording system 5 assigns a sequence number and a transaction ID to this transaction, and records this in the transaction entry. Also, a file ID given by the file system 3 is acquired and recorded. Further, the log recording system 5 acquires the following transaction individual information from the file system 3 and records it in the transaction entry. That is, the following contents are recorded as transaction information.
"Type" = "CreateFile" (information indicating file creation)
・ Sequence number, file ID, transaction ID
・ Individual transaction information ((a)-(e) below)
(A) SFN (short file name) of the file to be created
(B) Attributes of the file to be created
(C) Parent directory cluster number
(D) Attributes of parent directory
(E) File name to be created
[0043]
Note that the record of the completion of the transaction is
a-1. Processing of file close request from application completed
a-2. Completing the file flush
b. Completion of file creation process
It is performed along with.
Note that the flush is one of the functions that the file system generally has, and represents a process of reflecting the contents of the cache area managed by the file system on the file device. The flush processing is executed by a request for committing a file from an application or a factor in the file system such as when a cache area managed by the file system becomes full.
[0044]
While the log recording system 5 records the start and the completion of the transaction as described above, the recovery manager 7 operates at the time of system startup or the like, and stores the “file / directory creation” in the journal file JF. If an incomplete transaction is found, recovery processing is performed in the following procedure.
(Recovery procedure)
(1) Check whether a file to be recovered has been created in the parent directory. (If the file to be recovered has been created here, the recovery process does not need to be performed and the recovery process can be terminated.)
(2) Next, the parent directory is checked and repaired. Specifically, if there is an abnormal directory entry, it is deleted.
(3) Next, a file to be recovered is created in the parent directory.
[0045]
As an example, the flow of log recording by the log recording system 5 and the flow of recovery processing by the recovery manager 7 are shown assuming that the application has issued an operation request to create a file with the file name of file A. FIG. 5 is a flowchart showing a flow of log recording performed by the application, the file system 3, and the log recording system 5 in this case. When the application requests "creation of file A" to the file system 3 (S1), the file system 3 notifies the log recording system that a transaction of "creation of file A" has occurred (S2). . At this time, transaction information relating to “creation of file A” is provided from the file system 3 to the log recording system 5.
[0046]
Next, the log recording system 5 writes, in a predetermined transaction entry of the journal file JF, the start of "creation of file A" together with the transaction information (S3). On the other hand, the file system 3 processes "creation of file A" (S4). Then, when the "creation of file A" is completed (S5), the log recording system 5 searches for a transaction entry corresponding to "creation of file A" by the notification from the file system 3 and completes the transaction status. (S6).
[0047]
FIG. 6 shows a case where the process of “creating file A” is interrupted due to a power failure or the like. In this case, the file A is not actually created on the disk device HD1. FIG. 7 shows a flow of the operation of the recovery manager 7 when the system is started from the suspended state as shown in FIG. The application program initializes the file system 3 when the system is started (S11). In response to this, the recovery manager 7 operates, and first searches the journal file JF to check whether there is any incomplete transaction (S12). Since it is assumed that the "file A creation" is interrupted as shown in FIG. 6, it is found here that the "file A creation" transaction is incomplete (S12: YES). ). If no incomplete transaction is found (S12: NO), the recovery process ends.
[0048]
Next, the recovery manager 7 re-executes the "file A creation process" based on the transaction information according to the above-described recovery process procedure (S13). When the re-execution of “create file A” is completed, the status of the transaction entry that has not been completed (that is, remains “started”) is set to “completed” (S14). Note that the transaction entry that has been “completed” can be used to record a new transaction.
[0049]
3.2 Writing to File
The record in the journal file JF that the transaction "write to file" has started is
a. Request to write to file from application
Is performed in response to the occurrence of
Upon receiving the “write to file” request from the application, the file system 3 notifies the log recording system 5 of the start of the “write to file” transaction and starts the transaction before starting the processing. Provide transaction information for
[0050]
Next, the log recording system 5 assigns a sequence number and a transaction ID to this transaction, and records this in the transaction entry. Also, a file ID given by the file system 3 is acquired and recorded. Further, the log recording system 5 acquires the following transaction individual information from the file system 3 and records it in the transaction entry. That is, the following contents are recorded as transaction information.
"Type" = "WriteFile" (information indicating that writing to a file)
・ Sequence number, file ID, transaction ID
・ Individual transaction information ((a)-(e) below)
(A) Identification information of the file to be written
(A-1) Cluster number of parent directory
(A-2) Attributes of parent directory,
(A-3) Position of directory entry (within parent directory)
(B) Size of file to be written before writing
(C) Write size
(D) Last cluster number before writing the file to be written
(E) File position before writing of file to be written
[0051]
Please note that this transaction has been completed
a. Completion of file close request from application
b. Completing the file flush
It is performed along with.
[0052]
While the log recording system 5 records the start and completion of the transaction as described above, the recovery manager 7 operates at the time of system startup and the like, and writes a “write to file” transaction in the journal file JF. If an incomplete one is found, recovery processing is performed in the following procedure.
(Recovery procedure)
(1) Unused clusters (lost clusters) are returned to unused state while being allocated.
(2) Regarding the cluster chain of the file to be written, inconsistency among a plurality of FATs is solved by copying the first FAT (FAT11) to the subsequent FAT (FAT12).
(3) Terminate the unterminated cluster chain.
(4) Match the directory entry with the FAT. Specifically, the cluster chain to be written is truncated according to the directory entry, or the file size is truncated according to the number of cluster chains of the file to be written.
It should be noted that returning the lost cluster of (1) to unused is actually necessary for the transaction of “assignment of a cluster to a file” executed as an internal process of the transaction of “writing to a file”. (See 3.2.1 "Assigning clusters to files").
[0053]
As an example, the flow of log recording by the log recording system 5 and the flow of recovery processing by the recovery manager 7 will be described assuming that the application has issued an operation request for writing to a file with the file name of file B. FIG. 8 is a flowchart showing a flow of log recording by the application, the file system 3 and the log recording system 5 in this case. When the application requests "write to file B" to the file system 3 (S31), the file system 3 notifies the log recording system that a transaction "write to file B" has occurred (S32). . At this time, the file system 3 provides the log recording system 5 with transaction information relating to “writing to file B”.
[0054]
Next, the log recording system 5 writes, in a predetermined transaction entry of the journal file JF, the fact that "writing to the file B" has been started, together with the transaction information (S33). On the other hand, the file system 3 processes "writing to file B" (S34). When “writing to file B” is completed by a file close request or the like from the application (S35), the log recording system 5 responds to the notification from the file system 3 and the transaction entry corresponding to “writing to file B”. To change the transaction state from "start" to "complete" (S36).
[0055]
FIG. 9 shows a case where the process of “writing to file B” is interrupted due to a power failure or the like. In this case, the process of “writing to file B” on the disk device HD1 is halfway completed, and the disk device HD1 is in an abnormal state. A typical example is a state where only the management area of the disk device HD1 has been updated and the data area has not been updated, that is, a state where inconsistency has occurred between the management area and the data area. FIG. 10 shows a flow of the operation of the recovery manager 7 when the system is started from the interrupted state as shown in FIG. When the system is started, the application initializes the file system 3 (S41). With this as a trigger, the recovery manager 7 operates, and first searches the journal file JF to check whether there is any incomplete transaction (S42). Since the "write to file B" is interrupted as shown in FIG. 9, it is found that the "write to file B" transaction is not completed (S42: YES). If no uncompleted transaction is found (S42: NO), the recovery process ends.
[0056]
Next, the recovery manager 7 cancels the “writing to the file B” based on the transaction information and returns to the state before the start of the transaction according to the above-described recovery processing procedure (S43). When the cancellation processing is completed, the “state” of the transaction entry that has not been completed is set to “completed” (S44).
[0057]
3.2.1 Assigning clusters to files
The record in the journal file JF that the transaction "assign cluster to file" has started is:
a. Before allocating the first cluster of files
b. Before assigning clusters for adding cluster links
Done in
At such a timing, the file system 3 notifies the log recording system 5 of the start of the "assignment of clusters to files" transaction and provides transaction information on this transaction.
[0058]
Next, the log recording system 5 assigns a sequence number and a transaction ID to this transaction, and records this in the transaction entry. Also, a file ID given by the file system 3 is acquired and recorded. Further, the log recording system 5 acquires the following transaction individual information from the file system 3 and records it in the transaction entry. That is, the following contents are recorded as transaction information.
"Type" = "Allocluster" (information indicating that a cluster is assigned to a file)
・ Sequence number, file ID, transaction ID
・ Individual transaction information ((a)-(b) below)
(A) Identification information of the target file
(A-1) Cluster number of parent directory
(A-2) Attributes of parent directory,
(A-3) Position of directory entry (within parent directory)
(A-4) First cluster number
(B) List of assigned cluster numbers
[0059]
Please note that this transaction has been completed
a-1. When the assigned cluster is set in the directory entry of the target file, and the directory entry and the FAT are flushed.
a-2. When the file to which the assigned cluster belongs is closed.
b-1. When the cluster connection is completed and the FAT is flushed.
b-2. When the file to which the assigned cluster belongs is closed.
Done in
[0060]
The following recovery processing is performed based on the transaction information as part of the recovery processing of “writing to a file”.
(Recovery procedure)
(1) Return the allocated cluster to unused.
[0061]
3.3 Deleting files and directories
The record in the journal file JF that the transaction of file / directory deletion has started is:
a. Request to delete files from application
b. Request directory removal from application
Is performed in response to the occurrence of
When the file system 3 receives a request for “deletion of a file directory” from an application, the file system 3 notifies the log recording system 5 of the start of a transaction of “deletion of a file directory”, and transmits transaction information on this transaction. provide.
[0062]
Next, the log recording system 5 assigns a sequence number and a transaction ID to this transaction, and records this in the transaction entry. Also, a file ID given by the file system 3 is acquired and recorded. Further, the log recording system 5 acquires the following transaction individual information from the file system 3 and records it in the transaction entry. That is, the following contents are recorded as transaction information.
"Type" = "DeleteFile" (information indicating deletion to file)
・ Sequence number, file ID, transaction ID
・ Individual transaction information ((a) below)
(A) Identification information of the file to be deleted
(A-1) Cluster number of parent directory
(A-2) Attributes of parent directory
(A-3) Location of directory entry
(A-4) Attributes of target file
(A-5) First cluster number of the target file
(A-6) Number of directory entries of LFN (long file name) of target file
(A-7) Checksum of alias (alias) of target file
[0063]
Please note that this transaction has been completed
a. Completion of file / directory deletion processing
It is performed along with.
[0064]
While the log recording system 5 records the start and completion of the transaction as described above, the recovery manager 7 operates at the time of system startup or the like, and stores “delete file / directory” in the journal file JF. If an incomplete transaction is found, recovery processing is performed in the following procedure.
(Recovery procedure)
(1) The file / directory to be deleted is deleted again.
[0065]
The flow of the operation for recovering the “delete file directory” transaction is to find an incomplete transaction and perform recovery by re-executing the transaction. For “create file directory”, refer to FIGS. This is the same as the case described above.
[0066]
3.4 Renaming files and directories
The record in the journal file JF that the file / directory rename transaction has started is:
a. Request of file name change from application
Is performed in response to the occurrence of
When the file system 3 receives a request for "rename of a file directory" from the application, the file system 3 notifies the log recording system 5 of the start of the transaction for renaming the file directory, and transmits the transaction information on the transaction. provide.
[0067]
Next, the log recording system 5 assigns a sequence number and a transaction ID to this transaction, and records this in the transaction entry. Also, a file ID given by the file system 3 is acquired and recorded. Further, the log recording system 5 acquires the following transaction individual information from the file system 3 and records it in the transaction entry. That is, the following contents are recorded as transaction information.
"Type" = "RenameFile" (information indicating name change)
・ Sequence number, file ID, transaction ID
-Transaction individual information ((a), (b) below)
(A) Identification information of the file to be renamed
(A-1) Cluster number of parent directory
(A-2) Attributes of parent directory
(A-3) Location of directory entry
(A-4) Attributes of target file
(A-5) First cluster number of the target file
(A-6) Number of directory entries of LFN (long file name) of target file
(A-7) Check sum of alias of target file
(B) New file name of the target file
[0068]
Please note that this transaction has been completed
a. File / directory rename operation completed
It is performed along with.
[0069]
While the log recording system 5 records the start and the completion of the transaction as described above, the recovery manager 7 operates at the time of system startup or the like, and stores “file / directory name change” in the journal file JF. If an incomplete transaction is found in the transaction, recovery processing is performed in the following procedure.
(Recovery procedure)
(1) Re-execute the process of renaming the file / directory to be renamed.
[0070]
The flow of the operation for recovering the transaction of “file directory rename” is to find an incomplete transaction and perform recovery by re-executing the transaction, and refer to FIGS. This is the same as the case described above.
[0071]
3.5 File / directory information setting
The record in the journal file JF that the transaction of file / directory information setting has started is:
a. Request of file / directory information setting from application
Is performed in response to the occurrence of
When the file system 3 receives the request for “file directory information setting” from the application, the file system 3 notifies the log recording system 5 of the start of the “file directory information setting” transaction, and also executes a transaction related to this transaction. Provide information.
[0072]
Next, the log recording system 5 assigns a sequence number and a transaction ID to this transaction, and records this in the transaction entry. Also, a file ID given by the file system 3 is acquired and recorded. Further, the log recording system 5 acquires the following transaction individual information from the file system 3 and records it in the transaction entry. That is, the following contents are recorded as transaction information.
"Type" = "SetStatFile" (information indicating information setting)
・ Sequence number, file ID, transaction ID
-Transaction individual information ((a)-(d) below)
(A) Identification information of the file for which information is set
(A-1) Cluster number of parent directory
(A-2) Position of directory entry (within parent directory)
(B) Attributes of the target file
(C) Original attributes of the target file
(D) New attributes of the target file
[0073]
Please note that this transaction has been completed
a. Completion of file / directory information setting process
It is performed along with.
[0074]
While the log recording system 5 records the start and completion of the transaction as described above, the recovery manager 7 operates at the time of system startup and the like, and sets “file / directory information” in the journal file JF. If an incomplete transaction is found in the transaction, recovery processing is performed in the following procedure.
(Recovery procedure)
(1) Re-execute the information setting process for the file / directory to be set.
[0075]
The flow of operation when recovering the transaction of “file directory information setting” is to find an incomplete transaction and perform recovery by re-executing the transaction, and refer to FIGS. 5 to 7 regarding “file directory creation”. This is the same as the case described above.
[0076]
As described above, the file system 10 with a failure recovery function implements a function of recovering an interrupted file operation request. Various modifications can be made to the file system 10 with the above-described failure recovery function. For example, the transaction described above as a target of the log recording and recovery processing is shown as an example, and other transactions that involve a change in the contents of the disk device may be logged in the same manner as described above. Recording and recovery processing functions can be applied.
[0077]
Since it is only necessary to know that the transaction has been started and completed, the record of the “state” of the transaction may have various forms regarding the expression of the “state”. For example, the completion of the transaction may be expressed in a form of deleting the contents of the transaction entry, in addition to rewriting the state from the start to the completion.
[0078]
Further, in the above embodiment, it is described that one disk device is under the management of the file system 3, but the file system 3 manages a plurality of file devices in the same manner as a general file system. Since it can be configured as follows, it is possible to realize a configuration in which a file device for log recording (that is, a target for failure recovery) and a file device for storing a journal file are separate. You can also. For example, assuming that there is a disk device and a flash memory under the management of the file system 3 and the log recording target is a disk device, the journal file can be stored in the flash memory.
[0079]
It is possible to mix different types of file systems in one computer system. Therefore, it is also possible to realize a configuration in which a file system to be recorded in a log (that is, a target of failure recovery) and a file system to store a journal file are different from each other. That is, when the file system A and the file system B are present in one computer system and the file system A is to be recorded in a log (that is, the failure recovery is performed on the file system A), the journal file is stored in the file system A. Put under the control of B. In this case, the journal file is created as a normal file in the file system B, and transaction information on the file system A is recorded in the journal file as a transaction in the file system A occurs.
[0080]
As shown in FIG. 1, in the file system 10 with the failure recovery function, the log recording function by the log recording system 5 is performed by notifying the start of a transaction from the file system 3 and the recovery function by the recovery manager 7. Is performed in response to a file system initialization request from an application. This configuration makes it easy to add a failure recovery function to an existing file system, and makes it possible to avoid a decrease in the reliability of the existing file system due to the addition of the failure recovery function.
[0081]
The scope of the present invention includes a method and a program for realizing the functions of the file system with a failure recovery function described above, and information devices in which such functions are realized.
[0082]
【The invention's effect】
As described above, according to the present invention, the journal file JF is created as a file under the management of the file system, and the content of the log record is only information relating to the update of the metadata of the file to be operated. . Therefore, log recording can be simplified, and a reduction in the processing speed of file operations associated with log recording can be avoided. The writing of the log to the journal file is performed so that the metadata of the journal file itself is not updated. Therefore, the processing speed of writing the log to the journal file can be increased.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a functional configuration of a file management program with a failure recovery function according to an embodiment of the present invention.
FIG. 2 is a diagram showing a management structure of a disk device using an FAT type file system.
FIG. 3 is a diagram showing a configuration of a journal file managed by the file management program with a failure recovery function of FIG. 1;
FIG. 4 is a diagram showing a configuration of a transaction entry in the journal file of FIG. 3;
FIG. 5 is a flowchart illustrating an operation of recording a log when a file is created.
FIG. 6 is a diagram illustrating a case where processing is interrupted in the file creation processing of FIG. 5;
FIG. 7 is a flowchart showing the operation of the recovery process after the file creation process is interrupted as shown in FIG.
FIG. 8 is a flowchart illustrating an operation of recording a log when writing to a file is performed.
FIG. 9 is a diagram illustrating a case where the process of writing to the file in FIG. 8 is interrupted;
FIG. 10 is a flowchart showing the operation of the recovery process after the file creation process is interrupted as in FIG.
[Explanation of symbols]
3 File system
5 Log recording system
7 Recovery Manager
10 File system with failure recovery function
17 Transaction entry
21 states
22 Sequence number
23 Transaction Type
24 Transaction ID
25 File ID
27 Transaction individual information

Claims (18)

ファイル操作要求のログを記録する方法であって、
該ファイル操作要求の対象となるファイルを管理するファイルシステムの管理下で作成された所定のファイルをログファイルと規定し、
アプリケーションプログラムからファイル操作要求があった際に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第1の更新情報を、前記ログファイルについての前記ファイル装置上での管理領域の更新が生じない所定の条件で前記ログファイルに書き込むこと、
を特徴とするログ記録方法。
A method of recording a file operation request log,
A predetermined file created under the management of the file system that manages the file to be subjected to the file operation request is defined as a log file,
When a file operation request is received from an application program, the type of the file operation request and the first update information relating to the update of the management area on the file device for the file targeted for the file operation request are stored in the log. Writing to the log file under predetermined conditions that do not cause an update of the management area on the file device for a file,
A log recording method characterized by the following.
前記所定の条件は、
前記ログファイル内を、1つのファイル操作要求に関するログを記録するためのエントリを複数含んだ構成とし、該複数のエントリを巡回使用することを含む、請求項1に記載のログ記録方法。
The predetermined condition is:
2. The log recording method according to claim 1, wherein the log file includes a plurality of entries for recording a log relating to one file operation request, and the plurality of entries are used cyclically.
前記所定の条件は、さらに、
前記複数のエントリのうち使用中のエントリに関するファイル操作を強制的に完了させることにより、前記使用中のエントリを解放させて使用することを含む、請求項2に記載のログ記録方法。
The predetermined condition further includes:
3. The log recording method according to claim 2, further comprising: forcibly completing a file operation on an in-use entry among the plurality of entries to release and use the in-use entry. 4.
前記所定の条件は、前記ログファイルを固定サイズとして使用することである、請求項1に記載のログ記録方法。The log recording method according to claim 1, wherein the predetermined condition is to use the log file as a fixed size. 前記複数のエントリのサイズはすべて等しい所定のサイズである、請求項2または3に記載のログ記録方法。4. The log recording method according to claim 2, wherein the sizes of the plurality of entries are all equal to a predetermined size. 前記複数のエントリは、それぞれ所定の単位サイズの整数倍のサイズである、請求項2または請求項3に記載のログ記録方法。4. The log recording method according to claim 2, wherein each of the plurality of entries has a size that is an integral multiple of a predetermined unit size. 前記エントリの所定のサイズは、前記ログファイルが格納されるファイル装置に対する1回の不可分のアクセスに対応するサイズである、請求項5に記載のログ記録方法。6. The log recording method according to claim 5, wherein the predetermined size of the entry is a size corresponding to one inseparable access to a file device in which the log file is stored. 前記エントリの所定のサイズは、前記ファイル装置の1セクタサイズと等しい、請求項7に記載のログ記録方法。8. The log recording method according to claim 7, wherein the predetermined size of the entry is equal to one sector size of the file device. 前記エントリの所定のサイズは、前記ファイル装置の1セクタサイズ以下であり、かつ、1つのセクタ内には1つのエントリのみ格納されるように前記複数のエントリは前記ファイル装置内に格納される、請求項7に記載のログ記録方法。The predetermined size of the entry is equal to or less than one sector size of the file device, and the plurality of entries are stored in the file device so that only one entry is stored in one sector. The log recording method according to claim 7. 前記ファイルシステムは、FAT型ファイルシステムであり、前記管理領域は、FATおよびディレクトリについての情報を含む、請求項1から請求項9のいずれかに記載のログ記録方法。The log recording method according to any one of claims 1 to 9, wherein the file system is a FAT type file system, and the management area includes information on a FAT and a directory. ファイル操作要求のログを記録する方法であって、
該ファイル操作要求の対象となるファイルを管理するファイルシステムの管理下で作成された所定のファイルをログファイルと規定し、
アプリケーションプログラムからファイル操作要求があった際に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第1の更新情報を、前記ログファイルに対する書き込み回数が1回で終了するように前記ログファイルに書き込むこと、
を特徴とするログ記録方法。
A method of recording a file operation request log,
A predetermined file created under the management of the file system that manages the file to be subjected to the file operation request is defined as a log file,
When a file operation request is received from an application program, the type of the file operation request and the first update information relating to the update of the management area on the file device for the file targeted for the file operation request are stored in the log. Writing to the log file such that the number of times of writing to the file is one, and
A log recording method characterized by the following.
ファイル操作要求のログを記録する方法であって、
第1のファイルシステムの管理下で作成された所定のファイルをログファイルと規定し、
前記ログを記録する対象とする第2のファイルシステムに対してアプリケーションプログラムからファイル操作要求があった際に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについての前記第2のファイルシステムの管理下のファイル装置上での管理領域の更新に関する更新情報を、前記ログファイルについての前記第1のファイルシステムの管理下のファイル装置上での管理領域の更新が生じない所定の条件で前記ログファイルに書き込むこと、
を特徴とするログ記録方法。
A method of recording a file operation request log,
A predetermined file created under the management of the first file system is defined as a log file,
When a file operation request is made from an application program to a second file system for which the log is to be recorded, the type of the file operation request and the second The update information relating to the update of the management area on the file device managed by the file system of the first file system, and updating the update information of the management area on the file device managed by the first file system for the log file. Writing to the log file under conditions,
A log recording method characterized by the following.
コンピュータ上でファイル管理をするためのプログラムであって、
該コンピュータ上で動作するアプリケーションプログラムからファイル操作要求を受け付けた際に、請求項1から請求項12のいずれかに記載のログ記録方法で該ファイル操作要求に関するログをログファイルに書き込むログ記録プログラムと、
システム起動の際に前記ログファイルを調べ、完了していないファイル操作要求がある場合に当該ファイル操作要求の回復処理を行う回復プログラムと、
を備えたファイル管理プログラム。
A program for managing files on a computer,
13. A log recording program which, when receiving a file operation request from an application program operating on the computer, writes a log relating to the file operation request to a log file by the log recording method according to any one of claims 1 to 12. ,
A recovery program that examines the log file at the time of system startup, and performs a recovery process of the file operation request when there is an incomplete file operation request;
File management program with.
コンピュータ上でファイル管理をするためのファイル管理プログラムであって、ログ記録プログラムと回復プログラムとを備え、
前記ファイル管理プログラムは、
該コンピュータ上で動作するアプリケーションプログラムからファイル操作要求を受け付けた際に、前記ログ記録プログラムに対して、該ファイル操作要求の処理が開始されたことを通知すると共に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第1の更新情報を提供する機能と、
該ファイル操作要求の処理が完了した際に、前記ログ記録プログラムに対して該ファイル操作要求が完了したことを通知する機能と、を有し、
前記ログ記録プログラムは、
前記ファイル操作要求の処理が開始されたことの通知を受けた際に、予め前記ファイル管理プログラムの管理下のファイルとして作成しておいたログファイルに、取得した前記ファイル操作要求の種別および前記第1の更新情報と共に、前記ファイル操作要求の処理が開始されたことを記録する機能と、
前記ファイル操作要求の処理が完了したことの通知を受けた際に、前記ログファイルに所定の完了の記録を行う機能と、を有し、
前記回復プログラムは、
システム起動の際に前記ログファイルを調べ、完了していないファイル操作要求がある場合に当該ファイル操作要求を前記ログファイルの内容に基づいて回復処理する機能を有すること、
を特徴とする障害回復機能付きファイル管理プログラム。
A file management program for performing file management on a computer, comprising a log recording program and a recovery program,
The file management program includes:
Upon receiving a file operation request from an application program operating on the computer, the log recording program notifies the log recording program that the processing of the file operation request has started, and the type of the file operation request, A function of providing first update information relating to update of a management area on a file device for a file targeted for the file operation request;
Having a function of notifying the log recording program that the file operation request has been completed, when the processing of the file operation request is completed,
The log recording program comprises:
Upon receiving the notification that the processing of the file operation request has been started, the type of the acquired file operation request and the number of the obtained file operation request are added to a log file created in advance as a file under the management of the file management program. A function of recording that the processing of the file operation request has been started, together with the update information of No. 1;
When receiving a notification that the processing of the file operation request is completed, a function of recording a predetermined completion in the log file,
The recovery program,
Examining the log file at the time of system startup, having a function of performing a recovery process based on the content of the log file, if there is an incomplete file operation request,
A file management program with a failure recovery function, characterized in that:
前記ログ記録プログラムによる前記ログファイルへの情報の書き込みは、前記ログファイルについての前記ファイル装置上での管理領域の更新が生じない所定の条件で行われること、を特徴とする請求項14に記載の障害回復機能付きファイル管理プログラム。15. The method according to claim 14, wherein the writing of information to the log file by the log recording program is performed under a predetermined condition that does not cause an update of a management area of the log file on the file device. File management program with disaster recovery function. 請求項1から請求項12のいずれかに記載の方法をコンピュータで実行するためのソフトウェア。Software for executing the method according to claim 1 on a computer. 請求項1から請求項12のいずれかに記載の方法をコンピュータにより読み取り実行可能なプログラムとして記録した記録媒体。13. A recording medium on which the method according to claim 1 is recorded as a program readable by a computer. 請求項1から請求項12のいずれかに記載の方法を実行する制御手段を備えた情報機器。An information device comprising control means for executing the method according to claim 1.
JP2002236409A 2002-08-14 2002-08-14 Log recording method, file management program, and information device Pending JP2004078461A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002236409A JP2004078461A (en) 2002-08-14 2002-08-14 Log recording method, file management program, and information device
PCT/JP2003/010329 WO2004017205A1 (en) 2002-08-14 2003-08-13 Log recording method, file management program, and information device
AU2003257842A AU2003257842A1 (en) 2002-08-14 2003-08-13 Log recording method, file management program, and information device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002236409A JP2004078461A (en) 2002-08-14 2002-08-14 Log recording method, file management program, and information device

Publications (1)

Publication Number Publication Date
JP2004078461A true JP2004078461A (en) 2004-03-11

Family

ID=31884410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002236409A Pending JP2004078461A (en) 2002-08-14 2002-08-14 Log recording method, file management program, and information device

Country Status (3)

Country Link
JP (1) JP2004078461A (en)
AU (1) AU2003257842A1 (en)
WO (1) WO2004017205A1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005096154A1 (en) * 2004-03-31 2005-10-13 Sanyo Electric Co., Ltd. Information recording method and information recording/reproduction device
JP2008305420A (en) * 2008-07-14 2008-12-18 Sky Kk Network management system and network management program
JP2010015556A (en) * 2008-07-02 2010-01-21 Sap Portals Israel Ltd Method and device for transaction processing conscious of distributed application context
JP2010271977A (en) * 2009-05-22 2010-12-02 Fujitsu Ten Ltd Data writing apparatus, data writing method and program
US8270813B2 (en) 2006-09-04 2012-09-18 Sony Corporation Apparatus, method and computer program for processing information
JP5301666B2 (en) * 2009-07-02 2013-09-25 三菱電機株式会社 Data recording apparatus and audio system
WO2014170983A1 (en) * 2013-04-18 2014-10-23 株式会社日立製作所 Computer system and asynchronous replication management method
JP2017021576A (en) * 2015-07-10 2017-01-26 日本電気株式会社 Control information setting device, control information setting method, and control information setting program
JP2019135637A (en) * 2018-02-05 2019-08-15 北京智明星通科技股▲ふん▼有限公司Beijing Elex Technology Co., Ltd. Information processing method, information processing device, server, and computer-readable recording medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7591019B1 (en) 2009-04-01 2009-09-15 Kaspersky Lab, Zao Method and system for optimization of anti-virus scan
CN103885726B (en) * 2014-03-20 2017-07-21 东蓝数码股份有限公司 A kind of efficient multithreading daily record wiring method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03137741A (en) * 1989-10-24 1991-06-12 Nec Corp Transaction phase control device
JP2667039B2 (en) * 1990-05-18 1997-10-22 株式会社東芝 Data management system and data management method
JPH08314784A (en) * 1995-05-19 1996-11-29 Toshiba Corp File management device
JP2001209567A (en) * 2000-01-27 2001-08-03 Nec Eng Ltd Journal writing system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4799404B2 (en) * 2004-03-31 2011-10-26 三洋電機株式会社 Information recording method, information recording / reproducing apparatus, and information recording / reproducing apparatus
JPWO2005096154A1 (en) * 2004-03-31 2008-02-21 三洋電機株式会社 Information recording method, information recording / reproducing apparatus, and information recording / reproducing apparatus
WO2005096154A1 (en) * 2004-03-31 2005-10-13 Sanyo Electric Co., Ltd. Information recording method and information recording/reproduction device
US7840541B2 (en) 2004-03-31 2010-11-23 Sanyo Electric Co., Ltd. Information recording method and information recording/reproduction device
US8270813B2 (en) 2006-09-04 2012-09-18 Sony Corporation Apparatus, method and computer program for processing information
JP2010015556A (en) * 2008-07-02 2010-01-21 Sap Portals Israel Ltd Method and device for transaction processing conscious of distributed application context
JP2008305420A (en) * 2008-07-14 2008-12-18 Sky Kk Network management system and network management program
JP2010271977A (en) * 2009-05-22 2010-12-02 Fujitsu Ten Ltd Data writing apparatus, data writing method and program
JP5301666B2 (en) * 2009-07-02 2013-09-25 三菱電機株式会社 Data recording apparatus and audio system
WO2014170983A1 (en) * 2013-04-18 2014-10-23 株式会社日立製作所 Computer system and asynchronous replication management method
JP2017021576A (en) * 2015-07-10 2017-01-26 日本電気株式会社 Control information setting device, control information setting method, and control information setting program
JP2019135637A (en) * 2018-02-05 2019-08-15 北京智明星通科技股▲ふん▼有限公司Beijing Elex Technology Co., Ltd. Information processing method, information processing device, server, and computer-readable recording medium
CN110209642A (en) * 2018-02-05 2019-09-06 北京智明星通科技股份有限公司 Method, apparatus, server and the computer-readable medium of information processing

Also Published As

Publication number Publication date
AU2003257842A1 (en) 2004-03-03
WO2004017205A1 (en) 2004-02-26

Similar Documents

Publication Publication Date Title
US8732121B1 (en) Method and system for backup to a hidden backup storage
US8074035B1 (en) System and method for using multivolume snapshots for online data backup
US8239648B2 (en) Reclamation of thin provisioned disk storage
JP4104586B2 (en) File system having file management function and file management method
US9880759B2 (en) Metadata for data storage array
US8099396B1 (en) System and method for enhancing log performance
AU693868B2 (en) Data storage management for network interconnected processors
US7363540B2 (en) Transaction-safe FAT file system improvements
JP4809040B2 (en) Storage apparatus and snapshot restore method
WO2013035295A1 (en) Storage system
US20070136387A1 (en) Transaction-Safe FAT Files System
EP0566966A2 (en) Method and system for incremental backup copying of data
US10152416B2 (en) Buffer cache apparatus, journaling file system and journaling method for incorporating journaling features within non-volatile buffer cache
US20070061540A1 (en) Data storage system using segmentable virtual volumes
CZ9701859A3 (en) Computer data storage
US20080172423A1 (en) Hsm control program, hsm control apparatus, and hsm control method
JP5012628B2 (en) Memory database, memory database system, and memory database update method
JP2010535379A (en) Input/output control method and device optimized for flash memory
CN106528338B (en) A remote data replication method, storage device and storage system
JP2004078461A (en) Log recording method, file management program, and information device
KR20060007435A (en) Manage relationships between one target volume and one source volume
US9152823B2 (en) Systems, methods, and computer readable media for computer data protection
US6823348B2 (en) File manager for storing several versions of a file
CN100410938C (en) Method and system for clearing metadata tracks in a storage system
US10712941B2 (en) Leveraging temporal locality to link files together and bypass accessing a central inode list