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

Xen 3.1: Windows через HVM и 15% прироста I/O у Linux-доменов

Обновили тестовый стенд до Xen 3.1: Windows-гости через HVM стали стабильнее, Linux para-virt показал прирост I/O, начинаем перевозить dev-серверы с физики.

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

Xen 3.1 выходит в апреле 2007 с улучшенной поддержкой паравиртуализации и HVM

Xen 3.1 вышел буквально на этой неделе, и мы немедленно обновили тестовый стенд - благо он у нас для того и существует, чтобы не ждать месяц перед тем как трогать что-то в production.

Что нас вообще интересовало в 3.1

У нас с Xen 3.0 были два отдельных источника боли. Первый - Windows-гости через HVM вели себя непредсказуемо: иногда зависали при интенсивном дисковом I/O, иногда просто падали с BSoD без явной причины. Второй - Linux-домены работали нормально, но в сравнении с железом проспросматривалось отставание, особенно при работе с дисками через блочные устройства.

Именно под это и была написана основная часть changelog 3.1: улучшенный HVM и работа с паравиртуализованными драйверами.

HVM: Windows-гости наконец-то живут спокойно

После обновления прогнали стандартный набор нагрузок по Windows-гостям - файловый сервер с параллельными записями, 1С в тестовой конфигурации, база данных под нагрузкой. Все три сценария, которые раньше периодически роняли гостей, отработали без сюрпризов.

Это не значит, что HVM в Xen стал идеальным. Windows внутри HVM-домена всё равно работает медленнее, чем para-virtualized Linux: нет паравиртуализованных драйверов для сети и диска, всё идёт через эмуляцию. Но стабильность - это уже другой разговор. Падающий гипервизор никакой производительностью не компенсируешь.

Ключевое замечание из нашего тестирования: если на хосте включен Intel VT-x или AMD-V, HVM работает значительно лучше, чем без аппаратной поддержки. Мы проверяли на двух разных серверах - один с VT-x, один без. Разница ощутимая. Если планируете держать Windows в Xen, CPU с аппаратной виртуализацией - не опция, а требование.

Para-virt Linux: I/O прибавил порядка 15%

Это наблюдение оказалось для нас более интересным практически. Тестировали на одном и том же железе: dom0 на CentOS 5, гость - тоже CentOS 5, нагрузка - iozone по нескольким паттернам. Сравнивали 3.0 и 3.1 на одинаковом наборе тестов.

Прирост на последовательном чтении и записи - около 15% в пользу 3.1. Случайный доступ дал чуть меньше, но тоже в плюс. Цифра не огромная, но стабильная: повторяли три раза в разные дни, результаты держались в пределах погрешности.

Откуда прирост - в changelog честно расписано: переработан путь I/O между domU и dom0 через блочный бэкенд, снижены накладные расходы на переключение контекста при операциях с диском. На уровне архитектуры это звучит правдоподобно.

Один нюанс. Результаты сильно зависят от того, как настроен dom0: сколько vCPU у него выделено, как настроен планировщик (мы используем credit scheduler по умолчанию), насколько загружен хост другими доменами во время теста. Прогонять iozone на полностью нагруженном хосте и сравнивать с результатами на пустом - бессмысленно. Мы гоняли при минимальной сторонней нагрузке.

Что дальше: миграция dev-серверов с физики

На основе результатов тестов решили начать плановую миграцию dev-серверов с физического железа в Xen. Пока речь о Linux-машинах - те пойдут как para-virt, там профит понятен. Windows dev-сервер пока оставим на физике ещё на один цикл: HVM стал стабильнее, но производительность эмуляции нас не устраивает для рабочей разработки.

Схема миграции простая:

  • Инвентаризация - список dev-серверов с текущей нагрузкой и профилем использования I/O и RAM.
  • Приоритет - сначала те, у кого низкая I/O нагрузка и нет привязки к специфичному железу.
  • Параллельный прогон - на переходный период держим физическую машину live, домен в Xen работает рядом, сравниваем поведение под реальной нагрузкой разработчиков.
  • Вывод физики - только после двух-трёх недель спокойной работы в Xen.

Это не быстрый процесс. Зато не нервный. Полный перевод dev-инфраструктуры на Xen - несколько месяцев работы при таком подходе, но это нормально. Торопиться здесь некуда.

Про VMware

Нас несколько раз спросили: зачем Xen, если есть ESXi, который тоже стал бесплатным? Ответ простой: у нас уже есть инфраструктура на Xen, команда с ним работает, и менять стек ради смены стека смысла нет. Кроме того, Xen с открытым исходным кодом - это другой уровень контроля над тем, что происходит внутри. Для managed-инфраструктуры клиентов это важно.

Продолжаем следить за обоими вариантами, но конкретная миграция идёт на Xen.

Контакт

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

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