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

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

使用 mdadm 的 3 路 RAID1 是否是一种很好的解决方案,能够承受任何两个驱动器发生故障而不会导致 RAID 故障?我知道这需要额外付费,因为只能使用 1/3 的磁盘空间(3 个驱动器中的 1 个),但除此之外呢?

答案1

要拥有能够承受 2 个磁盘故障的单个阵列,您有两种选择:

  • 三路 RAID1,正如你建议的那样
  • RAID6,这是另一种可能性。

最好的选择是什么?这取决于你想要实现什么。

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

关于 RAID1 性能下降的说明:不是取决于总线拥塞,而不是平均磁盘寻道时间如何受多次写入的影响。磁盘寻道时间由两个不同的部分组成:寻道延迟(头部达到正确角度所需的时间)和旋转延迟(磁盘旋转到正确位置所需的时间)。

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

Linux 的 mdadm 有一个有趣的功能,可以最大限度地减少不同磁盘延迟的影响。例如,阅读有关“write-behind”和“write-mostly”的手册页:

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

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

请注意,这将降低随机读取 IOPS 性能(因为某些磁盘实际上只用于写入),所以选择毒药时要小心。

答案2

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

但不要忘记,这种设置会产生写入损失。所有数据都必须写入每个设备。通常,这应该相当小,但如果所有设备都在同一个控制器/总线上,那么您可能会开始注意到延迟,因为您的数据会写入每个设备。例如,对于 3 个设备,将 1mb 数据写入阵列需要控制器/总线实际将 3mb 写入磁盘。

答案3

另一个解决方案是使用 3 个磁盘进行 raid 6。请参阅此帖子:

实现 RAID6 的最小磁盘数量

通过添加第四个驱动器,Raid 6 还可以使容量翻倍。我曾经遇到过阵列上的 2 个驱动器发生故障,但没有丢失数据。

答案4

我一直都是基于硬件的 RAID 5 的忠实粉丝。如果计划使用允许,我通常将 Ubuntu Linux 用于服务器。使用基于硬件的 RAID,Ubuntu(以及任何其他操作系统)在大多数现代服务器中都可以轻松从 RAID-5 阵列启动。我还使用多个备份。第一个备份是每小时在服务器上使用 Back-In-time 在外部驱动器上进行备份,以便在工作时间内每小时提供一次现场备份。第二级备份是使用另一台运行 Ubuntu 和 Back-In-Time 的计算机对网络共享驱动器进行夜间备份。夜间备份也会备份到便携式 USB 驱动器上,并且至少有一个备份保存在异地。工作周期间,驱动器每天轮换一次。第三级备份是备份到运行 Ubuntu Linux 的已淘汰的 Windows Vista 计算机,其配置与服务器配置类似,每晚使用 Linux 实用程序 rsync 将服务器文件同步到备份系统。过去几年,当驱动器出现故障时,RAID-5(带有热备用)表现良好。每次更换故障驱动器(热插拔)时都不会中断网络活动。当服务器发生硬崩溃(可能是由于主板或内存故障)时,RAID-5 不会有所帮助。真正有帮助的是备用备份服务器,它具有前一天晚上下班后同步的文件。我运行了一个小脚本,将服务器配置迁移到备份服务器,该脚本迁移所有用户和机器帐户,使备用计算机成为临时 PDC。花了几个小时组装另一台退役的 Windows 计算机以制作新的备份计算机系统并将其联机。我选择用更普通的 Proliant ML10 服务器替换更昂贵的 Proliante ML350 服务器。我将使用 RAID-1 将新服务器配置为带有热备用的 3 驱动器镜像。我订购的 ML10 服务器使用软件 RAID 控制器,必须将其配置为 AHCI 而不是 RAID 才能启动 Ubuntu。服务器和四个 1TB 驱动器的总成本大约相当于 ML350 上一个 300GB 驱动器的成本。这是 25 年来管理服务器 RAID-5 第二次没有帮助(第一次可能是 RAID 控制器故障)。这两个情况都不是 RAID 的问题,只是使用技术导致的问题。

我想要表达的重点是,当服务器发生故障时,要做好准备并制定良好的备份计划。要制定良好的备份计划,您必须实际测试备份和恢复程序。在最近的故障中,从我接到电话起床、穿好衣服、出门时吃点东西、开车到现场(10 分钟车程)、诊断问题(包括尝试重启服务器)以及让备份服务器上线,总共用了 52 分钟。

您可以讨论 RAID 的不同可能性中哪种更好。请记住,除了硬盘之外,还有更多东西可能会发生故障。使用您认为最适合您用途的 RAID 类型,但要计划因硬件故障或恶意软件/病毒攻击而导致的恢复。

相关内容