Klonen Sie den gesamten XEN LVM-Server inklusive aller VMs

Klonen Sie den gesamten XEN LVM-Server inklusive aller VMs

Ich habe einen schnelleren Hetzner-Root-Server bestellt, um meine XEN-Maschine mit allen Volume-Gruppen, LVM-Volumes und VMs dorthin zu verschieben.

Ich habe bereits damit begonnen, dort die gleichen Xen-VMs zu erstellen, Konfigurationsdateien und Benutzerdaten zu kopieren und die gleichen Pakete wie in den alten VMs zu installieren, aber das istviel Arbeit.

Gibt es nicht eine einfache Möglichkeit,Kopieren allesauf der grundlegenden Stammebene, einschließlichalle Partitionen auf dem Raid 1, also bekomme ich eine exakte Kopie meines alten Servers?

Dann müsste ich nur noch die IPs von einer Root-Konsole aus anpassen und ich wäre fertig

Antwort1

xenA: Ihr bisheriger Server

xenB: Ihr neuer Server

Schritt 1: Booten Sie beide Server mit einer Live-Linux-Distribution (Ubuntu, Fedaora, CentOS).

Schritt 2: Starten Sie den SSH-Dienst auf Ihrem neuen Server

Schritt 3: Führen Sie in xenA den folgenden Befehl aus

dd if=/dev/sdX bs=16M | pv |  ssh user@xenB dd of=/dev/sdX

Wobei X die lokalen Festplatten darstellt, die an die Server angeschlossen sind. Sie können sie mit dem Befehl „lsblk“ finden.

Hinweis: pv wird zur Überwachung der Daten verwendet.

Schritt 4: Ändern Sie die IP-Adresse und alle anderen geänderten Parameter.

Bei dieser Methode müssen Sie sich keine Gedanken um Partitionen, LVM-Volumes und das darüber liegende Dateisystem machen.

Ich hoffe, dass diese Methode Ihre Frage beantwortet.

1. Schritt: Starten Sie den Computer im Single-Modus, indem Sie den Boot-Parameter ändern: „vga=785 splash“ mit Linux Single. Die Screenshots finden Sie unter dem folgenden Link.

https://support.citrix.com/article/CTX116019#Resetting%20Password%20in%20XenServer%20Versions%205.0%20and%20Later

  1. Schritt: Starten Sie den Netzwerkdienst auf Ihrem Host im Einzelbenutzermodus und übertragen Sie das genaue Blockgerät auf eine andere Maschine.
 dd if=/dev/sda bs=16M |  ssh user@backuphost dd of=backup.img 

Detaillierte Infos zur Komprimierung finden Sie weiter unten:

Es gibt mehrere Methoden, um dieses Ziel zu erreichen.

  1. dd und netcatACHTUNG: Diese Methode gibt Ihre Daten beim Internethandel preis und kostet Zeit.

Wenn Sie das System mit einem einzelnen Benutzer oder einem anderen Live-Image booten können, können Sie die DD-Methode für die exakte Kopie Ihres Servers verwenden. Dabei ist es zwingend erforderlich, alle Dienste und VMs zu stoppen, um die Datenintegrität sicherzustellen:

  • Bereiten Sie einen Backup-Host vor, indem Sie den folgenden Befehl ausführen (verwenden Sie screen oder tmux oder führen Sie den Befehl zum Forken im Hintergrund aus, wenn Sie mit einem Remote-Backup-Host arbeiten, um SSH-Timeouts zu vermeiden).
nc -l RANDOMPORTNUMBER|bzip2 -d|dd bs=16M of=backup.img
  • Auf Ihrem VM-Host können Sie den folgenden Befehl ausführen, um Ihren genauen Host zu klonen
dd bs=16M if=/dev/sda|bzip2 -c|nc ipaddressofbackuphost RANDOMPORTNUMBER
  1. tar und sshIch persönlich bevorzuge diese Methode, um meine Remote-Rechner bei Bedarf zu sichern. Diese Methode legt Ihre Daten nicht direkt dem öffentlichen Netzwerk offen, da sie SSH verwendet.

Ein weiterer Grund, warum ich diese Methode bevorzuge, ist, dass die Sicherung auf Dateiebene erfolgt und leere Speicherbereiche und Blockgeräte, die nicht gesichert werden müssen, ausgeschlossen werden, wodurch wir Speicherplatz und Datenverkehr sparen. Da Sie erklärt haben, dass Sie einen exakten Klon möchten, musste ich über die erste Methode sprechen.

Bitte vergessen Sie nicht, die ausgeschlossenen Einhängepunkte entsprechend Ihrer Distribution und Anwendung anzupassen. Dies müssen Sie berücksichtigen, wenn Ihnen die Kosten nach Speicher- und Datenvolumen berechnet werden.

cd / # THIS CD IS IMPORTANT THE FOLLOWING LONG COMMAND IS RUN FROM /
tar -cvpzf backup.tar.gz \
--exclude=/backup.tar.gz \
--exclude=/proc \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/dev \
--exclude=/sys \
--exclude=/run \ 
--exclude=/media \ 
--exclude=/var/log \
--exclude=/var/cache/apt/archives \
--exclude=/usr/src/linux-headers* \ 
--exclude=/home/*/.gvfs \
--exclude=/home/*/.cache \ 
--exclude=/home/*/.local/share/Trash / | ssh <backuphost> "( cat > ssh_backup.tar.gz )"

Hier finden Sie weitere ausführliche Informationen zum Thema:

verwandte Informationen