Currently iSCSI Volumes are connected in LibVirt as single path devices (/dev/disk/by-path/ip-IP:PORT-iscsi-IQN-lun-X).
Most storage vendors support multipath connections via iSCSI, allowing more robust and faster volumes.
The iSCSI target can be inquired with the 'sendtargets' discovery method which returns all the available iSCSI ports.
The LibvirtISCSIVolumeDriver class should then login to all the discovered iSCSI targets and use multipath to rescan multipath connections.
After that, a new device will be available (usually /dev/dm-X) which will be used as source device in LibVirt instead of /dev/disk/by-path/ip-IP:PORT-iscsi-IQN-lun-X
The scope of changes intended by this blueprint includes:
- Altering nova/virt/libvirt/volume.py:LibvirtISCSIVolumeDriver's behaviour to deal with multipath if installed on the nova-compute node.
- Should still work if multipath isn't installed
- Should work if the storage provider doesn't support multipath.