最近有人告诉我有关没有非易失性缓存的奇偶校验RAID的一些问题。更为强大的硬件控制器确实具有电池供电的高速缓存,以在电源故障的情况下完成写操作。现在,有人说这样的故障,可能与降级的阵列一起,可能会杀死您的整个文件系统。其他人则认为这些问题已经过时和/或存在误解。
不幸的是,没有人提供硬性参考,也没有搜索md RAID和非易失性缓存,也没有通过位图缓存提供关于md-RAID5是否可取的可靠答案。
关于此的任何信息吗?
最近有人告诉我有关没有非易失性缓存的奇偶校验RAID的一些问题。更为强大的硬件控制器确实具有电池供电的高速缓存,以在电源故障的情况下完成写操作。现在,有人说这样的故障,可能与降级的阵列一起,可能会杀死您的整个文件系统。其他人则认为这些问题已经过时和/或存在误解。
不幸的是,没有人提供硬性参考,也没有搜索md RAID和非易失性缓存,也没有通过位图缓存提供关于md-RAID5是否可取的可靠答案。
关于此的任何信息吗?
Answers:
我认为Linux的软件RAID与没有BBU且启用回写缓存的硬件RAID卡一样可靠。毕竟,软件RAID系统中的未提交数据驻留在内核的缓冲区高速缓存中,这是没有电池备份的回写高速缓存的一种形式。
由于我曾经使用过的每个硬件RAID-5卡都允许您在没有BBU的情况下启用回写缓存,因此我希望软件RAID-5可以对具有一定风险承受能力的人们正常工作。
战争故事:
话虽如此,我个人经历了严重的数据丢失,因为尽管启用了回写缓存,但在RAID-5卡上没有安装BBU。(也没有UPS。也不要对我大喊,不是我的电话。)
我度假时,老板打电话给我感到恐慌,因为停电后我们的其中一个生产系统无法恢复。他已经花光了要尝试的东西。我不得不走到路边,拿出笔记本电脑,打开手机上的WiFi绑定,ssh
进入受灾的系统,然后修复它,而我的家人则坐在路边与我在一起直到完成从备份还原蟑螂数据库表。(当时我们距离失去手机接收能力大约一英里。)
所以告诉我:您现在为RAID卡+ BBU支付多少钱?
SW RAID确实具有故障模式-如果服务器在写操作中途中断,则可能会损坏条带。带有BBU的HW RAID控制器并不是那么昂贵,它会保留脏块,直到您可以重新启动磁盘为止。
高速缓存中的BBU 不能保证在电源故障时进行写操作(即,它不为磁盘供电)。它会为缓存供电几天,直到您可以重新启动磁盘。然后,控制器会将所有脏缓冲区刷新到磁盘。
关于软件与硬件RAID-5的一些说明
如果将直写缓存与阻塞的I / O一起使用,则在SW RAID-5卷上的写操作可能会很慢,因为在所有I / O完成之前,调用不会返回。带有BBWC的HW RAID控制器可以大大优化此性能,因此您可以看到明显更好的性能。
我上次看您无法在SW RAID卷上执行直接I / O(即零拷贝DMA)。这可能已经改变,并且实际上仅与使用原始分区的应用程序(如数据库管理器)有关。
现代的SAS RAID控制器可以从磁盘阵列中拉出或推送1GB /秒或更多的数据,特别是如果格式化的条带大小很大(例如256kb)。我什至已经对较旧的Adaptec ASR-2200s进行了基准测试,结果表明它的两个scsi通道以600MB / sec +的总速度(10x 15,000磁盘)饱和了很多,而主机上的CPU负载却很少。我不确定即使在现代计算机上,您也可以从RAID-5软件中获得大量CPU负载。也许您可以快速阅读。
引导HW RAID卷的配置很简单-RAID卷对操作系统是透明的。
从一级零售供应商那里购买的低端RAID控制器(如Adaptec)的零售价并不昂贵,可以从ebay上购买花生。但是请记住,如果您购买二手货,请坚持使用一级供应商,并确保您知道该型号并从他们的网站验证驱动程序的可用性。
编辑:从@psusi的评论,请确保您没有得到fakeraid(隐藏在驱动程序中的透明SW RAID)控制器,但是较大名称(Adaptec,3Ware或LSI)提供的大多数产品都不是fakeraid单元。可以采用BBU的任何东西都不会被伪造。
如果您有数据存储在缓存中但还没有存储在磁盘上,并且电源出现故障,那么数据将消失,并且您的磁盘很有可能处于不一致状态。除非您拥有一个不断编写的系统,否则该机率不会很高,但是我仍然不希望将自己的数据押在机率游戏上。
一个有趣的转折是在RAID5 / 6上创建一个主文件系统,但在常规驱动器上放一个日志,因此首先将数据转储到常规驱动器上。性能可能会受到限制,因为您将限于单个驱动器的写入速度,但是可靠性会提高。因此,我认为在您的写入性能并不重要但您的读取很重要的情况下,这可能会很好。
或者,您可以再花100美元购买带有BBU或小型UPS的卡,并完全避免所有这些麻烦;)
Linux mdadm软件突袭的设计与具有电池后备缓存的硬件突袭一样可靠。除了那些同样适用于单个磁盘突然掉电的问题之外,突然掉电也没有问题。
当系统在电源故障后恢复正常运行时,该阵列将重新同步,这基本上意味着将重新计算奇偶校验以匹配电源故障之前写入的数据。这需要一些时间,但实际上没什么大不了的。通过启用写意图位图,可以大大减少重新同步时间。
这是一个博客,解释RAID5的问题以及ZFS RAIDZ如何解决它。
它的关键点是:
RAID-5(以及其他数据/奇偶校验方案,例如RAID-4,RAID-6,奇偶校验和行对角奇偶校验)从未完全兑现RAID承诺-不能-由于已知的致命缺陷作为RAID-5写入孔。每当您更新RAID条带中的数据时,还必须更新奇偶校验,以使所有磁盘的XOR都为零-该方程式使您可以在磁盘发生故障时重建数据。问题在于无法自动更新两个或多个磁盘,因此RAID条带在崩溃或断电期间可能会损坏。
和
RAID-Z是类似于RAID-5的数据/奇偶校验方案,但是它使用动态条带宽度。无论块大小如何,每个块都是其自己的RAID-Z条带。这意味着每个RAID-Z写入都是全条带写入。当与ZFS的写时复制事务语义结合使用时,完全消除了RAID写漏洞。