Add support for Quobyte backend to Cinder and Nova

Add an enable_cinder_backend_quobyte option to etc/kolla/globals.yml to
enable use the Quobyte Cinder backend.
Change the bind mounts for /var/lib/nova/mnt to include the shared
propogation if Quobyte is enabled.
Update the documentation to include a section on configuring the Cinder.

Implements: blueprint cinder-quobyte-backend

Change-Id: I364939407ad244fe81cea40f880effdbcaa8a20d
This commit is contained in:
Patrick O'Neill 2018-09-24 14:38:08 +01:00
parent c645841958
commit f77cc87e81
9 changed files with 59 additions and 3 deletions

View File

@ -452,6 +452,7 @@ enable_cinder_backend_iscsi: "{{ enable_cinder_backend_lvm | bool or enable_cind
enable_cinder_backend_lvm: "no" enable_cinder_backend_lvm: "no"
enable_cinder_backend_nfs: "no" enable_cinder_backend_nfs: "no"
enable_cinder_backend_zfssa_iscsi: "no" enable_cinder_backend_zfssa_iscsi: "no"
enable_cinder_backend_quobyte: "no"
enable_cloudkitty: "no" enable_cloudkitty: "no"
enable_congress: "no" enable_congress: "no"
enable_designate: "no" enable_designate: "no"

View File

@ -188,6 +188,8 @@ cinder_backends:
enabled: "{{ cinder_backend_vmwarevc_vmdk | bool }}" enabled: "{{ cinder_backend_vmwarevc_vmdk | bool }}"
- name: "zfssa-iscsi" - name: "zfssa-iscsi"
enabled: "{{ enable_cinder_backend_zfssa_iscsi | bool }}" enabled: "{{ enable_cinder_backend_zfssa_iscsi | bool }}"
- name: "QuobyteHD"
enabled: "{{ enable_cinder_backend_quobyte | bool }}"
cinder_enabled_backends: "{{ cinder_backends|selectattr('enabled', 'equalto', true)|list }}" cinder_enabled_backends: "{{ cinder_backends|selectattr('enabled', 'equalto', true)|list }}"
@ -221,6 +223,12 @@ zfssa_iscsi_initiator_group:
zfssa_iscsi_target_portal: zfssa_iscsi_target_portal:
zfssa_iscsi_target_interfaces: zfssa_iscsi_target_interfaces:
#########################
# Quobyte Storage Driver
#########################
quobyte_storage_host:
quobyte_storage_volume:
#################### ####################
# Kolla # Kolla

View File

@ -28,6 +28,7 @@
- not cinder_backend_ceph | bool - not cinder_backend_ceph | bool
- not cinder_backend_vmwarevc_vmdk | bool - not cinder_backend_vmwarevc_vmdk | bool
- not enable_cinder_backend_zfssa_iscsi | bool - not enable_cinder_backend_zfssa_iscsi | bool
- not enable_cinder_backend_quobyte | bool
- name: Checking LVM volume group exists for Cinder - name: Checking LVM volume group exists for Cinder
command: "vgs {{ cinder_volume_group }}" command: "vgs {{ cinder_volume_group }}"

View File

@ -197,6 +197,12 @@ zfssa_target_portal = {{ zfssa_iscsi_target_portal }}
zfssa_target_interfaces = {{ zfssa_iscsi_target_interfaces }} zfssa_target_interfaces = {{ zfssa_iscsi_target_interfaces }}
{% endif %} {% endif %}
{% if enable_cinder_backend_quobyte | bool %}
[QuobyteHD]
volume_driver = cinder.volume.drivers.quobyte.QuobyteDriver
quobyte_volume_url = quobyte://{{ quobyte_storage_host }}/{{ quobyte_storage_volume }}
{% endif %}
[privsep_entrypoint] [privsep_entrypoint]
helper_command=sudo cinder-rootwrap /etc/cinder/rootwrap.conf privsep-helper --config-file /etc/cinder/cinder.conf helper_command=sudo cinder-rootwrap /etc/cinder/rootwrap.conf privsep-helper --config-file /etc/cinder/cinder.conf

View File

