P2V или как преобразовать физический сервер в виртуальный
Задача: превратить старый физический сервер с Debian11 в виртуальную машину на ESXi гипервизоре.
Вариант с конвертером (converter standalone / vCenter converter) у меня не удался ни разу, поэтому пошел другим путем.
В процессе понадобится виндовая машина со свободным местом на диске >= двухкратному размеру системного диска сервера.
При желании можно обойтись без нее.
- Подготовка.
Останавливаем на сервере все задачи, изменяющие критичные данные (типа mysql).
Убеждаемся что помним пароль рута, а если его не было — устанавливаем.
Если кроме системного раздела на сервере были монтирующиеся дополнительные, но которые переносить не надо, желательно сразу отредактировать fstab — закоментить лишнее.
Устанавливаем если ранее не было qemu: apt update && apt install qemu qemu-utils
- Копируем системный раздел в образ примерно так:
dd if=/dev/sda of=/root/sda.img bs=8M conv=sync,noerror status=progress
- Конвертируем образ в vmdk:
qemu-img convert -o compat6 sda.img -O vmdk sda-vmware.vmdk
- Вытаскиваем vmdk файл на виндовую машину. Устанавливаем VMware Workstation. Создаем в последнем новую ВМ с параметрами примерно как у сервера (проц, память), указываем что будет ubuntu18 x64, и что систему поставим позже (диск по дефолту 20Гб). Теперь, не запуская новую ВМ подменяем vmdk файл (тут есть вариант указать при создании «использовать имеющийся диск», но этот пункт есть не у всех версий VMware Workstation).
- Запускаем виртуальную машину. Тут могут посыпаться некоторые ошибки, может понадобиться пароль рута. У меня в частности наругалось на отсутствующие диски. Также может измениться UUID, тогда делаем blkid и прописываем в fstab верные.
- Гасим виртуальную машину и делаем экспорт в OVF.
- Подключаемся к гипервизору ESXi и загружаем в него OVF.
Если возникнет ошибка типа «No supported hardware versions among» — нужно отредактировать ovf-файл, исправить в нем vmx-xx (где хх например 16) на поддерживаемую гипервизором версию, например 13 или 12.