Как переместить существующую виртуальную машину под управление vm-bhyve?

Вопрос или проблема

Некоторое время назад я вручную создал виртуальную машину на своем настольном ПК с FreeBSD.

Она использует том ZFS объемом 32 ГБ, который я создал только для нее:

% zfs list | grep vm
mypool/i386vm    34.3G  4.85T  18.2G  -

Я хотел бы управлять ею, используя фронт-энд mv, предоставленный портом sysutils/vm-bhyve. Как мне это сделать?

Я установил vm_dir в zfs:mypool.

Затем я “создал” определение виртуальной машины с помощью vm create little. Теперь я пытаюсь изменить ее конфигурацию с помощью vm config little:

loader="bhyveload"
cpu=1
memory=256M
network0_type="virtio-net"
network0_switch="pub"
disk0_type="virtio-blk"
disk0_name="i386vm"
uuid="5339d118-....-fc4dd43d225b"
network0_mac="58:....:f2"

Однако, когда я пытаюсь запустить виртуальную машину с помощью vm start little, я вижу, что она пытается вызвать bhyveload с неправильным путем к диску:
bhyveload -c /dev/nmdm-little.1A -m 256M -e smbios.system.uuid=5339d118-b8e4-11ef-9352-fc4dd43d225b -e autoboot_delay=3 -e bhyve_vm_name=little -d /mypool/little/i386vm little

Как мне заставить ее использовать мой существующий том ZFS? Если том нужно переименовать или переместить (в пределах того же пула) — как мне это сделать?

Ответ или решение

Как перенести существующую виртуальную машину под управление vm-bhyve

Если вы уже создали виртуальную машину (VM) на своем диспетчере FreeBSD и теперь хотите управлять ею с помощью фронтенда mv, предоставляемого пакетом vm-bhyve, следуйте этим шагам.

1. Подготовка среды

Убедитесь, что необходимые для работы vm-bhyve модули загружены и пакет установлен. Проверьте наличие соответствующей версии FreeBSD и обновите систему, если это необходимо.

pkg install vm-bhyve

2. Настройка переменной vm_dir

Вы уже указали, что переменная vm_dir установлена в zfs:mypool. Убедитесь, что это действительно так, и выполните:

echo 'vm_dir="zfs:mypool"' >> /etc/vm-bhyve.conf

3. Создание конфигурации для существующей VM

Вы создали конфигурацию для вашей ВМ с именем little. Однако вам нужно сделать некоторые изменения в конфигурации, чтобы вернуть используемый вами ZFS диск. Для этого выполните команду:

vm config little

Затем откорректируйте параметры конфигурации. Например:

loader="bhyveload"
cpu=1
memory=256M
network0_type="virtio-net"
network0_switch="pub"
disk0_type="virtio-blk"
disk0_name="i386vm"  # Имя вашего существующего ZFS тома
uuid="5339d118-....-fc4dd43d225b"
network0_mac="58:....:f2"

Убедитесь, что disk0_name указан правильно для уже существующего тома mypool/i386vm.

4. Устранение проблемы с неправильным путем к диску

Как вы заметили, bhyveload пытается извлечь том с неправильным путём. Это происходит потому, что vm-bhyve ожидает, что диск будет находиться в директории VM. Вам нужно создать символическую ссылку или переместить существующий ZFS том, чтобы vm-bhyve смог найти его.

Если вы хотите просто переместить ZFS том, выполните следующую команду:

zfs rename mypool/i386vm mypool/little/i386vm

Это создаст необходимую структуру, чтобы vm-bhyve нашел ваш том.

5. Запуск виртуальной машины

После внесения всех изменений попробуйте снова запустить ВМ:

vm start little

Если возникнут ошибки, внимательно просмотрите вывод и подождите, пока все процессы завершатся. Теперь ваша виртуальная машина должна успешно запуститься с использованием существующего ZFS тома.

Заключение

Перенос уже существующей виртуальной машины под управление vm-bhyve может показаться сложным, однако, следуя указанным шагам и корректируя конфигурацию соответственно, вы сможете интегрировать ее в вашу среду управления виртуальными машинами. Убедитесь, что все команды выполнены корректно и проверяйте вывод на предмет возможных ошибок, чтобы упростить процесс устранения неполадок.

Если у вас возникли дополнительные вопросы, не стесняйтесь обращаться за помощью. Успехов в управлении вашими виртуальными машинами!

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

Капча загружается...