Ich möchte meine vorhandene Root-Partition (und einzige Partition auf einer SSD) auf eine andere Festplatte spiegeln. Es sollte eine Art RAID-1 sein, nur asymmetrisch * . Ich weiß, dass es die Option gibt mdadm --write-behind
, die es tun sollte.
Ich habe jedoch keine Ahnung, ob es möglich ist, den Kontext der vorhandenen Partition beizubehalten. Ich stelle es mir vor
- Erstellen Sie die "Slave" -Partition
- Richten Sie das RAID so ein, dass die Slave-Partition nicht initialisiert wird
- Lassen Sie es initialisieren, indem Sie die Master-Partition klonen
aber ich bin wahrscheinlich zu optimistisch, nicht wahr?
* Alle Lesevorgänge sollten auf die erste Festplatte zugreifen, und Schreibvorgänge sollten beim Schreiben der ersten Festplatte als abgeschlossen betrachtet werden.
software-raid
Maaartinus
quelle
quelle
mdadm --create
während er versucht hat, dasselbe zu erreichen. Ich weiß nicht, wie ich es richtig machen soll, aber das ist nicht der Weg.mdadm --create
auf einer vorhandenen Festplatte ausgeführt werden, solange Sie eine Superblock-Version auswählen, die bis zum Ende der Festplatte reicht, und das Dateisystem entsprechend verkleinern.Antworten:
Sie können ein mdraid RAID-1-Array erstellen, das mit einer vorhandenen Partition beginnt. Zunächst müssen Sie Platz für den Superblock mdadm schaffen, was bedeutet, dass Sie Ihr Dateisystem ein wenig verkleinern müssen.
Im Moment ist das normale Superblock-Format 0,9 . Der Speicherort liegt zwischen 128 KB und 60 KB vom Ende der Partition entfernt, ist 4 KB lang und beginnt mit einer Adresse, die ein Multible von 64 KB ist. Verkleinern Sie Ihr Dateisystem also um 128 KB oder genauer auf ((device_size mod 64kB) - 1) * 64kB.
Wenn Sie mehr als 2 TB pro Streifen möchten, benötigen Sie das Superblock-Format 1.0 , das noch nicht von allen Distributionen standardmäßig unterstützt wird. Der 1.0-Superblock befindet sich am Ende des Geräts. Ich verstehe, dass Sie Ihr Dateisystem nur um 8 KB verkleinern müssen.
Nachdem Sie das Dateisystem verkleinert haben, können Sie das Array erstellen. Erstellen Sie zunächst ein verschlechtertes Array mit nur den vorhandenen Daten. Stellen Sie sicher, dass das Dateisystem zu diesem Zeitpunkt noch nicht bereitgestellt ist. Für Ihren Anwendungsfall muss sich die Bitmap mit Schreibabsicht auf einer separaten Partition befinden. Verwenden Sie
-e 1.0
diese Option , um das neuere Superblock-Format der Version 1 zu verwenden.Jetzt können Sie das Dateisystem in mounten
/dev/md0
. Fügen Sie nach Belieben die zweite Festplatte hinzu. Die Daten werden im Hintergrund auf das neue Laufwerk kopiert.Ich habe ein gespiegeltes Array wie dieses erstellt, jedoch ohne Rückschreibemodus. Ich glaube nicht, dass der Write-Behind-Modus die Prozedur ungültig machen würde.
quelle
mdadm --readwrite --re-add /dev/sdb1
* unter--bitmap
, das man verwenden kann--grow /dev/md0 --bitmap=none
. Übrigens scheint das 1.0-Format mittlerweile eher "standardisiert" zu sein.Ich habe eine Idee. Ich habe dies mit kleinen Dateisystemen auf Loop-Geräten getestet. Ich empfehle Ihnen, dasselbe zu tun, bevor Sie es selbst ausprobieren. In dieser Antwort ist / dev / sda Ihre Festplatte mit den wichtigen Daten und / dev / sdb ist die neue leere Festplatte.
Erstellen Sie ein verschlechtertes RAID1-Array von der leeren Festplatte . Das ist wichtig!
Verkleinern Sie dann das Dateisystem auf der Festplatte, die Sie spiegeln möchten. (Hoffentlich wird es unterstützt.) Dies ist erforderlich, da die RAID-Arrays einen Header haben und das vollständige Dateisystem nicht auf das Array passt.
Kopieren Sie die Daten in das neue verschlechterte Array .
Fügen Sie die ursprüngliche Festplatte zum Array hinzu.
Sie können den Synchronisierungsfortschritt verfolgen.
quelle