DSM: RAID-Array auf Konsistenz prüfen bzw. diese wiederherstellen

DSM: RAID-Array auf Konsistenz prüfen bzw. diese wiederherstellen

Ein Raid-Array speichert die Daten parallel auf mehreren Festplatten, um den Ausfall einzelner Laufwerke kompensieren zu können. Wie man sich denken kann, ist die Konsistenz dieser Daten das A und O. Fällt eine Festplatte aus und die Daten auf den verbleibenden Laufwerken sind fehlerhaft, kann dies zu Problemen führen. Daher sollten die Laufwerke eines Raid-Arrays regelmäßig auf Konsistenz geprüft werden. Leider geschieht dies bei Synology-NAS Systemen nicht. Zumindest nicht regelmäßig. Lediglich beim hinzufügen einer neuen Festplatte wird die Konsistenz sichergestellt. Folgender Artikel zeigt, wie das Dateisystem auf fehlerhafte Blöcke geprüft wird und wie sich diese korrigieren lassen.

Prüfung durchführen

Bis auf die Auswahl beim hinzufügen einer neuen Festplatte bietet DSM keine Möglichkeit, diesen Prozess manuell über die grafische Weboberfläche anzustoßen. Dafür müssen wir uns per SSH auf das NAS verbinden und den Check mittels folgendem Befehl anstoßen:

echo check > /sys/block/mdXXX/md/sync_action

XXX ist durch die Nummer des Arrays zu ersetzen. Auf vielen DiskStations ist beginnt der erste für Festplatten genutzte Array bei der Nummer 2, also md2. Eine Auflistung aller Arrays erhält man über den Befehl

mdadm --examine --brief --scan  --config=partitions

Sollte man verschiedene Arrays besitzen und diese nicht zuordnen können, lassen sich mittels mdadm weitere Informationen zum jeweiligen Array ausgeben.

mdadm --detail /dev/md2

Nachdem der Check gestartet wurde, lässt sich der Fortschritt in der Weboberfläche über Speicher-Manager > Volume einsehen. Das DSM wird nun die Übereinstimmung jedes einzelnen Blockes überprüfen. Abhängig von Anzahl, Größe und Geschwindigkeit der verbauten Festplatten kann dieser Vorgang mehrere Stunden dauern.

Ergebnis einsehen

Auch wenn der Fortschritt in der Weboberfläche dargestellt wird, findet sich dort nicht das Ergebnis des Scans. Dies wird in der Datei

/sys/block/mdXXX/md/mismatch_cnt

abgelegt und kann mittels echo ausgegeben werden:

NAS> cat /sys/block/md2/md/mismatch_cnt
136325888

Wie man sieht, haben sich auf diesem NAS einige inkonsistente Blöcke eingeschlichen. Diese sollten behoben werden, um beschädigte oder gar unbrauchbare Dateien zu verhindern.

Fehler korrigieren

Um diese Fehler zu reparieren, führen wir folgenden Befehl aus:

echo repair > /sys/block/mdXXX/md/sync_action

Auch hier variiert die Dauer je nach Größe des Arrays und kann im Speicher-Manager eingesehen werden:

Nach Abschluss des Vorganges kann man durch erneute Ausgabe der Datei mismatch_cnt das Ergebnis einsehen:

NAS> cat /sys/block/md2/md/mismatch_cnt
0

Hat alles geklappt, wird dieser Zähler auf 0 gesetzt – Zumindest, sofern es während der Überprüfung zu keinen neuen Fehlern kommt. Dieser Vorgang findet ja während des Live-Betriebs statt, sodass man sein NAS während dieser Vorgänge verwenden kann. Eine Offline-Überprüfung mittels fsck wäre alternativ natürlich auch möglich, nachdem die Partition ausgehangen wurde.

Wie zuvor bereits erwähnt, sollten Raid-Arrays regelmäßig auf Konsistenz geprüft werden. Ist dabei regelmäßig eine hohe Fehleranzahl festzustellen oder die Fehler lassen sich nicht über die eben gezeigte Repair-Funktion korrigieren, liegt wahrscheinlich ein Hardware-Problem an mindestens einer Festplatte vor. In diesem Falle sollte ein Austausch in Betracht gezogen werden.

Leave a Reply