Raid 1 ist ein Spiegel und hängt davon ab, dass alle Festplatten in einem Spiegel exakte Kopien voneinander sind. Nehmen Sie Ihre zufällige Festplatte und eine andere zufällige Festplatte, und Sie haben dort möglicherweise andere Daten, was gegen diese Vermutung verstößt. Aus diesem Grund ist eine Initialisierung erforderlich. Es kopiert einfach den Inhalt des ersten Laufwerks auf andere. Beachten Sie, dass Sie unter bestimmten Umständen davonkommen können, die Laufwerke nicht zu initialisieren - normalerweise haben werkseitig neue Geräte bereits überall Nullen, sodass Sie dies einfach ignorieren können. Die mdadm
Option --assume-clean
tut dies, warnt Sie jedoch:
--assume-clean
Teilen Sie mdadm mit, dass das Array bereits vorhanden war und als sauber bekannt ist. Dies kann hilfreich sein, wenn Sie versuchen, einen schwerwiegenden Fehler zu beheben, da Sie sicher sein können, dass keine Daten betroffen sind, es sei denn, Sie schreiben tatsächlich in das Array. Es kann auch beim Erstellen eines RAID1 oder RAID10 verwendet werden, wenn Sie die anfängliche Neusynchronisierung vermeiden möchten. Diese Vorgehensweise wird jedoch - obwohl sie normalerweise sicher ist - nicht empfohlen. Verwenden Sie dies nur, wenn Sie wirklich wissen, was Sie tun.
Wenn Sie dies nicht tun, besteht eine Diskrepanz zwischen den Laufwerken und dem gelesenen Laufwerk. Es ist nicht bekannt, was das Laufwerk lesen wird. Sie sollten mit einem Dateisystem ziemlich sicher sein (siehe Hinweis unten), da Sie höchstwahrscheinlich schreiben werden, bevor Sie etwas von diesem Gerät lesen, und dann sind Sie klar.
Beachten Sie, dass mindestens Linux mdadm
das Array im Hintergrund initialisiert. Sie können FS in der ersten Sekunde glücklich darüber erstellen. Die Leistung wird leiden, bis die Initialisierung abgeschlossen ist, aber das ist alles.
Aber:
a) mkfs
Überprüfen Sie bei einigen Dienstprogrammen, ob sich bereits etwas auf diesem Laufwerk befindet. Während dies nur einige bekannte Laufwerksbereiche berührt, wird es gelesen, bevor Sie etwas schreiben, wodurch Sie in Gefahr geraten.
b) Wenn Sie Ihr Array regelmäßig neu synchronisieren, kennt das RAID-Gerät nichts von Ihrem FS. Es liest einfach jeden Block von jedem Gerät und vergleicht diese. Und wenn Sie kein Copy-on-Write-FS (z. B. ZFS oder BTRFS) verwenden und Ihr FS niemals füllen, ist es durchaus plausibel, dass ein Block aus FS-Sicht jahrelang nicht initialisiert bleibt.
Warum erneut mit RAID1-Geräten synchronisieren?
Aus dem gleichen Grund synchronisieren Sie erneut mit RAID5-Geräten oder einem anderen Level (außer RAID0). Es liest alle Daten und vergleicht / überprüft RAID-Prüfsummen (in RAID 5 oder 6). Wenn ein Bit in irgendeiner Weise umgedreht wurde (weil der HD-Speicher spontan umgedreht wurde, weil die Handys von Ihnen und Ihren 5 Nachbarn versehentlich in diesen bestimmten Bereich der Platte eingegriffen haben, was auch immer), erkennt es Inkonsistenzen, kann dies jedoch nicht dir helfen. Wenn, OTOH, eine der Festplatten einfach "Ich kann diesen Block nicht lesen" meldet, was bei einem fehlerhaften Laufwerk wahrscheinlicher ist, haben Sie gerade einen Fehler frühzeitig erkannt und die Zeit verkürzt, die Sie im verschlechterten Modus ausführen (Zählen ab der Laufwerksfehler, nicht ab dem Zeitpunkt, an dem Sie ihn bemerken). Raid hilft dir nicht, wenn ein Laufwerk ausfällt und einen Monat später das andere ausfällt, wenn du es nicht tust.
RAID10
Für RAID10 gilt nun alles oben Genannte. Immerhin ist RAID10 nur eine clevere Art zu sagen, dass ich meine beiden RAID1-Geräte in ein RAID0-Paar stecke.
Vorbehalt:
Das ist alles undefiniertes Verhalten. Warum ich unter Linux überprüft habe, verwenden mdadm
andere Software-RAID-Implementierungen möglicherweise anders. Andere Versionen des Linux-Kernels und / oder mdadm
-Tools als die von mir verwendeten verhalten sich möglicherweise auch anders.