带有 ZFS 的 RAID 1E

带有 ZFS 的 RAID 1E

IBM 的存储系统以及 Linux 的 mdraid 确实支持 RAID 级别 1E,以便能够使用奇数个磁盘实现 50% 的冗余度:

RAID 1E

在设置时,创建一个具有奇数个单磁盘 vdev 的 zpool 是否可以达到相同的效果copies=2?从管理角度来看,这如何工作 - 我是否仍然能够执行zpool replace替换磁盘的操作?在这样的设置中,当磁盘发生故障时,池将如何表现?

答案1

据我所知,没有。

如您所知,“zpool 副本”会创建冗余位,我记得,它应该尝试将这些冗余位推到尽可能远的地理位置,但我不认为这是一个硬性要求,就像镜像 vdev 中的镜像位一样;空间限制、其他移动部分,我相信可能会导致副本 #2 仍在同一磁盘上的情况。如果这种情况发生一次,那么从这种配置中丢失驱动器将是一个问题,数据保留方面。

池管理命令也不会像处理镜像 vdev 那样处理它。ZFS 工作流也不会像处理镜像或奇偶校验 vdev 那样处理它 — — 如果您在将多个磁盘作为顶级 vdev 的池中丢失了一个磁盘,即使您从第一天起就设置了副本数 = 2 或更高,我预计 ZFS 会发出强烈抱怨,并可能开始返回数据访问错误。

我不认为副本数 = 2(或更多)会像 RAID 1E 那样工作。但是,如果您在磁盘上创建了多个分区,并将它们设置在适当的镜像 vdev 中,那么您可能可以使用 ZFS 复制 RAID 1E 的想法。如果您有 3 个驱动器,每个驱动器有 2 个分区,并且您设置了镜像 vdev,以便每对分区都不来自同一驱动器,那么生成的池可以承受单个磁盘丢失。但是,据我所知,从未探索过此类池的性能特征(我推测它们会很糟糕)。

答案2

ZFS 不支持 RAID 1E,因为 RAID-Z 不会出现 RAID 5 写入漏洞。RAID-Z 提供更好的空间利用率,没有性能差异,并且具有相同的容错能力。

设置copies=2不会强制将这些副本放在不同的物理磁盘上。因此它不提供针对物理磁盘故障的故障保护。将数字设置为大于 1(默认值)会生成称为重复块的副本。这些副本对于从 URE 或断电数据损坏中恢复很有用(因为会有另一份数据副本,希望具有有效的校验和)。ZFS 提供固有的数据损坏检测,而不是保护;这是针对某些类型损坏的保护。

相关内容