ページ ツリー
メタデータの末尾にスキップ
メタデータの先頭に移動

VMwareからLSIのカードのRAIDアレイを管理するTips

とある事情で物理VMサーバ上でRAIDを作成する必要があったので作成

2018/2月 追記:ESXi 6.5ではmegacliは動かないのでstorcliを使ってください

検証環境:

  • VMware-VMvisor-Installer-5.5.0.update02-2068190.x86_64
    • LSI MegaRAID 8708EM2 (LSI SAS1078チップ使用)
    • Fujitsu D2516-D11 (LSI SAS1078チップ使用)
  • ESX6系及びMegaRAID 9xxカードは未検証

設定手順

 

 

lsiproviderをインストールする

LSI(現Avago)のページからSMIS ProbviderをDLします。

http://www.avagotech.com/cs/Satellite?pagename=AVG2%2FsearchLayout&locale=avg_en&Search=SMIS

古いMegaRAIDをサポートするのはMR 6.3が最終らしいです。

VMW-ESX-5-5-0-lsiprovider-500-04-V0-51-0002-1717486.zip

NEC版のものも動きました

http://support.express.nec.co.jp/dload/422225-A02/

AvagoはLSIの旧URLのリンクをクリックするとAvagoのトップページに飛ばすのやめてくれませんかね(小声)

 

ZIPファイルの中身からVMW-ESX-5.x.0-lsiprovider-500.04.V0.51-0002-offline_bundle-1717486.zipを取り出し、インストールします。

CLIから設定するので、SSHサービスを有効にする必要があります。SSHを有効にすればSCPが動くのでTeratermなどで転送します。

~ # esxcli software vib update -d /VMW-ESX-5.x.0-lsiprovider-500.04.V0.51-0002-offline_bundle-1717486.zip --no-sig-check
Installation Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: LSI_bootbank_lsiprovider_500.04.V0.51-0002

再起動すると、vSphereClientからディスクの状態が見えるようになります。

 

MegaCLIのインストール

lsiproviderのインストールが完了したら、MegaCLIをインストールします。

MegaRAID Storage Manager (MSM)は動きが不安定だったのでCLIから設定します。MSMは甘え。

http://www.avagotech.com/cs/Satellite?pagename=AVG2%2FsearchLayout&locale=avg_en&Search=MegaCLI+P1

ここから、MegaCLI 5.5P1をDLし、解凍します。

解凍すると、VmwareMNディレクトリ内にvmware-esx-MegaCli-8.07.07.vibというファイルが解凍されるので、これをSCPなどで転送し、インストールします。

vmware-esx-MegaCli-8.07.07.vib

~ # esxcli software vib install -v /vmware-esx-MegaCli-8.07.07.vib --no-sig-check
Installation Result
   Message: Operation finished successfully.
   Reboot Required: false
   VIBs Installed: LSI_bootbank_vmware-esx-MegaCli-8.07.07_8.07.07-01
   VIBs Removed:
   VIBs Skipped:

インストールすると、/opt/lsi/MegaCLI/以下にMegaCLIがインストールされます。/opt/lsi/MegaCLI以下に移動し、

MegaCli -AdpAllInfo -aall

などのコマンドが実行できるか確認します。

~ # cd /opt/lsi/MegaCLI/
/opt/lsi/MegaCLI # ./MegaCli -AdpAllInfo -aall

Adapter #0

==============================================================================
                    Versions
                ================
Product Name    : RAID 5/6 SAS based on LSI MegaRAID
Serial No       :
FW Package Build: 6.0.1-0081

                    Mfg. Data
                ================
Mfg. Date       : 00/00/00
Rework Date     : 00/00/00
Revision No     :
Battery FRU     : N/A

                Image Versions in Flash:
                ================
FW Version         : 1.11.72-0356
BIOS Version       : NT10
WebBIOS Version    : 1.1-27-e_10-Rel
Ctrl-R Version     : 1.01-007B
Boot Block Version : 1.00.00.01-0006
  略

それっぽい値が帰ってくればOKです。

RAIDディスク作成

