Когда приходит время обновлять железо, разгружать перегруженный хост или съезжать из старого стойла в что-то поновее (включая облака), на сцену выходит VM Migration. Это вся история про то, как переместить виртуальную машину с одного физического сервера на другой, иногда ещё и сменив при этом хранилище. В лёгкой версии — просто перенести диск. В тяжёлой — и хост, и сторедж сразу.
Самый известный «красивый» вариант такой миграции — vMotion от VMware. Он позволяет взять работающую виртуалку и перетащить её на другой хост так, чтобы пользователи вообще ничего не заметили. ВМ продолжает отвечать, сессии не рвутся, сервис живёт своей жизнью, а потеешь только ты, глядя на графики и ожидая, не вылезет ли что-нибудь странное.
Есть ещё storage vMotion — похожая история, только для дисков. Вместо переезда всей ВМ переносится её виртуальное хранилище (VMDK) на другой массив или в другое хранилище. При правильной настройке — тоже без остановки работы. Полезно, когда старый сторедж забивается под ноль или начинает чудить, а остановить прод на пару часов просто нельзя.
Зачем вообще заморачиваться с миграцией ВМ? Причин много: обновление хостов (выкидываем старое железо, перевешиваем нагрузку на новое), балансировка (один сервер забит, второй почти без дела), переезд в облако или между облаками, технические работы на хосте или в стойке. Проще временно перекинуть туда ВМ, чем договариваться с бизнесом про «у нас тут небольшое окно простоя, всего-то пару часов».
По способу выполнения миграция делится на два основных типа:
- Горячая (live migration) — виртуалка продолжает работать, трафик идёт, пользователи сидят внутри, а в фоне она тихо переезжает.
- Холодная — машину выключили, заархивировали/скопировали, подняли на новом месте. Всё просто, но с даунтаймом.
У live migration есть нюанс: инфраструктура должна быть подготовлена. Нужен общий или корректно доступный сторедж, согласованные сетевые настройки, похожие конфигурации хостов, совместимые процессоры и так далее. Если этим пренебречь, можно легко устроить себе длинный вечер с разбором, почему всё развалилось в середине переезда.
Сейчас, когда почти любая инфраструктура виртуализирована и часто размазана между своими ЦОДами и облаками, миграция ВМ — это уже не редкий трюк, а обычный инструмент. Без него сложно спокойно делать апгрейды, расширять кластера и поддерживать инфраструктуру в живом состоянии, не роняя прод при каждом апдейте железа или хранилища.
