mdadm 3路RAID 1 – 保证2路硬盘容错的最佳解决scheme?

使用mdadm的3路RAID1是一个很好的解决scheme,能够在没有RAID故障的情况下维持任何两个驱动器的故障? 我知道这只需要使用1/3的磁盘空间(3个驱动器中的1个),但是除此之外,这个花费是多less呢?

要使单个arrays能够发生双盘故障,您有两个select:

  • 三路RAID1 ,如你所说
  • 另一种可能性是RAID6

什么是最好的select? 这取决于你想要达到的目标。

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

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

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

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

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

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

请注意,这将降低随机读取IOPS性能(因为某些磁盘将仅用于写入), 所以请小心select毒药。

是的,您可以随意添加尽可能多的镜像到RAID1,并且可以容忍除1个设备之外的所有设备的故障。 如果添加10个设备,则可以容忍9个设备的故障。

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

另一个解决scheme是使用3个磁盘的RAID 6。 看到这个职位:

实现RAID6的最小磁盘数量

Raid 6还可以通过添加第四个驱动器来增加容量。 我有2个驱动器在arrays上失败,并没有丢失数据。

首先,我认为重要的是要注意使用情况和使用的组件的质量。 如果你使用桌面硬盘和廉价RAID控制器,或者使用完整的企业硬件,这是不一样的。

如果您唯一要做的就是跨硬盘(RAID1)进行复制,那么您可以承受失去n-1个硬盘驱动器,并且仍然保留所有数据。

但是我真的很想知道你的使用情况和硬件select是什么,你是如此担心同时丢失两个驱动器?

最近,我为ISP设置了一个Web服务器。 服务器有一个6端口RAID控制器。 所以我将RAID 60设置为速度/安全性之间的良好折衷。

我build议你阅读这个链接

至于你的说明,我强烈build议去RAID 5或RAID 60 …或者,如果成本是问题,简单的RAID0与双层异地备份就足够了。

我的参考资料是我自己的经验,在大量不同的使用场景中设置了众多服务器。

我一直是基于硬件的RAID 5的忠实粉丝。如果计划的使用允许,我通常使用Ubuntu Linux作为服务器。 使用基于硬件的RAID,Ubuntu(以及任何其他操作系统)在大多数现代服务器上从RAID-5arrays引导都没有问题。 我也使用多个备份。 第一个备份是使用Back-In-time在外部驱动器上的服务器上的每小时备份,以在工作时间内每小时提供一次现场备份。 第二级备份是使用运行Ubuntu和Back-In-Time的另一台计算机的networking共享驱动器的夜间备份。 夜间备份也是对便携式USB驱动器进行的,并且至less有一个不在现场。 驱动器在工作周期间每天都轮换一次。 第三级备份是运行Ubuntu Linux的退役Windows Vista计算机,configuration与服务器configuration类似,每天晚上使用Linux实用程序rsync将服务器文件同步到备份系统。 过去几年当驱动器出现故障时,RAID-5(带有热备份)效果不错。 故障驱动器(热插拔)在每个实例中被replace而不中断networking活动。 当服务器遇到硬盘崩溃时,RAID-5没有帮助,可能是主板或内存故障。 帮忙的是从前一天晚上营业的时候就有了同步文件的备用服务器。 我运行了一个小脚本,将服务器configuration迁移到备份服务器,迁移所有用户和计算机帐户,使备用计算机成为临时PDC。 花了几个小时把另一台退休的Windows计算机组装起来,build立一个新的备份计算机系统并将其联机。 我select用更适度的Proliant ML10服务器取代昂贵的Proliante ML350服务器。 我将使用RAID-1将新服务器configuration为带有热备份的3驱动器镜像。 我订购的ML10服务器使用的软件RAID控制器必须configuration为AHCI而不是RAID,以便Ubuntu启动。 服务器和四个1TB驱动器的总成本大约是ML350上的一个300GB驱动器的成本。 这是25年来第二次pipe理服务器RAID-5没有帮助(第一次可能是RAID控制器的故障)。 这两个实例都不是RAID的问题,只是使用技术造成的一个问题。

我希望得到的主要观点是当你的服务器发生故障并且有一个好的备份计划时做好准备。 要做好备份计划,您必须实际testing备份和恢复过程。 在最近一次失败的情况下,总有一段时间,我接到电话,让我起床,穿衣服,走出门外快速吃东西,开车到现场(10分钟车程),诊断问题(包括尝试重新启动服务器)以及获取备份服务器的联机时间为52分钟。

您可以讨论哪种更适合RAID的不同可能性。 请记住,硬盘以外的东西可能会更多。 使用您认为最适合您使用的RAIDtypes,但要计划恢复,因为硬件故障或恶意软件/病毒攻击。