Hetzner - DokuWiki

How to migrate vServers to Cloud/ru
(Создание разделов (опционально))
Zeile 7: Zeile 7:
 
Этапы миграции:
 
Этапы миграции:
  
#создать аналогичный или более мощный облачный сервер
+
#создать аналогичный или более мощный Облачный Сервер
 
#запустить Rescue-систему на обоих серверах и примонтировать файловые системы
 
#запустить Rescue-систему на обоих серверах и примонтировать файловые системы
 
#запустить rsync для синхронизации
 
#запустить rsync для синхронизации
Zeile 33: Zeile 33:
 
[[File:Robot-Reset.png|border|200px]]
 
[[File:Robot-Reset.png|border|200px]]
  
Для облачных серверов Rescue-система активируется через свою облачную консоль. Сервер будет перезагружен в Rescue-систему.
+
Для Облачных Серверов Rescue-система активируется через свою облачную консоль. Сервер будет перезагружен в Rescue-систему.
  
 
[[File:Cloud-Rescue-And-Reset.png|border|200px]]
 
[[File:Cloud-Rescue-And-Reset.png|border|200px]]
Zeile 63: Zeile 63:
 
Точка монтирования для загрузочного раздела /mnt/boot.
 
Точка монтирования для загрузочного раздела /mnt/boot.
  
Монтирование файловой системы облачного сервера производится позже.
+
Монтирование файловой системы Облачного Сервера производится позже.
  
 
== <span class="mw-headline" id="Migration_auf_Cloud_Server">Миграция на Облачный Сервер</span> ==
 
== <span class="mw-headline" id="Migration_auf_Cloud_Server">Миграция на Облачный Сервер</span> ==
Zeile 85: Zeile 85:
 
=== <span class="mw-headline" id="Festplatte_l.C3.B6schen">Очистка диска</span> ===
 
=== <span class="mw-headline" id="Festplatte_l.C3.B6schen">Очистка диска</span> ===
  
На первом шаге надо удалить файловую систему '''облачного сервера'''.
+
На первом шаге надо удалить файловую систему '''Облачного Сервера'''.
 
<pre>
 
<pre>
 
new_server ~ # mkfs -O ^64bit,^metadata_csum -t ext4 /dev/sda1
 
new_server ~ # mkfs -O ^64bit,^metadata_csum -t ext4 /dev/sda1
 
</pre>
 
</pre>
  
Этим мы создадим новую файловую систему ext4 и тем самым удалим все существующие данные на облачном сервере.
+
Этим мы создадим новую файловую систему ext4 и тем самым удалим все существующие данные на Облачном Сервере.
  
 
Если вы создали 2 раздела на первом шаге, они должны быть отформатированы с помощью ext3 и ext4 соответственно.
 
Если вы создали 2 раздела на первом шаге, они должны быть отформатированы с помощью ext3 и ext4 соответственно.
Zeile 97: Zeile 97:
 
  new_server ~ # mkfs -O ^64bit,^metadata_csum -t ext4 /dev/sda2
 
  new_server ~ # mkfs -O ^64bit,^metadata_csum -t ext4 /dev/sda2
  
=== <span class="mw-headline" id="Dateisystem_auf_Cloud_Server_einbinden">Монтирование файловой системы на облачном сервере</span> ===
+
=== <span class="mw-headline" id="Dateisystem_auf_Cloud_Server_einbinden">Монтирование файловой системы на Облачном Сервере</span> ===
 
<pre>
 
<pre>
 
new_server ~ # mount /dev/sda1 /mnt
 
new_server ~ # mount /dev/sda1 /mnt
Zeile 117: Zeile 117:
 
</pre>
 
</pre>
  
=== <span class="mw-headline" id="Migration">Настройка fstab</span> ===  
+
=== <span class="mw-headline" id="Migration">Настройка fstab</span> ===
  
Обновление fstab на облачном сервере. Это процедура необходима, в противном случае сервер не сможет загрузиться.
+
Обновление fstab на Облачном Сервере. Это процедура необходима, в противном случае сервер не сможет загрузиться.
  
 
Чтение UUID разделов.
 
