В данной статье мы расскажем вам, как осуществляли переезд с VDS на выделенный сервер.
Внимание. У нас сервер настроен для загрузки в режиме Legacy BIOS. У вас может быть режим UEFI. Предварительно стоит проверить этот момент или уточнить в поддержке. Мы рекомендуем использовать Legacy BIOS, как более привычный режим в плане работы и его настройки.
Для работы с сервером нам необходимо будет его включить в Live-режиме (rescue mode), чтобы получить доступ к файловой системе. Для загрузки сервера в Live-режиме (rescue mode) и проведения работ лучше всего подходят следующие Linux ISO-образы. Мы остановили свой выбор на Grml.
Grml — это загрузочная Live-система (Live-CD) на основе Debian . Она включает в себя набор программного обеспечения GNU/Linux, специально предназначенный для системных администраторов. Grml особенно хорошо подходит для административных задач, таких как установка, развертывание и восстановление системы.
Копируем ссылку на ISO образ с официального сайта и загружаем его в личный кабинет.
После завершения загрузки подключаем образ к серверу. Сервер при этом автоматически перезагрузится.
Переходим в IPMI интерфейс и авторизуемся c с реквизитами, которые получили в письме после заказа сервера.
Запускаем виртуальную консоль.
В ней нас ожидает терминал.
Приступаем к работе на самом сервере. В первую очередь поднимем на нем сеть.
Смотрим статусы сетевых интерфейсов
ip link show
Видим, интерфейс с названием enp130s0f0 имеет состояние UP.
Добавляем на него IP-адрес
ip addr add 45.86.39.67/25 dev enp130s0f0
основной маршрут
ip route add default via 45.86.39.1 dev enp130s0f0
DNS резолверы
echo -e "nameserver 8.8.8.8\nnameserver 1.1.1.1" | tee /etc/resolv.conf
Для удобной дальнейшей работы будем использовать SSH. Запускаем его
systemctl start ssh
Задаем себе пароль для входа
passwd
Вводим и подтверждаем пароль. В терминале при вводе он не отображается!
Подключаемся к серверу по SSH
ssh root@45.86.39.67
Проверяем наличие дисков командой
fdisk -l
В нашем случае было решено переносить систему на SSD (/dev/sda), а NVMe (/dev/nvme0n1) использовать в качестве домашнего каталога для проекта.
Создаем разделы на дисках
fdisk /dev/sda
Откроется интерфейс утилиты fdisk, используем команды команды
Command (m for help): n
Partition number (1-128, default 1):
First sector (34-3907029134, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3907029134, default 3907028991):
Command (m for help): w
Command (m for help): q
Повторяем то же самое для второго диска
fdisk /dev/nvme0n1
Обратите внимание, если у вас загрузочный SSD диск был с разметкой GPT (Disklabel type: gpt), рекомендуем изменить его тип на MBR для работы с Legacy BIOS. Для этого в fdisk перед созданием раздела измените тип диска с помощью
Command (m for help): o
И обязательно проверьте
Command (m for help): p
Disklabel type: dos.
После чего создаем файловую систему на новом разделе
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/nvme0n1p1
И монтируем наши диски
mount /dev/sda1 /mnt/
Помним, что NVMe диск у нас будет примонтирован в /home
mkdir /mnt/home
mount /dev/nvme0n1p1 /mnt/home/
Оба диска смонтированы, возвращаемся к нашему VDS.
В личном кабинете переводим VDS в аварийный режим, чтобы исключить запись на диск в процессе копирования.
Открываем VNC и попадаем в терминал аналогичного Grml образа.
Так же запускаем на нем SSH, задаем пароль и подключаемся по сети.
Монтируем диск /dev/vda1 и проверяем
mount /dev/vda1 /mnt/
ls -l /mnt
Запускаем копирование файловой системы через rsync, пропуская виртуальные каталоги
rsync -avxHAX --numeric-ids --info=progress2 \
--exclude={'/mnt/dev/*','/mnt/proc/*','/mnt/sys/*','/mnt/tmp/*','/mnt/run/*','/mnt/lost+found'} \
/mnt/ root@45.86.39.67:/mnt/
Ожидаем завершения процесса. Если диск большого объема, копирование может занять длительное время.
По завершению копирования возвращаемся на новый сервер, монтируем системные каталоги и заходим в гостевую систему (сhroot)
for i in /dev /proc /sys /run ; do mount --bind $i /mnt/$i; done
chroot /mnt/ /bin/bash
С помощью команды blkid получим информацию об UID дисков
Редактируем /etc/fstabи прописываем (изменяем) точки монтирования
Удаляем гостевого агента из системы, т.к. на выделенном сервере он не понадобится
rm /etc/cron.daily/phoenix-ga-updater
rm /etc/systemd/system/phoenix-ga.service
rm /usr/sbin/phoenix-ga
rm /etc/network/if-up.d/phoenix-ga-netinit
rm /etc/network/if-down.d/phoenix-ga-netinit
Прописываем сетевые настройки сервера в файл /etc/network/interfaces
auto enp130s0f0
iface enp130s0f0 inet static
address 45.86.39.67
netmask 255.255.255.128
gateway 45.86.39.1
dns-nameservers 8.8.8.8 8.8.4.4
Не забываем установить драйвер для сетевой карты сервера.
apt update
apt install firmware-bnx2x
После чего ставим загрузчик на диск /dev/sda
grub-install /dev/sda
update-initramfs -u
grub-mkconfig -o /boot/grub/grub.cfg
Важно! Обратите внимание, что загрузчик устанавливается именно на диск /dev/sda, а не на раздел /dev/sda1.
Возвращаемся в раздел “Аренда серверов” и отключаем ISO образ.
После чего сервер будет перезагружен в перенесенную операционную систему. Заходим на сервер по SSH.
Проверяем конфигурацию Nginx, Apache2 и другого ПО на явное указание старого IP-адреса в конфигурациях. Если есть - меняем на новый IP-адрес
grep -rl "80.81.104.11" /etc | xargs -n1 sed -i "s|80.81.104.11|45.86.39.67|g"
Если у вас VDS был без панели управления NetAngels, пропустите последующие шаги (*).
* Выключаем панель управления NetAngels, т.к. на выделенных серверах она не используется в работе
systemctl disable --now netangels-panel.service
* Отключаем автонастройку сети в Nginx
rm /etc/systemd/system/nginx.service.d/override.conf
systemctl daemon-reload
* В файл /etc/nginx/listen.conf прописываем и сохраняем
listen 45.86.39.67:80;
Перезапускаем Nginx и при необходимости другие сервисы
systemctl restart nginx
Меняем в DNS старый IP-адрес на новый и ждем, когда изменения вступят в силу, обычно не более часа.
Таким образом мы смигрировали VDS на железный сервер без каких-либо изменений в логике работы ПО.
При необходимости можно провести тюнинг настроек ПО, например, увеличить количество воркеров в Nginx, оптимизировать буферы в MariaDB и т.п.