Как перенести VDS сервер Ubuntu на другой хостинг?



@bachatsky

Есть VPS сервер с Ubuntu 16.04 c настроенным сайтом на базе NodeJS и React/Redux.
Хочу перенести его к другому провайдеру.
Устанавливать по новой все библиотеки/настраивать все конфиги не вариант — делалось всё не мной, да и максимально законсервировано, без зависимостей от внешнего мира.
В т.ч. какие-то репозитории уже умерли, какие-то утилиты обновились и несовместимы.
Физического доступа к серверу естественно нет, всё нужно делать удаленно, Есть доступ по SSH.
Какие есть варианты? Как спасти сайт?


Решения вопроса 0


Ответы на вопрос 7



@Sanes

Устанавливать по новой все библиотеки/настраивать все конфиги не вариант

Чтобы следующий раз не страдать. Настройте ещё раз, но теперь с помощью Ansible.



@MaxKozlov

согласен с опубликованными ответами в части «Перенастроить»
при наличии доступа только к ssh (надеюсь, админского) относительно просто будет попробовать rear — relax and recover
Бэкап на шелл-скриптах и базовых утилитах. При переносе могут быть проблемы только с зеркалами на btrfs и, может, udev, если основа виртуалки «другой системы»



@akelsey

Самый простой способ это подсмотреть точный дистрибутив, как я понял это Ubuntu 16.04, нужно задеплоить на новом VPS точно такой же сервер с Ubuntu 16.04, и затем с помощью команды rsync, вроде такой:

sudo rsync -aAXvP — exclude={/boot/,/dev/,/etc/fstab,/etc/modprobe*,/etc/modules/,/lost+found/,/etc/mtab,/etc/network*,/etc/sysconfig/ip*,/etc/sysconfig/kernel,/etc/sysconfig/network*,/lib/modules/,/media/,/mnt/,/proc/,/run/,/sys/,/tmp/,/var/lib/lxcfs/,/var/lock/}  root@mysite.ru:/ /

я бы попробовал это сделать например на любой системе виртуализации у себя дома, на работе, потом на хостовой машинке подменить hosts файл и проверить что всё работает (за одно этот образ машины можно потом будет сохранить как бэкап) и если всё ок — покупать новую VPS и повторить.

PS
В целом можно потом на той же машине на которую скопировался сайт попробовать обновить дистрибутив до 22.04 и уже на новую впс если всё взлетит (нужно проверить весь функционал), уже ставить систему с поддержкой, т.к. 16.04 закончилась в августе 2021.



@rPman

Сначала делаем backup.
При наличии root доступа штатно linux переносится даже простым tar!

Хостер может добавить своих утилит, свои скрипты и особенности настройки сети, свой способ загрузки (например нет /boot а загрузка ядра и initramfs идет ‘снаружи’), это все в принципе восстанавливается, скрипты хостера чистятся и т.п… в основном только тут могут быть проблемы но все просто решается.

Затем восстановление — и тут могут быть проблемы.
Универсально все будет работать только с не openvz/lxc/docker системами виртуализации, так как такие могут тупо не позволить работать с версиями системных библиотек (очень редко), отличных от хоста… а у тебя древняя ubuntu (я запускал в chroot просто утилиты, развернув образ с помощью debootstrap еще до появления docker, так что технически шансы проблем — минимальны). Дело в том что хостер может запретить, а точнее не дать инструментов для подмены системных файлов, а из самой работающей системы заменить ее саму нельзя (очень сложно).

p.s. я помню, поднимал систему, загрузив ее внутри user mode linux на машине даже без админовских прав, каскадно на системе с openvz (по умолчанию может не хватать некоторых модулей ядра, особенно для настроек сети, но там все решаемо), народ забыл про этот способ контейниризации без наличия аппаратной поддержки виртуализации, но она есть, старейшая, мощнейшая и удобнейшая из всех (по поводу производительности спорно — числодробилки быстро, но системные вызовы медленее)
—————

Если виртуальная машина kvm/vbox/vmware/… то проблем не будет от слова совсем. Чтобы развернуть бакап, понадобится на новом месте загрузиться в консоль восстановления (лучше с iso образа), отформатировать файловую систему и тупо распаковать архив с бакапом (обычно /dev в архив не складывают, но если его не будет на новой системе то я помню старые версии ubuntu ругались на отсутствие null, это все решается ручным копированием тут же), затем переустановить загрузчик

grub-install /dev/sdX --root-directory=/path/to/mounted/root/

Ну и само собой архитектура исходной машины и новой должны совпадать, т.е. нельзя смешивать ни тип процессора (x86/arm ни битность x86/x64), правда особых проблем с запуском x86 на x64 быть не должно.



@caramingo

Доступ в админку в VPS есть?
Если есть возможность загрузиться с загрузочного диска подключив VPSку
То можно каким нибудь акронисом, снять образ рабочей системы и потом развернуть его на новом VPS провайдере.



@AleX52

Какая панель управления VDS? Если в ней нет возможности самому сделать образ текущего диска, тогда можно попросить хостера, чтобы сделал образ и выдал его.



@Ragnar1

Подклбчаетесь через веб интерфейс хостинг провайдера к вашей виртуальной машине, завершает её работу, подключите образ clonezilla, клонирует диск в файл.
На новой vps делаете тоже самое до момента подключения образа clonezilla, выбираете тот файл с образом старой системы и ждёте завершения процесса
Размер диска целевого vps должен быть равен или больше исходного или можгут возникнуть проблемы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *