질문:파일 시스템에 미리 정의된 여유 공간을 제공하는 데 필요한 ext4 파티션의 크기를 계산하는 방법은 무엇입니까?
예: 100GB의 공간이 있는 파일 시스템을 원하고(에 따르면 df
) GParted의 새 ext4 파티션에 필요한 MiB 공간이 얼마나 되는지 알고 싶습니다.
df
배경: 표시된 파일 시스템 크기 lsblk -b
(1K 블록은 1024바이트)와 (1 크기 단위는 1바이트) 다른 것으로 나타났습니다 . lsblk
보여주니까 이해가 되네요분할그리고 df
표시된 사이즈는파일 시스템(실제로 파일에 사용할 수 있는 공간)
예:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda10 90187896 57032 85506480 1% /home/user
$ lsblk -b
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda10 8:10 0 94371840000 0 part /home/user
df-calculation: 90187896*1024 = 92352405500 bytes
lsblk: 94371840000 bytes
overhead: 1 - 92352405500/94371840000 ~ 2.14%
기본 ext4 구성(GParted, LinuxMint 및 기타)을 사용하면 블록 대 inode 비율은 4:1, 블록 크기는 4096, inode 크기는 256이므로 데이터 대 inode 비율은 64:1입니다(출처 : tune2fs -l
). 따라서 inode 테이블은 ext4 파일 시스템 오버헤드의 1.5625%만을 차지합니다.
남은 오버헤드는 어디에서 발생하며 어떻게 계산되나요? 다양한 ext4 파티션 크기(10,000~380,000MiB)로 테스트했는데 오버헤드는 ~1.8~2.3% 사이에서 변동했지만 파티션 크기가 증가함에 따라 감소하는 것처럼 보였습니다(그림 참조).
참고 사항 #1:내 질문은 KiB(21⁰바이트) 대 KB(103바이트), MiB(22⁰바이트) 대 MB(10⁶바이트), GiB(23⁰바이트) 대 GB(10⁹바이트) 등과 관련이 없습니다.
참고 사항 #2:이는 또한 에 표시된 대로 예약된 블록(기본값은 5%)과 무관합니다 df
.
답변1
음, 사용 가능최대 용량로 추정할 수 있습니다 [Partition Size] * (1 - inode_size / inode_ratio - reserved-blocks-percentage)
. 따라서 특정 용량을 얻으려면 ..을 계산하십시오 [Partition Size] = [Capacity] / (1 - inode_size / inode_ratio - reserved-blocks-percentage)
. 일반적인 값은 /etc/mke2fs.conf를 참조하십시오.