Hetzner - DokuWiki

How to migrate vServers to Cloud/ru
(Ubuntu 18.04)
 
Zeile 168: Zeile 168:
  
 
====Ubuntu 18.04====
 
====Ubuntu 18.04====
В Ubuntu 18.04 используется netplan, который отличается от более ранних версий Ubuntu.
+
В Ubuntu 18.04 конфигурация сети отличается от более ранних версий Ubuntu.
 
Редактируем файл .yml в папке /etc/netplan/ :
 
Редактируем файл .yml в папке /etc/netplan/ :
  

Aktuelle Version vom 3. Dezember 2018, 14:30 Uhr

Inhaltsverzeichnis

Миграция с vServer на Cloud

Вы можете мигрировать существующие VQ/VX/CX виртуальные серверы на современное облако

Этапы миграции:

  1. создать аналогичный или более мощный Облачный Сервер
  2. запустить Rescue-систему на обоих серверах и примонтировать файловые системы
  3. запустить rsync для синхронизации

Отказ от ответственности: Индивидуальные установки могут потребовать большее число шагов или другой их набор.

Важная информация

Следующие операционные системы не поддерживаются.

  • Debian 6 и младше
  • Ubuntu 11.10 и младше
  • CentOS 5.6 и младше
  • OpenSUSE 11.4 и младше

Для вышеперечисленных систем требуется обновление на более новую версию.

Перед переносом, все пакеты ДОЛЖНЫ быть обновлены до минимальной поддерживаемой версии. Частично обновленные системы и системы с пакетами из сторонних репозиториев могут работать не так, как ожидается, и не поддерживаются.

Активация Rescue-системы

Для передачи данных загрузите сервер в Rescue-систему. Для VQ/VX/CX виртуальных серверов Rescue-система активируется через панель Robot на вкладке «vServer».

Robot-Rescue.png Robot-Reset.png

Для Облачных Серверов Rescue-система активируется через свою облачную консоль. Сервер будет перезагружен в Rescue-систему.

Cloud-Rescue-And-Reset.png

Монтирование файловой системы

Для копирования файлов необходимо примонтировать файловую систему.

На серверах VQ/VX/CX используются разные контроллеры. Пожалуйста, проверьте разделы командой:

old_server ~ # fdisk -l

Sample Output of fdisk.png

Примонтировать файловую систему можно при помощи следующей команды.

old_server ~ # mount /dev/XXXY /mnt

Пожалуйста, замените ХХХ на имя диска из вывода fdisk -l и Y на номер раздела. Если у вас несколько разделов, они должны быть примонтированы по порядку как при установке (например, /before/boot)

Монтирование swap-раздела:

old_server ~ # swapon /dev/XXXY

Если есть загрузочный (boot) раздел, то его надо монтировать после основного раздела.

Точка монтирования для загрузочного раздела /mnt/boot.

Монтирование файловой системы Облачного Сервера производится позже.

Миграция на Облачный Сервер

Создание разделов (опционально)

В устаревших операционных системах (например, CentOS 6) можно использовать grub-legacy требует двух отдельных разделов, поскольку загрузчик еще не поддерживает ext4.

Начните с создания пустой таблицы разделов (это приведет к удалению всех существующих записей)

 new_server ~ # parted -s /dev/sda mklabel msdos

Затем создайте раздел /boot размером 512Мб и еще один раздел на все оставшееся пространство:

 new_server ~ # parted -s /dev/sda mkpart primary 2048s 513MiB
 new_server ~ # parted -s /dev/sda mkpart primary 514MiB 100%
 

Очистка диска

На первом шаге надо удалить файловую систему Облачного Сервера.

new_server ~ # mkfs -O ^64bit,^metadata_csum -t ext4 /dev/sda1

Этим мы создадим новую файловую систему ext4 и тем самым удалим все существующие данные на Облачном Сервере.

Если вы создали 2 раздела на первом шаге, они должны быть отформатированы с помощью ext3 и ext4 соответственно.

new_server ~ # mkfs.ext3 /dev/sda1
new_server ~ # mkfs -O ^64bit,^metadata_csum -t ext4 /dev/sda2

Монтирование файловой системы на Облачном Сервере

new_server ~ # mount /dev/sda1 /mnt
  • в случае 2 разделов:
 new_server ~ # mount /dev/sda2 /mnt
 new_server ~ # mkdir /mnt/boot
 new_server ~ # mount /dev/sda1 /mnt/boot

