rbd volume support

Ceph 16 (Pacific) will support attaching RBD images to Windows
hosts as well as Hyper-V VMs [1].

This patch updates the Hyper-V driver so that it may be able to
consume RBD volumes.

os-brick patch: I56bf09cbd40679eefa5e378c9b36383de89e980c

[1] https://github.com/ceph/ceph/pull/33750

Implements: blueprint rbd-volumes

Change-Id: I726e426a7274d7c9c6a878afddd23a20ce222a33
This commit is contained in:
Lucian Petrut 2020-03-09 13:57:55 +00:00
parent b31ab3a293
commit 81c7cf6c40
6 changed files with 20 additions and 5 deletions

View File

@ -32,10 +32,11 @@ class ClusterVolumeOps(volumeops.VolumeOps):
def _get_volume_driver(self, connection_info):
driver_type = connection_info.get('driver_volume_type')
if driver_type in [constants.STORAGE_PROTOCOL_ISCSI,
constants.STORAGE_PROTOCOL_FC]:
constants.STORAGE_PROTOCOL_FC,
constants.STORAGE_PROTOCOL_RBD]:
err_msg = (
"The Hyper-V Cluster driver does not currently support "
"passthrough disks (e.g. iSCSI/FC disks). The reason is "
"passthrough disks (e.g. iSCSI/FC/RBD disks). The reason is "
"that the volumes need to be available on the destination "
"host side during an unexpected instance failover. In order "
"to leverage your storage backend, you may either use the "

View File

@ -100,6 +100,7 @@ IOPS_BASE_SIZE = 8 * units.Ki
STORAGE_PROTOCOL_ISCSI = 'iscsi'
STORAGE_PROTOCOL_FC = 'fibre_channel'
STORAGE_PROTOCOL_SMBFS = 'smbfs'
STORAGE_PROTOCOL_RBD = 'rbd'
MAX_CONSOLE_LOG_FILE_SIZE = units.Mi // 2

View File

@ -84,7 +84,8 @@ class VolumeOps(object):
self.volume_drivers = {
constants.STORAGE_PROTOCOL_SMBFS: SMBFSVolumeDriver(),
constants.STORAGE_PROTOCOL_ISCSI: ISCSIVolumeDriver(),
constants.STORAGE_PROTOCOL_FC: FCVolumeDriver()}
constants.STORAGE_PROTOCOL_FC: FCVolumeDriver(),
constants.STORAGE_PROTOCOL_RBD: RBDVolumeDriver()}
@property
def _vmops(self):
@ -771,3 +772,9 @@ class SMBFSVolumeDriver(BaseVolumeDriver):
class FCVolumeDriver(BaseVolumeDriver):
_is_block_dev = True
_protocol = constants.STORAGE_PROTOCOL_FC
class RBDVolumeDriver(BaseVolumeDriver):
_is_block_dev = True
_protocol = constants.STORAGE_PROTOCOL_RBD
_extra_connector_args = dict(do_local_attach=True)

View File

@ -103,8 +103,8 @@ make sure to enable the following config option:
This will ensure that the available paths are actually leveraged. Also, before
attempting any volume connection, it will ensure that the MPIO service is
enabled and that passthrough block devices (iSCSI / FC) are claimed by MPIO.
SMB backed volumes are not affected by this option.
enabled and that iSCSI and Fibre Channel block devices are claimed by MPIO.
SMB and RBD volumes are not affected by this option.
In some cases, Nova may fail to attach volumes due to transient connectivity
issues. The following options specify how many and how often retries should be

View File

@ -99,6 +99,7 @@ following protocols:
* iSCSI
* Fibre Channel
* SMB - the volumes are stored as virtual disk images (e.g. VHD / VHDX)
* RBD - starting with Ceph 16 (Pacific)
.. note::

View File

@ -0,0 +1,5 @@
features:
- |
The standard Hyper-V Nova driver can now attach RBD volumes. Note that the
cluster driver doesn't support RBD volumes yet. The minimum required
Ceph version is Ceph 16 (Pacific).