Миграция с vServer в облако

Миграция с vServer в облако

Вы можете перенести существующие vServers VQ / VX / CX на текущие облачные серверы.

Шаги миграции:

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

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

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

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

  • Debian 6 и старше
  • Ubuntu 11.10 и старше
  • CentOS 5.6 и старше
  • openSUSE 11.4 и старше

Для перечисленных операционных систем необходимо обновление до более новой версии.

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

Активируйте спасательную систему

Чтобы передать данные, вы должны загрузить оба сервера в Rescue System. Для VQ / VX / CX vServers вы можете активировать Rescue System через панель вашего робота на вкладке «vServer».

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

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

После запуска Rescue System вы смонтируете файловую систему для копирования файлов.

На VQ / VX / CX vServer есть разные контроллеры. Пожалуйста, проверьте разделы через:

old_server ~ # fdisk -l

Вы можете смонтировать файловую систему через:

old_server ~ # mount /dev/XXXY /mnt

Замените XXX на декларацию устройства и Y на номер раздела. Если существует несколько разделов, они должны быть смонтированы в порядке установки (например, / before / boot).

Монтаж раздела подкачки:

old_server ~ # swapon /dev/XXXY

Если существует загрузочный раздел, смонтируйте сначала основной раздел, а в конце — загрузочный.

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

Вы смонтируете файловую систему облачного сервера позже.

Миграция на облачный сервер

Разбиение на разделы (необязательно)

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

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

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

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

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=<UUID-root-partition-old-server> / ext3 defaults 0 0

приспособить к:

UUID=<UUID-sda1-new-server> / 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

Удалите следующие строки, такие как адрес, сетевая маска и шлюз в части IPv4 (iface eth0 inet dhcp).

Ubuntu 18.04

Ubuntu 18.04 использует netplan, который отличается от старых конфигураций Ubuntu.

Отредактируйте файл .yml в папке / etc / netplan /:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      addresses:
        - <IPv6-Address>::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-образа или образа установки, мы будем использовать systemd-network.

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

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

Удалите такие строки, как адрес и шлюз.

Удаление 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

Пожалуйста, измените UUID в /boot/grub/grub.cfg самостоятельно, потому что загрузчик не будет обновляться через grub-install.

После настройки /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

Обновление ядра

Ubuntu

При использовании более старой версии Ubuntu 12.04 система не загружается должным образом из-за отсутствия драйверов. Чтобы решить эту проблему, необходимо установить ядро ​​HWE. Снова перезагрузите сервер в Rescue System, смонтируйте все разделы и переключитесь на 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