아이노드 번호에 대한 혼란

아이노드 번호에 대한 혼란

xfs 파일 시스템에서 내 인상은 다음과 같습니다.

# xfs_info /dev/mapper/rootvg-root
meta-data=/dev/sda1              isize=512    agcount=16, agsize=1285043 blks
         =                       sectsz=4096   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=19730834, imaxpct=25
         =                       sunit=64      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=5119, version=2
         =                       sectsz=4096   sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

imaxpct=25- 파일 시스템 inode가 차지할 수 있는 공간의 비율입니다.

isize=512- 각 단일 inode의 크기(바이트)

그래서 아래 설정을 보면 다음과 같습니다.

# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-root        80G  42G   38G   51% /

# df -hi
Filesystem                   Inodes IUsed IFree IUse% Mounted on
/dev/mapper/rootvg-root        1.3M   27K   1.3M    1% /

내 inode 수가 최대 130만 개에 불과하다는 것이 어떻게 가능합니까? 각 inode가 512바이트라면 inode가 차지할 수 있는 전체 디스크 공간(완전히 사용된 경우)은 665MB에 불과하다는 의미입니다. 80GB의 25%는 20GB이므로 그보다 훨씬 더 많은 inode가 있을 것으로 예상됩니다.

mkfs.xfs에는 inode 수를 결정하는 옵션이 없으며 각 inode의 크기와 inode가 차지할 수 있는 파일 시스템의 비율만 표시됩니다.

내가 여기서 놓친 아이디어가 있습니까? 이는 rhel 7 및 xfs 파일 시스템용입니다.

답변1

기존 Unix 파일 시스템과 달리 XFS는 모든 inode를 동시에 할당하지 않습니다 mkfs. 대신, 제한에 도달할 때까지 요청 시 새로운 inode를 생성합니다 imaxpct. 이는 사용되지 않은 inode의 "낭비된" 디스크 공간을 최소화합니다.

기본 제한이 사용하기에 적합하지 않은 경우 imaxpct파일 시스템이 마운트되어 활성화되어 있는 동안 유틸리티 옵션을 사용하여 -m이를 조정할 수 있습니다.xfs_growfs

이것의 부작용은 파일 시스템이 실제로 제한에 도달할 만큼 충분한 inode를 생성할 이유가 있을 때까지 파일 시스템에서 사용 가능한 최대 inode 수를 Inodes값이 반영하지 않는다는 것입니다 .df -iimaxpct

관련 정보