Support use_multipath for NVME driver

Initiate connector for LibvirtNVMEVolumeDriver driver with
use_multipath argument.

Change-Id: I20f6aa2d422259601c44d024099cd5760a8e21c6
This commit is contained in:
Lior Friedman
2022-01-09 09:06:28 -05:00
parent db15cb9513
commit e8380b96a0
3 changed files with 23 additions and 1 deletions

View File

@@ -29,7 +29,21 @@ class LibvirtNVMEVolumeDriverTestCase(test_volume.LibvirtVolumeBaseTestCase):
nvme.LibvirtNVMEVolumeDriver(self.fake_host)
mock_factory.assert_called_once_with(
initiator.NVME, 'sudo',
initiator.NVME, 'sudo', use_multipath=False,
device_scan_attempts=3)
@mock.patch('os.path.exists', return_value=True)
@mock.patch('nova.utils.get_root_helper')
@mock.patch('os_brick.initiator.connector.InitiatorConnector.factory')
def test_libvirt_nvme_driver_multipath(self, mock_factory, mock_helper,
exists):
self.flags(num_nvme_discover_tries=3, volume_use_multipath=True,
group='libvirt')
mock_helper.return_value = 'sudo'
nvme.LibvirtNVMEVolumeDriver(self.fake_host)
mock_factory.assert_called_once_with(
initiator.NVME, 'sudo', use_multipath=True,
device_scan_attempts=3)
@mock.patch('os_brick.initiator.connector.InitiatorConnector.factory',

View File

@@ -33,6 +33,7 @@ class LibvirtNVMEVolumeDriver(libvirt_volume.LibvirtVolumeDriver):
self.connector = connector.InitiatorConnector.factory(
initiator.NVME, utils.get_root_helper(),
use_multipath=CONF.libvirt.volume_use_multipath,
device_scan_attempts=CONF.libvirt.num_nvme_discover_tries)
def connect_volume(self, connection_info, instance):

View File

@@ -0,0 +1,7 @@
---
features:
- |
The libvirt driver now allows using Native NVMeoF multipathing
for NVMeoF connector, via the configuration attribute in nova-cpu.conf
``[libvirt]/volume_use_multipath``, defaulting to False (disabled).