ZFS vs XFS

我们正在考虑build立一个〜16TB的存储服务器。 目前,我们正在考虑将ZFS和XFS作为文件系统。 有什么优点和缺点? 我们需要寻找什么? 有第三个更好的select吗?

我发现XFS更适合可能有很多大文件的超大文件系统。 我已经有了一个function超过2年的3.6TB XFS文件系统,没有任何问题。 在这个尺寸下(特别是在处理很多大文件和大量的I / O时),肯定比ext3等效果更好。

使用ZFS获得的是设备池,条带化和文件系统本身内置的其他高级function。 我不能说具体的东西(我会让别人评论),但是从我所能告诉的,你会想用Solaris来获得最大的利益。 如果你已经使用了硬件RAID,我也不清楚ZFS有多大的帮助。

ZFS将为您带来超越软件RAID的优势。 命令结构非常周到,直观。 它还获得了压缩,快照,克隆,文件系统发送/接收以及caching设备(那些新奇的SSD驱动器),以加快索引元数据。

压缩:

 #zfs set compression=on filesystem/home 

它支持简单的创build可以实时安装的写时复制快照:

 # 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" 

caching设备:

 # zpool add filesystem cache ssddev 

这仅仅是冰山一angular,我强烈build议您开始安装Open Solaris,然后尝试一下。

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

编辑 :这是非常古老的,Open Solaris已经停止,使用ZFS的最好方法可能是在Linux或FreeBSD上 。


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

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

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

但是,我不能再计算使用快照时遇到的不同失败模式。 我完全停止使用它 – 这太危险了。

我现在唯一的例外是我自己的个人邮件服务器/networking服务器备份,在那里我会使用短暂的快照做一夜的备份,它总是等于源fs的大小, 在之后被删除。

记住最重要的方面:

  1. 如果你有一个拥有快照的大文件系统,写入性能会大大降低
  2. 如果你有一个大的(ish)文件系统有一个快照,启动时间将会延迟几十分钟,而磁盘将在导入卷组的过程中搅动和搅动。 没有消息将被显示。 如果root在lvm2上,这种效果尤其可怕(因为等待根设备超时而系统不能启动)
  3. 如果你有一个快照,很容易用尽空间。 一旦空间用完,快照已损坏,无法修复。
  4. 快照现在不能被回滚/合并(参见http://kerneltrap.org/Linux/LVM_Snapshot_Merging )。 这意味着从快照恢复数据的唯一方法是实际上复制(rsync?)它。 危险危险:如果快照容量不小于源fs的大小,则不需要执行此操作; 如果你不这样做,你很快就会撞上砖墙,结果源fs和快照被破坏。 (我去过那儿!)

一些额外的事情要考虑。

  • 如果一个驱动器在一个硬件RAIDarrays中死亡,而不pipe在其上面的文件系统是否必须重build该设备上的所有块。 即使那些没有任何数据的。 ZFS另一方面是卷pipe理器,文件系统,并pipe理数据冗余和分条。 所以它可以智能地重build只包含数据的块。 除了音量达到100%时,这会导致更快的重build时间。

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

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

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

在Linux,LVM,XFS堆栈上运行用于大幅面video制作的大型存储池。 我的经验是,很容易陷入微存储的pipe理。 这可能会导致大量未使用的分配空间和pipe理逻辑卷的时间/问题。 如果你有一个全职的存储pipe理员,他的工作是微pipe理存储,这可能不是什么大问题。 但是我发现ZFS的池存储方法消除了这些pipe理问题。

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

我们在这个服务器上使用的是OpenSolaris,因为我们想要访问更新的function,因为它提供了新的包pipe理系统和升级方式。

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

如果你正在谈论一个Linux服务器,我会坚持Ext3个人,如果只是因为它收到了最多的testing。 zfs-fuse还很年轻。 另外,在一次内核更新之后,当一个错误导致数据损坏时,我曾经遇到过一次XFS问题。 XFS相对于Ext3的优势绝对没有超过恢复位于远程数据中心的机器的成本。

我不认为你应该关注性能。 你的数据是否安全的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,分析五种商品日志文件系统NTFS,ext3,ReiserFS,JFS和XFS如何处理存储问题的IRON文件系统。

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

 . . . 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

不是一个面向FS的答案抱歉,但要知道,一些磁盘控制器不会处理大于2TB的LUN /逻辑磁盘 – 这可能会限制组织存储的方式。 我只是想让你知道,所以你可以检查你的系统端到端,以确保它将处理整个16TB。

这取决于你想要的function…,这两个合理的select是你所说的xfs和zfs,xfs代码是相当不错的testing我第一次使用它在8年前在IRIX

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

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

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

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

零点出现的问题是一个“安全”function,我认为这个function不久前就消失了。

除了已经提到的,从性能的angular度来看,MD基本RAID上的xfs在stream媒体上的performance要好于zfs。 我已经使用了与xfs完全相同的硬件了五年,与我的媒体服务器上的zfs大致相同。 在带有xfs的英特尔凌动处理器330上,我从来没有经历过stuter,在复杂场景的zfs上,相同的硬件无法跟上并开始丢帧。

而不是build立你自己的,另一个select是太阳7410又名托罗。 它有一些非常有用的软件与解决scheme捆绑在一起。

那么,不要忘记最新的zfs:重复数据删除。 让我们来谈谈飞行iscsi,nfs或smb分享。 正如其他人已经说过的,zfs文件系统的导出,快照,raidz(= raid5)块校验和,dynamic条带宽度,cachingpipe理等等。 我投票zfs。