ZFS 与 XFS

Tam*_*ege 68 xfs zfs storage filesystems

我们正在考虑构建一个约 16TB 的存储服务器。目前,我们正在考虑将 ZFS 和 XFS 作为文件系统。有什么优点、缺点?我们需要寻找什么?还有第三种更好的选择吗?

Chr*_*ris 77

ZFS 将为您提供超越软件 RAID 的优势。命令结构布局非常周到且直观。它还具有压缩、快照、克隆、文件系统发送/接收和缓存设备(那些花哨的新 SSD 驱动器)来加速索引元数据。

压缩:

#zfs set compression=on filesystem/home
Run Code Online (Sandbox Code Playgroud)

它支持简单创建可实时挂载的写时复制快照:

# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday
Run Code Online (Sandbox Code Playgroud)

文件系统克隆:

# zfs clone filesystem/home/user@tuesday filesystem/home/user2
Run Code Online (Sandbox Code Playgroud)

文件系统发送/接收:

# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"
Run Code Online (Sandbox Code Playgroud)

增量发送/接收:

# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"
Run Code Online (Sandbox Code Playgroud)

缓存设备:

# zpool add filesystem cache ssddev
Run Code Online (Sandbox Code Playgroud)

这只是冰山一角,我强烈建议您安装 Open Solaris 并尝试一下。

http://www.opensolaris.org/os/TryOpenSolaris/

编辑:这很旧了,Open Solaris 已停产,使用 ZFS 的最佳方法可能是在LinuxFreeBSD 上


完全披露:我曾经是 Sun 存储架构师,但我已经一年多没有为他们工作了,我只是对这个产品感到兴奋。


Mar*_*ouf 49

我发现 XFS 更适合可能有很多大文件的超大文件系统。我的 3.6TB XFS 文件系统已经运行 2 年多了,没有出现任何问题。在这种大小下,绝对比 ext3 等更好(尤其是在处理许多大文件和大量 I/O 时)。

您使用 ZFS 获得的是设备池、条带化和其他内置于文件系统本身的高级功能。我不能谈论具体细节(我会让其他人发表评论),但据我所知,您希望使用 Solaris 在这里获得最大好处。如果您已经在使用硬件 RAID(就像我一样),我也不清楚 ZFS 有多大帮助。

  • 您(通常)在其他地方无法获得的 ZFS 的关键功能是块级 CRC,它应该可以检测(并希望防止)静默数据损坏。大多数文件系统假设,如果写入成功完成,则数据确实已写入磁盘。情况并非总是如此,尤其是当一个部门开始走向“边缘”时。ZFS 通过根据结果写入检查 CRC 来检测这一点。 (35认同)
  • 是的,我非常喜欢 XFS。:) 您必须记住的唯一问题是在日志恢复期间将“坏”扇区归零的倾向。在某些(罕见的)情况下,您最终可能会丢失一些数据......使用谷歌搜索词“xfs 在恢复时将扇区归零”找到这篇论文 http://pages.cs.wisc.edu/~vshree/xfs .pdf (3认同)
  • 我在 XFS 喜欢的一件事是`xfs_fsr`“碎片整理”程序。 (3认同)

seh*_*ehe 20

在实时文件系统上使用 lvm 快照和 xfs 是灾难的秘诀,尤其是在使用非常大的文件系统时。

在过去的 6 年里,我一直在我的服务器上专门在 LVM2 和 xfs 上运行(在家里,即使 zfs-fuse 太慢了)...

但是,我无法再计算使用快照时遇到的不同故障模式。我已经完全停止使用它们了——这太危险了。

我现在要做的唯一例外是我自己的个人邮件服务器/网络服务器备份,我将使用临时快照进行隔夜备份,该快照始终等于源文件的大小,然后立即删除。

