Ich habe eine einzelne Festplatte, von der ich einen Spiegel erstellen möchte. Nennen wir diese Festplatte sda
. Ich habe gerade eine andere Diskette mit identischer Größe gekauft, die wir anrufen können sdb
. sda
und sdb
haben jeweils eine Partition aufgerufen sda1
und sdb1
.
Wenn ich einen Raid erstelle, möchte ich meinen nicht sda
bereinigen und von vorne beginnen, sondern nur damit beginnen, ihn zu spiegeln sdb
. Mein Gedankengang war zu tun:
mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=1 /dev/sda1
... um das Array ohne sdb
Festplatte zu erstellen , führen Sie dann so etwas wie aus (ich denke den folgenden Befehl laut aus, weil ich nicht sicher bin, wie ich diesen Schritt erreichen soll)
mdadm /dev/md0 --add /dev/sdb1
Hinweis sdb1
wird als ähnlich formatiert angenommensda1
Ist das möglich?
--add
, und Sie müssen vorsichtig sein, aber es ist nicht sehr kompliziert. Siehe Wie richte ich die Festplattenspiegelung in Ubuntu ein? (Ich kann diese Frage wegen der neuen Regeln nicht als Duplikat vorschlagen.)Antworten:
Die einfache Antwort auf die Frage im Titel lautet "Ja". Was Sie jedoch wirklich tun möchten, ist der nächste Schritt, bei dem die vorhandenen Daten gespiegelt werden.
Es ist möglich, die vorhandene Festplatte zu konvertieren, aber es ist, wie erwähnt, aufgrund des Speicherorts der Metadaten riskant. Besser ist es, mit der neuen Festplatte einen leeren (defekten) Spiegel zu erstellen und die vorhandenen Daten darauf zu kopieren. Wenn es dann nicht funktioniert, booten Sie einfach zum nicht gespiegelten Original zurück.
Initialisiere
/dev/sdb1
als erstes das neue/dev/md0
mit einem fehlenden Laufwerk und initialisiere das Dateisystem (ich gehe von ext3 aus, aber die Wahl liegt bei dir)Nun
/dev/sda1
ist höchstwahrscheinlich die Root - Dateisystem (/
) , um für die Sicherheit sollten Sie den nächsten Schritt von einer Live - CD tun, Notfall - CD oder einem anderen startfähiges System , das beide zugreifen kann/dev/sda1
und/dev/md0
obwohl ich erfolgreich dies getan habe durch den Single - User - Modus fallen.Kopieren Sie den gesamten Inhalt des Dateisystems auf
/dev/sda1
zu/dev/md0
. Beispielsweise:Bearbeiten Sie
/etc/fstab
oder stellen Sie auf andere Weise sicher, dass beim nächsten Start/dev/md0
statt gemountet wird/dev/sda1
. Ihr System ist wahrscheinlich so eingestellt, dass es startet,/dev/sda1
und die Startparameter geben dies wahrscheinlich als Root-Gerät an. Wenn Sie also neu starten, sollten Sie dies manuell so ändern, dass sich der Root befindet/dev/md0
(vorausgesetzt, er/dev/sda1
war Root). Vergewissern Sie sich nach dem Neustart, dass das/dev/md0
Gerät nun aktiviert ist (df
) und als beeinträchtigter Spiegel ausgeführt wird (cat /proc/mdstat
). In/dev/sda1
dem Array:Da die Neuerstellung überschreibt
/dev/sda1
, spielt es keine Rolle, welche Metadatenversion Sie verwenden. Machen Sie wie immer bei größeren Änderungen eine vollständige Sicherung (falls möglich) oder stellen Sie zumindest sicher, dass alles, was nicht wiederhergestellt werden kann, sicher ist.Sie müssen Ihre Startkonfiguration neu generieren, um sie
/dev/md0
als Root zu verwenden (sofern/dev/sda1
es sich um Root handelte). Möglicherweise müssen Sie die Konfiguration neu generieren, ummdadm.conf
sicherzustellen, dass sie/dev/md0
immer gestartet wird.quelle
cp
zum Kopieren von Dateisystemen verwenden, da Sie einige Dinge wie feste Links, erweiterte Attribute ... vermissen. Verwenden Sietar
oderrsync
mit den richtigen Optionen. Achten Sie beim Booten einer Live-CD darauf, dass sich die UID-Benutzerzuordnungen unterscheiden (siehe --numeric-owner-Optionen von tar / rsync). Siehe auch clone2fs zum Klonen von extx-Dateisystemen.cp
Beibehalten von Links (-d), Modus, Besitz und Zeitstempeln (-p), zum rekursiven Ausführen (-R) und zum Beibehalten eines Dateisystems (-x) Attribute.rsync -aH --delete /mnt/olddisk/ /mnt/newarray/
ist eine gute Option. Fügen-vih --progress
Sie hinzu, wenn Sie wirklich sehen möchten, was es tut.Sicher, Sie können es erstellen, indem Sie angeben, dass sich die zweite Festplatte aktuell befindet
missing
:quelle
Das kannst du machen. Sie müssen ein bisschen vorsichtig sein, aber das ist nicht gefährlich¹, wenn Sie sehr vorsichtig sind, nichts falsch zu tippen, und keine Fallstricke im Setup verbleiben.
Ich empfehle dringend, keine Manipulationen an einem Live-System vorzunehmen. Dies ist in einigen Fällen möglich, erfordert jedoch besondere Sorgfalt. Booten Sie von einer Live-CD / Live-USB wie Parted oder SystemRescueCD .
Zuerst müssen Sie die Lautstärke ein wenig verkleinern, um Platz für mdraid-Metadaten (den Superblock) zu schaffen. Es gibt mehrere Metadatenformate . Sie müssen eines verwenden, bei dem die Metadaten am Ende der Festplatte stehen. (In einigen Setups haben Sie möglicherweise genug Platz, um den Superblock am Anfang zu platzieren, aber das ist komplizierter und riskanter, also gehe ich darauf ein.)
Sie müssen sicherstellen, dass die letzten 128 KB des Blockgeräts nicht verwendet werden, um Platz für den Superblock zu schaffen. Sie müssen also das Dateisystem verkleinern
/dev/sda1
. Wenn es sich um ein ext2 / ext3 / ext4-Dateisystem handelt, ermitteln Sie die aktuelle Dateisystemgröße mittune2fs /dev/sda1
und führen Sie denresize2fs /dev/sda1 NNN
Befehl aus , wobei NNN die Größe minus 128 KB ist. Sie können dies stattdessen mit Parted tun . Wenn Sie ein extN-Dateisystem verkleinern müssen, müssen Sie es zuerst aushängen. Ein btrfs-Dateisystem kann live verkleinert werden.Wenn Sie sichergestellt haben, dass die letzten 128 KB des Blockgeräts frei sind, rufen Sie
mdadm --create
auf, um ein RAID-1-Volume zu erstellen. Dies berührt keinen Teil des Volumens außer dem Superblock. Anfänglich besteht das Volume aus einer einzigen Komponente: Alle anderen werden als fehlgeschlagen eingestuft. Sie müssen übergeben--level=1
(oder gleichwertig-n 1
) (dieser Ansatz funktioniert nur für RAID-1) und--metadata=0.9
oder--metadata=1.0
(das Standard-Superblock-Format 1.2 versetzt den Superblock in die Nähe des Geräteanfangs, wodurch möglicherweise Daten überschrieben werden). Das Argument für--raid-devices
(-n
) ist die Anzahl der Komponenten (einschließlich der fehlenden) im RAID-Volume.Sie können jetzt das Array aktivieren und weitere Komponenten hinzufügen.
Ein Hinweis zu Bootloadern: Grub2 versteht Linux RAID-1 und kann von dort booten. Bootloader wie Grub1, die RAID nicht transparent verstehen, lesen von Spiegel-Volumes, aber Ihr System bootet nicht, wenn das Laufwerk, von dem der Bootloader liest, ausfällt. Wenn sich das RAID-Volume auf einer Partition befindet, müssen Sie den Bootsektor von Grub auf beiden Laufwerken installieren.
¹ Stellen Sie sicher, dass Sie Backups haben. "Nicht gefährlich" bedeutet "Sie werden sie wahrscheinlich nicht brauchen", nicht "Ihre Daten spielen".
Reposted und leicht angepasst von So richten Sie die Festplattenspiegelung ein (RAID-1)
quelle