对RAID及BBU的自问自答

这几天遇到了RAID卡的write policy从WB自己切回WT的问题,如果"learn cycle"发生在业务高峰期,将会严重影响DB的性能。问题解决后,将自己对这些问题的理解整理一下。关于用到的MegaCli命令集我就不介绍了,网上介绍它的资料较多,国内的资料推荐老谭老叶的相关文章。

我以问答方式阐述raid卡BBU相关问题:

Q1:目前出问题的服务器的raid卡(MegaRAID SAS 8708ELP)管理有几种方式?
1. 有以下三种管理方式可对raid阵列进行管理
a) MegaRAID Storage Manager(方法:出现系统引导画面时,按CTRL+R进入阵列卡BIOS设置)
b) WebBIOS(方法:出现系统引导画面时,按CTRL+H进入管理界面)
c) MegaCLI(方法:基于cmdline )

Q2: 为什么每台新装的服务器第一天时,生效的write policy是write through,而不是设置(默认)的write back ?
1. BBU的存在是使用writeback的必要条件;
2. write-back是默认的write policy;
3. 部署完raid阵列和IBBU后,IBBU第一次使用时,它会经历至少6个小时以上的时间完成一次Learn cycle.
4. 一次learn cycle包括两部分:
a) Learn cycle discharge cycle: approximately three hours
b) Learn cycle charge cycle: approximately four hours

Q3: 在充满电后,write back也已经正常使用,但经过一段时间后,为何write policy又被自动切换回write through?
1. 在三种情况下会使用Write through policy,一是本身设置的就是write through(呵呵,这不是废话嘛!) ;二是没有battery或者battery有故障了;三是battery处在“low-charge state”阶段 。何为“low-charge state”?简单的来说就是当电池的电量不足以保持24小时的数据的时候,它会将原来设置的write back切换成write through,这种行为会发生在“Learn cycle”的“discharge cycle”步骤中,原因是在“discharge cycle”过程中,battery的电量会满足“low-charge state”。注意:并不是说当battery的电量满足可以保证24hours数据要求后就会自动切换回write back,从write through切换成write back的行为发生在battery充满以后(>=85%)。

Q4:BBU的battery能保 持多长时间的数据?
72hours

Q5:多长时间进行一次learn cycle?
三个月左右,也就是大约90天。

Q6:battery的正常温度是多少?
Operating Temperature Maximum ambient: 50摄氏度 (40摄氏度 w/iBBU),这里要说明的是,在充电时,电池的温度会比平时高出10~15度左右 。

Q7: 如果应对此类事件?
解决方法应该有以下两种:
a) 根据日志信息得到它下次充放电的时间(图1),在业务量较低时,提前进行充放电,避开在业务峰值期发生write policy更改的情况。

T4: *** BATTERY FEATURE PROPERTIES ***
T4: _________________________________________________

T4: Auto Learn Period : 30 days
T4: Next Learn Time : 322829199
T4: Battery ID : 38d707d5
T4: Delayed Learn Interval: 0 hours from scheduled time
T4: AutoLearnMode : 0
T4: Next Learn cheduled on: 03 25 2010
T4: _________________________________________________

图1

b) 使用Forced Write-Back,也就是所谓的Force WB with no battery.当然如果要设置成它的话,服务器应该有UPS之类的后备电源。

posted @ 2010-03-08 15:03 番茄侠 阅读(...) 评论(...) 编辑 收藏