MegaRaid SSD Zustandskontrolle

0

Seit kurzem habe ich einen Root Server bei Hetzner mit MegaRAID CLI Controller, an dem 4 SSDs angeschlossen sind. Im Gegensatz zu virtuellen Servern muss man sich hier selbst um die Hardware kümmern, d.h. überprüfen, ob etwas nicht mehr richtig funktioniert. Ein wichtiges Kriterium ist der Zustand der Festplatten / SSDs, da ein Datenverlust das Schlimmste ist, was passieren könnte.

Raid Array

Zuerst sollte man das Raid Array herausfinden, das später bei {4..7} in der For-Schleife definiert wird. Über Komandozeile kann man alle Zustandsinfos für Festplatte / SSD ermitteln lassen. D.h. man probiert nun mittels smartctl (bitte vorher installieren) auf welchem MegaRaid Port Festplatten anliegen (Zahl hinter dem Komma bei megaraid,…):


smartctl -a /dev/sda -d megaraid,4

Zustandsindikator

Für eine SSD wird der Zustand über Media_Wearout_Indicator und z.B. über Reallocated_Sector_Count festgestellt. Der erste Wert beschreibt den Zustand des Laufwerks anhand der bisherigen Lösch-/Schreibzyklen und geht von 100 bis 0. Bei neuen SSDs liegt er also bei 100. Reallocated_Sector_Count gibt den Raw-Wert an, wie viele Blöcke seit der Auslieferung gesperrt wurden, d.h. hinzugekommene Defekte. Beide Werte sagen damit schon alles, was man wissen muss.

Zusätzlich lassen sich wie im unteren Beispiel noch weitere Werte abfragen, die einen guten Kontext zum wichtigsten Wert des Media_Wearout_Indicator liefern. Eine gute Beschreibung findet sich für SSDs auf Thomas Krenn Wiki. Noch ist mir die Rückgabe Old_age nicht ganz klar, aber die wichtigsten beiden Zahlen stehen nach 0x0032.


smartctl -a /dev/sda -d megaraid,4 | grep Media_Wearout_Indicator
smartctl -a /dev/sda -d megaraid,4 | grep Reallocated_Sector_Ct
# Outputs
233 Media_Wearout_Indicator 0x0032   098   098   000    Old_age   Always       -       0
5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       0 

Benachrichtigung per Mail

Da die Abfrage des SSD-Zustands auf Dauer über Kommandozeile etwas anstrengend ist, habe ich mir ein kleines Shell Skript geschrieben, das automatisch via Cron einmal pro Woche eine E-Mail mit den genannten Daten an mich sendet. Einfach die Mail-Adresse mit der eigenen ersetzen und nicht vergessen das richtige Raid Array zu Beginn der For-Schleife zu setzen.


#!/bin/bash

email() {

for i in {4..7}
do
Media=$(smartctl -a /dev/sda -d megaraid,$i | grep Media_Wearout_Indicator) && echo "MegaRAID $i: $Media"
Sector=$(smartctl -a /dev/sda -d megaraid,$i | grep Reallocated_Sector_Ct) && echo "MegaRAID $i: $Sector"
Program=$(smartctl -a /dev/sda -d megaraid,$i | grep Program_Fail_Count) && echo "MegaRAID $i: $Program"
Erase=$(smartctl -a /dev/sda -d megaraid,$i | grep Erase_Fail_Count) && echo "MegaRAID $i: $Erase"
done
}

email | mail -s "Betreff" your@email.de

Verbesserungsvorschläge jederzeit gern!

Leave A Reply

Your email address will not be published.