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

VMotion в деле: мигрируем живую VM между хостами без остановки. Бухгалтеры не заметили

VMware Infrastructure 3 с VMotion и HA стал коммерчески доступным. Запускаем первую живую миграцию у клиента и убеждаем руководство: два хоста с HA - это новый минимум.

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

VMware Infrastructure 3 с VMotion и High Availability становится коммерчески доступным летом-осенью 2006

Мы долго ждали этого момента. VMotion - функция, которая позволяет перенести работающую виртуальную машину с одного физического хоста на другой, не останавливая её ни на секунду, - была в ESX давно, но для её использования нужен был VirtualCenter, нормальная сеть и SAN. Теперь VMware упаковала всё это в коммерческий пакет VMware Infrastructure 3 с вменяемым лицензированием, и мы наконец включили это у живого клиента.

Как выглядит задача

Клиент - небольшая компания, у которой мы ведём всю инфраструктуру по сопровождению. Два ESX-хоста, vCenter Server, общее хранилище на Fibre Channel SAN - всё по-взрослому. До этого момента VMotion у них не был включён: лицензия была, желания попробовать было, но повода не нашлось. И тут нам понадобилось сделать техническое обслуживание одного из хостов - добавить память. Хост надо остановить. Виртуалки с него - шесть штук, одна из которых 1С с активными пользователями в разгаре рабочего дня.

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

Что именно происходит при миграции

VMotion - не магия, но очень похоже. Механика такая: vCenter копирует содержимое оперативной памяти виртуальной машины с исходного хоста на целевой. Это происходит итеративно - пока копируется первый «слой», VM продолжает работать и что-то писать в память. Потом vCenter копирует изменения, потом ещё раз - итерации сжимаются. На финальном шаге VM приостанавливается буквально на долю секунды, передаётся управление, и она продолжает работать уже на другом хосте. Диски при этом не переносятся - они на общем SAN-хранилище, доступном обоим хостам.

Ключевые условия для работы VMotion:

  • Общее хранилище - оба хоста видят одни и те же датасторы.
  • Сеть VMotion - отдельная гигабитная сеть между хостами, выделенная под передачу памяти.
  • Процессорная совместимость - хосты должны быть на одного поколения CPU, иначе VM просто не запустится на другом хосте.
  • vCenter - без него VMotion не работает, это не функция отдельного ESX.

У клиента всё это было. Запускаем.

Как прошло

В 11 утра, когда бухгалтерия вовсю работает в 1С, мы в vCenter выбрали нужную виртуалку, нажали «Migrate», указали целевой хост. vCenter показал прогресс-бар. Примерно через полторы минуты - всё. VM на другом хосте, работает, сессии активны, пользователи даже не почувствовали.

Мы позвонили ответственному и спросили, не жаловался ли кто-нибудь. «На что жаловаться?» - удивился он. Вот именно.

Оставшиеся пять виртуалок перенеслись примерно за столько же каждая - зависит от объёма занятой памяти. Потом обслуживание хоста, потом - обратно. Итого: плановые работы без единого окна обслуживания.

High Availability: второй хост как страховка

VMotion - это про запланированные переносы. VMware HA в VI3 - про незапланированные. Если физический хост падает, vCenter замечает это через heartbeat и автоматически перезапускает виртуалки на оставшихся хостах кластера. Перезапуск - не живая миграция, VM перезагружается, но это секунды-минуты, а не звонок в службу поддержки в час ночи и ожидание пока приедет администратор.

После того как мы продемонстрировали VMotion, разговор с руководством прошёл проще, чем обычно. Мы обычно долго объясняем, зачем нужен второй хост, - это деньги, которые «ни на что не тратятся». Теперь объяснение было короткое: «Вы только что видели, как мы перенесли 1С между серверами и никто не заметил. HA делает то же самое автоматически, если сервер умрёт». Руководство кивнуло.

Два хоста с HA - это новый минимум для инфраструктуры, где виртуализация используется для чего-то реального. Один хост с виртуалками - это иллюзия надёжности. Хост упал, всё упало, и виртуализация тут вообще ни при чём, только создала дополнительный слой для диагностики.

Что требует внимания

HA работает, но у него есть нюансы, которые надо понимать до включения.

Admission control. vCenter резервирует ресурсы на случай отказа хоста - по умолчанию система не позволит загрузить кластер так, чтобы при отказе одного хоста оставшиеся не смогли поднять все VM. Это правильная механика, но она означает, что нельзя использовать 100% ресурсов обоих хостов одновременно. Надо это учитывать при планировании.

Хранилище. HA не защищает от отказа SAN. Если хранилище недоступно - VM не поднять ни на каком хосте. Это отдельный разговор про избыточность на уровне дисковой подсистемы.

Сеть. vCenter должен видеть оба хоста, хосты должны видеть друг друга. Если Management Network ненадёжная - HA будет работать непредсказуемо.

В нашем случае всё оказалось в порядке - SAN с redundant-путями мы настраивали ещё весной, Management Network отдельная. Так что HA включили без лишних беспокойств.

Итог

VMotion работает именно так, как написано в документации, - это приятно. Не всегда так бывает. Живая миграция занятой виртуалки с пользователями без прерывания сессий - это работает, и это меняет подход к обслуживанию. Плановые работы на хостах больше не требуют окна обслуживания. Это стоит денег на лицензии и второй хост, но цена вопроса оправдана уже на первом таком обслуживании.

Контакт

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

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