Add support for VMware First Class Disk (FCD)

An FCD, also known as an Improved Virtual Disk (IVD) or
Managed Virtual Disk, is a named virtual disk independent of
a virtual machine. Using FCDs for Cinder volumes eliminates
the need for shadow virtual machines.
This patch adds Kolla support.

Change-Id: Ic0b66269e6d32762e786c95cf6da78cb201d2765
This commit is contained in:
alecorps 2021-09-13 14:38:48 +02:00 committed by alecorps
parent 458c8b13df
commit 812e03f75e
7 changed files with 63 additions and 4 deletions

View File

@ -933,6 +933,7 @@ gnocchi_metric_datadir_volume: "gnocchi"
################################# #################################
cinder_backend_ceph: "no" cinder_backend_ceph: "no"
cinder_backend_vmwarevc_vmdk: "no" cinder_backend_vmwarevc_vmdk: "no"
cinder_backend_vmware_vstorage_object: "no"
cinder_volume_group: "cinder-volumes" cinder_volume_group: "cinder-volumes"
cinder_target_helper: "{{ 'lioadm' if ansible_facts.os_family == 'RedHat' else 'tgtadm' }}" cinder_target_helper: "{{ 'lioadm' if ansible_facts.os_family == 'RedHat' else 'tgtadm' }}"
# Valid options are [ '', redis, etcd ] # Valid options are [ '', redis, etcd ]

View File

@ -218,6 +218,8 @@ cinder_backends:
enabled: "{{ enable_cinder_backend_hnas_nfs | bool }}" enabled: "{{ enable_cinder_backend_hnas_nfs | bool }}"
- name: "vmwarevc-vmdk" - name: "vmwarevc-vmdk"
enabled: "{{ cinder_backend_vmwarevc_vmdk | bool }}" enabled: "{{ cinder_backend_vmwarevc_vmdk | bool }}"
- name: "vmware-vstorage-object"
enabled: "{{ cinder_backend_vmware_vstorage_object | bool }}"
- name: "QuobyteHD" - name: "QuobyteHD"
enabled: "{{ enable_cinder_backend_quobyte | bool }}" enabled: "{{ enable_cinder_backend_quobyte | bool }}"

View File

@ -35,6 +35,7 @@
- not enable_cinder_backend_nfs | bool - not enable_cinder_backend_nfs | bool
- not cinder_backend_ceph | bool - not cinder_backend_ceph | bool
- not cinder_backend_vmwarevc_vmdk | bool - not cinder_backend_vmwarevc_vmdk | bool
- not cinder_backend_vmware_vstorage_object | bool
- not enable_cinder_backend_quobyte | bool - not enable_cinder_backend_quobyte | bool
- name: Checking LVM volume group exists for Cinder - name: Checking LVM volume group exists for Cinder

View File

@ -175,7 +175,6 @@ hnas_svc0_hdp = {{ hnas_nfs_svc0_hdp }}
{% if cinder_backend_vmwarevc_vmdk | bool %} {% if cinder_backend_vmwarevc_vmdk | bool %}
[vmwarevc-vmdk] [vmwarevc-vmdk]
volume_backend_name=vmwarevc-vmdk
volume_driver = cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver volume_driver = cinder.volume.drivers.vmware.vmdk.VMwareVcVmdkDriver
vmware_host_ip = {{ vmware_vcenter_host_ip }} vmware_host_ip = {{ vmware_vcenter_host_ip }}
vmware_host_username = {{ vmware_vcenter_host_username }} vmware_host_username = {{ vmware_vcenter_host_username }}
@ -184,6 +183,16 @@ vmware_cluster_name = {{ vmware_vcenter_cluster_name }}
vmware_insecure = True vmware_insecure = True
{% endif %} {% endif %}
{% if cinder_backend_vmware_vstorage_object | bool %}
[vmware-vstorage-object]
volume_driver = cinder.volume.drivers.vmware.fcd.VMwareVStorageObjectDriver
vmware_host_ip = {{ vmware_vcenter_host_ip }}
vmware_host_username = {{ vmware_vcenter_host_username }}
vmware_host_password = {{ vmware_vcenter_host_password }}
vmware_cluster_name = {{ vmware_vcenter_cluster_name }}
vmware_insecure = True
{% endif %}
{% if enable_cinder_backend_quobyte | bool %} {% if enable_cinder_backend_quobyte | bool %}
[QuobyteHD] [QuobyteHD]
volume_driver = cinder.volume.drivers.quobyte.QuobyteDriver volume_driver = cinder.volume.drivers.quobyte.QuobyteDriver

View File

