• 【Centos8】Centos8+使用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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    问题记录

    执行./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/路径下面再做个软连接即可解决该问题。一共就这几个文件,我这边已经打包好了,上传一下我的网站上了【掉链了的话请留言,看到就会补链接】
    请添加图片描述

    # 下载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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Megacli常用命令

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

    【查看raid同步进度】

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

    #【查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'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    查看磁盘缓存策略

    #【显示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
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    软考系统架构师知识点集锦五:系统可靠性分析与设计
    基于路网层次收缩的快速分布式地图匹配算法
    es针对nested类型数据无法进行过滤查询的问题记录
    mysql order by 原理及优化详解
    Spring BeanPostProcessor 接口&
    react之响应事件
    第十五章·代理模式
    要求用一句sql语句打印出A,B各剩了多少
    TCP/IP协议专栏——ARP详解——网络入门和工程维护必看
    事件抽取(and 检测)经典论文
  • 原文地址:https://blog.csdn.net/wayne_primes/article/details/127847687