MegaCli 常见用法

【前言】

使用 [SAS MegaRAID Linux MegaCLI] 可以在文字模式下很方便的查看目前 RAID 及 HDD 状态。

【作业环境】

CentOS 5.1 (Linux 2.6.18-53.el5)

Dell PowerEdge 1950

Dell RAID Controller PERC 5/i (Raid Card)

  • scsi0 : LSI Logic SAS based MegaRAID driver

SAS HDD 146 G * 2 (Build RAID-1)

1.01.39_Linux_Cli.zip (MegaCli-1.01.39-0.i386.rpm)

【安装及设定】

下载 1.01.39_Linux_Cli.zip

下载 1.01.39_Linux_Cli.zip

#wget http://www.lsi.com/support/downloads/megaraid/miscellaneous/linux/1.01.39_Linux_Cli.zip

解压缩 1.01.39_Linux_Cli.zip

#unzip 1.01.39_Linux_Cli.zip
 Archive:  1.01.39_Linux_Cli.zip
   inflating: MegaCli-1.01.39-0.i386.rpm
   inflating: 1.01.39_Linux_Cli.txt

安装 MegaCli-1.01.39-0.i386.rpm

#rpm -ivh MegaCli-1.01.39-0.i386.rpm
 Preparing...                ########################################### [100%]
    1:MegaCli                ########################################### [100%]

名词解释

  • Virtual Drive (VD):虚拟硬碟,多颗硬碟组合起来的虚拟硬碟简单说就是 RAID
  • VD State Optimal:RAID 目前状态為正常 (最优)
  • VD State Degraded:RAID 目前状态為不正常 (退化、降级)
  • Physical Drive (PD):实体硬碟,简单说就是你实际上有几颗硬碟
  • PD State Online:实体硬碟目前状态為正常
  • PD State Fail、Unconfigured:实体硬碟目前状态為不正常 (失败、未设定)
  • PD State Rebuild:实体硬碟目前状态為重建中

查看 RAID 状态指令

#/opt/MegaRAID/MegaCli/MegaCli -cfgdsply -aALL     //查看 Raid Card 型号、Disk 相关资讯
 #/opt/MegaRAID/MegaCli/MegaCli -AdpAllInfo -aALL   //关於 Raid Card 功能详细内容

测试 RAID Broken 状态

当然要先测试有硬碟死掉时的状态一方面了解 RAID 设定是否正确一方面顺便计算 Rebuild 的时间(因為我直接测只能拔硬碟了所以状态是不是像我写的这样?应该大同小异吧!!),以下是当硬碟损坏时 VD、PD 的状态演变。

 

Device Normal Damage Rebuild Normal
Virtual Drive Optimal Degraded Degraded Optimal
Physical Drive Online Failed --> Unconfigured Rebuild Online

查看 VD、PD State Shell Script

因為 megacli 指令一堆出来的资讯又很多,虽然每天会寄 Log 来看但若想线上直接观看又不想看一堆有的没的讯息所以就写个简单的 shell scipt 只抓我要看的资讯,有需要就参考看看吧,因為就是抓要看的讯息所以也没什好解释的了。

# cat ~/check_perc5i.sh
 #!/bin/sh
 #$Id: check_perc5i.sh, v0.2 2008/4/15 weithenn Exp $
 #Check RAID Card PERC 5/i VD and PD State
 HOSTNAME=`/bin/hostname`
 CARD=`/opt/MegaRAID/MegaCli/MegaCli -AdpAllInfo -aALL |grep "Product Name" | cut -d ':' -f2`
 VDSTATE1=`/opt/MegaRAID/MegaCli/MegaCli -cfgdsply -aALL | grep "State"`
 VDSTATE2=`/opt/MegaRAID/MegaCli/MegaCli -AdpAllInfo -aALL | grep "Degraded"`
 VDSTATE3=`/opt/MegaRAID/MegaCli/MegaCli -AdpAllInfo -aALL | grep "  Offline"`
 PDSTATE1=`/opt/MegaRAID/MegaCli/MegaCli -cfgdsply -aALL | grep "Online" | wc -l | sed 's/       //'`
 PDSTATE2=`/opt/MegaRAID/MegaCli/MegaCli -cfgdsply -aALL | grep "Rebuild" | wc -l | sed 's/       //'`
 PDSTATE3=`/opt/MegaRAID/MegaCli/MegaCli -AdpAllInfo -aALL | grep "Critical Disks"`
 PDSTATE4=`/opt/MegaRAID/MegaCli/MegaCli -AdpAllInfo -aALL | grep "Failed Disks"`
 echo "##### Host Informationi #####"
 echo "Host              : $HOSTNAME"
 echo "Raid Card         :$CARD"
 echo ""
 echo "##### Virtual Disk State #####"
 echo "Virtual Disk $VDSTATE1"
 echo "$VDSTATE2"
 echo "$VDSTATE3"
 echo ""
 echo "##### Physical Disk State #####"
 echo "Online Disk       : $PDSTATE1"
 echo "Rebuild Disk      : $PDSTATE2"
 echo "$PDSTATE3"
 echo "$PDSTATE4"