Чтение UUID разделов.
Zeile 154: Zeile 154:
 
==== <span class="mw-headline" id="Debian.2FUbuntu">Debian/Ubuntu</span> ====
 
==== <span class="mw-headline" id="Debian.2FUbuntu">Debian/Ubuntu</span> ====
  
редактирование файла /mnt/etc/network/interfaces
+
редактируем файл /mnt/etc/network/interfaces
  
 
Удалите строки типа auto ens3, iface ens3 inet static.
 
Удалите строки типа auto ens3, iface ens3 inet static.
 
<pre>
 
<pre>
 +
auto eth0
 
iface eth0 inet dhcp
 
iface eth0 inet dhcp
 
iface eth0 inet6 static
 
iface eth0 inet6 static
Zeile 170: Zeile 171:
 
<pre>
 
<pre>
 
new_server ~ # rm /mnt/etc/sysconfig/network-scripts/route-eth0
 
new_server ~ # rm /mnt/etc/sysconfig/network-scripts/route-eth0
<pre>
 
<pre>
 
редактируем /mnt/etc/sysconfig/network-scripts/ifcfg-eth0
 
 
</pre>
 
</pre>
 +
 +
редактируем /mnt/etc/sysconfig/network-scripts/ifcfg-eth0
 +
 +
<pre>
 
BOOTPROTO=dhcp
 
BOOTPROTO=dhcp
 
</pre>
 
</pre>
 +
 
Удалите строки типа IPADDR, NETMASK, SCOPE и BROADCAST.
 
Удалите строки типа IPADDR, NETMASK, SCOPE и BROADCAST.
  
Zeile 221: Zeile 224:
 
На Debian 9 перед выполнением следующих команд следует отредактировать файл /etc/default/grub:
 
На Debian 9 перед выполнением следующих команд следует отредактировать файл /etc/default/grub:
  
 +
<pre>
 
GRUB_CMDLINE_LINUX="net.ifnames=0"
 
GRUB_CMDLINE_LINUX="net.ifnames=0"
 +
</pre>
  
 
Это приведет к тому, что сетевая карта будет доступна в системе как eth0 вместо ens3.
 
Это приведет к тому, что сетевая карта будет доступна в системе как eth0 вместо ens3.
Zeile 247: Zeile 252:
 
<pre>
 
<pre>
 
new_server ~ # chroot-prepare /mnt ; chroot /mnt
 
new_server ~ # chroot-prepare /mnt ; chroot /mnt
new_server ~ # grub2-install /dev/sda  
+
new_server ~ # grub2-install /dev/sda
 
new_server ~ # grub2-mkconfig -o /boot/grub2/grub.cfg
 
new_server ~ # grub2-mkconfig -o /boot/grub2/grub.cfg
 
new_server ~ # dracut -f
 
new_server ~ # dracut -f
Zeile 274: Zeile 279:
 
==== <span class="mw-headline" id="Ubuntu">Ubuntu</span> ====
 
==== <span class="mw-headline" id="Ubuntu">Ubuntu</span> ====
  
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:
 
В Ubuntu 12.04 система не будет загружаться должным образом из-за отсутствия драйверов. Чтобы решить эту проблему, необходимо установить ядро HWE. Перезагрузите сервер в Rescue-режим, смонтируйте все разделы и переключитесь в chroot:
  
Zeile 281: Zeile 285:
 
  new_server ~ # exit
 
  new_server ~ # exit
  
e_beim_Cloud_Server">Завершающие шаги на Облачном Сервере</span> ==
+
== <span class="mw-headline" id="Letzte_Schritte_beim_Cloud_Server">Завершающие шаги на Облачном Сервере</span> ==
  
Чтобы снова использовать облачный сервер, пожалуйста, размонтируйте файловую систему
+
Чтобы снова использовать Облачный Сервер, пожалуйста, размонтируйте файловую систему
  
 
размонтировать файловую систему
 
размонтировать файловую систему

Version vom 5. Oktober 2018, 13:01 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).

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.