우리 서버 중 하나에서 두 개의 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를 생성하기 위해 (inode당 바이트) 옵션을 ext4
사용 하여 포맷했으며 -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
포맷되었습니다 . 파티션은 파티션과 동일한 수의 inode(62914560)로 생성되었지만 여기에서는 포맷 및 마운트 후 드라이브 크기가 원래 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라는 의미입니까?
OS는 SUSE Linux Enterprise Server 12(x86_64)입니다.
root@mercury20:/root : cat /etc/os-release
NAME="SLES"
VERSION="12-SP1"
VERSION_ID="12.1"