KVM на RHEL 6 Beta: пробуем альтернативу VMware для разработческих сред
Red Hat Enterprise Linux 6 Beta делает ставку на KVM как основной гипервизор. Проверили его на разработческих VM - virt-manager сырой, производительность приличная.
Red Hat Enterprise Linux 6 Beta включает KVM как основной гипервизор с поддержкой virt-manager и инструментов миграции
Один из клиентов на сопровождении держит несколько серверов разработки: десяток VM с разными версиями Linux, пара Windows-машин для тестирования совместимости. Всё это живёт на VMware ESXi 4.0, который поставили в начале года. Работает нормально, жалоб нет - но лицензионный вопрос периодически всплывает. ESXi бесплатный, а вот vCenter и vSphere с нормальным управлением уже нет. Для разработческой инфраструктуры платить за Enterprise-стек ощущается избыточным.
Когда Red Hat выкатила RHEL 6 Beta с акцентом на KVM как основной платформе виртуализации, решили потестировать. Не на продакшне - именно на dev-серверах, где можно себе позволить поэкспериментировать.
Что нас интересовало
Вопрос был прикладной: можем ли мы управлять десятком VM без VMware с приемлемым уровнем удобства, и насколько производительность гостей отличается от того, что привыкли видеть на ESXi?
KVM в RHEL 6 Beta идёт как полноценный компонент дистрибутива - не отдельная сборка, не сторонний пакет. Ядро включает kvm.ko и kvm-intel.ko прямо из коробки, libvirt используется как API-прослойка, virt-manager предлагается как графическое управление. Red Hat явно рассматривает это как замену Xen, от которого в RHEL 6 отказались.
Поставили Beta на отдельный физический сервер - четырёхъядерный Intel с 16 ГБ RAM, то есть hardware примерно сопоставимое с ESXi-хостом у клиента. Развернули несколько гостей: Ubuntu 10.04, CentOS 5.5, Windows 2008 R2.
virt-manager: рабочий, но не VMware VI Client
Честно: virt-manager в нынешнем виде заметно проще, чем VI Client. Создание VM через мастер работает, базовые операции - запустить, остановить, посмотреть консоль - всё присутствует. Но как только выходишь за этот минимум, начинаются неудобства.
Несколько наблюдений:
- Горячее добавление дисков формально поддерживается через virsh, но в интерфейсе virt-manager делается неочевидно. Пришлось лезть в XML-конфигурацию VM руками через
virsh edit. - Снапшоты в Beta работают нестабильно. Создать можно, откатиться - тоже, но интерфейс для управления снапшотами в virt-manager практически отсутствует. Всё через virsh в командной строке.
- Мониторинг ресурсов по гостям очень базовый. Отдельных счётчиков по сети или дискам в GUI нет - смотришь через
virt-topв консоли. - Клонирование VM есть, но медленнее чем хотелось бы - копирует образ диска целиком без дедупликации.
Миграция VM между хостами заявлена через virsh migrate - на бету пробовать не стали, подождём стабильного релиза.
При этом libvirt как API - вполне разумный фундамент. Это не VI Client, но и не безнадёжный самопал. Видно, что Red Hat вкладывается в инструментарий системно.
Производительность: лучше, чем ожидали
Вот тут приятный сюрприз. Гостевые VM на KVM с паравиртуализированными драйверами (virtio для диска и сети) показали производительность, которую сложно отличить от ESXi-гостей на аналогичном железе.
Синтетические тесты мы не гоняли специально - нет смысла строить выводы на бенчмарках. Но конкретные задачи разработчиков на гостях: сборка проектов, тесты баз данных, компиляция - ощущаются одинаково на обеих платформах. Разработчики, которых попросили поработать несколько дней на KVM-машинах, не высказали претензий по скорости.
Windows 2008 R2 в качестве гостя работает заметно хуже без virtio-драйверов - это известный нюанс KVM, драйверы для Windows надо ставить отдельно пакетом VirtIO Win drivers. После установки - вполне приемлемо.
Сетевой стек с virtio-net быстрый, к дисковому вопросов тоже нет при использовании virtio-blk. Если кто-то ставит гостей без паравиртуализированных драйверов - там, конечно, хуже, но это и с другими гипервизорами так.
Что в итоге
Заменить VMware ESXi на KVM прямо сейчас на этом клиенте мы не готовы - не из-за производительности, а из-за уровня инструментария. Управлять десятком VM через virsh в командной строке и частично через сырой virt-manager - это один уровень комфорта. Управлять через VI Client с нормальными снапшотами, удобным клонированием и внятным мониторингом - другой.
Но для dev-среды с небольшим числом VM и командой, которая не боится консоли - KVM на RHEL 6 вполне реален. Производительность честная, платформа поддерживается Red Hat как первоклассный компонент дистрибутива, и это не временное решение.
Дождёмся финального релиза RHEL 6 - интересно, докрутят ли инструменты управления до состояния, при котором разговор о полноценной замене VMware на dev-сегменте станет предметным.
- VMware ESXi 4.0 бесплатно: экономим на лицензиях, теряем Service Console · 21 января 2010
- Hyper-V R2 Live Migration без SAN: живая миграция на iSCSI-хранилище · 4 февраля 2010