mdadm 3-way RAID 1 - 保证 2 驱动器容错的好解决方案?

sa2*_*289 4 linux raid mdadm software-raid raid1

使用 mdadm 的 3 路 RAID1 是否是一个很好的解决方案,能够承受任何两个驱动器故障而不会出现 RAID 故障?我知道这在只能使用 1/3 的磁盘空间(3 个驱动器中的 1 个)的意义上来说是额外的,但除此之外呢?

sho*_*hok 8

要使单个阵列能够发生 2 个磁盘故障,您有两种选择:

  • 三路 RAID1,正如你所建议的
  • RAID6,作为另一种可能性。

什么是最好的选择?这取决于您要实现的目标。

  • 如果您想要一个可以取出磁盘的设置,将其安装在另一台计算机上并且仍然能够读取您的数据,请使用RAID1
  • 如果您希望每次都能扩展阵列并获得额外空间,请使用RAID6

约RAID1性能退化的说明:它依赖于公交车拥挤,而如何平均寻道时间是通过多次写入的影响。磁盘寻道时间由两个不同的部分组成:寻道延迟(磁头需要到达正确角度的时间)和旋转延迟(磁盘盘片需要旋转到正确位置的时间)。

当多个磁盘涉及多个相同的写入时,主机测量的旋转延迟将是所有相关磁盘中最差的。另一方面,RAID1 磁盘之间的寻道时间应该相对相似。最后,这意味着 RAID1 阵列的写入 IOPS 值将比单个相同的磁盘略低。

Linux 的 mdadm 有一个有趣的规定来最小化不同磁盘延迟的影响。例如,阅读关于“write-behind”和“write-mostly”的手册页:

-W、--write-mostly 列在 --build、--create 或 --add 命令中的后续设备将被标记为“主要写入”。这仅对 RAID1 有效,意味着“md”驱动程序将尽可能避免从这些设备读取。如果通过慢速链接进行镜像,这会很有用

--write-behind= 指定应启用后写模式(仅对 RAID1 有效)。如果指定了参数,它将设置允许的最大未完成写入数。默认值为 256。为了使用后写模式,需要写意图位图,并且仅在标记为主要写入的驱动器上尝试后写。

请注意,这会降低您的随机读取 IOPS 性能(因为某些磁盘将有效地仅用于写入),因此请谨慎选择您的毒药。


fuk*_*wi2 6

是的,您可以根据需要向 RAID1 添加任意数量的镜像,并且您可以容忍除 1 个设备之外的所有设备的故障。如果添加 10 台设备,则可以容忍 9 台设备出现故障。

但不要忘记,此设置会受到写入惩罚。所有数据都必须写入每个设备。通常它应该相当微不足道,但如果所有设备都在同一控制器/总线上,那么您可能会开始注意到将数据写入每个设备时的延迟。例如,对于 3 个设备,将 1mb 的数据写入阵列需要控制器/总线实际将 3mb 写入磁盘。