LSI RAID Controller

Last change on 2023-01-30 • Created on 2020-03-19 • ID: RO-26143

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 goodist, 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.

Table of Contents