前言:
MegaCli 是LSI公司官方提供的SCSI卡管理工具,由于LSI被收购变成了现在的Broadcom,所以现在想下载MegaCli,需要去Broadcom官网查找Legacy产品支持,搜索MegaRAID即可。现在官方有storcli,整合了LSI和3ware所有产品。但是个人认为Megacli用起来更顺手,而且线上用了几家国产厂商服务器,用Megacli都能管理好RAID,所以换不换无所谓。
准备:
新版本的 MegaCli-1.01.39-0.i386.rpm (下载地址:http://docs.avagotech.com/docs-and-downloads/legacy-raid-controllers/legacy-raid-controllers-common-files/1-01-39_Linux_Cli.zip)(在文章结尾已上传,方便下载)该包会把程序安装在/opt下,当然也可以自定义安装目录,例如:rpm --relocate /opt/=/usr/sbin/ -i MegaCli-1.01.39-0.i386.rpm (即把安装目录 /opt 替换成 /usr/sbin)。
(linux文件夹下有个MegaCli文件里面有I386 RPM)
相关命令及其解析:
查看机器型号 # dmidecode | grep "Product"
查看厂商 # dmidecode| grep "Manufacturer"
查看序列号 # dmidecode | grep "Serial Number"
查看CPU信息 # dmidecode | grep "CPU"
查看CPU个数 # dmidecode | grep "Socket Designation: CPU" |wc –l
查看出厂日期 # dmidecode | grep "Date"
查看充电状态 # MegaCli -AdpBbuCmd -GetBbuStatus -aALL |grep "Charger Status"
显示BBU状态信息 # MegaCli -AdpBbuCmd -GetBbuStatus –aALL
显示BBU容量信息 # MegaCli -AdpBbuCmd -GetBbuCapacityInfo –aALL
显示BBU设计参数 # MegaCli -AdpBbuCmd -GetBbuDesignInfo –aALL
显示当前BBU属性 # MegaCli -AdpBbuCmd -GetBbuProperties –aALL
查看充电进度百分比 # MegaCli -AdpBbuCmd -GetBbuStatus -aALL |grep "Relative State of Charge"
查询Raid阵列数 # MegaCli -cfgdsply -aALL |grep "Number of DISK GROUPS:"
显示Raid卡型号,Raid设置,Disk相关信息 # MegaCli -cfgdsply –aALL
显示所有物理信息 # MegaCli -PDList -aALL
显示所有逻辑磁盘组信息 # MegaCli -LDInfo -LALL –aAll
查看物理磁盘重建进度(重要) # MegaCli -PDRbld -ShowProg -PhysDrv [1:5] -a0
查看适配器个数 #MegaCli –adpCount
查看适配器时间 #MegaCli -AdpGetTime –aALL
显示所有适配器信息 #MegaCli -AdpAllInfo –aAll
查看Cache 策略设置 # MegaCli -cfgdsply -aALL |grep Polic
硬盘方面:
1、查看所有物理磁盘信息
MegaCli -PDList -aALL
Adapter #0
Enclosure Number: 1
Slot Number: 5
Device Id: 5
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 140014MB [0x11177328 Sectors]
Non Coerced Size: 139502MB [0x11077328 Sectors]
Coerced Size: 139392MB [0x11040000 Sectors]
Firmware state: Hotspare
SAS Address(0): 0x5000c50008e5cca9
SAS Address(1): 0x0
Inquiry Data: SEAGATE ST3146855SS S5273LN4Y1X0
.....
2、查看磁盘缓存策略
MegaCli -LDGetProp -Cache -L0 -a0
Adapter 0-VD 0: Cache Policy:WriteBack, ReadAheadNone, Direct
or
MegaCli -LDGetProp -Cache -L1 -a0
Adapter 0-VD 1: Cache Policy:WriteBack, ReadAheadNone, Direct
or
MegaCli -LDGetProp -Cache -LALL -a0
Adapter 0-VD 0: Cache Policy:WriteBack, ReadAheadNone, Direct
Adapter 0-VD 1: Cache Policy:WriteBack, ReadAheadNone, Direct
or
MegaCli -LDGetProp -Cache -LALL -aALL
Adapter 0-VD 0: Cache Policy:WriteBack, ReadAheadNone, Direct
Adapter 0-VD 1: Cache Policy:WriteBack, ReadAheadNone, Direct
or
MegaCli -LDGetProp -DskCache -LALL -aALL
Adapter 0-VD 0: Disk Write Cache : Disk's Default
Adapter 0-VD 1: Disk Write Cache : Disk's Default
3、设置磁盘缓存策略
缓存策略解释:
WT (Write through
WB (Write back)
NORA (No read ahead)
RA (Read ahead)
ADRA (Adaptive read ahead)
Cached
Direct
例子:
MegaCli -LDSetProp WT|WB|NORA|RA|ADRA -L0 -a0
or
MegaCli -LDSetProp -Cached|-Direct -L0 -a0
or
enable / disable disk cache
MegaCli -LDSetProp -EnDskCache|-DisDskCache -L0 -a0
4、创建/删除 阵列
4.1 创建一个 raid5 阵列,由物理盘 2,3,4 构成,该阵列的热备盘是物理盘 5
MegaCli -CfgLdAdd -r5 [1:2,1:3,1:4] WB Direct -Hsp[1:5] –a0
4.2 创建阵列,不指定热备
MegaCli -CfgLdAdd -r5 [1:2,1:3,1:4] WB Direct –a0
4.3 删除阵列
MegaCli -CfgLdDel -L1 –a0
4.4 在线添加磁盘
MegaCli -LDRecon -Start -r5 -Add -PhysDrv[1:4] -L1 -a0
意思是,重建逻辑磁盘组1,raid级别是5,添加物理磁盘号:1:4。重建完后,新添加的物理磁盘会自动处于重建(同步)状态,这个 时候 fdisk -l是看不到阵列的空间变大的,只有在系统重启后才能看见。
5、查看阵列初始化信息
5.1 阵列创建完后,会有一个初始化同步块的过程,可以看看其进度。
MegaCli -LDInit -ShowProg -LALL -aALL
或者以动态可视化文字界面显示
MegaCli -LDInit -ProgDsply -LALL –aALL
5.2 查看阵列后台初始化进度
MegaCli -LDBI -ShowProg -LALL -aALL
或者以动态可视化文字界面显示
MegaCli -LDBI -ProgDsply -LALL -aALL
6、创建全局热备
指定第 5 块盘作为全局热备
MegaCli -PDHSP -Set [-EnclAffinity] [-nonRevertible] -PhysDrv[1:5] -a0
也可以指定为某个阵列的专用热备
MegaCli -PDHSP -Set [-Dedicated [-Array1]] [-EnclAffinity] [-nonRevertible] -PhysDrv[1:5] -a0
7、删除全局热备
MegaCli -PDHSP -Rmv -PhysDrv[1:5] -a0
8、将某块物理盘下线/上线
MegaCli -PDOffline -PhysDrv [1:4] -a0
MegaCli -PDOnline -PhysDrv [1:4] -a0
9、查看物理磁盘重建进度
MegaCli -PDRbld -ShowProg -PhysDrv [1:5] -a0
MegaCli64 -PDRbld -ShowProg -PhysDrv [32:4] -a0
PhysDrv 参数32代表" Enclosure Device ID", 参数4代表 "Slot Number"
RAID Level对应关系:
RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0 | RAID 1 |
RAID Level : Primary-0, Secondary-0, RAID Level Qualifier-0 | RAID 0 |
RAID Level : Primary-5, Secondary-0, RAID Level Qualifier-3 | RAID 5 |
RAID Level : Primary-1, Secondary-3, RAID Level Qualifier-0 | RAID 10 |
1、Slot Number:slot号,应该跟机器外观上的标识一致。如果机器上有多块盘,直接告诉现场工程师slot X的硬盘有问题,工程师就会直接换盘。
2、Inquiry Data: 这里是磁盘的序列号,跟磁盘标签上一致。磁盘标签需要拔盘才能看到,按slot拔盘看到磁盘的序列号应该跟Inquiry Data一致。
3、Firmware state: 这里能看到磁盘的状态,Online是我们期望看到的最好状态,除此之外还有 Unconfigured Offline Failed等等,大多表达一个悲伤的事实:你要加班报修/修复他们了。。。
4、需要特别关注这几个指标:Media Error / Other Error / Predictive Failure Count / Last Predictive Failure Event Seq Number 都有可能不是0。这意味着磁盘虽然能用但已经不再可靠,很有可能存在坏簇、坏道之类的问题,必须尽快换掉这块盘。如果坚持使用,那磁盘就离彻底坏掉不远了。网上流传的说法是前3个Count越大代表磁盘状态越差,实际并不是这样,以下2个截图就可以说明。
同事为这个问题专门与服务器RAID卡磁盘厂家沟通,得到的反馈是:
查到之前的资料,Medium error、other error数值的绝对值,不能直接反应硬盘的状态。
根据与RAID卡、硬盘厂家的沟通,建议做法是监控Predictive Failure 的数值,不为零说明硬盘有问题。另外,如果硬盘failed,也可以直接报修。
Predictive Failure Count
指令:storcli /c0/eall/sall show all
监控关键字Predictive Failure Count,标准为不能大于0,若有计数,将对应的硬盘换掉;
Predictive Failure中已经涵盖media error,而且比media error的范围更广、更全面。
硬盘的 SMART 子系统已经具备一套完整的算法来评估硬盘的健康状况
SMART 子系统算法会参考硬盘运行时各个方面的参数,media error 是其中一项
SMART 对于 media error 的评估是基于单位时间增长数来计算的
当 SMART 子系统中任何一个评估项达到对应的阈值时,硬盘会报告 Sense Code: 01 5D 00 (FAILURE PREDICTION THRESHOLD EXCEEDED)
遵循 SCSI 协议标准的 host (OS SCSI 子系统,SAS 控制器, RAID 卡等) 可以正确解析出该 Sense Code
综上,由于 media error 已经被硬盘 SMART 子系统所涵盖,并且会依据 SCSI 协议标准上报 predictive failure,所有硬盘部分只需要在Raid卡下监控Predictive Failure就好,标准为不能大于0。
查看生产商:
dmidecode -s system-manufacturer
查看主机型号:
dmidecode -s system-product-name
查看主机序列号:
dmidecode -s system-serial-number
参考:http://fangpeishi.com/raid_cheatsheet1.html
https://segmentfault.com/a/1190000011402256
https://blog.51cto.com/1130739/1771506