ジャーナルファイルシステム
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ジャーナル(ジャーナリング)ファイルシステムとは、書き換え処理要求(トランザクション)単位で内包するファイル構成情報を含むメタデータを管理/保持できる機能を持ったファイルシステムのこと。
重要なデータを扱うシステムにおいて、細分化されたファイルや大規模なファイルなどの更新を行う際、ファイルシステムのメタデータ書き換え処理において比較的長い時間が必要となり、その書き換え中に電源断や処理中断が発生した場合、ファイル構成情報に矛盾が発生し、最悪データへのアクセスが不可能となってしまう。
このような状況を避けるため、UNIXで云うi-node情報やWindowsのSuperBlockやFNODEといったファイルシステム上のメタデータを書き換え処理(トランザクション)単位で管理/保持する事ができる機能を持ったファイルシステムのことである。
目次 |
[編集] 概要
[編集] 既存ファイルシステムの問題点
一般にディスク上のファイルシステムに書き込まれるデータには、データ自体を現す実データ部分とその実データのディスク上の位置、ファイル名/更新日時、アクセス権限などの管理情報を現すメタデータ部分の2種類に分類される。
実際にハードディスクにデータを書き込む際のファイルシステムの動きを追ってみる。 ファイルシステムは、その上に実データを記録する場合、実データの書き込みを行い、その上にその実データを管理するメタデータを書き出さなくてはならない。
このメタデータの記録に時間が掛かる場合、つまり非常に小さいファイル群の記録(管理データが増える)やその逆の非常に大きなファイル(実データがどこにあるかの管理データが増える)を記録するような際に、そのメタデータの書き込みを行っている最中に、何らかの原因(例えば電源断)により書き込み処理が中断したとする。 その場合、メタデータとして記録した情報に不整合が発生し、実データの配置や管理情報矛盾などが起こり、実データへのアクセス手段を失ってしまう事になる。
[編集] 初期の回避策
この問題を回避する方法として、システムが再起動した際にハードディスク全体をスキャンするプログラムを実行して、矛盾を修正する方法が用意された。
このチェックプログラムと各OSは以下の様。
これらのプログラムは起動時に自動的にチェックするような対応が取られている。
しかし、これらのツールを使用して、起動時にチェックする方法には以下のような問題点が残される。
- 実データとメタ情報の突合せ確認を行うため、全ディスクの情報を検証するための処理とディスク全体の再スキャンに非常に時間がかかる。
- スキャンプログラムによるチェック時に想定以外の問題を検出した場合、不整合なデータを削除するため、実データ自体が失われてしまう可能性が残る。
この問題を解決するため、ジャーナルファイルシステムが導入された。
[編集] 根本的な解決策(ジャーナルファイルシステムの導入)
初期の回避策で回避できない問題点に対し、それぞれの実データ書き込みよりもメタデータの書き込みを先行的に行い、書き込み要求に従ってそのメタデータを「ジャーナル」と呼ばれる領域に逐次記録し、更新する事で対処するジャーナルファイルシステムが考案され、実装された。
メタデータを先行的に書き込み、実データ書き込み要求に従ってその変更点を反映し、複数回分のメタデータをジャーナルに保持/管理する事で、ファイル更新中の書き込み中断に対処する事ができる。
この方法を取る事により、メタデータと実データ間の矛盾が発生しても、矛盾が発生する前のメタデータに強制的に戻す事により、実データを含むファイル自体の消失を避ける事ができる。この方法は、ハードディスク全体を詳細にスキャンするより遥かに処理時間を短くする事が可能である。
一般にジャーナルによって保護されるのはメタデータまでで、ファイルの中身までは保護されない。つまり、ジャーナリングファイルシステムを導入することで、システムクラッシュにともなうファイルの消失という事態は避けられるものの、保存したはずの内容が保存されていなかったという事態が起こる可能性は十分に考えられる。
ただし、Linuxのext3等、いくつかのジャーナリングファイルシステムでは実データの保護も行っている。
[編集] 経緯
元々、汎用機において重要な業務データを扱う際のファイルのメタデータ保持方法から考案されたものであり、汎用機のファイル管理ツールの設計思想をPCで取り入れるべく考慮された。 そのため、オープン系での最初のジャーナルファイルシステムは、汎用機及び高可用トレラントコンピュータ向けのOSを作っていたIBMのJFS(OS/2向け1987年)及び、Tolerant Software(VERITAS)のVxFS(UNIX System V向け1989年)である。
- VxFS
- また、ほぼ同時期に、UNIXの汎用機置き換え需要に合わせ、1980年代後半にTolerant Software(VERITAS社の前身)がAT&T UNIX System Laboratoriesの協力を得て、自社のハイアベイラビリティ・オペレーティングシステムからUNIX System V向けに価値あるコードを抽出し、トランザクションベースのボリュームマネージャと共にUNIX向けジャーナルファイルシステムを業界で初めて開発したものが、VxFSとして提供された。
その後、UNIXライクなOSの発展に伴い、多くのジャーナルファイルシステムが考案され、実装されている。
[編集] ジャーナルファイルシステム製品
[編集] 商用UNIXでのサポート
[編集] Linuxでのサポート
[編集] Windowsでのサポート
- NTFS(無償)
[編集] Macでのサポート
- HFS+(ジャーナリングはMac OS X 10.2.2から加わった)
その他のOSでのジャーナリングファイルシステムは以下の通り。