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):
- «Маршрутизатор» (dom-router). Debian с iptables, два сетевых интерфейса, NAT и фильтрация трафика для всей сети.
- «Почта» (dom-mail). Postfix + SpamAssassin, конфигурацию мы недавно отработали.
- «Веб» (dom-web). Apache, PHP, небольшая MySQL-база.
Каждому домену - своя прописанная память, процессорные веса, виртуальные блочные устройства. Сетевые интерфейсы - через виртуальный бридж в 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 или нужен снапшот по кнопке без самодеятельности. Конкуренция - штука полезная.
- VMware ESX в продакшне: первая боевая виртуалка вместо второго сервера · 10 января 2005
- Ставим Debian на шлюз и почту вместо Windows · 20 мая 2002