站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

RAID Check-Dell PowerEdge 1950 RAID Controller PERC 5i

前言

在文字介面下若能即時查看磁碟陣列及硬碟的狀態對於硬體的管理上將更保有彈性,因此此篇實作便出現了透過 MegaCLI 可以很方便的查看目前 RAID 及 HDD 狀態。

實作環境

安裝及設定

步驟1.安裝 linux-megacli 套件

切換至 Ports Tree 路徑安裝 linux-megacli 套件

 #cd /usr/ports/sysutils/linux-megacli  //切換到安裝路徑
 #make install clean                    //安裝並清除安裝過程中不必要的檔案

步驟2.修改相關設定檔

因為 Dell 對於此工具的支援是針對 Linux 系列的所以 FreeBSD 要使用此工具會安裝一些 Linux Base 的相關套件,裝完後要修改一些地方 (安裝用程中系統會顯示訊息跟表示有哪些地方需要更改)

修改 /boot/loader.conf 加入如下內容,已便系統重新開機時能自動載入相關核心

 #vi /boot/loader.conf
 mfi_linux_load="YES"                   //加入此行

修改 /etc/sysctl.conf 加入如下內容,已便系統重新開機時能自動載入相關 Compat

 #vi /etc/sysctl.conf
 compat.linux.osrelease=2.6.12          //加入此行

修改 /etc/fstab 加入如下內容,已便系統重新開機時能自動載入相關檔案系統

 #vi /etc/fstab
 linproc     /compat/linux/proc  linprocfs rw 0 0       //加入此行
 linsys      /compat/linux/sys   linsysfs  rw 0 0       //加入此行

修改 /etc/periodic.conf 加入如下內容 (找不到 periodic.conf 的話就複製 /etc/defaults/periodic.conf 來改吧),已便設定發送每日系統訊息時會順便加入 RAID 相關訊息。

 #vi /etc/periodic.conf
 daily_status_mfi_raid_enable="YES"                     //加入此行

以上相關設定都修改完成後,請將系統重新開機而開機完成後可使用指令 kldstat 來查看目前系統所載入的核心

 #kldstat                                    //查看目前系統載入的核心
 Id Refs Address    Size     Name
 1   13 0xc0400000 70794c   kernel
 2    1 0xc0b08000 1fc0     mfi_linux.ko     //載入相關核心
 3    4 0xc0b0a000 1adb8    linux.ko         //載入相關核心
 4    1 0xc0b25000 59f20    acpi.ko
 5    1 0xc6879000 6000     linprocfs.ko     //載入相關核心
 6    1 0xc6880000 3000     linsysfs.ko      //載入相關核心

系統也會載入模擬 Linux Base 相關的檔案系統

 #df -h
 Filesystem       Size    Used   Avail Capacity  Mounted on
 /dev/mfid0s1a    496M     58M    398M    13%    /
 devfs            1.0K    1.0K      0B   100%    /dev
 /dev/mfid0s1g     48G     28K     44G     0%    /home
 /dev/mfid0s1e    496M     12K    456M     0%    /tmp
 /dev/mfid0s1f    9.7G    1.3G    7.6G    15%    /usr
 /dev/mfid0s1d    2.9G     22M    2.6G     1%    /var
 linprocfs        4.0K    4.0K      0B   100%    /usr/compat/linux/proc   //載入相關檔案系統
 linsysfs         4.0K    4.0K      0B   100%    /usr/compat/linux/sys    //載入相關檔案系統

步驟3.了解 Dell RAID 相關名詞

在開始使用 MegaCli 之前有些名詞我們必須先了解

以下表格為當主機硬碟正常時、發生損壞時其 VD 及 PD 的狀態

DeviceNormalDamageRebuild
Virtual DriveOptimalDegradedDegraded
Physical DriveOnlineFailed --> UnconfiguredRebuild

步驟4.開始使用 MegaCli 指令

查看 RAID 狀態指令

 #megacli -cfgdsply -aALL     //查看 Raid Card 型號、Disk 相關資訊
 #megacli -AdpAllInfo -aALL   //關於 Raid Card 功能詳細內容

步驟5.撰寫 MegaCli Script

查看 VD、PD State Shell Script

