OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

Linuxのext4ファイルシステム構成の確認

カテゴリ:OSSセットアップ | ソフトウェア:Linux | タグ:
最終更新日:2020/11/19 | 公開日:2014/08/03

目次

概要

 Red Hat Enterprise LinuxやCentOSの事実上の標準ファイルシステムである ext4 の構成について調べたので備忘録としてまとめます。 ext4 は ext2 や ext3 の後継ファイルシステムで、様々な改良が加えられています。 詳細は割愛しますので、必要な方はRed Hatの公式サイトでご確認ください。

■関連サイト
Ext4 ファイルシステム

 ext4 のファイルシステム構成は大まかに下図のような構成になっています。 各領域のブロック数は設定により変わる可能性がありますが、 初期状態ではだいたいこのような構成になっていると思います。

ext4ファイルシステムの構成

 ではext4の構成について実機を使って構成を確認してみます。

構成

サーバ構成

OSバージョン

CentOS 6.5 x86_64

手順

 ext4 ファイルシステムの情報は dumpe2fs コマンドで確認することができます。 確認に使用したサーバでは /dev/sda1 パーティションを 300MB で作成し、 /boot ディレクトリにマウントして利用しています。 LVMは構成していません。 コマンドを実行した結果は以下の通りとなります。

# dumpe2fs /dev/sda1
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   
Last mounted on:          /boot ←/bootにマウントされている
Filesystem UUID:          ae85d133-a8f8-4382-a0b5-b3f90866e405
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              76912
Block count:              307200 ←総ブロック数(307200/1024=300MB)
Reserved block count:     15360 ←総ブロック数のうち5%(rootユーザだけが書けるブロック数)
Free blocks:              257788 ←総ブロック数のうち空きブロック数
Free inodes:              76873
First block:              1
Block size:               1024 ←1ブロックサイズは1024バイト(2セクタ)
Fragment size:            1024
Reserved GDT blocks:      256 ←グループディスクリプタテーブルの予約サイズ
Blocks per group:         8192 ←1ブロックグループ当たり8192ブロック(8MB)
Fragments per group:      8192
Inodes per group:         2024
Inode blocks per group:   253
Flex block group size:    16
Filesystem created:       Sun Jul 20 15:45:25 2014 ←ファイルシステム作成日時
Last mount time:          Tue Jul 22 06:50:30 2014
Last write time:          Tue Jul 22 06:50:30 2014
Mount count:              4
Maximum mount count:      -1
Last checked:             Sun Jul 20 15:45:25 2014
Check interval:           0 ()
Lifetime writes:          47 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      f307634d-9237-4bd8-bb47-745014832847
Journal backup:           inode blocks
Journal features:         (none)
Journal size:             8M
Journal length:           8192
Journal sequence:         0x00000023
Journal start:            1


Group 0: (Blocks 1-8192) [ITABLE_ZEROED] ←ブロックグループ0の情報
  Checksum 0xa6f4, unused inodes 2006
  Primary superblock at 1, Group descriptors at 2-3
  Reserved GDT blocks at 4-259
  Block bitmap at 260 (+259), Inode bitmap at 276 (+275)
  Inode table at 292-544 (+291)
  3836 free blocks, 2006 free inodes, 2 directories, 2006 unused inodes
  Free blocks: 4357-8192
  Free inodes: 19-2024
Group 1: (Blocks 8193-16384) [INODE_UNINIT, ITABLE_ZEROED] ←ブロックグループ1の情報
  Checksum 0xc66a, unused inodes 2024
  Backup superblock at 8193, Group descriptors at 8194-8195
  Reserved GDT blocks at 8196-8451
  Block bitmap at 261 (+4294959364), Inode bitmap at 277 (+4294959380)
  Inode table at 545-797 (+4294959648)
  1147 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 15238-16384
  Free inodes: 2025-4048
Group 2: (Blocks 16385-24576) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xbbd4, unused inodes 2024
  Block bitmap at 262 (+4294951173), Inode bitmap at 278 (+4294951189)
  Inode table at 798-1050 (+4294951709)
  0 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks:
  Free inodes: 4049-6072