ここから先はMegaCLIの設定になるので、VMwareに限らずLinux/Windowsでも大体同じです。

試しに、RAID1のLD(論理ディスク)を作成してみます。

物理ディスク確認

RAIDのメンバーにする、物理ディスクを確認します。

./MegaCli -pdlist -a0
    
    略
    
Enclosure Device ID: 252
Slot Number: 4
Enclosure position: N/A
Device Id: 16
WWN:
Sequence Number: 1
Media Error Count: 0
Other Error Count: 1
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SATA

Raw Size: 37.259 GB [0x4a85300 Sectors]
Non Coerced Size: 36.759 GB [0x4985300 Sectors]
Coerced Size: 36.75 GB [0x4980000 Sectors]
Sector Size:  0
Firmware state: Unconfigured(good), Spun Up
Device Firmware Level: C7TP
Shield Counter: 0
Successful diagnostics completion on :  N/A
SAS Address(0): 0x8b70aa4da8daeec4
Connected Port Number: 4(path0)
Inquiry Data:       SB2182SFGVVAUHHitachi HTS541640J9SA00                 SB1OC7TP
    略


Enclosure Device ID: 252
Slot Number: 5
Enclosure position: N/A
Device Id: 17
WWN:
Sequence Number: 1
Media Error Count: 0
Other Error Count: 1
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SATA

Raw Size: 37.259 GB [0x4a85300 Sectors]
Non Coerced Size: 36.759 GB [0x4985300 Sectors]
Coerced Size: 36.75 GB [0x4980000 Sectors]
Sector Size:  0
Firmware state: Unconfigured(good), Spun Up
Device Firmware Level: C7TP
Shield Counter: 0
Successful diagnostics completion on :  N/A
SAS Address(0): 0x8b70aa4ca9ddf2c4
Connected Port Number: 5(path0)
Inquiry Data:       SB2182SFGUWDYHHitachi HTS541640J9SA00                 SB1OC7TP
    略
  

今回はエンクロージャ252:スロット4と252:5を元に、RAID1のVDを作成します。

RAIDアレイ作成

以下のコマンドでRAID1、書き込みキャッシュ有効なVDを追加します。今回作成するVDの番号が1なのは、すでにVD0が起動ディスクとして使われているためです。

-CfgLdAdd の引数は説明すると長いので、-helpを見てください。

/opt/lsi/MegaCLI # ./MegaCli -CfgLdAdd -r1[252:4,252:5] WB RA Cached CachedBadBBU  -a0

Adapter 0: Created VD 1

Adapter 0: Configured the Adapter!!

Exit Code: 0x00
      

ディスクのキャッシュを利用する設定にします。

/opt/lsi/MegaCLI # ./MegaCli -LDSetProp  -EnDskCache -l1 -a0

Set Disk Cache Policy to Enabled on Adapter 0, VD 1 (target id: 1) success

Exit Code: 0x00
  

ディスク情報確認

作成した内容を確認します。

 

/opt/lsi/MegaCLI # ./MegaCli -ldinfo -l1 -a0


Adapter 0 -- Virtual Drive Information:
Virtual Drive: 1 (Target Id: 1)
Name                :
RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0
Size                : 36.75 GB
Sector Size         : 512
Mirror Data         : 36.75 GB
State               : Optimal
Strip Size          : 64 KB
Number Of Drives    : 2
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Enabled
Encryption Type     : None
Is VD Cached: No

作成すると、vSphereClientからも見えるようになります。

あとは通常のディスクとして使えます。

RAIDディスク障害対応手順

故意にディスクのSATAケーブルを抜き、障害を発生させディスクのリビルドを行ってみます。

引き抜いたディスクは252:4番として認識されているディスクです。

状態確認

ケーブルを抜くと、以下のようにvSphereClientでエラーになります。

MegaCLIでもState がDegradedになります。

 

/opt/lsi/MegaCLI # ./MegaCli -ldinfo -l1 -a0


