Einführung
Dieser Artikel erläutert die Verwendung des von LSI entwickelten Programms zur Administration des RAID-Controllers. Sie finden es im Hetzner Download-Bereich.
Die Zugangsdaten zu diesem Bereich haben Sie bereits mit der Fertigstellungsmail Ihres Root Servers erhalten. Bitte beachten Sie beim Download die Lizenzvereinbarung.
- Das Tool
megacli
dient zur Verwaltung des Controllers auf der Kommandozeile. (Hinweis: Das RPM installiert dieses unter/opt/MegaRAID/MegaCli/
) - Das Tool
MegaRAID Storage Manager (MSM)
dient zur Verwaltung des Controllers über eine graphische Oberfläche
Den Status eines Hardware-RAID auslesen
Um den Status der LSI RAID-Controller auszulesen muss das Commandline-Tool megacli
von LSI installiert sein. Im Hetzner Rescue-System ist dies bereits der Fall.
Den Zustand des RAIDs erhält man mit folgendem Befehl (Zeige alle Logical Devices an allen Controllern):
megacli -LDInfo -Lall -Aall
Ausgabe Beispiel RAID 1:
Adapter 0 -- Virtual Drive Information:
Virtual Disk: 0 (Target Id: 0)
Name:
RAID Level: Primary-1, Secondary-0, RAID Level Qualifier-0
Size:697.560 GB
State: Optimal
Stripe Size: 64 KB
Number Of Drives:2
Span Depth:1
Default Cache Policy: WriteBack, ReadAhead, Direct, Write Cache OK if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Direct, Write Cache OK if Bad BBU
Access Policy: Read/Write
Disk Cache Policy: Enabled
Encryption Type: None
Den Zustand der Festplatten erhält man mit folgenden Befehl:
megacli -PDList -Aall
Da dabei auch eine Menge unnützer Informationen herauskommt, empfiehlt es sich die Ausgabe zu filtern, z.B. mittels:
megacli -PDList -aAll | egrep "Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state"
Einrichten eines Hardware-RAID
Bevor das Array angelegt werden kann, muss die bisherige Konfiguration eventuell gelöscht werden. Um nur die logischen Geräte zu löschen genügt ein CfgLdDel
:
megacli -CfgLdDel -Lall -aAll
Um alles (inkl. z.B. Cache-Verhalten) zu löschen gibt es Configuration Clear
:
megacli -CfgClr -aAll
Verwendbare Festplatten müssen im Zustand Unconfigured (good)
sein (siehe oben). Falls diese im Zustand Unconfigured (bad)
sind, kann man dies via:
megacli -PDMakeGood -PhysDrv[<Enclosure#>:<Slot#>] -a0
Syntax:
megacli -CfgLdAdd -r<RAID#> [E0:S0,E1:S1,...] [WT|WB] [NORA|RA] [Direct|Cached] -sz<Größe> [-sz<Größe>]
RAID 0, 1 oder 5
Für "r1" entsprechend "r0" bzw. "r5" einsetzen (HDDs an Enclosure 252, Port 0 und 1, WriteBack an, ReadCache auf adaptiv, Cache aktiv auch ohne BBU):
megacli -CfgLdAdd -r1 [252:0,252:1] WB RA Direct CachedBadBBU -a0
RAID 0, 1 oder 5 wie oben erstellen mit einer Größe von 20GB:
megacli -CfgLdAdd -r1 [252:0,252:1] WB RA Direct CachedBadBBU -sz10GB -a0
RAID 10
megacli -CfgSpanAdd -r10 -Array0[252:0,252:1] -Array1[252:2,252:3] WB RA Direct CachedBadBBU -a0
Ein bestehendes Array (z.B. RAID 5) erweitern
Nachdem die zusätzliche HDD eingebaut ist, wird das gewünschte Volume entsprechend rekonfiguriert. Hier ein Beispiel für das Hinzufügen einer HDD zu einem bestehen RAID 5:
megacli -LDRecon -Start -r5 -Add -PhysDrv[252:3] -L0 -a0
Festplatten als JBOD nutzen
Der LSI MegaRAID 9260 Controller beherrscht keinen JBOD-Modus, bei dem die Festplatten direkt durchgereicht werden. Es ist jedoch möglich, alle Festplatten als RAID 0 zu konfigurieren und so einzeln zu nutzen:
megacli -CfgEachDskRaid0 WB RA Direct CachedBadBBU -a0
Eine Festplatte als Hotspare setzen
Über das Drives
-Menü eine unbenutzte (unconfigured good
) Festplatte auswählen und die Eigenschaften (Properties
) aufrufen. Dort kann die Festplatte entweder als dedizierte Hotspare
für ein Array oder als Globale Hotspare
für alle Arrays konfiguriert werden. Über das megacli
Tool ist dies auch möglich
-
Als globale Hotspare:
megacli -PDHSP -Set -PhysDrv[252:2] -a0
-
Als dedizierte Hotspare für Array0:
megacli -PDHSP -Set -Dedicated -Array0 -PhysDrv[252:2] -a0
-
Hotspare Status entfernen:
megacli -PDHSP -Rmv -PhysDrv[252:2] -a0
Ein Array als Bootlaufwerk setzen
Falls Array nicht bootfähig ist, kann man dies abfragen und auf ein logisches Device setzen:
root@rescue ~ # megacli -AdpBootDrive -get -a0
Adapter 0: No Virtual drive or Physical Drive is configured as boot drive.
root@rescue ~ # megacli -AdpBootDrive -set -L0 -a0
Boot Virtual Drive is set to #0 (target id #0) on Adapter 0
Die Konfiguration des Controllers sichern/wiederherstellen
Um die Konfiguration des Controller und aller Arrays zu sichern
megacli -CfgSave -f raidcfg.txt -a0
Um die Konfiguration des Controller wiederherzustellen
megacli -CfgRestore -f raidcfg.txt -a0
Ersetzen eine Festplatte im Array, wenn der Rebuild nicht automatisch startet
Eine neue Festplatte sollte im Zustand Unconfigured (good)
sein. Dies kann man mittels PDList
überprüfen. Falls die Festplatte im Zustand Unconfigured (bad)
ist, muß diese erst wie folgt nutzbar gemacht werden:
megacli -PDList -a0 | grep Firmware
Firmware state: Online, Spun Up
Device Firmware Level: CC45
Firmware state: Online, Spun Up
Device Firmware Level: CC45
Firmware state: Unconfigured(bad), Spun Up
Device Firmware Level: CC45
Firmware state: Online, Spun Up
Device Firmware Level: CC45
megacli -CfgForeign -Scan -a0
There are 1 foreign configuration(s) on controller 0.
megacli -CfgForeign -Clear -a0
Foreign configuration 0 is cleared on controller 0.
megacli -PDMakeGood -PhysDrv [245:3] -a0
Wenn die Festplatte good
ist, kann diese nun die fehlende Festplatte ersetzen. Dazu muss sowohl das Array als auch die Position angegeben werden, welche ersetzt werden soll. Die Zahlen erhält man zum Beispiel aus der Ausgabe von megacli -CfgDsply -a0
. Fehlt eine Festplatte in einem Array existiert ein Eintrag Physical Disk:
, aber keine weiteren Informationen. Im Beispiel wird nun die 4. Festplatte des ersten Arrays Array0
mit der Festplatte in Enclosure 245 Slot 3 ("PhysDrv[245:3]")
ausgetauscht:
megacli -PdReplaceMissing -PhysDrv[245:3] -array0 -row4 -a0
Adapter: 0: Missing PD at Array 0, Row 4 is replaced.
megacli -PDRbld -Start -PhysDrv[245:3] -a0
Started rebuild progress on device(Encl-245 Slot-3)
megacli -PDRbld -ShowProg -PhysDrv [245:3] -aAll
Rebuild Progress on Device at Enclosure 245, Slot 3 Completed 1% in 0 Minutes.
Die SMART Werte der Festplatten im RAID auslesen
Mittels smartmontools
kann direkt auf die physischen Festplatten hinter dem Controller zugegriffen werden, z.B. für die erste Festplatte. Dazu muß zunächst mit dem megacli
Tool die Device ID
ermittelt werden:
megacli -pdlist -a0| grep 'Device Id'
Device Id: 4
Device Id: 5
Diese kann man nun als Option nach megaraid
angeben, also z.B.
smartctl -d sat+megaraid,4 -a /dev/sda
Je nach Betriebssystem ist eine Aktualisierung der smartmontools
oder des Kernels
notwendig.
Nach Reboot RAID-Konfiguration leer
In seltenen Fällen kann es sein, dass nach dem ersten Anlegen eines RAID-Verbunds keine Konfiguration mehr gefunden wird, nachdem man den Server neu startet.
Um dieses Problem zu lösen, muss man die Konfiguration im Rescue System zweimal anlegen.
Beispiel für RAID 1:
-
Anlegen:
megacli -CfgLdAdd -r1 [252:0,252:1] WB RA Direct CachedBadBBU -a0
-
Löschen (in dem Fall Alles):
megacli -CfgLdDel -Lall -aAll
-
Erneut Anlegen:
megacli -CfgLdAdd -r1 [252:0,252:1] WB RA Direct CachedBadBBU -a0
Firmware-Update
Mit einem Firmware-Update falls vom Hersteller verfügbar wird die Firmware Ihres LSI RAID-Controllers immer auf dem aktuellem Stand gehalten bzw. es werden damit bekannte Fehler behoben oder auch Funktionen erweitert.
Bevor Sie ein Firmware-Update durchführen, empfehlen wir immer zu einem Backup Ihrer Daten und der RAID-Konfiguration um einen möglichen Datenverlust zu vermeiden.
Eine Anleitung zum sichern/wiederherstellen der Konfiguration des RAID-Controllers finden Sie weiter oben.
Vorgehensweise:
RAID-Controller Modell / FW-Version auslesen
Um den Status der LSI RAID-Controller auszulesen muss das Commandline-Tool megacli
von LSI installiert sein. Im Rescue-System ist dies bereits der Fall.
Befehl - Syntax:
megacli -AdpAllInfo -aAll
Ausgabe Beispiel:
Versions
================
Product Name : LSI MegaRAID SAS 9260-4i
Serial No: SV52117135
FW Package Build: 12.15.0-0205
RAID-Controller FW-Update durchführen
In Abhängigkeit der auf dem RAID-Controller installierten Firmware Version, kann ein Zwischen-Update (nur bei Firmware Versionen älter als 12.12.0-0090
) erforderlich sein.
Sollte die installierte Firmware Version älter als die Firmware Version 12.12.0-0090
sein, führen Sie bitte zuerst ein Zwischen-Update auf die Firmware Version 12.12.0-0090
durch, welche Ihnen auf unserem Mirror zum Download zur Verfügung steht.
Speichern Sie die Firmware-Datei entsprechend auf Ihrem Server und führen Sie mit folgendem Befehl, der Pfad zur zuvor gespeicherten Firmware-Datei
(.rom-Datei) mr12.12.0-0090.rom
muss entsprechend angepasst werden, das Firmware-Update in diesem Beispiel auf die FW-Version 12.12.0-0090
durch.
Den entsprechenden Befehl zum Firmware-Update entnehmen Sie bitte der Readme-Datei des Firmware-Updates. In diesem Beispiel lautet es wie folgt:
megacli -adpfwflash -f mr12.12.0-0090.rom -a0
Sollte kein Zwischen-Update erforderlich sein, können Sie auf der Hersteller Support Seite unter folgendem Link die Verfügbarkeit einer aktuellen Firmware Version für Ihren LSI RAID-Controller überprüfen und entsprechend herunterladen.
Hersteller Support Dokumente und Download.
Speichern Sie auch hier die Firmware-Datei entsprechend auf Ihrem Server und führen Sie mit folgendem Befehl, der Pfad zur zuvor gespeicherten Firmware-Datei
(.rom-Datei) z.B. mr2108fw.rom
muss entsprechend angepasst werden, das Firmware-Update in diesem Beispiel auf die FW-Version 2108fw
durch.
Den entsprechenden Befehl zum Firmware-Update entnehmen Sie bitte der Readme-Datei des Firmware-Updates. In diesem Beispiel lautet es wie folgt:
Befehl - Syntax:
megacli -adpfwflash -f mr2108fw.rom -a0
RAID-Controller Firmware-Update überprüfen
Abschließend können Sie wie folgt die nun installierte FW-Version überprüfen.
Befehl - Syntax:
megacli -AdpAllInfo -aAll
Ausgabe Beispiel:
Versions
================
Product Name : LSI MegaRAID SAS 9260-4i
Serial No: SV52117135
FW PackageBuild: 12.15.0-0205
Fazit
In diesem Artikel wurden verschiedene Möglichkeiten der RAID-Konfiguration ihres Servers erläutert. Sie sollten jetzt den Server nach ihren Vorstellungen konfigurieren können.