На встрече с преподавателями кафедры сетей связи СПбГУТ им. Бонч-Бруевича один из них честно признался, что именно эту часть разговора «критически конспектирует». Речь шла про живую миграцию виртуальных машин — аналог технологии vMotion из мира VMware. Тема, на которой видно зрелость платформы, и тема, на которой мы ответили без маркетингового глянца. Разберём по порядку.

Что такое живая миграция виртуальных машин

Живая миграция (live migration) — это перенос *работающей* виртуальной машины с одного физического узла на другой без её остановки. Пользователь внутри ВМ продолжает работать, открытые приложения не закрываются, сетевые соединения не рвутся — а сама виртуалка в это время «переезжает» на соседний сервер.

В экосистеме VMware эта функция называется vMotion и считается одной из ключевых. Поэтому первый вопрос при выборе российской платформы закономерен: есть ли аналог vMotion, и работает ли он так же прозрачно.

Зачем она нужна на практике

Живая миграция решает три повседневные задачи администратора:

  1. Обслуживание без простоя. Нужно обновить прошивку или заменить память на сервере — переносим все ВМ на соседние узлы, гасим освободившийся хост, обслуживаем, возвращаем нагрузку обратно. Пользователи ничего не заметили.
  2. Балансировка нагрузки. Один узел перегружен, другой простаивает — часть ВМ автоматически или вручную переезжает туда, где есть ресурсы.
  3. Эвакуация перед аварией. Узел начал «сыпать» ошибками памяти или дисков — ВМ уводят с него заранее, не дожидаясь полного отказа.

Без живой миграции каждая из этих операций означает остановку виртуальных машин — то есть простой сервисов.

Честный ответ: механизм есть, но временно отключён

Здесь мы ответили преподавателям прямо, потому что студентам полезно видеть реальную разработку, а не глянцевую презентацию:

«Механизм живой миграции в платформе есть, но на текущий момент она отключена, потому что мы сейчас осуществляем поддержку vGPU. У Nvidia есть большие проблемы с тем, как они работают с миграцией в рамках vGPU, поэтому мы временно её отключили».

Расшифруем. vGPU — это виртуализация графического ускорителя: одна физическая видеокарта Nvidia делится между несколькими ВМ (нужно для VDI с тяжёлой графикой, CAD, рендеринга, ML). Проблема в том, что живая миграция ВМ с проброшенным vGPU — технически сложный сценарий, и на стороне самой Nvidia здесь есть известные ограничения: состояние видеопамяти ускорителя не всегда корректно переносится между хостами.

Мы приняли инженерное решение: не отдавать функцию, которая на части конфигураций ведёт себя нестабильно, и вернуть её после того, как стабилизируем работу с vGPU. Это нормальный компромисс зрелой разработки — лучше честно отключить рискованную фичу, чем выдать её и получить повреждённые ВМ у клиентов.

Почему это правильный инженерный подход

В индустрии есть соблазн заявить в маркетинге «у нас есть всё, как у VMware» и поставить галочку напротив каждой функции. Мы выбрали другой путь: показывать реальное состояние. Живая миграция в архитектуру заложена, код есть — но включается она тогда, когда работает предсказуемо на всех поддерживаемых конфигурациях, включая узлы с vGPU.

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

Где живая миграция и отказоустойчивость пересекаются

Живую миграцию часто путают с отказоустойчивостью (HA), но это разные вещи:

  • Живая миграция — *плановый* перенос работающей ВМ (вы сами решаете, когда и куда).
  • Отказоустойчивость (HA) — *аварийный* автоматический перезапуск ВМ при внезапном отказе узла.

Как устроена вторая половина — HA-кластер, сценарий Split-Brain и автоматическое восстановление кворума — мы разобрали в отдельной статье про отказоустойчивость виртуальных машин. А о том, на каком ядре всё это построено, — в материале про российский гипервизор на базе KVM.

Коротко

Живая миграция виртуальных машин — это перенос работающих ВМ между узлами без простоя, российский аналог vMotion. В платформе Inscale механизм реализован, но временно отключён на время доработки поддержки vGPU — осознанный инженерный компромисс ради стабильности. Хотите посмотреть, как платформа ведёт себя вживую, — запросите демо-доступ и попробуйте интерфейс сами; мы, как честно сказали преподавателям Бонча, «очень интерфейсно-ориентированы».