dell 7525 raid50 单盘故障,无法自动重建问题
{1}生产故障表现
单块raid5中,某块磁盘出现故障,raid出现降级,重建插入后,查看磁盘状态,未进入自动重建状态。
{2}生产环境描述
生产环境下,dell 7525 服务器挂载8个megaraid控制器,每个控制器包含84块盘,84块盘组raid50(先组raid5,后组riad0), 单个控制器一共14组raid5,每组riad5 6块磁盘 ,a3控制器下,EID 512 SID 18盘出现问题,进行更换。
{3}问题分析
<1>安装megacli64
查看官网,megarcli是LSI 公司的针对scsi卡的管理工具,LSI公司涉及的产业较广,基本围绕在服务器内部线缆,如SAS SATA, NVME PCIE线缆,SAS交换机,各类SAS,SATA 芯片, 本次生产环境使用的为 SAS 3508 sas raid芯片,目前已被博通收购,针对此类sas 或raid操作,dell 有perccli64, 或者storcli64,个人感觉都是在megacli 上换了皮肤,建议还是使用原本的工具较好。
LSI官网
找到对应的rpm包,本次使用centos 系统,直接安装即可
rpm -ivh Lib_Utils-1.00-09.noarch.rpm
rpm -ivh MegaCli-8.04.07-1.noarch.rpm
安装结束在安装部分依赖库
yum install libncurses* -y
注意: 由于安装包没有debain的 deb,若在ubuntu上跑起来,需要利用alien进行rpm到deb的转换,官方也有说明,并且ubuntu要安装依赖库, apt-get install libncurses5 -y
软件默认安装在 cd /opt/MegaRAID/MegaCli/
cd /opt/MegaRAID/MegaCli/
./MegaCli64 pdlist -aAll | more
<2>问题定位
#查看所有控制器信息
./MegaCli64 -AdpAllinfo -aAll | more
#查看问题控制器信息
./MegaCli64 -LDInfo -L0 -a3
#查看问题控制器下磁盘丢失信息
./MegaCli64 -PDGetMissing -a3
#定位问题磁盘的EID UID
粗过滤问题硬盘
./MegaCli64 -PDList -a3| grep -Ei “(Firmware state)”
#带上eid 和sid进行问题磁盘定位
./MegaCli64 -PDList -a3| grep -Ei “(Enclosure Device|Slot Number|Raw Size|Firmware state)”
<3>开始恢复
更换问题磁盘为新磁盘后,未进入自动重建状态
./MegaCli64 -PDRbld -ShowProg -PhysDrv [251:18] -a3
查看问题硬盘固件状态为ugood, Spun Up, Foreign State为None
因此无需进行硬盘make good和 Spun Up操作,由于Foreigh State不为Foregin,无法进行强制Foregin import操作
./MegaCli64 -pdInfo -PhysDrv[251:18] -a3 | more
尝试对硬盘进行下上线操作,均失败
./MegaCli64 -PDOffline -PhysDrv[251:18] -a3 #硬盘卸载(下线)
./MegaCli64 -PDOnline -PhysDrv[251:18] -a3 #硬盘装载(上线)
#尝试手动重建,失败
./MegaCli64 -pdrbld -Start -physdrv[251:18] -a3
最后尝试添加热备的方式(热备恢复指定的问题槽位硬盘,指定成功后立即进入重建状态),显示当前状态无法进行热备操作
#添加热备
./MegaCli64 -pdhsp -set -physdrv[251:18] -a3
经过排查,发现硬盘处在初始化状态
#查看磁盘初始化进度
./MegaCli64 -PDClear -ShowProg -physdrv[251:18] -a3
扫描和清除之前磁盘的外部配置信息(如之前残留raid配置)
./MegaCli64 -cfgForeign -Scan -a3
./MegaCli64 -cfgforeign -clear -a3
关闭磁盘初始化进程,再次进行热备操作
./MegaCli64 -PDClear -Stop -physdrv[251:18] -a3
#再次进行热备操作
./MegaCli64 -pdhsp -set -physdrv[251:18] -a3
磁盘已进入重建进程,查看重建进度
./MegaCli64 -pdrbld -ProgDsply -physdrv[251:18] -a3
{4}问题总结
本次无法自动重建原因可能是硬盘插入后进入初始化状态,若想快速进入重建状态,需先查看当前磁盘是否有在做其它操作(如初始化,重建,热备等) 关闭硬盘的所有操作,再次利用热备的方式进行快速恢复,做热备恢复前一定要保证硬盘无其它raid信息,还有一种恢复的方式是重建一个radi50,将新磁盘也添加进来,慎用,风险较大,本次生产环境磁盘数据量巨大,未敢尝试!!!!!
{5}相关命令附录
硬盘事件
./MegaCli64 -AdpEventLog -GetEventLogInfo -a3
./MegaCli64 -AdpEventLog -GetEvents -info -a3
配置文件
./MegaCli64 -CfgSave -f a3.cfg -a3
./MegaCli64 -CfgRestore -f a3.cfg -a3
#查看虚拟磁盘信息
./MegaCli64 -LDInfo -Lall -aAll | more
./MegaCli64 -LDInfo -L0 -a3 | more
./MegaCli64 -LdPdInfo -a3
./MegaCli64 -GetBbtEntries -Lall -a3
./MegaCli64 -PDGetNum -a3
./MegaCli64 -LDGetNum -a3
./MegaCli64 -PDList -a3| grep -Ei “(Enclosure Device|Slot Number|Raw Size|Firmware state)”
./MegaCli64 -PDList -a3| grep -Ei “(Firmware state)”
#硬盘状态相关操作
./MegaCli64 -pdInfo -PhysDrv[251:18] -a3 | more
./MegaCli64 -PDOnline -PhysDrv[251:18] -a3
./MegaCli64 -PDRbld –Start -PhysDrv[251:18] -a3
./MegaCli64 -PDGetMissing -a3
./MegaCli64 -PDReplaceMissing -PhysDrv[251:18] -Array1 -Row4 -a3
./MegaCli64 -pdrbld -ProgDsply -physdrv[251:18] -a3
./MegaCli64 -PDRbld -ShowProg -PhysDrv [251:75] -a2
#显示硬盘框信息
./MegaCli64 -EncINfo -a2 | more
#查看丢失磁盘信息
./MegaCli64 -PDGetMissing -a3
#清理之前磁盘的残留的raid信息 (a3对应控制器4)
./MegaCli64 -cfgForeign -Scan -a3
./MegaCli64 -cfgforeign -clear -a3
#添加热备,将磁盘添加到指定在线raid组(由于当前槽位磁盘无信息),立即开启重建
#注意热备需保证磁盘不在初始化或重建状态
./MegaCli64 -pdhsp -set -physdrv[251:18] -a3 #添加热备
./MegaCli64 -pdhsp -Rmv -physdrv[251:18] -a3 #移除热备
初始化相关命令:
./MegaCli64 -PDClear -ShowProg -physdrv[251:18] -a3 #查看初始化进度
./MegaCli64 -PDClear -Stop -physdrv[251:18] -a3 #关闭初始化
./MegaCli64 -PDClear -Start -physdrv[251:18] -a3 #开启初始化
查看重建进度
./MegaCli64 -pdrbld -ProgDsply -physdrv[251:18] -a3 #方法1
./MegaCli64 -PDRbld -ShowProg -PhysDrv [251:18] -a3 #方法2