MegaCLI cheatsheet
Dieses CheatSheet soll beim Umgang mit LSI MegaRAID Controllern helfen. Das dazugehörige Tool ist leider recht umständlich zu bedienen.
MegaCLI ist verfügbar für Linux, DOS, Windows, Netware und Solaris. Man kann es von der LSI-Webseite herunterladen (suche nach MegaRAID SAS). Für Debian basierte Distributionen gibt es ein praktisches Repository
Dieses Notfall-Cheatsheet deckt nicht alles ab, sollte aber in den meisten Fällen ausreichend sein. Für eine komplette Übersicht einfach „megacli -h“ aufrufen oder in das PDF-Handbuch schauen:
Es gibt viele verschiedene Parameter für MegaCLI, einige davon sind immer gleich. Diese werden hier kurz beschrieben:
Adapter parameter -aN Der Parameter -aN (wobei N eine Nummer von 0 beginnend ist oder der String ALL) bestimmt die PERC5/i Adapter ID. Wenn man nur einen Controller hat, ist es kein Problem ALL zu verwenden anstelle der ID. Sicherer ist es wenn man bei Arbeiten am RAID immer die Adapter-ID mit angibt.
Physical drive parameter -PhysDrv [E:S] Für Kommandos, die mit einem oder mehreren physischen Laufwerken arbeiten, wird der Parameter -PhysDrv [E:S] verwendet. E ist dabei die „enclosure device ID“ in dem die Platte steck und S die Slotnummer (beginnend bei 0). Man kann die „enclosure device ID“ über das Kommando „megacli -EncInfo -aALL“ herausfinden. Die E:S Syntax wird auch verwendet um die Platten zu bestimmen, die in einem neuen RAID verwendet werden sollen.
Virtual drive parameter -Lx Der Parameter -Lx wird verwendet, um ein spezifisches virtuelles Laufwerk auszuwählen (x ist dabei eine Nummer beginnend bei 0 oder „ALL“).
Informationen
Controller Informationen
megacli -AdpAllInfo -aN megacli -CfgDsply -aN megacli -AdpEventLog -GetEvents -f events.log -aALL && cat events.log
Informationen über das Enclosure
megacli -EncInfo -aN
Information über virtuelle Laufwerke (+Raid-Level und Cache-Status)
megacli -LDInfo -Lall -aN megacli -LDGetNum -aN
Informationen zu physischen Laufwerke
megacli -PDList -aN megacli -PDInfo -PhysDrv [E:S] -aN megacli -PDGetNum -aN
Physical Error Counters
megacli -PhyErrorCounters -aN
Infos zu den Controllerbatterien
megacli -AdpBbuCmd -aN megacli -AdpBbuCmd -GetBbuStatus -aN megacli -AdpBbuCmd -GetBbuCapacityInfo -aN
Controller management
aktiven Alarm abschalten
megacli -AdpSetProp AlarmSilence -aN
Alarm deaktivieren
megacli -AdpSetProp AlarmDsbl -aN
Alarm aktivieren
megacli -AdpSetProp AlarmEnbl -aN
Uhrzeit abfragen und setzen
MegaCli –AdpGetTime -aN MegaCli –AdpSetTime yyyymmdd HH:mm:ss -aN
Battery backed unit (BBU) verwalten
Automatischen Learn-Cycle deaktivieren hierzu gibts ein kleines Script
#!/bin/sh TMPFILE=$(mktemp -p /tmp bbu.relearn.off.XXXXXXXXXX) || exit 1 echo "autoLearnMode=1" > $TMPFILE # or =0 to enable the bbu relearn megacli -AdpBbuCmd -SetBbuProperties -f$TMPFILE -aALL rm -f $TMPFILE
aktuellen Status von Auto-Learn abfragen
megacli -AdpBbuCmd -GetBbuProperties -aALL | grep "Auto-Learn Mode:"
manuellen Cycle starten
megacli -AdpBbuCmd -BbuLearn -aALL
CacheCade (SSD-Caching) verwalten
aktuellen Status anzeigen
megacli -LDInfo -LALL -a1
CacheCade einem Array zuweisen
megacli -Cachecade -assign -L1 -a1
CacheCade von einem Array entfernen (deaktivieren)
megacli -Cachecade -remove -L1 -a1
Read Cache, Write Cache, ReadAhead und BBU
Read Cache aktivieren
megacli -LDSetProp -Cached -LAll -aAll
Festplatten Cache deaktivieren
megacli -LDSetProp DisDskCache -LAll -aAll
ReadAhead aktivieren
megacli -LDSetProp ADRA -LAall -aAll
Write Cache aktivieren Write Cache sollte nur aktiviert werden, wenn der Controller über eine BBU verfügt, sonst kann es zu schwerem Datenverlust kommen.
megacli -LDSetProp WB -LAll -aAll
Write Cache deaktivieren
megacli -LDSetProp NoCachedBadBBU -LAll -aAll
Statusabfrage
megacli -LDInfo -LAll -aAll
Physische Laufwerke verwalten
Laufwerk offline schalten
megacli -PDOffline -PhysDrv [E:S] -aN
Laufwerk online schalten
megacli -PDOnline -PhysDrv [E:S] -aN
Als vermisst markieren
megacli -PDMarkMissing -PhysDrv [E:S] -aN
zum Entfernen vorbereiten
megacli -PdPrpRmv -PhysDrv [E:S] -aN
fehlendes Laufwerk ersetzen
megacli -PdReplaceMissing -PhysDrv [E:S] -ArrayN -rowN -aN
Die Zahl N des Array Parameters ist die Referenz auf SPAN, die man über den Befehl „megacli -CfgDsply -aALL“ erhält und der „row“ Parameter ist das physische Laufwerk in diesem Span oder Array beginnend mit der Ziffer 0 (es ist NICHT die Zahl des Slots des physischen Laufwerks!).
Rebuild-Vorgang starten
megacli -PDRbld -Start -PhysDrv [E:S] -aN megacli -PDRbld -Stop -PhysDrv [E:S] -aN megacli -PDRbld -ShowProg -PhysDrv [E:S] -aN
automatischen Rebuild verwalten
# aktuelle Einstellung anzeigen megacli -AdpAutoRbld -Dsply -aN # automatischen Rebuild aktivieren megacli -AdpAutoRbld -Enbl -aN # automatischen Rebuild deaktivieren megacli -AdpAutoRbld -Dsbl -aN
Rebuild-Rate konfigurieren
# aktuelle Einstellungen anzeigen megacli -AdpGetProp RebuildRate -aN # Rebuild-Rate ändern (in Prozent) megacli -AdpSetProp RebuildRate "rate in %" -aN # Rebuild Status zeigen megacli -PDRbld -ShowProg -PhysDrv [E:S] -aAll
ein fehlerhaftes Laufwerk als „OK“ (funktionierend) markieren
megacli -PDMakeGood -PhysDrv [E:S] -aN
Das ändert den Status des Laufwerks von „Unconfigured-Bad“ zu „Unconfigured-Good“.
Blinken der Laufwerks-LED ein-/ausschalten
megacli -PdLocate -start -Physdrv [E:S] -aN megacli -PdLocate -stop -Physdrv [E:S] -aN
Hostspare definieren
# Globales Hotspare: megacli -PDHSP -Set -PhysDrv [E:S] -aN # Dediziertes Hotspare festlegen: megacli -PDHSP -Set -Dedicated -ArrayN -PhysDrv [E:S] -aN
RAID konfigurieren
Hiermit wird ein logisches Laufwerk mit RAID 5 an einem MegaCLI Controller konfiguriert:
# Festplatten anzeigen megacli -PDList -aN | grep -e '^Enclosure Device ID:' -e '^Slot Number:' # RAID konfigurieren megacli -CfgLdAdd -r5 [E:S],[E:S],[...] -aN # Beispiel: megacli -CfgLdAdd -r5 [0:0,0:1,0:2,0:3,0:4,0:5,0:6] -a0
Walkthrough: ein Laufwerk austauschen
Das Laufwerk offline schalten, sofern dies nicht bereits schon durch einen Fehler passiert ist
megacli -PDOffline -PhysDrv [E:S] -aN
Das Laufwerk als vermisst markieren
megacli -PDMarkMissing -PhysDrv [E:S] -aN
Laufwerk fürs Entfernen vorbereiten
megacli -PDPrpRmv -PhysDrv [E:S] -aN
Laufwerk ersetzen Wenn man Hot-Spare Laufwerke einsetzt wird das ersetzte (neue) Laufwerk zum neuen Hot-Spare Laufwerk:
megacli -PDHSP -Set -PhysDrv [E:S] -aN
Sollten keine Hot-Spares eingesetzt werden, muss man das neue Laufwerk dem virtuellen RAID hinzufügen und das Rebuilding manuell starten:
megacli -PdReplaceMissing -PhysDrv [E:S] -ArrayN -rowN -aN megacli -PDRbld -Start -PhysDrv [E:S] -aN
Sollten die neuen Disks nicht erkannt worden sein, kann man auch manuell danach scannen:
megacli -CfgForeign -Scan -aN megacli -CfgForeign -Clear -aN