查看幫助
MegaCli64 -h
適配卡配置
查看RAID控制器的數量
MegaCli64 -adpCount
查看所有raid卡詳細信息
MegaCli64 -AdpAllInfo -aALL
查看 RAID 卡 Rebuild 參數
重建在IO資源使用中的百分比,默認為30%
MegaCli64 -AdpAllinfo -aALL |grep -i rebuild
設置RAID 卡 Rebuild 參數
MegaCli64 -AdpSetProp { RebuildRate -60} -aALL
磁盤配置
查看連接RAID卡的全部硬盤詳細信息
MegaCli64 -PDList -aALL ----其中ALL意思是所有的控制器,此處也可以用0表示
MegaCli64 -PDList -aN N可以根據Adapter #0來確定
磁盤的信息如下:
磁盤信息過濾
由於磁盤信息較多,所有可以根據自己的需要來過濾得到自己想要的信息
MegaCli64 -PDList -aAll| grep -Ei "(Enclosure Device|Slot Number|Raw Size|Firmware state)" ---粗過濾
grep是過濾的意思
-E參數是使用擴展正則表達式來過濾
-i參數是不區分大小寫來過濾
Enclosure Device過濾出raid卡的ID;Slot Number過濾出磁盤的槽號;RawSize過濾出磁盤的大小;Firmware state過濾出磁盤的狀態。
獲取指定磁盤信息
MegaCli -pdInfo -PhysDrv[E0:S0,E1:S1,...] -aN|-a0,1,2|-aALL
N表示raid卡編號,0表示第一塊raid卡;ALL表示所有的raid卡 ;E和S代表Enclosure Device和Slot Number
磁盤上下線
MegaCli64 -PDOffline/PDOnline -PhysDrv [E:S] -a0
磁盤點燈
MegaCli64 -PDLocate -start -physdrv[58:17] -a0
MegaCli64 -PDLocate -stop -physdrv[58:17] -a0
RAID組基礎配置
創建RAID組
MegaCli64 -CfgLdAdd -r(0|1|5) [E:S, E:S, ...] -aN
N表示raid卡編號,0表示第一塊raid卡;ALL表示所有的raid卡 ;E和S代表Enclosure Device和Slot Number
下面是一個創建raid5例子,屬性為默認 固件狀態會由Unconfigured變成Online
下面給出一個創建raid10的例子,並設置屬性
刪除RAID組
MegaCli64 -CfgLdDel -LX -a0
查看RAID組信息
MegaCli64 -LDInfo -Lall -aALL (創建的示例已經使用過了)
MegaCli64 -LdPdInfo -aALL -----查看raid信息及raid組成磁盤信息。
RAID Level對應關系:RAID級別一般通過 Primary 字段值來判斷
還需要結合Span Depth的值來判斷值為1表示為 RAID-1,不為1表示 RAID-10; 還有一種情況:Primary-1, Secondary-3, RAID LevelQualifier-0 也是表示 RAID-10;
RAIDLevel : Primary-0, Secondary-0, RAID Level Qualifier-0 對應RAID 0
RAIDLevel : Primary-1, Secondary-0, RAID Level Qualifier-0 對應RAID 1
RAIDLevel : Primary-5, Secondary-0, RAID Level Qualifier-3 對應RAID 5
RAIDLevel : Primary-1, Secondary-3, RAID Level Qualifier-0 對應RAID 10
修改RAID組屬性
MegaCli -LDGetProp -Cache -L0 -a0 獲取cache屬性
WriteBack:寫緩存策略
WriteThrough:直接寫入磁盤,不適用RAID卡緩存。
ReadAheadNone:不開啟預讀
ReadAhead:開啟預讀,在讀操作的時候,預先把后面順序的數據載入raid卡緩存,在順序讀的環境中能提供很好的性能,但是在隨機讀的環境中反而降低讀的性能(適合文件系統,不適合數據庫系統)
ReadAdaptive:自適應預讀,在緩存和I/O空閑時選擇預讀,默認策略。
Direct:讀操作不緩存到RAID卡緩存。
Cached:讀操作緩存到RAID卡緩存。
如果BBU(電池)出現問題是否啟用WriteCache
No Write Cache if Bad BBU:如果BBU出現問題不使用WriteCache,從WriteBack自動切換到WriteThrough,默認配置。
Write Cache OK if Bad BBU: 如果BBU出現問題仍啟用WriteCache,這種配置是非常不安全的,除非是有UPS或者雙電源的情況下。
緩存策略解釋:
WT (WriteThrough)
WB (WriteBack)
NORA (ReadAheadNone)
RA (ReadAhead)
ADRA (ReadAdaptive)
Cached
Direct
修改屬性
MegaCli64 -LDSetProp WT -L0 -a0
MegaCli64 -LDSetProp RA -L0 -a0
MegaCli64 -LDSetProp Cached -L0 -a0
清除RAID配置(慎用)
MegaCli -CfgClr [-Force] -aN|-a0,1,2|-aALL
RAID組擴展配置
1.擴容過程中無法新建RAID組
2.擴容過程中無法對其余RAID組擴容
下面示例一個RAID5擴容:
MegaCli64 -LDRecon -Start -r5 -Add -PhysDrv[58:7, 58:11] -L0 -a0
查看擴容的進度(真的是超級慢)
MegaCli64 -LDRecon -ShowProg -L0 -a0 顯示擴容進度
MegaCli64 -LDRecon -progdsply -L0 -a0 動態顯示擴容進度
好了,我終於等到1%了
RAID組熱備配置
全局熱備
MegaCli64 -PDHSP -set -PhysDrv[E:S] -a0 添加全局熱備
MegaCli64 -PDHSP -rmv -PhysDrv[E:S] -a0 刪除全局熱備
添加全局熱備后,狀態如下:
此時下線成員盤,RAID組進入重構
MegaCli64 -PDRbld -ShowProg -PhysDrv[E:S] -aALL 查看磁盤重構進度
MegaCli64 -PDRbld -ProgDsply -PhysDrv[E:S] -aALL 動態顯示重構進度
局部熱備
在創建時添加局部熱備
MegaCli64 -CfgLdAdd -r1 [58:7,58:11] -Hsp[58:17] -a0
查看RAID組信息:
然后再添加一塊全局熱備
准備工作完畢!現在下線成員盤,下線之后局部熱備替換到成員組
RAID組狀態也變為降級
rebuild的時間也很長,但此期間可以創建新的RAID組
等待ing~~~~~~~~~~
此時另一塊盤也可以下線,不過下線rebuild就涼涼了……
第二種是創建成功之后,給特定RAID組添加熱備盤
MegaCli64 -CfgLdAdd -r5 [58:7,58:11,58:17] -a0
MegaCli64 -CfgLdAdd -r1 [58:19,58:23] -a0
首先創建兩個RAID組,然后把熱備添加到第二個RAID組里(局部熱備可以同時添加到多個RAID組)
局部熱備里的Array計算比較麻煩,這里就要用到上面提到的DG,要按DG的排序累加,一直累加到要添加熱備的VD(要添加熱備的VD也要計算)。
1. 默認設Array為-1。
2. 如果是RAID0,1,5,6,則Array加1。
3. 如果是RAID10,50,則Array加2。
4. 如果是RAID0,1,5,6,則返回Array最后計算的值。
5. 如果是RAID10,50,則返回Array-1,Array。
MegaCli64 -PDHSP -set -Dedicated [-Array1] -PhysDrv[58:18] -a0
常見問題處理
1. Firmwarestate:Unconfigured(good), Spun down解決方法:
重新熱拔插指定硬盤,該狀態會變成Firmware state:Unconfigured(good), Spun Up
創建raid后磁盤狀態也會由Spun down變成SpunUp
2. Firmware state: Unconfigured(bad)解決辦法:
MegaCli64 -PDMakeGood -PhysDrv[E:S] -a0 固件狀態會由Unconfigured(bad)變成Unconfigured(good), Spun Up
# MegaCli64 -PDMakeGood -PhysDrv[252:7] -a0
3. Firmware state: failed解決辦法:
出現failed狀態的硬盤大多已損壞,建議更換(或報修);但可以強制上線。
強制上線步驟如下:
可以先將磁盤下線。 # MegaCli64 -PDOffline-PhysDrv[E:S] -a0
然后再上線。 # MegaCli64 -PDOnline -PhysDrv[E:S] -a0
4. 以下狀態的解決辦法:
Foreign State: Foreign
Foreign Secure: Drive is notsecured by a foreign lock key
辦法一:可以清除恢復狀態(慎用)
# MegaCli64 -CfgForeign -Clear -a0
辦法二:導入配置,恢復虛擬磁盤組
# MegaCli64 -CfgForeign -import -a0
5. 如何定位設備/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)"
參考: