Живая миграция виртуальных машин — тема, на которой видна зрелость платформы. Разберём по порядку: что это, зачем нужно, что для неё требуется, чем отличается от отказоустойчивости, как обслуживать узел без неё — и как узнать её статус для вашей инсталляции AirCloud.
Что такое живая миграция
Живая миграция — это перенос работающей виртуальной машины с одного физического узла на другой без её остановки. Пользователь внутри машины продолжает работать, открытые приложения не закрываются, сетевые соединения не рвутся — а сама машина в это время «переезжает» на соседний сервер.
Технически гипервизор копирует память машины на целевой узел итерациями, пока разница не станет ничтожной, затем на доли секунды замораживает машину, переносит остаток и запускает её уже на новом хосте. В классической схеме диски лежат на общем хранилище и никуда не двигаются; ряд платформ умеет переносить и диски (миграция без общего хранилища), но это дольше и сильнее нагружает сеть.
В зарубежных платформах эта функция считается одной из ключевых, поэтому первый вопрос при выборе платформы закономерен: на каких конфигурациях она работает и с какими ограничениями.
Зачем она нужна на практике
Живая миграция решает три повседневные задачи администратора:
1. Обслуживание без простоя. Нужно обновить прошивку или заменить память на сервере — переносим все машины на соседние узлы, гасим освободившийся хост, обслуживаем, возвращаем нагрузку обратно. Пользователи ничего не заметили.
2. Балансировка нагрузки. Один узел перегружен, другой простаивает — часть машин переезжает туда, где есть ресурсы. Как это делает балансировщик автоматически — отдельная тема.
3. Эвакуация перед аварией. Узел начал «сыпать» ошибками памяти или дисков — машины уводят с него заранее, не дожидаясь полного отказа.
Без живой миграции каждая из этих операций означает остановку виртуальных машин — то есть простой сервисов или окно обслуживания ночью.
Требования и статус в AirCloud
Для живой миграции нужны общее хранилище, доступное обоим узлам (NFS, iSCSI или Fibre Channel), сеть с запасом полосы для копирования памяти — при активно меняющейся памяти объём переноса кратно превышает размер ОЗУ машины — и совместимые процессоры на исходном и целевом узлах, иначе гостевая ОС может получить другой набор инструкций.
> Доступность живой миграции и поддерживаемые конфигурации зависят от версии AirCloud — для вашей инсталляции уточняем на демонстрации.
>
> — команда разработки AirCloud
Отдельный класс — машины с проброшенными физическими устройствами: USB, PCI-устройствами, графическими ускорителями. Их перенос на любой платформе зависит от поддержки со стороны гипервизора и драйверов и обычно ограничен. Поэтому при выборе платформы стоит спрашивать не «есть ли функция в списке», а «на каких конфигурациях она работает и с какими ограничениями».
Практический совет: до запуска в продуктив проверьте живую миграцию на пилоте с вашими типами ВМ и хранилищем — измерьте время переноса, длительность паузы переключения и поведение приложений с долгоживущими соединениями.
Обслуживание узла, если живая миграция недоступна
Если живая миграция в вашей конфигурации недоступна, плановые работы на узле проводят с перезапуском ВМ в окно обслуживания: заранее согласуют время, корректно выключают машины узла и запускают их на других узлах, обслуживают освободившийся хост и возвращают нагрузку. Для рабочих столов в плавающих пулах перерыв минимален — пользователь при следующем входе получает свободную машину; для серверных ВМ окно планируют под их приложения и зависимости.
Внезапный отказ узла закрывает отказоустойчивость (HA): она автоматически перезапускает виртуальные машины отказавшего хоста на доступных узлах. Это перерыв в работе — активные сессии прерываются, пользователи подключаются заново; нужны общее хранилище и запас ресурсов на оставшихся узлах. HA от живой миграции не зависит.
Живая миграция и отказоустойчивость — разные вещи
Их часто путают:
- Живая миграция — плановый перенос работающей машины: вы сами решаете, когда и куда.
- Отказоустойчивость — аварийный автоматический перезапуск машины при внезапном отказе узла. Машина не «переезжает», а поднимается заново на живом хосте из общего хранилища.
Отказоустойчивость в AirCloud обеспечивает отдельный контроллер на уровне гипервизора: при разделении сети он исключает двойной запуск ВМ (кворум и fencing), а после восстановления связи узлы синхронизируются автоматически. Как это устроено — в статье про отказоустойчивость виртуальных машин.
Коротко
Живая миграция виртуальных машин — это перенос работающих машин между узлами без простоя; для неё нужны общее хранилище и сеть с запасом полосы. Доступность живой миграции и поддерживаемые конфигурации зависят от версии AirCloud — для вашей инсталляции уточняем на демонстрации. Если функция недоступна, плановые работы проводят с перезапуском ВМ в окно обслуживания, а внезапные отказы закрывает HA. Из чего ещё состоит платформа — в разборе системы виртуализации. Хотите посмотреть, как платформа ведёт себя вживую, — запросите демо-доступ.