做Raid,用到了megacli,又学了一套命令. /MegaCli/MegaCli64 -PDList -aAll -NoLog | grep -Ei "(enclosure|slot)" 查看所有硬盘的状态 1 2 /opt/MegaRAID/MegaCli /MegaCli64 -LDInfo -LALL -aAll /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll -NoLog 如果RAID卡被设置成了writethrough /MegaCli64 -PdLocate -start -physdrv[252:2] -a0 清除Foreign状态 1 /opt/MegaRAID/MegaCli/MegaCli64 -CfgForeign /MegaCli64 -pdrbld -start -physdrv[12:10] -a0 查看Megacli的log 1 /opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog
查询JBOD工作模式 megacli -adpgetprop -enablejbod -aAll 设置直通模式 megacli -adpsetprop -enablejbod -1 -aAll 清除 good 如果为bad,尝试修复如下; megacli -pdmakejbod -physdrv[60:0] -a0 图片 再次检查若恢复为good即可 raid10,raid0阵列设置 megacli -cfglddel -L0 -a0 查询raid磁盘信息 megacli -showsummary -aAll 查询slot,enclosure megacli -pdlist -aAll | egrep RAID卡蜂鸣器报警,可以关闭Alarm megacli -adpsetprop -alarmdsbl -a0 #永久关闭,重启后还是关闭 megacli -adpsetprop -alarmenbl -a0 #开启 megacli -adpsetprop -alarmsilence -a0 #临时关闭,重启后还是开启 再次插入硬盘后会rebuild,一绿一黄一闪一闪,说明在rebuild megacli
查看物理槽位占用情况: [[email protected] MegaCli]# . /MegaCli64 -adpCount Controller Count: 1. Exit Code: 0x01 4.查看控制器序号,名称,序列号 [[email protected] MegaCli]# . -PDlist -aALL [[email protected] MegaCli]# . ]# 10.附录:查询物理和逻辑所有磁盘信息 [[email protected] MegaCli]# .
一、 下载MegaCli 下载地址:ftp://download2.boulder.ibm.com/ecc/sar/CMA/XSA/ibm_utl_sraidmr_megacli-8.00.48_linux -8.00.48-1.i386 可以做个软链接 —-相当于windous里面的快捷方式 # ln -s /opt/MegaRAID/MegaCli/MegaCli64 /bin/MegaCli64 # ln -s /opt/MegaRAID/MegaCli/MegaCli64 /sbin/MegaCli64 三、 使用命令及参数 使用参数可以不用区分大小写 查看帮助: # MegaCli64 -h 1.查看RAID控制器的数量:—–raid卡管理要用到 # MegaCli64 -adpCount 图中看出RAID控制器的数量为1 2.查看所有raid卡详细信息 # MegaCli64 -AdpAllInfo -aALL 3.查看连接RAID卡的全部硬盘详细信息 # MegaCli64 -PDList -aALL —-其中ALL意思是所有的控制器,此处也可以用0表示 # MegaCli64
使用megaraid修复raid1掉线硬盘 使用说明: 查看硬盘状态 ~# megacli -PDList -aAll -NoLog | grep 'Firmware state' Firmware state : Unconfigured(bad) Firmware state: Online, Spun Up 将Unconfigured(bad)调整为可用的good状态 ~# megacli -PDMakeGood -PhysDrv[252:0] -a0 ~# megacli -PDList -aAll -NoLog | grep 'Firmware state' Firmware state: Unconfigured -Import -a0 ~# megacli -PDList -aAll -NoLog | grep 'Firmware state' Firmware state: Rebuild Firmware Exit Code: 0x00 Rebuild后硬盘恢复在线 ~# megacli -PDList -a0 |grep "Firmware state" Firmware state: Online,
安装MegaCLI 安装包 下载地址 。 安装过程 下载MegaCLI # wget http://hudisk.tpddns.cn:9000/rpm/MegaCli-8.07.14-1.noarch.rpm yum 安装 # yum localinstall -y MegaCli-8.07.14-1.noarch.rpm 设置命令软连接 # ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/megacli 使用指南 基本命令 # 查raid级别 $ megacli -LDInfo -Lall -aALL # 查raid卡信息 $ megacli -AdpAllInfo -aALL # 查看硬盘信息 $ megacli # 显示适配器个数 $ megacli -adpCount # 显示适配器时间 $ megacli -AdpGetTime –aALL # 显示所有适配器信息 $ megacli -AdpAllInfo
megaraid/miscellaneous/linux/1.01.39_Linux_Cli.zip 2:解压及安装 #unzip 1.01.39_Linux_Cli.zip #rpm -ivh MegaCli /MegaCli64 -cfgdsply -aALL (查看 Raid Card 型号、Disk 相关资料) #/opt/MegaRAID/MegaCli/MegaCli64 -PDList - aALL (查看物理磁盘) 2:清除foreign标记 (MegaCli -CfgForeign -Clear [x] -aN|-a0,1,2|-aALL) #MegaCli -CfgForeign -Clear -aALL 3:将物理盘下线/上线 #MegaCli -PDOnline -PhysDrv [32:5] -a0 4:创建阵列,不指定热备 #MegaCli -CfgLdAdd 然后查找要删除的阵列中对应的Virtual Disk号, #MegaCli64 -LDPDInfo -aall 在这里为Virtual Disk: 1 #MegaCli -CfgLdDel
配置Raid查看磁盘情况:/opt/MegaRAID/MegaCli/MegaCli64 -LdPdInfo -aALL | egrep "Ada|Vir|Slo"Adapter #0 #只有一个Radi卡Exit Code: 0x015、查看DeviceID和SlotNum/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | egrep 卸载分区:umount /dev/sdbumount /dev/sdc删除sdb分区,对应L1 a0:/opt/MegaRAID/MegaCli/MegaCli64 -cfglddel -L1-a0删除sdc分区,对应L2 a0:/opt/MegaRAID/MegaCli/MegaCli64 -cfglddel -L2 -a0此时SlotMun 2 - 11空闲,2-10 做新的分区,11用于Raid5的备份盘:/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r5 [32:2,32:3,32:4,32:5,32:6,32:7,32
安装MegaCLI 安装包 下载地址 。 -1.00-09.noarch.rpm MegaCli-8.02.21-1.noarch.rpm # 加入系统环境 $ ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr /local/bin/MegaCli $ MegaCli -v MegaCLI SAS RAID Management Tool $ megacli -AdpBbuCmd -aAll # 查看raid卡日志 $ megacli -FwTermLog -Dsply -aALL # 显示适配器个数 $ megacli -adpCount $ megacli -LDInfo -LALL -aAll # 显示所有的物理信息 $ megacli -PDList -aAll # 查看充电状态 $ megacli -AdpBbuCmd
#/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL 查raid级别 #/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aALL 查raid卡信息 #/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL 查看硬盘信息 #/opt/MegaRAID/MegaCli/MegaCli64 /MegaCli/MegaCli64 -adpCount 【显示适配器个数】 #/opt/MegaRAID/MegaCli/MegaCli64 -AdpGetTime –aALL 【显示适配器时间】 # /opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aAll 【显示所有适配器信息】 #/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo /上线 #/opt/MegaRAID/MegaCli/MegaCli64 -PDOffline -PhysDrv [1:4] -a0 #/opt/MegaRAID/MegaCli/MegaCli64 -
–aALL 显示BBU容量信息 # MegaCli -AdpBbuCmd -GetBbuCapacityInfo –aALL 显示BBU设计参数 # MegaCli -AdpBbuCmd # MegaCli -AdpBbuCmd -GetBbuStatus -aALL |grep "Relative State of Charge" 查询Raid阵列数 # MegaCli (重要) # MegaCli -PDRbld -ShowProg -PhysDrv [1:5] -a0 查看适配器个数 #MegaCli –adpCount 查看适配器时间 #MegaCli -AdpGetTime –aALL 显示所有适配器信息 #MegaCli -AdpAllInfo –aAll 查看Cache 策略设置 # MegaCli MegaCli -PDHSP -Rmv -PhysDrv[1:5] -a0 8、将某块物理盘下线/上线 MegaCli -PDOffline -PhysDrv [1:4] -a0 MegaCli -
cd /opt/MegaRAID/MegaCli 执行./MegaCli64 -LDInfo -LAll-aAll ----> 常用 ? #. /MegaCli64 -LDInfo -Lall -aALL 查raid级别 #./MegaCli64-AdpAllInfo -aALL 查raid卡信息 #. /MegaCli64 -PDList -aALL 查看硬盘信息 ----> 常用 #./MegaCli64 -AdpBbuCmd -aAll 查看电池信息 #. /MegaCli64-FwTermLog -Dsply -aALL 查看raid卡日志 #./MegaCli64-adpCount 【显示适配器个数】 #. /MegaCli64-AdpGetTime –aALL 【显示适配器时间】 #./MegaCli64-AdpAllInfo -aAll 【显示所有适配器信息】 #.
-CfgLdAdd -r0 [252:4] -a0 ## 级别0 两个盘 MegaCli -CfgLdAdd -r0 [252:4,252:5] -a0 ## 级别0 六个盘 MegaCli -CfgLdAdd -r0 [252:0,252:1,252:4,252:5,252:6,252:7] -a0 ## 级别1 并加热备 MegaCli -CfgLdAdd -r1 [252:0,252 :1] -Hsp[252:6,252:7] -a0 ## 级别5 并加热备 MegaCli -CfgLdAdd -r5 [252:0,252:1,252:4] -Hsp[252:5,252:7] -a0 id=2 MegaCli -CfgLdDel -L2 -a0 MegaCli -LDInfo -Lall –aALL root in summer in ~ ❯ udevadm info -q path L0 : 表示raid虚拟卷的target id=0 A0: 表示第一个raid卡 MegaCli -LDInit -start –L0 -a0
同时需要MegaCli工具的支持。所以在脚本开始就安装了次工具。 脚本如下: #! /bin/bash #通过shell获取服务器资产信息 #版本:v1.0 #========安装MegaCli================= #这一步可以自行安装 wget http: //192.168.1.105/package/MegaCli-8.07.06-1.noarch.rpm yum localinstall MegaCli-8.07.06-1.noarch.rpm - y ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/ rm -f MegaCli-8.07.06-1.noarch.rpm #========记录之前的老 -PDlist -aALL |grep Id |wc -l` #========获取虚拟磁盘大小===================== VDISK=`MegaCli64 -LDInfo -Lall
MegaCli所兼容的服务器命令 查看缓存策略: /opt/MegaRAID/MegaCli/MegaCli64 -cfgdsply -aALL |grep Policy Default Cache Policy /MegaCli64 -AdpEventLog -GetEvents -aALL -f 1.log /opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog -Dsply - aALL -f 2.log 打开物理磁盘缓存: /opt/MegaRAID/MegaCli/MegaCli64 -LDGetProp -DskCache -LALL -aALL Adapter 0-VD 采用MegaCli方式查看电池充放电周期:/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuProperties -aALL BBU Properties 通过下面命令生成日志,可以查看充放电详细信息: /opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog -Dsply -aALL -f log.txt 三、硬件自检 首先看一个监控图
查看到的结果如下,一个firmware显示为Unconfigured,一个显示为Rebuild # /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL|grep 如果用megacli来进行确认,发现确实是solt 11的盘在做rebuild. # /opt/MegaRAID/MegaCli/MegaCli64 -pdrbld -showprog -physdrv # /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL|grep "Firmware state" Firmware state: Online, Spun Up while $(true); do /opt/MegaRAID/MegaCli/MegaCli64 adpeventlog getlatest 200 -f ~/adpeventlog.txt a0; # /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL|grep "Firmware state" Firmware state: Online, Spun Up
说明:安装完毕之后MegaCli64所在路径为/opt/MegaRAID/MegaCli/MegaCli64,在此路径下可以运行MegaCli64工具,切换到其它路径下则不能执行, 此时为了使用方便 /MegaCli/MegaCli64 /bin/MegaCli64 [root@data-node01 linux]# ln -s /opt/MegaRAID/MegaCli/MegaCli64 /sbin /MegaCli64 2)使用MegaCli64命令进行相关操作 先查看磁盘数量。 linux]# MegaCli64 -CfgLdAdd -r0[32:3] WB Direct -a0 [root@data-node01 linux]# MegaCli64 -CfgLdAdd -r0 linux]# MegaCli64 -CfgLdAdd -r0[32:6] WB Direct -a0 [root@data-node01 linux]# MegaCli64 -CfgLdAdd -r0
++++++++++++++++++ wget http://192.168.1.100/Lib_Utils-1.00-08.noarch.rpm wget http://192.168.1.100/MegaCli -8.00.40-1.i386.rpm wget http://192.168.1.100/check_raid_info.sh /bin/rpm -ivh MegaCli-8.00.40-1.i386 require/' /etc/sudoers /bin/echo "nagios ALL= (ALL) NOPASSWD: /opt/MegaRAID/MegaCli/MegaCli64" >>/etc
c /etc/maven/maven2-depmap.xml missing /opt/MegaRAID/MegaCli/MegaCli .....U... /opt/MegaRAID/MegaCli/MegaCli64 .....U... /opt/MegaRAID/MegaCli/libstorelibir-2.so.14.07-0 S.5....T. c /etc/ssh/sshd_config S.?......
num = 0 disk_type3_num = 0 status, output = commands.getstatusoutput("/opt/MegaRAID/MegaCli /MegaCli64 -PDList -aALL | grep Size | grep Raw | awk '{print $3$4}'") disk_capacity = output.split () status, output = commands.getstatusoutput("/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | disk_interface = output.split() status, output = commands.getstatusoutput("/opt/MegaRAID/MegaCli /MegaCli64 -PDList -aALL | grep Media | grep Type | awk '{print$3$4$5}'") disk_type = output.split