我应该使用 XFS 还是 ext4?

我应该使用 XFS 还是 ext4?

语境

我正在设置一个用于异地备份的系统。它是一个连接到两个外部硬盘的 Raspberry Pi。数据并行写入两个磁盘(这不是 RAID 1,而是备份服务分别在两个磁盘上写入数据)。

文件大部分会被写入,很少被读取。有两种模式:大多数时候,每分钟会写入几个小文件。在某些情况下,会以 30 MB/s 的速度(如果 Raspberry Pi 能够维持这样的速度)持续几分钟到几个小时大量写入大文件。

大约有 1,000,000 个文件,总共使用 2.5 TB。最大的文件大约有10GB,而且数量很少;大多数是几千字节到几十兆字节。为了避免 Linux 中目录包含过多文件的问题,数据目录最多存储 32 个子目录,而子目录最多存储 32 个子目录,以此类推,6 个深度,将任何目录的文件/目录数量限制为三十二。

该设备将通过 UPS 供电,但在写入数据时仍然存在意外拔出/关闭电源的风险。虽然设备关闭/崩溃时丢失正在写入的文件不是问题,但如果它影响其他文件,那将是一个严重的问题。

数据库 (PostgreSQL) 也可能存储在这些磁盘上(尽管我还没有选择是存储在那里还是使用 Raspberry Pi 的 SD 卡并在硬盘上进行每小时备份)。

问题

使用 XFS 有什么好处吗?

会有什么缺点吗?

根据我的阅读,XFS 在 ext4 显示其局限性的情况下具有优势,例如当处理 EB 级数据时,这不完全是我的情况。几年前,XFS 似乎还稍微不太稳定,但现在似乎不再是这样了。

那么,这对于我的情况是否重要,或者我的情况太普通,不足以证明对文件系统的强烈偏好是合理的?

答案1

那么,这对于我的情况是否重要,或者我的情况太普通,不足以证明对文件系统的强烈偏好是合理的?

后者。从你描述的这个工作量来看,我认为要求不是很高。 ext4 和 XFS 都应该能够处理它。所以我认为你不应该有强烈的偏好,除了考虑你熟悉的内容和最好记录的内容。

如果您使用 Debian、Ubuntu 或 Fedora Workstation,安装程序默认为 ext4。这就是大多数 Linux 用户所熟悉的。

这可能会产生差异,因为存在一些功能差异,即如果您习惯了另一种,则可能会遇到一些小陷阱。

XFS 是一个很棒的文件系统,可以很好地适应大型服务器。但在一种情况下,它避免了满足同样的期望,即 AIUI Linus 要求 ext4 作为 ext3 的后继者。这是一个例子,说明无论出于何种目的,坚持使用其他人使用的东西,可能会帮助您避免遇到其他人不知道要警告的事情:-)。 当使用 rename() 替换现有文件时,哪些文件系统需要 fsync() 来保证崩溃安全?

Red Hat 正在尝试开发一个基于 XFS 的存储堆栈,称为斯特拉蒂斯,包括将进入 XFS 的特定功能和/或新工作。这可能会变得有趣,并在未来带来更广泛的 XFS 社区专业知识等。如果你在某个地方使用 RHEL 或 CentOS(默认为 XFS),那么请务必继续。 Red Hat 提供了很多综合手册(基本上也适用于 CentOS)。

我们校验和文件系统的辉煌未来目前似乎同样阴云密布……至少红帽启动的 Stratis 表明有人这么认为……所以如果你不提及它们,那么我也会尽量避免这样做。无论如何,您应该要求您的备份应用程序包含校验和。即使它不能为您提供 ZFS RAID 支持的全部优点。

相关内容