Using Multipath, iscsi sessions and multipath device's being mangled by nova during instance delete operations

Registered by Loren Erwin

Customer: When multipath is enabled with Nova, a different codepath is executed for most functions, such as connect_volume and disconnect_volume.

A series of loops exist within connect_volume when multipath is enabled
An iscsiadm discover is ran against the portal information associated with the instance, in our case a portal on the nimble storage array.
For every iqn discovered, _connect_to_iscsi_portal runs and logins to the portal.

In our test scenario, with 183 instances - this results in 183*2 IQN targets being discovered, and logged into, every single time an instance is launched on that node. With multiple instance creation this compounds.

These calls can take upwards of 1 second to run * the number of times.

Additionally there seems to be other code paths with similar loops with iSCSI behaviour.

We may have just addressed the connect_volume loop as well. The IQN of the iSCSI device is always the same, although the portal may be different. iscsi_properties['target_iqn'] contains the target_iqn. Instead of looping through every single IQN to login to, the code now only logs into the IQN's it needs.

such as

for ip, iqn in self._get_target_portals_from_iscsiadm_output(out):
if iqn in iscsi_properties['target_iqn']:
props = iscsi_properties.copy()
props['target_portal'] = ip
props['target_iqn'] = iqn
self._connect_to_iscsi_portal(props)

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Loren Erwin
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.