Миграция

Передача данных будет осуществляться при помощи rsync

new_server ~ # rsync -avz --progress --numeric-ids IP-old-server:/mnt/* /mnt

Настройка fstab

Обновление fstab на Облачном Сервере. Это процедура необходима, в противном случае сервер не сможет загрузиться.

Чтение UUID разделов.

new_server ~ # blkid -o value -s UUID /dev/sda1
  • в случае 2 разделов:
new_server ~ # blkid -o value -s UUID /dev/sda2

Пример /mnt/etc/fstab со старыми значениями UUID

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

изменяется на

UUID=bad16011-8988-4c53-ba5c-6727f8b90001 / ext4 discard,errors=remount-ro 0 1
  • в случае 2 разделов:
UUID=<UUID-sda2-new_server> / ext4 discard,errors=remount-ro 0 1
UUID=<UUID-sda1-new_server> /boot ext3 defaults 0 2

Изменения на новом сервере

Изменение на DHCP

Debian/Ubuntu

редактируем файл /mnt/etc/network/interfaces

Удалите строки типа auto ens3, iface ens3 inet static.

auto eth0
iface eth0 inet dhcp
iface eth0 inet6 static
    address <new IPv6 subnet>::1
    netmask 64
    gateway fe80::1

Удалите другие строки типа address, netmask и gateway в части настройки IPv4 (iface eth0 inet dhcp).

Ubuntu 18.04

В Ubuntu 18.04 конфигурация сети отличается от более ранних версий Ubuntu. Редактируем файл .yml в папке /etc/netplan/ :

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      addresses:
        - <IPv6-Адрес>::1/64
      dhcp4: true
      gateway6: fe80::1

CentOS и openSUSE

new_server ~ # rm /mnt/etc/sysconfig/network-scripts/route-eth0

редактируем /mnt/etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=dhcp

Удалите строки типа IPADDR, NETMASK, SCOPE и BROADCAST.

Arch Linux

Если установка Arch Linux производилась с помощью нашего ISO или installimage, то используется systemd-network.

Редактирование файла /mnt/etc/systemd/network/network/10-ens3.network (в некоторых случаях и 10-eth0.network)

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

Удалите строки типа address и Gateway.

Удаление udev-правил для сетевого интерфейса

Каждый виртуальный сервер имеет уникальный MAC, пожалуйста, удалите текущее udev-правило при подготовке к миграции.

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

Arch Linux

Создайте ссылку на /dev/null. Благодаря этому сетевая карта снова будет иметь имя eth0.

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

GRUB

Загрузчик имеет старую конфигурацию. Обновим конфигурацию с помощью следующих команд.

Debian/Ubuntu

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

На Debian 9 перед выполнением следующих команд следует отредактировать файл /etc/default/grub:

GRUB_CMDLINE_LINUX="net.ifnames=0"

Это приведет к тому, что сетевая карта будет доступна в системе как eth0 вместо ens3. Теперь запустите следующие команды:

new_server ~ # update-grub
new_server ~ # exit

CentOS 6

new_server ~ # rm /mnt/etc/mtab
new_server ~ # chroot-prepare /mnt ; chroot /mnt
new_server ~ # ln -s /proc/mounts /etc/mtab
new_server ~ # grub-install /dev/sda

Из-за того, что grub-install не обновляет загрузчик, следует вручную указать новый UUID в файле /boot/grub/grub.cfg.

После редактирования /boot/grub/grub.cfg можно выполнить следующие команды.

new_server ~ # dracut -f
new_server ~ # exit

CentOS 7

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

Arch Linux

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

openSUSE

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

Kernel Update

Ubuntu

В Ubuntu 12.04 система не будет загружаться должным образом из-за отсутствия драйверов. Чтобы решить эту проблему, необходимо установить ядро HWE. Перезагрузите сервер в Rescue-режим, смонтируйте все разделы и переключитесь в chroot:

new_server ~ # chroot-prepare /mnt ; chroot /mnt
new_server ~ # apt-get install --install-recommends linux-generic-lts-trusty
new_server ~ # exit

Завершающие шаги на Облачном Сервере

Чтобы снова использовать Облачный Сервер, пожалуйста, размонтируйте файловую систему

размонтировать файловую систему

new_server ~ # umount -R /mnt

перезапустите сервер

new_server ~ # reboot


© 2019. Hetzner Online GmbH. Alle Rechte vorbehalten.