Bug 48059

Summary: После живой миграции виртуальная машина не работает (не мигрируется диск)
Product: Sisyphus Reporter: Artem Varaksa <varaksaaa>
Component: libvirtAssignee: Alexey Shabalin <shaba>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: shaba
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Artem Varaksa 2023-10-18 16:48:13 MSK
Шаги
====

Подготовка
----------

Настроить два сервера libvirtd на хостах (использовались виртуальные машины на PVE с 10 GB RAM, processor - host):

1. # apt-get install -y virt-manager qemu libvirt libvirt-daemon-driver-storage-disk
2. Добавить второй диск (как минимум 40 GB). Создать на нём раздел:
# (echo o; echo n; echo p; echo 1; echo; echo; echo w) | fdisk /dev/sdb
3. # gpasswd -a test vmusers
4. # ! stat /dev/kvm && modprobe kvm-intel
5. # systemctl enable --now libvirtd

На сервере 1 скачать образ системы (например, alt-server-10.1-x86_64.iso) в папку /var/lib/libvirt/images.

На сервере 2 создать ssh ключ для пользователя и добавить его в разрешённые на сервер 1:
1. $ ssh-keygen -t ed25519 -N "" -f /home/test/.ssh/id_ed25519
2. $ ssh-copy-id -f root@<server 1 ip>

Создание ВМ
-----------

На сервере 1 создать ВМ, установить систему из iso:

1. Запустить virt-manager. Дождаться подключения к QEMU/KVM, выбрать эту строку в списке. Создать pool для хранения данных: Выбрать Правка -> Свойства подключения -> Пространство данных -> нажать + -> ввести название или оставить по умолчанию pool -> Тип: disk -> Путь к источнику: /dev/sdb -> Готово.

2. Вкладка Виртуальные сети -> выбрать default -> нажать треугольник (запустить) -> включить Автозапуск: при загрузке -> Применить.

3. Файл -> Создать виртуальную машину -> Метод: Локальный ISO или CDROM -> Вперёд -> Обзор - выбрать скачанный образ - Выбор тома -> в строке выбора операционной системы должно быть автоматически обнаружено ALT 10.1 -> Вперёд -> настроить память и процессор -> Вперёд -> Настроить пространство хранения данных -> Выбрать или создать дополнительное пространство данных -> Настроить -> выбрать пул с диском -> в списке томов выбрать sdb1 -> Выбор тома -> Вперёд -> Готово.

4. Установить систему в ВМ.

Миграция
--------

В настройках виртуальной машины на сервере 1 задать модель в конфигурации процессора kvm64:

1. Выключить ВМ
2. Открыть ВМ
3. Показать виртуальное оборудование (значок лампочки на панели инструментов)
4. Процессоры
5. Убрать галочку "Копировать конфигурацию ЦП хоста (host-passthrough)"
6. Выбрать модель kvm64
7. Применить

Мигрировать, используя сервер 2:

1. Выбрать Файл - Добавить соединение - Подключиться к удалённому узлу с помощью SSH - вводим имя пользователя (root) и адрес сервера 1 - Подключиться.

2. Запустить удалённую ВМ, затем в окне менеджера ПКМ на ней -> Миграция -> выбрать локальный узел -> в поле Адрес ввести IP адрес сервера 2 (по которому сервер 1 сможет найти сервер 2) -> нажать Миграция

3. После завершения миграции открыть ВМ

Фактический результат
=====================

Состояние ВМ (RAM) мигрировано успешно, но при попытке выполнения каких-либо действий (например, нажатие на "Приложения" в строке меню) элементы интерфейса падают/перезапускаются.

Если принудительно сбросить VM с помощью virt-manager (обычное выключение не работает), то система не загружается. Похоже, что диск не мигрируется корректно.

Ожидаемый результат
===================

ВМ корректно работает после миграции.

Дополнительно
=============

Во время миграции прогресс отображается только на 2 GB (размер RAM).

После миграции свойствах подключения > Пространство данных > pool на 2-х серверах корректно отображается статус использования (используется на целевом сервере 2, не используется на 1-м).

Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

server-10.1-x86-64
[p10] libvirt-9.7.0-alt2.x86_64 x2
[sisyphus] libvirt-9.7.0-alt2.x86_64 x2