Hetzner - DokuWiki

How to migrate vServers to Cloud/ru
Zeile 66: Zeile 66:
  
 
== <span class="mw-headline" id="Migration_auf_Cloud_Server">Миграция на Облачный Сервер</span> ==
 
== <span class="mw-headline" id="Migration_auf_Cloud_Server">Миграция на Облачный Сервер</span> ==
 +
 +
====Создание разделов (опционально)====
 +
В устаревших операционных системах (например, CentOS 6) можно использовать grub-legacy требует двух отдельных разделов, поскольку загрузчик еще не поддерживает ext4.
 +
 +
Начните с создания пустой таблицы разделов (это приведет к удалению всех существующих записей)
 +
 +
<pre>
 +
new_server ~ # parted -s /dev/sda mklabel msdos
 +
</pre>
 +
 +
Затем создайте раздел /boot 512Мб и еще один раздел на все оставшееся пространство:
 +
 +
<pre>
 +
new_server ~ # parted -s /dev/sda mkpart primary 2048s 513MiB
 +
new_server ~ # parted -s /dev/sda mkpart primary 514MiB 100%
 +
</pre>
  
 
=== <span class="mw-headline" id="Festplatte_l.C3.B6schen">Очистка диска</span> ===
 
=== <span class="mw-headline" id="Festplatte_l.C3.B6schen">Очистка диска</span> ===
Zeile 71: Zeile 87:
 
На первом шаге надо удалить файловую систему '''облачного сервера'''.
 
На первом шаге надо удалить файловую систему '''облачного сервера'''.
 
<pre>
 
<pre>
$ mkfs.ext4 /dev/sda1
+
new_server ~ # mkfs -O ^64bit,^metadata_csum -t ext4 /dev/sda1
 
</pre>
 
</pre>
  
=== <span class="mw-headline" id="Dateisystem_auf_Cloud_Server_einbinden">монтирование файловой системы на облачном сервере</span> ===
+
Этим мы создадим новую файловую систему ext4 и тем самым удалим все существующие данные на облачном сервере.
 +
 
 +
Если вы создали 2 раздела на первом шаге, они должны быть отформатированы с помощью ext3 и ext4 соответственно.
 +
 
 +
new_server ~ # mkfs.ext3 /dev/sda1
 +
new_server ~ # mkfs -O ^64bit,^metadata_csum -t ext4 /dev/sda2
 +
 
 +
=== <span class="mw-headline" id="Dateisystem_auf_Cloud_Server_einbinden">Монтирование файловой системы на облачном сервере</span> ===
 
<pre>
 
<pre>
$ mount /dev/sda1 /mnt
+
new_server ~ # mount /dev/sda1 /mnt
 
</pre>
 
</pre>
=== <span class="mw-headline" id="Migration">миграция</span> ===
+
 
 +
* в случае 2 разделов:
 +
 
 +
<pre>
 +
new_server ~ # mount /dev/sda2 /mnt
 +
new_server ~ # mkdir /mnt/boot
 +
new_server ~ # mount /dev/sda1 /mnt/boot
 +
</pre>
 +
 
 +
=== <span class="mw-headline" id="Migration">Миграция</span> ===
  
 
Передача данных будет осуществляться при помощи rsync
 
Передача данных будет осуществляться при помощи rsync
 
<pre>
 
<pre>
$ rsync -avz --progress IP-старого-сервера:/mnt/* /mnt
+
new_server ~ # rsync -avz --progress --numeric-ids IP-old-server:/mnt/* /mnt
 
</pre>
 
</pre>
 +
 +
=== <span class="mw-headline" id="Migration">Настройка fstab</span> ===
 +
 
Обновление fstab на облачном сервере. Это процедура необходима, в противном случае сервер не сможет загрузиться.
 
Обновление fstab на облачном сервере. Это процедура необходима, в противном случае сервер не сможет загрузиться.
  
 
Чтение UUID разделов.
 
Чтение UUID разделов.
 
<pre>
 
<pre>
$ blkid -o value -s UUID /dev/sda1
+
new_server ~ # blkid -o value -s UUID /dev/sda1
 
</pre>
 
</pre>
 +
 +
* в случае 2 разделов:
 +
 +
<pre>
 +
new_server ~ # blkid -o value -s UUID /dev/sda2
 +
</pre>
 +
 
Пример /mnt/etc/fstab со старыми значениями UUID
 
Пример /mnt/etc/fstab со старыми значениями UUID
 
<pre>
 
<pre>
Zeile 98: Zeile 140:
 
UUID=bad16011-8988-4c53-ba5c-6727f8b90001 / ext4 discard,errors=remount-ro 0 1
 
UUID=bad16011-8988-4c53-ba5c-6727f8b90001 / ext4 discard,errors=remount-ro 0 1
 
</pre>
 
</pre>
 +
 +
* в случае 2 разделов:
 +
 +
<pre>
 +
UUID=<UUID-sda2-new_server> / ext4 discard,errors=remount-ro 0 1
 +
UUID=<UUID-sda1-new_server> /boot ext3 defaults 0 2
 +
</pre>
 +
 
=== <span class="mw-headline" id="GRUB">GRUB</span> ===
 
=== <span class="mw-headline" id="GRUB">GRUB</span> ===
  

Version vom 4. Oktober 2018, 14:59 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

GRUB

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

Debian/Ubuntu

$ chroot-prepare /mnt ; chroot /mnt
$ grub-mkdevicemap
$ grub-install /dev/sda
$ update-initramfs -u

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

GRUB_CMDLINE_LINUX="net.ifnames=0"

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

$ update-grub
$ exit

CentOS 6

$ chroot-prepare /mnt ; chroot /mnt
$ grub-install /dev/sda

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

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

$ dracut -f
$ exit

CentOS 7

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

Arch Linux

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

openSUSE

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

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

Debian/Ubuntu

редактирование файла /mnt/etc/network/interfaces

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

auto eth0
iface eth0 inet dhcp
iface eth0 inet6 static
    address
    netmask 64
    gateway fe80::1

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

CentOS и openSUSE

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-правило при подготовке к миграции.

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

Arch Linux

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

$ ln -s /dev/null /etc/systemd/network/99-default.link


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

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

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

$ umount -R /mnt

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

$ reboot


© 2019. Hetzner Online GmbH. Alle Rechte vorbehalten.