Миграция с vServer в облако
Вы можете перенести существующие vServers VQ / VX / CX на текущие облачные серверы.
Шаги миграции:
- Создайте аналогичный или более мощный облачный сервер
- Запустите Rescue System на обоих серверах и смонтируйте файловую систему.
- Запустить синхронизацию с помощью 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