vMotion
vMotion — это технология компании VMware, позволяющая выполнять «горячую» (без остановки работы) миграцию работающей виртуальной машины (ВМ) с одного физического сервера (хоста) на другой в рамках кластера серверов виртуализации. При этом для пользователей и приложений, работающих внутри ВМ, процесс остаётся незаметным: операционная система продолжает функционировать, сетевые соединения не разрываются, а доступ к данным сохраняется. vMotion является ключевым компонентом платформы VMware vSphere и одним из основополагающих инструментов для обеспечения отказоустойчивости, балансировки нагрузки и обслуживания инфраструктуры без простоев.
История
Идея миграции работающих виртуальных машин возникла на ранних этапах развития технологий виртуализации. Первые прототипы «живой» миграции были разработаны в исследовательских лабораториях, в том числе в Стэнфордском университете, откуда вышли основатели VMware. Коммерческая реализация технологии была впервые представлена компанией VMware в 2003 году в составе продукта VMware VirtualCenter (позднее — vCenter Server) и гипервизора VMware ESX Server 2.0.
Изначально vMotion поддерживал миграцию только между серверами с одинаковым типом процессора (например, Intel Xeon на Intel Xeon) и требовал идентичных наборов инструкций. В 2007 году с выходом Enhanced vMotion Compatibility (EVC) появилась возможность мигрировать ВМ между серверами разных поколений одного производителя (Intel или AMD) при условии использования общего «базового» набора инструкций. В 2011 году, с появлением VMware vSphere 5.0, была внедрена поддержка миграции между серверами с разными типами процессоров (Intel и AMD) с помощью технологии Cross-vCenter vMotion, но с рядом ограничений. В последующих версиях vSphere функционал vMotion расширялся: появилась поддержка миграции с шифрованием трафика (Encrypted vMotion, vSphere 6.5, 2016 год), миграция между разными версиями vCenter (Cross-vCenter vMotion, vSphere 6.0, 2015 год) и миграция больших объёмов памяти с использованием технологии vMotion with Persistent Memory (vSphere 7.0, 2020 год).
Принцип работы
Процесс vMotion можно разделить на несколько этапов, выполняемых последовательно и незаметно для гостевой системы:
- Инициализация. Администратор (или автоматизированная система, например, DRS — Distributed Resource Scheduler) запускает миграцию. vCenter Server проверяет совместимость исходного и целевого хостов, наличие необходимых ресурсов (память, процессорные слоты, сетевые подключения) и доступ к общим хранилищам данных (SAN, NAS, vSAN).
- Копирование состояния памяти. На целевом хосте создаётся «скелет» виртуальной машины (пустая ВМ с теми же параметрами). Затем начинается копирование оперативной памяти (RAM) работающей ВМ с исходного хоста на целевой. Этот процесс происходит в несколько итераций (так называемый «pre-copy»). На первом этапе копируется вся память. Поскольку ВМ продолжает работать, часть страниц памяти изменяется («загрязняется»). На каждой последующей итерации копируются только те страницы, которые были изменены с момента предыдущего копирования.
- Финализация («stop-and-copy»). Когда количество изменяемых страниц становится достаточно малым (обычно менее 1% от общего объёма памяти), исходная ВМ приостанавливается на очень короткое время (обычно менее 1 секунды). Последние изменённые страницы памяти и состояние процессора (регистры, кэш) копируются на целевой хост.
- Возобновление работы. На целевом хосте ВМ запускается. Сетевой трафик, адресованный исходной ВМ, перенаправляется на новое местоположение (обычно с помощью технологии «перехвата» MAC-адреса или ARP-запросов). После возобновления работы ВМ на целевом хосте исходная ВМ уничтожается.
Весь процесс, как правило, занимает от нескольких секунд до нескольких минут в зависимости от объёма памяти, загрузки ВМ и пропускной способности сети. Ключевое требование — общее хранилище данных (shared storage), доступное обоим хостам, так как файлы виртуальной машины (диски, конфигурация) не перемещаются, а остаются на месте. В версиях vSphere 6.0 и выше появилась возможность миграции без общего хранилища (vMotion with Storage vMotion), когда диски ВМ также копируются на целевое хранилище.
Требования и ограничения
Для успешной работы vMotion необходимо соблюдение ряда условий:
- Аппаратное обеспечение: Совместимость процессоров (или использование EVC), достаточный объём оперативной памяти на целевом хосте, поддержка виртуализации (Intel VT-x или AMD-V).
- Сеть: Высокоскоростное соединение (рекомендуется 1 Гбит/с и выше, для больших объёмов памяти — 10 Гбит/с и выше) между хостами. Для vMotion рекомендуется выделенная виртуальная или физическая сеть (vMotion Network) для минимизации задержек и нагрузки на основную сеть передачи данных.
- Хранилище: Общее хранилище (SAN, NAS, vSAN) или возможность выполнять Storage vMotion. Для миграции с шифрованием (Encrypted vMotion) требуется поддержка криптографических инструкций на процессорах.
- Программное обеспечение: Оба хоста должны быть в одном кластере vSphere, управляться одним или несколькими vCenter Server (в случае Cross-vCenter vMotion), и иметь совместимые версии гипервизора ESXi.
- Ограничения: Не поддерживается миграция ВМ с подключёнными физическими устройствами (PCI Passthrough, GPU Passthrough), если они не поддерживают «горячее» отключение. Также существуют ограничения для ВМ с большими объёмами памяти (более 1 ТБ) — время миграции может быть значительным, а «окно» простоя — более заметным.
Применение
vMotion используется в следующих сценариях:
- Плановое обслуживание. Позволяет переместить все ВМ с одного физического сервера на другой без остановки их работы, что даёт возможность отключить исходный сервер для замены оборудования, обновления прошивки (firmware) или установки патчей безопасности.
- Балансировка нагрузки. В сочетании с DRS (Distributed Resource Scheduler) vMotion автоматически перемещает ВМ между хостами для оптимизации использования процессорных и мемориальных ресурсов кластера, предотвращая перегрузку одних серверов и недогрузку других.
- Аварийное восстановление. В случае выхода из строя одного из хостов (например, из-за аппаратного сбоя) vMotion не может быть запущен, так как ВМ уже не работает. Однако технология используется для «живой» миграции ВМ с проблемного хоста, если он ещё функционирует, но прогнозируется его отказ.
- Оптимизация энергопотребления. В периоды низкой нагрузки (например, ночью или в выходные) DRS может консолидировать ВМ на меньшем количестве хостов, а освободившиеся серверы перевести в энергосберегающий режим (с помощью технологии Distributed Power Management, DPM). vMotion обеспечивает перемещение ВМ без простоев.
- Миграция между центрами обработки данных (ЦОД). Cross-vCenter vMotion позволяет перемещать ВМ между географически удалёнными ЦОД, что используется для реорганизации инфраструктуры, переноса нагрузок в облако (VMware Cloud on AWS) или между разными версиями vSphere.
Критика и альтернативы
Основные недостатки vMotion связаны с его зависимостью от сети и хранилища. При недостаточной пропускной способности сети или высокой задержке время миграции может значительно возрасти, а «окно» простоя — стать заметным. Кроме того, vMotion потребляет ресурсы процессора и памяти на обоих хостах во время миграции. В некоторых случаях, например, при миграции ВМ с очень большим объёмом памяти (сотни гигабайт) и высокой интенсивностью изменений, процесс может затянуться или даже завершиться ошибкой.
Альтернативными решениями для «живой» миграции являются:
- Microsoft Hyper-V Live Migration. Аналог vMotion в экосистеме Microsoft. Встроен в Hyper-V и Windows Server.
- KVM Live Migration. Технология, используемая в средах на базе ядра KVM (Kernel-based Virtual Machine), включая Red Hat Virtualization и Proxmox VE.
- Xen Motion. Аналог для гипервизора Xen (Citrix Hypervisor, XCP-ng).
- Nutanix Live Migration. Технология миграции в гиперконвергентной инфраструктуре Nutanix, основанная на KVM.
- Oracle VM Live Migration. Аналог для Oracle VM Server for x86.
Источники
- VMware vSphere Documentation. «vMotion and Storage vMotion». VMware, Inc.
- VMware vSphere 7.0 Documentation. «vMotion with Persistent Memory».
- VMware vSphere 6.5 Documentation. «Encrypted vMotion».
- VMware Knowledge Base. «Requirements for vMotion».
- VMware Blog. «vMotion: A Technical Deep Dive».
- «Virtualization: A Beginner's Guide» by Danielle Ruest and Nelson Ruest. McGraw-Hill, 2009.
- «VMware vSphere Design» by Forbes Guthrie, Scott Lowe, Maish Saidel-Keesing. Sybex, 2013.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →