mdadm RAID Fast Setup mit leeren Laufwerken?

9

Ich erstelle einige RAID5-Festplatten als RAID6 mit mdadm neu. Es gibt keine Daten auf den Laufwerken, die mir wichtig sind.

Das Einrichten von RAID dauert eine Weile, um die Form einzurichten. Ich akzeptiere, dass Daten, die gestreift und die Parität berechnet werden müssen, bei diesen Laufwerken jedoch leer sind. Zumindest möchte ich, dass sie als leer betrachtet werden.

Gibt es also eine Möglichkeit, die Paritätsberechnung zu überspringen und mdadm anzuweisen, nur die Superblöcke einzurichten und zu erledigen, oder auf andere Weise, wofür genau wird die ganze Zeit aufgewendet, wenn keine Daten zum Verschieben vorhanden sind?

md3 : active raid6 sdf3[5] sde3[4] sdd3[3] sdc7[2] sdb3[1] sda3[0]
      1953114112 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU]
      [>....................]  resync =  1.3% (6790144/488278528) finish=409.3min speed=19604K/sec

Beachten Sie, dass ich nicht darüber spreche, --assume-cleanwo Sie ein Array aus einem bereits vorhandenen Satz von Festplatten neu erstellen, die ein RAID-Array enthalten, von dem Sie wissen, dass es korrekt ist. Ich spreche von einem Array, das als leer und nicht als korrekt gestreift betrachtet werden sollte.

Nehmen wir für diese Frage an, dass die Geräte mit Nullen vorbestückt sind.

Paul
quelle

Antworten:

8

Sie können verwenden, --assume-cleanaber wenn Sie nicht raid5 (nicht raid6) verwenden und die Festplatten tatsächlich voller Nullen sind, werden beim ersten Ausführen einer Paritätsprüfung Fehler angezeigt, die korrigiert werden müssen. Sie sollten dies also nicht tun. Sie müssen nicht warten, bis die Neusynchronisierung abgeschlossen ist, bevor Sie das Array verwenden können. es tuckert im Hintergrund mit, bis es fertig ist.

psusi
quelle
Danke psusi - das spricht die Frage nicht an.
Paul
2
@ Paul, ähm ... ja, das tut es. Es gibt kein "leeres", das nur synchron oder nicht synchron ist.
Psusi
Es geht nicht auf die Frage ein, die ich stelle. Das xor eines Nullenblocks ist Null. Wenn ich also mdadm sagen könnte, dass der Raum als leer betrachtet werden kann, könnte dies sehr schnell zu Parität führen. Die Parität müsste nur dann richtig berechnet werden, wenn in einen bestimmten Block geschrieben wird. An diesem Punkt spielt es keine Rolle, dass er zuvor "falsch" war. Ich könnte sogar die Festplatte auf Null stellen.
Paul
2
@Paul, wieder gibt es kein "leer". Im Allgemeinen spielt es keine Rolle, dass die Parität auf Streifen, die noch nie geschrieben wurden, falsch ist. Deshalb können Sie mit --assume-clean davonkommen, auch wenn die Festplatten nicht voller Nullen sind, aber die falsche Parität wird es tun erkannt und korrigiert werden, wenn mdadm eine Paritätsprüfung durchführt.
Psusi
2
@ Paul, die Bedeutung von "leer" ist nicht gut definiert. Die meisten Leute verwenden es, um zu bedeuten, dass sie keine Dateien oder ein Dateisystem auf dem Gerät abgelegt haben und nicht wissen oder sich darum kümmern, was es derzeit enthält. Wenn Sie wissen, dass die Festplatten alle voller Nullen sind, ist --assume-clean das, was Sie wollen. Es wird Ihr Wort dafür brauchen, dass alle Festplatten auf Null gesetzt sind und die Parität nicht neu berechnen. Wie Sie bereits erwähnt haben, ist eine Parität von Null für Datenfestplatten aller Nullen korrekt, zumindest für raid5 (nicht für raid6).
Psusi
2

Sie können dies nicht mit einem Software- oder Hardware-RAID tun. Alle Prüfsummen müssen auf die Datenträger geschrieben werden, was einige Zeit in Anspruch nimmt. Sie können es später tun, aber dann müssen die Teile der Festplatte, auf die nicht geschrieben wurde, dies tun, bevor Sie sie verwenden können.

Dies liegt im Wesentlichen daran, dass das RAID-System und die Dateisysteme nichts voneinander wissen. ZFS hat eine Lösung dafür, aber dort sind die RAID-Teile tief in das Dateisystem integriert. Das RAID-Subsystem weiß also tatsächlich, auf welchen Teilen der Festplatten Daten gespeichert werden und welche später verwendet werden können, und schreibt dann die Prüfsummen darauf.

Sie können dem Software-RAID die Durchsatzgeschwindigkeit hinzufügen oder das RAID verwenden, bevor alle Prüfsummen geschrieben wurden, und das Software-RAID dies später für Sie erledigen lassen. Hexe ist das, was @psusi geschrieben hat.

Anders
quelle
Ich verstehe, wie RAID funktioniert. Ich versuche zu verstehen, was mit Prüfsummen auf einer leeren Festplatte geschieht. Prüfsummen müssen jedes Mal berechnet werden, wenn etwas auf die Festplatte geschrieben wird. Daher ist es wenig sinnvoll, sie zu berechnen, bevor Daten vorhanden sind. "Später ausführen" ist sinnvoll, wenn dort nichts vorhanden ist. In diesem Szenario ist kein Dateisystem zu berücksichtigen.
Paul
6
Es sind immer Daten vorhanden. Es mag nicht wichtig oder sinnvoll sein, aber jeder Sektor hat immer einen Wert. (Null ist auch ein Wert!) Die RAID-Implementierung weiß nicht, welche Sektoren wichtige Daten enthalten, daher muss sie alle als wichtig behandeln und ihre Parität berechnen.
Wyzard