我有一台 IBM x346,配有双 3.2Ghz Xeon 和 2x36GB 15k SCSI 磁盘。我正在运行完全基于 ZFS 的 FreeBSD 8.1 安装。
我可以配置 BIOS 来镜像两个磁盘,然后将 ZFS 放在该“单个”驱动器上,或者我可以使用 ZFS 镜像驱动器,然后安装到该驱动器上。
如果我采用全 ZFS 路线,我想我可以更自由地使用设备(例如,除了镜像系统安装外,我还可以设置快速非冗余条带区域)。就错误纠正而言,我有什么收获吗?重建性能/难易程度/时间?
我知道这两种配置可能完全相同,但我想听听第二种意见。
答案1
不知道速度如何,但我认为在 RAID 上运行 ZFS 意味着:
您失去了原子写入的好处,因为现在 RAID 控制器对何时写入磁盘拥有最终决定权。这意味着您依赖 RAID 控制器的 NVRAM。
如果数据写入不当,ZFS 也可能会被欺骗。ZFS 必须相信 RAID 控制器的说法。
您还会丢失修复文件,因为从 ZFS 的角度来看,您只有一个磁盘,如果数据的完整性不好,ZFS 将无法修复它,因为没有第二份副本。(假设您没有设置副本=2)
如果 RAID 驱动器不同步,则 RAID 驱动器可能需要一些时间才能同步,具体取决于日志记录能力。ZFS 将重新同步它发现的坏数据,并且至少某些操作系统可能会定期运行重新同步以确保完整性。同样,由于 RAID 只会向 ZFS 显示一个驱动器,因此 ZFS 无法帮助修复/重建。
您将能够扩展 RAID(如果 RAID 具有此功能),并可能在更多驱动器上重建 ZFS 数据。(对我来说,考虑到迄今为止的缺点,这不是一个很大的优点。)
当然,ZFS 的所有快照功能都不会受到影响(假设数据不会悄无声息地被破坏)。
硬件 RAID 几乎会抵消 ZFS 的任何优势。就我个人而言,我不建议在 ZFS 下使用任何东西,我会在裸机上运行 ZFS。
然而,如果存在我没有考虑到的优势,我很乐意听到。
答案2
ZFS 镜像会好得多。
镜像是一个非常简单的配置,几乎不需要 CPU 资源,但此外与硬件或伪硬件 raid 相比,您还可以获得更好的池控制。
在我自己的实践中,在现代系统中即使拥有 raidz 也比 hw raid5 更好,性能只慢 5-10%,但 ZFS 的好处完全可以弥补这一点(当然你还可以省钱,因为你不需要支持 hw raid5 的卡)。
答案3
我要考虑的一点是:
如果 RAID 控制器坏了怎么办?RAID 是否与其他硬件兼容,以便您轻松更换控制器?
使用 ZFS 则不会出现这个问题。只需插入一个新的控制器即可。
从那时起,我就使用 gmirror 来处理 UFS,使用 ZFS-RAID 来处理 ZFS 系统。我曾经有一个 RAID 控制器(当然是便宜的),它必须在启动系统(BIOS 阶段)之前重新同步驱动器,这需要很长时间(1.5TB 驱动器)。在此期间,您无法使用该系统。
使用 ZFS/gmirror,您可以重新启动系统,并且它会在您使用它时同步(甚至不推荐并且会降低系统速度)。
但我会确认斯科特的观点(甚至我更希望你标记出什么是优点,什么是缺点;))
答案4
使用硬件 RAID 的一个优点是性能可能会更高,因为您只需写入 RAID 控制器一次而不是两次。不过,可能只有一点点,而且只有当您已经达到极限时才会有。不过,出于上述所有原因,我自己会使用 ZFS 镜像。
回复:镜像 raid 存在硬件兼容性问题,我遇到了这个问题。问题是 raid 控制器将自己的标识数据放在驱动器上的某个位置。其他品牌的 raid 控制器不知道如何解释这一点。