Hetzner - DokuWiki

How to migrate vServers to Cloud

Inhaltsverzeichnis

Migration von vServern auf Cloud

Bestehende VQ/VX/CX vServer können auf CX Cloud Server migriert werden.

Ablauf Migration:

  1. Erstellung eines vergleichbaren oder besseren CX Cloud Servers
  2. Beide Systeme ins Rescue booten und Dateisysteme mounten
  3. Mit rsync die Synchronisation anstoßen

Hinweise

Folgende Betriebssysteme werde nicht unterstützt.

  • Debian 6 und älter
  • Ubuntu 11.10 und älter
  • CentOS 5.6 und älter
  • OpenSuse 11.4 und älter

Für diese Betriebsysteme muss vor der Migration ein Upgrade durchgeführt werden, sonst startet der Cloud Server nicht.

Rescue auf beiden Systemen aktivieren

Damit die Dateien auch sicher übertragen werden können, müssen sich beide Server im Rescue befinden.Im Robot wird für den VQ/VX/CX vServer das Rescue aktiviert und anschließend im "vServer" Tab der Server resettet.

Dies wird auch in der Cloud Console gemacht, nur dass der Reset gleich mit dem Aktivieren des Rescues geschieht.

Mounten des Dateisystems

Nachdem das Rescue gestartet ist, muss das Dateisystem eingebunden werden, um die Dateien auch synchronisieren zu können.

Auf dem VQ/VX/CX vServer variieren die Controller. Um die Partitionen richtig einzubinden, müssen diese abgerufen werden.

$ fdisk -l

Eingebunden wird das Dateisystem wie folgt:

$ mount /dev/XXXY /mnt

Hierbei muss das XXX durch das ersetzt werden, was bei fdisk ausgegeben wurde. Das Y ist die Partitions-ID. Wenn mehrere Partitionen vorhanden sind, müssen diese eingebunden werden, wie bei der Installation angegeben.

Die SWAP-Partition wird unter Type angezeigt. Diese kann wie folgt eingebunden werden:

$ swapon /dev/XXXY

Falls eine Boot-Partiton vorhanden ist, muss zuerst die Hauptpartition eingebunden werden und danach die Boot-Partition. Die Boot-Partition ist meist die kleinste Partition von allen.

Der Einhängepunkt für die Boot-Partition ist /mnt/boot.

Auf dem Cloud Server erfolgt die Einbindung des Dateisystems erst später.

Umstellung auf DHCP

Debian/Ubuntu

Editieren von /mnt/etc/network/interfaces

Zeilen wie z.B. auto ens3, iface ens3 inet static müssen entfernt werden.

auto eth0
iface eth0 inet dhcp
iface eth0 inet6 static
    address
    netmask 64
    gateway fe80::1

Weitere Zeilen wie address, netmask und gateway müssen im IPv4 Teil (unter iface eth0 inet dhcp) entfernt werden.

CentOS und openSUSE

rm /mnt/etc/sysconfig/network-scripts/route-eth0

Editieren von /mnt/etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=dhcp

Die Zeilen IPADDR, NETMASK, SCOPE und BROADCAST müssen entfernt werden.

Arch Linux

Wenn die Installation von Arch Linux über das ISO oder das installimage getätigt wurde, wird systemd-network genutzt.

Editieren von /mnt/etc/systemd/network/network/10-ens3.network (Dies kann auch 10-eth0.network sein!)

[Match]
Name=eth0
[Network]
DHCP=ipv4

Die Zeilen Address und Gateway müssen entfernt werden.

Entfernung der udev-Regel der Netzwerkkarte

Da jeder vServer eine andere MAC Adresse besitzt, muss vor dem Export die udev-Regel entfernt werden, damit der neuen Netzwerkkarte beim Import ebenfalls eth0 zugewiesen wird.

rm /mnt/etc/udev/rules.d/70-persistent-net.rules
rm /mnt/etc/udev/rules.d/80-net-setup-link.rules

Arch Linux

Unter Arch Linux wird eine Verknüpfung mit /dev/null angelegt. Somit wird wieder eth0 zugewiesen.

$ ln -s /dev/null /etc/systemd/network/99-default.link

Migration auf Cloud Server

Festplatte löschen

Es muss erst das Dateisystem vom Cloud Server gelöscht werden.

$ mkfs.ext4 /dev/sda1

Dateisystem auf Cloud Server einbinden

$ mount /dev/sda1 /mnt

Migration

Die Datenübertragung erfolgt mit rsync.

$ rsync -avz --progress IP-DES-ALTEN-SERVERS:/mnt/* /mnt

Die fstab muss umbedingt an den Cloud Server angepasst werden, ansonsten startet der Server nicht!

Die UUID der Festplattenpartition kann wie folgt ausgelesen werden:

$ blkid -o value -s UUID /dev/sda1

Beispiel /mnt/etc/fstab mit UUID vorher

UUID=bad16011-8988-4c53-ba5c-6727f8b90001 / ext3 defaults 0 0

Ändern zu

UUID=$uuid_des_cloudservers / ext4 discard,errors=remount-ro 0 1

GRUB

Der Bootloader GRUB besitzt noch die alte Konfiguration. Deshalb muss die neue Konfiguration generiert werden. Dies geschieht wie folgt:

Debian/Ubuntu

$ chroot-prepare /mnt ; chroot /mnt
$ grub-mkdevicemap
$ grub-install /dev/sda
$ update-initramfs -u

Unter Debian 9 muss vor den nächsten Kommandos noch folgende Zeile in der Datei /etc/default/grub editiert werden:

GRUB_CMDLINE_LINUX="net.ifnames=0"

Damit wird die Netzwerkkarte als eth0 erkannt und erscheint nicht als ens3 im System.

$ update-grub
$ exit

CentOS 6

$ chroot-prepare /mnt ; chroot /mnt
$ grub-install /dev/sda

In der /boot/grub/grub.cfg muss umbedingt die UUID manuell geändert werden. Der Grund dafür ist, dass der Bootloader GRUB 1 (Legacy) genutzt wird und daher nicht automatisch geändert wird, bei einem grub-install.

Sobald die Änderungen in der /boot/grub/grub.cfg vorgenommen wurden, müssen noch folgende Commands ausgeführt werden:

$ dracut -f
$ exit

CentOS 7

$ chroot-prepare /mnt ; chroot /mnt
$ grub2-install /dev/sda
$ grub2-mkconfig -o /boot/grub2/grub.cfg 
$ dracut -f
$ exit

Arch Linux

$ chroot-prepare /mnt ; chroot /mnt
$ grub-install /dev/sda
$ grub-mkconfig -o /boot/grub/grub.cfg
$ mkinitcpio -p linux
$ exit

openSUSE

$ chroot-prepare /mnt ; chroot /mnt
$ grub2-install /dev/sda
$ grub2-mkconfig -o /boot/grub2/grub.cfg
$ mkinitrd
$ exit

Letzte Schritte beim Cloud Server

Um den Cloud Server wieder nutzen zu können, muss das Dateisystem aushängen werden.

Aushängen des Dateisystems

$ umount -R /mnt

Neustarten des Systems

$ reboot


© 2019. Hetzner Online GmbH. Alle Rechte vorbehalten.