Adapter 0 -- Virtual Drive Information:
Virtual Drive: 1 (Target Id: 1)
Name                :
RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0
Size                : 36.75 GB
Sector Size         : 512
Mirror Data         : 36.75 GB
State               : Degraded
Strip Size          : 64 KB
Number Of Drives    : 2
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Enabled
Encryption Type     : None
Is VD Cached: No
  

以下のコマンドでもどのディスクに障害が起きているか確認できます。

/opt/lsi/MegaCLI # ./MegaCli -PdGetMissing -aall

    Adapter 0 - Missing Physical drives

    No.   Array   Row   Size Expected
    0     1       0     37632 MB

Exit Code: 0x00

 

ディスクの状態変更

エラーになっていることを確認したら、ディスクを戻してリビルドしてみます。

ディスクを戻すと、ダメなディスクとして認識されます。

認識されたことを確認したら、以下のコマンドで未構成の正常ディスクに変更します。

MegaCli -PDMakeGood -Physdrv[エンクロージャID:スロットナンバー] -aアダプタN

ディスクを交換した場合はデフォルトでUNCONFIGURED GOODとして認識されます。

 /opt/lsi/MegaCLI # ./MegaCli -PDMakeGood -Physdrv[252:4] -a0

Adapter: 0: EnclId-252 SlotId-4 state changed to Unconfigured-Good.

Exit Code: 0x00

ディスクの置き換え

その後、以下のコマンドでアレイに使っていたディスクを置き換えます。

MegaCli -PdReplaceMissing -PhysDrv [エンクロージャID:スロットナンバー] -Array論理ディスクN -rowN -aアダプタN

 

/opt/lsi/MegaCLI # ./MegaCli -PdReplaceMissing -PhysDrv [252:4] -Array1 -row0 -a0

Adapter: 0: Missing PD at Array 1, Row 0 is replaced.

Exit Code: 0x00

リビルドの開始

置き換わっただけでは自動リビルドは走らないので、リビルドを明示的に開始します。

ただし、デフォルトのリビルドレートは30%に指定されているため、稼働システムに対するインパクトは少ないものの中々終わりません。

そのため、テストの時は

MegaCli  -AdpSetProp RebuildRate -99

 でディスクの性能のほぼ100%をリビルドに割り当てます。

/opt/lsi/MegaCLI # ./MegaCli -AdpGetProp RebuildRate -aALL

Adapter 0: Rebuild Rate = 30%

Exit Code: 0x00
/opt/lsi/MegaCLI # ./ MegaCli -AdpSetProp RebuildRate -99 -a0
    
/opt/lsi/MegaCLI # ./MegaCli -AdpGetProp RebuildRate -aALL

Adapter 0: Rebuild Rate = 99%

Exit Code: 0x00

その後、ディスクのリビルドを開始します。開始すると、ファームのステータスがRebuildになります。

/opt/lsi/MegaCLI # ./MegaCli -PDRbld -Start -PhysDrv [252:4] -a0

Started rebuild progress on device(Encl-252 Slot-4)

Exit Code: 0x00
/opt/lsi/MegaCLI # ./MegaCli -pdlist -a0|grep Firm
    
Firmware state: Rebuild
Device Firmware Level: C7TP
Firmware state: Online, Spun Up
Device Firmware Level: C7TP

リビルドの進捗確認

以下のコマンドでリビルドの進捗状況を確認できます。

MegaCli -PDRbld -ShowProg -PhysDrv [エンクロージャID:スロットナンバー] -aアダプタN

/opt/lsi/MegaCLI # ./MegaCli -PDRbld -ShowProg -PhysDrv [252:4] -a0

Rebuild Progress on Device at Enclosure 252, Slot 4 Completed 66% in 10 Minutes.

Exit Code: 0x00
    

完了確認

リビルドが終わると、vSphereClientの方も正常に戻ります。

今更ながら、ディスクの状態はUNCONFIGURED GOODじゃなくてONLINEにならないといけないような…?

