Миграция виртуальных машин с сохранением их состояния может происходить разными способами, например, с помощью VMware vMotion: 1
- На хосте, куда планируется перенести виртуальную машину, создаётся теневой клон этой машины с аналогичной конфигурацией. 1 Он «видит» все файлы виртуальной машины, которые находятся в общем хранилище. 1
- Содержимое RAM и состояние виртуальной машины передаются от хоста-источника на целевой сервер. 1 vMotion делает снимок состояния памяти виртуальной машины и копирует его на новый хост. 1 При этом функциональность сама мониторит изменения в страницах памяти, а потом переносит и их. 1
- На определённом этапе состояние исходной виртуальной машины замораживается, копируются модифицированные сегменты памяти и команды CPU. 1
- По завершении перенесённая машина запускается на новом сервере. 1
Ещё один способ миграции — с помощью VMware vCloud Availability (vCAV): 1
- Создаётся выключенный дубликат виртуальной машины. 1
- Изменённые данные локальной виртуальной машины синхронизируются с копией. 1
- Виртуальная машина выключается на локальной площадке и запускается в облаке провайдера. 1
Также существует алгоритм живой миграции виртуальной машины: 2
- Копируется XML-описание виртуальной машины на сервер назначения. 2
- Выполняется перенос диска виртуальной машины: если диск в локальном хранилище, он копируется на сервер назначения, если в сетевом — подключается к серверу назначения. 2
- Во время переноса QEMU периодически проверяет состояние виртуальной машины и, если данные изменились, то скопированные данные переписываются на изменённые. 2
- Если виртуальная машина активно используется и данные постоянно меняются, из-за чего миграция не может быть завершена, то через некоторое время виртуальная машина приостанавливается и миграция завершается. 2
- Виртуальная машина удаляется на старом сервере. 2
- Виртуальная машина запускается на новом сервере. 2
Выбор метода миграции зависит от конкретной ситуации и используемых инструментов.