Group 3: (Blocks 24577-32768) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x4c8d, unused inodes 2024
  Backup superblock at 24577, Group descriptors at 24578-24579
  Reserved GDT blocks at 24580-24835
  Block bitmap at 263 (+4294942982), Inode bitmap at 279 (+4294942998)
  Inode table at 1051-1303 (+4294943770)
  1789 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 24836-26624
  Free inodes: 6073-8096
Group 4: (Blocks 32769-40960) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x3efb, unused inodes 2024
  Block bitmap at 264 (+4294934791), Inode bitmap at 280 (+4294934807)
  Inode table at 1304-1556 (+4294935831)
  384 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 40577-40960
  Free inodes: 8097-10120
Group 5: (Blocks 40961-49152) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x949c, unused inodes 2024
  Backup superblock at 40961, Group descriptors at 40962-40963
  Reserved GDT blocks at 40964-41219
  Block bitmap at 265 (+4294926600), Inode bitmap at 281 (+4294926616)
  Inode table at 1557-1809 (+4294927892)
  7933 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 41220-49152
  Free inodes: 10121-12144
Group 6: (Blocks 49153-57344) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x539a, unused inodes 2024
  Block bitmap at 266 (+4294918409), Inode bitmap at 282 (+4294918425)
  Inode table at 1810-2062 (+4294919953)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 49153-57344
  Free inodes: 12145-14168
Group 7: (Blocks 57345-65536) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x4db8, unused inodes 2024
  Backup superblock at 57345, Group descriptors at 57346-57347
  Reserved GDT blocks at 57348-57603
  Block bitmap at 267 (+4294910218), Inode bitmap at 283 (+4294910234)
  Inode table at 2063-2315 (+4294912014)
  7933 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 57604-65536
  Free inodes: 14169-16192
Group 8: (Blocks 65537-73728) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xda1a, unused inodes 2024
  Block bitmap at 268 (+4294902027), Inode bitmap at 284 (+4294902043)
  Inode table at 2316-2568 (+4294904075)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 65537-73728
  Free inodes: 16193-18216
Group 9: (Blocks 73729-81920) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xa36c, unused inodes 2024
  Backup superblock at 73729, Group descriptors at 73730-73731
  Reserved GDT blocks at 73732-73987
  Block bitmap at 269 (+4294893836), Inode bitmap at 285 (+4294893852)
  Inode table at 2569-2821 (+4294896136)
  7933 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 73988-81920
  Free inodes: 18217-20240
Group 10: (Blocks 81921-90112) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xc2e3, unused inodes 2024
  Block bitmap at 270 (+4294885645), Inode bitmap at 286 (+4294885661)
  Inode table at 2822-3074 (+4294888197)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 81921-90112
  Free inodes: 20241-22264
Group 11: (Blocks 90113-98304) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x08f8, unused inodes 2024
  Block bitmap at 271 (+4294877454), Inode bitmap at 287 (+4294877470)
  Inode table at 3075-3327 (+4294880258)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 90113-98304
  Free inodes: 22265-24288
Group 12: (Blocks 98305-106496) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x7f17, unused inodes 2024
  Block bitmap at 272 (+4294869263), Inode bitmap at 288 (+4294869279)
  Inode table at 3328-3580 (+4294872319)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 98305-106496
  Free inodes: 24289-26312
Group 13: (Blocks 106497-114688) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xef0c, unused inodes 2024
  Block bitmap at 273 (+4294861072), Inode bitmap at 289 (+4294861088)
  Inode table at 3581-3833 (+4294864380)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 106497-114688
  Free inodes: 26313-28336
Group 14: (Blocks 114689-122880) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xfd01, unused inodes 2024
  Block bitmap at 274 (+4294852881), Inode bitmap at 290 (+4294852897)
  Inode table at 3834-4086 (+4294856441)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 114689-122880
  Free inodes: 28337-30360
Group 15: (Blocks 122881-131072) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xf7f5, unused inodes 2024
  Block bitmap at 275 (+4294844690), Inode bitmap at 291 (+4294844706)
  Inode table at 4087-4339 (+4294848502)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 122881-131072
  Free inodes: 30361-32384
