Инвестиционная стратегия

Автоматизация тестирования Libvirt с Bhyve на FreeBSD: опыт и перспективы

Инвестиционная стратегия
CI for Libvirt/Bhyve on FreeBSD

Подробный обзор интеграции автоматизированного тестирования (CI) Libvirt с гипервизором Bhyve на операционной системе FreeBSD, описывающий технические сложности, решения и планы по развитию тестовой инфраструктуры для повышения качества и стабильности виртуализации. .

FreeBSD уже давно заслужила репутацию надежной и производительной операционной системы, особенно в сфере серверных решений и виртуализации. Одним из ключевых инструментов для управления виртуальными машинами на FreeBSD является Libvirt - популярный, кроссплатформенный API и демона управления виртуализацией, поддерживающий различные гипервизоры. В последнее время особое внимание привлекает нативный гипервизор FreeBSD - Bhyve, сочетающий современную архитектуру с высокой производительностью. Однако успешное совместное использование Libvirt и Bhyve в среде FreeBSD требует создания надежной системы автоматического тестирования (CI), что значительно упрощает развитие, предотвращает ошибки и гарантирует стабильность продуктов. Развитие CI для Libvirt с поддержкой Bhyve на FreeBSD стало реальностью благодаря спонсорской поддержке FreeBSD Foundation и усилия опытных разработчиков, которые серьезно взялись за интеграцию и усовершенствование тестовой среды.

Одной из важных задач была реализация процесса постоянной интеграции, позволяющей автоматизировать тестирование и быстро выявлять ошибки, особенно перед выпуском новых версий. Исторически проверка новых релизов Libvirt для FreeBSD была трудоемкой и зачастую вручную, что нередко приводило к тому, что релизы выходили с ошибками, не замеченными вовремя из-за ограниченного времени. Для решения этой проблемы стало необходимо настроить CI, способный выполнять полный набор тестов в условиях FreeBSD+Bhyve. С точки зрения тестового окружения значительным вызовом стала зависимость Libvirt от набора тестов Libvirt TCK (Technology Compatibility Kit). Проект Libvirt TCK имеет много готовых сценариев для проверки совместимости и функциональности, однако первоначальная архитектура предполагает использование образов, создаваемых с помощью утилиты virt-builder, входящей в пакет Libguestfs.

Портирование Libguestfs на FreeBSD представляет собой крайне сложную задачу ввиду большого числа внутренних зависимостей и отличий в архитектуре системы. Именно поэтому команда решила использовать обходные методы - запуск virt-builder на Linux-хосте с передачей образов по SSH или совместное использование разделов для копирования готовых образов на FreeBSD. Другой эксперимент заключался в попытке запустить virt-builder внутри Linuxulator - подсистемы FreeBSD для исполнения Linux-приложений, однако эти подходы имели ограниченный успех. Было решено, что для первоначального запуска CI можно использовать один раз созданные образы, которые затем многократно переиспользуются, значительно снижая необходимость повторного запуска virt-builder на FreeBSD. Этот компромисс позволил сосредоточить усилия на адаптации самих тестов и исправлении недостающих функций драйвера Libvirt для Bhyve.

 

В ходе разработки были реализованы новые возможности, такие как поддержка virtio-rnd - виртуального генератора случайных чисел - что улучшило совместимость и безопасность виртуальных машин. Для некоторых функций оказалось рациональнее добавить их в поддержку Bhyve, а не пытаться обходить отсутствующие возможности, что значительно ускорило продвижение проекта. Создание и интеграция полного набора тестов в CI-среду заняла несколько релизов и требовала не только изменений в тестах Libvirt TCK, но и множества пул-реквестов, чтобы учесть особенности FreeBSD и ограничения Bhyve. В конечном итоге основные тестовые группы, важные для использования Libvirt с Bhyve, такие как "domain", "networks" и "storage", были успешно реализованы и запущены в режиме CI. При этом часть тестов, таких как "hooks", "nwfilter", "qemu" и "selinux", пока не запускаются, поскольку либо не поддерживаются гипервизором Bhyve, либо не релевантны среде FreeBSD.

 

Особенно перспективно рассматривается возможность в будущем добавить поддержку nwfilter - системы фильтрации сетевых пакетов. На данный момент также не планируется активно поддерживать QEMU на FreeBSD, поскольку Bhyve является нативным и основным гипервизором платформы, хотя технически поддержка vmm(4) для QEMU существует, что оставляет возможность для расширения функционала. Отдельным вызовом стала настройка Jenkins - одной из самых популярных систем автоматизации CI/CD. Несмотря на нехватку опыта в конфигурировании этой системы, удалось построить работающую "конвейерную" цепочку из двух основных этапов. Первый заключается в сборке "-devel" версии порта Libvirt, бранируемого из Git-репозитория через утилиту poudriere и публикации сборки в пакетный репозиторий.

 

