Managing battery relearn cycles on LSI and similar RAID controllers

Just recently I read an article by one of Godaddy’s engineers about this very topic: Learning to Deal with Learning

On their hardware (Dell PERC cards) battery learning cycle happens every 90 days, but no way to know when exactly it’ll happen, ie during peak or off-peak hours.

They talked about different solutions:

  • Outright disable Battery Learning. Problem with this option is that you won’t know the status of your battery and how long and how much it can hold charge, so in the case of outage you can risk data loss.

  • Use different hardware. Some controllers have 2 batteries and flip between them during such learning cycles. Additionally, there are RAID controllers(such as Dell H710) that do not need batteries but instead use non-volatile NVRAM to store uncommitted data.

  • Force write-back(caching) regardless of the status of your batteries. Like the 1st solution, you are risking data loss.

Ultimately, they setup crons for off-peak hours that monitor for the next learn cycle and if it is within the next 24 hours, they force it to happen immediately. That way they keep the benefit of exercising batteries yet without running it at peak-usage times.

Leave a Comment