Raid
管理 LSI 和類似 RAID 控制器上的電池重新學習週期
工程師如何處理 RAID 控制器電池“重新學習”週期?
如中所述:LSI MegaRaid 上的“電池重新學習”是什麼?, relearn 循環會釋放 RAID 控制器電池(BBWC 或 BBU),從而消除寫入記憶體加速。檢查電池壽命並充電後,重新啟用寫入記憶體。這對重新學習週期期間的伺服器 I/O 性能有明顯的影響。我認為這每月都會發生。
已經註意到性能下降,尤其是在數據庫系統上:
我的背景是 HP ProLiant 伺服器,它的Smart Array控制器沒有經過這個練習(或者至少有更主動的電池壽命監控)。這似乎是一個可怕的功能(最大的不便,幾乎沒有收穫),但我處於一個有許多 LSI 控制器(在Supermicro硬體上)的環境中,並且想看看是否可以將一攬子策略應用於相關係統。
- LSI 控制器上重新學習週期的預設時間表是什麼?
- 這些再學習週期有用嗎?
- 是否應該禁用此功能?
- 如果您選擇在您的環境中啟用此功能,您將如何處理調度?您是手動安排還是允許控制器設置自己的時間表?
- Dell Perc 控制器是否以同樣的方式受到影響?(LSI 是 OEM)
就在最近,我讀到了 Godaddy 的一位工程師關於這個主題的文章:Learning to Deal with Learning
在他們的硬體(戴爾 PERC 卡)上,電池學習週期每 90 天發生一次,但無法確切知道何時會發生,即在高峰或非高峰時間。
他們討論了不同的解決方案:
- **徹底禁用電池學習。**此選項的問題是您不知道電池的狀態以及它可以容納多長時間和多少電量,因此在斷電的情況下,您可能會冒數據失去的風險。
- **使用不同的硬體。**一些控制器有 2 節電池,並在此類學習週期中在它們之間翻轉。此外,還有一些 RAID 控制器(例如 Dell H710)不需要電池,而是使用非易失性 NVRAM 來儲存未送出的數據。
- **無論電池狀態如何,都強制回寫(記憶體)。**與第一種解決方案一樣,您面臨著數據失去的風險。
最終,他們為非高峰時間設置 crons 來監控下一個學習週期,如果是在接下來的 24 小時內,他們會強制它立即發生。這樣他們就可以保持使用電池的好處,而無需在高峰使用時間執行它。