PR

 ジャーナリングは,ファイル処理中に何らかの障害が発生した場合に短時間で復旧できるような手がかり(ログ)を残す,ファイル管理手法である。

 ファイルをコピーしたり,ファイルの名称を変更したりする場合,必ず無事に実行できるとは限らない。ファイル処理中にOS(カーネル)が異常停止したり,停電が発生してシステムが停止したりすることがあり得るためだ。

 このような場合,処理中だったファイルの内容は保障できない。例えば,実際には書き換えたことになっているファイルが,実は書き換えられていない可能性がある。ファイルの中身だけでなく,ハード・ディスク上のファイルの位置やファイル名などの管理情報の整合性が失われる場合もある。

 ファイル処理が中断した場合,従来はfsckコマンドなどを用いて,ハード・ディスクに記録された実際のファイルと管理情報を照合することにより,整合性を確認する必要があった。ハード・ディスク全体について整合性を確認するため,相当な時間がかかる上,ファイルが失われている可能性も高かった。

 そこで導入されたのが,ジャーナリングである。ジャーナリングの考え方は,ファイル処理の内容をログとして記録してから,実際のファイル処理に入るというものだ。たとえ,ファイル処理が中断したとしても,ログを参照することで,どの時点の処理までが正常に終了したか,どこから後の処理が不完全なのかが分かる。

 また,ログを見れば,ファイル処理が正常に終了したかどうかが一目瞭然なため,ハード・ディスク全体の整合性を確認しなくても,すぐに復旧処理に取りかかることができる。

 ジャーナリング機能を利用するには,ジャーナリングに対応したジャーナル・ファイル・システムが必要である。Linuxでは,Ext2にジャーナル機能を付加したExt3をはじめ,JFS,ReiserFS,XFSなどのジャーナル・ファイル・システムが利用できる。

 ジャーナリングには欠点もある。最大の欠点は,ログを記録する分,ファイル操作時間が長くなりがちなことだ。そのため,例えばExt3の標準設定では管理情報のみをジャーナル化し,データ自体のジャーナル機能はオフに設定されている。