Миграция виртуальной машины в реальном времени — ключевая функция, предоставляемая StratoVirt. Она необходима для выполнения миграции виртуальной машины при возникновении следующих ситуаций:
Поток миграции может быть передан через любой из следующих транспортов:
Примечание: UNIX-режим поддерживает миграцию только двух виртуальных машин на одном хосте ОС. Режим TCP поддерживает миграцию как на одном, так и на разных хостах ОС.
Запустите исходную виртуальную машину:
./stratovirt \
-machine q35 \
-kernel ./vmlinux.bin \
-append "console=ttyS0 pci=off reboot=k quiet panic=1 root=/dev/vda" \
-drive file=path/to/rootfs,id=rootfs,readonly=off,direct=off \
-device virtio-blk-pci,drive=rootfs,id=rootfs,bus=pcie.0,addr=0 \
-qmp unix:path/to/socket1,server,nowait \
-serial stdio \
Запустите целевую виртуальную машину:
./stratovirt \
-machine q35 \
-kernel ./vmlinux.bin \
-append "console=ttyS0 pci=off reboot=k quiet panic=1 root=/dev/vda" \
-drive file=path/to/rootfs,id=rootfs,readonly=off,direct=off \
-device virtio-blk-pci,drive=rootfs,id=rootfs,bus=pcie.0,addr=0 \
-qmp unix:path/to/socket2,server,nowait \
-serial stdio \
-incoming tcp:192.168.0.1:4446 \
Примечание:
-incoming tcp:192.168.0.1:4446
необходимо заменить на -incoming unix:/tmp/stratovirt-migrate.socket
.Начните отправку миграции для исходной виртуальной машины:
$ ncat -U path/to/socket1
<- {"QMP":{"version":{"StratoVirt":{"micro":1,"minor":0,"major":0},"package":""},"capabilities":[]}}
-> {"execute":"migrate", "arguments":{"uri":"tcp:192.168.0.1:4446"}}
<- {"return":{}}
Примечание:
"uri":"tcp:192.168.0.1:4446"
на "uri":"unix:/tmp/stratovirt-migrate.socket"
.После выполнения команды в командной строке начинается миграция в реальном времени. Через некоторое время исходная виртуальная машина должна быть успешно перенесена на целевую виртуальную машину.
Если вы хотите отменить миграцию в реальном времени, выполните следующую команду:
$ ncat -U path/to/socket1
<- {"QMP":{"version":{"StratoVirt":{"micro":1,"minor":0,"major":0},"package":""},"capabilities":[]}}
-> {"execute":"migrate_cancel"}
<- {"return":{}}
Используйте команду QMP query-migrate
, чтобы проверить состояние миграции:
$ ncat -U path/to/socket
<- {"QMP":{"version":{"StratoVirt":{"micro":1,"minor":0,"major":0},"package":""},"capabilities":[]}}
-> {"execute":"query-migrate"}
<- {"return":{"status":"completed"}}
В настоящее время существует 5 состояний во время миграции:
None
: ресурс не подготовлен полностью.Setup
: ресурс настроен, готов к миграции.Active
: в процессе миграции.Completed
: миграция завершена.Failed
: миграция не удалась.Canceled
: миграция отменена.Поддержка миграции типов машин:
q35
(на платформе x86_64);virt
(на платформе aarch64).Некоторые устройства и функции пока не поддерживают миграцию:
vhost-net
;vhost-user-net
;vfio
;balloon
;mem-shared
,backend file of memory
;pmu
;sve
;gic-version=2
.Атрибуты некоторых устройств не могут быть изменены:
virtio-net
: mac;virtio-blk
: файл (только обычный файл или копирование файла), serial_num;device
: шина, адрес;smp
;При горячем подключении устройства перед миграцией исходной виртуальной машины добавьте вновь заменённое устройство. Команду необходимо добавить на целевую виртуальную машину.
Перед «живой» миграцией: — исходный и целевой хосты должны использовать одинаковую архитектуру процессоров; — образ виртуальных машин должен быть общим для исходного и целевого хостов; — «живая» миграция может завершиться ошибкой, если виртуальная машина выполняет операции жизненного цикла, такие как перезагрузка или выключение. — команда для запуска виртуальной машины должна быть одинаковой на исходном и целевом хостах.
Во время «живой» миграции: — нельзя разрывать соединение между исходной и целевой сетями; — запрещено выполнять операции жизненного цикла виртуальной машины, включая использование команд QMP и выполнение операций внутри виртуальной машины. — на время «живой» миграции влияют производительность сети, общий объём памяти виртуальной машины и приложений.
После «живой» миграции: — необходимо дождаться освобождения ресурсов исходной виртуальной машиной перед тем, как повторить операцию «живой» миграции.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )