Hetzner - DokuWiki

How to migrate vServers to Cloud
(Rescue auf beiden Systemen aktivieren)
Zeile 61: Zeile 61:
 
Auf dem Cloud Server erfolgt die Einbindung des Dateisystems erst später.
 
Auf dem Cloud Server erfolgt die Einbindung des Dateisystems erst später.
  
=== <span class="mw-headline" id="Umstellung_auf_DHCP">Umstellung auf DHCP</span> ===
+
== Migration auf Cloud Server ==
 +
 
 +
===Festplatte löschen===
 +
Es muss erst das Dateisystem vom '''Cloud Server''' gelöscht werden.
 +
 
 +
neuer_server ~ # mkfs.ext4 /dev/sda1
 +
 
 +
===Dateisystem auf Cloud Server einbinden===
 +
neuer_server ~ # mount /dev/sda1 /mnt
 +
 
 +
===Migration===
 +
Die Datenübertragung erfolgt mit rsync.
 +
 
 +
neuer_server ~ #  rsync -avz --progress --numeric-ids IP-DES-ALTEN-SERVERS:/mnt/* /mnt
 +
 
 +
===fstab Anpassung===
 +
 
 +
Die fstab muss '''umbedingt''' an den Cloud Server angepasst werden, ansonsten startet der Server nicht!
 +
 
 +
Die UUID der Festplattenpartition kann wie folgt ausgelesen werden:
 +
 
 +
neuer_server ~ # 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=bad16011-8988-4c53-ba5c-6727f8b90001 / ext4 discard,errors=remount-ro 0 1
  
==== <span class="mw-headline" id="Debian.2FUbuntu">Debian/Ubuntu</span> ====
+
==Notwendige Anpassungen am neuen Server==
 +
===Umstellung auf DHCP===
 +
====Debian/Ubuntu====
  
 
Editieren von /mnt/etc/network/interfaces
 
Editieren von /mnt/etc/network/interfaces
Zeile 77: Zeile 108:
 
Weitere Zeilen wie address, netmask und gateway müssen im IPv4 Teil (unter iface eth0 inet dhcp) entfernt werden.
 
Weitere Zeilen wie address, netmask und gateway müssen im IPv4 Teil (unter iface eth0 inet dhcp) entfernt werden.
  
==== <span class="mw-headline" id="CentOS_und_openSUSE">CentOS und openSUSE</span> ====
+
====CentOS und openSUSE====
<pre>rm /mnt/etc/sysconfig/network-scripts/route-eth0
+
 
</pre>
+
neuer_server ~ # rm /mnt/etc/sysconfig/network-scripts/route-eth0
 +
 
 
Editieren von /mnt/etc/sysconfig/network-scripts/ifcfg-eth0
 
Editieren von /mnt/etc/sysconfig/network-scripts/ifcfg-eth0
<pre>BOOTPROTO=dhcp
 
</pre>
 
