为什么Raid卡电池被换为超级电容
目前最新的Raid卡已经普遍使用超级电容+Flash子板的方式来将非正常掉电后的脏数据刷入Flash中永久保存。超级电容的电量在几十法拉量级。而早期的Raid卡普遍使用的是锂电池,掉电后直接给板载的DRAM持续供电,进入DRAM自刷新模式。所以电池的电量需要足够大,一般是被设计为足够支撑板载DRAM持续自刷新72小时。
锂电池的备电方式有两个缺点:故障率高、丢数据风险依然较高。锂电池很难维护,需要记录其充电次数、寿命、电量估算、漏电等等数据并作出决策。早期的时候,在某大型互联网公司曾经出现过因为Raid卡固件bug导致的大面积业务瘫痪。当时场景是这样的:由于Raid卡固件bug,到了某个日期时,突然报告电池故障,其实电池并没有故障。随后Raid卡自动进入Write Through模式,导致数千台服务器写性能骤降,前端业务直接瘫痪,影响极度恶劣。
这次事故更加促成了Raid卡厂商转向使用超级电容+Flash的备电方案。超级电容在50℃环境下可以使用5年,平时根本不需要维护。再加上加入了Flash,而不是持续刷新DRAM,所以掉电之后仅需要提供数十秒的供电时间即可,而且如果采用SLC Flash,其数据持久性可以保持数年之久,没有丢数据风险。