Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第5章 ext4 ファイルシステム

ext4 ファイルシステムは、ext3 ファイルシステムのスケーラブルな拡張です。Red Hat Enterprise Linux 7 では、最大 16 テラバイトの個別のファイルサイズとファイルシステムを最大 50 テラバイトまでサポートします。また、、(ext3 ファイルシステムは最大 32,000 しかサポートしません)無制限のサブディレクトリーにも対応していますが、リンク数が 65,000 を超える場合に限り、1 にリセットされ、増加しなくなります。bigalloc 機能は現在サポートされていません。
注記
ext3 と同様に、fsck を実行するには、ext4 ボリュームを umount にする必要があります。4章ext3 ファイルシステム
主な特長
ext4 ファイルシステムは(ext2 および ext3 で使用される従来のブロックマッピングスキームとは対照的に)エクステントを使用します。これにより、サイズが大きいファイルを使用する場合のパフォーマンスが向上し、大きなファイルのメタデータのオーバーヘッドが削減されます。また、ext4 は未割り当てのブロックグループと inode テーブルセクションにラベルを付け、ファイルシステムのチェック時にスキップできます。これにより、ファイルシステムのチェックが速くなり、ファイルシステムがサイズが大きくなるとより有益になります。
割り当て機能
ext4 ファイルシステムには、以下のような割り当てスキームが備わっています。
  • 永続的な事前割り当て
  • 遅延割り当て
  • マルチブロック割り当て
  • ストライプ認識割り当て
遅延割り当ておよびその他のパフォーマンスの最適化により、ext4 のファイルをディスクに書き込む動作は ext3 とは異なります。ext4 では、プログラムがファイルシステムに書き込む場合、プログラムが fsync() 呼び出しを発行しない限り、ディスク上の保証はありません。
デフォルトでは、ext3 は、fsync() なしでも、新規作成したファイルをほぼすぐにディスクに自動的に強制します。この動作により、fsync() を使用しないプログラムのhid のバグが、書き込まれたデータがディスク上のものになるようにします。一方、ext4 ファイルシステムは、ディスクへの変更の書き込みに数秒待機するのを待ちます。これにより、ext3 よりも優れたディスクパフォーマンスが向上され、書き込みを変えます。
警告
ext3 とは異なり、ext4 ファイルシステムはトランザクションコミットのディスクにデータを強制的に使用します。そのため、バッファーされた書き込みがディスクにフラッシュされるのにかかる時間です。ファイルシステムと同様に、fsync() などのデータ整合性コールを使用して、データが永続ストレージに書き込まれるようにします。
その他の ext4 機能
ext4 ファイルシステムは、以下にも対応しています。
  • 拡張属性 (xattr)- これにより、システムは、ファイルごとに、名前と値の組み合わせを追加で関連付けられるようになります。
  • クォータジャーナリング - クラッシュ後に行なわれる時間がかかるクォータの整合性チェックが不要になります。
    注記
    ext4 で対応しているジャーナリングモードは data=ordered (デフォルト)のみです。
  • サブセカンド(一秒未満)のタイムスタンプ - サブセカンドのタイムスタンプを指定します。

5.1. ext4 ファイルシステムの作成

  • ext4 ファイルシステムを作成する場合は、次のコマンドを使用します。
    # mkfs.ext4 block_device
    • block_device を、ブロックデバイスへのパスに置き換えます。たとえば、/dev/sdb1、/dev/disk/by-uuid/05e99ec8-def1-4a5e-8a9d-5945339ceb2a、または /dev/my-volgroup/my-lv です
    • 一般的な用途では、デフォルトのオプションが最適です。

例5.1 mkfs.ext4 コマンドの出力

以下は、作成されたファイルシステムのジオメトリーおよび機能を表示するこのコマンドの出力例です。
~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
245280 inodes, 979456 blocks
48972 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1006632960
30 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
 32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
重要
ext3 ファイルシステムで特定の ext4 機能を有効にするために、tune2fs を使用できます。ただし、この方法で tune2fs を使用することは、完全にテストされていないため、Red Hat Enterprise Linux 7 ではサポートされていません。したがって、Red Hat は、tune2fs を使用して、ext3 ファイルシステムのパフォーマンスと予測可能な動作を保証できません。

ストライプ化ブロックデバイス

ストライプ化されたブロックデバイス(RAID5 アレイなど)の場合は、ファイルシステムの作成時にストライプジオメトリーを指定できます。適切なストライプジオメトリーを使用することで、ext4 ファイルシステムのパフォーマンスが大幅に強化されます。
LVM または MD ボリュームにファイルシステムを作成する場合は、mkfs.ext4 で最適なジオメトリーを選択します。これは、ジオメトリー情報をオペレーティングシステムにエクスポートする一部のハードウェア RAID でも当てはまります。
ストライプジオメトリーを指定するには、mkfs.ext4 (拡張ファイルシステムオプション)の -E オプションを使用して、以下のサブオプションを指定します。
stride=value
RAID チャンクサイズを指定します。
stripe-width=value
RAID デバイス内のデータディスク数、またはストライプ内のストライプユニット数を指定します。
両方のサブオプションの場合は、値をファイルシステムのブロック単位で指定する必要があります。たとえば、4k ブロックのファイルシステムで、64k ストライド(16 x 4096)のファイルシステムを作成する場合は、次のコマンドを使用します。
# mkfs.ext4 -E stride=16,stripe-width=64 /dev/block_device

UUID の設定

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

関連情報

ext4 ファイルシステムの作成方法は、以下を参照してください。
  • mkfs.ext4(8) の man ページ

このページには機械翻訳が使用されている場合があります (詳細はこちら)。