우리 서버 중 하나에서 여러 개의 60G 논리 볼륨을 포맷하고 있습니다( vg01-logs
및 . vg01-monitoring
이 파티션에는 많은 작은 파일이 저장되므로 기본값보다 더 많은 inode를 갖기를 원합니다.
root@mercury20:/root : lvs /dev/mapper/vg01-logs /dev/mapper/vg01-monitoring
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
logs vg01 -wi-ao---- 60.00g
monitoring vg01 -wi-ao---- 60.00g
vg01-logs
에 설치 예정입니다 /logs
. 최대 수의 inode를 생성 ext4
하기 위해 (inode당 바이트) 옵션을 사용하여 포맷했으며 -i 1024
예상대로 포맷 후 파티션에 62914560개의 inode가 있었습니다.
mkfs.ext4 -i 1024 /dev/vg01/logs
포스트 포맷 및 설치:
root@mercury20:/root : tune2fs -l /dev/mapper/vg01-logs | egrep 'Inode count|Inode size'
Inode count: 62914560
Inode size: 256
root@mercury20:/root : df -h /logs
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg01-logs 45G 61M 42G 1% /logs
이제 파티션을 마운트한 후 df -h
60G 논리 볼륨 파티션의 출력 크기는 45G입니다. 즉. 15G가 사라졌습니다. inode 크기가 256바이트이고 15G가 62914560*256
바이트이므로 이 공간(15G)은 inode 생성을 위해 예약되어 df
출력에서 손실됩니까?
vg01-monitoring
마운트할 다른 논리 볼륨이 기본 옵션을 사용하여 포맷 /monitoring
되었습니다 . 생성된 파티션에는 파티션(62914560)과 동일한 수의 inode가 있지만 여기서는 포맷하고 마운트한 후 표시된 드라이브 크기가 원래 60G입니다. 15G는 손실되지 않습니다. XFS 파티션의 inode 크기는 256바이트로 표시되며 이는 .XFS
mkfs.xfs
ext4
df -h
xfs_info
ext4
root@mercury20:/root : mkfs.xfs -f /dev/mapper/vg01-monitoring
root@mercury20:/root : df -h /monitoring
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg01-monitoring 60G 33M 60G 1% /monitoring
root@mercury20:/root : xfs_info /dev/mapper/vg01-monitoring
meta-data=/dev/mapper/vg01-monitoring isize=256 agcount=4, agsize=3932160 blks
내 질문은 다음과 같습니다.
1) 첫 번째 경우인 파티션의 경우 60G 중 15G가 inode용으로 예약되어 있으므로 여유 공간이 45G에 불과하다고 ext4
가정합니다 df -h
. 맞습니까?
2) 위의 가정이 맞다면 XFS 파티션에 45G 대신 60G가 표시되는 이유는 무엇입니까? 이는 XFS가 inode가 생성될 때만 "사용됨"으로 inode에서 소비한 크기를 표시한다는 의미입니까? 이는 XFS가 60G를 사용할 수 있다고 표시하더라도 두 드라이브의 사용자 데이터를 위한 유효 공간은 45G라는 것을 의미합니다.
운영 체제는 SUSE Linux Enterprise Server 12(x86_64)입니다.
root@mercury20:/root : cat /etc/os-release
NAME="SLES"
VERSION="12-SP1"
VERSION_ID="12.1"