Сегодня выполним экспорт виртуальной машины в ESXi 7 в шаблон OVF. Затем выполним импорт виртуальной машины уже с другим именем на тот же гипервизор из шаблона OVF.
OVF (Open Virtualization Format) — открытый стандарт для хранения и распространения виртуальных машин. Стандарт описывает открытый, переносимый, расширяемый формат для распространения образов виртуальных машин. Стандарт OVF не привязан к какой-либо реализации гипервизора или аппаратной архитектуре.
В ESXi 7 экспорт в OVF шаблон выполняется для выключенной виртуальной машины.
Для чего это может понадобиться?
- Копирование виртуальной машины с одного гипервизора на другой.
- Резервное копирование и восстановление виртуальной машины.
- Экзотический способ создания копии виртуальной машины.
- Создание шаблона настроенной виртуальной машины для быстрого развёртывания.
Подготовка к экспорту OVF
Перед тем как приступить непосредственное к экспорту, нужно подготовиться.
Удалите снапшоты виртуальной машины, это уменьшит размер экспортируемых файлов. Убедитесь, что на вашем диске достаточно свободного места. Скорее всего размер скачиваемых файлов будет меньше выделенного места под виртуальную машину, но узнать это можно опытным путём. Исходя из размера виртуальной машины, пропускной способности сети и скорости дисков выделите время на простой.
Если вы собираетесь сохранять данные не на системный диск, настройте в браузере директорию по умолчанию для хранения скачанных файлов. Убедитесь что в браузере разрешены всплывающие окна.
Отключите антивирусы и лишние программы, нагружающие ваш компьютер.
Процесс экспорта может быть долгим. В ESXi 7 сессия пользователя автоматически завершается, если он не был активен в ней более 15 минут, отключите этот механизм. Выберите свою учетную запись в правом верхнем углу веб-интерфейса → Settings → Application timeout. Отключите (off).
Извлеките подключённые образы CD-дисков или дискет.
Выключите виртуальную машину.
Экспорт OVF шаблона
Правой кнопкой на виртуальную машину, Export.
Выберите файлы для экспорта, по умолчанию выбираются необходимые файлы. Файл NVRAM хранит настройки BIOS, если вы их меняли, выделите его тоже, я не буду его скачивать, что позже привнесёт в нашу операцию некоторые трудности, которые мы с успехом преодолеем. Export.
Каждый файл будет скачиваться отдельно.
Я скачал три файла, давайте посмотрим что они из себя представляют. Самый большой по объёму файл VMDK, это диск виртуальной машины. Дисков может быть несколько.
Как видим, размер диска чуть меньше 7 ГБ, хотя размер диска на виртуальной машине 20 ГБ. Лишние нули в конце отброшены.
MF файл хранит хэш-суммы дисков.
OVF — это конфигурационный файл виртуальной машины в формате XML, в котором описывается её структура.
Экспорт OVF шаблона выполнен.
Импорт OVF шаблона
Теперь выполним обратную операцию, импортируем OVF шаблон и сделаем виртуальную машину уже с другим именем.
Процесс импорта может быть долгим. В ESXi 7 сессия пользователя автоматически завершается, если он не был активен в ней более 15 минут, отключите этот механизм. Выберите свою учетную запись в правом верхнем углу веб-интерфейса → Settings → Application timeout. Отключите (off).
Переходим к хосту → Actions → Create/Register VM.
Выбираем Deploy a virtual machine from an OVF or OVA file. Next.
Указываем новое имя виртуальной машины. Кликаем на поле Click to select files or drag/drop.
Выбираем все файлы, которые мы ранее экспортировали. Открыть.
Список отобразился не полный, потому как из MF файла нужна только хэш-сумма. Next.
Выбираем хранилище. Я для разнообразия выбираю второе хранилища, не то из которого выполнял экспорт. Можно было бы даже импортировать и на другой гипервизор, но у меня он один. Next.
Выбираем сеть, тип диска Thin или Thick, выбираем, включать ли виртуальную машину после импорта.
- Thick provision lazy zeroed — толстый ленивый (по умолчанию). При создании занимает выделенный объём, но нулями не заполняет сразу, а по мере записи. Быстро создаёт большие винты, но потом тратит ресурсы на заполнение блоков нулями. При долгой работе в итоге превращается в жадный.
- Thick provision eager zeroed — толстый жадный. При создании заполняет выделенный объём нулями. Долго создаёт большие винты, зато потом летает.
- Thin provision — тонкий. Быстро создаётся, не занимает места на диске. По мере наполнения отжирает винт пока не заполнит весь выделенный для него объём. На это тратятся некоторые ресурсы. Опасен тем, что в один прекрасный момент места может не хватить, тогда с фризом нужно будет бороться танцами и бубном.
Next.
А теперь внимание — ошибка!
A required disk image was missing
Не хватает какого-то диска. Или мы забыли отмонтировать ISO образ CD-ROM, или забыли про файл NVRAM, что правда. Вернее, мы его и не скачивали. Отменяем операцию, Cancel.
Редактируем OVF файл. Действительно, в зависимостях есть mpsec.nvram (file2 ), который мы не скачивали. Стираем эту зависимость из XML, файл автоматически создастся при первом запуске.
Ещё второе упоминание есть, тоже стираем. Сохраняем конфиг.
Повторяем операцию импорта. На этот раз ошибки нет. Finish.
Начинается импорт файлов.
Дожидаемся завершения операции.
Появилась новая виртуальная машина.
Отключаю на новой виртуальной машине сеть и проверяю, виртуальная машина загружается.
Импорт OVF шаблона выполнен.
Примечания
После экспорта OVF шаблона было бы неплохо проверить, что мы всё правильно скачали. Для этого нужно сверить хэш-суммы. У меня есть отдельная утилита, вы можете воспользоваться ей, или использовать аналоги, или не сверять хэш-сумму:
Хеш-суммы в контекстном меню Windows (MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512)
У меня хэш-сумма VMDK файла в формате SHA1 совпала, значит, файл диска скачался без ошибок.
Если мы импортируем OVF шаблон на гипервизор другой версии, то может так произойти (а так обычно и происходит), что виртуальная машина не создаётся, отсутствуют указанные в конфигурационном файле устройства. В этом случае мы можем создать виртуальную машину вручную и в качестве дисков добавить экспортированные VMDK файлы, предварительно загрузив их в хранилище.
Или можно просто создать виртуальную машину, удалить у неё диск по умолчанию, загрузить в папку новой виртуальной машины на хранилище VMDK файл, добавить его в качестве диска в настройках виртуальной машины.
Перед импортом и экспортом боевых машин потренируйтесь на чём-нибудь менее важном. Не храните виртуальную машину на одном диске, используйте RAID. Не удаляйте резервные копии до полной реанимации системы.