it-swarm.cn

ZFS和XFS

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

64
Tamas Czinege

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

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

45
Mark Renouf

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

压缩:

#zfs set compression=on filesystem/home

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

# zfs snapshot filesystem/home/[email protected]
# cd filesystem/home/user/.zfs/snapshot/tuesday

文件系统克隆:

# zfs clone filesystem/home/[email protected] filesystem/home/user2

文件系统发送/接收:

# zfs send filesystem/home/[email protected] | ssh otherserver "zfs receive -v filesystem/home/user"

增量发送/接收:

# zfs send -i filesystem/home/[email protected] | ssh otherserver "zfs receive -v filesystem/home/user"

缓存设备:

# zpool add filesystem cache ssddev

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

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

编辑:这很老了,Open Solaris已经停产,使用ZFS的最佳方法可能是在 Linux 上,或者 FreeBSD


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

75
Chris

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

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

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

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

要记住的最重要方面:

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

还有两件事需要考虑。

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

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

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

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

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

14
3dinfluence

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

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

8
X-Istence

我不认为您应该专注于性能。 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

7
Miklo

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

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

7
Kjetil Limkjær

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

5
Chopper3

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

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

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

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

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

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

1
James

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

1
user718960

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

0
PiL

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

0
Jauder Ho