---
title: "KVM / Libvirt: Virtuelle Maschine zu neuem Server migrieren"
description: "Ein frischer neuer Server mit einem KVM-Hypervisor steht bereit und es sollen bestehende virtuelle Maschinen (VM) vom alten KVM-Hypervisor zu einem neuen KVM-Hypervisor übertragen oder umgezogen werde"
canonical_url: "https://joergboesche.de/aktuelles/kvm-libvirt-virtuelle-maschine-zu-neuem-server-migrieren"
last_updated: "2015-01-08T13:56:39"
---

> Index of every page on this site: [llms.txt](https://joergboesche.de/llms.txt)

# KVM / Libvirt: Virtuelle Maschine zu neuem Server migrieren

- Veröffentlicht: 2015-01-08
- Aktualisiert: 2015-01-08
- Kategorien: Linux & Server
- URL: https://joergboesche.de/aktuelles/kvm-libvirt-virtuelle-maschine-zu-neuem-server-migrieren

> Hinweis: Dieser Beitrag ist über 10 Jahre alt. Inhalte und Versionen können inzwischen veraltet sein.

Ein frischer neuer Server mit einem KVM-Hypervisor steht bereit und es sollen bestehende virtuelle Maschinen (VM) vom alten KVM-Hypervisor zu einem neuen KVM-Hypervisor übertragen oder umgezogen werden. Über die Kommandozeile und dem Tool "virsh" lässt sich der VM-Guest (Gast - Virtuelle Maschine) mit seiner Konfiguration exportieren. Je nach VM-Typ muss unterschiedlich vorgegangen werden. Liegt die Gast-VM als Datei-Container vor, so kann die Datei (z.B. qcow2) direkt zum neuen Server kopiert werden. Handelt es sich um eine Gast-VM auf Basis eines Logical Volume (LVM), muss diese vorher mittels "DD (DiskDump) oder "qemu-img convert" exportiert werden.

Eingerichtet unter Ubuntu 14.04 LTS mit "qemu-system-x86" (QEMU / Libvirt / KVM) in der Version 2.6.x. Die Konfiguration kann je nach Ubuntu-/Debian- und QEMU / Libvirt / KVM-Version abweichen.

_Hinweis: Dies ist keine KVM / Libvirt Live-Migration!_

### Vorgehensweise zur Migration der KVM-Guests zu einem neuen Server

-   Virtuelle Maschine (Guest) herunterfahren
-   Exportieren der Konfigurationen der virtuellen Maschine
-   Kopieren / Transferieren der virtuellen Maschine auf den neuen Server. (z.B. via Rsync oder SCP)
-   Definieren der virtuellen Maschine auf dem neuen KVM-Hypervisor
-   Virtuelle Maschine auf dem neuen KVM-Hypervisor starten
-   Alte virtuelle Maschine löschen

## Export des KVM-Guests auf Datei-Container-Basis

```bash
virsh list --all
virsh shutdown VMNAME
virsh dumpxml VMNAME > /tmp/VMNAME.xml
rsync -tv --progress --stats -e 'ssh -p222' /tmp/VMNAME.xml root@85.10.CC.DD:/tmp/VMNAME.xml
rsync -tv --progress --stats -e 'ssh -p222' /var/lib/libvirt/images/VMNAME.qcow2 root@85.10.CC.DD:/var/lib/libvirt/images/VMNAME.qcow2

virsh undefine VMNAME
rm /var/lib/libvirt/images/VMNAME.qcow2
```

## Export des KVM-Guests auf Logical Volume (LVM)-Basis

```bash
virsh list --all
virsh shutdown VMNAME
virsh dumpxml VMNAME > /tmp/VMNAME.xml

# vg0 : Volume Group name; vm-vmname: Name der virtuellen Maschine (KVM-Guest); -p : Fortschrittsbalken anzeigen
qemu-img convert -f raw /dev/vg0/vm-VMNAME -O raw /tmp/vm-VMNAME.img -p

rsync -tv --progress --stats -e 'ssh -p222' /tmp/VMNAME.xml root@85.10.CC.DD:/tmp/VMNAME.xml
rsync -tv --progress --stats -e 'ssh -p222' /tmp/vm-VMNAME.img root@85.10.CC.DD:/tmp/vm-VMNAME.img

# Auf dem neuen KVM-Hypervisor (Host neu)
lvcreate -n vm-VMNAME vg0
dd if=/tmp/vm-VMNAME.img bs=1M of=/dev/vg0/vm-VMNAME

# Auf dem alten KVM-Hypervisor (Host alt)
virsh undefine VMNAME
rm /var/lib/libvirt/images/VMNAME.qcow2
```

Je nach Konfiguration des neuen KVM-Hypervisors (Server), müssen nachträglich die Einstellungen (SATA-Controller, Network-Device, ...) der virtuellen Maschine geändert werden.

## Sitemap

See the full [sitemap](https://joergboesche.de/sitemap.md) for all pages.
