对于基于硬件的 RAID0,当驱动器发生故障时会发生什么?
例如,在 HP DL120G7 与 HP P410 等品牌服务器上,在带有 zpool 镜像的 zfs 上运行 FreeBSD,或通过 HAMMER 等进行镜像的 DragonFly BSD。
我想到以下问题:
RAID0 中未发生故障的驱动器上的数据是否仍可用?或者控制器是否以伪随机方式在驱动器之间传播 RAID0 数据?
ZFS 是否知道数据在驱动器之间是如何分布的,以便其镜像功能能够正常运行?
我听说有些控制器不允许您避免使用硬件 RAID(P410 就是这样);在这种情况下,他们通常会例外,以允许只有一个磁盘的 RAID0 阵列,而不是常见的最少两个?
当数据中心技术人员更换发生故障的驱动器时,这会影响未发生故障的驱动器上的数据吗?
答案1
RAID0 的真正设计目的并非是数据保留,而是为了提高磁盘性能,如果某个驱动器发生故障,数据就会丢失,因为数据分散在多个磁盘上,基本上就回到原点了。
答案2
R0 是条带 RAID,条带宽度取决于创建时的具体配置。有几件事使得恢复(即使使用 ZFS magic)几乎不可能:
- 硬件 R0 不会向操作系统公开条带计划的详细信息,至少在没有特定驱动程序的情况下不会。
- 如果没有条带计划和 RAID 级别的详细信息,ZFS 就无法制定容错方法。
- 当一个驱动器发生故障时,该驱动器上的所有数据将完全丢失。
- 大多数(如果不是全部)硬件 RAID 适配器在发生故障时都会完全使 R0 集失效,甚至不允许重建(没有东西可重建)。唯一的恢复方法是重新创建。
- 即使 FS 具有容错能力,大多数硬件 RAID 适配器也会清理新 R0 组的磁盘,擦除幸存驱动器上任何可恢复的数据。(但在某些系统中,这是可配置的默认值)。
要设计一个文件系统以在 R0 集中发生故障时幸存下来,它需要该集中磁盘的所有详细信息。此时,通常更容易不必担心硬件 R0,只需将一堆磁盘提供给 FS 并让它管理一切。
是的,RAID-Everything 系统将允许 1 个磁盘 R0 集。