Bug 57187 - Использует ненадёжную идентификацию дисков по имени, даже когда они указаны по ID
Summary: Использует ненадёжную идентификацию дисков по имени, даже когда они указаны п...
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: libvirt-daemon-driver-storage-disk (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-12-10 11:40 MSK by Artem Varaksa
Modified: 2025-12-10 12:04 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Artem Varaksa 2025-12-10 11:40:43 MSK
Шаги
====

Необходима (например) виртуальная машина (cpu=host) с двумя дисками.

1. # apt-get install -y qemu libvirt libvirt-daemon-driver-storage-disk

2. На дополнительном (втором) диске создать раздел:

# (echo o; echo n; echo p; echo 1; echo; echo; echo w) | \
    fdisk /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1

3. # gpasswd -a test vmusers
4. # ! stat /dev/kvm && modprobe kvm-intel
5. # systemctl enable --now libvirtd
6. Скачать образ системы для ВМ в директорию /var/lib/libvirt/images.

7. Открыть virt-manager (`# apt-get install -y virt-manager`) на любой системе.

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

9. Дождаться подключения к QEMU/KVM на сервере, выбрать эту строку в списке 

10. Создать пул для хранения ВМ: Выбрать Правка > Свойства подключения > Пространство данных > нажать + (внизу 'Добавить пул') > ввести название или оставить по умолчанию pool > Тип: disk > Путь к источнику: /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1 > Готово

11. Создать виртуальную машину:

Файл -> Создать виртуальную машину (или кнопка на панели)

Метод: Локальный ISO или CDROM

-> Вперёд

-> Обзор -> выбрать скачанный образ  -> Выбор тома

-> отметить чек-бокс "Автоматически определить по носителю/источнику пакетов для установки"

-> в строке выбора операционной системы выбрать ALT 11.0 (или аналогично)

-> Вперёд

-> настроить память и процессор (можно оставить по умолчанию)

-> Вперёд

-> отметить чек-бокс Настроить пространство хранения данных

-> отметить радиобаттон Выбрать или создать дополнительное  пространство данных

-> нажать на кнопку Настроить

-> выбрать пул с диском

-> в списке томов выбрать единственный раздел на диске

-> Выбрать том


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

10. Разделы отображаются как sdb1 и т. п.
11. Раздел запоминается как /dev/sdb1 и т. п.

Приходится вручную менять на /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part1, чтобы стабильно работало после перезагрузок и т. п.

Происходит скорее всего потому что /dev/disk/by-id/... является ссылкой на (в данном примере при данной загрузке) /dev/sdb. Но libvirt-daemon-driver-storage-disk мог бы использовать `udevadm` или подобные утилиты/API, чтобы узнать надёжный идентификатор диска.


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

Особенно если сам pool был создан с использованием ID:

10. Разделы отображаются как scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part1 и т. п.
11. Раздел запоминается как /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part1 и т. п.


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

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

[p11] ALT Server 11.0 x86_64
libvirt-daemon-driver-storage-disk-11.10.0-alt1.x86_64

[sisyphus] ALT Server 11.0 x86_64
libvirt-daemon-driver-storage-disk-11.10.0-alt1.x86_64


Клиент: [p11] ALT Workstation 11.0 x86_64 (virt-manager-5.0.0-alt1.noarch)
Comment 1 Artem Varaksa 2025-12-10 12:04:59 MSK
> [p11] ALT Server 11.0 x86_64
> libvirt-daemon-driver-storage-disk-11.10.0-alt1.x86_64

Ошибся, правильная версия 10.7.0-alt1.x86_64. В [p11+401580.3] с указанной ранее версией тоже воспроизводится.