Ich fange an, eine Sammlung von Computern zu Hause zu bekommen und um sie zu unterstützen, habe ich meine "Server" -Linux-Box, auf der ein RAID-Array ausgeführt wird.
Es ist momentan so mdadm
RAID-1
, RAID-5
sobald ich mehr Laufwerke habe (und dann RAID-6
hoffe ich es). Ich habe jedoch verschiedene Geschichten über Daten gehört, die auf einem Laufwerk beschädigt wurden, und Sie haben es nie bemerkt, weil das andere Laufwerk verwendet wurde, bis das erste Laufwerk ausfällt und Ihr zweites Laufwerk ebenfalls verschraubt ist (und 3., 4.) , 5. Fahrt).
Offensichtlich sind Backups wichtig, und ich kümmere mich auch darum, aber ich weiß, dass ich zuvor Skripte gesehen habe, die behaupten, gegen dieses Problem zu helfen und es Ihnen ermöglichen, Ihr RAID zu überprüfen, während es ausgeführt wird. Auf der Suche nach diesen Skripten fällt es mir jedoch schwer, irgendetwas zu finden, das dem, was ich zuvor ausgeführt habe, ähnelt, und ich fühle mich veraltet und verstehe nicht, was sich geändert hat.
Wie würden Sie ein laufendes RAID überprüfen, um sicherzustellen, dass alle Festplatten weiterhin ordnungsgemäß funktionieren?
Ich überwache SMART auf allen Laufwerken und mdadm
möchte mich bei einem Ausfall per E-Mail benachrichtigen. Ich möchte jedoch wissen, dass sich meine Laufwerke gelegentlich auch selbst überprüfen.
Antworten:
Der Sinn von RAID mit Redundanz ist, dass es so lange wie möglich weiterarbeitet, aber offensichtlich Fehler erkennt, die es in einen herabgesetzten Modus versetzen, z. B. eine fehlerhafte Festplatte. Sie können den aktuellen Status eines Arrays anzeigen mit
mdadm -D
:Außerdem ist der Rückgabestatus von
mdadm -D
ungleich Null, wenn ein Problem vorliegt, z. B. eine ausgefallene Komponente (1 zeigt einen Fehler an, den der RAID-Modus kompensiert, und 2 zeigt einen vollständigen Fehler an).Sie können auch eine kurze Übersicht über den Status aller RAID-Geräte anzeigen
/proc/mdstat
. Sie können auch Informationen zu einem RAID-Gerät abrufen/sys/class/block/md*/md/*
. SieheDocumentation/md.txt
in der Kernel-Dokumentation. Einige/sys
Einträge sind auch beschreibbar. Sie können zum Beispiel eine vollständige Überprüfungmd0
mit auslösenecho check >/sys/class/block/md0/md/sync_action
.Zusätzlich zu diesen Stichproben kann mdadm Sie benachrichtigen, sobald etwas Schlimmes passiert. Stellen Sie sicher, dass Sie
MAILADDR root
in/etc/mdadm.conf
(einige Distributionen (zB Debian) dies automatisch eingerichtet haben). Sie erhalten dann eine E-Mail-Benachrichtigung, sobald ein Fehler (ein herabgesetztes Array) auftritt .Stellen Sie sicher, dass Sie E-Mails empfangen, die auf dem lokalen Computer an root gesendet werden (einige moderne Distributionen lassen dies aus, da sie der Ansicht sind, dass alle E-Mails über externe Anbieter gesendet werden - der Empfang lokaler E-Mails ist jedoch für jeden seriösen Systemadministrator erforderlich). Testen Sie dies durch root eine Mail zu senden:
echo hello | mail -s test root@localhost
. Normalerweise erfordert eine ordnungsgemäße E-Mail-Einrichtung zwei Dinge:Leiten Sie E-Mails an Systemkonten (mindestens
root
) an eine Adresse weiter, die Sie regelmäßig lesen. Dies kann Ihr Konto auf dem lokalen Computer oder eine externe E-Mail-Adresse sein. Bei den meisten MTAs kann die Adresse in konfiguriert werden/etc/aliases
. du solltest eine Zeile haben wiefür die Lieferung vor Ort oder
für die Fernzustellung. Wenn Sie sich für die Remotezustellung entscheiden, stellen Sie sicher, dass Ihr MTA dafür konfiguriert ist. Abhängig von Ihrem MTA müssen Sie den
newaliases
Befehl möglicherweise nach der Bearbeitung ausführen/etc/aliases
.quelle
Sie können eine Überprüfung des gesamten Arrays erzwingen, während es online ist. Um beispielsweise das Array zu überprüfen
/dev/md0
, führen Sie Folgendes als root aus:Ich habe auch einen Cron-Job, der den folgenden Befehl einmal im Monat ausführt:
Es ist keine gründliche Überprüfung des Laufwerks selbst, aber es zwingt das System, regelmäßig zu überprüfen, ob (fast) jede Datei erfolgreich von der Festplatte gelesen werden kann. Ja, einige Dateien werden aus dem Speichercache anstatt von der Festplatte gelesen. Wenn sich die Datei jedoch im Arbeitsspeicher befindet, wurde sie kürzlich erfolgreich von der Festplatte gelesen oder wird in Kürze auf die Festplatte geschrieben. In beiden Fällen werden auch Laufwerksfehler aufgedeckt. Auf jeden Fall testet die Ausführung dieses Jobs das wichtigste Kriterium eines RAID-Arrays ("Kann ich meine Daten erfolgreich lesen?"), Und in den drei Jahren, in denen ich mein Array ausgeführt habe, war es das eine Mal, als eine Festplatte kaputt ging dieser Befehl, der es entdeckt hat.
Eine kleine Warnung ist, dass dieser Befehl lange dauern wird, wenn Ihr Dateisystem groß ist. Mein System benötigt ca. 6 Stunden / TiB. Ich
ionice
führe es mit aus, damit der Rest des Systems während der Laufwerksprüfung nicht zum Stillstand kommt:quelle
ionice
nur funktioniert, wenn Sie den (Standard-) CFQ-E / A-Scheduler verwenden.Das Debian- und Ubuntu-Paket 'mdadm' enthält die Datei
Der Befehl wird abwechselnd am ersten Sonntag eines jeden Monats ausgeführt
Dadurch werden alle Arrays auf Konsistenz überprüft (es sei denn, Sie setzen AUTOCHECK in / etc / default / mdadm auf false ). Ein Bericht wird an den Benutzer "root" gesendet (stellen Sie sicher, dass Sie solche E-Mails erhalten).
quelle
Mit dieser einfachen Funktion überprüfe ich
/proc/mdstat
:quelle