要记住的最重要的方面:

  1. 如果你有一个有快照的大(ish)文件系统,写入性能会严重下降
  2. 如果你有一个有快照的大(ish)文件系统,启动时间将延迟几十分钟,而磁盘将在卷组导入期间搅动和搅动。不会显示任何消息。如果 root 在 lvm2 上,这种效果尤其可怕(因为等待 root 设备将超时并且系统无法启动)
  3. 如果您有快照,则很容易耗尽空间。一旦空间用完,快照就会损坏且无法修复。
  4. 目前无法回滚/合并快照(请参阅http://kerneltrap.org/Linux/LVM_Snapshot_Merging)。这意味着从快照恢复数据的唯一方法是实际复制(rsync?)它。危险 危险:如果快照容量不是至少源文件系统的大小,您希望这样做;如果你不这样做,你很快就会碰壁并最终导致源文件和快照都损坏了。(我去过那儿!)

  • 重新审视这个错误,他们仍然认为快照的糟糕启动问题是“lvm 的正常行为”:https://bugs.launchpad.net/lvm2/+bug/360237/comments/7(于 2012-01-07) (3认同)
  • 碰巧的是,就在今天,有人确认带有快照的 vg - unavailable-to-boot-linux 仍然是最新的:https://bugs.launchpad.net/lvm2/+bug/360237 (2认同)
  • 更新:相同的状态。只是现在已经7年多了。 (2认同)

3di*_*nce 15

还有一些需要考虑的事情。

  • 如果一个驱动器在硬件 RAID 阵列中死机,不管它上面的文件系统如何,设备上的所有块都必须重建。即使是那些没有保存任何数据的。另一方面,ZFS 是卷管理器、文件系统,并管理数据冗余和条带化。所以它可以智能地只重建包含数据的块。这会导致比卷 100% 满时更快的重建时间。

  • ZFS 具有后台清理功能,可确保您的数据在磁盘上保持一致,并在导致数据丢失之前修复它发现的任何问题。

  • ZFS 文件系统始终处于一致状态,因此不需要 fsck。

  • 与 LVM 提供的快照相比,ZFS 的快照和克隆还提供了更多的灵活性和功能。

在 Linux、LVM、XFS 堆栈上为大型视频制作运行大型存储池。我的经验是,很容易陷入对存储的微观管理。这可能会导致大量未使用的分配空间和时间/管理逻辑卷的问题。如果您有一名全职存储管理员负责对存储进行微观​​管理,这可能不是什么大问题。但我发现 ZFS 的池存储方法消除了这些管理问题。


X-I*_*nce 9

ZFS 绝对是惊人的。我将它用作 5 x 1 TB 高清文件服务器的家庭文件服务器,并且还在生产中使用它,具有近 32 TB 的硬盘空间。它快速、易于使用并且包含一些针对数据损坏的最佳保护。

我们在这台服务器上使用 OpenSolaris,特别是因为我们想要访问更新的功能,并且因为它提供了新的包管理系统和升级方式。


小智 8

我不认为你应该关注性能。您的数据使用 XFS、ext4 等安全吗?不。阅读这些博士论文和研究论文:

XFS 对数据损坏不安全:pages.cs.wisc.edu/~vshree/xfs.pdf

ext3、JFS、ReiserFS 等也不是:zdnet.com/blog/storage/how-microsoft-puts-your-data-at-risk/169?p=169&tag=mantle_skin%3bcontent “我看到了引人入胜的博士论文Vijayan Prabhakaran 的 IRON File Systems 分析了五种商品日志文件系统——NTFS、ext3、ReiserFS、JFS 和 XFS——如何处理存储问题。

简而言之,他发现所有的文件系统都有

. . . failure policies that are often inconsistent, sometimes buggy, and generally inadequate in their ability to recover from partial disk failures. "
Run Code Online (Sandbox Code Playgroud)

但是 ZFS 成功地保护了您的数据。这是一篇关于此的研究论文:zdnet.com/blog/storage/zfs-data-integrity-tested/811


Kje*_*jær 7

您打算运行哪个操作系统?或者这是考虑的另一部分?如果您运行的是 Solaris,据我所知,XFS 甚至不是一个选项。如果您没有运行 Solaris,您打算如何使用 ZFS?其他平台的支持有限。

如果您在谈论 Linux 服务器,我个人会坚持使用 Ext3,因为它接受了最多的测试。zfs-fuse 还很年轻。此外,我曾经遇到过 XFS 问题,当内核更新后一个错误导致数据损坏时。XFS 相对于 Ext3 的优势绝对不会超过恢复位于远程数据中心的机器所涉及的成本。

  • ext3 16TB?不不不。不要做。你会哭的。在我看来,ZFS 或 XFS 是最好的文件系统。如果可以,请使用 ZFS(不要在 Linux 上运行它)。我说这句话是在 5 年多的 Linux 和 Solaris 上的大量经验中得到的。 (9认同)
  • http://wiki.freebsd.org/ZFSKnownProblems 我认为你对成熟的定义可能与我的不同:-) 也许我会在 8.0 发布后考虑它。 (7认同)
  • FreeBSD 有一个成熟的 ZFS 原生移植 (6认同)
  • 20090601 之后的 FreeBSD 7.2 使大部分 ZFSKnownProblems 变得毫无意义。如果您运行的是 AMD64 版本的操作系统,它现在是稳定的。在 8.0 中,FreeBSD 将 ZFS 标记为对于生产环境来说足够稳定。 (3认同)
  • Linux 上的 ZFS 现已可用 (http://zfsonlinux.org/) (3认同)
  • 还可以选择使用 Nexenta:一种使用 OpenSolaris 内核的基于 Linux (Ubuntu) 的发行版。它是为(文件)服务器创建的。 (2认同)

Cho*_*er3 5

不是面向 FS 的答案抱歉,但请注意,许多磁盘控制器不会处理 >2TB LUN/逻辑磁盘 - 这可能会限制您组织存储的方式。我只是想让你知道,这样你就可以端到端地检查你的系统,以确保它可以处理整个 16TB。