第4章 ext3 ファイルシステム

ext3 ファイルシステムは、基本的に、ext2 ファイルシステムが拡張されたバージョンです。さまざまな改善点により、以下のような利点が提供されます。
可用性
予期しない停電やシステムクラッシュ (クリーンでないシステムシャットダウン とも言われる) が発生すると、マシンにマウントしている各 ext2 ファイルシステムは、e2fsck プログラムで整合性をチェックする必要があります。これは時間を浪費するプロセスであり、大量のファイルを含む大型ボリュームでは、システムの起動時間を著しく遅らせます。このプロセスの間、そのボリュームにあるデータは使用できません。
稼働中のファイルシステムで fsck -n を実行することはできますが、変更を加えることはできないため、部分的に書き込まれたメタデータが発生すると誤解を生じさせる結果になりかねません。
スタック内で LVM が使用されている場合は、ファイルシステムの LVM スナップショットを取り、スナップショットで fsck を実行する方法も考えられます。
もしくは、ファイルシステムを読み込み専用で再マウントするオプションがあります。保留中のメタデータ更新 (および書き込み) は、すべて再マウントの前にディスクへ強制的に入れられます。これにより、これ以前に破損がない限り、ファイルシステムは整合性を確保でき、fsck -n の実行が可能になります。
ext3 ファイルシステムで提供されるジャーナリングは、クリーンでないシステムシャットダウンが発生してもこの種のファイルシステムのチェックが不要であることを意味します。ext3 の使用していても整合性チェックが必要になる唯一の場面は、ハードドライブの障害が発生した場合など、ごく稀なハードウェア障害のケースのみです。クリーンでないシャットダウンの発生後に ext3 ファイルシステムを復元する時間は、ファイルシステムのサイズやファイルの数量に左右されません。むしろ、整合性の維持のために使用される ジャーナル のサイズで決まります。デフォルトのジャーナルサイズの場合は、ハードウェアのスピードにもよりますが、復元にかかる時間は1秒ほどになります。

注記

Red Hat で対応している ext3 の唯一のジャーナリングモードはdata=ordered (デフォルト) です。
データの整合性
ext3 ファイルシステムは、クリーンでないシステムシャットダウンが発生した際にデータの整合性が失われることを防止します。ext3 ファイルシステムにより、データが受けることのできる保護のタイプとレベルを選択できるようになります。ファイルシステムの状態に関しては、ext3 のボリュームはデフォルトで高度なレベルのデータ整合性を維持するように設定されています。
速度
ext3 のジャーナリングはハードドライブのヘッド動作を最適化するため、一部のデータを複数回書き込んだとしても、ほとんどのケースで、ext2 よりもスループットが高くなります。速度を最適化するために 3 つのジャーナリングモードから選択できますが、システムに障害が発生する可能性のある状況では、モードの選択はデータの整合性がトレードオフの関係になることがあります。

注記

Red Hat で対応している ext3 の唯一のジャーナリングモードはdata=ordered (デフォルト) です。
容易な移行
ext2 から ext3 へ移行して、再フォーマットをせずに堅固なジャーナリングファイルシステムの利点を活かす操作は簡単です。このタスクの実行の詳細は、「ext3 ファイルシステムへの変換」を参照してください。

注記

Red Hat Enterprise Linux 7 は、統一された extN ドライバーを提供します。これは、ext2 および ext3 設定を無効にすると提供され、これらのオンディスク形式に対して ext4.ko を使用します。これは、使用される ext ファイルシステムの種類を問わず、カーネルのメッセージは常に ext4 を参照することを意味します。

4.1. Ext3 ファイルシステムの作成

インストール後に、ext3 ファイルシステムを新たに作成する必要がある場合があります。たとえば、システムに新しいディスクドライブを追加した時に、そのドライブにパーティション設定して ext3 ファイルシステムを使用します。
  1. mkfs.ext3 ユーティリティを使用して、ext3 ファイルシステムのパーティションまたは LVM ボリュームをフォーマットします。
    # mkfs.ext3 block_device
    • ブロックデバイスへのパスで block_device を置き換えます。たとえば、/dev/sdb1/dev/disk/by-uuid/05e99ec8-def1-4a5e-8a9d-5945339ceb2a、または /dev/my-volgroup/my-lv がこれに当たります。
  2. e2label ユーティリティを使用してファイルシステムにラベル付けます。
    # e2label block_device volume_label

UUID の設定

ファイルシステムに特定の UUID を設定することも可能です。ファイルシステムを作成する際に UUID を指定するには、-U オプションを指定します。
# mkfs.ext3 -U UUID device
  • 設定したい UUID で UUID を置き換えます。例: 7cd65de3-e0be-41d9-b66d-96d749c02da7
  • UUID を追加するために、ext3 ファイルシステムへのパスで device を置き換えます。例: /dev/sda8
既存のファイルシステムの UUID を変更するには、「永続的な命名属性の変更」を参照してください。

関連資料

  • mkfs.ext3(8) man ページ
  • e2label(8) man ページ