Миграция — перенос виртуальной машины с одного узла кластера над другой. Миграция выполняется полностью средствами libvirt. Для успешного переноса на узле-источнике и узле-приёмнике должны быть одинаковые версии QEMU-KVM и virsh.
При миграции виртуальной машины с локальным хранилищем копируется память и копируется диск. Форматы хранилища-источника и хранилища-приемника должны совпадать (RAW или Qcow2).
При миграции виртуальной машины с сетевым хранилищем копируется только память, а диск подключается к узлу кластера, на который осуществляется миграция. Виртуальная машина с сетевым диском при обычной миграции или миграции со статусом "остановлена" переносится, как правило, за несколько минут.
Типы миграции
Существует два типа миграции:
- живая миграция — используется, как правило, для переноса неактивно используемых виртуальных машин и в случае использования локального хранилища — с небольшим размером диска. Виртуальная машина доступна и продолжает работать в течение процесса переноса.
- миграция остановленной виртуальной машины — выполняется, если перед началом миграции статус виртуальной машины — "остановлена". Используется, как правило, для переноса виртуальных машин с большим размером диска.
Алгоритм живой миграции виртуальной машины:
- Копируется XML-описание виртуальной машины на сервер назначения;
- Выполняется перенос диска виртуальной машины:
- Если диск в локальном хранилище, он копируется на сервер назначения;
- Если диск в сетевом хранилище, он подключается к серверу назначения.
- Во время переноса QEMU периодически проверяет состояние виртуальной машины и, если данные изменились, то скопированные данные переписываются на изменённые. Если виртуальная машина активно используется и данные постоянно меняются, из-за чего миграция не может быть завершена, то через некоторое время виртуальная машина приостанавливается и миграция завершается;
- Виртуальная машина удаляется на старом сервере;
- Виртуальная машина запускается на новом сервере.
Алгоритм миграции остановленной виртуальной машины:
- Копируется XML-описание виртуальной машины на сервер назначения;
- Выполняется перенос диска виртуальной машины:
- Если диск в локальном хранилище, он копируется на сервер назначения;
- Если диск в сетевом хранилище, он подключается к серверу назначения.
- Виртуальная машина удаляется на старом сервере;
- Виртуальная машина запускается на новом сервере.
В случае живой миграции активно используемой виртуальной машины, процесс переноса может занимать продолжительное время и приводить к потере данных.
Живая миграция может быть прервана, если во время выполнения процесса переноса произойдет перезагрузка виртуальной машины. В таком случае миграция завершится, а виртуальная машина останется на исходном узле кластера.
Запуск миграции
Нажмите Управление → Виртуальные машины → Миграция, чтобы мигрировать виртуальную машину.
Укажите:
- Сервер назначения — узел кластера для миграции. По умолчанию — "автоматически". При автоматическом выборе VMmanager определяет узел кластера с наибольшей свободной оперативной памятью. Узел не должен иметь зарегистрированных проблем со связью, libvirt и NFS. Если автоматически выбран узел, с которого мигрирует виртуальная машина, то перенос не будет выполняться;
- Живая миграция — опция живой миграции.
Состояние миграции
После подтверждения указанных данных начинается процесс миграции. В статусе виртуальной машины появится иконка:
Отмена миграции виртуальной машины осуществляется по нажатию данной иконки.