[libvirt-users] NPIV storage pools do not map to same LUN units across hosts.
Nitesh Konkar
niteshkonkar.libvirt at gmail.com
Thu Aug 4 07:03:31 UTC 2016
Any comments on this observation?
On Sat, Jul 16, 2016 at 2:25 AM, Nitesh Konkar <
niteshkonkar.libvirt at gmail.com> wrote:
> Link: http://wiki.libvirt.org/page/NPIV_in_libvirt
> Topic: Virtual machine configuration change to use vHBA LUN
>
> There is a NPIV storage pool defined on two hosts and pool contains a
> total of 8 volumes, allocated from a storage device.
>
> Source:
>
> # virsh vol-list poolvhba0
> Name Path
> ------------------------------------------------------------------------------
> unit:0:0:0 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000366
> unit:0:0:1 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000367
> unit:0:0:2 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000368
> unit:0:0:3 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000369
> unit:0:0:4 /dev/disk/by-id/wwn-0x6005076802818bda300000000000036a
> unit:0:0:5 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000380
> unit:0:0:6 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000381
> unit:0:0:7 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000382
> --------------------------------------------------------------------
> Destination:
> --------------------------------------------------------------------
> # virsh vol-list poolvhba0
> Name Path
> ------------------------------------------------------------------------------
> unit:0:0:0 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000380
> unit:0:0:1 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000381
> unit:0:0:2 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000382
> unit:0:0:3 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000367
> unit:0:0:4 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000368
> unit:0:0:5 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000366
> unit:0:0:6 /dev/disk/by-id/wwn-0x6005076802818bda300000000000036a
> unit:0:0:7 /dev/disk/by-id/wwn-0x6005076802818bda3000000000000369
> --------------------------------------------------------------------
>
> As you can see in the above output,the same set of eight LUNs from the storage server have been mapped,
> but the order that the LUNs are probed on each host is different, resulting in different unit names
> on the two different hosts .
>
> If the the guest XMLs is referencing its storage by "unit" number then is
> it safe to migrate such guests because the "unit number" is assigned by the
> driver according to the specific way it probes the storage and hence when you migrate
> these guests , it results in different unit names on the destination hosts.
> Thus the migrated guest gets mapped to the wrong LUNs and is given the wrong disks.
> The problem is that the LUN numbers on the destination host and source host do not agree.
> Example, LUN 0 on source_host, for example, may be LUN 5 on destination_host.
> When the guest is given the wrong disk, it suffers a fatal I/O error. (This is
> manifested as fatal I/O errors since the guest has no idea that its disks just
> changed out under it.)The migration does not take into account that the unit numbers do
> match on on the source and destination sides.
>
> So, should libvirt make sure that the guest domains reference NPIV pool volumes by their
> globally-unique wwn instead of by "unit" numbers?
>
> The guest XML references its storage by "unit" number.
>
> Eg:-
> <disk type='volume' device='lun'>
> <driver name='qemu' type='raw' cache='none'/>
> <source pool='poolvhba0' volume='unit:0:0:0'/>
> <backingStore/>
> <target dev='vdb' bus='virtio'/>
> <alias name='virtio-disk1'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
> </disk>
>
> I am planning to write a patch for it. Any comments on the above observation/approach would be appreciated.
>
> Thanks,
>
> Nitesh.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20160804/da7bc1e3/attachment.htm>
More information about the libvirt-users
mailing list