Hetzner - DokuWiki

How to migrate vServers to Cloud/ru
(Важная информация)
Zeile 17: Zeile 17:
 
Следующие операционные системы не поддерживаются.
 
Следующие операционные системы не поддерживаются.
  
* Debian 6 и старше
+
* Debian 6 и младше
* Ubuntu 11.10 и старше
+
* Ubuntu 11.10 и младше
* CentOS 5.6 и старше
+
* CentOS 5.6 и младше
* OpenSUSE 11.4 и старше
+
* OpenSUSE 11.4 и младше
  
 
Для вышеперечисленных систем требуется обновление на более новую версию.
 
Для вышеперечисленных систем требуется обновление на более новую версию.

Version vom 5. Oktober 2018, 12:41 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.

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).

CentOS и openSUSE

new_server ~ # rm /mnt/etc/sysconfig/network-scripts/route-eth0
<pre>
<pre>
редактируем /mnt/etc/sysconfig/network-scripts/ifcfg-eth0 

BOOTPROTO=dhcp </pre> Удалите строки типа 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

If using an older Ubuntu 12.04 the system won't boot properly due to the lack of drivers. To resolve this, the HWE kernel must be installed. Reboot the server in the rescue mode again, mount all partitions and switch in to chroot: В 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

e_beim_Cloud_Server">Завершающие шаги на Облачном Сервере</span> ==

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

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

new_server ~ # umount -R /mnt

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

new_server ~ # reboot


© 2019. Hetzner Online GmbH. Alle Rechte vorbehalten.