通常,我們使用的DELL/HP/IBM三家的機架式PC級服務器陣列卡是從LSI的卡OEM出來的,DELL和IBM兩家的陣列卡原生程度較高,沒有做太多封裝,可以用原廠提供的陣列卡管理工具進行監控;而HP的陣列卡一般都做過封裝了,因此需要使用自身特有的管理工具來監控。
本文以幾種常用的陣列卡為例,展示其陣列卡及硬盤監控的方法。
DELL SAS 6/iR卡,全稱LSI Logic SAS1068E,只支持RAID 0, RAID 1, RAID 1+0, 不支持RAID 5等高級RAID特性,不支持陣列卡電池。
DELL PERC PERC H700卡,全稱LSI Logic MegaRAID SAS 2108,支持各種RAID級別及高級特性,可選配陣列卡電池。
DELL PERC H310 Mini卡 ,全稱LSI Logic / Symbios Logic MegaRAID SAS 2008,支持常見RAID級別,不支持高級RAID特性,不支持陣列卡電池。
IBM ServeRAID M5014 SAS/SATA Controller卡,全稱LSI Logic / Symbios Logic MegaRAID SAS 2108,支持各種RAID級別及高級特性,可選配陣列卡電池。
IBM ServeRAID-MR10i SAS/SATA Controller卡,全稱LSI Logic / Symbios Logic MegaRAID SAS 1078,支持常見RAID級別,不支持高級RAID特性,可選配陣列卡電池,這個卡其實和DELL的PERC 6/i卡是一樣的,都是基於LSI MegaRAID SAS 1078基礎上OEM出來的。
上面是幾種常見的陣列卡型號,更多的可以自行查看官方的技術手冊。
下面我們要繼續的是,這些陣列卡以及硬盤如何監控,陣列卡的管理也請查看官方技術手冊,不在本文討論范疇,或者查看作者的一個分享PPT:PC服務器陣列卡管理簡易手冊。
一般地,支持RAID 5的卡,我們稱其為陣列卡,都可以使用LSI官方提供的MegaCli工具來管理,而不支持RAID 5的卡,我們稱其為SAS卡,使用lsiutil工具來管理。HP的服務器使用其特有的hpacucli工具來管理。
1、MegaCli工具
a) MegaCli -adpallinfo -aall — 查看陣列卡信息
-a 參數指定陣列卡的編號,一般服務器上只會配一個陣列卡,因此我們通常指定為 -a0(陣列卡適配器編號,從0開始) 即可,主要關注下面幾個信息:
| 狀態值 | 對應含義 |
| Product Name : PERC H710 Mini | 陣列卡名稱 |
| FW Package Build: 21.2.0-0007 | 陣列卡firmware版本號,版本如果太低,建議升級以提高穩定性及性能 |
| BBU : Present | 是否有配BBU電池 |
b) MegaCli -cfgdsply -aall — 查看陣列配置
| 狀態值 | 對應含義 |
| Memory: 512MB | 陣列卡cache大小,2的N次方,如果不是,說明陣列卡有異常 |
| Number of dedicated Hotspares: 0 | 陣列是否有專用/獨享熱備盤(如果有多個邏輯磁盤組/disk group,則可以指定一個硬盤用於全局熱備,那么該disk group上的專用熱備盤數量為0也不用擔心),除了RAID 1/RAID 1+0一般不指定熱備盤以外,其他幾個陣列級別建議都要指定熱備盤 |
| State : Optimal | 陣列狀態,如果不是 Optimal 就要關注了 |
| Current Cache Policy: WriteBack, ReadAheadNone, Direct, Write Cache OK if Bad BBU | 陣列讀寫cache策略,建議寫策略設置為FORCE WB,最起碼是WB,預讀策略可以關掉,意義不大,幾乎沒影響 |
| Disk Cache Policy : Disabled | 硬盤cache策略,建議關閉,防止意外時數據丟失 |
| Current Power Savings Policy: None | 節電策略,建議關閉 |
| Media Error Count: 0 | 三個錯誤計數器,任何一個值大於100就要立刻引起關注,尤其要關注起增長速度。1T以上SATA盤,計數值不夠精確,可能所有盤上該值都會大於0,一般重啟就會重新清0,如果重啟后還是大於0的話,趕緊報修吧。SAS盤的計數值則比較准確。 |
| Other Error Count: 0 | |
| Predictive Failure Count: 0 | |
| Firmware state: Online, Spun Up | 查看硬盤狀態,如果是unconfigured表示該硬盤未分配加入到陣列中;如果是 unconfigured(bad)表示該盤不但是未分配,而且還壞了,正是“出師未捷身先死”;如果是failed,表示該盤故障無法識別;如果是rebuilding,表示該盤正在重建數據 |
c) MegaCli -adpbbucmd -aall — 查看陣列卡電池信息
| 狀態值 | 對應含義 |
| Temperature: 39 C | 查看電池溫度,如果相比上一次查看高出不少,就需要關注了,或者可以根據經驗設置一個基線值 |
| Battery State: Optimal | 電池狀態,如果不是為Optimal,就需要關注了 |
| Charger Status: Complete | 電池充放電狀態 |
| isSOHGood: Yes | 電池狀態,如果不是為Yes,需要關注 |
| Relative State of Charge: 93 % | 當前電量,當電量低於15%,或者電池壞掉時,默認都會將寫策略從WB改成WT,除非設定為FORCE WB策略 |
| Max Error = 0 % | 電池是否有錯誤信息 |
| Next Learn time: Tue Oct 14 22:06:50 2014 | 電池充放電時間,注意這是美國時間。另外,新的陣列卡電池很多改成電容式的了,也就不需要重復充放電了 |
d) MegaCli -fwtermlog -dsply -aALL 查看陣列卡日志,關注里面的error/fail/warn等多個關鍵字
2、lsiutil工具
lsiutil有交互和非交互兩種方式,作為監控,我們肯定選擇非交互模式。想要使用交互模式的,可以根據非交互模式自行練習。
a) lsiutil -p 1 -a 20,12,0,0 — 查看硬盤計數器
Invalid DWord Count 2,563 — 任何一個值大於0,都需要引起關注
Running Disparity Error Count 2,366
Loss of DWord Synch Count 0
Phy Reset Problem Count 0
b) lsiutil -p 1 -a 21,1,0,0,0 — 查看邏輯卷狀態
| 狀態值 | 對應含義 |
| Volume State: optimal, enabled | 邏輯卷健康狀況 |
| Volume draws from Hot Spare Pools: 0 | 是否有熱備 |
| Volume Size 139392 MB, 2 Members | 由幾塊硬盤組成 |
| Primary is PhysDisk 1 (Bus 0 Target 9) | 物理硬盤1 |
| Secondary is PhysDisk 0 (Bus 0 Target 3) | 物理硬盤0 |
c) lsiutil -p 1 -a 21,2,0,0,0 — 查看物理硬盤狀態
| 狀態值 | 對應含義 |
| PhysDisk 0 is Bus 0 Target 3 | 編號 |
| PhysDisk State: online | 狀態 |
| Error Count 13, Last Error: Command = 28h, Key = 3, ASC/ASCQ = 11h/00h | 錯誤計數器,大於0的話,就需要引起關注 |
3、hpacucli工具
hpacucli工具查看陣列、硬盤、電池信息,其實就只要一條指令:
hpacucli ctrl all show config detail — 查看陣列詳細信息、配置
| 狀態值 | 對應含義 |
| Controller Status: OK | 陣列卡狀態 |
| Firmware Version: 1.18 | firmware版本,太低了建議升級,以提高穩定性及性能 |
| Cache Board Present: True | 是否配備了cache模塊 |
| Cache Status: OK | cache模塊狀態 |
| Cache Ratio: 100% Read / 0% Write | cache策略,此處只有讀cache,不用於寫cache,因為沒有bbu電池,見下方結果 |
| Drive Write Cache: Disabled | 關閉磁盤cache |
| Total Cache Size: 256 MB | cache大小 |
| Total Cache Memory Available: 208 MB | 實際可用cache大小,和理論cache大小不一樣,說明cache模塊可能有問題 |
| No-Battery Write Cache: Disabled | 關閉FORCEWB策略 |
| Battery/Capacitor Count: 0 | 陣列卡BBU電池數量為0,也就是沒有BBU模塊 |
| Battery/Capacitor Status: Failed (Replace Batteries) | 陣列卡BBU電池狀態,這里顯示是錯誤狀態,需要及時更換 |
| Array: A | 第一個烏列陣列,編號從A開始,依次是A、B、C |
| Status: OK | 物理陣列狀態 |
| Logical Drive: 1 | 第一個邏輯卷,編號從1開始 |
| Fault Tolerance: RAID 5 | 第一個邏輯卷的陣列級別 |
| Status: OK | 第一個邏輯卷狀態 |
| Caching: Enabled | 第一個邏輯卷是否啟用了cache策略 |
| physicaldrive 1I:1:1 | 第一塊物理硬盤,編號從1開始 |
| Status: OK | 第一塊物理硬盤狀態 |
| Firmware Revision: HPDA | 第一塊物理硬盤firmware,如果太低,也需要及時升級,HP的硬盤每個批次都有不同的firmware |
