libvirt: connect_volume scans all LUNs, which takes >2 mins when host is connected with about 900 Luns
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Opinion
|
Wishlist
|
Unassigned |
Bug Description
Tested OpenStack version: IceHouse 2014.1, master branch still has this issue.
Host version: CentOS 6, 2.6.32-
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 was connected with almost 900 LUNs.
1. I use 'iscsiadm' with '--rescan' to discover LUNs, which takes almost 15s. It seems '--rescan' cause kernel to rescan all the LUNs which has already been connected to the host.
2. I use 'multipath -r' to construct multipath devices, which takes almost 2 minutes. I found that 'multipath -r' will reconstructs all multipath devices against the LUNs
The two steps scans all of the LUNs, and totally costs more then 2 minutes.
According to "connect_volume" in nova.virt.
I think connect_volume needn't scan all of the LUNs, only need scan the LUN specified by connection_info.
description: | updated |
summary: |
- libvirt: connect_volume scans all LUNs, it will be very slow with a - large number of volumes + libvirt: connect_volume scans all LUNs, which takes >2 mins when host + is connected with about 900 Luns |
description: | updated |
tags: | added: libvirt |
Changed in nova: | |
assignee: | nobody → Shen Wang (peter.w) |
status: | Opinion → In Progress |
at https:/ /github. com/openstack/ nova/blob/ master/ nova/virt/ libvirt/ volume. py#L590
brackets also missed for '-r'