(57)【要約】【課題】ファイルシステムが持つ通常のファイル操作の性能、信頼性に影響を及ぼさない様に構成され、かつ必要十分な障害回復性能を有する障害回復機能付きファイルシステムを実現する。【解決手段】ジャーナルファイルを、ログの記録を行う対象とするファイルシステムの管理下のファイルとして作成しておく。そして、アプリケーションプログラムからファイル操作要求があった際に、ファイル操作要求の処理が開始されること、および対象のファイルについてのファイル操作要求の処理に伴うメタデータの更新情報をジャーナルファイルに記録しておく。システム起動時にジャーナルファイルを調べ、未完了のファイル操作の処理が見つかった場合には、ジャーナルファイルに記録された情報に基づいて、当該ファイル操作の回復処理を行う。【選択図】　　図１
2004078461.tif 000002
【特許請求の範囲】
【請求項１】
ファイル操作要求のログを記録する方法であって、
該ファイル操作要求の対象となるファイルを管理するファイルシステムの管理下で作成された所定のファイルをログファイルと規定し、
アプリケーションプログラムからファイル操作要求があった際に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第１の更新情報を、前記ログファイルについての前記ファイル装置上での管理領域の更新が生じない所定の条件で前記ログファイルに書き込むこと、
を特徴とするログ記録方法。
【請求項２】
前記所定の条件は、
前記ログファイル内を、１つのファイル操作要求に関するログを記録するためのエントリを複数含んだ構成とし、該複数のエントリを巡回使用することを含む、請求項１に記載のログ記録方法。
【請求項３】
前記所定の条件は、さらに、
前記複数のエントリのうち使用中のエントリに関するファイル操作を強制的に完了させることにより、前記使用中のエントリを解放させて使用することを含む、請求項２に記載のログ記録方法。
【請求項４】
前記所定の条件は、前記ログファイルを固定サイズとして使用することである、請求項１に記載のログ記録方法。
【請求項５】
前記複数のエントリのサイズはすべて等しい所定のサイズである、請求項２または３に記載のログ記録方法。
【請求項６】
前記複数のエントリは、それぞれ所定の単位サイズの整数倍のサイズである、請求項２または請求項３に記載のログ記録方法。
【請求項７】
前記エントリの所定のサイズは、前記ログファイルが格納されるファイル装置に対する１回の不可分のアクセスに対応するサイズである、請求項５に記載のログ記録方法。
【請求項８】
前記エントリの所定のサイズは、前記ファイル装置の１セクタサイズと等しい、請求項７に記載のログ記録方法。
【請求項９】
前記エントリの所定のサイズは、前記ファイル装置の１セクタサイズ以下であり、かつ、１つのセクタ内には１つのエントリのみ格納されるように前記複数のエントリは前記ファイル装置内に格納される、請求項７に記載のログ記録方法。
【請求項１０】
前記ファイルシステムは、ＦＡＴ型ファイルシステムであり、前記管理領域は、ＦＡＴおよびディレクトリについての情報を含む、請求項１から請求項９のいずれかに記載のログ記録方法。
【請求項１１】
ファイル操作要求のログを記録する方法であって、
該ファイル操作要求の対象となるファイルを管理するファイルシステムの管理下で作成された所定のファイルをログファイルと規定し、
アプリケーションプログラムからファイル操作要求があった際に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第１の更新情報を、前記ログファイルに対する書き込み回数が１回で終了するように前記ログファイルに書き込むこと、
を特徴とするログ記録方法。
【請求項１２】
ファイル操作要求のログを記録する方法であって、
第１のファイルシステムの管理下で作成された所定のファイルをログファイルと規定し、
前記ログを記録する対象とする第２のファイルシステムに対してアプリケーションプログラムからファイル操作要求があった際に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについての前記第２のファイルシステムの管理下のファイル装置上での管理領域の更新に関する更新情報を、前記ログファイルについての前記第１のファイルシステムの管理下のファイル装置上での管理領域の更新が生じない所定の条件で前記ログファイルに書き込むこと、
を特徴とするログ記録方法。
【請求項１３】
コンピュータ上でファイル管理をするためのプログラムであって、
該コンピュータ上で動作するアプリケーションプログラムからファイル操作要求を受け付けた際に、請求項１から請求項１２のいずれかに記載のログ記録方法で該ファイル操作要求に関するログをログファイルに書き込むログ記録プログラムと、
システム起動の際に前記ログファイルを調べ、完了していないファイル操作要求がある場合に当該ファイル操作要求の回復処理を行う回復プログラムと、
を備えたファイル管理プログラム。
【請求項１４】
コンピュータ上でファイル管理をするためのファイル管理プログラムであって、ログ記録プログラムと回復プログラムとを備え、
前記ファイル管理プログラムは、
該コンピュータ上で動作するアプリケーションプログラムからファイル操作要求を受け付けた際に、前記ログ記録プログラムに対して、該ファイル操作要求の処理が開始されたことを通知すると共に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第１の更新情報を提供する機能と、
該ファイル操作要求の処理が完了した際に、前記ログ記録プログラムに対して該ファイル操作要求が完了したことを通知する機能と、を有し、
前記ログ記録プログラムは、
前記ファイル操作要求の処理が開始されたことの通知を受けた際に、予め前記ファイル管理プログラムの管理下のファイルとして作成しておいたログファイルに、取得した前記ファイル操作要求の種別および前記第１の更新情報と共に、前記ファイル操作要求の処理が開始されたことを記録する機能と、
前記ファイル操作要求の処理が完了したことの通知を受けた際に、前記ログファイルに所定の完了の記録を行う機能と、を有し、
前記回復プログラムは、
システム起動の際に前記ログファイルを調べ、完了していないファイル操作要求がある場合に当該ファイル操作要求を前記ログファイルの内容に基づいて回復処理する機能を有すること、
を特徴とする障害回復機能付きファイル管理プログラム。
【請求項１５】
前記ログ記録プログラムによる前記ログファイルへの情報の書き込みは、前記ログファイルについての前記ファイル装置上での管理領域の更新が生じない所定の条件で行われること、を特徴とする請求項１４に記載の障害回復機能付きファイル管理プログラム。
【請求項１６】
請求項１から請求項１２のいずれかに記載の方法をコンピュータで実行するためのソフトウェア。
【請求項１７】
請求項１から請求項１２のいずれかに記載の方法をコンピュータにより読み取り実行可能なプログラムとして記録した記録媒体。
【請求項１８】
請求項１から請求項１２のいずれかに記載の方法を実行する制御手段を備えた情報機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファイル装置に対する中断されたファイル操作の処理を回復させる為の障害回復機能に関する。
【０００２】
【従来の技術】
コンピュータ上で、ファイル装置に記録されるファイルを管理する為の方式や、そのような管理を行なうソフトウェアは、ファイルシステムと呼ばれる。ファイルシステムは、アプリケーションプログラムからのファイル操作要求を受けつけ、ファイル装置へのデータの保存等を効率的に行なう機能を担う。一般的に、ファイルの作成方法、ファイル装置上でのファイル管理の方法、管理領域とデータ領域の格納場所等を含むファイル管理に関する様々な事項がファイルシステムの種類によって、それぞれ定められている。
【０００３】
例えば、ＦＡＴファイルシステムと呼ばれるファイルシステムは、ファイル装置を、ファイルの管理情報を格納する領域（以下、本明細書において管理領域と記す）と、ファイルの内容を格納するデータ領域とに分けて管理する。管理領域は、ＦＡＴ（Ｆｉｌｅ　Ａｌｌｏｃａｔｉｏｎ　Ｔａｂｌｅ；ファイル割当て表）とディレクトリエントリと言われる情報を含み、ＦＡＴによってファイルを構成するデータの格納位置を管理し、また、ディレクトリエントリによってファイル名、ディレクトリ名、属性等を管理する。
【０００４】
一方、システムのクラッシュ時等にファイル操作処理が中断してしまいファイル装置の内容に不具合が発生したときすぐに復旧できるように、ファイリシステムに障害回復機能を持つことが要求される。ファイル装置の障害は例えば次のような場面で生じる。一般的に、ファイルシステムは、キャッシュ領域を持つことによって、アプリケーションプログラムに対して高速なファイル操作処理を提供している。したがって、突然システムがダウンすると、キャッシュ領域に記憶されていたファイル操作の内容がファイル装置上には反映されなかったり、或いは、ファイル装置上の管理領域の情報である、いわゆるメタデータと、データ領域にあるファイル内容のデータとの間に不整合が生じたりする。
【０００５】
このような障害に対処できるようにするために、現在、障害回復機能を実現するように構成されたファイルシステムが提案されつつある。
【０００６】
【発明が解決しようとする課題】
一般的には、アプリケーションプログラムからのファイル操作に関する内容をログとして記録することによって、障害回復機能を実現することができると考えることができる。しかしながら、障害回復機能は、通常のファイル操作の処理に負荷の増大を生じるものであるから、どのような内容をログとして記録するか、ログをどのような形式で、どこに記録するか等、ログ記録に関する様々な事項が、障害回復の性能、および、通常のファイル操作の性能（つまり、ログ記録に伴い処理負荷が増大し、通常のファイル操作に対する処理の性能がどの程度低下するか）に影響を与えることに注目しなければならない。したがって、通常のファイル操作の性能に可能な限り影響を与えることがなく、かつ必要十分な障害回復機能を実現したファイルシステムが望まれることになる。
【０００７】
また、障害回復機能を有するファイルシステムを構築しようとする場合、多くのケースでは、既に完成しているファイルシステムに障害回復機能を付加する形で行なうことになる。したがって、障害回復機能は、既存のファイルシステムの性能、信頼性に影響を与えない様に、できるだけシンプルな形式で既存のファイルシステムに付加できる構成であることが要求される。
【０００８】
本発明は以上のような事情に鑑みてなされたものである。すなわち、本発明は、ファイルシステムが持つ通常のファイル操作の性能、信頼性に影響を及ぼさない様に構成され、かつ必要十分な障害回復性能を有する障害回復機能付きファイルシステムを実現する為の方法、プログラム、およびこのような障害回復機能を備えた情報機器を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成する為に、まず、ファイル操作要求に関するログの記録は、ファイル操作要求の対象となるファイルを管理するファイルシステムの管理下で作成された所定のファイルであるログファイルに対して行うことにする。ログファイルは、ファイルシステムの管理下のファイルとして操作することができるので、ログ記録を簡略化することができる。そして、アプリケーションプログラムからファイル操作要求があった際に、ファイル操作要求の種別と、ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第１の更新情報をログファイルに記録することにする。つまり、ファイル操作要求の処理に伴う管理領域（いわゆる、メタデータ）の更新の内容のみをログ記録の対象とする。このことによってログ記録に伴うファイル操作処理の負荷の増大を抑制する。さらに、ログファイルへの情報の書き込みは、ログファイルについてのファイル装置上での管理領域の更新が生じない所定の条件で行う（請求項１）。通常のファイル書き込みの処理では、管理領域への書き込みと、データ領域への書き込みの少なくとも２回の書き込みが生じるが、上記構成によればログファイルへのログ記録のための書き込みでは、データ領域に対する書き込みのみとされるので、ログ記録の処理速度を高速化できる。
【００１０】
ログファイルへの書き込みの際に管理領域の更新が生じないようにする所定の条件は、例えば、該ログファイル内を、１つのファイル操作要求に関するログを記録するためのエントリを複数含んだ構成とし、該複数のエントリを巡回使用することである（請求項２）。
【００１１】
また、所定の条件として、さらに、複数のエントリのうち使用中のエントリに関するファイル操作を強制的に完了させることにより、使用中のエントリを解放させて使用するようにしておくのが好ましい（請求項３）。
【００１２】
或いは、所定の条件とは、ログファイルを固定サイズとして使用することであっても良い（請求項４）。
【００１３】
ログファイル内の複数のエントリのサイズはすべて等しい所定のサイズとなっているのが好ましい（請求項５）。このことにより、エントリの検索を高速に行うことが可能になる。また、ログファイル内でのエントリのフラグメテーションを回避し、エントリを効率よく巡回使用することが可能になる。
【００１４】
或いは、複数のエントリは、それぞれ所定の単位サイズの整数倍のサイズであっても良い（請求項６）。
【００１５】
また、エントリのファイル装置への書き込みが高速化できるように、エントリの所定のサイズは、ログファイルが格納されるファイル装置に対する１回の不可分のアクセスに対応するサイズであることが好ましい（請求項７）。エントリの所定のサイズは、ファイル装置の１セクタサイズと等しい構成であるのが好ましい（請求項８）。
【００１６】
或いは、エントリの所定のサイズは、ファイル装置の１セクタサイズ以下であり、かつ、１つのセクタ内には１つのエントリのみ格納される構成であっても良い（請求項９）。
【００１７】
なお、ファイルシステムは、ＦＡＴ型ファイルシステムであり、管理領域は、ＦＡＴおよびディレクトリについての情報を含む構成であっても良い（請求項１０）。
【００１８】
また、上記目的を達成する為に、ファイル操作要求の対象となるファイルを管理するファイルシステムの管理下で作成された所定のファイルであるログファイルに対してログの記録を行うこととする。そして、アプリケーションプログラムからファイル操作要求があった際に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第１の更新情報を、ログファイルに対する書き込み回数が１回で終了するようにログファイルに書き込むようにする（請求項１１）。この場合、ログ記録の処理速度を高速化できる。
【００１９】
また、上記目的を達成するため、第１のファイルシステムの管理下で作成された所定のファイルであるログファイルに対してログの記録を行うことにする。そして、ログ記録の対象とする（つまり、障害回復機能を付加する対象とする）第２のファイルシステムに対してアプリケーションプログラムからファイル操作要求があった際に、ファイル操作要求の種別と、ファイル操作要求の対象となるファイルについての第２のファイルシステムの管理下のファイル装置上での管理領域の更新に関わる更新情報を、ログファイルに記録することにする。すなわち、第２のファイルシステムにおけるファイル操作要求の処理に伴う管理領域（いわゆる、メタデータ）の更新情報のみをログ記録の対象とする。そして、ログファイルへの情報の書き込みは、ログファイルについての第１のファイルシステム管理下のファイル装置上での管理領域の更新が生じない所定の条件で行う（請求項１２）。以上の構成により、ログ記録の対象とするファイルシステムと、ログを記録しておく所定のファイルを管理するファイルシステムとを別々にすることができる。
【００２０】
なお、アプリケーションプログラムからファイル操作要求を受け付けた際に、以上で説明したログ記録方法で該ファイル操作要求に関するログをログファイルに書き込むログ記録プログラムと、システム起動の際にログファイルを調べ、完了していないファイル操作要求がある場合に当該ファイル操作要求の回復処理を行う回復プログラムとを備えるファイル管理プログラムを構成することができる（請求項１３）。
【００２１】
上記目的を達成するため、下記のような機能が付加されたファイル管理プログラムと、ログ記録プログラムと、回復プログラムとから、ファイル装置の障害回復機能を実現する（請求項１４）。
すなわち、ファイル管理プログラムには、
（１）コンピュータ上で動作するアプリケーションプログラムからファイル操作要求を受け付けた際に、ログ記録プログラムに対して、該ファイル操作要求の処理が開始されたことを通知すると共に、該ファイル操作要求の種別と、該ファイル操作要求の対象となるファイルについてのファイル装置上での管理領域の更新に関する第１の更新情報を提供する機能と、
（２）該ファイル操作要求の処理が完了した際に、ログ記録プログラムに対して該ファイル操作要求が完了したことを通知する機能とを付加する。
また、ログ記録プログラムは、以下の機能を持つように構成する。
（１）ファイル操作要求の処理が開始されたことの通知を受けた際に、予めファイル管理プログラムの管理下のファイルとして作成しておいたログファイルに、取得したファイル操作要求の種別および第１の更新情報と共に、ファイル操作要求の処理が開始されたことを記録する機能と、
（２）ファイル操作要求の処理が完了したことの通知を受けた際に、ログファイルに所定の完了の記録を行う機能。
また、回復プログラムは、以下の機能を持つように構成する。
（１）システム起動の際にログファイルを調べ、完了していないファイル操作要求がある場合に当該ファイル操作要求をログファイルの内容に基づいて回復処理する機能。
ファイル装置の障害回復機能を実現する為にファイル管理プログラムに対しては上記の機能を付加すれば良いので、ファイル管理プログラムに対して障害回復機能をシンプルな形式で付加することができる。したがって、ファイル管理プログラムへの障害回復機能の付加に伴い、通常のファイル操作要求の処理の信頼性や性能の低下を生じない様にすることができる。
【００２２】
この場合、ログ記録プログラムによるログファイルへの情報の書き込みは、ログファイルについてのファイル装置上での管理領域の更新が生じない所定の条件で行われることが好ましい（請求項１５）。
【００２３】
【発明の実施の形態】
図１は、本発明の実施形態である、障害回復機能付きファイル管理プログラム（以下、障害回復機能付きファイルシステム１０と記す）の機能の構成を表すブロック図である。障害回復機能付きファイルシステム１０において、ファイルシステム３はファイルシステムとしての機能を実現するプログラムに、ログ記録システム５はログ記録機能を実現するプログラムに、そして、回復処理マネージャ７は回復機能を実現するプログラムに対応する。障害回復機能付きファイルシステム１０は、コンピュータ、ＰＤＡ、携帯電話等の様々な情報機器に実装し、ディスク装置、フラッシュメモリなどの様々なタイプのファイル装置のファイルを管理するよう機能させることができる。ここでは、一例として、ファイル装置としてディスク装置を用いるものとしている。
【００２４】
以下では、障害回復機能付きファイルシステム１０の詳細について、次の項目順に説明を行う。
１．障害回復機能付きファイルシステム１０の全体構成
２．ジャーナルファイルＪＦの構成
３．ログ記録システム５および回復マネージャ７の動作の詳細
【００２５】
１．障害回復機能付きファイルシステムの全体構成
障害回復機能付きファイルシステム１０において、ファイルシステム３は、アプリケーションプログラム（以下、アプリケーションと記す）からのファイル操作要求を受け付けてファイル操作処理を実行する、ＦＡＴ型のファイルシステムとして一般的な機能を持つ。ファイルシステム３は、ファイル装置としてディスク装置ＨＤ１を管理する。ファイルシステム３は、一般的なファイルシステムにおける処理と同様に、アプリケーションからのファイル操作要求に対して、（１）アプリケーションからのファイル操作要求を主記憶上のキャッシュ領域に保存し、（２）アプリケーションからファイルクローズ要求があったとき、或いはキャッシュ領域がフルになったときなどに、キャッシュ領域の内容をディスク装置ＨＤ１上に反映する、という動作を行う。
【００２６】
ファイルシステム３は、ＦＡＴ（ファイル割当て表）によってファイル格納位置を管理するＦＡＴ型のファイルシステムであり、一般的なＦＡＴ型のファイルシステムと同様に、ディスク装置ＨＤ１を、ＦＡＴ領域１１および１２、ディレクトリ領域１３、およびファイルの内容のデータが格納されるデータ領域１５からなる構成として管理する（図２参照）。ファイルシステムとしての信頼性の向上のため、ＦＡＴはＦＡＴ１１および１２に二重化される。
【００２７】
ファイルシステム３には、ログ記録システム５および回復マネージャ７と連携して動作する為の機能が付加される。このことにより、アプリケーションからファイル操作要求が生じたときには、ファイル操作が開始したことと共に、ファイル操作要求の種別の情報と、ファイル操作要求の処理に伴う、ファイル操作要求の対象のファイルについてのディスク装置ＨＤ１上での管理領域の更新に関わる更新情報と（これらの情報を、以下、トランザクション情報と記す）が、ディスク装置ＨＤ１内の所定のファイルに記録される。トランザクション情報を記録する所定のファイルを、以下、ジャーナルファイルＪＦと記す。また、アプリケーションからのファイル操作要求が完了したときには、当該処理が完了したことがジャーナルファイルＪＦに記録される。アプリケーションからのファイル操作要求は、下記のようなものを含む。
・ファイル・ディレクトリの作成
・ファイルへの書込み
・ファイル・ディレクトリの削除
・ファイル・ディレクトリの名前変更
・ファイル・ディレクトリの情報設定
以下では、これらの個々のファイル操作の処理をトランザクションと呼ぶ。ファイルシステム３は、トランザクションが発生したとき、トランザクションが開始されたことをログ記録システム５に通知する。また、トランザクションが完了したときには、そのことをログ記録システム５に通知する。
【００２８】
ログ記録システム５は、トランザクションが開始されたことと共に、トランザクション情報をディスク装置ＨＤ１内に作成されたログ記録用のジャーナルファイルＪＦに記録するように機能する。ジャーナルファイルＪＦは、ファイルシステム３の管理下の通常のファイルとしてディスク装置ＨＤ１内に作成される。回復マネージャ７は、ファイル操作要求の処理が電源断などにより中断したような場合に、システムの起動時等に作動し、ジャーナルファイルＪＦを用いて、未完了となっているトランザクションを回復させるように機能する。
【００２９】
障害回復機能付きファイルシステム１０が提供する障害回復機能は、トランザクションの種類にしたがって次のような内容となる。
（ａ）「ファイル・ディレクトリの作成」、「ファイル・ディレクトリの削除」、「ファイル・ディレクトリの名前変更」、「ファイル・ディレクトリの情報設定」については、中断された処理を再実行して復旧させる。
（ｂ）「ファイルへの書込み」については、中断された処理を取り消して、「ファイルへの書込み」が行われる前の状態に復旧させる。
したがって、「ファイルへの書込み」のトランザクションに関しては、書込みデータについてはログ記録を行わず、管理情報（ＦＡＴ、およびディレクトリエントリの内容）についてのみログ記録を行うことになる。このことにより、ジャーナルファイルＪＦを小さなサイズに押さえること、障害回復機能の付加に伴いファイルシステムとしての書込み処理速度が低下しないようにすることが可能になる。
【００３０】
２．ジャーナルファイルＪＦの構成
ジャーナルファイルＪＦの構成、およびログ記録システム５によるジャーナルファイルＪＦの管理について説明する。ログ記録システム５は、トランザクションが開始されたことを、トランザクション情報と共にジャーナルファイルＪＦに記録し、トランザクションが完了したときには、当該トランザクションが完了したことをジャーナルファイルＪＦに記録する。
【００３１】
ジャーナルファイルＪＦの構成を図３に示す。ジャーナルファイルＪＦは、システムの起動時など、アプリケーションからファイルシステム３に対して初期化要求があったときに、未だ作成されていない場合にはファイルシステム３の管理下の通常のファイルとして作成される。１つのトランザクションに関するトランザクション情報は、１つのトランザクションエントリ１７に記録される。各トランザクションエントリ１７は、等しいサイズを持つ。
【００３２】
ジャーナルファイルＪＦに対するログ記録システム５からの書込み操作は、ジャーナルファイルＪＦ自身の管理領域の情報（つまり、メタデータ）の更新が発生しない様な所定の条件を満たすように行われる。所定の条件の一つは、所定のサイズとして作成されたジャーナルファイルＪＦ中でのトランザクションエントリの数をＮ個とすると、Ｎ個のトランザクションエントリを巡回使用することである。つまり、トランザクションが発生する度に、第１番目のトランザクションエントリから順に使用して行き、第Ｎ番目のトランザクションエントリを使用した後は、再び先頭に戻って、空きのトランザクションエントリを捜して用いるようにする。
【００３３】
また、所定の条件の一つは、ジャーナルファイルＪＦ内でトランンザクションエントリが使用中のもので一杯である場合には、いずれかのトランザクションエントリ（例えば、最も古いトランザクションが記録されているトランザクションエントリ）のトランザクションについて、ファイルシステム３が管理するキャッシュ領域の内容をディスク装置ＨＤ１に反映させることにより完了させ、それにより、トランザクションエントリを解放させることである。
【００３４】
上記のジャーナルファイルＪＦに対する取り扱いの所定の条件、（１）ジャーナルファイルを巡回使用すること、（２）ジャーナルファイルがフルになった場合は強制的に解放して使用することは、ジャーナルファイルＪＦのサイズを固定することを実現するための条件に対応している。ログ記録システム５は、ジャーナルファイルＪＦに対するトランザクション情報の書込みを行うときには、予め知ることのできるジャーナルファイルＪＦの格納位置に基づいて、ジャーナルファイルＪＦのデータ領域（つまり、トランザクションエントリ）に直接書込みを行うことができる。このことは、通常のファイルに対する情報の書込みは、管理領域（メタデータ）の更新のための書き込みと、データ領域の更新の為の書き込みとの少なくとも２回の書き込みが発生するが、ログ記録システム５によるジャーナルファイルＪＦへのログの書込みでは、データ領域への１回の書き込みしか発生しないことを意味している。このことは、ファイルシステムへの障害回復機能の追加に伴う、ファイル操作処理の処理速度の低下を抑えるという効果をもたらす。
【００３５】
トランザクションエントリ１７のサイズは、ディスク装置ＨＤ１の１セクタサイズ（例えば、５１２バイト）と等しくしている。１セクタサイズは、ディスク装置にアクセスする際の不可分のアクセス単位である。したがって、トランザクションエントリ１７への書込みは、ディスク装置ＨＤ１に対する１回の書き込みで完結させることができる。このことは、１つのトランザクションエントリに対する書込みが中断するようなことがあっても、壊れるのは１つのトランザクションエントリのみであるという効果をもたらす。他のトランザクションエントリにまで被害が及ぶことがない。
【００３６】
なお、トランザクションエントリ１７は、１セクタより小さいサイズであったとしても、１セクタ内には１つのトランザクションエントリのみ格納するという条件が満たされる場合には、上記の同様の効果が得られる。
【００３７】
また、トランザクションエントリ１７のサイズが一定であることは、トランザクションエントリ１７の検索を高速に行うこと、および、ジャーナルファイルＪＦのフラグメンテーション（断片化）を回避し、ジャーナルファイルＪＦの巡回使用を効率よく行うことを可能にする。なお、トランザクションエントリ検索の高速化、フラグメンテーションの回避という効果については、トランザクションエントリ１７のサイズが一定であれば、トランザクションエントリのサイズが１セクタと等しくない場合にも得られる。全てのトランザクションエントリのサイズが一定でなくても、それぞれトランザクションサイズが、単位サイズの整数倍になっているような場合には、トランザクションエントリの検索の高速化、およびフラグメンテーションの回避の効果を得ることができる。
【００３８】
図４は、１つのトランザクションエントリ１７内に記録されるトランザクション情報の詳細を示している。トランザクションエントリ内に記録されるトランザクション情報の内容について下記に示す。
（ａ）「状態」（符号２１）
「状態」には、トランザクションの状態として、“未使用”、“開始”、“完了”の３つのいずれかが記録される。それぞれ次のような意味を持つ。
“未使用”：このトランザクションエントリは使用されていない
“開始”：このエントリのトランザクションは開始した
“完了”：このエントリのトランザクションは完了した
（ｂ）「シーケンス番号」（符号２２）
ログ記録システム５がトランザクションに対して付与するトランザクションの通し番号。最小の値が、最も早く開始されたトランザクションであることを表す。
（ｃ）「トランザクションタイプ」（符号２３）
トランザクションの種別を示す名前を記載する。
（ｄ）「トランザクションＩＤ」（符号２４）
ログ記録システム５がトランザクションに対して付与するトランザクションの識別番号。
（ｅ）ファイルＩＤ（符号２５）
（ｆ）「トランザクション個別情報のサイズ」（符号２６）
（ｇ）「トランザクション個別情報」（符号２７）
トランザクションの個別の情報である。記録内容はトランザクションの種別によって異なる。
【００３９】
ログ記録システム５は、トランザクションについてのシーケンス番号やトランザクションＩＤの管理を行なっている。ログ記録システム５は、ファイルシステム３から通知によりトランザクションが開始されたことを知ると、当該トランザクションに対してシーケンス番号やトランザクションＩＤを付与すると共に、トランザクション情報を取得して、トランザクションエントリ１７に記録する。
【００４０】
３．ログ記録システム５および回復マネージャ７の動作の詳細
以下では、ログ記録システム５によるトランザクション情報の記録、および回復マネージャ７による回復処理の動作について、各トランザクション毎に項目を分けて説明する。
【００４１】
３．１　ファイル・ディレクトリ作成
ファイルまたはディレクトリの作成のトランザクションに対するトランザクションの開始の記録は、
ａ．　アプリケーションからのファイル作成要求
ｂ．　アプリケーションからのディレクトリ作成要求
の発生に伴って行われる。
ファイルシステム３はアプリケーションからこのような要求を受け取ると、処理を開始する前に、ログ記録システム５に対して、ファイル・ディレクトリ作成のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【００４２】
次に、ログ記録システム５は、このトランザクションに対する、シーケンス番号およびトランザクションＩＤの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム３により付与されたファイルＩＤも取得して記録する。さらに、ログ記録システム５は、下記のようなトランザクション個別情報をファイルシステム３から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」＝“ＣｒｅａｔｅＦｉｌｅ”（ファイル作成であることを示す情報）
・シーケンス番号、ファイルＩＤ、トランザクションＩＤ
・トランザクション個別情報（下記（ａ）−（ｅ））
（ａ）作成するファイルのＳＦＮ（ショートファイルネーム）
（ｂ）作成するファイルの属性
（ｃ）親ディレクトリのクラスタ番号
（ｄ）親ディレクトリの属性
（ｅ）作成するファイル名
【００４３】
なお、トランザクションが完了したことの記録は、
ａ−１．　アプリケーションからのファイルクローズ要求の処理完了
ａ−２．　ファイルのフラッシュ（ｆｌｕｓｈ）の完了
ｂ．　ファイル作成処理の完了
に伴って行われる。
なお、フラッシュ（ｆｌｕｓｈ）は、ファイルシステムが一般的に有する機能の一つであり、ファイルシステムが管理するキャッシュ領域の内容をファイル装置に反映する処理を表す。フラッシュ（ｆｌｕｓｈ）の処理は、アプリケーションからのファイルのコミットの要求、或いは、ファイルシステムが管理するキャッシュ領域がフルになった場合のようなファイルシステム内部での要因により実行される。
【００４４】
ログ記録システム５によって以上のようにトランザクションの開始の記録、完了の記録が行われる一方で、回復マネージャ７は、システム起動時等に作動し、ジャーナルファイルＪＦ内に「ファイル・ディレクトリの作成」のトランザクションで未完了のものが見つかると次のような手順で回復処理を行う。
（回復処理手順）
（１）親ディレクトリに回復の対象のファイルが作成されているか確認する。（なお、ここで回復の対象のファイルが作成されている場合には、回復処理を行う必要はないので回復処理を終了できる。）
（２）次に、親ディレクトリのチェック・修復を行う。具体的には、異常なディレクトリエントリがあれば削除する。
（３）次に、親ディレクトリに、回復の対象のファイルを作成する。
【００４５】
一例として、アプリケーションが、ファイル名称がファイルＡのファイルを作成するという操作要求を発したものとして、ログ記録システム５によるログ記録の流れと、回復マネージャ７の回復処理の流れを示す。図５は、この場合の、アプリケーション、ファイルシステム３、およびログ記録システム５によるログ記録の流れを示すフローチャートである。アプリケーションが「ファイルＡの作成」をファイルシステム３に対して要求すると（Ｓ１）、ファイルシステム３は、「ファイルＡの作成」というトランザクションが発生したことをログ記録システムに対して通知する（Ｓ２）。このとき、ファイルシステム３からログ記録システム５へ、「ファイルＡの作成」に関するトランザクション情報が提供される。
【００４６】
次に、ログ記録システム５は、ジャーナルファイルＪＦの所定のトランザクションエントリに、トランザクション情報と共に、「ファイルＡの作成」が開始されたことを書き込む（Ｓ３）。一方、ファイルシステム３は、「ファイルＡの作成」を処理する（Ｓ４）。そして、「ファイルＡの作成」が完了すると（Ｓ５）、ファイルシステム３からの通知により、ログ記録システム５は、「ファイルＡの作成」に対応するトランザクションエントリを検索してトランザクションの状態を完了にする（Ｓ６）。
【００４７】
図６は、「ファイルＡの作成」の処理が、電源断などにより中断してしまう場合を示している。この場合、ディスク装置ＨＤ１上には実際にはファイルＡの作成は行われていない。図７は、図６のように中断した状態からシステムを起動させた場合の回復マネージャ７の動作の流れである。システム起動時等にアプリケーションプログラムがファイルシステム３の初期化を行う（Ｓ１１）。ことを契機として、回復マネージャ７は作動し、まずジャーナルファイルＪＦを検索して未完了のトランザクションがあるかどうかをチェックする（Ｓ１２）。いま、図６のように「ファイルＡの作成」が中断した後であることを想定しているので、ここでは、「ファイルＡの作成」のトランザクションが未完了であることがみつかる（Ｓ１２：ＹＥＳ）。なお、未完了のトランザクションが見つからない場合には（Ｓ１２：ＮＯ）、回復処理を終了する。
【００４８】
次に回復マネージャ７は、上述の回復処理手順によりトランザクション情報に基づいて「ファイルＡの作成処理」を再実行する（Ｓ１３）。「ファイルＡの作成」の再実行が完了すると、未完了となっている（つまり、“開始”のままとなっている）トランザクションエントリの状態を“完了”にする（Ｓ１４）。なお、“完了”となったトランザクションエントリは、新たなトランザクションを記録する為に用いることができる。
【００４９】
３．２　ファイルへの書き込み
「ファイルへの書き込み」というトランザクションが開始したことの、ジャーナルファイルＪＦへの記録は、
ａ．　アプリケーションからのファイルへの書き込み要求
の発生に伴って行われる。
ファイルシステム３は、アプリケーションから「ファイルへの書き込み」要求を受け取ると、処理を開始する前に、ログ記録システム５に対して、「ファイルへの書き込み」のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【００５０】
次に、ログ記録システム５は、このトランザクションに対する、シーケンス番号およびトランザクションＩＤの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム３により付与されたファイルＩＤも取得して記録する。さらに、ログ記録システム５は、下記のようなトランザクション個別情報をファイルシステム３から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」＝“ＷｒｉｔｅＦｉｌｅ”（ファイルへの書き込みであることを示す情報）
・シーケンス番号、ファイルＩＤ、トランザクションＩＤ
・トランザクション個別情報（下記（ａ）−（ｅ））
（ａ）書込み対象のファイルの識別情報
（ａ−１）親ディレクトリのクラスタ番号
（ａ−２）親ディレクトリの属性、
（ａ−３）ディレクトリエントリの（親ディレクトリ内の）位置
（ｂ）書込み対象のファイルの書込み前のサイズ
（ｃ）書込みサイズ
（ｄ）書込み対象のファイルの書込み前の最終クラスタ番号
（ｅ）書込み対象のファイルの書込み前のファイルポジション
【００５１】
なお、このトランザクションが完了したことの記録は、
ａ．　アプリケーションからのファイルクローズ要求の完了
ｂ．　ファイルのフラッシュ（ｆｌｕｓｈ）の完了
に伴って行われる。
【００５２】
ログ記録システム５によって以上のようにトランザクションの開始の記録、完了の記録が行われる一方で、回復マネージャ７は、システム起動時等に作動し、ジャーナルファイルＪＦ内に「ファイルへの書き込み」のトランザクションで未完了のものが見つかると次のような手順で回復処理を行う。
（回復処理手順）
（１）割り当てたまま、使われていないクラスタ（ロストクラスタ）を未使用に戻す。
（２）書き込み対象のファイルのクラスタチェーンについて、複数のあるＦＡＴ間の不整合を、先頭のＦＡＴ（ＦＡＴ１１）を以降のＦＡＴ（ＦＡＴ１２）にコピーすることで解決する。
（３）未終端のクラスタチェーンを終端させる。
（４）ディレクトリエントリとＦＡＴを一致させる。具体的には、書込み対象のクラスタチェーンをディレクトリエントリに合わせて切りつめること、または、ファイルサイズを書込み対象のファイルのクラスタチェーン数に合わせて切りつめることを行う。
なお、上記（１）のロストクラスタを未使用に戻すことは、実際には、「ファイルへの書き込み」のトランザクションの内部的な処理として実行される「ファイルへのクラスタの割り当て」のトランザクションについて必要なトランザクション情報をログ記録することによって達成される（３．２．１「ファイルへのクラスタの割り当て」参照）。
【００５３】
一例として、アプリケーションが、ファイル名称がファイルＢのファイルへの書込みを行う操作要求を発したものとして、ログ記録システム５によるログ記録の流れと、回復マネージャ７による回復処理の流れを説明する。図８は、この場合の、アプリケーション、ファイルシステム３、およびログ記録システム５によるログ記録の流れを示すフローチャートである。アプリケーションが「ファイルＢへの書込み」をファイルシステム３に要求すると（Ｓ３１）、ファイルシステム３は、「ファイルＢへの書込み」というトランザクションが発生したことをログ記録システムに対して通知する（Ｓ３２）。このとき、ファイルシステム３からログ記録システム５へ、「ファイルＢへの書込み」に関するトランザクション情報が提供される。
【００５４】
次に、ログ記録システム５は、ジャーナルファイルＪＦの所定のトランザクションエントリに、トランザクション情報と共に、「ファイルＢへの書込み」が開始されたことを書き込む（Ｓ３３）。一方、ファイルシステム３は、「ファイルＢへの書込み」を処理する（Ｓ３４）。そして、アプリケーションからのファイルクローズ要求等により「ファイルＢへの書込み」が完了すると（Ｓ３５）、ファイルシステム３からの通知により、ログ記録システム５は、「ファイルＢへの書込み」に対応するトランザクションエントリを検索してトランザクションの状態を“開始”から“完了”にする（Ｓ３６）。
【００５５】
図９は、「ファイルＢへの書込み」の処理が、電源断などにより中断してしまう場合を示している。この場合、ディスク装置ＨＤ１上への「ファイルＢへの書込み」処理は中途半端に終了しディスク装置ＨＤ１は正常でない状態となっている。典型的な例としては、ディスク装置ＨＤ１の管理領域のみが更新されデータ領域が更新されていない状態、つまり、管理領域とデータ領域の間に不整合が生じている状態である。図１０は、図９のように中断した状態からシステムを起動させた場合の回復マネージャ７の動作の流れである。システム起動時にアプリケーションは、ファイルシステム３の初期化を行う（Ｓ４１）。このことを契機として、回復マネージャ７は作動し、まずジャーナルファイルＪＦを検索して、未完了のトランザクションがあるかどうかをチェックする（Ｓ４２）。いま、図９のように「ファイルＢへの書込み」が中断した後であるので、ここでは、「ファイルＢへの書込み」のトランザクションが未完了であることがみつかる（Ｓ４２：ＹＥＳ）。なお、未完了のトランザクションが見つからない場合には（Ｓ４２：ＮＯ）、回復処理を終了する。
【００５６】
次に回復マネージャ７は、上述の回復処理手順により、トランザクション情報に基づいて「ファイルＢへの書込み」を取り消して、トランザクションの開始前の状態に戻す（Ｓ４３）。取り消しの処理が完了すると、未完了となっているトランザクションエントリの「状態」を“完了”にする（Ｓ４４）。
【００５７】
３．２．１　ファイルへのクラスタの割り当て
「ファイルへのクラスタの割り当て」というトランザクションが開始したことの、ジャーナルファイルＪＦへの記録は、
ａ．　ファイルの最初のクラスタを割り当てる前
ｂ．　クラスタリンクの追加用のクラスタを割り当てる前
に行われる。
ファイルシステム３は、このようなタイミングで、ログ記録システム５に対して、「ファイルへのクラスタの割り当て」のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【００５８】
次に、ログ記録システム５は、このトランザクションに対する、シーケンス番号およびトランザクションＩＤの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム３により付与されたファイルＩＤも取得して記録する。さらに、ログ記録システム５は、下記のようなトランザクション個別情報をファイルシステム３から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」＝“ＡｌｌｏｃＣｌｕｓｔｅｒ”（ファイルへのクラスタの割り当てあることを示す情報）
・シーケンス番号、ファイルＩＤ、トランザクションＩＤ
・トランザクション個別情報（下記（ａ）−（ｂ））
（ａ）対象のファイルの識別情報
（ａ−１）親ディレクトリのクラスタ番号
（ａ−２）親ディレクトリの属性、
（ａ−３）ディレクトリエントリの（親ディレクトリ内の）位置
（ａ−４）最初のクラスタ番号
（ｂ）割り当てたクラスタ番号のリスト
【００５９】
なお、このトランザクションが完了したことの記録は、
ａ−１．　割り当てたクラスタが、対象のファイルのディレクトリエントリに設定され、ディレクトリエントリとＦＡＴがフラッシュ（ｆｌｕｓｈ）されたとき。
ａ−２．　割り当てたクラスタの属するファイルがクローズ（ｃｌｏｓｅ）されたとき。
ｂ−１．　クラスタの連結が完了し、ＦＡＴがフラッシュ（ｆｌｕｓｈ）されたとき。
ｂ−２．　割り当てたクラスタの属するファイルがクローズ（ｃｌｏｓｅ）されたとき。
に行われる。
【００６０】
上記「ファイルへの書き込み」の回復処理の一部として上記トランザクション情報に基づいて次のような回復処理を行う。
（回復処理手順）
（１）割り当てたクラスタを未使用に戻す。
【００６１】
３．３　ファイル・ディレクトリの削除
ファイル・ディレクトリの削除というトランザクションが開始したことの、ジャーナルファイルＪＦへの記録は、
ａ．　アプリケーションからのファイル削除の要求
ｂ．　アプリケーションからのディレクトリ削除の要求
の発生に伴って行われる。
ファイルシステム３は、アプリケーションから「ファイル・ディレクトリの削除」の要求を受け取ると、ログ記録システム５に対して、「ファイル・ディレクトリの削除」のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【００６２】
次に、ログ記録システム５は、このトランザクションに対する、シーケンス番号およびトランザクションＩＤの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム３により付与されたファイルＩＤも取得して記録する。さらに、ログ記録システム５は、下記のようなトランザクション個別情報をファイルシステム３から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」＝“ＤｅｌｅｔｅＦｉｌｅ”（ファイルへ削除であることを示す情報）
・シーケンス番号、ファイルＩＤ、トランザクションＩＤ
・トランザクション個別情報（下記（ａ））
（ａ）削除の対象のファイルの識別情報
（ａ−１）親ディレクトリのクラスタ番号
（ａ−２）親ディレクトリの属性
（ａ−３）ディレクトリエントリの位置
（ａ−４）対象のファイルの属性
（ａ−５）対象のファイルの最初のクラスタ番号
（ａ−６）対象のファイルのＬＦＮ（ロングファイルネーム）のディレクトリエントリ数
（ａ−７）対象のファイルのａｌｉａｓ（別名）のチェックサム
【００６３】
なお、このトランザクションが完了したことの記録は、
ａ．　ファイル・ディレクトリ削除処理の完了
に伴って行われる。
【００６４】
ログ記録システム５によって以上のようにトランザクションの開始の記録、完了の記録が行われる一方で、回復マネージャ７は、システム起動時等に作動し、ジャーナルファイルＪＦ内に「ファイル・ディレクトリの削除」のトランザクションで未完了のものが見つかると次のような手順で回復処理を行う。
（回復処理手順）
（１）削除の対象のファイル・ディレクトリの削除を再実行する。
【００６５】
「ファイル・ディレクトリの削除」のトランザクションを回復させる際の動作の流れは、未完了のトランザクションを見つけ出し再実行による回復を行うことであり、「ファイル・ディレクトリの作成」に関し図５〜７を参照して上述した場合と同様である。
【００６６】
３．４　ファイル・ディレクトリの名前変更
ファイル・ディレクトリの名前変更というトランザクションが開始したことの、ジャーナルファイルＪＦへの記録は、
ａ．　アプリケーションからのファイル名変更の要求
の発生に伴って行われる。
ファイルシステム３は、アプリケーションから「ファイル・ディレクトリの名前変更」の要求を受け取ると、ログ記録システム５に対して、ファイル・ディレクトリの名前変更のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【００６７】
次に、ログ記録システム５は、このトランザクションに対する、シーケンス番号およびトランザクションＩＤの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム３により付与されたファイルＩＤも取得して記録する。さらに、ログ記録システム５は、下記のようなトランザクション個別情報をファイルシステム３から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」＝“ＲｅｎａｍｅＦｉｌｅ”（名前変更であることを示す情報）
・シーケンス番号、ファイルＩＤ、トランザクションＩＤ
・トランザクション個別情報（下記（ａ），（ｂ））
（ａ）名前変更の対象のファイルの識別情報
（ａ−１）親ディレクトリのクラスタ番号
（ａ−２）親ディレクトリの属性
（ａ−３）ディレクトリエントリの位置
（ａ−４）対象のファイルの属性
（ａ−５）対象のファイルの最初のクラスタ番号
（ａ−６）対象のファイルのＬＦＮ（ロングファイルネーム）のディレクトリエントリ数
（ａ−７）対象のファイルのａｌｉａｓのチェックサム
（ｂ）対象のファイルの新しいファイル名
【００６８】
なお、このトランザクションが完了したことの記録は、
ａ．　ファイル・ディレクトリの名前変更処理の完了
に伴って行われる。
【００６９】
ログ記録システム５によって以上のようにトランザクションの開始の記録、完了の記録が行われる一方で、回復マネージャ７は、システム起動時等に作動し、ジャーナルファイルＪＦ内に「ファイル・ディレクトリの名前変更」のトランザクションで未完了のものが見つかると次のような手順で回復処理を行う。
（回復処理手順）
（１）名前変更の対象のファイル・ディレクトリの名前変更の処理を再実行する。
【００７０】
「ファイル・ディレクトリの名前変更」のトランザクションを回復させる際の動作の流れは、未完了のトランザクションを見つけ出し再実行による回復を行うことであり、「ファイル・ディレクトリの作成」に関し図５〜７を参照して上述した場合と同様である。
【００７１】
３．５　ファイル・ディレクトリの情報設定
ファイル・ディレクトリの情報設定というトランザクションが開始したことの、ジャーナルファイルＪＦへの記録は、
ａ．　アプリケーションからのファイル・ディレクトリ情報設定の要求
の発生に伴って行われる。
ファイルシステム３は、アプリケーションから「ファイル・ディレクトリの情報設定」の要求を受け取ると、ログ記録システム５に対して、「ファイル・ディレクトリの情報設定」のトランザクションの開始を通知すると共に、このトランザクションに関するトランザクション情報を提供する。
【００７２】
次に、ログ記録システム５は、このトランザクションに対する、シーケンス番号およびトランザクションＩＤの付与を行い、トランザクションエントリ内に記録する。また、ファイルシステム３により付与されたファイルＩＤも取得して記録する。さらに、ログ記録システム５は、下記のようなトランザクション個別情報をファイルシステム３から取得し、トランザクションエントリ内に記録する。すなわち、トランザクション情報として下記の内容が記録される。
・「種別」＝“ＳｅｔＳｔａｔＦｉｌｅ”（情報設定であることを示す情報）
・シーケンス番号、ファイルＩＤ、トランザクションＩＤ
・トランザクション個別情報（下記（ａ）−（ｄ））
（ａ）情報設定の対象のファイルの識別情報
（ａ−１）親ディレクトリのクラスタ番号
（ａ−２）ディレクトリエントリの（親ディレクトリ内の）位置
（ｂ）対象のファイルの属性
（ｃ）対象のファイルの元の属性
（ｄ）対象のファイルの新しい属性
【００７３】
なお、このトランザクションが完了したことの記録は、
ａ．　ファイル・ディレクトリの情報設定の処理の完了
に伴って行われる。
【００７４】
ログ記録システム５によって以上のようにトランザクションの開始の記録、完了の記録が行われる一方で、回復マネージャ７は、システム起動時等に作動し、ジャーナルファイルＪＦ内に「ファイル・ディレクトリの情報設定」のトランザクションで未完了のものが見つかると次のような手順で回復処理を行う。
（回復処理手順）
（１）情報設定の対象のファイル・ディレクトリの情報設定の処理を再実行する。
【００７５】
「ファイル・ディレクトリの情報設定」のトランザクションを回復させる際の動作の流れは、未完了のトランザクションを見つけ出し再実行による回復を行うことであり、「ファイル・ディレクトリの作成」に関し図５〜７を参照して上述した場合と同様である。
【００７６】
以上説明したように、障害回復機能付きファイルシステム１０は、中断されたファイル操作要求を回復する機能を実現する。上述した障害回復機能付きのファイルシステム１０について、様々な変形例を構成することができる。例えば、ログ記録および回復処理の対象となるトランザクションとして上述したものは例証として示したものであって、ディスク装置の内容変更を伴うような他のトランザクションに対しても、上述した場合と同様にログ記録および回復処理機能を適用することができる。
【００７７】
トランザクションの「状態」についての記録は、トランザクションが開始されていること、完了していることが分かれば良いので、「状態」の表現に関する様々な形式が有り得る。例えば、トランザクションが完了したことは、状態を開始から完了に書き換えること以外に、トランザクションエントリの内容を消去する形式での表現も有り得る。
【００７８】
また、上述の実施形態では、ファイルシステム３の管理下にあるのは１つのディスク装置であるものとして説明しているが、一般的なファイルシステムと同様にファイルシステム３が複数のファイル装置を管理下におくように構成することはできるので、ログ記録の対象とする（つまり、障害回復の対象とする）ファイル装置と、ジャーナルファイルを格納するファイル装置とを別々のものとする構成を実現することもできる。例えば、ファイルシステム３の管理下にディスク装置とフラッシュメモリがあるものとして、ログ記録の対象をディスク装置とする場合に、ジャーナルファイルはフラッシュメモリ上に格納しておく構成とすることができる。
【００７９】
１つのコンピュータシステムにおいて、種類の異なるファイルシステムを混在させることが可能である。したがって、ログ記録の対象とする（つまり、障害回復の対象とする）ファイルシステムと、ジャーナルファイルを格納しておくファイルシステムとを別々のものとする構成を実現することもできる。すなわち、１つのコンピュータシステムにファイルシステムＡと、ファイルシステムＢが存在し、ファイルシステムＡをログ記録の対象とする（つまり、ファイルシステムＡについて障害回復を行う）場合に、ジャーナルファイルは、ファイルシステムＢによる管理下に置く。この場合、ジャーナルファイルは、ファイルシステムＢにおける通常のファイルとして作成され、ジャーナルファイルには、ファイルシステムＡにおけるトランザクションの発生に伴って、ファイルシステムＡについてのトランザクション情報が記録される。
【００８０】
図１に示すように、この障害回復機能付きファイルシステム１０では、ログ記録システム５によるログ記録機能は、ファイルシステム３からトランザクションの開始を通知することによって行われ、また、回復マネージャ７による回復機能は、アプリケーションからのファイルシステム初期化要求に伴い行われるように構成されている。この構成は、既存のファイルシステムに対して障害回復機能を付加することを容易にすると共に、障害回復機能の付加に伴う既存のファイルシステムの信頼性の低下を回避することを可能にする。
【００８１】
本発明の範囲には、以上説明した障害回復機能付きファイルシステムの機能を実現するための方法、プログラム、およびこのような機能が実現された情報機器が含まれる。
【００８２】
【発明の効果】
以上説明したように本発明によれば、ジャーナルファイルＪＦは、ファイルシステムの管理下のファイルとして作成され、また、ログ記録の内容は、ファイル操作対象のファイルのメタデータの更新に関する情報のみである。したがって、ログ記録を簡略化でき、ログ記録に伴うファイル操作の処理速度の低減を回避することができる。また、ジャーナルファイルに対するログの書き込みは、ジャーナルファイル自身のメタデータの更新が生じない様に行われる。したがって、ジャーナルファイルへのログの書き込みの処理速度を高速化することができる。
【図面の簡単な説明】
【図１】図１は、本発明の実施形態である、障害回復機能付きファイル管理プログラムの機能の構成を表すブロック図である。
【図２】ＦＡＴ型ファイルシステムによるディスク装置の管理上の構成を示す図である。
【図３】図１の障害回復機能付きファイル管理プログラムによって管理されるジャーナルファイルの構成を示す図である。
【図４】図３のジャーナルファイル内のトランザクションエントリの構成を示す図である。
【図５】ファイルの作成が行われる場合の、ログの記録の動作を表すフローチャートである。
【図６】図５のファイルの作成の処理において、処理が中断した場合を示す図である。
【図７】図６のようにファイル作成の処理が中断した後の、回復処理の動作を表すフローチャートである。
【図８】ファイルへの書き込みが行われる場合の、ログの記録の動作を表すフローチャートである。
【図９】図８のファイルへの書き込みの処理において、処理が中断した場合を示す図である。
【図１０】図９のようにファイル作成の処理が中断した後の、回復処理の動作を表すフローチャートである。
【符号の説明】
３　ファイルシステム
５　ログ記録システム
７　回復マネージャ
１０　障害回復機能付きファイルシステム
１７　トランザクションエントリ
２１　状態
２２　シーケンス番号
２３　トランザクションタイプ
２４　トランザクションＩＤ
２５　ファイルＩＤ
２７　トランザクション個別情報
【図１】
2004078461.tif 000003
【図２】
2004078461.tif 000004
【図３】
2004078461.tif 000005
【図４】
2004078461.tif 000006
【図５】
2004078461.tif 000007
【図６】
2004078461.tif 000008
【図７】
2004078461.tif 000009
【図８】
2004078461.tif 000010
【図９】
2004078461.tif 000011
【図１０】
2004078461.tif 000012