【文献】
腰前秀成,Ext3ファイルシステムにおけるジャーナリング処理,UNIX USER,日本,ソフトバンクパブリッシング株式会社,2005年 7月 1日,第14巻 第7号,69−79ページ
(58)【調査した分野】(Int.Cl.,DB名)
前記設定は、前記書き込み手段によって前記第2の記憶領域に書き込む履歴情報の詳細度合い、または、前記書き込み手段によって前記履歴情報を前記第2の記憶領域へ書き込むか否かを示す情報を含むことを特徴とする請求項1に記載の情報処理装置。
前記書込み手段は、前記記憶装置の第1の記憶領域に前記実データまたは前記メタ・データを書き込む前に前記履歴情報を前記第2の記憶領域に書き込むことを特徴とする請求項1または2に記載の情報処理装置。
前記情報処理装置が省電力状態であることを前記検出手段が検出すると、前記履歴情報を前記第2の記憶領域に記録しないように前記制御手段が前記書き込み手段を制御することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
前記書き込み手段は、前記第2の記憶領域に前記第1の記憶領域に書き込むファイルのメタ・データ及びファイルの実データを履歴情報であるジャーナル・ログとして書き込むことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
前記情報処理装置は、前記情報処理装置が省電力モードである状態、前記情報処理装置がデータ閲覧モードである状態、前記情報処理装置がデータ保護モードである状態の少なくともいずれか1つを含む複数の状態のうちの1つに遷移し、前記検出手段は当該複数の状態のいずれか1つを検出することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
前記ジャーナリングモードはwritebackモードを含み、当該writebackモードでは、前記書き込み手段は前記第2の記憶領域にメタ・データを書き込みしてから前記ジャーナリング領域以外のデータ領域に実データを書き込みすることを特徴とする請求項10に記載の情報処理装置。
前記ジャーナリングモードはorderedモードを含み、当該orderedモードでは、前記書き込み手段は前記第2の記憶領域以外のデータ領域に実データを書き込みしてから前記ジャーナリング領域にメタ・データを書き込みすることを特徴とする請求項10に記載の情報処理装置。
前記ジャーナリングモードはjournalモードを含み、当該journalモードでは、前記書き込み手段は前記第2の記憶領域に実データとメタ・データとを書き込みしてから前記ジャーナリング領域以外のデータ領域に前記実データを再び書き込みすることを特徴とする請求項10に記載の情報処理装置。
情報処理装置の取り得る少なくとも3つの状態と当該状態に対応する少なくとも3つの設定とを対応づけて保持する保持手段と記憶装置とを備える情報処理装置による情報処理方法であって、
前記記憶装置の第1の記憶領域に書き込む実データまたは当該実データに関するメタ・データを含む履歴情報を、前記記憶装置の第2の記憶領域に書き込む書き込み工程と、
前記情報処理装置の状態を検出する検出工程と、
前記保持手段を参照し、前記検出工程にて検出された状態に対応する設定に基づいて前記書き込み工程を制御する制御工程と
を有し、
前記記憶装置に記録された情報の参照時に前記第2の記憶領域に前記履歴情報の記録を行わない動作状態であることを前記検出工程で検出すると、前記制御工程で前記履歴情報を前記第2の記憶領域に記録しないように前記書き込み手段を制御する
することを特徴とする処理方法。
【発明を実施するための形態】
【0010】
<実施形態1>
実施形態1では、情報処理装置の動作状況に応じてジャーナリングファイルシステムにおけるジャーナリング機能を動的に制御することで、ジャーナル・ログの記録量を抑制する。以下、図面を参照して本発明の実施形態1を詳細に説明する。
図1は、実施形態1の情報処理装置100の概略構成を示す図である。まず、
図1を用いて情報処理装置の基本構成の概略を説明する。
【0011】
情報処理装置100においては、通常、CPU101が複数のプロセスを1つずつ処理し、一定期間ごとに処理を切り替えて実施する。ここで、CPU101は、演算処理などを行なうプロセッサコアを複数備えてもよいし、CPU101自体を情報処理装置100に複数備えてもよい。一次記憶装置102は、展開してCPU101に読み込ませるプログラムやデータを一時的に記録する揮発性の記憶装置でありSDRAMやSRAMなどを備える。一次記憶装置102に展開するプログラムやファイル、ディレクトリ等のデータは、二次記憶装置104に記録する。二次記憶装置104は不揮発性の記憶装置であり、磁気ディスクの様に磁性体が塗布された記憶装置、書き込み回数に制限のあるNAND型フラッシュメモリを利用してデータを記録する記憶装置、あるいは、半導体レーザーを利用してデータを記録する光ディスク、赤色レーザー光と磁場を用いてデータを記録する光磁気ディスク、情報処理装置に対して挿抜の可能な不揮発性のメモリカードあるいは不揮発性のフラッシュメモリを用いることができる。Flash SSDのように不揮発のフラッシュメモリを内蔵する不揮発性の記憶装置でありハードディスクドライブと同等の機能を実現可能に構成されているものを利用してもよい。情報処理装置100は起動する際に、二次記憶装置104で保持している圧縮プログラム(OSや後述のフローを実現するプログラム、オプションなどを含む)を一次記憶装置102に展開し、CPU101が一次記憶装置102に展開したプログラムを実行することで後述のジャーナリングファイルシステムを実現する。
【0012】
二次記憶装置104にあるファイルの操作は、CPU101で実現されるオペレーティングシステムからI/Oコントローラ103を介して、READ要求(読出し要求)、WRITE要求(書込み要求)を行うことで実現する。
【0013】
次に本実施形態で利用するジャーナリングファイルシステムについて説明する。
【0014】
一般的なファイルシステムに記録される情報は、情報の内容にあたるデータ部分(実データとも呼称される)とその情報の管理情報にあたるメタ・データとを有する。データ部分とメタ・データとが分かれて構成されるため、ファイル操作中に電源断や記憶媒体の取り出しなどの異常事象が発生した場合に、ファイルの内容とファイルの管理情報との間で整合性が取れなくなることがある。ジャーナリングファイルシステムは、このような整合性が取れなくなる事態を回避するため、まずファイルやディレクトリの更新内容とその管理情報とを含む履歴情報を二次記憶装置に記録し、その後、二次記憶装置の記録された内容を更新する。このように2段階の処理で二次記憶装置上のファイルを操作することで、途中で整合性が取れなくなることを抑制する。
【0015】
ジャーナリングファイルシステムは、二次記憶装置上にファイルシステムを構築する際、その二次記憶装置上に、履歴情報であるジャーナル・ログを記録し管理するためのジャーナリング領域(第2の記憶領域)と、バイナリデータやテキストデータにて構成されたファイルやファイルを管理するディレクトリの内容を記録するデータ領域(第1の記憶領域)とを確保する。ここで、ジャーナル・ログとは、二次記憶装置の操作中に障害が発生した場合に、ファイル操作中の状態を復旧できるようにファイルやディレクトリの更新操作履歴(操作情報)と更新内容とファイルシステムの管理情報であるメタ・データの更新内容とを保持したログ情報である。
【0016】
例えば、ジャーナリングファイルシステムのジャーナリング領域へジャーナル・ログを記録する機能(以下、ジャーナリング機能)を備える、ファイルシステムext3(third extended file system)において、メタ・データは、二次記憶装置104の記憶領域の管理単位であるブロックグループの管理情報と、このブロックグループ内に記録されるファイルに関する管理情報とを含む。ブロックグループの管理情報は、そのブロックグループに含まれる各ブロックの使用状況を0と1とで表現したブロックビットマップが格納されたブロック番号、ファイルの管理情報を保持するinodeの使用状況を0と1とで区別したinodeビットマップのブロック番号、inodeブロックの開始ブロック番号、ブロックグループの空きブロック数、ブロックグループの空きinode数、ブロックグループのディレクトリ数がある。なお、物理的に複数の二次記憶装置104を備えていてもよい。
【0017】
また、ファイルに関する管理情報は、inodeの保持する情報である。具体的には、シンボリックリンクやデバイスファイルのようなファイルの種類を表すファイルモード、ファイルサイズ、ファイル最終参照時刻、ファイル最終状態変更時刻、ファイル最終更新時刻、ファイル削除時刻、ユーザID、グループID、ファイルリンク数、使用ブロック数、ブロック番号、世代番号などを含む。
【0018】
なお、inodeとはUnix(登録商標)系ファイルシステムで用いられることの多いデータ構造であり、inodeにはファイル、ディレクトリなどのファイルシステム上のオブジェクトに関する基本情報を格納し、全てのファイルはinodeにリンクされている。
【0019】
図2は、情報処理装置100の主要な機能構成を物理構成と関連づけて示す概略図である。情報処理装置100では、CPU101が実現するオペレーティングシステム200を利用し、情報処理装置の物理リソースとソフトウェアリソースとの管理を行う。そして、オペレーティングシステム200上でプロセス201が動作し、情報処理装置の機能の制御を行う。
【0020】
ジャーナリングファイルシステム202は、二次記憶装置104上にジャーナル・ログを記録するジャーナリング領域204を有し、ジャーナリング機能が有効の場合、ジャーナル・ログ記録部203においてジャーナリング領域204へジャーナル・ログを記録する。
【0021】
動作状態管理部205は、情報処理装置100の取り得る動作状態を動作状態管理テーブル207にて定義し、情報処理装置100の動作状態を管理する。情報処理装置100の動作状態の切り替えは、オペレーティングシステム上で動作するプロセス201が動作状態管理部205を通じて行う。
【0022】
ジャーナル・ログ記録制御部206は、ジャーナル・ログ内容管理テーブル208にてジャーナル・ログの記録内容の詳細度合いを段階的に複数定義する。そして、動作状態管理部205の動作状態管理テーブル207にて管理する動作状態に対し記録するジャーナル・ログの内容を動作状態対応管理テーブル209にて保持する。ジャーナル・ログ記録制御部206は、この動作状態対応管理テーブル209の対応情報に基づいてジャーナリング機能の制御を行う。
【0023】
なお、動作状態管理テーブル207、ジャーナル・ログ内容管理テーブル208、動作状態対応管理テーブル209は二次記憶装置上に格納する。
【0024】
次に、ジャーナリングファイルシステムのジャーナリング領域204についてより詳細を説明する。
【0025】
図3は、ジャーナリングファイルシステムのジャーナル領域204やトランザクションの詳細を示す図である。ジャーナリングファイルシステムでは、複数個のジャーナル・ログを1つのトランザクション303としてまとめて、バッファ上ではトランザクション単位でジャーナリング領域に記憶している。
【0026】
同図のジャーナリング領域204は、ジャーナリング情報管理ブロック300と、トランザクション領域303(本来は、トランザクション領域303に1トランザクション単位を書き込むので別物であるが、以降は特に説明がなければ同等のものとしてトランザクション303と略称する。)の記録と解放を繰り返すリングバッファ301とを含む。本実施形態ではジャーナリング領域204は、固定のサイズ(固定長)である。しかし、二次記憶装置104の記憶領域の総量の5%程度で2のべき乗の値をジャーナリング領域204のサイズとして用いるようにしてもよい。
【0027】
ジャーナリング情報管理ブロック300では、トランザクションの開始位置情報302を保持している。開始位置情報302は、リングバッファ301に記録された最も古いトランザクションを保持していたトランザクション領域303の開始位置(先頭アドレスやブロック番号など)を保持している。
【0028】
トランザクション303は、二次記憶装置104へ書きだすブロック情報を管理し保持するディスクリプタブロック304とメタ・データブロック305、そしてトランザクションの終了を示すコミットブロック306とを含む。これらの詳細は後述する。
【0029】
次に、ジャーナル・ログ記録部203に対する処理の流れについて説明する。ジャーナリングファイルシステムのジャーナル・ログ記録部203は、アプリケーションからデータ書き込み操作が行われると、まず、一次記憶装置102上のデータと、ファイルシステムの管理情報にあたるメタ・データとを変更する。
【0030】
そして、これらの変更のうちジャーナル・ログの記録対象を複数個まとめてトランザクション303として、二次記憶装置104上のジャーナリング領域204のリングバッファ301に書き込む。ここで、ファイル操作の種類毎にトランザクション303としてまとめるようにしてもよい。また、リングバッファ301にトランザクションを書き込む際は、開始情報位置302を参照し最も更新された時期が古いトランザクション領域303を上書きする。なお、ログを書き込む際には最も更新された時期が古いトランザクションであっても有効なジャーナル・ログを保持している場合には上書きをしない。
【0031】
その後、ジャーナリングファイルシステム202はジャーナリング領域204に保持したジャーナル・ログのうち二次記憶装置104へ反映する対象について、実際に二次記憶装置104のデータ領域(ジャーナリング領域以外の領域の1つ)へ反映する(矢印210)。ジャーナリングファイルシステム202がジャーナリング領域204に保持しているジャーナル・ログをデータ領域へ反映するトリガとしては、ジャーナリング領域204に保持している有効なトランザクションが設定された所定のサイズ(ジャーナリング領域のサイズの4分の1や2分の1など)を超えた場合とする。なお、所定時間(5秒単位)毎に反映するように構成してもよい。なお、1つのトランザクション303について、このトランザクション303が含む全てのジャーナル・ログに関して、二次記憶装置104のデータ領域への反映が完了すると、ジャーナリングファイルシステム202がこのトランザクション303を解放する。具体的には、トランザクション303毎に、自身が有効か無効かを示すvalidビットを備え、validビットを有効から無効に変更することで解放する。ここで、ジャーナリングファイルシステム202は、反映しようとするトランザクション303についてトランザクション303の先頭から二次記憶装置104のデータ領域への同期を行う。そして、最後のコミットブロックについてデータ領域との同期が完了すると、このトランザクション303についての反映処理が終了したことが分かる。そして、開始位置情報302を、次のトランザクションの先頭の位置情報に更新(開始位置がアドレスの場合はトランザクション長、ブロックの場合はトランザクション分のブロック数を加算)する。更新前のトランザクション領域は、新しいジャーナル・ログに書き込む際に参照する。
【0032】
ジャーナリングファイルシステム202は、二次記憶装置104のジャーナリング領域204とデータ領域(不図示)との両方に並行して書き込みを行う。また、ジャーナル・ログの記録はメタ・データの更新時に行われるため、メタ・データにファイル最終参照時刻のように読み込みアクセスで更新される項目が含まれる場合には、ファイルを更新していない場合でもジャーナル・ログを記録する。
【0033】
ジャーナリング機能について、記録対象とするジャーナル・ログの内容や記録順は、ジャーナリングファイルシステムのマウント時にオプションとして指定する。なお、本実施形態の情報処理装置100はLinux(登録商標)をオペレーティングシステムとして利用し、ファイルシステムとしてext3を使用する。また、以降の説明では、ファイルシステムの「マウント」とは、デバイスを認識した上で、ファイルシステムが二次記憶装置202を認識させ、ファイルを読み書きできるようにさせる操作のことを示す。詳細には、二次記憶装置104の記憶資源を利用可能にするために、二次記憶装置104の記憶資源を全体の記憶資源の構造を示すツリー構造へ組み込む作業のことを示す。単に、二次記憶装置104の記憶資源を利用可能にするために必要な初期作業と解釈することもできる。なお、逆の操作(例えば、ツリー構造から切り離す作業)を「アンマウント」と呼ぶ。
【0034】
情報処理装置100のシステム起動時にオペレーティングシステムがマウントコマンドを発行する際、マウントコマンドのオプションとして、ジャーナリング機能の設定(例えば、記録するジャーナル・ログの内容の詳細度合い、制御方式)を指定する。具体的には、「data=ordered」と指定することで、メタ・データをジャーナル・ログとしてジャーナリング領域へ記録する設定をする。そして、「data=journal」と指定することで、メタ・データとファイルの更新内容をジャーナル・ログとしてジャーナリング領域へ記録する設定をする。また、オプションとして「data=writeback」と指定することも可能である。この場合、メタ・データをジャーナル・ログの記録対象とすることは、「data=ordered」と同様であるが、ファイル更新内容に対するデータ領域の更新とジャーナル・ログの記録との順番が異なる。「data=ordered」では、データ領域の更新後、ジャーナル・ログの記録が行われるが、「data=writeback」では、データ領域の更新とジャーナル・ログの記録との順番が任意のタイミングで行われ保証されていない。journalモードでは、メタ・データと実データの両方をジャーナリング領域に格納するため、ファイルシステムの破損とデータ損失を抑制できが、すべての実データがジャーナリング領域とデータブロックとへ2回書き込まれるため(最初にジャーナリング領域に書き込み、次にデータブロックに再び書き込む)、他のモードに比べて書込み処理パフォーマンスは低下する。ジャーナリングモードはジャーナリング設定として予めユーザに設定させてもよいし、ファイルシステムがデータの種別に応じて自動で判断してもよい。例えば、リアルタイム性の高いデータを操作する際にはwritebackモードやorderedモードを用いて、認証やQOSに用いるデータやファイルシステムの更新やシステムリカバリに利用する重要なデータを操作する際にはjournalモードを用いるなどすればよい。なお、ジャーナリング設定はファイル管理ブロックに格納することが好ましい。
【0035】
また、マウントコマンド実行時に「noatime」とオプションを指定することで、ファイル参照時に生じるメタ・データのファイル最終参照時刻の更新に応ずるジャーナル・ログの記録を抑制することもできる。なお、ジャーナリング機能を有効にしている場合、二次記憶装置104上のジャーナル領域204が、ファイルシステムへのアクセス時に繰り返し利用されるため、ジャーナリング機能が無効の場合よりも二次記憶装置104の特定の記憶構成にたいしての書き込み回数が多くなる。
【0036】
次に、
図7、
図8を用いて、本実施形態におけるジャーナリング機能の切り替え手順について説明する。
図7は、情報処理装置100の電源投入後からジャーナル・ログの記録内容制御を行うまでの処理の流れを示すフローチャートである。
【0037】
ステップS700にて、情報処理装置100の電源が投入され(または再起動や、「スタンバイ、スリープ、休止状態」などの省電力モードからの復帰により)、処理が開始される。ステップS701にて、情報処理装置100のオペレーティングシステムがジャーナリングファイルシステムをマウントする。電源投入後から二次記憶装置104の論理的に分割された対象区分に対する初回のジャーナリングファイルシステムのマウント時には、コマンド実行時に指定されたオプション(初期設定、または前回の設定)に従いジャーナル・ログの記録を制御する。
【0038】
ジャーナリングファイルシステムのマウント後、情報処理装置100の起動中はステップS702からステップS704が繰り返し行われる(S702の上部とS704の下部に示すのはループ記号であり、アンマウントやシャットダウン等によってループを抜ける)。ステップS702では、動作状態管理部205がオペレーティングシステムのタイマ機構を利用してジャーナリングファイルシステムのマウント後の時間経過を監視し、所定の時間間隔が経過したかどうかを判定する。所定の時間間隔が経過した場合、ステップS704に移る。所定の時間間隔が経過していない場合、ステップS703へ移る。
【0039】
ステップS703では、動作状態管理部205が情報処理装置100の動作状態が変化したかどうかを判定し、動作状態が変化したと判定した場合は、ステップS704に移る。変化していない場合は、ステップS702へ移る。
【0040】
ステップS704では、ジャーナル・ログ記録制御部206が、
図8に示すジャーナリング機能の制御を実施する。
【0041】
図8は、
図7のステップS704の処理の内容を詳細化したもので、ジャーナル・ログ記録制御部206がジャーナリング機能の設定(ジャーナル・ログの記録内容)を制御する処理の流れを示すフローチャートである。ステップS800にて、ジャーナル・ログ記録制御部206が動作状態対応管理テーブル209を参照し、情報処理装置100に設定されているジャーナリング機能の設定を示すタイプIDが、現在の情報処理装置100の動作状態(モードID)に対応するタイプID(動作状態対応管理テーブル209に登録されているタイプID)と一致しているかどうかを判定する。ジャーナル・ログの記録内容が一致していた場合、適切なジャーナリング機能の設定がされているのでそのまま処理を終了する。不一致の場合、ステップS801へ移る。
【0042】
ステップS801では、ジャーナル・ログ記録制御部206がジャーナリングファイルシステムをアンマウントするとともに、一次記憶装置102上に格納されたファイルシステムの更新データと、二次記憶装置104のジャーナリング領域204に保持している有効なジャーナル・ログを(あれば)二次記憶装置104のデータ部へ反映する。そして、ステップS803へ移る。
【0043】
ステップS802では、ジャーナル・ログ記録制御部206が動作状態対応管理テーブル209を参照し、情報処理装置100の現在の動作状態に対応したジャーナリング機能の設定を反映させるため、ジャーナリング機能の指定を含むオプションを利用してジャーナリングファイルシステムをマウントする。
【0044】
次に、
図4、
図5、
図6を用いて、本実施形態においてジャーナリング機能の設定や制御に利用する各種テーブルの詳細について説明する。
【0045】
図4は、動作状態管理部205により管理する動作状態管理テーブル207を示す図である。動作状態管理テーブル207では、モードIDを設け情報処理装置が遷移する複数の動作モードを区別して管理する。同図は、通常モード、データ保護モード、データ閲覧モード、省電モード(省電力状態)を設けている。
【0046】
通常モードは、ジャーナリング機能を利用しつつも、後述のデータ保護モードよりもログの内容が少ないような動作状態である。データ保護モードは、二次記憶装置の整合性保護を最も重視した動作モードである。情報処理装置に記憶する個人情報や機密に相当する重要な情報、また機器の設定内容やFWウェアの更新データのように情報処理装置の動作に影響を与える情報を更新する形態を検出また指定されたことに基づいて、整合性保護を重視する動作状態と捉え、データ保護モードとする。
【0047】
データ閲覧モードは、二次記憶装置104に格納されたデータ参照を行うだけで、二次記憶装置104上へのデータ保存を実施しない動作モードである。使用者が二次記憶装置上に記録したファイルについて編集を行わずに閲覧を行う形態をデータ閲覧モードとする。
【0048】
省電モードは、情報処理装置の有する機能の利用時や装置の操作時に消費される電力量を低減することを優先しつつも、オペレーティングシステム202が動作するモードである(電源遮断は含まない)。主電源からの電力供給を受けず充電池のみの電力で動作する時や、二次記憶装置へのジャーナル・ログの記録を必要としない形態も省電モードとする。ジャーナル・ログの記録が不要な形態として、削除される一次データのように整合性を保つ必要がない情報の記録時や、ジャーナル情報処理装置を使用者が直接操作し保存完了まで操作される使用形態時、また、無停電電源装置(不図示)が機能している時のように情報処理装置の動作中に電源断が発生しない場合がある。
【0049】
そして、ジャーナル・ログ記録制御部206によるジャーナル・ログの記録の動的な制御を行わないモードも設けている。例えば、頻繁な情報処理装置の操作によりジャーナル・ログの記録内容の動的制御に伴う処理負荷が容認できず無効としたい場合や、他の理由で動的制御を不要としたい場合を想定した動作モードである。
【0050】
ステップS800〜S802の説明で記載したように、動作状態管理テーブル207に従い、オペレーティングシステム上のプロセス201は、情報処理装置100の利用状況に応じたジャーナリング機能の設定の切り替えを行う。
【0051】
例えば、ユーザが機器設定をしようとする操作は、ユーザの設定情報をデータとしてファイル操作することになり、重要度が高いためデータ保護モードに情報処理装置の動作状態を切り替える。また、ファームウェアやオペレーティングシステムに関わるプログラムをアップデートしようとすることを動作状態管理部205が検出した場合も、同様にデータ保護モードにしてもよい。
【0052】
また、ユーザによる操作が二次記憶装置104に格納されているファイルの閲覧(Read)のみを行う機器操作の場合には、データ閲覧モードへ切り替える。そして、主電源の供給がカットされ充電池からの電力供給に切り替わった場合、省電モードへ情報処理装置の動作状態を切り替えてもよい。なお、上述した条件だけであると、装置の状態などによっては複数個の動作モードが適合する場合がある。例えば、バッテリ駆動中に機器設定が行われる状態は、データ閲覧モードと省電モードのどちらの条件も満たしている。複数個の動作モードが適合してしまう情報処理装置100では、予めモードに優先度を設け動作モードを一意に決定できる状態にする。例えば、データ保護モードを省電モードよりも優先度を高くしておき、バッテリ駆動中に機器設定を行う場合にはデータ保護モードに切り替わるようにする。
【0053】
図5は、ジャーナル・ログ記録制御部206によって参照するジャーナル・ログ内容管理テーブル208を示す。ジャーナル・ログ内容管理テーブル208では、タイプIDを設けジャーナリングファイルシステムが対応したジャーナル・ログの記録内容の詳細度を段階的に定義している。
【0054】
同図は、記録内容として、メタ・データとデータ更新内容(実際にデータ部に反映させる実データの一部)、メタ・データ、ジャーナル・ログなしの3つ段階を設けている。なお、ext3ファイルシステムにおけるorderedモードとwritebackモードのように、ファイルシステムにはジャーナル・ログの記録内容が同一で記録方式の異なるジャーナリング機能(ログ機能)が存在する。このように、記録内容が同一な場合、記録方式の異なる各機能に対応するタイプIDをジャーナル・ログ内容管理テーブル208に追加し、異なるタイプIDを利用して定義し区別する。
【0055】
図6は、ジャーナル・ログ記録制御部206によって管理する動作状態対応管理テーブル209を示す。動作状態対応管理テーブル209は、動作状態管理テーブル207が管理するモードID(情報処理装置100の動作状態を示す)と、ジャーナル・ログ内容管理テーブル208が管理するタイプID(ジャーナル・ログの記録設定を示す)との対応関係を保持する。この動作状態対応管理テーブル209の内容は、情報処理装置100の製品出荷時などに1次記憶装置102内のROMなどに設定されるものとする。もちろん、インターネット回線等を通じたファームアップデート時に設定してもよいし、ユーザが設定するようにしてもよい。
【0056】
以上のように、本実施形態では、情報処理装置の動作状態を管理し、所定の条件を満たした際に、情報処理装置の動作状態とジャーナリング機能の利用状況を確認し、動作状態に対応したジャーナリング機能へ切り替える。これにより、ジャーナリング機能を動作状態応じて切り替えることができるため、消費電力の低減を優先したい状況や、データの参照が主となる状況において、ジャーナル・ログの記録量を抑制できる。そのため、NANDフラッシュを利用した二次記憶装置のような書き込み回数に制限のある二次記憶装置では特に摩耗対策になる。もちろんNADAフラッシュでなくとも、磁気ディスクの様に磁性体が塗布された二次記憶装置の場合では、特定セクタへの書き込みを抑制することで、特定セクタの磁性低下による不良ブロックの増加を低減することができる。
【0057】
<実施形態2>
以下、図面を参照して実施形態2を詳細に説明する。なお、実施形態1と同一機能を有する構成や工程には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。本実施形態では、情報処理装置の動作状況に応じてジャーナリング機能をより動的に制御する。
【0058】
図9は、実施形態2に係る情報処理装置100の主要な構成を示す図である。実施形態1の構成に加えてジャーナル・ログ制御部901とジャーナル・ログ記録制御部902を備える。ジャーナリングファイルシステム900は、ジャーナル・ログ制御部901を有する。
【0059】
ジャーナル・ログ制御部901は、ジャーナル・ログの記録内容を保持し、オペレーティングシステム上のプロセス201に対するインタフェースとしてジャーナリング機能の変更要求を受け付け、ジャーナル・ログ記録部203におけるジャーナル・ログの記録処理および解放処理の設定を制御する。
【0060】
ジャーナル・ログ記録制御部902は、ジャーナリングファイルシステム900がジャーナル・ログ制御部901を利用したジャーナリング機能の制御を行うように各種テーブルを管理する。
【0061】
次に、
図10、
図11を用いて、本実施形態におけるジャーナリング機能の切り替え手順について説明する。本発明の実施形態2における情報処理装置100の電源投入後からジャーナル・ログの記録内容制御を行うまでの処理の流れは、実施形態1の
図7と同様である。ジャーナリングファイルシステムのマウント後、一定時間間隔の経過時、または情報処理装置の動作状態変化時に、ステップS704にて、ジャーナル・ログ記録制御部902が、
図10に示すジャーナル・ログの記録内容制御を行う。
【0062】
図10は、第二の実施形態における
図7のステップS704の処理を詳細化したもので、ジャーナル・ログ記録制御部902がジャーナリング機能の設定を制御する処理の流れを示すフローチャートである。ステップS1000はステップS800と同様なので説明を省略する。
【0063】
ステップS1001では、ジャーナル・ログ記録制御部902が動作状態対応管理テーブル209を参照し、情報処理装置100の現在の動作状態に対応するジャーナリング機能の設定をジャーナル・ログ制御部901へ指定する。そして、ステップS1002へ移る。ステップS1002では、ジャーナル・ログ制御部901が、
図11に示すジャーナリング機能の制御を実施する。
【0064】
図11は、
図10のステップS1002の処理を詳細化したもので、ジャーナル・ログ制御部901がジャーナリング機能の制御の流れを示すフローチャートである。
【0065】
ステップS1100では、ジャーナル・ログ制御部901が、ジャーナル・ログ記録制御部902から指定されたジャーナリング機能の設定がが、ファイルシステムの現在のジャーナリング機能の設定と一致しているかどうかを判定する。一致している場合、ジャーナリング機能の設定を変更する必要がないのでそのまま終了する。一方で一致していない場合は、ステップS1101に移る。
【0066】
ステップS1101では、ジャーナル・ログ制御部901が、ジャーナル・ログ記録制御部902から指定された内容について、ジャーナル・ログの記録を停止する旨の変更であるかどうかを判定する。そして、ジャーナル・ログの記録を停止するための変更であると判定した場合は、ステップS1102へ移り、そうでない場合は、ステップS1105へ移る。
【0067】
ステップS1102では、ジャーナル・ログ制御部901が、ジャーナリングファイルシステム900のジャーナル・ログ記録処理を停止する。詳細には、ジャーナル・ログ制御部901がジャーナル・ログ記録部203に対して、新たなジャーナル・ログの記録を制限する指示を発行する。そして、ジャーナル・ログ制御部901が、自ら保持するジャーナリングファイルシステム900にてジャーナリング機能の設定を「タイプID=2:ジャーナル・ログなし」に更新する。そして、ステップS1103へ移る。
【0068】
ステップS1103では、ジャーナル・ログ制御部901が、ジャーナリング領域204に記録されている有効なジャーナル・ログについて、二次記憶装置104上のデータ領域へ反映し、反映したジャーナル・ログを解放する。そして、S1104へ移る。
【0069】
ステップS1104では、ジャーナル・ログ制御部901が、ジャーナリング領域204に記録されている有効なジャーナル・ログが全て解放されているかどうかを判定する。YESの場合、処理を終了し、NOの場合(有効だが、解放されていないジャーナル・ログが存在した場合)は、ステップS1103へ移り、ジャーナル・ログの解放処理を実施する。
【0070】
ステップS1105では、ジャーナル・ログ制御部901が、自ら保持するジャーナリングファイルシステム900にてジャーナリング機能の設定を更新する。そして、ステップS1106へ移る。ステップS1106では、ジャーナル・ログ制御部901が、ジャーナリングファイルシステム900に設定された設定に基づいてジャーナル・ログ記録処理を実施する。
【0071】
以上の様に、本実施形態では、ジャーナルリング機能の設定を変更した際の、ジャーナル・ログの反映漏れを抑制し実施形態1のようにジャーナリングファイルシステムのように再マウント処理を実施することなく、ジャーナリング機能を動的に切り替ることができる。
【0072】
上述の実施形態ではOSとしてLinux(登録商標)、ファイルシステムとしてext3を用いているが、本発明はLinux(登録商標)以外のオペレーティングシステムやext3以外のファイルシステムについても適用できる。その場合、二次記憶装置についてのファイル操作をジャーナリングファイルシステムのように多段階で反映させる構成があればよい。
【0073】
上述の実施形態では詳細を説明していないが、ウェアレベリング機能はFlash SSDの種類によってウェアレベリングのアルゴリズムが異なっている場合が少なくない。そのため、ウェアレベリング機能の利用の有無に応じて、本実施形態のジャーナリング機能の有無を切り替えてもよい。例えば、Flash SSDなどのハード的なウェアレベリングを備えるものをマウントする際は、自動的にジャーナリング機能を無効に設定するようにしてもよい。
【0074】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が読み取り可能なプログラムを読み出して実行する処理である。