我即将用 Linux 软件 RAID1 阵列替换旧的硬件 RAID5 阵列。我和一位朋友讨论过,他声称 RAID5 比 RAID1 更强大。
他声称,在 RAID5 中,读取时会读取奇偶校验数据以确保所有驱动器都返回正确的数据。他进一步声称,在 RAID1 中,驱动器上发生的错误不会被注意到,因为 RAID1 不会进行此类检查。
我明白了可以是真的,但也可以看出,这一切都取决于所讨论的 RAID 系统是如何实现的。当然,RAID5 系统不会有读取并检查 RAID1 系统上的奇偶校验数据可以就像在读取时从所有驱动器上读取一样容易,以检查它们是否都保存相同的数据,从而实现相同级别的稳健性(相应的性能损失)。
所以问题是,现实世界中的 RAID5/RAID1 系统实际上做什么?RAID5 系统会在读取时检查奇偶校验数据吗?是否有从所有驱动器读取并在读取时比较数据的 RAID1 系统?
答案1
RAID-5 是一种容错解决方案,而不是数据完整性解决方案。
请记住,RAID 代表廉价冗余阵列磁盘磁盘是冗余的基本单位——RAID 并不真正关心数据。您购买的解决方案采用文件系统像 WAFL 或 ZFS 来解决数据冗余和完整性问题。
RAID 控制器(硬件或软件)无法验证读取时块的奇偶校验。这是运行 RAID-5 的主要风险 —— 如果您在驱动器上遇到部分介质故障(坏块未标记为“坏”的情况),那么您的数据就会被悄悄损坏。
Sun 的 RAID-Z/ZFS实际上提供了端到端的数据完整性,并且我猜测随着 CPU 上可用核心的数量不断增加,其他文件系统和 RAID 系统将来也会提供此功能。
我认为,如果您使用 RAID-5,那么您就比较省钱。RAID 1 性能更好,保护性更强,而且当驱动器发生故障时不会影响生产 - 成本差异很小。
答案2
我认为答案取决于控制器/软件,例如,镜像系统通常只读取一对光盘中的一张,因此能够提供错误的数据。我注意到,如果您的结果取决于该数据,那么当数据写入两张光盘时,两张光盘上的数据都会损坏.....
摘自 SATAssure(tm) Plus 下的 pdf:
“革命性的 SATAssure 技术使用大容量、廉价的 SATA 磁盘驱动器提供企业级数据保护和可靠性。SATAssure 可对所有读取操作进行操作,确保数据完整性并自动实时纠正问题 - 所有这些都不会对性能或容量造成影响,而传统存储系统则不会出现这种情况。通过对单个驱动器进行电源循环的新功能减少驱动器 RMA。”
有趣的是一些制造商大惊小怪地说它们总是计算奇偶校验,这让我认为这在硬件控制器上相对不常见。还值得注意的是,诸如 ZFS 和 WAFL (netapp) 之类的系统在每次读取时都会进行奇偶校验计算。
答案3
对于 RAID-5,通常只在阵列重建时读取奇偶校验,而不是在一般读取时读取。这样读取可以更加随机和快速(因为您不必每次从阵列中获取 1K 数据时都读取和计算整个条带的奇偶校验)。
对于 RAID-1,通常尽可能跨驱动器执行读取以提高读取性能。如您所说,如果 RAID 子系统尝试读取两个驱动器,而它们不同,则子系统无法知道哪个驱动器出错了。
大多数 RAID 子系统都依赖驱动器在出现故障时通知控制器或计算机。
那么 RAID-5 是否“更强大”?答案是,视情况而定。RAID-5 可让您在给定数量的磁盘上获得比 RAID-1 更有效的存储;尽管为了提供超过一个磁盘的有效存储,RAID-1 需要与 RAID-0 结合使用,要么作为 RAID-1 阵列的条带,要么作为跨两个 RAID-0 条带的 RAID-1。
(我更喜欢前者,因为单个驱动器故障将导致单个 RAID-1 元素失效,这意味着只有一个驱动器需要重建。对于后者,单个驱动器故障将导致 RAID-0 元素失效,这意味着当驱动器被更换时,一半的磁盘将参与重建。)
这也引发了关于“幻像写入”的讨论,即驱动器电子设备报告写入成功,但无论出于何种原因,写入都无法写入磁盘。这种情况确实会发生。考虑一下 RAID-5 阵列,当驱动器发生故障时,阵列必须完美读取所有幸存驱动器上的所有扇区才能恢复。NetApp 声称,驱动器的大型化加上 RAID 组的大型化意味着在某些情况下,重建期间发生故障的几率可能高达十分之一。因此,他们建议大型 RAID 组中的大型磁盘使用双奇偶校验(我认为这与 RAID-6 有关)。
我在 NetApp 的几位工程师进行的技术讨论中了解到了这一点。
答案4
你的朋友谈论的是涉及某些RAID 级别, 或者校验和写入磁盘的数据?
如果它们与奇偶校验有关,则 RAID1 没有奇偶校验位 - 您拥有相同数据的两个副本。磁盘应该执行校验和,以确保写入磁盘的内容与线路上的内容相匹配
RAID5 确实有奇偶校验位。这意味着您可以丢失 RAID 组中的磁盘,然后继续运行,就像什么都没发生一样。不过,应该对写入磁盘的数据执行校验和,以确保它与线路上传输的数据相匹配
在这种情况下,校验和完全独立于 RAID,RAID 可能会也可能不会使用一组磁盘执行
编辑后添加:您提到从硬件 RAID 转向软件 RAID。硬件 RAID 总是优于软件 RAID。如果您可以购买实现您想要的 RAID 级别所需的硬件,我建议您这样做。这将使所有奇偶校验计算都由 RAID 卡而不是主机执行。因此释放了主机上的资源。毫无疑问还有其他好处,但目前我还没想起来