Der schnellste Weg, eine ext4-formatierte Festplatte mit ext4 in LVM zu konvertieren?

12

Momentan cp -aRkopiere ich Daten von meiner (99% vollen) ext4-formatierten 1-TB-Festplatte auf eine neue LVM-with-ext4-on-it-Festplatte. Das dauert ewig.

Gibt es eine Möglichkeit, zu versuchen, die Festplatte an Ort und Stelle zu "konvertieren"? Ich bin auf EC2, das Sichern dauert also Minuten.

Oder gibt es eine Möglichkeit, die möglicherweise schneller ist, als cpdas ext4-Dateisystem direkt auf die LVM-Festplatte zu kopieren?

Max
quelle

Antworten:

22

Ich habe Blöcke geschrieben (geb. lvmify), die diese Konvertierung direkt durchführen. Dazu wird das Dateisystem etwas verkleinert, der Anfang des Dateisystems an das Ende der Partition verschoben und stattdessen ein LVM-Superblock (vorkonfiguriert mit der richtigen PV / LV / VG) kopiert.

Gabriel
quelle
Das klingt wirklich interessant! Ich denke gerade daran, meine 500 GB auf die andere Partition zu sichern (das ist bereits lvm), um es zu versuchen!
Aquarius Power
1
@ Gabriel, wird das auf Live-Fs funktionieren? Ich meine, muss ich den FS aushängen, und dann macht es an Ort und Stelle, oder wird es sogar auf AR / W-gemounteten Root-FS funktionieren?
Gavriel
1
@ AmrMostafa: "Ziemlich" solide? Ich habe dieses Ding über meine Dateisysteme, ich brauche sie, um absolut solide zu sein ... :-)
TJ Crowder
3
Ubuntu Trusty + Benutzer werden es schwer finden, den benötigten Python 3.3 zu installieren. Nur 3.4 ist verfügbar und die Blöcke wurden seit Dezember 2014 nicht aktualisiert: /
bksunday
1
Trotz der Tatsache, dass es vor 5 Ohren aktualisiert wurde, arbeitet es stahl. Bestätigt auf NVMe SSD, GPT-Partitionsschema. Hinweis: Verwenden Sie besser Python 3.6.
tosh
2

Ich bin mir nicht sicher, wie ich die Festplatte live konvertieren soll, aber ich denke, Rsync wird eine bessere und sicherere Möglichkeit sein, Ihre Daten zu kopieren. Auf diese Weise können Sie die Übertragung fortsetzen und die Daten intakt halten, falls die Übertragung stoppt.

Ein ähnlicher Vorgang wurde von jemandem ausgeführt, der seinem lokalen System ein externes Laufwerk als LVM hinzufügte. Es gibt nicht viele Informationen, aber ich denke, es wird ausreichen, um den Anfang zu machen:

"Also habe ich heute festgestellt, dass LVM großartig ist. Bei der Installation von Debian habe ich" LVM - Use whole disk "ausgewählt. Das Hauptlaufwerk war jedoch ein langsames und kleines Laptop-Laufwerk mit 5200 U / min. Heute habe ich mein Ersatzlaufwerk mit 1,5 TB eingelegt und gebootet. Gesucht das System auf diesem größeren schnelleren Laufwerk statt.

LVM-Ansatz: Fügen Sie / dev / sdc zur Datenträgergruppe hinzu und führen Sie dann "pvmove / dev / sda" aus. Dies verschiebt alle Daten von SDA auf andere Laufwerke (nur SDC verfügbar). Kein Neustart, kein Abmelden. Während ich dies schreibe, werden die Daten verschoben.

Führen Sie später "vgreduce megatron / dev / sda" aus, um das langsame Laufwerk aus der Volumengruppe und der Voila zu entfernen. Daten verschoben. (Megatron ist der Name der Volumengruppe und meines Computers). Dies mag für viele eine alte Nachricht sein, aber ich fand das einfach wirklich cool :) "

