ESXi 5.x LSI MegaRAID SAS 9260-4i Raid-1 Rebuild
In diesem Abschnitt dokumentieren wir den Testlauf für einen Fall, den man als Serverbetreiber am liebsten nie haben möchte: Ausfall einer Platte im RAID-1.
Alle Aktionen in diesem Abschnitt führen wir mit dem MegaCli auf der Shell des Hosts durch.
Erkennung eines Plattenausfalls
Ein Plattenausfall äußert sich darin, daß das Virtual Drive 0 nicht mehr als “Optimal” angezeigt wird. Ersichtlich wird dies im vSphere-Client unter Configuration / Health Status:
Außerdem läßt es sich in der Host-Shell mittels MegaCli abfragen:
/opt/lsi/MegaCLI # ./MegaCli -ldinfo -lall -aall
Adapter 0 — Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name :
RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0
Size : 2.728 TB
Is VD emulated : Yes
Mirror Data : 2.728 TB
State : Degraded
Strip Size : 64 KB
Number Of Drives : 2
[…]
Exit Code: 0x00
Wir hoffen, daß dort “Degraded” steht und nicht “Failed”, was bedeuten würde, daß beide Platten ausgefallen sind. Allerdings würde der Server dann wohl nicht mehr booten.
Natürlich ist es unschön, manuell im vSphere-Client oder auf der Shell des Hosts nach RAID-Ausfällen schauen zu müssen. Man möchte wohl eher aktiv darüber informiert werden. Daher ist – falls kein vCenter zur Verfügung steht, das Email-Alarme unterstützt – eine Methode wie das –HIER– beschriebene Monitoring des RAID-Status mittels MegaCli, SCP und Zabbix empfehlenswert.
Zur Identifizierung der ausgefallenen Platte kann man ebenfalls im vSphere-Client nachschauen, oder wir holen wir uns die Info der physikalischen Platten im MegaCli. Interessant sind hier die Einträge “Enclosure Device ID”, “Slot Number” und “Firmware State”.
/opt/lsi/MegaCLI # ./MegaCli -pdlist -aall
Adapter #0
Enclosure Device ID: 252
Slot Number: 0
[…]
Firmware state: Online, Spun Up
Enclosure Device ID: 252
Slot Number: 1
Firmware state: Online, Spun Up
Wenn dort etwas anderes als “Online” steht, z.B. “Failed”, “Unconfigured Bad”, “Missing” oder “Offline”, ist die Platte aus dem Array geflogen. Die Enclosure und Slot Nummer merken wir uns.
Forcierter Plattenausfall für den Test
Wir führen unseren Test durch, indem wir eine der Platten im RAID mit zwangs-offline setzen. Die Platte gilt dann als “ausgefallen”.
MegaCli -pdoffline -physdrv[252:1] -a0 # For test only, don’t do this on your server!!
Adapter: 0: EnclId-252 SlotId-1 state changed to OffLine.
Exit Code: 0x00
Hieraufhin wird das Array als “Degraded” markiert, wie oben aufgelistet. In unserem Beispiel haben wir also die Enclosure ID 252, Slot Number 1 “bearbeitet”. Das physikalische Laufwerk fürdie weiteren Kommandos ist damit die “252:1”.
Austausch der Platte
Zunächst markieren wir die ausgefallene Platte als “Missing”, falls dies nicht schon der Fall ist. Das Kommando pdgetmissing muß die Platte melden.
/opt/lsi/MegaCLI # ./MegaCli -pdmarkmissing -physdrv[252:1] -a0
EnclId-252 SlotId-1 is marked Missing.
Exit Code: 0x00
/opt/lsi/MegaCLI # ./MegaCli -pdgetmissing -aall
Adapter 0 – Missing Physical drives
No. Array Row Size Expected
0 0 0 2861056 MB
Exit Code: 0x00
Die “Array” und “Row” Nummern merken wir uns für später.
Im Falle einer tatsächlich defekten Platte würden wir diese jetzt zum Austausch durch den Support vorbereiten:
MegaCli -pdprprmv -physdrv[252:1] -a0
Nach Austausch muß die neue Platte u.U. mit Kommandos wie -pdmakegood oder -pdonline bereitgemacht werden. Der Status der Platte muß jedenfalls “Unconfigured Good” sein. In unserem Testvorgang ist dies automatisch der Fall, da wir die Platte nicht tatsächlich austauschen lassen.
Rebuild der neuen Platte
Die neue Platte wird als Ersatz für die ausgefallene bestimmt und der Rebuild gestartet. Für “array” und “row” wählen wir die Werte aus der Tabelle von eben:
/opt/lsi/MegaCLI # ./MegaCli -pdreplacemissing -physdrv[252:1] -array0 -row0 -a0
Adapter: 0: Missing PD at Array 0, Row 0 is replaced.
Exit Code: 0x00
/opt/lsi/MegaCLI # ./MegaCli -pdrbld -start -physdrv[252:1] -a0
Started rebuild progress on device(Encl-252 Slot-1)
Exit Code: 0x00
Dann läuft der Rebuild. Über den Fortschritt können wir uns so informieren:
/opt/lsi/MegaCLI # ./MegaCli -pdrbld -showprog -physdrv[252:1] -a0
Rebuild Progress on Device at Enclosure 252, Slot 1 Completed 15% in 38 Minutes.
Exit Code: 0x00
Nach Abschluß des Rebuild ist die Platte dann wieder “Online” und das Array “Optimal”.