EXT2, EXT3, EXT4 파일시스템의 예약된 블럭에 대한 글이다.
RHEL 7 부터는 XFS 파일시스템이 기본이 되었다. EXT 파일시스템은 최대 볼륨 사이즈의 제약, 불필요한 예약 공간 등의 단점이 있다.
리눅스에서 EXT4 파일시스템으로 파일시스템을 생성(포맷)을 하면 기본적으로 5%의 예약된 공간으로 인해 root 외의 사용자는 할당된 용량의 95%만 사용이 가능하다.
이것은 성능과 관련이 있다. 즉, 단편화에 대한 성능저하 이슈를 없애기 위한 방편인데, 성능보다는 저장공간이 더 필요하다면 조정할 수 도 있다.
예약 공간 확인
iSCSI 외장스토리지 40G 를 할당하여 LVM 구성 후 ext4 파일시스템으로 생성하고 해당 볼륨의 예약된 블럭의 크기를 확인 했다.
[root@cs-node02 ~]# tune2fs -l /dev/vg00/share | grep 'Reserved block'
Reserved block count: 488243
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
해당 볼륨의 파일시스템 디스크 공간 사용량 확인
[root@cs-node02 ~]# df -k | head -1 && df -k | grep share
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg00-share 38446576 292952 36200652 1% /share
예약 공간 조절
5% 예약된 볼륨의 값을 줄이기 위해서는 아래와 같이 실행한다. 해당 설정은 볼륨이 온라인인 상태에서도 가능하다.
[root@cs-node02 ~]# tune2fs -r 51200 /dev/vg00/share
--> 4096 byte * 51200 size 만큼만 예약 공간으로 두는 설정
또는
[root@cs-node02 ~]# tune2fs -m 1 /dev/vg00/share
--> 해당 볼륨의 예약공간을 1% 만큼만 할당을 한다.
또는
[root@cs-node02 ~]# mkfs.ext4 -m 1 /dev/vg00/share
--> 파일시스템을 생성하면서 부터 1% 만 예약 공간으로 설정할 수도 있다.
* 참고로 EXT 파일시스템 예약공간은 기본적으로 root만 사용할 수 있고, 예약공간을 사용할 수 있는 유저를 root에서 다른 유저로 바꿀 수도 있다.
아래는 관련된 레드햇의 문서이다.
Why does the output of df show 5% less free space than is physically present on a freshly formatted filesystem?
https://access.redhat.com/solutions/1189733
https://access.redhat.com/solutions/2076