Второй шаг включает разворачивание контейнера BastilleBSD, установку собранных пакетов, загрузку репозитория Libvirt TCK и запуск тестов с последующей публикацией результатов. Использование плагина Job DSL позволило хранить конфигурацию задач Jenkins в Git, что повышает прозрачность и управляемость инфраструктуры. Тем не менее, остаются важные направления для улучшения. Одним из них является возможность собирать произвольные Git-версии порта без необходимости явного изменения версий и контрольных сумм в Makefile и distinfo. Такой подход значительно упростит экспериментальную проверку изменений и позволит вести более гибкие тесты.

Также интересна перспектива хранить не только конфигурацию заданий Jenkins, но и всю конфигурацию системы автоматизации в виде кода, что сократит ручную настройку и улучшит воспроизводимость. Не менее важным остается полная автоматизация процесса создания тестовых образов, избавляющая от необходимости "ручной" подготовки образов virt-builder. Подводя итоги, интеграция CI для Libvirt с Bhyve на FreeBSD открывает важные возможности для стабильного и качественного развития виртуализации в этой операционной системе. Благодаря системному подходу, использованию существующих тестов Libvirt TCK, а также тщательной адаптации под особенности FreeBSD и Bhyve, был создан фундамент для дальнейшего наращивания функциональности и улучшения качества. Разработка и внедрение CI позволят своевременно выявлять ошибки и фиксить их еще до выхода новых релизов, что положительно скажется на опыте пользователей и администраторов FreeBSD-систем.

Перспективы включают расширение покрытия тестов, автоматизацию процессов, а также потенциальное добавление поддержки новых функций в Libvirt и Bhyve. В итоге, данный проект является блестящим примером успешного open source сотрудничества и внесения значимого вклада в экосистему FreeBSD и виртуализации в целом. .

Автоматическая торговля на криптовалютных биржах

Далее
有哪些值得推荐的AI以图生图软件? - 知乎
Вторник, 06 Январь 2026 Лучшие AI-программы для создания картинок на основе изображений: обзор и рекомендации

Изучение топовых программ искусственного интеллекта, которые позволяют создавать новые изображения на основе исходных, а также советы по выбору и использованию таких инструментов для различных целей. .

国内免费好用的AI画图网站推荐? - 知乎
Вторник, 06 Январь 2026 Лучшие бесплатные AI-сервисы для создания изображений: обзор популярных китайских платформ

Обзор современных китайских бесплатных сервисов искусственного интеллекта для генерации изображений. Анализ функционала, преимуществ и особенностей популярных платформ, идеально подходящих для творческих проектов и профессионального использования.

【AI鬼画符】为啥在AI生成“带文字的图片”时,会
Вторник, 06 Январь 2026 Почему ИИ часто ошибается при создании изображений с текстом и как это влияет на качество AI-генерируемого контента

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

为什么AI画图似乎无法正确地画出中文字? - 知乎
Вторник, 06 Январь 2026 Почему ИИ испытывает трудности с правильным изображением китайских иероглифов

Разбираемся в причинах, почему искусственный интеллект часто не может точно воспроизвести китайские иероглифы в своих рисунках и каким образом можно повысить качество таких изображений. .

推荐一些好用的文生图和图生图AI? - 知乎
Вторник, 06 Январь 2026 Лучшие AI-инструменты для создания изображений из текста и преобразования изображений в изображения

Обзор современных AI-технологий, которые позволяют преобразовывать текст в изображения и модифицировать изображения при помощи нейросетей, их особенности и применение в разных сферах .

目前文生图方面的AI,哪个最强? - 知乎
Вторник, 06 Январь 2026 Лучшие ИИ для генерации изображений по текстовому описанию: кто лидирует сегодня?

Развитие технологий искусственного интеллекта в сфере генерации изображений по текстовому описанию претерпевает стремительный рост. Современные модели превосходят ожидания и находят применение в самых разных областях - от дизайна до развлечений.

用MACmini M4版本部署AI生图大模型效率如何? - 知乎
Вторник, 06 Январь 2026 Эффективность развертывания крупномасштабных AI-моделей генерации изображений на Mac mini M4

Подробный анализ производительности и возможностей Mac mini M4 при использовании для запуска крупных моделей искусственного интеллекта, специализирующихся на генерации изображений. .