@ -29,7 +29,18 @@ For VMware DVS:
* neutron-metadata-agent * neutron-metadata-agent
Kolla can deploy the Glance and Cinder services using VMware datastore as their Kolla can deploy the Glance and Cinder services using VMware datastore as their
backend. Ceilometer metering for vSphere is also supported. backend.
You can create Cinder volumes as VMDKs or as First Class Disks (FCDs).
An FCD, also known as an Improved Virtual Disk (IVD) or Managed Virtual Disk,
is a named virtual disk independent of a virtual machine.
Using FCDs for Cinder volumes eliminates the need for shadow virtual machines.
The FCD backend is offered in addition to the default VMDK backend.
If you use FCD as the backend driver for Cinder, you can use both FCD and
VMDK volumes in the same deployment.
Ceilometer metering for vSphere is also supported.
Because the `vmware-nsx <https://github.com/openstack/vmware-nsx>`__ drivers for Because the `vmware-nsx <https://github.com/openstack/vmware-nsx>`__ drivers for
neutron use completely different architecture than other types of neutron use completely different architecture than other types of
@ -152,6 +163,16 @@ If you want to set VMware datastore as cinder backend, enable it in
cinder_backend_vmwarevc_vmdk: "yes" cinder_backend_vmwarevc_vmdk: "yes"
vmware_datastore_name: "TestDatastore" vmware_datastore_name: "TestDatastore"
If you want to set VMware First Class Disk (FCD) datastore
as VMware vStorage Object backend, enable it in
``/etc/kolla/globals.yml``:
.. code-block:: yaml
enable_cinder: "yes"
cinder_backend_vmware_vstorage_object: "yes"
vmware_datastore_name: "TestDatastore"
If you want to set VMware datastore as glance backend, enable it in If you want to set VMware datastore as glance backend, enable it in
``/etc/kolla/globals.yml``: ``/etc/kolla/globals.yml``:
@ -295,7 +316,7 @@ Enable VMware nova-compute plugin and NSX-V neutron-server plugin in
* enable_neutron_vpnaas: "yes" * enable_neutron_vpnaas: "yes"
* enable_neutron_fwaas: "yes" * enable_neutron_fwaas: "yes"
If you want to set VMware datastore as cinder backend, enable it in If you want to set VMware VMDK datastore as cinder backend, enable it in
``/etc/kolla/globals.yml``: ``/etc/kolla/globals.yml``:
.. code-block:: yaml .. code-block:: yaml
@ -304,6 +325,16 @@ If you want to set VMware datastore as cinder backend, enable it in
cinder_backend_vmwarevc_vmdk: "yes" cinder_backend_vmwarevc_vmdk: "yes"
vmware_datastore_name: "TestDatastore" vmware_datastore_name: "TestDatastore"
If you want to set VMware First Class Disk (FCD) datastore
as VMware vStorage Object backend, enable it in
``/etc/kolla/globals.yml``:
.. code-block:: yaml
enable_cinder: "yes"
cinder_backend_vmware_vstorage_object: "yes"
vmware_datastore_name: "TestDatastore"
If you want to set VMware datastore as glance backend, enable it in If you want to set VMware datastore as glance backend, enable it in
``/etc/kolla/globals.yml``: ``/etc/kolla/globals.yml``:
@ -397,7 +428,7 @@ Enable VMware nova-compute plugin and NSX-V neutron-server plugin in
nova_compute_virt_type: "vmware" nova_compute_virt_type: "vmware"
neutron_plugin_agent: "vmware_dvs" neutron_plugin_agent: "vmware_dvs"
If you want to set VMware datastore as Cinder backend, enable it in If you want to set VMware VMDK datastore as cinder backend, enable it in
``/etc/kolla/globals.yml``: ``/etc/kolla/globals.yml``:
.. code-block:: yaml .. code-block:: yaml
@ -406,6 +437,16 @@ If you want to set VMware datastore as Cinder backend, enable it in
cinder_backend_vmwarevc_vmdk: "yes" cinder_backend_vmwarevc_vmdk: "yes"
vmware_datastore_name: "TestDatastore" vmware_datastore_name: "TestDatastore"
If you want to set VMware First Class Disk (FCD) datastore
as VMware vStorage Object backend, enable it in
``/etc/kolla/globals.yml``:
.. code-block:: yaml
enable_cinder: "yes"
cinder_backend_vmware_vstorage_object: "yes"
vmware_datastore_name: "TestDatastore"
If you want to set VMware datastore as Glance backend, enable it in If you want to set VMware datastore as Glance backend, enable it in
``/etc/kolla/globals.yml``: ``/etc/kolla/globals.yml``:

View File

@ -521,6 +521,7 @@
# Enable / disable Cinder backends # Enable / disable Cinder backends
#cinder_backend_ceph: "no" #cinder_backend_ceph: "no"
#cinder_backend_vmwarevc_vmdk: "no" #cinder_backend_vmwarevc_vmdk: "no"
#cinder_backend_vmware_vstorage_object: "no"
#cinder_volume_group: "cinder-volumes" #cinder_volume_group: "cinder-volumes"
# Valid options are [ '', redis, etcd ] # Valid options are [ '', redis, etcd ]
#cinder_coordination_backend: "{{ 'redis' if enable_redis|bool else 'etcd' if enable_etcd|bool else '' }}" #cinder_coordination_backend: "{{ 'redis' if enable_redis|bool else 'etcd' if enable_etcd|bool else '' }}"

View File

@ -0,0 +1,4 @@
---
features:
- |
Adds support for the VMware FCD as Cinder volumes.