← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1555666] [NEW] Nova FC and iSCSI volume drivers use same 'iscsi_use_multipath' conf entry for multipath

 

Public bug reported:

Version:
------------
commit f4dd117a81c68d9fb600dff456e1171841758b43
Merge: 09fc0af 52ea564
Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>
Date:   Thu Mar 10 12:35:11 2016 +0000

    Merge "Use generic wrapper for cinder exceptions"


Issue:
--------

Both FC & iSCSI drivers decide on multipath based on the
'iscsi_use_multipath' config parameter. This is ambiguous and we need to
have different conf entries for iSCSI and FC, which will enable user to
selectively use a feature

Code Block:
-----------------

FC:

class LibvirtFibreChannelVolumeDriver(libvirt_volume.LibvirtBaseVolumeDriver):
    """Driver to attach Fibre Channel Network volumes to libvirt."""

    def __init__(self, connection):
        super(LibvirtFibreChannelVolumeDriver,
              self).__init__(connection, is_block_dev=False)

        # Call the factory here so we can support
        # more than x86 architectures.
        self.connector = connector.InitiatorConnector.factory(
            'FIBRE_CHANNEL', utils.get_root_helper(),
            use_multipath=CONF.libvirt.iscsi_use_multipath,
            device_scan_attempts=CONF.libvirt.num_iscsi_scan_tries)

iSCSI:

class LibvirtISCSIVolumeDriver(libvirt_volume.LibvirtBaseVolumeDriver):
    """Driver to attach Network volumes to libvirt."""

    def __init__(self, connection):
        super(LibvirtISCSIVolumeDriver, self).__init__(connection,
                                                       is_block_dev=True)

        # Call the factory here so we can support
        # more than x86 architectures.
        self.connector = connector.InitiatorConnector.factory(
            'ISCSI', utils.get_root_helper(),
            use_multipath=CONF.libvirt.iscsi_use_multipath,
            device_scan_attempts=CONF.libvirt.num_iscsi_scan_tries,
            transport=self._get_transport())


LibvirtDriver:

    def get_volume_connector(self, instance):
        root_helper = utils.get_root_helper()
        return connector.get_connector_properties(
            root_helper, CONF.my_block_storage_ip,
            CONF.libvirt.iscsi_use_multipath,
            enforce_multipath=True,
            host=CONF.host)

** Affects: nova
     Importance: Undecided
     Assignee: Pradeep Kumar (pradeep-av)
         Status: New

** Changed in: nova
     Assignee: (unassigned) => Pradeep Kumar (pradeep-av)

-- 
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/1555666

Title:
  Nova FC and iSCSI  volume drivers use same 'iscsi_use_multipath' conf
  entry for multipath

Status in OpenStack Compute (nova):
  New

Bug description:
  Version:
  ------------
  commit f4dd117a81c68d9fb600dff456e1171841758b43
  Merge: 09fc0af 52ea564
  Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>
  Date:   Thu Mar 10 12:35:11 2016 +0000

      Merge "Use generic wrapper for cinder exceptions"

  
  Issue:
  --------

  Both FC & iSCSI drivers decide on multipath based on the
  'iscsi_use_multipath' config parameter. This is ambiguous and we need
  to have different conf entries for iSCSI and FC, which will enable
  user to selectively use a feature

  Code Block:
  -----------------

  FC:

  class LibvirtFibreChannelVolumeDriver(libvirt_volume.LibvirtBaseVolumeDriver):
      """Driver to attach Fibre Channel Network volumes to libvirt."""

      def __init__(self, connection):
          super(LibvirtFibreChannelVolumeDriver,
                self).__init__(connection, is_block_dev=False)

          # Call the factory here so we can support
          # more than x86 architectures.
          self.connector = connector.InitiatorConnector.factory(
              'FIBRE_CHANNEL', utils.get_root_helper(),
              use_multipath=CONF.libvirt.iscsi_use_multipath,
              device_scan_attempts=CONF.libvirt.num_iscsi_scan_tries)

  iSCSI:

  class LibvirtISCSIVolumeDriver(libvirt_volume.LibvirtBaseVolumeDriver):
      """Driver to attach Network volumes to libvirt."""

      def __init__(self, connection):
          super(LibvirtISCSIVolumeDriver, self).__init__(connection,
                                                         is_block_dev=True)

          # Call the factory here so we can support
          # more than x86 architectures.
          self.connector = connector.InitiatorConnector.factory(
              'ISCSI', utils.get_root_helper(),
              use_multipath=CONF.libvirt.iscsi_use_multipath,
              device_scan_attempts=CONF.libvirt.num_iscsi_scan_tries,
              transport=self._get_transport())

  
  LibvirtDriver:

      def get_volume_connector(self, instance):
          root_helper = utils.get_root_helper()
          return connector.get_connector_properties(
              root_helper, CONF.my_block_storage_ip,
              CONF.libvirt.iscsi_use_multipath,
              enforce_multipath=True,
              host=CONF.host)

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


Follow ups