出处:http://hi.baidu.com/jackbillow/item/cfe7f8e03780e0a8c00d7529
【前言】
使用 [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 伺服器産品詳細資料]
[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