@ -19,7 +19,7 @@ nova_services:
- "kolla_logs:/var/log/kolla/" - "kolla_logs:/var/log/kolla/"
- "libvirtd:/var/lib/libvirt" - "libvirtd:/var/lib/libvirt"
- "{{ nova_instance_datadir_volume }}:/var/lib/nova/" - "{{ nova_instance_datadir_volume }}:/var/lib/nova/"
- "{% if enable_cinder_backend_nfs | bool %}/var/lib/nova/mnt:/var/lib/nova/mnt:shared{% endif %}" - "{% if enable_shared_var_lib_nova_mnt | bool %}/var/lib/nova/mnt:/var/lib/nova/mnt:shared{% endif %}"
- "nova_libvirt_qemu:/etc/libvirt/qemu" - "nova_libvirt_qemu:/etc/libvirt/qemu"
- "{{ kolla_dev_repos_directory ~ '/nova/nova:/var/lib/kolla/venv/lib/python2.7/site-packages/nova' if nova_dev_mode | bool else '' }}" - "{{ kolla_dev_repos_directory ~ '/nova/nova:/var/lib/kolla/venv/lib/python2.7/site-packages/nova' if nova_dev_mode | bool else '' }}"
dimensions: "{{ nova_libvirt_dimensions }}" dimensions: "{{ nova_libvirt_dimensions }}"
@ -33,7 +33,7 @@ nova_services:
- "/etc/localtime:/etc/localtime:ro" - "/etc/localtime:/etc/localtime:ro"
- "kolla_logs:/var/log/kolla" - "kolla_logs:/var/log/kolla"
- "{{ nova_instance_datadir_volume }}:/var/lib/nova" - "{{ nova_instance_datadir_volume }}:/var/lib/nova"
- "{% if enable_cinder_backend_nfs | bool %}/var/lib/nova/mnt:/var/lib/nova/mnt:shared{% endif %}" - "{% if enable_shared_var_lib_nova_mnt | bool %}/var/lib/nova/mnt:/var/lib/nova/mnt:shared{% endif %}"
- "{{ kolla_dev_repos_directory ~ '/nova/nova:/var/lib/kolla/venv/lib/python2.7/site-packages/nova' if nova_dev_mode | bool else '' }}" - "{{ kolla_dev_repos_directory ~ '/nova/nova:/var/lib/kolla/venv/lib/python2.7/site-packages/nova' if nova_dev_mode | bool else '' }}"
dimensions: "{{ nova_ssh_dimensions }}" dimensions: "{{ nova_ssh_dimensions }}"
placement-api: placement-api:
@ -222,7 +222,7 @@ nova_services:
- "{% if enable_iscsid | bool %}iscsi_info:/etc/iscsi{% endif %}" - "{% if enable_iscsid | bool %}iscsi_info:/etc/iscsi{% endif %}"
- "libvirtd:/var/lib/libvirt" - "libvirtd:/var/lib/libvirt"
- "{{ nova_instance_datadir_volume }}:/var/lib/nova/" - "{{ nova_instance_datadir_volume }}:/var/lib/nova/"
- "{% if enable_cinder_backend_nfs | bool %}/var/lib/nova/mnt:/var/lib/nova/mnt:shared{% endif %}" - "{% if enable_shared_var_lib_nova_mnt | bool %}/var/lib/nova/mnt:/var/lib/nova/mnt:shared{% endif %}"
- "{{ kolla_dev_repos_directory ~ '/nova/nova:/var/lib/kolla/venv/lib/python2.7/site-packages/nova' if nova_dev_mode | bool else '' }}" - "{{ kolla_dev_repos_directory ~ '/nova/nova:/var/lib/kolla/venv/lib/python2.7/site-packages/nova' if nova_dev_mode | bool else '' }}"
dimensions: "{{ nova_compute_dimensions }}" dimensions: "{{ nova_compute_dimensions }}"
nova-compute-ironic: nova-compute-ironic:
@ -403,3 +403,9 @@ nova_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}"
nova_dev_repos_pull: "{{ kolla_dev_repos_pull }}" nova_dev_repos_pull: "{{ kolla_dev_repos_pull }}"
nova_dev_mode: "{{ kolla_dev_mode }}" nova_dev_mode: "{{ kolla_dev_mode }}"
nova_source_version: "{{ kolla_source_version }}" nova_source_version: "{{ kolla_source_version }}"
###################################
# Enable Shared Bind Propogation
###################################
enable_shared_var_lib_nova_mnt: "{{ enable_cinder_backend_nfs | bool or enable_cinder_backend_quobyte | bool }}"

View File

@ -0,0 +1,29 @@
.. _cinder-guide-quobyte:
=============================
Quobyte Storage for OpenStack
=============================
Quobyte Cinder Driver
~~~~~~~~~~~~~~~~~~~~~
To use the ``Quobyte`` Cinder backend, enable and configure the ``Quobyte``
Cinder driver in ``/etc/kolla/globals.yml``.
.. code-block:: yaml
enable_cinder_backend_quobyte: "yes"
.. end
Also set values for ``quobyte_storage_host`` and ``quobyte_storage_volume`` in
``/etc/kolla/globals.yml`` to the hostname or IP address of the Quobyte
registry and the Quobyte volume respectively.
Since ``Quobyte`` is proprietary software that requires a license, the use of
this backend requires the ``Quobyte`` Client software package to be installed
in the ``cinder-volume`` and ``nova-compute`` containers. To do this follow the
steps outlined in the `kolla image building guide
<https://docs.openstack.org/kolla/latest/admin/image-building.html>`__,
particularly the ``Package Customisation`` and ``Custom Repos`` sections. The
repository information is available in the ``Quobyte`` customer portal.

View File

@ -12,6 +12,7 @@ supported by kolla.
external-ceph-guide external-ceph-guide
cinder-guide cinder-guide
cinder-guide-hnas cinder-guide-hnas
cinder-guide-quobyte
manila-guide manila-guide
manila-hnas-guide manila-hnas-guide
swift-guide swift-guide

View File

@ -189,6 +189,7 @@ kolla_internal_vip_address: "10.10.10.254"
#enable_cinder_backend_iscsi: "no" #enable_cinder_backend_iscsi: "no"
#enable_cinder_backend_lvm: "no" #enable_cinder_backend_lvm: "no"
#enable_cinder_backend_nfs: "no" #enable_cinder_backend_nfs: "no"
#enable_cinder_backend_quobyte: "no"
#enable_cloudkitty: "no" #enable_cloudkitty: "no"
#enable_collectd: "no" #enable_collectd: "no"
#enable_congress: "no" #enable_congress: "no"

View File

@ -0,0 +1,3 @@
---
features:
- Add support in Cinder and Nova for Quobyte volumes