Live migration (живая миграция) — ключевая функция виртуализированной инфраструктуры, позволяющая переносить виртуальные машины между физическими серверами без перезагрузки. Это критично для обслуживания оборудования: можно вывести физический хост из эксплуатации на техработы, не прерывая сервисы, работающие на его VM.
Как работает
Стандартный алгоритм live migration (pre-copy):
- Создаётся VM на целевом хосте без запуска.
- Страницы RAM передаются на целевой хост итерационно, пока VM продолжает работать.
- Изменённые страницы (dirty pages) копируются снова.
- Когда объём dirty pages достигает минимума, VM на источнике ставится на паузу (stop-and-copy) — на единицы миллисекунд.
- Оставшиеся страницы и состояние CPU передаются. VM возобновляется на целевом хосте.
- Сетевые соединения переключаются через ARP-announcement нового MAC-адреса.
Реализации: VMotion в VMware vSphere, Live Migration в Hyper-V, Proxmox через QEMU/KVM. Для миграции необходим shared storage (iSCSI, NFS, Ceph) — чтобы диск VM был доступен на обоих хостах, или storage migration (копирование диска параллельно с RAM).
История
Концепция live migration разработана в Кембриджском университете в 2002–2003 годах в рамках проекта Xen. Первая демонстрация live migration ВМ на Xen состоялась в 2003 году. VMware анонсировала VMotion в 2003 году (коммерческая реализация). Live migration в KVM/QEMU появилась около 2007–2008 года. Сегодня это стандартная функция всех enterprise-гипервизоров.
Типы миграции
- Live migration (pre-copy) — копирование RAM итерационно, минимальный downtime
- Live migration (post-copy) — VM запускается на цели, страницы подгружаются по запросу
- Cold migration — VM останавливается, диск и конфиг копируются, VM стартует на цели
- Storage migration — живое копирование диска VM без остановки
На что обращать внимание
Live migration требует одинакового типа CPU на исходном и целевом хостах (или использования CPU compatibility mode). Высокая утилизация RAM замедляет миграцию: при 128 ГБ RAM и 80% dirty page rate процесс может занять несколько минут. Сетевые соединения на базе TCP переживают миграцию, UDP-потоки могут прерваться.
Технические детали Live migration
Процесс Live migration в KVM происходит в несколько фаз: precopy — грязные страницы памяти непрерывно отправляются на целевой хост; затем краткая пауза 50--200 мс, передаётся финальное состояние CPU и памяти; наконец ВМ запускается на целевом хосте. Для хранения используется общий SAN или iSCSI. Сеть между хостами должна быть 10 GbE+; через 1 GbE миграция ВМ с 16 ГБ RAM займёт несколько минут. Инструментарий Proxmox VE автоматизирует Live migration через GUI одним кликом.
История Live migration
Live migration впервые реализована в VMware ESX 2.0 в 2003 году под названием VMotion. Xen добавил Live migration в версии 2.0 (2004). KVM получил поддержку в 2010 году. Сегодня Live migration — стандарт для production-виртуализации, обеспечивающий плановое обслуживание серверов без простоя гостей.