1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openeuler-stratovirt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
snapshot.md 5.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 5 месяцев назад 123faeb

Создание моментального снимка и восстановление

StratoVirt поддерживает создание моментальных снимков приостановленной виртуальной машины (ВМ) в виде шаблона ВМ. Этот шаблон можно использовать для быстрого запуска новой ВМ. Быстрый запуск пропускает этапы загрузки ядра и инициализации пользовательского пространства, что позволяет запустить ВМ за очень короткое время.

Создание шаблона ВМ

Сначала создаём ВМ StratoVirt:

$ ./stratovirt \
    -machine microvm \
    -kernel path/to/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-device,drive=rootfs,id=rootfs \
    -qmp unix:path/to/socket,server,nowait \
    -serial stdio

После загрузки ВМ приостанавливаем её с помощью QMP:

$ ncat -U path/to/socket
{"QMP":{"version":{"StratoVirt":{"micro":1,"minor":0,"major":0},"package":""},"capabilities":[]}}
{"execute":"stop"}
{"event":"STOP","data":{},"timestamp":{"seconds":1583908726,"microseconds":162739}}
{"return":{}}

Когда ВМ находится в приостановленном состоянии, безопасно создать моментальный снимок ВМ в указанный каталог с помощью QMP.

$ ncat -U path/to/socket
{"QMP":{"version":{"StratoVirt":{"micro":1,"minor":0,"major":0},"package":""},"capabilities":[]}}
{"execute":"migrate", "arguments":{"uri":"file:path/to/template"}}
{"return":{}}

В указанном каталоге на системе будут созданы два файла.

$ ls path/to/template
memory  state

Файл state содержит данные о состоянии устройств ВМ. Файл memory содержит данные гостевой памяти ВМ. Размер файла определяется размером гостевой памяти ВМ.

Восстановление из шаблона ВМ

Восстановите из шаблона ВМ с помощью следующей команды:

$ ./stratovirt \
    -machine microvm \
    -kernel path/to/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-device,drive=rootfs,id=rootfs \
    -qmp unix:path/to/socket,server,nowait \
    -serial stdio \
    -incoming file:path/to/template

Конфигурация устройства должна быть такой же, как у шаблонной ВМ. Можно изменить количество процессоров, размер гостевой памяти, номер и тип устройства. Для файла диска можно использовать только предыдущий файл или его резервные копии. После этого ВМ успешно создаётся из шаблона.

Проверка состояния моментального снимка

Используйте команду 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: Моментальный снимок не удался.

Ограничения

Поддержка моментальных снимков и восстановления для типов машин:

  • microvm
  • q35 (на платформе x86_64)
  • virt (на платформе aarch64).

Некоторые устройства и функции пока не поддерживают моментальные снимки:

  • vhost-net
  • устройства vfio
  • balloon
  • hugepage,mem-shared,backend file of memory
  • pmu
  • sve
  • gic-version=2.

Атрибуты некоторых устройств нельзя изменить:

  • virtio-net: mac
  • virtio-blk: file (только обычный файл или скопированный файл), serial_num
  • device: bus, addr
  • smp
  • m.

Для типа машины microvm, если используется hot-replace перед моментальным снимком, добавьте вновь заменённое устройство в команду восстановления.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/openeuler-stratovirt.git
git@gitlife.ru:oschina-mirror/openeuler-stratovirt.git
oschina-mirror
openeuler-stratovirt
openeuler-stratovirt
master