ZFS和XFS


62

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


7
甚至不比较它们。ZFS是现代企业级文件系统,例如jfs2,wafl。XFS在10年前是不错的,但今天它只是一个石器时代。
disserman 2010年

在某些方面,您无法将它们进行比较:XFS是一个文件系统;ZFS是一个文件系统,还有更多:它替代了文件系统,卷管理器(如LVM)和RAID。但是,如果有内存可用,则不再维护JFS:但是,XFS是活动的且维护且健壮。无论哪种方式-ZFS或XFS-我认为您都不会出错。

1
我仍然认为这个问题是相关的,因此我在这里写下我们的经验:XFS很简单,您可以安装,运行,快速,有效。(下面的硬件突袭)。ZFS可以保存,具有压缩功能,但是可以像XFS一样快速地工作。因此,这还取决于您期望服务器运行的情况。(集群的后端。用户存储,存档等)
SvennD

Answers:


44

我发现XFS更适合于可能包含许多大文件的超大文件系统。我拥有一个运行正常的3.6TB XFS文件系统已有两年多了,没有任何问题。在这种大小下,Definately比ext3更好地工作(尤其是在处理许多大文件和许多I / O时)。

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


33
您(通常)无法获得的ZFS的关键功能是块级CRC,它应该检测(并希望防止)静默数据损坏。大多数文件系统都假定,如果写入成功完成,那么数据确实已写入磁盘。并非总是如此,尤其是当某个行业开始“边缘化”时。ZFS通过针对生成的写入检查CRC来检测到此情况。
艾利·佩恩

3
是的,我确实很喜欢XFS。:)您唯一需要牢记的陷阱是倾向于将期刊恢复过程中“不良”的部门清零。在某些(极少数)情况下,您可能会丢失一些数据。。。找到带有Google搜索字词“ xfs恢复时将扇区清零”的文件。cs.wisc.edu/〜vshree / xfs.pdf
Avery Payne

3
我在XFS上喜欢的一件事是xfs_fsr“碎片整理”程序。
Cristian Ciupitu 09年

1
ZFS块级CRC的实用性值得怀疑。硬盘驱动器和SSD使用汉明码ECC来纠正一位错误并报告两位错误。如果ECC无法透明地纠正物理读取错误,则数据仍然会丢失,并且读取失败将报告给OS。CRC无法纠正错误。此功能是ZFS的主要优势,但事实是它是多余的,没有任何价值。至于XFS断电后零错误,该问题已在很久以前得到纠正,而今天已不再适用。
乔迪·李·布鲁雄

@JodyLeeBruchon您所写的内容是错误的:虽然确实存储设备已经在数据上附加了奇偶校验码,但这并不意味着它们能够进行端到端的数据保护。为了在不使用文件加密系统的情况下实现此目标,您需要a)SAS T10 / DIF / DIX存储堆栈,或b)使用devicemapper dm-integrity
shodanshok

75

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

压缩:

#zfs set compression=on filesystem/home

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

# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday

文件系统克隆:

# zfs clone filesystem/home/user@tuesday filesystem/home/user2

文件系统发送/接收:

# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

增量发送/接收:

# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

缓存设备:

# zpool add filesystem cache ssddev

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

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

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


全面披露:我曾经是Sun存储架构师,但是一年没有为他们工作,我对这款产品感到很兴奋。


该链接不适用于www。使用http://opensolaris.org/os/TryOpenSolaris/
aggregate116​​6877

我实际上会说对zfs最好的选择仍然是FreeBSD。它已经成为系统的一部分,已有很多年了。所以我的猜测是,发生令人讨厌的意外的可能性最小。虽然这只是我的$ 0.02。
福克斯

18

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

在过去的六年中,我一直在服务器上专门在LVM2和xfs上运行(即使在zfs-fuse太慢的情况下,也要在家中运行)...

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

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

要记住的最重要方面:

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

1
碰巧的是,就在今天,有人确认带有快照-无法引导Linux的vg仍然是最新的:bugs.launchpad.net/lvm2/+bug/360237
sehe

