Как стать автором
Обновить

Перенос виртуальной машины Debian из облака в ESXi

Время на прочтение3 мин
Количество просмотров3.8K

Несколько лет во французском облаке Scaleway у меня крутилась виртуалка на Debian 10. Там LAMP-стэк, несколько сайтов и несколько сервисов в docker. После того, как я переоборудовал свой десктоп под homelab, было решено перенести эту виртуалку на свой bare-metal гипервизор ESXi 7.0. Понятно, что воссоздать виртуальную машину можно было бы вручную путем переноса конфигов. Но там много чего работало, и я уже не до конца помнил, что именно, поэтому в приоритете были варианты с выкачиваем образа всей машины.

Как выгрузить образ средствами самого провайдера я не нашел, поэтому пошел другим путем. Позже я выяснил, что получить образ все-таки можно. Однако мое решение получилось более или менее толковым, поэтому я расскажу о нем, а в конце упомяну, какой еще у меня оказывается был вариант.

Забираем образ

Для создания виртуальной машины из живого сервера у VMware есть бесплатная утилита - VMware Standalone Converter. Скачать ее можно на сайте компании, но для этого потребовалась бы регистрация, поэтому я взял дистрибутив на рутрекере.

Утилита работает только под Windows. Интерфейс у нее интуитивно понятный, однако сразу после ввода всех реквизитов исходного сервера она выдала ошибку: «The destination does not support EFI firmware.» Выяснилось, что Standalone Converter не поддерживает импорт виртуальных машин Debian, и ругается он завуалировано именно на это. Однако ограничение можно преодолеть, если заставить конвертер думать, что импортируется Ubuntu.

С этой целью я поменял id и номер версии в /etc/os-releases следующим образом:

PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="20.04"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=ubuntu
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

После этого импорт дойдет до 97% и конвертер все равно выдаст ошибку, но это неважно - машина уже будет в ESXi и все, что нам останется, это переконфигурировать ее вручную.

Делаем машину загружаемой

Лучше всего скачать Debian Live CD и подключить его к нашей новой виртуалке. С него можно запустить shell в Rescue Mode. Плюс здесь в том, что в режиме восстановления Live CD автоматически монтирует имеющиеся жесткие диски.

Дальше можно пройти долгий путь с редактированием grub.cfg и fstab для того, чтобы виртуальная машина начала загружаться. Однако добившись старта загрузки ядра, я обнаржил, что имеющиеся в системе ядра linux заточены под работу в облаке, и загрузка все равно застрянет на позднейших этапах (в моем случае на строке Clocksource tsc unstable). В ходе же замены ядра все необходимые обновления конфигураций выполнятся автоматически. Таким образом, загрузившись с Live CD можно сразу переходить к обновлению ядра.

Самый простой вариант – обновление через пакетный менеджер:

apt-cache search linux-image
sudo apt install linux-image-<flavour>

В конце установки произойдет изменение grub.cfg и после перезагрузки машина заработает как того и хотелось. В дальнейшем никаких проблем с ней замечено не было.

Возможный альтернативный вариант

Уже когда все работало, я выяснил, что созданный моим облачным провайдером образ виртуалки можно скинуть в Object Storage. Образ будет в формате qcow (используется QEMU). Оттуда его можно скачать, и судя по инструкциям сконвертировать в vmdk. Я не пробовал, но по-видимому машина также сначала получится незагружаемой, и последняя часть этой инструкции все равно пригодится.

Теги:
Хабы:
Всего голосов 2: ↑2 и ↓0+2
Комментарии7

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн