diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 9c2262325e..5002160c57 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -842,6 +842,7 @@ enable_cinder_backend_pure_iscsi: "no" enable_cinder_backend_pure_fc: "no" enable_cinder_backend_pure_roce: "no" enable_cinder_backend_pure_nvme_tcp: "no" +enable_cinder_backend_vast: "no" enable_cinder_backend_lightbits: "no" enable_cloudkitty: "no" enable_collectd: "no" @@ -891,6 +892,7 @@ enable_manila_backend_cephfs_native: "no" enable_manila_backend_cephfs_nfs: "no" enable_manila_backend_glusterfs_nfs: "no" enable_manila_backend_flashblade: "no" +enable_manila_backend_vast: "no" enable_mariabackup: "no" enable_masakari: "no" enable_masakari_instancemonitor: "{{ enable_masakari | bool }}" diff --git a/ansible/roles/cinder/defaults/main.yml b/ansible/roles/cinder/defaults/main.yml index a1b0f321f4..1a6f5f0d84 100644 --- a/ansible/roles/cinder/defaults/main.yml +++ b/ansible/roles/cinder/defaults/main.yml @@ -261,6 +261,8 @@ cinder_backends: enabled: "{{ enable_cinder_backend_pure_nvme_tcp | bool }}" - name: "{{ cinder_backend_lightbits_name }}" enabled: "{{ enable_cinder_backend_lightbits | bool }}" + - name: "{{ cinder_backend_vast_name }}" + enabled: "{{ enable_cinder_backend_vast | bool }}" cinder_backend_ceph_name: "rbd-1" cinder_backend_lvm_name: "lvm-1" @@ -273,6 +275,7 @@ cinder_backend_pure_fc_name: "Pure-FlashArray-fc" cinder_backend_pure_roce_name: "Pure-FlashArray-roce" cinder_backend_pure_nvme_tcp_name: "Pure-FlashArray-nvme-tcp" cinder_backend_lightbits_name: "Lightbits-NVMe-TCP" +cinder_backend_vast_name: "vast-nvme-tcp" cinder_ceph_backends: - name: "{{ cinder_backend_ceph_name }}" diff --git a/ansible/roles/cinder/tasks/precheck.yml b/ansible/roles/cinder/tasks/precheck.yml index d722139de5..c1243f3b0c 100644 --- a/ansible/roles/cinder/tasks/precheck.yml +++ b/ansible/roles/cinder/tasks/precheck.yml @@ -44,6 +44,7 @@ - not enable_cinder_backend_pure_roce | bool - not enable_cinder_backend_pure_nvme_tcp | bool - not enable_cinder_backend_lightbits | bool + - not enable_cinder_backend_vast | bool - name: Checking LVM volume group exists for Cinder become: true diff --git a/ansible/roles/cinder/templates/cinder.conf.j2 b/ansible/roles/cinder/templates/cinder.conf.j2 index 9543086ce2..a996769b90 100644 --- a/ansible/roles/cinder/templates/cinder.conf.j2 +++ b/ansible/roles/cinder/templates/cinder.conf.j2 @@ -248,6 +248,18 @@ lightos_skip_ssl_verify = {{ lightbits_skip_ssl_verify }} lightos_jwt = {{ lightbits_JWT }} {% endif %} +{% if enable_cinder_backend_vast | bool %} +[{{ cinder_backend_vast_name }}] +volume_driver = cinder.volume.drivers.vastdata.driver.VASTVolumeDriver +volume_backend_name = {{ cinder_backend_vast_name }} +vast_vippool_name = {{ cinder_vast_vippool_name }} +vast_subsystem = {{ cinder_vast_subsystem }} +san_ip = {{ cinder_vast_ip }} +san_api_port = {{ cinder_vast_port }} +san_login = {{ cinder_vast_username }} +san_password = {{ cinder_vast_password }} +{% endif %} + [privsep_entrypoint] helper_command=sudo cinder-rootwrap /etc/cinder/rootwrap.conf privsep-helper --config-file /etc/cinder/cinder.conf diff --git a/ansible/roles/manila/defaults/main.yml b/ansible/roles/manila/defaults/main.yml index 198b3def59..a57e6ca64b 100644 --- a/ansible/roles/manila/defaults/main.yml +++ b/ansible/roles/manila/defaults/main.yml @@ -242,6 +242,11 @@ manila_backends: enabled: "{{ enable_manila_backend_flashblade | bool }}" protocols: - "NFS" + - name: "vast1" + driver: "vast" + enabled: "{{ enable_manila_backend_vast | bool }}" + protocols: + - "NFS" manila_ceph_backends: diff --git a/ansible/roles/manila/templates/manila-share.conf.j2 b/ansible/roles/manila/templates/manila-share.conf.j2 index ee1deb3413..52fc0785fc 100644 --- a/ansible/roles/manila/templates/manila-share.conf.j2 +++ b/ansible/roles/manila/templates/manila-share.conf.j2 @@ -172,5 +172,18 @@ glusterfs_servers = {% for ip in manila_glusterfs_servers %}{% if manila_gluster {% if manila_glusterfs_ssh_password is defined %}glusterfs_server_password = {{ manila_glusterfs_ssh_password }}{% endif %} {% endif %} +{% if enable_manila_backend_vast | bool %} +[vast1] +share_backend_name = VAST1 +share_driver = manila.share.drivers.vastdata.driver.VASTShareDriver +snapshot_support = true +driver_handles_share_servers = false +vast_mgmt_host = {{ manila_vast_mgmt_host }} +vast_mgmt_user = {{ manila_vast_mgmt_user }} +vast_mgmt_password = {{ manila_vast_mgmt_password }} +vast_vippool_name = {{ manila_vast_vippool_name }} +vast_root_export = {{ manila_vast_root_export | default("manila") }} +{% endif %} + [oslo_concurrency] lock_path = /var/lib/manila/tmp diff --git a/doc/source/reference/storage/cinder-guide.rst b/doc/source/reference/storage/cinder-guide.rst index cd674d8cc2..4e85fc9a56 100644 --- a/doc/source/reference/storage/cinder-guide.rst +++ b/doc/source/reference/storage/cinder-guide.rst @@ -299,6 +299,9 @@ that appears in cinder.conf: * - Lightbits Labs storage backend - cinder_backend_lightbits_name - Lightbits-NVMe-TCP + * - VAST storage backend + - cinder_backend_vast_name + - vast-nvme-tcp These are the names you use when `configuring `_ diff --git a/doc/source/reference/storage/index.rst b/doc/source/reference/storage/index.rst index 42b35f9e3a..e403f5806a 100644 --- a/doc/source/reference/storage/index.rst +++ b/doc/source/reference/storage/index.rst @@ -16,3 +16,4 @@ supported by kolla. manila-guide manila-hnas-guide manila-pure-guide + manila-vast-guide diff --git a/doc/source/reference/storage/manila-vast-guide.rst b/doc/source/reference/storage/manila-vast-guide.rst new file mode 100644 index 0000000000..06e5cba019 --- /dev/null +++ b/doc/source/reference/storage/manila-vast-guide.rst @@ -0,0 +1,37 @@ +.. _manila-vast-guide: + +========================================================== +VAST Manila Driver for OpenStack +========================================================== + +VAST Share Driver integrates OpenStack with VAST Data's Storage System. +Shares in the Shared File System service are mapped to directories +on VAST, and are accessed via NFS protocol using a Virtual IP Pool. + +For more details on how to use the VAST driver, refer to the +`VAST share driver docs `_. + +Configuration on Kolla deployment +--------------------------------- + +Enable Manila and the VAST driver in ``/etc/kolla/globals.yml``: + +.. code-block:: yaml + + enable_manila: "yes" + enable_manila_backend_vast: "yes" + +In ``/etc/kolla/globals.yml`` uncomment and set: + +.. code-block:: yaml + + manila_vast_mgmt_host: "" + manila_vast_mgmt_user: "" + vast_mgmt_password: "" + manila_vast_vippool_name: "" + +The driver assumes tenant networks that which to mount +their VAST backed NFS file shares are able to route to the +VAST virtual IP pool you have chosen. +By default, the driver will create shares under +``/manila`` base export on VAST. diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml index 8a5d645472..acc8d0e242 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -351,6 +351,7 @@ workaround_ansible_issue_8743: yes #enable_cinder_backend_pure_roce: "no" #enable_cinder_backend_pure_nvme_tcp: "no" #enable_cinder_backend_lightbits: "no" +#enable_cinder_backend_vast: "no" #enable_cloudkitty: "no" #enable_collectd: "no" #enable_cyborg: "no" @@ -396,6 +397,7 @@ workaround_ansible_issue_8743: yes #enable_manila_backend_cephfs_nfs: "no" #enable_manila_backend_glusterfs_nfs: "no" #enable_manila_backend_flashblade: "no" +#enable_manila_backend_vast: "no" #enable_mariabackup: "no" #enable_masakari: "no" #enable_mistral: "no" @@ -718,6 +720,13 @@ workaround_ansible_issue_8743: yes #manila_glusterfs_target: #manila_glusterfs_mount_point_base: +# Vast configuration for Manila +#manila_vast_mgmt_host: +#manila_vast_mgmt_user: +#manila_vast_mgmt_password: +#manila_vast_vippool_name: +#vast_root_export: + ################################### # VMware - OpenStack VMware support ################################### diff --git a/releasenotes/notes/add-vast-cinder-ff908a6ec0077508.yaml b/releasenotes/notes/add-vast-cinder-ff908a6ec0077508.yaml new file mode 100644 index 0000000000..2b7123ec4f --- /dev/null +++ b/releasenotes/notes/add-vast-cinder-ff908a6ec0077508.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Add support for VAST cinder driver. diff --git a/releasenotes/notes/add-vast-manila-614251e3a21e1d29.yaml b/releasenotes/notes/add-vast-manila-614251e3a21e1d29.yaml new file mode 100644 index 0000000000..cce20d8eb4 --- /dev/null +++ b/releasenotes/notes/add-vast-manila-614251e3a21e1d29.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Added support for the VAST storage backend in Manila.