我有一个非常高密度的容器虚拟化环境,所以我试图让每个容器都非常小。“非常小”意味着在基本Ubuntu 14.04 (Trusty Tahr)上有 87 MB,而不会破坏包管理器的兼容性。
所以我使用LVM作为容器的后备存储,最近我发现了非常奇怪的数字。他们来了。
让我们创建一个 100 MiB(是的,2 的幂)逻辑卷。
sudo lvcreate -L100M -n test1 /dev/purgatory
Run Code Online (Sandbox Code Playgroud)
我想检查尺寸,所以我发出 sudo lvs --units k
test1 purgatory -wi-a---- 102400.00k
Run Code Online (Sandbox Code Playgroud)
太好了,这真的是 100 MiB。
现在让我们制作一个ext4文件系统。当然,我们记住了-m 0
防止空间浪费的参数。
sudo mkfs.ext4 -m 0 /dev/purgatory/test1
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
0 blocks (0.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008 …
Run Code Online (Sandbox Code Playgroud) 我最近格式化了一个 1.5 TB 驱动器,打算用 ext4 替换 ntfs。
然后我注意到我保存的文件不适合新分区。
df:
ext4 (ext3 & ext2 show the same behavior)
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb1 1442146364 71160 1442075204 1% /media/Seagate
ntfs (similar to all other options that gparted offers):
/dev/sdb1 1465137148 110700 1465026448 1% /media/Seagate
Run Code Online (Sandbox Code Playgroud)
1K 块的差异意味着可用空间明显减少了 22 GiB。
我已经执行了
tune2fs -O \^has_journal
tune2fs -r 0
tune2fs -m 0
Run Code Online (Sandbox Code Playgroud)
不出所料,没有效果,因为这不会影响不存在的块。
尽管如此,fdisk 报告 ext4 分区覆盖了整个磁盘。
fdisk -l /dev/sdb:
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support …
Run Code Online (Sandbox Code Playgroud)