Открыть сервис

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 можно разделить на несколько этапов, выполняемых последовательно и незаметно для гостевой системы:

  1. Инициализация. Администратор (или автоматизированная система, например, DRS — Distributed Resource Scheduler) запускает миграцию. vCenter Server проверяет совместимость исходного и целевого хостов, наличие необходимых ресурсов (память, процессорные слоты, сетевые подключения) и доступ к общим хранилищам данных (SAN, NAS, vSAN).
  2. Копирование состояния памяти. На целевом хосте создаётся «скелет» виртуальной машины (пустая ВМ с теми же параметрами). Затем начинается копирование оперативной памяти (RAM) работающей ВМ с исходного хоста на целевой. Этот процесс происходит в несколько итераций (так называемый «pre-copy»). На первом этапе копируется вся память. Поскольку ВМ продолжает работать, часть страниц памяти изменяется («загрязняется»). На каждой последующей итерации копируются только те страницы, которые были изменены с момента предыдущего копирования.
  3. Финализация («stop-and-copy»). Когда количество изменяемых страниц становится достаточно малым (обычно менее 1% от общего объёма памяти), исходная ВМ приостанавливается на очень короткое время (обычно менее 1 секунды). Последние изменённые страницы памяти и состояние процессора (регистры, кэш) копируются на целевой хост.
  4. Возобновление работы. На целевом хосте ВМ запускается. Сетевой трафик, адресованный исходной ВМ, перенаправляется на новое местоположение (обычно с помощью технологии «перехвата» 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 →