工程师如何处理 RAID 控制器电池“重新学习”循环?
如上所述:LSI MegaRaid 上的“电池重新学习”是什么?,重新学习周期会放电 RAID 控制器电池(BBWC 或 BBU),从而消除写入缓存加速。检查电池寿命,充电后,重新启用写入缓存。在重新学习周期期间,这对服务器 I/O 性能有明显影响。思考这种情况每月都会发生。
性能下降的情况已经显而易见,特别是在数据库系统上:
我的背景是 HP ProLiant 服务器,智能阵列管制员无需进行此项练习(或者至少有更主动的电池寿命监控)。这似乎是一个糟糕的功能(最大的不便,最小的收获),但我处在一个有许多 LSI 控制器的环境中(超微我们希望了解是否可以将一揽子政策应用于相关系统。
- LSI 控制器上的重新学习周期的默认计划是什么?
- 这些重新学习周期有用吗?
- 是否应禁用该功能?
- 如果您选择在您的环境中启用此功能,您将如何处理调度?您是手动安排还是允许控制器设置自己的调度?
- 是Dell Perc 控制器受到同样的影响吗?(LSI 是 OEM)
答案1
就在最近,我读了一篇由 GoDaddy 的一位工程师撰写的关于这个话题的文章:学会应对学习
在他们的硬件(Dell PERC 卡)上,电池学习周期每 90 天发生一次,但无法知道它具体何时发生,即在高峰时段还是非高峰时段。
他们讨论了不同的解决方案:
彻底禁用电池学习。这个选项的问题在于您不知道电池的状态以及它能够保持电量的时间和量,因此在断电的情况下您可能会面临数据丢失的风险。
使用不同的硬件。有些控制器有 2 块电池,在学习周期中电池会切换。此外,有些 RAID 控制器(如 Dell H710)不需要电池,而是使用非易失性 NVRAM 来存储未提交的数据。
无论电池状态如何,强制写回(缓存)。与第一个解决方案一样,您也面临数据丢失的风险。
最后,他们会在非高峰时段设置 cron 来监控下一个学习周期,如果是在接下来的 24 小时内,他们会强制立即执行。这样,他们既可以保持电池的锻炼优势,又不必在高峰使用时间运行。