因為 MegaCli 指令執行後會出來非常詳細的資訊,不過我最主要是想看 VD 及 PD 的狀態而以,所以就寫個簡單的 Shell Script 只抓我要看的資訊(有需要就參考看看吧)

 #vi ~/check_perc5i.sh
 #!/bin/sh
 #$Id: check_perc5i.sh, v0.1 2007/12/17 weithenn Exp $
 #Check RAID Card PERC 5/i VD and PD State
 HOSTNAME=`/bin/hostname`
 CARD=`/usr/local/sbin/megacli -AdpAllInfo -aALL |grep "Product Name" | cut -d ':' -f2`
 VDSTATE1=`/usr/local/sbin/megacli -cfgdsply -aALL | grep "State"`
 VDSTATE2=`/usr/local/sbin/megacli -AdpAllInfo -aALL | grep "Degraded"`
 VDSTATE3=`/usr/local/sbin/megacli -AdpAllInfo -aALL | grep "  Offline"`
 PDSTATE1=`/usr/local/sbin/megacli -cfgdsply -aALL | grep "Online" | wc -l | sed 's/       //'`
 PDSTATE2=`/usr/local/sbin/megacli -AdpAllInfo -aALL | grep "Critical Disks"`
 PDSTATE3=`/usr/local/sbin/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 "Physical Online   : $PDSTATE1"
 echo "$PDSTATE2"
 echo "$PDSTATE3"

步驟6.MegaCli Script 測試

上面的 Shell Script 當 RAID 正常時執行結果如下,可看到 VD 狀態為 Optimal,而 PD 狀態為 Online Disk 有 2 顆

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

一顆硬碟拔掉時 (模擬硬碟損壞) 訊息如下,可看到 VD 狀態由 Optimal 變成 Degraded,而 VD Disk 有 1 顆為 Degraded

 ##### Host Informationi #####
 Host              : dellbsd.weithenn.org
 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

一顆硬碟拔掉時 (模擬硬碟損壞) 時 /var/log/message 訊息 (console 端也會顯示)

 Dec 17 14:42:31 kernel: mfi0: - PD 00(e1/s0) event: Removed: PD 00(e1/s0)
 Dec 17 14:42:31 kernel: mfi0: - Type 29: Removed: PD 00(e1/s0) Info: enclPd=08, scsiType=0, portMap=01
 Dec 17 14:42:31 kernel: mfi0: - VD 00/0 state prior 3 new 2: State change on VD 00/0 from OPTIMAL(3) to DEGRADED(2)
 Dec 17 14:42:31 kernel: mfi0: - VD 00/0 event: VD 00/0 is now DEGRADED
 Dec 17 14:42:31 kernel: mfi0: - PD 00(e1/s0) state prior 24 new 17: State change on PD 00(e1/s0) from ONLINE(18) to FAILED(11)
 Dec 17 14:42:31 kernel: mfi0: - PD 00(e1/s0) state prior 17 new 1: State change on PD 00(e1/s0) from FAILED(11) to UNCONFIGURED_BAD(1)

插入新 HDD 進行 Rebuild 時 VD 狀態會由 Degraded 變回 Optimal,以下狀態為正在 Rebuild 中 2 顆 HDD (1 顆正常,1 顆重建中)

 ##### Host Informationi #####
 Host              : dellbsd.weithenn.org
 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

插入新 HDD 進行 Rebuild 時 系統預設會 Auto Rebuild (console 端也會顯示),顯示進度跟時間也很準 progress 99% seconds 992s 此次實作的主機 Rebuild 大約花費 16 分 32 秒在加上前後作業時間所以整個 Rebuild 大約 17 分內完成,以下為 Rebuild 時 /var/log/message 訊息

 Dec 17 14:49:51 kernel: mfi0: - PD 00(e1/s0) event: Inserted: PD 00(e1/s0)
 Dec 17 14:49:51 kernel: mfi0: - Type 29: Inserted: PD 00(e1/s0) Info: enclPd=08, scsiType=0, portMap=01
 Dec 17 14:49:51 kernel: mfi0: - PD 00(e1/s0) state prior 1 new 0: State change on PD 00(e1/s0) from UNCONFIGURED_BAD(1) to UNCONFIGURED_GOOD(0)
 Dec 17 14:49:51 kernel: mfi0: - PD 00(e1/s0) state prior 0 new 16: State change on PD 00(e1/s0) from UNCONFIGURED_GOOD(0) to OFFLINE(10)
 Dec 17 14:49:51 kernel: mfi0: - PD 00(e1/s0) event: Rebuild automatically started on PD 00(e1/s0)
 Dec 17 14:49:51 kernel: mfi0: - PD 00(e1/s0) state prior 16 new 20: State change on PD 00(e1/s0) from OFFLINE(10) to REBUILD(14)
 Dec 17 14:50:07 kernel: mfi0: - PD 00(e1/s0) progress 1% seconds 16s: Rebuild progress on PD 00(e1/s0) is 1.88%(16s)
 Dec 17 14:50:23 kernel: mfi0: - PD 00(e1/s0) progress 3% seconds 32s: Rebuild progress on PD 00(e1/s0) is 3.74%(32s)
 ....略
 Dec 17 15:06:24 kernel: mfi0: - PD 00(e1/s0) progress 99% seconds 992s: Rebuild progress on PD 00(e1/s0) is 99.62%(992s)
 Dec 17 15:06:29 kernel: mfi0: - PD 00(e1/s0) event: Rebuild complete on PD 00(e1/s0)
 Dec 17 15:06:29 kernel: mfi0: - VD 00/0 state prior 2 new 3: State change on VD 00/0 from DEGRADED(2) to OPTIMAL(3)
 Dec 17 15:06:29 kernel: mfi0: - VD 00/0 event: VD 00/0 is now OPTIMAL
 Dec 17 15:06:29 kernel: mfi0: - PD 00(e1/s0) state prior 20 new 24: State change on PD 00(e1/s0) from REBUILD(14) to ONLINE(18)

參考

[Dell™ PowerEdge™ 1950 Document]

[戴爾 PowerEdge 1950 III 伺服器産品詳細資料]

[PERC 5/E SAS RAID in Dell PowerEdge 1950/2950]

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

[FreeBSD China - 阅读主题 - 如果远程查看RAID是否有故障?]

[FreshPorts -- sysutils/linux-megacli]

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

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

[LSI PERC5i Controller Check List]

[linux-megacli-LSI MegaRAID SAS controller management utility]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com