再次查看此错误,他们仍然认为snaphots的糟糕启动问题是“ lvm的正常行为”:bugs.launchpad.net/lvm2/+bug/360237/comments/7(于
2012年1

1
更新:相同状态。只是现在已经有7年了。
sehe

14

还有两件事需要考虑。

  • 如果驱动器死于硬件RAID阵列中,而不管其上的文件系统如何,则必须重建设备上的所有块。即使那些没有任何数据的数据。另一方面,ZFS是卷管理器,文件系统,并管理数据冗余和条带化。因此,它只能智能地重建包含数据的块。除了卷为100%满时之外,这将导致更快的重建时间。

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

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

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

在Linux,LVM,XFS堆栈上运行大型存储池以进行大幅面视频制作。我的经验是,很容易对存储进行微管理。管理逻辑卷可能会导致大量未使用的已分配空间和时间/问题。如果您有专职存储管理员的工作是对存储进行微管理,那么这可能并不重要。但是我发现ZFS的池存储方法消除了这些管理问题。


8

ZFS绝对很棒。我将其用作5 x 1 TB HD文件服务器的家庭文件服务器,并且还在生产中使用了将近32 TB的硬盘空间。它快速,易于使用,并且包含一些防止数据损坏的最佳保护措施。

我们特别在此服务器上使用OpenSolaris,是因为我们希望能够访问较新的功能,并且因为它提供了新的程序包管理系统和升级方式。


7

您计划在哪个操作系统上运行?还是这是考虑的另一部分?据我所知,如果您正在运行Solaris,则甚至无法选择XFS。如果您没有运行Solaris,您打算如何使用ZFS?在其他平台上的支持受到限制。

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


6
FreeBSD具有成熟的ZFS本地端口
Brian Gianforcaro,2009年

7
wiki.freebsd.org/ZFSKnownProblems我认为您对成熟的定义可能与我的定义不同:-)也许我会在8.0发布之后考虑它。
KjetilLimkjær09年

9
ext3有16TB?不不不。不要做。你会哭。我认为ZFS或XFS是最好的文件系统。如果可以,请使用ZFS(不要在Linux上运行)。我说这有5年以上的大量Linux和Solaris经验。
托马斯

3
20090601之后的FreeBSD 7.2已使大多数ZFSKnownProblems成为现实。如果您正在运行AMD64版本的操作系统,则它现在是稳定的。在8.0中,FreeBSD将ZFS标记为足以稳定用于生产。
Walter

3
Linux上的ZFS现在可用(zfsonlinux.org
James Moore

7

我不认为您应该专注于性能。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“我遇到了引人入胜的博士学位论文IRON文件系统Vijayan Prabhakaran的文章分析了五个商品日记文件系统-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. "

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


5

并非面向FS的答案,抱歉,但是请注意,许多磁盘控制器无法处理> 2TB LUNS /逻辑磁盘-这可能会极大地限制您组织存储的方式。我只是想让您注意,所以您可以端对端检查系统以确保整个系统都能处理16TB。


1

这取决于您想要的功能...,正如您所说的,两个合理的选择是xfs和zfs,xfs代码已经过很好的测试,我在8年前在IRIX上首次使用它

可以从xfs获取快照(使用lvm和xfs_freeze)

可能有单独的日志设备,例如SSD

mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1

传统上,大型xfs需要大量内存才能检查

零值出现的问题是“安全”功能,我认为它在不久前就消失了。


1

除了已经提到的内容之外,从性能的角度来看,MD基础RAID上的xfs比流媒体上的zfs更好。我在xfs上使用完全相同的硬件已有五年了,而在媒体服务器上使用zfs则使用了几乎相同的时间。在具有xfs的Intel Atom 330上,我从来没有经历过断断续续的情况,在复杂场景下的zfs上,相同的硬件无法跟上并开始丢帧。


0

Sun 7410又名Toro,而不是自己构建。该解决方案捆绑了一些非常有用的软件。


0

伙计们,不要忘记zfs的最新功能:重复数据删除。并让我们即时讨论iscsi,nfs或smb共享。正如其他人已经说过的,zfs文件系统,快照,raidz(= raid5)块校验和,动态条带宽度,缓存管理等的导出。我投票给zfs。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.