上面的 shell script 再RAID 正常时执行结果如下,可看到 VD 状态為 Optimal,而 PD 状态為 Online Disk 有 2 颗

##### Host Informationi #####
 Host              : dellbsd.weithenn.idv.tw
 Raid Card         : PERC 5/i Integrated
 ##### Virtual Disk State #####
 Virtual Disk State: Optimal
   Degraded        : 0
   Offline         : 0
 ##### Physical Disk State #####
 Online Disk       : 2
 Rebuild Disk      : 0
   Critical Disks  : 0
   Failed Disks    : 0

把一颗硬碟拔掉时 shell script 讯息,可看到 VD 状态由 Optimal 变成 Degraded,而 VD Disk 有 1 颗 Degraded

##### Host Informationi #####
 Host              : dellbsd.weithenn.idv.tw
 Raid Card         : PERC 5/i Integrated
 ##### Virtual Disk State #####
 Virtual Disk State: Degraded
   Degraded        : 1
   Offline         : 0
 ##### Physical Disk State #####
 Online Disk       : 2
 Rebuild Disk      : 0
   Critical Disks  : 0
   Failed Disks    : 0

今天遇到的状况有一颗 HDD 亮黄灯,可看到 VD 状态还是 Optimal (因為那颗 HDD 还没死,目前是要死不死当中),而 VD 中有 1 颗 Disk 状态為 Critical

##### Host Informationi #####
 Host              : dellbsd.weithenn.idv.tw
 Raid Card         : PERC 5/i Integrated
 ##### Virtual Disk State #####
 Virtual Disk State: Optimal
   Degraded        : 0
   Offline         : 0
 ##### Physical Disk State #####
 Online Disk       : 2
 Rebuild Disk      : 0
   Critical Disks  : 1
   Failed Disks    : 0

插入新 HDD 在做 Rebuild 时,Rebuild 完成后 VD 状态会由 Degraded 变回 Optimal,以下状态為正在 Rebuild 中 2 颗 HDD (1 颗正常,1 颗重建中)

##### Host Informationi #####
 Host              : sogans-1.soga-interactive.com
 Raid Card         : PERC 5/i Integrated
 ##### Virtual Disk State #####
 Virtual Disk State: Degraded
   Degraded        : 1
   Offline         : 0
 ##### Physical Disk State #####
 Physical Online   : 1
 Physical Rebuild  : 1
   Critical Disks  : 0
   Failed Disks    : 0

【参考】

[Dell™ PowerEdge™ 1950 Document]

[戴尔 PowerEdge 1950 III 伺服器产品详细资料]

[各种服务器raid监控(转)_阿辉的空间]

