ext(extended file system)
- Linux 向けに作成された最初のファイルシステム
- ext2, ext3, ext4 ファイルシステムでは、万が一ファイルシステムの全ブロックを一般ユーザが使い切った場合でも root による作業を可能にするため root ユーザ専用の領域が確保されている
- => デフォルトでは全ブロックの 5 %
ext2
- ext を拡張したファイルシステム
ext3
- ext2 にジャーナリング機能を加えたファイルシステム
- ジャーナリング機能
- 注意
- Oracle と違い、トランザクション終了時にバッファの情報をディスクに書き出すわけではないので、バッファにある最新データがロストすることがある
- ベストエフォート
- ユーザプロセスがファイルの更新をリクエスト
- ジャーナルにおいて I/O トランザクションが開始
- 2
- メタデータがジャーナルにコピーされる
- 実データおよびメタデータがメモリ上で更新される
- トランザクションを終了し、ユーザプロセスに返答する
- Kjournald (5 秒間隔) によるジャーナルの書き出しの前に、bdflush によってキャッシュ上のデータがディスクに書き出される
- データの書き込み後に、ジャーナルを書き出す(コミット)
- 2
- コミットの後、データがディスクに書き出されており、不要になっているジャーナルを開放する(チェックポイント)
- メタデータが非同期に書き出される
- 注意
- ロールバック
- ジャーナルを読んで実データの情報を過去に戻すこと
- ロールフォワード
- ジャーナルを読んで実データの情報を先に進めること
ext4
- ext3 を機能拡張したファイルシステム
ジャーナリング機能
ファイルシステムに対する書き換え処理のコマンドをファイルシステムに逐一記録する機能
コンピュータが急停止し、ファイルのデータがファイルシステムに書き込み途中である場合、処理されていないコマンドを対処する
- ファイルの書き込み途中の場合、書き込み終わっていないデータが無くて書き込みを終われないので、途中までディスクに保存されているファイルの管理情報を消し、書き込み途中のファイルが作られなかった状態にする
モード
- journal
- メインファイルシステムより前に、すべてのデータがジャーナルに記録される
- ordered
- メタデータがジャーナルに記録される前に、すべてのデータがメインファイルシステムに直接書き出される(デフォルト)
- writeback
- メタデータがジャーナルに記録された後で、データがメインファイルシステムに書き込まれる
- ファイルシステムの完全性が保証されるが、クラッシュ後のリカバリでファイルの内容が以前の内容に戻ることもある
- journal
sdc1(3 つ目のインターフェースの 1 つ目のパーティション) に ext3 形式のファイルシステムを作成
# mkfs -t ext3 -c /dev/sdc1
mke2fs 1.39 (29-May-2006) Filesystem label=opt
(ハードディスクのラベル)
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
70400 inodes, 140568 blocks
7028 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=146800640
5 block groups
32768 blocks per group, 32768 fragments per group
14080 inodes per group
Superblock backups stored on blocks:
32768, 98304
Checking for bad blocks (read-only test): done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.