我刚刚为我的媒体服务器购买了一块 4TB 的 Western Digital Red 硬盘。我想知道为什么我将其格式化为 ext4 然后安装它会导致损失这么多空间。我知道驱动器本身的文件会丢失一些空间,但我损失的空间似乎有点多。
我已采取的步骤:
使用以下方式格式化驱动器sudo mkfs.ext4 /dev/sde
编辑 FS 选项卡,使其在启动时自动挂载
UUID=3276bc13-20a5-4225-ad33-d8fecdd5216c /wd_red_1 ext4 defaults 0 0
现在当我运行时df -h
这是我的输出
/dev/sde 3.6T 89M 3.4T 1% /wd_red_1
我总共损失了 700GB 的空间,这看起来是不是有点太多了?
相比之下,我有一块 Seagate 2TB 硬盘,我也用过同样的方法,但它只占用了 200GB(所以还有 1.8TB 可用)。我做错了什么吗?
服务器正在运行 18.04.3 LTS
答案1
光盘制造商以十进制值列出大小,因此您的 4TB HD 实际上是 4,000,000,000,000 字节。但df -h
以二进制基数列出(即 4KB 为 4096 字节,4MB 为 4,194,304 字节,4GB 为 4,294,967,296 字节,4TB 为 4,398,046,511,104 字节)。您只购买了 4,000,000,000,000 字节的光盘,因此相当于 3.63798807 TB(以二进制为基数)。这几乎就是您看到的列出的值df -h
。
你没有失去任何产能,这只是制造商玩的数字游戏。
要检查这一点,请尝试df -H
。大写字母 H 表示以十进制值列出,因此不是“3.6T”,而是“4T”或非常接近该数字。制造商甚至走得更远,他们列出的“4TB”也是近似值。实际值可能略大于或小于该值。
答案2
当然,Rich 提供的可接受答案是导致制造商规格与显示内容之间出现差异的主要原因df
。但是,有一些因素会导致您真的空间比磁盘容量显示的要小。
部分原因是ext4 文件系统的开销。这些系统非常可靠和强大。文件系统的结构需要相当大的空间。您可以阅读有关技术细节这里(感谢用户 Matt)。
另一个原因是“预留空间“已占用”,这是总驱动器容量的固定百分比。通常,对于大型驱动器,尤其是数据驱动器,该固定百分比太高了。Linux 系统通常为 root 用户和系统服务保留 5% 的新分区。这里的想法是,即使磁盘空间不足,root 用户仍然应该能够登录,系统服务仍然应该运行。如果 root 分区上没有剩余空间,就不会发生这种情况。
因此,通过减少此保留空间,您将获得空间。使用tune2fs
,您可以调整该百分比:
sudo tune2fs -m 1 /dev/sdb1
会将分区 /dev/sdb1 上的保留空间减少到 1%(此处替换您自己的分区)。对于数据驱动器,您可能可以将其设置为零。但是,为了防止积累过多的数据碎片,ext4 卷永远不应完全填满,因此除了保持在最大存储量以下之外,您还可以留下一些保留空间,这也有助于避免碎片化所需的剩余可用空间。
答案3
虽然有点晚了,但我还是进行了一些测试,可以确认 rich 和 vanadium 的回答似乎可以解释用户磁盘上“700GB(原文如此)的空间”的原因。具体来说,似乎已经丢失的 .4TB 空间之间的差异实际上是以df -h
TiB 而不是 TB 呈现输出的结果。但是,额外的 .2TiB(这次是真实的)空间丢失似乎是由文件系统造成的。
要在类似的操作系统上测试这一点(咳嗽德比安咳嗽),我创建了一个 600GB(559GiB)的分区。我首先将此分区设为 ext4 文件系统,结果如下:
bucephalopod@corfinium:~# df -H
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda1 590G 76M 560G 1% /path/to/mountpoint
bucephalopod@corfinium:~# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda1 550G 73M 522G 1% /path/to/mountpoint
接下来,我创建了一个新的 600GB (559GiB) 分区并将其变成 xfs 文件系统,结果如下:
bucephalopod@corfinium:~# df -H
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda2 600G 632M 600G 1% /path/to/second/mountpoint
bucephalopod@corfinium:~# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda2 559G 602M 558G 1% /path/to/second/mountpoint
也就是说,ext4 文件系统似乎Size
比 xfs 文件系统占用的磁盘空间小 10GiB,Available
磁盘空间也少了 30GiB。丢失的 30GiB 可用性占 590GiB 磁盘空间的 5%,这与 ext4 文件系统的保留块百分比一致。https://wiki.archlinux.org/index.php/ext4#Reserved_blocks。我大胆猜测,丢失的 10GiB 表观磁盘大小与 ext4 的每 inode 字节数比率导致的空间浪费有关https://wiki.archlinux.org/index.php/ext4#Bytes-per-inode_ratio