← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1471810] [NEW] Support host type specific block volume attachment

 

Public bug reported:


The IBM DS8000 storage subsystem supports different host types for Fibre-Channel. When LUNs are
mapped to host ports, the user has to specify the LUN format to be used, as well as the Volume Group address type. If those properties are not set correctly, the host operating system will be unable to detect or use those LUNs (volumes).

A LUN with LUN ID 1234, for example, will be addressed from AIX, or
System z using LUN 0x4012403400000000 (0x40LL40LL00..00). Linux on Intel
addresses the LUN by 0x1234000000000000. That means, the storage
subsystem is aware of the host architecture (platform, and Operating
System).

The Cinder driver thus needs to set the host type to 'System z' on the
DS8000 storage subsystem when a Nova running on System z requests Cinder
to attach a volume. Accordingly, the Cinder driver needs to set the host
type to 'Intel - Linux' when a Nova running on an Intel compute node is
requesting Cinder to attach a volume.

The Cinder driver currently does not have any awareness about the host type/operating system when attaching a volume to a host. Nove currently creates a connector. And passes it to Cinder when requesting Cinder to attach a volume. The connector only provides information, such as the hosts WWPNs. Nova should add the output of platform.machine() and sys.platform to
the connector. Cinder will pass this information to the Cinder driver for the storage back-end. The Cinder driver can then determine (in the example of a DS8000) the correct host type to be used. 

Required changes are relatively small: in ``nova/virt/libvirt/driver.py``: add output of ``platform.machine()`` and
``sys.platform`` to the connector when it is created in ``get_volume_connector``.

Note, that similar changes have been released for Cinder already. When
Cinder needs to attach a volume to it's host/hypervisor, it also creates
a connector and passes it to the Cinder driver. Those changes have been
merged by the Cinder team already. They are addressed by
https://review.openstack.org/192558

** Affects: nova
     Importance: Undecided
         Status: New

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

Title:
  Support host type specific block volume attachment

Status in OpenStack Compute (Nova):
  New

Bug description:
  
  The IBM DS8000 storage subsystem supports different host types for Fibre-Channel. When LUNs are
  mapped to host ports, the user has to specify the LUN format to be used, as well as the Volume Group address type. If those properties are not set correctly, the host operating system will be unable to detect or use those LUNs (volumes).

  A LUN with LUN ID 1234, for example, will be addressed from AIX, or
  System z using LUN 0x4012403400000000 (0x40LL40LL00..00). Linux on
  Intel addresses the LUN by 0x1234000000000000. That means, the storage
  subsystem is aware of the host architecture (platform, and Operating
  System).

  The Cinder driver thus needs to set the host type to 'System z' on the
  DS8000 storage subsystem when a Nova running on System z requests
  Cinder to attach a volume. Accordingly, the Cinder driver needs to set
  the host type to 'Intel - Linux' when a Nova running on an Intel
  compute node is requesting Cinder to attach a volume.

  The Cinder driver currently does not have any awareness about the host type/operating system when attaching a volume to a host. Nove currently creates a connector. And passes it to Cinder when requesting Cinder to attach a volume. The connector only provides information, such as the hosts WWPNs. Nova should add the output of platform.machine() and sys.platform to
  the connector. Cinder will pass this information to the Cinder driver for the storage back-end. The Cinder driver can then determine (in the example of a DS8000) the correct host type to be used. 

  Required changes are relatively small: in ``nova/virt/libvirt/driver.py``: add output of ``platform.machine()`` and
  ``sys.platform`` to the connector when it is created in ``get_volume_connector``.

  Note, that similar changes have been released for Cinder already. When
  Cinder needs to attach a volume to it's host/hypervisor, it also
  creates a connector and passes it to the Cinder driver. Those changes
  have been merged by the Cinder team already. They are addressed by
  https://review.openstack.org/192558

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


Follow ups

References