ext2 파일 시스템에서 "세트당 Inode 블록"을 계산하는 방법은 무엇입니까?

ext2 파일 시스템에서 "세트당 Inode 블록"을 계산하는 방법은 무엇입니까?

학습용으로 100M 크기를 할당하고 드라이브를 ext2로 포맷했습니다.

이것은 다음의 출력입니다 dumpe2fs.

[root@ ext2fs]# dumpe2fs /dev/sda2
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none>
Last mounted on: /home
Filesystem UUID: dd4a8792-84b0-48a3-8356-682229114afd
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
Filesystem flags: signed_directory_hash 
Default mount options: user_xattr acl
Filesystem state: not clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 25688
Block count: 102400
Reserved block count: 5120
Free blocks: 97577
Free inodes: 25662
First block: 1
Block size: 1024
Fragment size: 1024
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 1976
***Inode blocks per group: 247***
Filesystem created: Tue Dec 12 10:08:16 2017
Last mount time: Wed Dec 13 09:23:29 2017
Last write time: Wed Dec 13 09:23:29 2017
Mount count: 4
Maximum mount count: -1
Last checked: Tue Dec 12 10:08:16 2017
Check interval: 0 (<none>)
Lifetime writes: 58 kB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Default directory hash: half_md4
Directory Hash Seed: a24eb501-5513-40fe-afeb-04b93ae8d11f

"그룹당 Inode 블록"이 어떻게 계산되는지 알고 싶습니다. 이 경우에는 247입니다.

답변1

inode는 블록 단위로 포장되어 있으며 크기는 모두 2의 거듭제곱이므로 완벽하게 맞습니다. 다음 수치에서 볼 수 있습니다.

Block size: 1024
Inodes per group: 1976
Inode size: 128

우리는 얻었다

1024B/블록
--------------- = 8개의 아이노드/블록    
 128B/인덱스 노드

1976 inode/그룹
------------------ = 247(인덱스 노드) 블록/그룹
   8개 아이노드/블록

이는 예상된 결과입니다.

나는 inode가 모든 청크 그룹에 균등하게 분산되어 있다고 생각하므로 비율 합계 (inodes/group) / (total inodes)도 동일해야 합니다 (blocks/group) / (total blocks)(마지막 청크 그룹이 가득 차지 않아 반올림될 때까지).

관련 정보