Raid控制器-megacli 命令简易使用介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/x_brian/article/details/88069231

目录

软件安装

基础应用

常用配置

常见问题


  • 软件安装

megacli-8.02.21-1-mdv2012.0.x86_64.rpm
libsysfs-2.1.0-7.el6.x86_64.rpm
如果libsysfs.so.2.0.2 报错
执行locate libsysfs 命令找到对应的lib路径如下:
ln -s /usr/lib64/libsysfs.so.2 /usr/lib64/libsysfs.so.2.0.2 ;sudo ldconfig


  • 基础应用

megacli cfgdsply -a0 |grep -i raid     //可以查看raid类型
megacli cfgdsply -a0 |grep -i enclosure  //可以从中查到硬盘的Enclosure ID
megacli cfgdsply -a0 |grep -i slot       //可以从中查到硬盘的Slot ID

megacli -cfgclr -a0    //删除所有的 RAID 配置
megacli -cfglddel -L1 -a0        //删除指定的raid组(Target Id: 1)的raid组

megacli -PdList -a0    //列出RAID卡当前所有配置(已配置和未配置的硬盘信息,包括部分故障硬盘)
megacli -cfgDsply -a0  //列出RAID卡当前所有配置(部分有故障的硬盘无法显示信息)
megacli pdinfo physdrv[0:5] -a0  //查看指定硬盘信息(Enclosure ID 为 0,Slot ID 分别为 6的硬盘信息)

megacli -cfgLdAdd -rX[E0:S0,E1:S1,...] [-szXXX [-szYYY ...]] -a0 ---配置指定的 RAID
megacli -cfgSpanAdd -r10 -Array0[E0:S0,E1:S1] -Array1[E0:S0,E1:S1] [-ArrayX[E0:S0,E1:S1] ...]
[-szXXX[-szYYY ...]] -a0 ---配置 RAID10


  • 常用配置

#将每个硬盘配置为独立的一个 RAID0(简单卷)
megacli -cfgEachDskRaid0 -a0  

#在编号为 0 的RAID卡上,将 Enclosure ID 为 0,Slot ID 分别为 0和 1 的两块硬盘做成一个 RAID0
megacli -cfgLDadd -R0[0:0,0:1] -a0   

#在编号为0的RAID卡上,将Enclosure ID 为 0,Slot ID 分别为 0,1,2,3 的四块硬盘做成一个 RAID10
megacli -cfgSpanAdd -R10 -Array0[0:0,0:1] -Array1[0:2,0:3] -a0  
 
#创建一个 raid5 阵列,由物理盘1,2,3,4 构成,该阵列的热备盘是物理盘5
megacli -cfgLdAdd -r5[1:2,1:3,1:4] WB Direct -Hsp[1:5] -a0  
megacli cfgldadd –r5[8:0,8:1,8:2,8:3,8:4,8:5,8:6,8:7,8:8,8:9,8:10] WB Direct –Hsp[8:11] –a0   //注解同上

#创建阵列,不指定热备
megacli -cfgLdAdd -r5 [1:2,1:3,1:4] WB Direct -a0

#删除指定的raid组阵列(-L1 //Target Id: 1)
megacli -cfgLdDel -L1 -a0       

#指定第 5 块盘作为全局热备(Global HSP)
megacli -PDHSP -Set -PhysDrv[1:5] -a0

#指定第 5 块盘作为某个阵列的专用热备(Dedicated HSP)
megacli -PDHSP -Set -Dedicated -Array1 -PhysDrv[1:5] -a0

#删除全局热备
megacli -PDHSP -Rmv -PhysDrv[1:5] -a0

#阵列创建完后,会有一个初始化同步块的过程,可以看看其进度。
megacli -LDInit -ShowProg -LALL -aALL

#查看阵列后台初始化进度
megacli -LDBI -ShowProg -LALL -aALL

#将某块物理盘下线/上线
megacli -PDOnline -PhysDrv [1:4] -a0

megacli pdlist -a0|grep -iE 'slot|Firmware state'  //检查物理磁盘槽位和状态
 
#查看某个物理磁盘重建进度(更换硬盘后)
megacli -PDRbld -ShowProg -PhysDrv [1:5] -a0

#关闭 Rebuild
megacli -AdpAutoRbld -Dsbl -a0

#设置 rebuild 的速率
megacli -AdpSetProp RebuildRate -30 -a0

#点亮slot 6 硬盘指示灯
megacli -PDLocate -start -physdrv[0:6] -a0

#在线添加磁盘
megacli -LDRecon -Start -r5 -Add -PhysDrv[1:4] -L1 -a0
megacli  -LDRecon -progdsply -L1 –a0  //查看添加进度


  • 常见问题

1. 执行 megacli -cfgDsply -a0 或 megacli pdlist -a0   
需要特别关注这几个指标:(Media Error / Other Error / Predictive Failure Count / Last Predictive Failure Event Seq Number) 都为0。如果这些指标后面不为0,就意味着磁盘虽然能用但已经不再可靠,很有可能存在坏簇、坏道之类的问题,必须尽快换掉这块盘。如果坚持使用,那磁盘就离彻底坏掉不远了。

megacli pdinfo physdrv[0:5] -a0   //如出现以下信息,参照解决方法:
2. Firmwarestate:Unconfigured(good), Spun down

重新热拔插指定硬盘,该状态会变成Firmware state:Unconfigured(good), Spun Up

创建raid后磁盘状态也会由Spun down变成SpunUp

3. Firmware state: Unconfigured(bad)
megacli64 -PDMakeGood -PhysDrv[0:5] -a0   //固件状态会由Unconfigured(bad)变成Unconfigured(good), Spun Up(如果未改变,则重新热拔插)

以上步骤完成后如果仍然Firmware state: Unconfigured(bad) ,则硬盘已经损坏,需更换

4. Firmware state: failed  //出现failed状态的硬盘大多已损坏,建议更换(或报修);但可以强制上线

强制上线步骤如下:
megacli64 -PDOffline-PhysDrv[0:5] -a0
megacli64 -PDOnline -PhysDrv[0:5] -a0  //如状态为Firmware state: Online 则可以使用,尽快备份数据并更换硬盘

5. Foreign State: Foreign
Foreign Secure: Drive is notsecured by a foreign lock key

办法一:可以清除恢复状态(慎用)

# MegaCli64 -CfgForeign -Clear -a0

办法二:导入配置,恢复虚拟磁盘组

# MegaCli64 -CfgForeign -import -a0

6. 如何定位设备/dev/sd*由哪些磁盘组成并点亮指定硬盘。

 udevadm info -q path -n /dev/sda

可以看出设备/dev/sda是raid下的Virtual Drive: 0

然后确定Virtual Drive: 0是由哪些磁盘组成,并点亮磁盘

MegaCli64 -ldpdinfo -a0|grep -Ei "(Virtual Drive:|RAID Level|^Size|Enclosure Device|Slot Number)"

附:挂载磁盘时报错mount: Structure needs cleaning
xfs_repair -L /dev/sdb     //修复磁盘

猜你喜欢

转载自blog.csdn.net/x_brian/article/details/88069231