[Hanne's Blog - Bastard Operator in Heaven - Monitoring RAID disks PERC 5/i and PERC 5/E]

[戴尔中文技术支持网站-论坛 PERC5 RAID配置中文手册]

[LSI PERC5i Controller Check List]

[Dell™ PowerEdge™ 可扩充的 RAID 控制卡 5/i 和 5/E 使用者指南]

[Dell™ SAS RAID Storage Manager User Guide]

【Me FAQ】

Q1.smartd[2687]: Device: /dev/sda, Bad IEC (SMART) mode page, err=2, skip device

Error Meaage:

今天看一下 /var/log/message 发现 smartd 的服务似乎无法抓到 Dell RAID Controller PERC 5/i 而发生错误,错误讯息如下

Apr 11 11:46:55 centos1 smartd[2687]: Device: /dev/sda, opened
 Apr 11 11:46:55 centos1 smartd[2687]: Device: /dev/sda, Bad IEC (SMART) mode page, err=2, skip device
 Apr 11 11:46:55 centos1 smartd[2687]: Unable to register SCSI device /dev/sda at line 32 of file /etc/smartd.conf

Ans:

[Dell™ PowerEdge™ 可扩充的 RAID 控制卡 5/i 和 5/E 使用者指南] 在这份文件的第 79 页可发现对此问题的解说:

  • 这 些错误讯息是由直接来自使用者应用程式的不受支援的指令所导致的。 这是一个已知问题,其中使用者应用程式尝试引导指令描述元图块至 RAID 磁卷。此错误讯息对使用者没有影响,并且此错误不会导致功能遗失。PERC 5 上的韧体支援 Mode Sense/Select 指令。但是,Linux 核心常驻程式将指令传送至虚拟磁碟而不是磁碟机 IOCTL 节点。 不支援此动作。

另外一个解决的方式就是去修改 smartd.conf 设定档,使 smartd 支援你的 raid card 但因為我已经装了 MegaCLI 来监控我的 raid 状态,所以就先不管了把 smartd 服务停掉。

【Log】

初稿-2008/01/07

Q1-2008/4/15

modify script-2008/10/6

MegaCli常用参数介绍
MegaCli -adpCount 【显示适配器个数】
MegaCli -AdpGetTime –aALL 【显示适配器时间】
MegaCli -AdpAllInfo -aAll 【显示所有适配器信息】
MegaCli -LDInfo -LALL -aAll 【显示所有逻辑磁盘组信息】
MegaCli -PDList -aAll 【显示所有的物理信息】
MegaCli -AdpBbuCmd -GetBbuStatus -aALL |grep ‘Charger Status’ 【查看充电状态】
MegaCli -AdpBbuCmd -GetBbuStatus -aALL【显示BBU状态信息】
MegaCli -AdpBbuCmd -GetBbuCapacityInfo -aALL【显示BBU容量信息】
MegaCli -AdpBbuCmd -GetBbuDesignInfo -aALL 【显示BBU设计参数】
MegaCli -AdpBbuCmd -GetBbuProperties -aALL 【显示当前BBU属性】
MegaCli -cfgdsply -aALL 【显示Raid卡型号,Raid设置,Disk相关信息】

磁带状态的变化,从拔盘,到插盘的过程中。
Device |Normal|Damage|Rebuild|Normal
Virtual Drive |Optimal|Degraded|Degraded|Optimal
Physical Drive |Online|Failed –> Unconfigured|Rebuild|Online

以下是组建服务器raid时查到的资料,做下笔记,没兴趣的朋友请无视。

Linux下查看软、硬raid信息的方法。

软件raid:只能通过Linux系统本身来查看

cat /proc/mdstat

可以看到raid级别,状态等信息。

硬件raid: 最佳的办法是通过已安装的raid厂商的管理工具来查看,有cmdline,也有图形界面。如Adaptec公司的硬件卡就可以通过下面的命令进行查看:

# /usr/dpt/raidutil -L all

可以看到非常详细的信息。

当然更多情况是没有安装相应的管理工具,只能依靠Linux本身的话一般我知道的是两种方式:

# dmesg |grep -i raid

# cat /proc/scsi/scsi

显示的信息差不多,raid的厂商,型号,级别,但无法查看各块硬盘的信息。

另外经过实际测试,Dell的服务器可以通过命令来显示,而HP、IBM等的服务器通过上面的命令是显示不出的。只能够通过装硬件厂商的管理工具来查看DELL的BMC可以查看

cat /proc/scsi/scsi

可以看到是SCSI上的设备。一般情况可以看到RAID级别。

lspci可以看到RAID卡的型号。

MegaCli 常见用法

2 条用户评论。
  1. 评论 发表时间:Tuesday 12th/03/2013 12:29:17 PM 1楼

    抄襲這篇文章:
    http://www.weithenn.org/cgi-bin/wiki.pl?search=%22MegaCLI-%e6%9f%a5%e7%9c%8b+PERC+5i+RAID+Controller+%e7%8b%80%e6%85%8b%22

    1. 评论 发表时间:Wednesday 13th/03/2013 06:07:43 PM

      该文章为转载,转载的时候有使用“引用通告”callback
      文章内容做了转简体

添加新评论 »