ADG Оставить заявку
Блог Инфраструктура 4 мин чтения

Xen 2.0 на Debian: три домена на одном железе без переплаты за лицензию

Поставили Xen 2.0 на Debian: маршрутизатор, почта и веб на одном сервере через паравиртуализацию. Что открытый гипервизор даёт прямо сейчас, а где ещё требует терпения.

Контекст момента

Вышел Xen 2.0 - открытый гипервизор с паравиртуализацией без платной лицензии

Месяц назад мы запустили первый боевой VMware ESX и остались довольны. Но там лицензия - и лицензия ощутимая. Когда вышел Xen 2.0, захотелось посмотреть: насколько открытый гипервизор реально конкурентоспособен, или это пока только для лабораторий?

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

Что такое Xen и почему паравиртуализация

Xen использует другой подход, чем VMware ESX. ESX эмулирует железо - гостевая ОС не знает, что она в виртуалке, и работает с виртуальными устройствами, которые гипервизор незаметно транслирует в реальные. Xen в паравиртуализации работает иначе: гостевая ОС знает, что она под гипервизором, и обращается к нему напрямую через специальный интерфейс - hypercall. Ядро нужно патчить под Xen, зато накладные расходы на I/O и процессор минимальны. На практике гостевая система по производительности очень близка к голому железу - особенно заметно на сетевом и дисковом вводе-выводе.

Debian в этом плане удобен: мы на нём уже несколько лет, патченые ядра под Xen для Debian собираются относительно просто, документация есть.

Три домена на одном сервере

Разбили тестовую машину на три гостевых домена (в терминологии Xen - domU, управляющий домен - dom0):

Каждому домену - своя прописанная память, процессорные веса, виртуальные блочные устройства. Сетевые интерфейсы - через виртуальный бридж в dom0.

Поднималось это не за один вечер. Настройка сети в Xen требует понимания: вся маршрутизация между доменами идёт через dom0 и его vif-интерфейсы, и если не разобраться в топологии сразу - будешь долго гадать, почему пакеты не ходят туда, куда должны.

Где выигрывает у платного

Производительность сети и диска. Это главное. Паравиртуализованные драйверы (xen-blkfront, xen-netfront) работают заметно шустрее, чем полная эмуляция. Мы гоняли iperf между dom0 и domU на одной машине - результат практически упирается в пропускную способность виртуального бриджа, не в накладные расходы гипервизора.

Стоимость. Xen - GPLv2, без лицензионных платежей. Для клиентов, которым нужна консолидация трёх-четырёх серверов, но где VMware ESX с поддержкой выходит дороговато, - это прямой аргумент.

Управление из командной строки. xm list, xm create, xm console - всё скриптуется, автоматизируется, кладётся в cron. Никакого обязательного Windows-клиента, никакого VirtualCenter.

x86-64. Xen 2.0 уже поддерживает 64-битные хосты - можно строить домены с большой памятью без PAE-костылей.

Где сыроват

Честно: кое-что ещё требует усилий.

Миграция Windows. Паравиртуализация требует пропатченного ядра - Linux патчится, Windows нет. Запустить Windows-гость в Xen 2.0 в паравиртуализованном режиме нельзя. Режима полной эмуляции (HVM) пока нет - он требует поддержки Intel VT или AMD-V в процессоре, которых на рынке ещё нет. Для чисто Linux-окружения - не проблема, для клиентов с Windows - ограничение существенное.

Снапшоты. У VMware ESX снапшот делается из GUI за секунды и откатывается так же. В Xen снапшот блочного устройства - это либо LVM-снапшот на уровне dom0, либо своя схема. Работает, но требует ручной сборки, нет готового удобного инструмента. Для нас, кто привык к «снял снапшот - откатил», разница ощутима.

Инструменты управления. xm работает, xen-tools помогают, но единой консоли уровня VirtualCenter нет. Если доменов двадцать - управлять будет труднее. Для трёх-пяти - нормально.

Документация и community. Xen-community активен, но для Debian специфика иногда требует лезть в рассылки и читать между строк. ESX с коммерческой поддержкой в этом смысле проще для клиентов, которым некогда разбираться.

Итог

Xen 2.0 - это уже не игрушка и не proof-of-concept. Три домена на одном Debian-сервере работают нормально, производительность хорошая, цена входа - ноль. Если клиент полностью на Linux и бюджет на лицензии ограничен, это реальная альтернатива VMware.

Но замены VMware ESX в сложных смешанных окружениях с Windows пока нет. Там или ESX, или изолированное железо.

Мы склоняемся к тому, что у нас будут оба инструмента: Xen - для Linux-консолидации и недорогих клиентов, ESX - там, где важна Windows или нужен снапшот по кнопке без самодеятельности. Конкуренция - штука полезная.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.