Тестирую поддержку драйверов и интеграционных компонент Hyper-V во FreeBSD 10.0

Вчера вышла в релиз 10 версия FreeBSD в которой по умолчанию поддерживаются интеграционные компоненты для Hyper-V а так же драйвера для виртуализированных устройств Hyper-V. Строго говоря компоненты поддерживаются начиная с версии FreeBSD 8.3 (обусловлено это, как всем известно плотным сотрудничеством с NetAPP), только там их нужно устанавливать отдельно. Однако я решил сразу протестировать новый дистрибутив внутри виртуальной машины гипервизоров 2008R2 и 2012R2.
Как нам обещают здесь, поддерживаются следующие фичи:

1. Корректное гашение гостевой ОС с консоли Hyper-V, а значит и выключение через скрипты PS.
2. Синхронизация времени гостевой ОС с хоста (сильно надеюсь, что это уберет проблему регулярных "calcru runtime went backwards")
3. Интегрированная поддержка виртуальных шин IDE и SCSI (что даст более удобную и прямую работу с дисковой подсистемой)
4. Поддержка синтетического драйвера сетевого адаптера Hyper-V (скажем нет ограничению в 100 мегабит на адаптер и провисаниям трафика при миграции)
5. Живая миграция с сохранением статического и динамического IP. Спорный пункт - у меня и без этого прекрасно сохранялись айпишники при живой миграции как Static так и DHCP, при условии наличия статического MAC адреса виртуальной машины. Скорее всего я просто не понял смысла этого пункта :)

Сразу хочу заметить, хоть это и очевидно, что для гипервизора 2012R2 нужно выбирать первое поколение виртуальных машин. Что порадовало сразу в момент установки - это наличие живого сигнала Heartbeat - OK (а не No Contact, как это было раньше):
heartbeat

А так же понимание из коробки синтетического сетевого адаптера Hyper-V (я для тестов добавил в виртуалку сразу два адаптера - синтетический и эмулируемый, hn0 это как раз синтетический адаптер):
synthadapter

После установки из dmesg видно что драйвера подгружаются сразу (для общего понятия ситуации достаточно будет заглянуть в GENERIC конфиг после установки):
vmbus

Как я и предполагал, все работает благодаря тому, что в GENERIC для x64 версии "из коробки" прописана загрузка компонентов интеграции:
# HyperV drivers
device hyperv # HyperV drivers

Теперь проверяем выключение виртуальной машины из консоли:
shutdown

Итак, сразу же подтверждаются пункты 1, 2 и 4. И сетевой адаптер работает, и время синхронно. Однако проблему "runtime went backwards" это не решило.
Первой установкой я поставил на диск IDE. Со второй установки попробовал поставить на SCSI диск. Установка проходит, операционная система диск видит, но загрузка с него не работает - что логично, для загрузки со SCSI дисков нужно второе поколение виртуальных машин.
По просьбам друзей для теста зарядил размер виртуального диска в 100 гигабайт, так как кто испытывал проблемы с работой больших разделов внутри виртуалньой машины FreeBSD. Установка прошла удачно, партиция разметилась, точка монтирования установилась, своп создался, файлы копируются, в общем все штатно. Еще я предположу, что с расширенной поддержкой виртуальных шин, можно безопасно работать с динамическими дисками. Хоть у меня не было проблем с ними и ранее, но в интернете часто попадались жалобы на то, что динамические диски с гостевой FreeBSD дают сбои операций I/O. Такое случается на высоконагруженных виртуальных машинах. Будем надеяться что проблема решена, буду проверять на нагруженных хостах. Пункт 3 тоже подтвержден.

К сожалению пока нет поддержки динамической памяти (не смотря на наличие в ядре модуля virtio_baloon), чего очень и очень бы хотелось. Если бы была и динамическая память, то получилась бы совсем конфетка :)
Но и без нее в общем то любителям FreeBSD стало жить легче и веселее в виртуализированной среде.

Поделиться

Опубликовать в Facebook
Опубликовать в LiveJournal

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

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

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>