Ich klone also jeden Tag viele Windows-basierte NTFS-Laufwerke von Images und bin mitten in einem Projekt, das mir und anderen möglicherweise dabei helfen könnte, diesen Prozess drastisch zu beschleunigen.
Ich habe derzeit ein Ubuntu 17.10-Setup mit mdadm und 16 SATA-Ports. Die Idee besteht darin, Laufwerke an jeden der SATA-Ports anzuschließen und gleichzeitig einen Klon für alle Ports durchzuführen.
Wenn ich dd jeweils nur auf einem Laufwerk verwende, erreiche ich ein Ergebnis von ungefähr 135 MB/s (max. 180 MB/s), sobald ich jedoch gleichzeitig anfange, andere Laufwerke zu klonen, verringert sich die Geschwindigkeit erheblich.
Dasselbe passiert mit dcfldd, das den zusätzlichen Vorteil hat, dass mehrere of=
Ausgaben angegeben werden können.
Nun... ursprünglich hatte ich die Idee, ein RAID1-Array zu verwenden, das alle Laufwerke enthält, die ich auf einmal klonen möchte. Es scheint jedoch einige Unstimmigkeiten hinsichtlich der RAID-Architektur und der Nutzbarkeit der Laufwerke nach dem Klonen zu geben.
Folgendes habe ich bisher versucht: Ich kann mit mdadm ein Array aus mehreren Laufwerken erstellen und dann mit der Ausführung fortfahren. sudo dd if=/home/clone/some_image.img of=/dev/md0 bs=4096
Dieser Vorgang scheint absolut einwandfrei und mit hervorragenden Geschwindigkeitsergebnissen zu laufen (~110 Mb/s für jedes Laufwerk gleichzeitig). Nachdem der Vorgang abgeschlossen ist, scheinen die Laufwerke die Daten, die wir gerade darauf geschrieben haben, nicht zu enthalten. Mein nächster Schritt wäre, den Superblock auf den Laufwerken auf Null zu setzen, in der Hoffnung, sie wieder in nutzbare Laufwerke umzuwandeln, aber das scheint auch nicht zu funktionieren.
Ich habe sogar versucht, ein neues Array mit einer älteren Superblock-Version (von 1.2 bis 0.9) zu erstellen, aber dies führt zu denselben Ergebnissen wie zuvor.
Es ist, als ob die Laufwerke unabhängig von den darauf gespeicherten Daten immer nur über mdadm erreichbar wären, was diese Idee, auch wenn die ersten Ergebnisse so vielversprechend waren, völlig zum Scheitern bringt.
Daher stelle ich Ihnen folgende Fragen: Gibt es eine Möglichkeit, ein Image in ein RAID1-Array zu schreiben und es dann wieder in einzelne Festplatten umzuwandeln? Gibt es andere Technologien, mit denen ich die Geschwindigkeitsvorteile des Klonens auf RAID1 nutzen kann, ohne RAID zu verwenden oder Tools von Drittanbietern zum Mounten der Laufwerke zu benötigen?
Vielen Dank fürs Lesen.
Antwort1
Nein, das kann nicht funktionieren. Wenn Sie ein Linux-Software-RAID (oder eigentlich ein Hardware-RAID) haben, verfügen Sie über eine externe Verwaltungsstruktur für das erforderliche RAID, die Ihre Festplatte für Ihren Anwendungsfall unbrauchbar macht.
Antwort2
Beim Klonenein einzelnes BildBei mehreren Festplatten müssen Sie sicherstellen, dass Sie alle dd
Instanzen gleichzeitig starten. Auf diese Weise kommen alle Lesevorgänge (außer dem ersten) aus dem Cache und die Quellfestplatte wird nicht überlastet.
Wenn Sie klonenverschiedene BilderIhre Quellfestplatte muss schneller werden und eine geringe Zugriffslatenz aufweisen. Ein einfaches RAID 1 oder 0 reicht dafür wahrscheinlich nicht aus. Eine SSD oder ein größeres RAID mit vielen Festplatten reicht dafür wahrscheinlich aus.