深信服社区»版块 云计算类 超融合HCI 想了解一下为什么要关闭RAID写缓存

想了解一下为什么要关闭RAID写缓存

查看数: 12440 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-9-20 12:09

正文摘要:

如题

回复

新手166158 发表于 2019-5-19 14:01
提示: 作者被禁止或删除 内容自动屏蔽
灵活的小胖纸 发表于 2017-9-22 09:53
是PPT的错,正解是:在配置RAID时,要开启RAID的写缓存,提高磁盘的写速度。
神样队员 发表于 2017-9-22 09:33
开启提升速度,但是第二个条件特殊,不是做成虚拟存储,而是搞成每个硬盘做成存储,为了数据安全,关闭很正常吧
新手088142 发表于 2017-9-21 18:25
本帖最后由 jaden1q84 于 2017-9-22 09:52 编辑

这一页PPT本身是某公司超融合虚拟存储的硬盘配置说明,其上下文是针对某公司超融合上**被虚拟存储aSAN纳管**的硬盘配置要求,因此不能断章取义单独看这一页PPT的内容。如果没有使用aSAN,而使用RAID卡组建本地存储方式。由于没有aSAN的SSD加速作用,是需要开启RAID卡缓存来提升IO速度的,但对RAID卡缓存可靠性配置有一定要求,具体见后文关于RAID卡缓存的说明。

在回答针对在aSAN上的RAID卡缓存配置这些疑问前,我们先来了解一下RAID卡缓存,以及硬盘缓存的原理和作用。

* RAID卡缓存
大部分RAID卡会采用内存颗粒(RAM)作为RAID逻辑盘缓存,容量在几百M到几个G不等,RAID卡缓存仅对RAID逻辑盘生效,对JBOD透传的硬盘是不生效的。众所周知,内存颗粒在掉电时会丢失数据,而RAID卡是通过自带的电池供电来保证这些内存缓存在故障情况下不丢失的。在系统强制下电时,如果启用了RAID卡缓存,并且缓存有脏数据,就要依赖电池供电来保持数据直到下一次系统上电再回刷到硬盘。保持数据的时间长短要视乎电池的状态和电量,一般在电量满足情况下,能让RAM的数据保持几十个小时(RAID厂商普遍指标为72小时)。如果超过时间后,缓存数据就丢失了,另外还存在不可预知的其他原因,比如电池接触原因的、电池本身质量等,而丢失缓存数据引起数据丢失。RAID卡电池还存在充放电次数维护的问题,需要使用者有比较高的理解和操作能力。市面上还有些RAID卡是采用钽电容+RAM+Flash颗粒来构造缓存机制的,这种方式是通过钽电容提供短时间的供电,把RAM的数据写入到板载的Flash颗粒里面,从而达到掉电不丢数据的目的,这种RAID卡普遍价格较高。需要注意的是,RAID卡并不是默认配备电池模块的,需要购买者指定型号或另外选购。总的来说,RAID卡的电池使用和缓存配置对使用者有一定的运维要求,并且电池并不是保证缓存数据万无一失的解决办法。

* 硬盘缓存
对于机械硬盘,也有一个缓存机制。这个缓存同样采用RAM内存颗粒来实现,通常是32M-128M。这个缓存的作用主要是为了解决机械盘写入性能问题。我们知道机械盘的寻道需要时间,那写入的数据会先存在硬盘缓存上,配合机械盘自身的寻道优化算法(比如电梯算法)来把数据从缓存写入到盘面上。硬盘缓存就是为了满足算法排序以及数据聚合成大块再写入盘面提高速度而存在的。硬盘缓存也是可以通过命令关闭的,Linux上SATA硬盘的关闭命令是hdparm -W 0 /dev/sdX,SAS盘则用sdparm命令。关闭后写性能会明显下降 。

现在我们回来看PPT的内容。PPT里面要求在不支持JBOD时就用单盘组RAID0并关闭RAID卡缓存。这是为了在*所有场景*情况下都能满足掉电数据一致性提出的。注意是所有场景,即包括RAID卡无电池或电池超时失效的情况,直接要求全部情况都关闭RAID缓存是为了确保各种情况下都不会存在因为掉电而丢失数据的情况出现。对于硬盘缓存,通常在配置RAID盘时,默认的硬盘缓存策略一般都是关闭的,所以PPT就没专门指出。这一点PPT可以再补充清楚对硬盘缓存的要求。

那怎么解决关闭后HDD写性能下降的问题呢?超融合的虚拟存储提供了SSD+HDD混合机制,通过利用SSD来充当读写缓存、数据分层,在写入数据时会先写进入高速SSD,当满足一定条件后再回写到HDD。并且在回写过程中,还增加了模拟RAID卡缓存/硬盘缓存的机制,会对临近数据块进行合并成大块后再写入HDD。而SSD的容量是远大于RAID卡的缓存的,还能提供更持久的高性能写入缓存时长。在内部实测中,在关闭RAID卡缓存、硬盘缓存的情况下回写速度依然能跑满硬盘的最大性能。我们可以这样理解,超融合利用SSD的特点,构建了比RAID卡缓存效果更好、更安全的缓存机制。
新手1245272 发表于 2017-9-21 16:40
两种意见 不知道哪种对啊
zhangxin 发表于 2017-9-21 08:56
应该是ppt有误,服务器必须开启写缓存,不然机械盘就几十m的写入速度
qinpeng 发表于 2017-9-21 00:01
为了既能避免数据信息保存不完整的现象,又能实现快速拔出移动硬盘的目的,我们可以将系统的磁盘“缓存”功能关闭掉,否则容易出现数据丢失的危险
Sangfor闪电回_小丸子 发表于 2017-9-20 16:25
您好 这个是为保证数据安全,所以建议关闭的
谢谢
一个无趣的人 发表于 2017-9-20 12:45
楼上说的有道理。正解、
jaden1q84 发表于 2017-9-22 09:47
本帖最后由 jaden1q84 于 2017-9-22 09:58 编辑

回复zhangxin:
这一页PPT的上下文是针对在某公司超融合上被虚拟存储aSAN纳管的磁盘的配置要求。如果不使用虚拟存储,而是把本地磁盘组RAID设置为本地存储的使用方式,由于没有aSAN的SSD加速作用,是需要开启RAID卡缓存来保证访问速度的。这是需要注意根据RAID卡的电池情况来判断缓存的可靠性并做好相应的RAID卡情况检查。
您的截图使用的不是虚拟存储,而是通过RAID卡配置的本地存储。这种情况在确保您的RAID卡有完善的电池保持缓存数据情况下,是可以打开RAID缓存来提升IO速度的。另外还有一些运维注意工作,由于大部分厂商的RAID卡电池指标是保持72小时,也就是说如果您服务器因故突然掉电,需要保证在72小时内来电重新充电,否则有数据损失风险。