Linux软件RAID(mdadm)与ZFS文件服务器Z-Raid

我最近有一些恐慌,我的软件RAID 5arrays降级。 我能够将驱动器添加到arrays中,但是让我想到了尝试不同的东西。

我目前在Ubuntu 12.04上运行文件服务器以及我的DNS,Web服务器,Plex媒体服务器,一些虚拟机和其他一些东西,我使用mdadm作为软件RAID 5.我的硬件是AMD FX-4100四核,8 GB RAM和3 x 1.5 TB“绿色”驱动器。 然而,最近我一直在研究FreeNAS和Z-RAID选项。 另一个可能性是我只是升级我的RAID 5arrays到RAID 6,但保持操作系统和其他一切相同。

这是为家庭使用,但大多数的数据是不可替代的(家庭video和图片),我们保留其他备份,但这是一个手动的解决scheme,我宁愿保持一切自动。

我对Z-RAID的一个担心是性能。 我已经读过,性能比普通的RAID要低很多…如果硬件是足够的,我认为我的是?

构build一个专门的FreeNAS系统显然需要构build另一个盒子,这样我才能继续运行我的其他服务器应用程序,而且我试图从数据完整性的angular度来确定它是否值得。

对于某些特定的加载模式(例如,RDBMS),写入时拷贝并不是普遍有效的,但是它对于文件存储应该是绝对正确的。

http://blog.rot13.org/2011/09/zfs-on-linux-and-pool-replication.html

ZFS比传统的文件系统要好得多。

首先,它具有RAID和卷pipe理function(因此它可以涵盖软件RAID和LVM可以完成的function),通常可以在初始化RAID或重buildRAID时执行这些操作,因为它知道正在使用的文件,除非像RAID系统需要跟踪已知的使用块/簇。 所以如果文件系统不满,就不必扫描整个磁盘,这意味着在重build时遇到读取错误的可能性较小! 即使发生这种情况,如果使用2个冗余硬盘,也可以纠正这个问题,即RAID-6系统只能维修故障集群。

其次,ZFS支持数据和元数据校验。 所以它能够检测到无声的数据损坏,如宇宙射线( 不要笑 )或坏的硬盘控制器。 有ECC ECC时最好使用。 当ZFS访问检测到的损坏数据的副本时,它可以自动修复它。
注意:大多数AMD处理器支持ECC(如果不是全部),但是大多数主板制造商不公开这个function。 很less消费者英特尔CPU支持ECC。

ZFS支持相当于RAID-5的RAID级别,称为RAID-Z,而RAID-6称为RAID-Z2。

ZFS可以很快,但你最好有足够的内存(>> 2 GB)。

警告 :我不会信任Linux上的ZFS。 至于BTRFS还不够成熟。

前段时间我也遇到了同样的问题,并提出了以下解决scheme:

testing场景是带有8GB内存和4x2TB SATA的惠普N40L。 我testing了Nexenta,Freenas和一个传统的mdadm / lvm ext4安装程序,使用ZFS时我从来没有超过35 MB / s,而使用md设置达到了95 MB / s(几乎是完整的千兆位速度)。 这可能是,你的AMD四核会改善这种情况,但是你将永远达不到和你一样的性能。

一般来说,ZFS是一个非常酷的文件系统,但压缩和重复数据删除等“杀手级特性”实际上是资源密集型的(我读了一个地方需要30GB RAM / L2ARC每TB重复数据删除池)。

对于不重要的应用程序,你可以肯定地使用ZFS(就像我在linux上使用zfs进行备份一样),但特别是对于性能关键的应用程序,我build议你继续使用md,也许lvm + brtfs,如果你想接近好的特性的zfs。

此外,RAIDZ不会获得更多的数据安全性(校验和除外),如果你不添加更多的奇偶校验驱动器(你也可以使用RAID 6)。