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

评论

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

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

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

还有Hammer2 dragonflybsd.org/hammer

#1 楼

我发现XFS更适合于可能包含许多大文件的超大型文件系统。我拥有一个运行正常的3.6TB XFS文件系统已有2年多了,没有任何问题。在这种大小的情况下,Definate的性能绝对比ext3更好(尤其是在处理许多大文件和大量I / O时)。文件系统本身。我无法谈及具体细节(我会让其他人评论),但是据我所知,您希望使用Solaris在这里获得最大收益。我还不清楚如果您已经在使用硬件RAID(就像我一样),那么ZFS可以提供​​多少帮助。

评论


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

–艾琳·佩恩(Avery Payne)
09年5月5日14:22

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

–艾琳·佩恩(Avery Payne)
09年5月5日14:25

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

–克里斯蒂安·丘皮图
09年6月21日在19:28

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

–乔迪·布鲁雄(Jody Bruchon)
16 Dec 26 '16:10

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

–shodanshok
19年8月8日在7:30



#2 楼

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的最佳方法是



全面披露:我曾经是Sun的存储架构师,但是我已经有一年没有为他们工作了,我为之兴奋该产品。

评论


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

–aggregate116​​6877
16-05-27在2:58



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

–狐狸
16年5月29日在7:45

#3 楼

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

我过去六年来一直在服务器上(甚至在家中)在LVM2和xfs上运行因为zfs-fuse太慢了)...

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

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

要记住的最重要方面:


具有快照的(ish)文件系统,写入性能会大大降低
如果您具有包含快照的大(ish)文件系统,则启动时间将延迟数十分钟,而磁盘将不断滚动在导入卷组期间。将不会显示任何消息。如果root在lvm2上,则此效果尤其可怕(因为等待root设备将超时并且系统无法启动)。
如果您有快照,则很容易耗尽空间。一旦空间用完,快照将损坏且无法修复。
目前无法回滚/合并快照(请参阅http://kerneltrap.org/Linux/LVM_Snapshot_Merging)。这意味着从快照还原数据的唯一方法是实际复制(rsync?)。危险危险:如果快照容量不小于源fs的大小,则不想执行此操作。如果不这样做,您很快就会碰壁,最终导致源fs和快照都损坏。 (我去过那里!)


评论


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

–sehe
09-10-9 17:56

再次查看此错误,他们仍然认为snaphots的无用启动问题是“ lvm的正常行为”:bugs.launchpad.net/lvm2/+bug/360237/comments/7(在2012年1月7日发布)

–sehe
2012年3月17日,0:39

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

–sehe
16 Jul 21'11:33



#4 楼

还有两件事需要考虑。


如果驱动器死在硬件RAID阵列中,而不管其上的文件系统如何,则必须重建设备上的所有块。即使是没有任何数据的数据。另一方面,ZFS是卷管理器,文件系统,并管理数据冗余和条带化。因此,它只能智能地重建包含数据的块。除了卷100%满时,这可以加快重建速度。
ZFS具有后台清理功能,可确保您的数据在磁盘上保持一致,并修复导致数据丢失之前发现的所有问题。
ZFS文件系统始终处于一致状态,因此不需要fsck。
与LVM提供的快照相比,ZFS的快照和克隆还提供了更大的灵活性和功能。

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

#5 楼

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

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

#6 楼

我不认为您应该专注于性能。使用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 File Systems的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成功地保护了您的数据。博客/存储/ zfs-data-integrity-tested / 811

#7 楼

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

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

评论


FreeBSD具有成熟的ZFS本机端口

– Brian Gianforcaro
09年4月30日在11:49

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

– KjetilLimkjær
09年4月30日在12:27

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

–托马斯
09年6月17日在6:13

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

–沃尔特
09-09-30 15:43

Linux上的ZFS现在可用(zfsonlinux.org)

–詹姆斯·摩尔
13年8月13日在20:32

#8 楼

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

#9 楼

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

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

可以使用单独的日志设备,例如SSD

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

需要大量内存来检查

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

#10 楼

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

#11 楼

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

#12 楼

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