← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1362513] [NEW] libvirt: connect_volume scans all LUNs, it will be very slow with a large number of volumes

 

Public bug reported:

Tested OpenStack version: IceHouse 2014.1, master branch still has this issue.
Host version: CentOS 6, 2.6.32-431.el6.x86_64

I have done some work to test the performance of LUN scanning with multipath, use the way like what Nova dose. 
In my test, The host connected with almost 900 LUNs.
First, I use 'iscsiadm' with '--rescan' to discover LUNs.
Second, I use 'multipath -r' to construct multipath devices.
The tow steps scans all of the LUNs, and costs more then 2 minutes.

According to "connect_volume" in nova.virt.libvirt.volume.py:
https://github.com/openstack/nova/blob/master/nova/virt/libvirt/volume.py#L252,
Nova also uses the tow steps to detect new multipath volume, this tow
will scan all of the LUNs, including all the others which already
connected. So if a host has a large number of LUNs connected to it, the
connect_volume will be very slow.

I think connect_volume needn't scan all of the LUNs, only need scan the
LUN specified by connection_info.

** Affects: nova
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1362513

Title:
  libvirt: connect_volume scans all LUNs, it will be very slow with a
  large number of volumes

Status in OpenStack Compute (Nova):
  New

Bug description:
  Tested OpenStack version: IceHouse 2014.1, master branch still has this issue.
  Host version: CentOS 6, 2.6.32-431.el6.x86_64

  I have done some work to test the performance of LUN scanning with multipath, use the way like what Nova dose. 
  In my test, The host connected with almost 900 LUNs.
  First, I use 'iscsiadm' with '--rescan' to discover LUNs.
  Second, I use 'multipath -r' to construct multipath devices.
  The tow steps scans all of the LUNs, and costs more then 2 minutes.

  According to "connect_volume" in nova.virt.libvirt.volume.py:
  https://github.com/openstack/nova/blob/master/nova/virt/libvirt/volume.py#L252,
  Nova also uses the tow steps to detect new multipath volume, this tow
  will scan all of the LUNs, including all the others which already
  connected. So if a host has a large number of LUNs connected to it,
  the connect_volume will be very slow.

  I think connect_volume needn't scan all of the LUNs, only need scan
  the LUN specified by connection_info.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1362513/+subscriptions


Follow ups

References