Group 16: (Blocks 131073-139264) [ITABLE_ZEROED]
  Checksum 0xe8a0, unused inodes 2003
  Block bitmap at 131073 (+0), Inode bitmap at 131089 (+16)
  Inode table at 131105-131357 (+32)
  4108 free blocks, 2003 free inodes, 4 directories, 2003 unused inodes
  Free blocks: 135157-139264
  Free inodes: 32406-34408
Group 17: (Blocks 139265-147456) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xb143, unused inodes 2024
  Block bitmap at 131074 (+4294959105), Inode bitmap at 131090 (+4294959121)
  Inode table at 131358-131610 (+4294959389)
  0 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks:
  Free inodes: 34409-36432
Group 18: (Blocks 147457-155648) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x4a95, unused inodes 2024
  Block bitmap at 131075 (+4294950914), Inode bitmap at 131091 (+4294950930)
  Inode table at 131611-131863 (+4294951450)
  7686 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 147963-155648
  Free inodes: 36433-38456
Group 19: (Blocks 155649-163840) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xce74, unused inodes 2024
  Block bitmap at 131076 (+4294942723), Inode bitmap at 131092 (+4294942739)
  Inode table at 131864-132116 (+4294943511)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 155649-163840
  Free inodes: 38457-40480
Group 20: (Blocks 163841-172032) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x4ce6, unused inodes 2024
  Block bitmap at 131077 (+4294934532), Inode bitmap at 131093 (+4294934548)
  Inode table at 132117-132369 (+4294935572)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 163841-172032
  Free inodes: 40481-42504
Group 21: (Blocks 172033-180224) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x26c9, unused inodes 2024
  Block bitmap at 131078 (+4294926341), Inode bitmap at 131094 (+4294926357)
  Inode table at 132370-132622 (+4294927633)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 172033-180224
  Free inodes: 42505-44528
Group 22: (Blocks 180225-188416) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x590e, unused inodes 2024
  Block bitmap at 131079 (+4294918150), Inode bitmap at 131095 (+4294918166)
  Inode table at 132623-132875 (+4294919694)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 180225-188416
  Free inodes: 44529-46552
Group 23: (Blocks 188417-196608) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x8042, unused inodes 2024
  Block bitmap at 131080 (+4294909959), Inode bitmap at 131096 (+4294909975)
  Inode table at 132876-133128 (+4294911755)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 188417-196608
  Free inodes: 46553-48576
Group 24: (Blocks 196609-204800) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x04d2, unused inodes 2024
  Block bitmap at 131081 (+4294901768), Inode bitmap at 131097 (+4294901784)
  Inode table at 133129-133381 (+4294903816)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 196609-204800
  Free inodes: 48577-50600
Group 25: (Blocks 204801-212992) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0xff5c, unused inodes 2024
  Backup superblock at 204801, Group descriptors at 204802-204803
  Reserved GDT blocks at 204804-205059
  Block bitmap at 131082 (+4294893577), Inode bitmap at 131098 (+4294893593)
  Inode table at 133382-133634 (+4294895877)
  7933 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 205060-212992
  Free inodes: 50601-52624
Group 26: (Blocks 212993-221184) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x1c2b, unused inodes 2024
  Block bitmap at 131083 (+4294885386), Inode bitmap at 131099 (+4294885402)
  Inode table at 133635-133887 (+4294887938)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 212993-221184
  Free inodes: 52625-54648
Group 27: (Blocks 221185-229376) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x8d8b, unused inodes 2024
  Backup superblock at 221185, Group descriptors at 221186-221187
  Reserved GDT blocks at 221188-221443
  Block bitmap at 131084 (+4294877195), Inode bitmap at 131100 (+4294877211)
  Inode table at 133888-134140 (+4294879999)
  7933 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 221444-229376
  Free inodes: 54649-56672
Group 28: (Blocks 229377-237568) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xc4b8, unused inodes 2024
  Block bitmap at 131085 (+4294869004), Inode bitmap at 131101 (+4294869020)
  Inode table at 134141-134393 (+4294872060)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 229377-237568
  Free inodes: 56673-58696
Group 29: (Blocks 237569-245760) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xc8f1, unused inodes 2024
  Block bitmap at 131086 (+4294860813), Inode bitmap at 131102 (+4294860829)
  Inode table at 134394-134646 (+4294864121)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 237569-245760
  Free inodes: 58697-60720
