На встрече с преподавателями кафедры сетей связи СПбГУТ им. Бонч-Бруевича один из них честно признался, что именно эту часть разговора «критически конспектирует». Речь шла про живую миграцию виртуальных машин — аналог технологии vMotion из мира VMware. Тема, на которой видно зрелость платформы, и тема, на которой мы ответили без маркетингового глянца. Разберём по порядку.
Что такое живая миграция виртуальных машин
Живая миграция (live migration) — это перенос *работающей* виртуальной машины с одного физического узла на другой без её остановки. Пользователь внутри ВМ продолжает работать, открытые приложения не закрываются, сетевые соединения не рвутся — а сама виртуалка в это время «переезжает» на соседний сервер.
В экосистеме VMware эта функция называется vMotion и считается одной из ключевых. Поэтому первый вопрос при выборе российской платформы закономерен: есть ли аналог vMotion, и работает ли он так же прозрачно.
Зачем она нужна на практике
Живая миграция решает три повседневные задачи администратора:
- Обслуживание без простоя. Нужно обновить прошивку или заменить память на сервере — переносим все ВМ на соседние узлы, гасим освободившийся хост, обслуживаем, возвращаем нагрузку обратно. Пользователи ничего не заметили.
- Балансировка нагрузки. Один узел перегружен, другой простаивает — часть ВМ автоматически или вручную переезжает туда, где есть ресурсы.
- Эвакуация перед аварией. Узел начал «сыпать» ошибками памяти или дисков — ВМ уводят с него заранее, не дожидаясь полного отказа.
Без живой миграции каждая из этих операций означает остановку виртуальных машин — то есть простой сервисов.
Честный ответ: механизм есть, но временно отключён
Здесь мы ответили преподавателям прямо, потому что студентам полезно видеть реальную разработку, а не глянцевую презентацию:
Расшифруем. vGPU — это виртуализация графического ускорителя: одна физическая видеокарта Nvidia делится между несколькими ВМ (нужно для VDI с тяжёлой графикой, CAD, рендеринга, ML). Проблема в том, что живая миграция ВМ с проброшенным vGPU — технически сложный сценарий, и на стороне самой Nvidia здесь есть известные ограничения: состояние видеопамяти ускорителя не всегда корректно переносится между хостами.
Мы приняли инженерное решение: не отдавать функцию, которая на части конфигураций ведёт себя нестабильно, и вернуть её после того, как стабилизируем работу с vGPU. Это нормальный компромисс зрелой разработки — лучше честно отключить рискованную фичу, чем выдать её и получить повреждённые ВМ у клиентов.
Почему это правильный инженерный подход
В индустрии есть соблазн заявить в маркетинге «у нас есть всё, как у VMware» и поставить галочку напротив каждой функции. Мы выбрали другой путь: показывать реальное состояние. Живая миграция в архитектуру заложена, код есть — но включается она тогда, когда работает предсказуемо на всех поддерживаемых конфигурациях, включая узлы с vGPU.
Для студентов это, пожалуй, самый ценный урок встречи: настоящая разработка платформы — это не список галочек, а череда осознанных компромиссов между функциональностью и стабильностью.
Где живая миграция и отказоустойчивость пересекаются
Живую миграцию часто путают с отказоустойчивостью (HA), но это разные вещи:
- Живая миграция — *плановый* перенос работающей ВМ (вы сами решаете, когда и куда).
- Отказоустойчивость (HA) — *аварийный* автоматический перезапуск ВМ при внезапном отказе узла.
Как устроена вторая половина — HA-кластер, сценарий Split-Brain и автоматическое восстановление кворума — мы разобрали в отдельной статье про отказоустойчивость виртуальных машин. А о том, на каком ядре всё это построено, — в материале про российский гипервизор на базе KVM.
Коротко
Живая миграция виртуальных машин — это перенос работающих ВМ между узлами без простоя, российский аналог vMotion. В платформе Inscale механизм реализован, но временно отключён на время доработки поддержки vGPU — осознанный инженерный компромисс ради стабильности. Хотите посмотреть, как платформа ведёт себя вживую, — запросите демо-доступ и попробуйте интерфейс сами; мы, как честно сказали преподавателям Бонча, «очень интерфейсно-ориентированы».