OpenStack Cinder NVMe/TCP Multipathing: Only One Controller Path Visible with NetApp ONTAP
Applies to
- NetApp ONTAP (e.g., 9.17.1P6, AFF-C250)
- OpenStack Cinder using NetApp ONTAP NVMe/TCP unified driver
- Linux hosts with native NVMe multipath enabled
- OpenStack deployments (e.g., Platform9) using os-brick for NVMe/TCP
- Multi-controller NetApp clusters with multiple NVMe/TCP LIFs
Issue
When attaching a NetApp ONTAP NVMe/TCP volume to a VM using OpenStack Cinder, only one NVMe/TCP path/controller is automatically established on the compute node. As a result, multipathing and redundancy are not available by default. Manual discovery and connection to the second LIF is required to establish the additional path.
Example log output (from cinder-volume and os-brick):
DEBUG cinder.volume.drivers.netapp.dataontap.nvme_library Initialize connection info: {
'driver_volume_type': 'nvmeof',
'data': {
'target_nqn': 'nqn.1992-08.com.netapp:...',
'host_nqn': 'nqn.2014-08.org.nvmexpress:uuid:...',
'portals': [('<nvme data lif ip1>', 4420, 'tcp')],
'vol_uuid': '...'
}
}
DEBUG cinder.volume.manager Connection info returned from driver {
'target_nqn': 'nqn.1992-08.com.netapp:...',
'host_nqn': 'nqn.2014-08.org.nvmexpress:uuid:...',
'portals': [('<nvme data lif ip2>', 4420, 'tcp')],
...
}
DEBUG os_brick.initiator.connectors.nvmeof Found a valid portal at ('<nvme data lif ip1>', '4420', 'tcp', ...)
DEBUG os_brick.initiator.connectors.nvmeof Skipping ('<nvme data lif ip2>', '4420', 'tcp', ...), not part of portals [...]
Expected: Both LIFs should be returned in the portals list.