Zugegeben, dies wurde vor Ort durchgeführt, aber ich denke, mit zusätzlichen Nachforschungen können Sie dies möglicherweise korrigieren.

Quelle

bmurtagh
quelle
2

Es gibt keine Methode, um eine solche LVM-Konvertierung "on the fly" durchzuführen.

LVM befindet sich tatsächlich unter Ihrem Dateisystem, um es auf mehrere physische Geräte zu erweitern, zu streifen oder zu spiegeln usw. Der letzte Schritt beim Erstellen eines logischen Volumes besteht darin, ein Dateisystem darüber zu legen. Hier sind Beispiele aus RHEL6.

Sie müssen lediglich die Daten auf diesem Gerät sichern oder archivieren, dann das vorhandene Dateisystem zerstören, ein logisches Volume erstellen und ein Dateisystem neu aufbauen. Wenn es sich um ein Root-Dateisystem unter einem Linux-Betriebssystem handelt, sollten Sie eine Neuinstallation in Betracht ziehen. Es kann schneller sein.

Für schnellere Kopien bin ich gern dd, aber ich benutze es nicht oft. Fehler zu machen ddist gefährlich. Sie können versuchen tar czv <source fs> | (cd <destination fs>; tar x), eine komprimierte TAR-Datei im laufenden Betrieb zu übertragen.

Viel Glück!

dafydd
quelle
1
Die Komprimierung in der Teeroperation ist überhaupt nicht sinnvoll. Der einzige Ort, an dem die Daten komprimiert werden, ist der Speicherplatz, an dem sie weitergeleitet werden. Es wird dann sofort wieder dekomprimiert, bevor es auf die Festplatte geschrieben wird. Erst jetzt generiert der Vorgang die mehrfache CPU-Auslastung, da er im laufenden Betrieb unbrauchbar komprimiert und dekomprimiert. Für jede Operation wie diese, an der ganze Dateisysteme beteiligt sind, sollten Sie zumindest tar cSf - | tar xvpf - spärliche Dateien und Berechtigungen verwalten. Möglicherweise --selinuxauch (wenn das Ziellaufwerk anschließend die Quelle ersetzt).
FeRD
Dies ist ein guter Punkt, wenn sich Ihre Quell- und Zielgeräte auf demselben Host befinden oder wenn Sie keine CPU-Zyklen zur Verfügung haben. Dies sind Punkte, die von Fall zu Fall zu prüfen sind. Ich mag die Schalter "S" und "p" und das Argument "--selinux".
Dienstag,
Mmmm, wenn jemand ein Dateisystem klont, indem er einen laufenden Teer-Vorgang über eine Netzwerkverbindung weiterleitet, dann (a) sind sie eine mutigere Seele als ich, aber (b) möchten Sie vielleicht NICHT, es -psei denn, die Hosts teilen Benutzernamen / UIDs (obwohl die Manpage mich daran erinnert, dass dies -pdie Standardeinstellung für GNU tar ist, wenn es als root ausgeführt wird) und --selinuxmit noch mehr Gefahren behaftet sind - wahrscheinlich ist es besser, einfach ein restorecon -Rv(oder -Rp) über das Ganze zu machen, sobald es in der richtigen (finalen) Version gemountet ist ) Lage.
FeRD
dd ist das richtige Werkzeug für diesen Vorgang, da Sie eine Partition kopieren. dd erstellt eine exakte Kopie der neuen Partition. Anschließend wird die fstab von der neuen Partition anstelle der alten Partition geladen. Wenn Sie alle Partitionen vom alten Laufwerk entfernt haben, können Sie das Dateisystem zerstören und das Laufwerk der Gruppe der physischen LVM-Festplatten hinzufügen. Verwenden Sie dann den Speicherplatz, um die Partitionen nach Ihren Wünschen zu erweitern.
Xalorous