Mit dem folgenden Befehl habe ich aus sechs Festplatten ein mdadm-basiertes RAID 5 erstellt:
# mdadm --create /dev/md0 --level=5 --raid-devices=5 \
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 \
--spare-devices=1 /dev/sdg1
Ich habe erwartet, dass das Array ein Ersatzlaufwerk hat, nämlich / dev / sdg1. Die Überprüfung mdadm --detail
zeigt jedoch 2 Ersatzteile:
# mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 spares=2 name=...
Die Array-Größe df
beträgt 2 TB, was nur vier meiner 500-GB-Laufwerke entspricht.
Was genau ist die Semantik von --spare-devices
? In der Manpage heißt es, dass "die Anzahl der Ersatzgeräte (eXtra) im ursprünglichen Array angegeben wird". Dies scheint hier jedoch nicht der Fall zu sein.
mdadm
software-raid
jstarek
quelle
quelle
mdadm --detail
einschließlich des Paritätslaufwerks in der Anzahl der "Ersatzteile".) Sie können dies überprüfen, indem Sie ein RAID 6-Array ohne Ersatzlaufwerk erstellen. Wenn meine Theorie zutrifft, wird auch Ersatzteile = 2 angezeigt.cat /proc/mdstat
), werden SieAntworten:
Diese Ausgabe ist korrekt. Sie haben ein RAID 5 mit 5 Festplatten erstellt (nur 4 davon werden für den Speicherplatz "verwendet"). Und Sie haben ein zusätzliches Ersatzlaufwerk hinzugefügt.
Sie haben also tatsächlich ein RAID 5, das einen Festplattenausfall + ein zusätzliches Ersatzlaufwerk zulässt.
Wenn Sie tatsächlich RAID 5 mit 6 Festplatten und einem Speicherplatz von 5 Festplatten möchten, müssen Sie Ihren Befehl ändern in:
In diesem Fall können Sie jedoch nur einen Festplattenfehler gemäß den Spezifikationen von RAID 5 tolerieren.
BEARBEITEN: Hinzufügen des Links von der offiziellen RAID-Seite: Sie können einen RAID 5 mit 6 Festplatten sehen und es heißt Spare = 1: Initial Array Creation
UPDATE: Ich habe beschlossen, einen RAID 5 in meinem System zu erstellen, und der Ersatzwert verschwindet, sobald sich das Array in einem sauberen Zustand befindet:
Sauberer Zustand:
So wie es der OP-Kommentar ist, hat es während der ersten Erstellung von RAID 5 das Ersatzlaufwerk, bis der RAID-Build / die Synchronisierung abgeschlossen ist.
quelle
Aus Gründen der Klarheit werde ich die Informationen von Derobert und Alexandre Alves sowie einige weitere Tests von mir hier zusammenfassen:
mdadm
Der--spare-devices
Parameter von ' funktioniert wie in der Manpage angegeben, dh er definiert die Anzahl der "Hot Spare" -Laufwerke in einem Array. Ein "Hot Spare" hat, wie in der normalen RAID-Terminologie, nichts mit den zusätzlichen Laufwerken in einem RAID 5- oder RAID 6-Array zu tun - es ist ein zusätzliches Laufwerk, das die Kontrolle übernehmen soll, sobald sich ein Laufwerk im Array befindet ist fehlgeschlagen.Die Anzahl der Ersatzlaufwerke wird zum Zeitpunkt der Array-Erstellung angegeben. Später kann es mit überprüft werden
#mdadm --detail --scan
.Doch während der kurzen Zeit der Initialisierung eines mdadm-basierte RAID - 5, es ist eine Optimierung, in beschrieben https://raid.wiki.kernel.org/index.php/Initial_Array_Creation , dass ein zusätzliches Ersatzlaufwerk macht erscheint in die Ausgabe dieses Befehls:
"Für raid5 gibt es eine Optimierung: mdadm nimmt eine der Festplatten und markiert sie als 'Ersatz'; dann erstellt es das Array im herabgesetzten Modus. Der Kernel markiert die Ersatzfestplatte als 'Neuaufbau' und beginnt, aus dem 'Guten' zu lesen. Festplatten, berechnen die Parität und bestimmen, was auf der Ersatzfestplatte sein soll, und schreiben dann einfach darauf. "
Nach Abschluss der Array-Initialisierung wird die Anzahl der gemeldeten Ersatzteile auf die zum Zeitpunkt der Erstellung ausgewählte Anzahl zurückgesetzt.
quelle