/opt/lsi/MegaCLI # ./MegaCli -pdlist -a0|grep Firm
Firmware state: Online, Spun Up
Device Firmware Level: AB0Q
Firmware state: Online, Spun Up
Device Firmware Level: AB0Q
Firmware state: Online, Spun Up
Device Firmware Level: AB0Q
Firmware state: Online, Spun Up
Device Firmware Level: AB0Q
Firmware state: Online, Spun Up
Device Firmware Level: C7TP
Firmware state: Online, Spun Up
Device Firmware Level: C7TP

よく分かりませんが。。

以上で、ディスク障害の対応手順(オレオレ検証)は完了です。

その他

その他のチューニングと言うか諸々について

7日ごとにHDD-LEDが強烈に点滅するのを変えたい

 ConsistencyCheck (CC)がデフォルトで168時間毎になっているためです。確認、変更はMegacliからできます。

/*** 確認  ***/
~# MegaCli -AdpCcSched  -info aall

Adapter #0

Operation Mode: Concurrent
Execution Delay: 168
Next start time: 02/10/2018, 03:00:00
Current State: Active
Number of iterations: 11
Number of VD completed: 0
Excluded VDs          : None
Exit Code: 0x00

/***  変更(例として672時間毎(4週間に一回))  ***/
~# MegaCli -AdpCcSched -SetDelay 672 aall

Adapter 0: Scheduled CC execution delay is set to 672 hours.

Exit Code: 0x00

/*** 次回の実行時間を延期する  ***/
/*** 今だとNext start time: 02/10/2018, 03:00:00になっているので2/24に変更する  ***/

~# MegaCli -AdpCcSched -SetStartTime 20180224 06 -a0

Adapter 0: Scheduled CC start time is set.

Exit Code: 0x00

 /*** 確認  ***/
~# MegaCli -AdpCcSched  -info aall

Adapter #0

Operation Mode: Concurrent
Execution Delay: 672
Next start time: 02/24/2018, 06:00:00
Current State: Active
Number of iterations: 11
Number of VD completed: 0
Excluded VDs          : None
Exit Code: 0x00



 /*** CCのモード変更 ***/ 
 /*** CCをConcurrentモードに指定する(デフォルト) ***/ 
MegaCli AdpCcSched  ModeConc aall
Adapter 0: Scheduled CC mode is set to Concurrent.

Exit Code: 0x00

 /*** CCをSequentialモードに指定する ***/ 
MegaCli AdpCcSched  ModeSeq aall
Adapter 0: Scheduled CC mode is set to Sequential.

Exit Code: 0x00

 /*** 非推奨 ***/ 
 /*** CCを無効にする***/ 
MegaCli AdpCcSched  Dsbl aall
Adapter 0: Scheduled CC mode is set to Disabled.



あまり頻繁にやるのも良くないですが、無効にするのもよくありません。CC中に破損が見つかった場合、実際にブロックが破損していたが、今までアクセスされなかったがために誰にも気が付かれなかったというパターンです。CCがディスクを壊したわけではありません。無効にしていると、だいたい他のディスクが壊れてリビルド中に全セクタをなめた結果それが発覚して直すべきパリティーが読み込めずアレイが全損します。

CCのモードにSequentialとConcurrentがありますが、Concurrent(デフォルト)はアレイのメンバーディスクを一斉にチェックするモードで、Sequentialはアレイのディスクを1本ずつ終わったら次へ次へと見ていくモードです。ただ、RAIDは結局一番遅いディスクに律されてしまうので、パフォーマンスインパクトとしては1本ずつやる意味がない気がします…。筐体のLEDが1本だけチカチカするのでどのディスクがいまCCされているかという意味ではわかりやすいかもしれません。あとは15krpmのSASドライブが24本くらいになってくると発熱や消費電力的な面で1本ずつやるメリットが有るのかもしれませんが、正直どういうときに使うのか謎です。

Linuxのmdraidはデフォルトで月イチでディスク総なめをする設定が入っているので、そのくらいの頻度でやっておくのがいいと思います。


MegaCLIの使い方についてはMegaCLI -helpを参照。殆どここに書いてあります。

また、ディスク障害発生時に検知したい場合はSNMPかvCenterServerを使う必要があります。

コメントを書く…