Die Zeilen IPADDR, NETMASK, SCOPE und BROADCAST müssen entfernt werden.
 
  
==== <span class="mw-headline" id="Arch_Linux">Arch Linux</span> ====
+
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.
 
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!)'''
 
Editieren von /mnt/etc/systemd/network/network/10-ens3.network '''(Dies kann auch 10-eth0.network sein!)'''
<pre>[Match]
+
 
Name=eth0
+
[Match]
[Network]
+
Name=eth0
DHCP=ipv4
+
[Network]
</pre>
+
DHCP=ipv4
 +
 
 
Die Zeilen Address und Gateway müssen entfernt werden.
 
Die Zeilen Address und Gateway müssen entfernt werden.
  
=== <span class="mw-headline" id="Entfernung_der_udev-Regel_der_Netzwerkkarte">Entfernung der udev-Regel der Netzwerkkarte</span> ===
+
===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.
 
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.
<pre>rm /mnt/etc/udev/rules.d/70-persistent-net.rules
 
rm /mnt/etc/udev/rules.d/80-net-setup-link.rules
 
</pre>
 
==== <span class="mw-headline" id="Arch_Linux_2">Arch Linux</span> ====
 
  
 +
neuer_server ~ # rm /mnt/etc/udev/rules.d/70-persistent-net.rules
 +
neuer_server ~ # 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.
 
Unter Arch Linux wird eine Verknüpfung mit /dev/null angelegt. Somit wird wieder eth0 zugewiesen.
<pre>$ ln -s /dev/null /etc/systemd/network/99-default.link
 
</pre>
 
  
== Migration auf Cloud Server ==
+
neuer_server ~ # ln -s /dev/null /etc/systemd/network/99-default.link
 
+
=== <span class="mw-headline" id="Festplatte_l.C3.B6schen">Festplatte löschen</span> ===
+
 
+
Es muss erst das Dateisystem vom '''Cloud Server''' gelöscht werden.
+
<pre>$ mkfs.ext4 /dev/sda1
+
</pre>
+
=== <span class="mw-headline" id="Dateisystem_auf_Cloud_Server_einbinden">Dateisystem auf Cloud Server einbinden</span> ===
+
<pre>$ mount /dev/sda1 /mnt
+
</pre>
+
=== <span class="mw-headline" id="Migration">Migration</span> ===
+
 
+
Die Datenübertragung erfolgt mit rsync.
+
<pre>$ rsync -avz --progress IP-DES-ALTEN-SERVERS:/mnt/* /mnt
+
</pre>
+
Die fstab muss '''umbedingt''' an den Cloud Server angepasst werden, ansonsten startet der Server nicht!
+
 
+
Die UUID der Festplattenpartition kann wie folgt ausgelesen werden:
+
<pre>$ blkid -o value -s UUID /dev/sda1
+
</pre>
+
Beispiel /mnt/etc/fstab mit UUID vorher
+
<pre>UUID=bad16011-8988-4c53-ba5c-6727f8b90001 / ext3 defaults 0 0
+
</pre>
+
Ändern zu
+
<pre>UUID=$uuid_des_cloudservers / ext4 discard,errors=remount-ro 0 1
+
</pre>
+
 
+
=== <span class="mw-headline" id="GRUB">GRUB</span> ===
+
  
 +
===GRUB===
 
Der Bootloader GRUB besitzt noch die alte Konfiguration. Deshalb muss die neue Konfiguration generiert werden. Dies geschieht wie folgt:
 
Der Bootloader GRUB besitzt noch die alte Konfiguration. Deshalb muss die neue Konfiguration generiert werden. Dies geschieht wie folgt:
  
==== Debian/Ubuntu ====
+
====Debian/Ubuntu====
  
  $ chroot-prepare /mnt&nbsp;; chroot /mnt
+
  neuer_server ~ # chroot-prepare /mnt ; chroot /mnt
  $ grub-mkdevicemap
+
  neuer_server ~ # grub-mkdevicemap
  $ grub-install /dev/sda
+
  neuer_server ~ # grub-install /dev/sda
  $ update-initramfs -u
+
  neuer_server ~ # update-initramfs -u
 +
neuer_server ~ # update-grub
 +
neuer_server ~ # exit
  
 
Unter Debian 9 muss vor den nächsten Kommandos noch folgende Zeile in der Datei /etc/default/grub editiert werden:
 
Unter Debian 9 muss vor den nächsten Kommandos noch folgende Zeile in der Datei /etc/default/grub editiert werden:
Zeile 158: Zeile 164:
 
==== CentOS 6 ====
 
==== CentOS 6 ====
  
  $ chroot-prepare /mnt&nbsp;; chroot /mnt
+
  neuer_server ~ # chroot-prepare /mnt ; chroot /mnt
  $ grub-install /dev/sda
+
  neuer_server ~ # 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.
 
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.
Zeile 165: Zeile 171:
 
Sobald die Änderungen in der /boot/grub/grub.cfg vorgenommen wurden, müssen noch folgende Commands ausgeführt werden:
 
Sobald die Änderungen in der /boot/grub/grub.cfg vorgenommen wurden, müssen noch folgende Commands ausgeführt werden:
  
  $ dracut -f
+
  neuer_server ~ # dracut -f
  $ exit
+
  neuer_server ~ # exit
  
 
==== CentOS 7 ====
 
==== CentOS 7 ====
  
  $ chroot-prepare /mnt&nbsp;; chroot /mnt
+
  neuer_server ~ # chroot-prepare /mnt ; chroot /mnt
  $ grub2-install /dev/sda
+
  neuer_server ~ # grub2-install /dev/sda
  $ grub2-mkconfig -o /boot/grub2/grub.cfg  
+
  neuer_server ~ # grub2-mkconfig -o /boot/grub2/grub.cfg
  $ dracut -f
+
  neuer_server ~ # dracut -f
  $ exit
+
  neuer_server ~ # exit
  
==== <span class="mw-headline" id="Arch_Linux_3">Arch Linux</span> ====
+
====Arch Linux====
<pre>$ chroot-prepare /mnt&nbsp;; chroot /mnt
+
$ grub-install /dev/sda
+
$ grub-mkconfig -o /boot/grub/grub.cfg
+
$ mkinitcpio -p linux
+
$ exit
+
</pre>
+
==== openSUSE ====
+
  
  $ chroot-prepare /mnt&nbsp;; chroot /mnt
+
  neuer_server ~ # chroot-prepare /mnt ; chroot /mnt
  $ grub2-install /dev/sda
+
  neuer_server ~ # grub-install /dev/sda
  $ grub2-mkconfig -o /boot/grub2/grub.cfg
+
  neuer_server ~ # grub-mkconfig -o /boot/grub/grub.cfg
  $ mkinitrd
+
  neuer_server ~ # mkinitcpio -p linux
  $ exit
+
  neuer_server ~ # exit
  
== <span class="mw-headline" id="Letzte_Schritte_beim_Cloud_Server">Letzte Schritte beim Cloud Server</span> ==
+
====openSUSE====
  
 +
neuer_server ~ # chroot-prepare /mnt ; chroot /mnt
 +
neuer_server ~ # grub2-install /dev/sda
 +
neuer_server ~ # grub2-mkconfig -o /boot/grub2/grub.cfg
 +
neuer_server ~ # mkinitrd
 +
neuer_server ~ # exit
 +
 +
 +
==Letzte Schritte beim Cloud Server==
 
Um den Cloud Server wieder nutzen zu können, muss das Dateisystem aushängen werden.
 
Um den Cloud Server wieder nutzen zu können, muss das Dateisystem aushängen werden.
  
Aushängen des Dateisystems
+
neuer_server ~ # umount -R /mnt
<pre>$ umount -R /mnt</pre>
+
* Aushängen des Dateisystems
Neustarten des Systems
+
 
<pre>$ reboot</pre>
+
Anschließend kann der Cloud Server neugestartet werden.
 +
 
 +
neuer_server ~ # reboot
  
 
[[Kategorie:Cloud]]
 
[[Kategorie:Cloud]]
 
[[Kategorie:Hetzner Cloud]]
 
[[Kategorie:Hetzner Cloud]]

Version vom 25. September 2018, 10:16 Uhr

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.

Robot-Rescue.png Robot-Reset.png

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

Cloud-Rescue-And-Reset.png

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.

alter_server ~ # fdisk -l

Sample Output of fdisk.png

Eingebunden wird das Dateisystem wie folgt:

alter_server ~ # 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:

alter_server ~ # 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.

Migration auf Cloud Server

Festplatte löschen

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

neuer_server ~ # mkfs.ext4 /dev/sda1

Dateisystem auf Cloud Server einbinden

neuer_server ~ # mount /dev/sda1 /mnt

Migration

Die Datenübertragung erfolgt mit rsync.

neuer_server ~ #  rsync -avz --progress --numeric-ids IP-DES-ALTEN-SERVERS:/mnt/* /mnt

fstab Anpassung

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

Die UUID der Festplattenpartition kann wie folgt ausgelesen werden:

neuer_server ~ # 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=bad16011-8988-4c53-ba5c-6727f8b90001 / ext4 discard,errors=remount-ro 0 1

Notwendige Anpassungen am neuen Server

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

neuer_server ~ # 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.

neuer_server ~ # rm /mnt/etc/udev/rules.d/70-persistent-net.rules
neuer_server ~ # 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.

neuer_server ~ # ln -s /dev/null /etc/systemd/network/99-default.link

GRUB

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

Debian/Ubuntu

neuer_server ~ # chroot-prepare /mnt ; chroot /mnt
neuer_server ~ # grub-mkdevicemap
neuer_server ~ # grub-install /dev/sda
neuer_server ~ # update-initramfs -u
neuer_server ~ # update-grub
neuer_server ~ # exit

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

neuer_server ~ # chroot-prepare /mnt ; chroot /mnt
neuer_server ~ # 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:

neuer_server ~ # dracut -f
neuer_server ~ # exit

CentOS 7

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

Arch Linux

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

openSUSE

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


Letzte Schritte beim Cloud Server

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

neuer_server ~ # umount -R /mnt
  • Aushängen des Dateisystems

Anschließend kann der Cloud Server neugestartet werden.

neuer_server ~ # reboot


© 2020. Hetzner Online GmbH. Alle Rechte vorbehalten.