软件Parity-RAID(例如RAID5)的优缺点

软件Parity-RAID(例如RAID5)的优缺点

最近有人告诉我有关没有非易失性缓存的奇偶校验 RAID 的一些问题。更昂贵的硬件控制器确实具有电池供电的缓存,可以在电源故障的情况下完成写入操作。现在,有人说这样的故障,也许与降级的阵列相结合,可能会毁掉你的整个文件系统。其他人则声称这些问题已经过时和/或存在误解

不幸的是,没有人提供硬性参考,也没有人搜索md RAID 和非易失性缓存,也不为位图缓存给出关于 md-RAID5 是否可取的可靠答案。

有相关信息吗?

答案1

我认为 Linux 的软件 RAID 与不带 BBU 且启用了回写缓存​​的硬件 RAID 卡一样可靠。毕竟,软件 RAID 系统中未提交的数据驻留在内核的缓冲区缓存中,这是一种没有电池备份的回写缓存形式。

由于我使用过的每张硬件 RAID-5 卡都允许您在没有 BBU 的情况下启用回写式缓存,因此我预计软件 RAID-5 对于具有一定风险承受能力的人来说可以正常工作。

观察战争故事:

话虽如此,尽管启用了回写式缓存,但由于 RAID-5 卡上未安装 BBU,我个人也经历过严重的数据丢失。 (也没有 UPS。别对我大喊大叫,这不是我的电话。)

当我正在度假时,我的老板惊慌地给我打电话,因为我们的一个生产系统在停电后无法恢复。他已经没有什么可以尝试的了。我不得不把车停到路边,拿出笔记本电脑,打开手机上的 WiFi 网络共享,ssh进入受影响的系统,然后修复它,而我的家人和我一起坐在路边,直到我完成从备份中恢复被访问的数据库表。 (当时我们距离失去手机信号大约一英里。)

那么告诉我:你愿意花多少钱购买 RAID 卡 + BBU现在

答案2

只是警告通知:当您的阵列性能下降时,RAID-5/6 写入操作会占用大量 CPU 时间。如果当磁盘发生故障时您的服务器已经满载,它可能会陷入无响应的深渊。使用硬件 RAID 控制器不会出现此类问题。因此,我强烈建议不要在生产服务器上使用软件 RAID-5/6。对于工作站或轻负载服务器来说,这还可以。

答案3

SW RAID 确实有一种故障模式 - 如果服务器在写入过程中发生故障,您可能会得到损坏的条带。带有 BBU 的 HW RAID 控制器并不是那么昂贵,并且它会保留脏块,直到您可以重新启动磁盘。

缓存上的 BBU 会不是保证在电源故障时写入(即不为磁盘供电)。它会为缓存供电几天,直到您可以重新启动磁盘。然后控制器会将所有脏缓冲区刷新到磁盘。

关于软件与硬件 RAID-5 的一些注意事项

  1. 如果直写式缓存与阻塞 I/O 一起使用,则 SW RAID-5 卷上的写入可能会很慢,因为只有所有 I/O 完成后调用才会返回。带有 BBWC 的 HW RAID 控制器可以显着优化这一点,因此您可以看到明显更好的性能。

  2. 上次我查看时,您无法在 SW RAID 卷上执行直接 I/O(即零复制 DMA)。这可能已经改变,并且实际上仅与使用原始分区的数据库管理器等应用程序相关。

  3. 现代 SAS RAID 控制器可以从磁盘阵列中拉出或推送 1GB/秒或更多的数据,特别是在使用较大(例如 256kb)条带大小进行格式化的情况下。我什至对较旧的进行了基准测试Adaptec ASR-2200s其速度表明它的两个 scsi 通道几乎都以 600MB/秒+ 的速度饱和(10x 15k 磁盘),而主机上的 CPU 负载非常少。我不确定您能否在没有大量 CPU 负载的情况下从软件 RAID-5 中获得这一点(如果有的话),即使在现代机器上也是如此。也许你可以很快读完。

  4. 启动 HW RAID 卷的配置很简单 - RAID 卷对操作系统是透明的。

来自一级供应商(例如 Adaptec)的低端 RAID 控制器的零售价格并不昂贵,并且可以在 eBay 上以低廉的价格购买。但请记住,如果您购买二手产品,请坚持选择一级供应商,并确保您了解型号并从他们的网站验证驱动程序的可用性。

编辑:从 @psusi 的评论来看,请确保您没有使用 fakeraid(隐藏在驱动程序中的透明 SW RAID)控制器,但大多数较大品牌(Adaptec、3Ware 或 LSI)提供的产品都不是 fakeraid 单元。任何能拿BBU的东西都不会是fakeraid。

答案4

Linux mdadm 软件 raid 的设计与具有电池支持缓存的硬件 raid 一样可靠。除了单个磁盘突然断电的问题外,不存在突然断电的问题。

当系统在断电后恢复时,阵列将重新同步,这基本上意味着重新计算奇偶校验以匹配断电前写入的数据。这需要一些时间,但实际上没什么大不了的。通过启用写意图位图可以大大减少重新同步时间。

相关内容