常用PC服务器阵列卡、硬盘健康监控 叶金荣
通常,我们使用的dell/hp/ibm三家的机架式pc级服务器阵列卡是从lsi的卡oem出来的,dell和ibm两家的阵列卡原生程度较高,没有做太多封装,可以用原厂提供的阵列卡管理工具进行监控;而hp的阵列卡一般都做过封装了,因此需要使用自身特有的管理工具来监控。
本文以几种常用的阵列卡为例,展示其阵列卡及硬盘监控的方法。
dell sas 6/ir卡,全称lsi logic sas1068e,只支持raid 0, raid 1, raid 1+0, 不支持raid 5等高级raid特性,不支持阵列卡电池。
dell perc perc h700卡,全称lsi logic megaraid sas 2108,支持各种raid级别及高级特性,可选配阵列卡电池。
dell perc h310 mini卡 ,全称lsi logic / symbios logic megaraid sas 2008,支持常见raid级别,不支持高级raid特性,不支持阵列卡电池。
ibm serveraid m5014 sas/sata controller卡,全称lsi logic / symbios logic megaraid sas 2108,支持各种raid级别及高级特性,可选配阵列卡电池。
ibm serveraid-mr10i sas/sata controller卡,全称lsi logic / symbios logic megaraid sas 1078,支持常见raid级别,不支持高级raid特性,可选配阵列卡电池,这个卡其实和dell的perc 6/i卡是一样的,都是基于lsi megaraid sas 1078基础上oem出来的。
上面是几种常见的阵列卡型号,更多的可以自行查看官方的技术手册。
下面我们要继续的是,这些阵列卡以及硬盘如何监控,阵列卡的管理也请查看官方技术手册,不在本文讨论范畴,或者查看作者的一个分享ppt:pc服务器阵列卡管理简易手册。
一般地,支持raid 5的卡,我们称其为阵列卡,都可以使用lsi官方提供的megacli工具来管理,而不支持raid 5的卡,我们称其为sas卡,使用lsiutil工具来管理。hp的服务器使用其特有的hpacucli工具来管理。
1、megacli工具
a) megacli -adpallinfo -aall — 查看阵列卡信息
-a 参数指定阵列卡的编号,一般服务器上只会配一个阵列卡,因此我们通常指定为 -a0(阵列卡适配器编号,从0开始) 即可,主要关注下面几个信息:
状态值 | 对应含义 |
product name : perc h710 mini | 阵列卡名称 |
fw package build: 21.2.0-0007 | 阵列卡firmware版本号,版本如果太低,建议升级以提高稳定性及性能 |
bbu : present | 是否有配bbu电池 |
b) megacli -cfgdsply -aall — 查看阵列配置
状态值 | 对应含义 |
memory: 512mb | 阵列卡cache大小,2的n次方,如果不是,说明阵列卡有异常 |
number of dedicated hotspares: 0 | 阵列是否有专用/独享热备盘(如果有多个逻辑磁盘组/disk group,则可以指定一个硬盘用于全局热备,那么该disk group上的专用热备盘数量为0也不用担心),除了raid 1/raid 1+0一般不指定热备盘以外,其他几个阵列级别建议都要指定热备盘 |
state : optimal | 阵列状态,如果不是 optimal 就要关注了 |
current cache policy: writeback, readaheadnone, direct, write cache ok if bad bbu | 阵列读写cache策略,建议写策略设置为force wb,最起码是wb,预读策略可以关掉,意义不大,几乎没影响 |
disk cache policy : disabled | 硬盘cache策略,建议关闭,防止意外时数据丢失 |
current power savings policy: none | 节电策略,建议关闭 |
media error count: 0 | 三个错误计数器,任何一个值大于100就要立刻引起关注,尤其要关注起增长速度。1t以上sata盘,计数值不够精确,可能所有盘上该值都会大于0,一般重启就会重新清0,如果重启后还是大于0的话,赶紧报修吧。sas盘的计数值则比较准确。 |
other error count: 0 | |
predictive failure count: 0 | |
firmware state: online, spun up | 查看硬盘状态,如果是unconfigured表示该硬盘未分配加入到阵列中;如果是 unconfigured(bad)表示该盘不但是未分配,而且还坏了,正是“出师未捷身先死”;如果是failed,表示该盘故障无法识别;如果是rebuilding,表示该盘正在重建数据 |
c) megacli -adpbbucmd -aall — 查看阵列卡电池信息
状态值 | 对应含义 |
temperature: 39 c | 查看电池温度,如果相比上一次查看高出不少,就需要关注了,或者可以根据经验设置一个基线值 |
battery state: optimal | 电池状态,如果不是为optimal,就需要关注了 |
charger status: complete | 电池充放电状态 |
issohgood: yes | 电池状态,如果不是为yes,需要关注 |
relative state of charge: 93 % | 当前电量,当电量低于15%,或者电池坏掉时,默认都会将写策略从wb改成wt,除非设定为force wb策略 |
max error = 0 % | 电池是否有错误信息 |
next learn time: tue oct 14 22:06:50 2014 | 电池充放电时间,注意这是美国时间。另外,新的阵列卡电池很多改成电容式的了,也就不需要重复充放电了 |
d) megacli -fwtermlog -dsply -aall 查看阵列卡日志,关注里面的error/fail/warn等多个关键字
2、lsiutil工具
lsiutil有交互和非交互两种方式,作为监控,我们肯定选择非交互模式。想要使用交互模式的,可以根据非交互模式自行练习。
a) lsiutil -p 1 -a 20,12,0,0 — 查看硬盘计数器
invalid dword count 2,563 — 任何一个值大于0,都需要引起关注
running disparity error count 2,366
loss of dword synch count 0
phy reset problem count 0
b) lsiutil -p 1 -a 21,1,0,0,0 — 查看逻辑卷状态
状态值 | 对应含义 |
volume state: optimal, enabled | 逻辑卷健康状况 |
volume draws from hot spare pools: 0 | 是否有热备 |
volume size 139392 mb, 2 members | 由几块硬盘组成 |
primary is physdisk 1 (bus 0 target 9) | 物理硬盘1 |
secondary is physdisk 0 (bus 0 target 3) | 物理硬盘0 |
c) lsiutil -p 1 -a 21,2,0,0,0 — 查看物理硬盘状态
状态值 | 对应含义 |
physdisk 0 is bus 0 target 3 | 编号 |
physdisk state: online | 状态 |
error count 13, last error: command = 28h, key = 3, asc/ascq = 11h/00h | 错误计数器,大于0的话,就需要引起关注 |
3、hpacucli工具
hpacucli工具查看阵列、硬盘、电池信息,其实就只要一条指令:
hpacucli ctrl all show config detail — 查看阵列详细信息、配置
状态值 | 对应含义 |
controller status: ok | 阵列卡状态 |
firmware version: 1.18 | firmware版本,太低了建议升级,以提高稳定性及性能 |
cache board present: true | 是否配备了cache模块 |
cache status: ok | cache模块状态 |
cache ratio: 100% read / 0% write | cache策略,此处只有读cache,不用于写cache,因为没有bbu电池,见下方结果 |
drive write cache: disabled | 关闭磁盘cache |
total cache size: 256 mb | cache大小 |
total cache memory available: 208 mb | 实际可用cache大小,和理论cache大小不一样,说明cache模块可能有问题 |
no-battery write cache: disabled | 关闭forcewb策略 |
battery/capacitor count: 0 | 阵列卡bbu电池数量为0,也就是没有bbu模块 |
battery/capacitor status: failed (replace batteries) | 阵列卡bbu电池状态,这里显示是错误状态,需要及时更换 |
array: a | 第一个乌列阵列,编号从a开始,依次是a、b、c |
status: ok | 物理阵列状态 |
logical drive: 1 | 第一个逻辑卷,编号从1开始 |
fault tolerance: raid 5 | 第一个逻辑卷的阵列级别 |
status: ok | 第一个逻辑卷状态 |
caching: enabled | 第一个逻辑卷是否启用了cache策略 |
physicaldrive 1i:1:1 | 第一块物理硬盘,编号从1开始 |
status: ok | 第一块物理硬盘状态 |
firmware revision: hpda | 第一块物理硬盘firmware,如果太低,也需要及时升级,hp的硬盘每个批次都有不同的firmware |
延伸阅读:
http://www.lsi.com/downloads/public/obsolete/obsolete%20common%20files/mr_sas_stor_ug.pdf
http://www.hp.com/ctg/manual/c00709035.pdf
http://docs.oracle.com/cd/e19121-01/sf.x4200/819-1157-23/f_bios_raid.html