最近,我的软件 RAID 5 阵列性能下降,这让我有点担心。我能够将驱动器重新添加到阵列中,但这让我想到尝试其他方法。
我目前在 Ubuntu 12.04 上运行文件服务器以及 DNS、Web 服务器、plex 媒体服务器、一些 VM 和一些其他内容,并且我正在使用 mdadm 进行软件 RAID 5。我的硬件是 AMD FX-4100 四核处理器、8 GB RAM 和 3 个 1.5TB“绿色”驱动器。然而,最近我一直在研究 FreeNAS 和 Z-RAID 选项。另一种可能性是,我只需将 RAID 5 阵列升级到 RAID 6,但保持操作系统和其他所有内容不变。
这是供家庭使用的,但其中的大部分数据是不可替换的(家庭视频和图片),我们保留其他备份,但这是一个手动解决方案,我宁愿让一切自动化。
我对 Z-RAID 的一个担忧是性能。我读到过,它的性能比常规 RAID 低很多... 如果硬件足够,情况是否属实?我认为我的硬件足够了。
构建专用的 FreeNAS 系统显然需要构建另一个盒子,以便我可以继续运行其他服务器应用程序,并且我试图从数据完整性的角度确定它是否值得。
答案1
ZFS 比传统文件系统好得多。
首先,它具有内置 RAID 和卷管理功能(因此它涵盖了软件 RAID 和 LVM 的功能),并且在初始化 RAID 或重建 RAID 时通常可以胜过这些功能,因为它知道正在使用的文件,除非像 RAID 系统那样需要跟踪已知的已使用块/群集。因此,如果文件系统未满,它不必扫描整个磁盘,这意味着重建时不太可能遇到读取错误!即使发生这种情况,如果您使用具有 2 个冗余硬盘的系统,它将能够纠正问题,而 RAID-6 系统则无法修复故障群集。
其次,ZFS 支持数据和元数据校验和。因此,它能够检测静默数据损坏,例如宇宙射线(不要笑) 或坏的硬盘控制器。最好在具有 ECC RAM 时使用它。当 ZFS 可以访问检测到的损坏数据的副本时,它可以自动修复它。
附注:大多数 AMD 处理器(如果不是全部)都支持 ECC,但大多数主板制造商不公开此功能。很少有消费级英特尔 CPU 支持 ECC。
ZFS 支持与 RAID-5 相当的 RAID 级别,称为 RAID-Z,与 RAID-6 相当的 RAID 级别称为 RAID-Z2。
ZFS 速度很快,但最好有足够的可用 RAM(>> 2 GB)。
警告:我暂时不会信任 Linux 上的 ZFS。至于 BTRFS,它还不够成熟。
答案2
对于某些特定的负载模式(例如 RDBMS),写时复制并不是普遍有效的,但对于文件存储来说它绝对没问题。
http://blog.rot13.org/2011/09/zfs-on-linux-and-pool-replication.html
答案3
不久前,我也遇到了同样的问题,并得出了以下解决方案:
测试场景是一台配备 8GB RAM 和 4x2TB Sata 的 HP N40L。我测试了 Nexenta、Freenas 和传统的 mdadm/lvm ext4 设置,使用 ZFS 时从未超过 35 MB/s,而使用 md 设置时则达到了 95 MB/s(几乎是完整的千兆位速度)。您的 AMD 四核可能会改善这种情况,但您永远无法达到与使用 md 时相同的性能。
总体而言,ZFS 是一个非常酷的文件系统,但压缩和重复数据删除等“杀手级功能”确实非常耗费资源(我从某处读到,每个 TB 重复数据删除池需要 30GB RAM/L2ARC)。
对于不重要的应用程序,您当然可以使用 ZFS(就像我使用 ZFS 进行备份一样)zfs-on-linux) 但特别是对于性能关键型应用程序,如果您想接近 zfs 的优良特性,我建议您继续使用 md 和 lvm + brtfs。
此外,如果您不添加更多奇偶校验驱动器(就像您对 Raid 6 所做的那样),RAIDZ 将不会获得任何更多的数据安全性(校验和除外)。