不同文件系统的空间开销是多少?

不同文件系统的空间开销是多少?

我将文件系统从 Ubuntu 系统备份/恢复到 Fedora 17 系统。我注意到根据df输出,已用空间增加了 30%。这可能是什么原因?

Fedora 系统df显示:已使用 78 GB

Ubuntu系统df显示:已使用60GB

系统之间的差异:

Ubuntu:ext3(多年前创建)

Fedora 17:ext4(使用普通mkfs.ext4调用创建)

恢复到 XFS 文件系统(在 Fedora 17 上)会产生 78 GB 的已用空间。

备份和恢复是使用 GNU tar 完成的。文件系统包含各种不同类型的文件(即从源代码树、maildirs 到 ISO 等)。

答案1

首先想到的是“稀疏文件”。传统上,人们可以创建一个文件,其中的数据位于文件的某个偏移量处,然后寻求更大的偏移量。当将数据写入更大的偏移量时,文件系统不会为中间的偏移量分配磁盘块。在没有分配磁盘块的情况下读取这些偏移量的程序读取零值。

压缩稀疏文件会导致未分配磁盘块的稀疏文件在 tar 文件(或输出流)和重新创建的文件中的偏移量分配磁盘块。

我记得一些 DBMS 创建了稀疏文件,就像 MSC/NASTRAN(有限元建模系统)这样的程序一样。备份这些稀疏文件最终会使用大量离线存储,这让所有相关人员都感到惊讶。

答案2

当您看到空间差异时要注意的另一件事是为 root 保留的空间(通常在 ext{2,3,4} 上为 5%)。即使用户填满了磁盘(只要该用户不是 root),该空间也允许操作系统运行(写入日志文件等)。

您可以使用以下命令查看此设置tune2fs -l

[root@host ]# tune2fs -l /dev/md0 |grep Reserved
Reserved block count:     1279986
Reserved GDT blocks:      1017
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

您可以在 ext 文件系统上禁用此功能tune2fs -m 0 /dev/NAME

从快速查看来看,我不相信 xfs 为 root 保留了空间

相关内容