У меня работает хост kvm с пулом хранения, поддерживаемым iscsi:
virsh # pool-info mypool
Name: mypool
UUID: 913210f2-f8a0-4a56-b7bf-ef00b0080ee1
State: running
Persistent: yes
Autostart: yes
Capacity: 2,00 TiB
Allocation: 2,00 TiB
Available: 0,00 B
В данный момент в пуле есть только один том (это LUN):
virsh # vol-list mypool
Name Path
-----------------------------------------
unit:0:0:1 /dev/disk/by-path/ip-192.168.44.44:3260-iscsi-iqn.2016-08.iscsihost:volume-lun-1
Как определяется название или тот объем? Дополнительный вопрос: цель iscsi использует tgtd. Похоже, что на имя тома нельзя повлиять, установив vendor_id или product_id для LUN. Есть ли способ иметь более красивые имена (в идеале LUN создается для конкретной виртуальной машины и это имя отображается в vol-list virsh или в графическом интерфейсе virt-manager)?
Похоже, что это жестко запрограммировано, и похоже, что бэкенды iscsi и scsi имеют общий код.
Бэкэнд хранилища scsi (re: единица назначения имени устройства: x: x: x): https://github.com/libvirt/libvirt/blob/master/src/storage/storage_backend_scsi.c#L197
бэкэнд хранилища (re: iSCSI использует unit :): https://github.com/libvirt/libvirt/blob/master/src/storage/storage_driver.c#L3364
Я не понимаю весь код, поэтому вот остальная часть хранилища: https://github.com/libvirt/libvirt/tree/master/src/storage
Вы пробовали монтировать цели iscsi и обращаться к ним как к обычным файлам (как пул "dir") из libvirt? Может, тогда у них не будет двусмысленных имен. https://libvirt.org/storage.html#StorageBackendDir
Я не использую iSCSI, но использую ZFS и настроил его следующим образом:
<pool type='dir'>
<name>pool2</name>
<uuid>e725f5e4-3f9b-44a9-a47c-2b04cb154636</uuid>
<capacity unit='bytes'>0</capacity>
<allocation unit='bytes'>0</allocation>
<available unit='bytes'>0</available>
<source>
</source>
<target>
<path>/dev/zvol/pool2</path>
</target>
</pool>
Итак, названия устройств выглядят так
root@igor:~# virsh vol-list pool2
Name Path
------------------------------------------------------------------------------
echo_root /dev/zvol/pool2/echo_root
echo_root-part1 /dev/zvol/pool2/echo_root-part1
echo_root-part2 /dev/zvol/pool2/echo_root-part2
echo_root-part5 /dev/zvol/pool2/echo_root-part5
landscape_root /dev/zvol/pool2/landscape_root
landscape_root-part1 /dev/zvol/pool2/landscape_root-part1
landscape_root-part2 /dev/zvol/pool2/landscape_root-part2
landscape_root-part5 /dev/zvol/pool2/landscape_root-part5
mail_root /dev/zvol/pool2/mail_root
mail_root-part1 /dev/zvol/pool2/mail_root-part1
mail_root-part2 /dev/zvol/pool2/mail_root-part2
mail_root-part5 /dev/zvol/pool2/mail_root-part5
spectre_root /dev/zvol/pool2/spectre_root
spectre_root-part1 /dev/zvol/pool2/spectre_root-part1
spectre_root-part2 /dev/zvol/pool2/spectre_root-part2
swap /dev/zvol/pool2/swap
test /dev/zvol/pool2/test
www1_root /dev/zvol/pool2/www1_root
www1_root-part1 /dev/zvol/pool2/www1_root-part1
www1_root-part2 /dev/zvol/pool2/www1_root-part2
www1_root-part5 /dev/zvol/pool2/www1_root-part5