Group 30: (Blocks 245761-253952) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x5804, unused inodes 2024
  Block bitmap at 131087 (+4294852622), Inode bitmap at 131103 (+4294852638)
  Inode table at 134647-134899 (+4294856182)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 245761-253952
  Free inodes: 60721-62744
Group 31: (Blocks 253953-262144) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x23c8, unused inodes 2024
  Block bitmap at 131088 (+4294844431), Inode bitmap at 131104 (+4294844447)
  Inode table at 134900-135152 (+4294848243)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 253953-262144
  Free inodes: 62745-64768
Group 32: (Blocks 262145-270336) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x6d5b, unused inodes 2024
  Block bitmap at 262145 (+0), Inode bitmap at 262161 (+16)
  Inode table at 262177-262429 (+32)
  6662 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 262151-262160, 262167-262176, 263695-270336
  Free inodes: 64769-66792
Group 33: (Blocks 270337-278528) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x55e5, unused inodes 2024
  Block bitmap at 262146 (+4294959105), Inode bitmap at 262162 (+4294959121)
  Inode table at 262430-262682 (+4294959389)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 270337-278528
  Free inodes: 66793-68816
Group 34: (Blocks 278529-286720) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x81ba, unused inodes 2024
  Block bitmap at 262147 (+4294950914), Inode bitmap at 262163 (+4294950930)
  Inode table at 262683-262935 (+4294951450)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 278529-286720
  Free inodes: 68817-70840
Group 35: (Blocks 286721-294912) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x2732, unused inodes 2024
  Block bitmap at 262148 (+4294942723), Inode bitmap at 262164 (+4294942739)
  Inode table at 262936-263188 (+4294943511)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 286721-294912
  Free inodes: 70841-72864
Group 36: (Blocks 294913-303104) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xa5a0, unused inodes 2024
  Block bitmap at 262149 (+4294934532), Inode bitmap at 262165 (+4294934548)
  Inode table at 263189-263441 (+4294935572)
  8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 294913-303104
  Free inodes: 72865-74888
Group 37: (Blocks 303105-307199) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x155a, unused inodes 2024
  Block bitmap at 262150 (+4294926341), Inode bitmap at 262166 (+4294926357)
  Inode table at 263442-263694 (+4294927633)
  4095 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes
  Free blocks: 303105-307199
  Free inodes: 74889-76912

 ちょっと分かりづらいので、表にしてみました。

ファイルシステムのブロック使用状況まとめ

 各ブロック種別の意味は以下の通りです。

ブートブロック OSの起動に必要なブートローダなどが格納されます。
スーパーブロック i-nodeの総数やブロックサイズ、空きブロック数などファイルシステムに関する情報が記録されます。通常はブロックグループ0のもののみ使用され、その他のブロックグループのものはコピーです。
グループディスクリプタ データブロックビットマップ、i-nodeビットマップ、i-nodeテーブルのアドレスを管理します。通常はブロックグループ0のもののみ使用され、その他のブロックグループのものはバックアップとして利用されます。
予約済みGDTブロック GDTはグループディスクリプタテーブルです。グループディスクリプタ1ブロックで管理できるファイルシステムのサイズに限りがありますので、ファイルシステムを拡張すると追加でグループディスクリプタが必要となります。そのための予約ブロックです。
ブロックビットマップ データブロックの使用状況が記録されます。
i-nodeビットマップ i-nodeの使用状況が記録されます。
i-nodeテーブル ファイルやディレクトリなどのi-nodeを格納します。
データブロック 実データを格納します。

 dfで確認すると、/boot の使用済みブロック数は 39,697 ブロック、実際にデータが 入っているブロックが 37,649 ブロック。差分の 2,048 ブロックはどこまで含まれるのだろう?(調査中)

# df
Filesystem                                1K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00            10321208 2775100   7021820  29% /
tmpfs                                       1898016       0   1898016   0% /dev/shm
/dev/sda1                                    297485   39697    242428  15% /boot
/dev/mapper/VolGroup00-LogVol02            10321208  246672   9550248   3% /var