Centos8+使用MegaCLI查看LSI厂商硬件RAID情况

  • 前言
  • 问题记录
  • 报错
  • 解决方案
  • Megacli常用命令
  • 【查看raid同步进度】
  • 查看磁盘缓存策略


前言

最近公司服务器做了硬件raid5的服务器出现硬盘故障,需要更换硬盘。与厂商二次确认后买的RAID卡做的硬件Raid5是支持热插拔的。期望现场工程师和远程支持可以知晓进度情况,远程支持也可以通过命令行查看RAID日志情况。
PS:该方案在Centos8+,Centos Stream 8中验证通过。

# 下载megacli二进制包
wget https://builds.garudalinux.org/repos/chaotic-aur/x86_64/megacli-8.07.14-3-x86_64.pkg.tar.zst
# 由于服务器无法访问外网,下载zst解压依赖包上传,否则无法解压tar.zst文件
wget https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/zstd-1.4.4-1.el8.x86_64.rpm
rpm -ivh zstd-1.4.4-1.el8.x86_64.rpm 
tar -I zstd -xvf megacli-8.07.14-3-x86_64.pkg.tar.zst

问题记录

执行./usr/bin/megacli -help命令报错,提示缺少libncurses.so.5相关库

报错

./usr/bin/megacli: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

解决方案

由于Centos8以上的版本中的libncurses.so相关库为6版本,megacli仅支持 libncurses.so.5的依赖,只需要在Centos7中复制相关ls /usr/lib64/*5.9 库上传到/usr/lib64/路径下面再做个软连接即可解决该问题。一共就这几个文件,我这边已经打包好了,上传一下我的网站上了【掉链了的话请留言,看到就会补链接】

centos 查raid卡 centos查看raid卡信息_centos

# 下载libncurses5.9依赖,解压后将12个5.9后缀文件上传至/usr/lib64/路径下
wget https://mirat.cn/resource/libncurses5.9.zip
# 解压上传依赖库后执行软链接指令后,再执行常用命令就不会报错了!
ln -s /usr/lib64/libtinfo.so.5.9 /usr/lib64/libtinfo.so.5
ln -s /usr/lib64/libncurses.so.5.9 /usr/lib64/libncurses.so.5

Megacli常用命令

用的最多的应该就是【查raid级别】,【查raid卡信息型号和序列号】【查看raid同步进度】

【查看raid同步进度】

在硬盘更换完成后,现场工程师反馈硬盘指示灯是闪烁黄灯,数据读取中,megacli日志中显示Rebuild中,符合实际情况,满足实际需求。

centos 查raid卡 centos查看raid卡信息_硬件raid_02

#【查raid级别】
./usr/bin/megacli -LDInfo -Lall -aALL  |grep "RAID Level"
#【显示所有逻辑磁盘组信息】
./usr/bin/megacli -LDInfo -LALL -aAll
# 【查看raid卡日志】
./usr/bin/megacli -FwTermLog -Dsply -aALL
#【查看raid看重建进度】
./usr/bin/megacli -FwTermLog -Dsply -aALL |grep "Rebuild"
#【查看硬盘信息】
./usr/bin/megacli -PDList -aALL
#【查硬盘所在盘柜号和位置号】
./usr/bin/megacli -PDlist -aALL -Nolog |grep -Ei '(enclosure|slot)'
#【物理盘状态】
./usr/bin/megacli -PDlist -aALL|grep -i 'Firmware state'
#【查raid卡信息】
./usr/bin/megacli -AdpAllInfo -aALL 
#【查raid卡信息型号和序列号】
./usr/bin/megacli -AdpAllInfo -aALL |grep -E "Product Name|Serial No"
#【显示适配器时间】
./usr/bin/megacli -AdpGetTime -aALL
#【显示所有适配器信息】
./usr/bin/megacli -AdpAllInfo -aAll 
#【查看电池信息】
./usr/bin/megacli -AdpBbuCmd -aAll 
#【显示适配器个数】
./usr/bin/megacli -AdpCount
#【查看充电状态】
./usr/bin/megacli -AdpBbuCmd -GetBbuStatus -aALL |grep 'Charger Status'
#【显示BBU状态信息】
./usr/bin/megacli -AdpBbuCmd -GetBbuStatus -aALL
#【显示BBU容量信息】
./usr/bin/megacli -AdpBbuCmd -GetBbuCapacityInfo -aALL
#【显示BBU设计参数】
./usr/bin/megacli -AdpBbuCmd -GetBbuDesignInfo -aALL
#【显示当前BBU属性】
./usr/bin/megacli -AdpBbuCmd -GetBbuProperties -aALL
#【显示Raid卡型号,Raid设置,Disk相关信息】
./usr/bin/megacli -cfgdsply -aALL
#【卷组状态信息】
./usr/bin/megacli -cfgdsply -aALL|grep -A8 'Virtual Drive'

查看磁盘缓存策略

#【显示0 RAID卡 0 RAID组的缓存策略
./usr/bin/megacli -LDGetProp -Cache -L0 -a0
#【显示1 RAID卡 0 RAID组的缓存策略】
./usr/bin/megacli -LDGetProp -Cache -L1 -a0
#【显示所有RAID卡 0 RAID组的缓存策略】
./usr/bin/megacli -LDGetProp -Cache -LALL -a0
#【显示所有 RAID卡 所有 RAID组的缓存策略】
./usr/bin/megacli -LDGetProp -Cache -LALL -aALL