(57)【要約】      （修正有）【課題】効率的に記憶装置の劣化を抑制することができる情報処理装置およびプログラムを提供する。【解決手段】動作状態管理部２０５にて情報処理装置１００の動作状態を管理し、ジャーナル・ログ記録制御部２０６において、その動作状態に対応するジャーナリング機能の情報を保持する。所定の条件を満たした際に、情報処理装置の動作状態とジャーナリング機能の利用状況を確認し、動作状態に対応したジャーナリング機能へ切り替える。【選択図】図２
2014153872.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を備える情報処理装置であって、
前記記憶装置の第１の記憶領域に書き込む実データまたは当該実データのメタ・データを含む履歴情報を、前記記憶装置の第２の記憶領域に書き込む書き込み手段と、
前記情報処理装置の状態を検出する検出手段と、
前記情報処理装置の取り得る状態と当該状態に対応する設定とを対応づけて保持する保持手段と、
前記保持手段を参照し、前記検出手段にて検出された状態に対応する設定に基づいて前記書き込み手段を制御する制御手段とを有することを特徴とする情報処理装置。
【請求項２】
前記設定は、前記書き込み手段によって前記第２の記憶領域に書き込む履歴情報の詳細度合い、または、前記書き込み手段によって前記履歴情報を前記第２の記憶領域へ書き込むか否かを示す情報を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記書込み手段は、前記記憶装置の第１の記憶領域に前記データを書き込む前に前記履歴情報を前記第２の記憶領域に書き込むことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記情報処理装置が省電力状態であることを前記検出手段が検出すると、前記履歴情報を前記第２の記憶領域に記録しないように前記制御手段が前記書き込み手段を制御することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記記憶装置に記録された情報の参照時に前記第２の記憶領域に前記履歴情報の記録を行わない動作状態であることを前記検出手段が検出すると、前記制御手段が前記履歴情報を前記第２の記憶領域に記録しないように前記書き込み手段を制御することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記書き込み手段は、前記第２の記憶領域に前記第１の記憶領域に書き込むファイルのメタ・データ及びファイルの実データを履歴情報であるジャーナル・ログとして書き込むことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記記憶装置はＦｌａｓｈ  ＳＳＤであることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記記憶装置は不揮発性の二次記憶装置であり、当該二次記憶装置とは別に揮発性の一次記憶装置を更に備える請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記情報処理装置は、前記情報処理装置が省電力モードである状態、前記情報処理装置がデータ閲覧モードである状態、前記情報処理装置がデータ保護モードである状態の少なくともいずれか１つを含む複数の状態のうちの１つに遷移し、前記検出手段は当該複数の状態のいずれか１つを検出することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記複数の状態の１つは、前記設定に基づく前記書込み手段の制御方式の切り替えを制限する状態であることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記複数の状態の１つとして、前記履歴情報をジャーナル・ログとして前記第２の記憶領域に書き込むジャーナリングモードを含むことを特徴とする請求項９または１０に記載の情報処理装置。
【請求項１２】
前記ジャーナリングモードはｗｒｉｔｅｂａｃｋモードを含み、当該ｗｒｉｔｅｂａｃｋモードでは、前記記憶手段は前記ジャーナリング領域にメタ・データを記憶してから前記ジャーナリング領域以外のデータ領域に実データを記憶することを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記ジャーナリングモードはｏｒｄｅｒｅｄモードを含み、当該ｏｒｄｅｒｅｄモードでは、前記記憶手段は前記ジャーナリング領域以外のデータ領域に実データを記憶してから前記ジャーナリング領域にメタ・データを記憶することを特徴とする請求項１１に記載の情報処理装置。
【請求項１４】
前記ジャーナリングモードはｊｏｕｒｎａｌモードを含み、当該ｊｏｕｒｎａｌモードでは、前記記憶手段は前記ジャーナリング領域に実データとメタ・データとを記憶してから前記ジャーナリング領域以外のデータ領域に前記実データを再び記憶することを特徴とする請求項１１に記載の情報処理装置。
【請求項１５】
前記履歴情報は実データの少なくとも一部であり、前記メタ・データは前記記憶装置の保持するファイルに関する管理情報を含むことを特徴とする請求項１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
記憶装置を備える情報処理装置であって、
前記記憶装置の第１の記憶領域におけるファイル操作に関するジャーナル・ログを、前記記憶装置の第１の記憶領域について前記ファイル操作を実行する前に前記記憶装置の第２の記憶領域に書き込む書き込み手段と、
前記情報処理装置の状態に応じたジャーナリング機能の設定に基づいて前記書き込み手段を制御する制御手段とを有することを特徴とする情報処理装置。
【請求項１７】
情報処理装置の取り得る状態と当該状態に対応する設定とを対応づけて保持する保持手段と記憶装置とを備える情報処理装置による情報処理方法であって、
前記記憶装置の第１の記憶領域に書き込む実データまたは当該実デーに関するメタ・データを含む履歴情報を、前記記憶装置の第２の記憶領域に書き込む書き込み工程と、
前記情報処理装置の状態を検出する検出工程と、
前記保持手段を参照し、前記検出工程にて検出された状態に対応する設定に基づいて前記書き込み工程を制御する制御工程と
を有することを特徴とする処理方法。
【請求項１８】
記憶装置を備える情報処理装置を、
前記記憶装置の第１の記憶領域に書き込む実データまたは当該実デーに関するメタ・データを含む履歴情報を、前記記憶装置の第２の記憶領域に書き込む書き込み手段と、
前記情報処理装置の状態を検出する検出手段と、
前記情報処理装置の取り得る状態と当該状態に対応する設定とを対応づけて保持する保持手段と、
前記保持手段を参照し、前記検出手段にて検出された状態に対応する設定に基づいて前記書き込み手段を制御する制御手段として機能させることを特徴とするコンピュータが読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルを操作する情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
ハードディスクドライブ（ＨＤＤ）等の二次記憶装置を備える情報処理装置において、二次記憶装置に対するファイル操作中に電源断（ｐｏｗｅｒ  ｄｉｓｃｏｎｔｉｎｕｉｔｙ）や記憶媒体の取り出しなどの異常事象が発生すると、ファイルを管理するための情報とファイルの内容との間で整合性が取れなくなることがある。このように整合性が取れなくなる事態を低減させるために、ジャーナリング機能を持ったファイルシステムを利用するようになった。ジャーナリング機能付きのファイルシステムでは、データ操作中に障害が発生した場合でも、復旧性能を向上させるためにファイルやディレクトリの更新操作履歴と更新内容とをジャーナル・ログとして二次記憶装置に保持する。
【０００３】
特許文献１では、ジャーナリング領域に書き込むデータをスタックに溜めておき、先に二次記憶装置への更新処理が完了してジャーナル・ログが不要になった場合には、スタックのデータを削除するという方法が開示されている。
【０００４】
また、特許文献２では、データベースを論理的な単位に分割し、ジャーナル・ログの取得内容、ジャーナル取得の要／不要を設定してジャーナル取得を行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２０３１８６号公報
【特許文献２】特開平０５−０６１７５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のジャーナリングファイルシステムは、ファイルシステムのマウント時にジャーナリング機能の利用を設定していた。そのため、情報処理装置の動作状況に応じてジャーナリング機能の設定を動的に切り替えることができず、二次記憶装置の劣化を抑制し難い。
特許文献１、特許文献２に記載された技術においては、二次記憶装置への書き込み回数を削減しているものの、情報処理装置の動作状況に応じた設定でジャーナリング機能を利用していないので、効率的に二次記憶装置の劣化を抑制することができない。
【課題を解決するための手段】
【０００７】
上述の課題を解決するために、本発明に係る情報処理装置は、記憶装置を備える情報処理装置であって、前記記憶装置の第１の記憶領域に書き込むデータの少なくとも一部または当該データの操作情報に関する履歴情報を、前記記憶装置の第２の領域に書き込む書き込み手段と、前記情報処理装置の状態を検出する検出手段と、前記情報処理装置の取り得る状態と当該状態に対応する設定とを対応づけて保持する保持手段と、前記保持手段を参照し、前記検出手段にて検出された状態に対応する設定に基づいて前記書き込み手段を制御する制御手段とを有することを特徴とする情報処理装置。
【発明の効果】
【０００８】
本発明によれば、情報処理装置の動作状況に応じた設定でジャーナリング機能を利用するので、効率的に記憶装置の劣化を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置の基本構成を示す概略図である。
【図２】主要な機能構成を示す概略図である。
【図３】ジャーナリング領域の構成を示す模式図である。
【図４】動作状態を管理するテーブルである。
【図５】ジャーナル・ログの記録内容を管理するテーブルである。
【図６】動作状態とジャーナリング機能の対応を管理するテーブルである。
【図７】電源投入後からジャーナリング機能の制御までの処理の流れを示すフローチャートである。
【図８】ジャーナリング機能の制御の流れを示すフローチャートである。
【図９】主要な機能構成を示す概略図である。
【図１０】ジャーナリング機能の制御の流れを示すフローチャートである。
【図１１】ジャーナリング機能の制御の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
＜実施形態１＞
実施形態１では、情報処理装置の動作状況に応じてジャーナリングファイルシステムにおけるジャーナリング機能を動的に制御することで、ジャーナル・ログの記録量を抑制する。以下、図面を参照して本発明の実施形態１を詳細に説明する。図１は、実施形態１の情報処理装置１００の概略構成を示す図である。まず、図１を用いて情報処理装置の基本構成の概略を説明する。
【００１１】
情報処理装置１００においては、通常、ＣＰＵ１０１が複数のプロセスを１つずつ処理し、一定期間ごとに処理を切り替えて実施する。ここで、ＣＰＵ１０１は、演算処理などを行なうプロセッサコアを複数備えてもよいし、ＣＰＵ１０１自体を情報処理装置１００に複数備えてもよい。一次記憶装置１０２は、展開してＣＰＵ１０１に読み込ませるプログラムやデータを一時的に記録する揮発性の記憶装置でありＳＤＲＡＭやＳＲＡＭなどを備える。一次記憶装置１０２に展開するプログラムやファイル、ディレクトリ等のデータは、二次記憶装置１０４に記録する。二次記憶装置１０４は不揮発性の記憶装置であり、磁気ディスクの様に磁性体が塗布された記憶装置、書き込み回数に制限のあるＮＡＮＤ型フラッシュメモリを利用してデータを記録する記憶装置、あるいは、半導体レーザーを利用してデータを記録する光ディスク、赤色レーザー光と磁場を用いてデータを記録する光磁気ディスク、情報処理装置に対して挿抜の可能な不揮発性のメモリカードあるいは不揮発性のフラッシュメモリを用いることができる。Ｆｌａｓｈ  ＳＳＤのように不揮発のフラッシュメモリを内蔵する不揮発性の記憶装置でありハードディスクドライブと同等の機能を実現可能に構成されているものを利用してもよい。情報処理装置１００は起動する際に、二次記憶装置１０４で保持している圧縮プログラム（ＯＳや後述のフローを実現するプログラム、オプションなどを含む）を一次記憶装置１０２に展開し、ＣＰＵ１０１が一次記憶装置１０２に展開したプログラムを実行することで後述のジャーナリングファイルシステムを実現する。
【００１２】
二次記憶装置１０４にあるファイルの操作は、ＣＰＵ１０１で実現されるオペレーティングシステムからＩ／Ｏコントローラ１０３を介して、ＲＥＡＤ要求（読出し要求）、ＷＲＩＴＥ要求（書込み要求）を行うことで実現する。
【００１３】
次に本実施形態で利用するジャーナリングファイルシステムについて説明する。
【００１４】
一般的なファイルシステムに記録される情報は、情報の内容にあたるデータ部分（実データとも呼称される）とその情報の管理情報にあたるメタ・データとを有する。データ部分とメタ・データとが分かれて構成されるため、ファイル操作中に電源断や記憶媒体の取り出しなどの異常事象が発生した場合に、ファイルの内容とファイルの管理情報との間で整合性が取れなくなることがある。ジャーナリングファイルシステムは、このような整合性が取れなくなる事態を回避するため、まずファイルやディレクトリの更新内容とその管理情報とを含む履歴情報を二次記憶装置に記録し、その後、二次記憶装置の記録された内容を更新する。このように２段階の処理で二次記憶装置上のファイルを操作することで、途中で整合性が取れなくなることを抑制する。
【００１５】
ジャーナリングファイルシステムは、二次記憶装置上にファイルシステムを構築する際、その二次記憶装置上に、履歴情報であるジャーナル・ログを記録し管理するためのジャーナリング領域（第２の記憶領域）と、バイナリデータやテキストデータにて構成されたファイルやファイルを管理するディレクトリの内容を記録するデータ領域（第１の記憶領域）とを確保する。ここで、ジャーナル・ログとは、二次記憶装置の操作中に障害が発生した場合に、ファイル操作中の状態を復旧できるようにファイルやディレクトリの更新操作履歴（操作情報）と更新内容とファイルシステムの管理情報であるメタ・データの更新内容とを保持したログ情報である。
【００１６】
例えば、ジャーナリングファイルシステムのジャーナリング領域へジャーナル・ログを記録する機能（以下、ジャーナリング機能）を備える、ファイルシステムｅｘｔ３（ｔｈｉｒｄ  ｅｘｔｅｎｄｅｄ  ｆｉｌｅ  ｓｙｓｔｅｍ）において、メタ・データは、二次記憶装置１０４の記憶領域の管理単位であるブロックグループの管理情報と、このブロックグループ内に記録されるファイルに関する管理情報とを含む。ブロックグループの管理情報は、そのブロックグループに含まれる各ブロックの使用状況を０と１とで表現したブロックビットマップが格納されたブロック番号、ファイルの管理情報を保持するｉｎｏｄｅの使用状況を０と１とで区別したｉｎｏｄｅビットマップのブロック番号、ｉｎｏｄｅブロックの開始ブロック番号、ブロックグループの空きブロック数、ブロックグループの空きｉｎｏｄｅ数、ブロックグループのディレクトリ数がある。なお、物理的に複数の二次記憶装置１０４を備えていてもよい。
【００１７】
また、ファイルに関する管理情報は、ｉｎｏｄｅの保持する情報である。具体的には、シンボリックリンクやデバイスファイルのようなファイルの種類を表すファイルモード、ファイルサイズ、ファイル最終参照時刻、ファイル最終状態変更時刻、ファイル最終更新時刻、ファイル削除時刻、ユーザＩＤ、グループＩＤ、ファイルリンク数、使用ブロック数、ブロック番号、世代番号などを含む。
【００１８】
なお、ｉｎｏｄｅとはＵｎｉｘ（登録商標）系ファイルシステムで用いられることの多いデータ構造であり、ｉｎｏｄｅにはファイル、ディレクトリなどのファイルシステム上のオブジェクトに関する基本情報を格納し、全てのファイルはｉｎｏｄｅにリンクされている。
【００１９】
図２は、情報処理装置１００の主要な機能構成を物理構成と関連づけて示す概略図である。情報処理装置１００では、ＣＰＵ１０１が実現するオペレーティングシステム２００を利用し、情報処理装置の物理リソースとソフトウェアリソースとの管理を行う。そして、オペレーティングシステム２００上でプロセス２０１が動作し、情報処理装置の機能の制御を行う。
【００２０】
ジャーナリングファイルシステム２０２は、二次記憶装置１０４上にジャーナル・ログを記録するジャーナリング領域２０４を有し、ジャーナリング機能が有効の場合、ジャーナル・ログ記録部２０３においてジャーナリング領域２０４へジャーナル・ログを記録する。
【００２１】
動作状態管理部２０５は、情報処理装置１００の取り得る動作状態を動作状態管理テーブル２０７にて定義し、情報処理装置１００の動作状態を管理する。情報処理装置１００の動作状態の切り替えは、オペレーティングシステム上で動作するプロセス２０１が動作状態管理部２０５を通じて行う。
【００２２】
ジャーナル・ログ記録制御部２０６は、ジャーナル・ログ内容管理テーブル２０８にてジャーナル・ログの記録内容の詳細度合いを段階的に複数定義する。そして、動作状態管理部２０５の動作状態管理テーブル２０７にて管理する動作状態に対し記録するジャーナル・ログの内容を動作状態対応管理テーブル２０９にて保持する。ジャーナル・ログ記録制御部２０６は、この動作状態対応管理テーブル２０９の対応情報に基づいてジャーナリング機能の制御を行う。
【００２３】
なお、動作状態管理テーブル２０７、ジャーナル・ログ内容管理テーブル２０８、動作状態対応管理テーブル２０９は二次記憶装置上に格納する。
【００２４】
次に、ジャーナリングファイルシステムのジャーナリング領域２０４についてより詳細を説明する。
【００２５】
図３は、ジャーナリングファイルシステムのジャーナル領域２０４やトランザクションの詳細を示す図である。ジャーナリングファイルシステムでは、複数個のジャーナル・ログを１つのトランザクション３０３としてまとめて、バッファ上ではトランザクション単位でジャーナリング領域に記憶している。
【００２６】
同図のジャーナリング領域２０４は、ジャーナリング情報管理ブロック３００と、トランザクション領域３０３（本来は、トランザクション領域３０３に１トランザクション単位を書き込むので別物であるが、以降は特に説明がなければ同等のものとしてトランザクション３０３と略称する。）の記録と解放を繰り返すリングバッファ３０１とを含む。本実施形態ではジャーナリング領域２０４は、固定のサイズ（固定長）である。しかし、二次記憶装置１０４の記憶領域の総量の５％程度で２のべき乗の値をジャーナリング領域２０４のサイズとして用いるようにしてもよい。
【００２７】
ジャーナリング情報管理ブロック３００では、トランザクションの開始位置情報３０２を保持している。開始位置情報３０２は、リングバッファ３０１に記録された最も古いトランザクションを保持していたトランザクション領域３０３の開始位置（先頭アドレスやブロック番号など）を保持している。
【００２８】
トランザクション３０３は、二次記憶装置１０４へ書きだすブロック情報を管理し保持するディスクリプタブロック３０４とメタ・データブロック３０５、そしてトランザクションの終了を示すコミットブロック３０６とを含む。これらの詳細は後述する。
【００２９】
次に、ジャーナル・ログ記録部２０３に対する処理の流れについて説明する。ジャーナリングファイルシステムのジャーナル・ログ記録部２０３は、アプリケーションからデータ書き込み操作が行われると、まず、一次記憶装置１０２上のデータと、ファイルシステムの管理情報にあたるメタ・データとを変更する。
【００３０】
そして、これらの変更のうちジャーナル・ログの記録対象を複数個まとめてトランザクション３０３として、二次記憶装置１０４上のジャーナリング領域２０４のリングバッファ３０１に書き込む。ここで、ファイル操作の種類毎にトランザクション３０３としてまとめるようにしてもよい。また、リングバッファ３０１にトランザクションを書き込む際は、開始情報位置３０２を参照し最も更新された時期が古いトランザクション領域３０３を上書きする。なお、ログを書き込む際には最も更新された時期が古いトランザクションであっても有効なジャーナル・ログを保持している場合には上書きをしない。
【００３１】
その後、ジャーナリングファイルシステム２０２はジャーナリング領域２０４に保持したジャーナル・ログのうち二次記憶装置１０４へ反映する対象について、実際に二次記憶装置１０４のデータ領域（ジャーナリング領域以外の領域の１つ）へ反映する（矢印２１０）。ジャーナリングファイルシステム２０２がジャーナリング領域２０４に保持しているジャーナル・ログをデータ領域へ反映するトリガとしては、ジャーナリング領域２０４に保持している有効なトランザクションが設定された所定のサイズ（ジャーナリング領域のサイズの４分の１や２分の１など）を超えた場合とする。なお、所定時間（５秒単位）毎に反映するように構成してもよい。なお、１つのトランザクション３０３について、このトランザクション３０３が含む全てのジャーナル・ログに関して、二次記憶装置１０４のデータ領域への反映が完了すると、ジャーナリングファイルシステム２０２がこのトランザクション３０３を解放する。具体的には、トランザクション３０３毎に、自身が有効か無効かを示すｖａｌｉｄビットを備え、ｖａｌｉｄビットを有効から無効に変更することで解放する。ここで、ジャーナリングファイルシステム２０２は、反映しようとするトランザクション３０３についてトランザクション３０３の先頭から二次記憶装置１０４のデータ領域への同期を行う。そして、最後のコミットブロックについてデータ領域との同期が完了すると、このトランザクション３０３についての反映処理が終了したことが分かる。そして、開始位置情報３０２を、次のトランザクションの先頭の位置情報に更新（開始位置がアドレスの場合はトランザクション長、ブロックの場合はトランザクション分のブロック数を加算）する。更新前のトランザクション領域は、新しいジャーナル・ログに書き込む際に参照する。
【００３２】
ジャーナリングファイルシステム２０２は、二次記憶装置１０４のジャーナリング領域２０４とデータ領域（不図示）との両方に並行して書き込みを行う。また、ジャーナル・ログの記録はメタ・データの更新時に行われるため、メタ・データにファイル最終参照時刻のように読み込みアクセスで更新される項目が含まれる場合には、ファイルを更新していない場合でもジャーナル・ログを記録する。
【００３３】
ジャーナリング機能について、記録対象とするジャーナル・ログの内容や記録順は、ジャーナリングファイルシステムのマウント時にオプションとして指定する。なお、本実施形態の情報処理装置１００はＬｉｎｕｘ（登録商標）をオペレーティングシステムとして利用し、ファイルシステムとしてｅｘｔ３を使用する。また、以降の説明では、ファイルシステムの「マウント」とは、デバイスを認識した上で、ファイルシステムが二次記憶装置２０２を認識させ、ファイルを読み書きできるようにさせる操作のことを示す。詳細には、二次記憶装置１０４の記憶資源を利用可能にするために、二次記憶装置１０４の記憶資源を全体の記憶資源の構造を示すツリー構造へ組み込む作業のことを示す。単に、二次記憶装置１０４の記憶資源を利用可能にするために必要な初期作業と解釈することもできる。なお、逆の操作（例えば、ツリー構造から切り離す作業）を「アンマウント」と呼ぶ。
【００３４】
情報処理装置１００のシステム起動時にオペレーティングシステムがマウントコマンドを発行する際、マウントコマンドのオプションとして、ジャーナリング機能の設定（例えば、記録するジャーナル・ログの内容の詳細度合い、制御方式）を指定する。具体的には、「ｄａｔａ＝ｏｒｄｅｒｅｄ」と指定することで、メタ・データをジャーナル・ログとしてジャーナリング領域へ記録する設定をする。そして、「ｄａｔａ＝ｊｏｕｒｎａｌ」と指定することで、メタ・データとファイルの更新内容をジャーナル・ログとしてジャーナリング領域へ記録する設定をする。また、オプションとして「ｄａｔａ＝ｗｒｉｔｅｂａｃｋ」と指定することも可能である。この場合、メタ・データをジャーナル・ログの記録対象とすることは、「ｄａｔａ＝ｏｒｄｅｒｅｄ」と同様であるが、ファイル更新内容に対するデータ領域の更新とジャーナル・ログの記録との順番が異なる。「ｄａｔａ＝ｏｒｄｅｒｅｄ」では、データ領域の更新後、ジャーナル・ログの記録が行われるが、「ｄａｔａ＝ｗｒｉｔｅｂａｃｋ」では、データ領域の更新とジャーナル・ログの記録との順番が任意のタイミングで行われ保証されていない。ｊｏｕｒｎａｌモードでは、メタ・データと実データの両方をジャーナリング領域に格納するため、ファイルシステムの破損とデータ損失を抑制できが、すべての実データがジャーナリング領域とデータブロックとへ２回書き込まれるため（最初にジャーナリング領域に書き込み、次にデータブロックに再び書き込む）、他のモードに比べて書込み処理パフォーマンスは低下する。ジャーナリングモードはジャーナリング設定として予めユーザに設定させてもよいし、ファイルシステムがデータの種別に応じて自動で判断してもよい。例えば、リアルタイム性の高いデータを操作する際にはｗｒｉｔｅｂａｃｋモードやｏｒｄｅｒｅｄモードを用いて、認証やＱＯＳに用いるデータやファイルシステムの更新やシステムリカバリに利用する重要なデータを操作する際にはｊｏｕｒｎａｌモードを用いるなどすればよい。なお、ジャーナリング設定はファイル管理ブロックに格納することが好ましい。
【００３５】
また、マウントコマンド実行時に「ｎｏａｔｉｍｅ」とオプションを指定することで、ファイル参照時に生じるメタ・データのファイル最終参照時刻の更新に応ずるジャーナル・ログの記録を抑制することもできる。なお、ジャーナリング機能を有効にしている場合、二次記憶装置１０４上のジャーナル領域２０４が、ファイルシステムへのアクセス時に繰り返し利用されるため、ジャーナリング機能が無効の場合よりも二次記憶装置１０４の特定の記憶構成にたいしての書き込み回数が多くなる。
【００３６】
次に、図７、図８を用いて、本実施形態におけるジャーナリング機能の切り替え手順について説明する。図７は、情報処理装置１００の電源投入後からジャーナル・ログの記録内容制御を行うまでの処理の流れを示すフローチャートである。
【００３７】
ステップＳ７００にて、情報処理装置１００の電源が投入され（または再起動や、「スタンバイ、スリープ、休止状態」などの省電力モードからの復帰により）、処理が開始される。ステップＳ７０１にて、情報処理装置１００のオペレーティングシステムがジャーナリングファイルシステムをマウントする。電源投入後から二次記憶装置１０４の論理的に分割された対象区分に対する初回のジャーナリングファイルシステムのマウント時には、コマンド実行時に指定されたオプション（初期設定、または前回の設定）に従いジャーナル・ログの記録を制御する。
【００３８】
ジャーナリングファイルシステムのマウント後、情報処理装置１００の起動中はステップＳ７０２からステップＳ７０４が繰り返し行われる（Ｓ７０２の上部とＳ７０４の下部に示すのはループ記号であり、アンマウントやシャットダウン等によってループを抜ける）。ステップＳ７０２では、動作状態管理部２０５がオペレーティングシステムのタイマ機構を利用してジャーナリングファイルシステムのマウント後の時間経過を監視し、所定の時間間隔が経過したかどうかを判定する。所定の時間間隔が経過した場合、ステップＳ７０４に移る。所定の時間間隔が経過していない場合、ステップＳ７０３へ移る。
【００３９】
ステップＳ７０３では、動作状態管理部２０５が情報処理装置１００の動作状態が変化したかどうかを判定し、動作状態が変化したと判定した場合は、ステップＳ７０４に移る。変化していない場合は、ステップＳ７０２へ移る。
【００４０】
ステップＳ７０４では、ジャーナル・ログ記録制御部２０６が、図８に示すジャーナリング機能の制御を実施する。
【００４１】
図８は、図７のステップＳ７０４の処理の内容を詳細化したもので、ジャーナル・ログ記録制御部２０６がジャーナリング機能の設定（ジャーナル・ログの記録内容）を制御する処理の流れを示すフローチャートである。ステップＳ８００にて、ジャーナル・ログ記録制御部２０６が動作状態対応管理テーブル２０９を参照し、情報処理装置１００に設定されているジャーナリング機能の設定を示すタイプＩＤが、現在の情報処理装置１００の動作状態（モードＩＤ）に対応するタイプＩＤ（動作状態対応管理テーブル２０９に登録されているタイプＩＤ）と一致しているかどうかを判定する。ジャーナル・ログの記録内容が一致していた場合、適切なジャーナリング機能の設定がされているのでそのまま処理を終了する。不一致の場合、ステップＳ８０１へ移る。
【００４２】
ステップＳ８０１では、ジャーナル・ログ記録制御部２０６がジャーナリングファイルシステムをアンマウントするとともに、一次記憶装置１０２上に格納されたファイルシステムの更新データと、二次記憶装置１０４のジャーナリング領域２０４に保持している有効なジャーナル・ログを（あれば）二次記憶装置１０４のデータ部へ反映する。そして、ステップＳ８０３へ移る。
【００４３】
ステップＳ８０２では、ジャーナル・ログ記録制御部２０６が動作状態対応管理テーブル２０９を参照し、情報処理装置１００の現在の動作状態に対応したジャーナリング機能の設定を反映させるため、ジャーナリング機能の指定を含むオプションを利用してジャーナリングファイルシステムをマウントする。
【００４４】
次に、図４、図５、図６を用いて、本実施形態においてジャーナリング機能の設定や制御に利用する各種テーブルの詳細について説明する。
【００４５】
図４は、動作状態管理部２０５により管理する動作状態管理テーブル２０７を示す図である。動作状態管理テーブル２０７では、モードＩＤを設け情報処理装置が遷移する複数の動作モードを区別して管理する。同図は、通常モード、データ保護モード、データ閲覧モード、省電モード（省電力状態）を設けている。
【００４６】
通常モードは、ジャーナリング機能を利用しつつも、後述のデータ保護モードよりもログの内容が少ないような動作状態である。データ保護モードは、二次記憶装置の整合性保護を最も重視した動作モードである。情報処理装置に記憶する個人情報や機密に相当する重要な情報、また機器の設定内容やＦＷウェアの更新データのように情報処理装置の動作に影響を与える情報を更新する形態を検出また指定されたことに基づいて、整合性保護を重視する動作状態と捉え、データ保護モードとする。
【００４７】
データ閲覧モードは、二次記憶装置１０４に格納されたデータ参照を行うだけで、二次記憶装置１０４上へのデータ保存を実施しない動作モードである。使用者が二次記憶装置上に記録したファイルについて編集を行わずに閲覧を行う形態をデータ閲覧モードとする。
【００４８】
省電モードは、情報処理装置の有する機能の利用時や装置の操作時に消費される電力量を低減することを優先しつつも、オペレーティングシステム２０２が動作するモードである（電源遮断は含まない）。主電源からの電力供給を受けず充電池のみの電力で動作する時や、二次記憶装置へのジャーナル・ログの記録を必要としない形態も省電モードとする。ジャーナル・ログの記録が不要な形態として、削除される一次データのように整合性を保つ必要がない情報の記録時や、ジャーナル情報処理装置を使用者が直接操作し保存完了まで操作される使用形態時、また、無停電電源装置（不図示）が機能している時のように情報処理装置の動作中に電源断が発生しない場合がある。
【００４９】
そして、ジャーナル・ログ記録制御部２０６によるジャーナル・ログの記録の動的な制御を行わないモードも設けている。例えば、頻繁な情報処理装置の操作によりジャーナル・ログの記録内容の動的制御に伴う処理負荷が容認できず無効としたい場合や、他の理由で動的制御を不要としたい場合を想定した動作モードである。
【００５０】
ステップＳ８００〜Ｓ８０２の説明で記載したように、動作状態管理テーブル２０７に従い、オペレーティングシステム上のプロセス２０１は、情報処理装置１００の利用状況に応じたジャーナリング機能の設定の切り替えを行う。
【００５１】
例えば、ユーザが機器設定をしようとする操作は、ユーザの設定情報をデータとしてファイル操作することになり、重要度が高いためデータ保護モードに情報処理装置の動作状態を切り替える。また、ファームウェアやオペレーティングシステムに関わるプログラムをアップデートしようとすることを動作状態管理部２０５が検出した場合も、同様にデータ保護モードにしてもよい。
【００５２】
また、ユーザによる操作が二次記憶装置１０４に格納されているファイルの閲覧（Ｒｅａｄ）のみを行う機器操作の場合には、データ閲覧モードへ切り替える。そして、主電源の供給がカットされ充電池からの電力供給に切り替わった場合、省電モードへ情報処理装置の動作状態を切り替えてもよい。なお、上述した条件だけであると、装置の状態などによっては複数個の動作モードが適合する場合がある。例えば、バッテリ駆動中に機器設定が行われる状態は、データ閲覧モードと省電モードのどちらの条件も満たしている。複数個の動作モードが適合してしまう情報処理装置１００では、予めモードに優先度を設け動作モードを一意に決定できる状態にする。例えば、データ保護モードを省電モードよりも優先度を高くしておき、バッテリ駆動中に機器設定を行う場合にはデータ保護モードに切り替わるようにする。
【００５３】
図５は、ジャーナル・ログ記録制御部２０６によって参照するジャーナル・ログ内容管理テーブル２０８を示す。ジャーナル・ログ内容管理テーブル２０８では、タイプＩＤを設けジャーナリングファイルシステムが対応したジャーナル・ログの記録内容の詳細度を段階的に定義している。
【００５４】
同図は、記録内容として、メタ・データとデータ更新内容（実際にデータ部に反映させる実データの一部）、メタ・データ、ジャーナル・ログなしの３つ段階を設けている。なお、ｅｘｔ３ファイルシステムにおけるｏｒｄｅｒｅｄモードとｗｒｉｔｅｂａｃｋモードのように、ファイルシステムにはジャーナル・ログの記録内容が同一で記録方式の異なるジャーナリング機能（ログ機能）が存在する。このように、記録内容が同一な場合、記録方式の異なる各機能に対応するタイプＩＤをジャーナル・ログ内容管理テーブル２０８に追加し、異なるタイプＩＤを利用して定義し区別する。
【００５５】
図６は、ジャーナル・ログ記録制御部２０６によって管理する動作状態対応管理テーブル２０９を示す。動作状態対応管理テーブル２０９は、動作状態管理テーブル２０７が管理するモードＩＤ（情報処理装置１００の動作状態を示す）と、ジャーナル・ログ内容管理テーブル２０８が管理するタイプＩＤ（ジャーナル・ログの記録設定を示す）との対応関係を保持する。この動作状態対応管理テーブル２０９の内容は、情報処理装置１００の製品出荷時などに１次記憶装置１０２内のＲＯＭなどに設定されるものとする。もちろん、インターネット回線等を通じたファームアップデート時に設定してもよいし、ユーザが設定するようにしてもよい。
【００５６】
以上のように、本実施形態では、情報処理装置の動作状態を管理し、所定の条件を満たした際に、情報処理装置の動作状態とジャーナリング機能の利用状況を確認し、動作状態に対応したジャーナリング機能へ切り替える。これにより、ジャーナリング機能を動作状態応じて切り替えることができるため、消費電力の低減を優先したい状況や、データの参照が主となる状況において、ジャーナル・ログの記録量を抑制できる。そのため、ＮＡＮＤフラッシュを利用した二次記憶装置のような書き込み回数に制限のある二次記憶装置では特に摩耗対策になる。もちろんＮＡＤＡフラッシュでなくとも、磁気ディスクの様に磁性体が塗布された二次記憶装置の場合では、特定セクタへの書き込みを抑制することで、特定セクタの磁性低下による不良ブロックの増加を低減することができる。
【００５７】
＜実施形態２＞
以下、図面を参照して実施形態２を詳細に説明する。なお、実施形態１と同一機能を有する構成や工程には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。本実施形態では、情報処理装置の動作状況に応じてジャーナリング機能をより動的に制御する。
【００５８】
図９は、実施形態２に係る情報処理装置１００の主要な構成を示す図である。実施形態１の構成に加えてジャーナル・ログ制御部９０１とジャーナル・ログ記録制御部９０２を備える。ジャーナリングファイルシステム９００は、ジャーナル・ログ制御部９０１を有する。
【００５９】
ジャーナル・ログ制御部９０１は、ジャーナル・ログの記録内容を保持し、オペレーティングシステム上のプロセス２０１に対するインタフェースとしてジャーナリング機能の変更要求を受け付け、ジャーナル・ログ記録部２０３におけるジャーナル・ログの記録処理および解放処理の設定を制御する。
【００６０】
ジャーナル・ログ記録制御部９０２は、ジャーナリングファイルシステム９００がジャーナル・ログ制御部９０１を利用したジャーナリング機能の制御を行うように各種テーブルを管理する。
【００６１】
次に、図１０、図１１を用いて、本実施形態におけるジャーナリング機能の切り替え手順について説明する。本発明の実施形態２における情報処理装置１００の電源投入後からジャーナル・ログの記録内容制御を行うまでの処理の流れは、実施形態１の図７と同様である。ジャーナリングファイルシステムのマウント後、一定時間間隔の経過時、または情報処理装置の動作状態変化時に、ステップＳ７０４にて、ジャーナル・ログ記録制御部９０２が、図１０に示すジャーナル・ログの記録内容制御を行う。
【００６２】
図１０は、第二の実施形態における図７のステップＳ７０４の処理を詳細化したもので、ジャーナル・ログ記録制御部９０２がジャーナリング機能の設定を制御する処理の流れを示すフローチャートである。ステップＳ１０００はステップＳ８００と同様なので説明を省略する。
【００６３】
ステップＳ１００１では、ジャーナル・ログ記録制御部９０２が動作状態対応管理テーブル２０９を参照し、情報処理装置１００の現在の動作状態に対応するジャーナリング機能の設定をジャーナル・ログ制御部９０１へ指定する。そして、ステップＳ１００２へ移る。ステップＳ１００２では、ジャーナル・ログ制御部９０１が、図１１に示すジャーナリング機能の制御を実施する。
【００６４】
図１１は、図１０のステップＳ１００２の処理を詳細化したもので、ジャーナル・ログ制御部９０１がジャーナリング機能の制御の流れを示すフローチャートである。
【００６５】
ステップＳ１１００では、ジャーナル・ログ制御部９０１が、ジャーナル・ログ記録制御部９０２から指定されたジャーナリング機能の設定がが、ファイルシステムの現在のジャーナリング機能の設定と一致しているかどうかを判定する。一致している場合、ジャーナリング機能の設定を変更する必要がないのでそのまま終了する。一方で一致していない場合は、ステップＳ１１０１に移る。
【００６６】
ステップＳ１１０１では、ジャーナル・ログ制御部９０１が、ジャーナル・ログ記録制御部９０２から指定された内容について、ジャーナル・ログの記録を停止する旨の変更であるかどうかを判定する。そして、ジャーナル・ログの記録を停止するための変更であると判定した場合は、ステップＳ１１０２へ移り、そうでない場合は、ステップＳ１１０５へ移る。
【００６７】
ステップＳ１１０２では、ジャーナル・ログ制御部９０１が、ジャーナリングファイルシステム９００のジャーナル・ログ記録処理を停止する。詳細には、ジャーナル・ログ制御部９０１がジャーナル・ログ記録部２０３に対して、新たなジャーナル・ログの記録を制限する指示を発行する。そして、ジャーナル・ログ制御部９０１が、自ら保持するジャーナリングファイルシステム９００にてジャーナリング機能の設定を「タイプＩＤ＝２：ジャーナル・ログなし」に更新する。そして、ステップＳ１１０３へ移る。
【００６８】
ステップＳ１１０３では、ジャーナル・ログ制御部９０１が、ジャーナリング領域２０４に記録されている有効なジャーナル・ログについて、二次記憶装置１０４上のデータ領域へ反映し、反映したジャーナル・ログを解放する。そして、Ｓ１１０４へ移る。
【００６９】
ステップＳ１１０４では、ジャーナル・ログ制御部９０１が、ジャーナリング領域２０４に記録されている有効なジャーナル・ログが全て解放されているかどうかを判定する。ＹＥＳの場合、処理を終了し、ＮＯの場合（有効だが、解放されていないジャーナル・ログが存在した場合）は、ステップＳ１１０３へ移り、ジャーナル・ログの解放処理を実施する。
【００７０】
ステップＳ１１０５では、ジャーナル・ログ制御部９０１が、自ら保持するジャーナリングファイルシステム９００にてジャーナリング機能の設定を更新する。そして、ステップＳ１１０６へ移る。ステップＳ１１０６では、ジャーナル・ログ制御部９０１が、ジャーナリングファイルシステム９００に設定された設定に基づいてジャーナル・ログ記録処理を実施する。
【００７１】
以上の様に、本実施形態では、ジャーナルリング機能の設定を変更した際の、ジャーナル・ログの反映漏れを抑制し実施形態１のようにジャーナリングファイルシステムのように再マウント処理を実施することなく、ジャーナリング機能を動的に切り替ることができる。
【００７２】
上述の実施形態ではＯＳとしてＬｉｎｕｘ（登録商標）、ファイルシステムとしてｅｘｔ３を用いているが、本発明はＬｉｎｕｘ（登録商標）以外のオペレーティングシステムやｅｘｔ３以外のファイルシステムについても適用できる。その場合、二次記憶装置についてのファイル操作をジャーナリングファイルシステムのように多段階で反映させる構成があればよい。
【００７３】
上述の実施形態では詳細を説明していないが、ウェアレベリング機能はＦｌａｓｈ  ＳＳＤの種類によってウェアレベリングのアルゴリズムが異なっている場合が少なくない。そのため、ウェアレベリング機能の利用の有無に応じて、本実施形態のジャーナリング機能の有無を切り替えてもよい。例えば、Ｆｌａｓｈ  ＳＳＤなどのハード的なウェアレベリングを備えるものをマウントする際は、自動的にジャーナリング機能を無効に設定するようにしてもよい。
【００７４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が読み取り可能なプログラムを読み出して実行する処理である。
【符号の説明】
【００７５】
１０１  ＣＰＵ
１０２  一次記憶装置
１０３  Ｉ／Ｏコントローラ
１０４  二次記憶装置
２０３  ジャーナル・ログ記録部
２０４  ジャーナリング領域
２０５  動作状態管理部
２０６  ジャーナル・ログ記録制御部
９０１  ジャーナル・ログ制御部
【図１】
2014153872.tif 000003
【図２】
2014153872.tif 000004
【図３】
2014153872.tif 000005
【図４】
2014153872.tif 000006
【図５】
2014153872.tif 000007
【図６】
2014153872.tif 000008
【図７】
2014153872.tif 000009
【図８】
2014153872.tif 000010
【図９】
2014153872.tif 000011
【図１０】
2014153872.tif 000012
【図１１】
2014153872.tif 000013