在过去的 3 天里,我一直在查看 Raid 级别。并且一直在权衡突袭控制器硬件/软件的利弊。我知道 RAID 不是一种备份解决方案,我对它非常满意,但仍然存在一个问题。
RAID 控制器(甚至 Raid 1 到 Raid 6)如何实际检测到硬盘驱动器出现故障。我所做的研究表明,大多数常见的硬盘驱动器制造商在其硬盘驱动器设计中使用 ECC,该设计旨在防止 1 位故障到 3 位的程度。
虽然在考虑这一点时,假设您有 Raid (1) 和两个相同的硬盘驱动器。假设从驱动器 0 读取数据,同时从驱动器 1 读取数据。虽然驱动器 1 向 Raid 控制器报告 ECC 读取失败。
现在这是一个大问题,对于硬件突袭,突袭控制器会做什么?它从硬盘收到读取失败的信号。它可以报告硬盘驱动器有故障并需要更换。
Raid 控制器是否会寻找不同的硬盘驱动器以获取数据,直到从驱动器成功读取数据。(是的,驱动器可以报告读取正确,但数据仍然可能损坏,并且 RAID 在读取时不会检查极性或 ECC)
我问了一位 NetApp 工程师,他正在给我们演讲这个问题。他的回答或多或少是:
没有人在读取时读取校验和。毫无意义。读取校验和意味着您必须读取整个切片加上校验和,然后计算校验和以验证您拥有正确的数据。如果您正在运行 RAID-6 或其他任何方式,请加上正交校验和。它是一个全面的性能杀手,因为它破坏了同时随机寻找不同磁盘上完全不同扇区的能力。类似地,几乎没有人在 RAID-1 中读取镜像的两面,因为如果您只读取一面,您可以交替读取镜像的哪一侧,以便获得更快的吞吐量,如果突然出现不匹配,您认为哪个磁盘是正确的,您认为哪个磁盘已损坏?所有现代 RAID 系统都依赖于磁盘控制器向 RAID 控制器发出信号,表明它们处于困境(通过 SMART 等),此时磁盘几乎总是被踢出阵列。校验和用于重建阵列,而不是用于读取验证。
归档时间: |
|
查看次数: |
5441 次 |
最近记录: |