Merge "Add support for GlusterFS NFS Manila backend"
This commit is contained in:
commit
651d5e2db2
@ -642,6 +642,7 @@ enable_manila_backend_generic: "no"
|
|||||||
enable_manila_backend_hnas: "no"
|
enable_manila_backend_hnas: "no"
|
||||||
enable_manila_backend_cephfs_native: "no"
|
enable_manila_backend_cephfs_native: "no"
|
||||||
enable_manila_backend_cephfs_nfs: "no"
|
enable_manila_backend_cephfs_nfs: "no"
|
||||||
|
enable_manila_backend_glusterfs_nfs: "no"
|
||||||
enable_mariabackup: "no"
|
enable_mariabackup: "no"
|
||||||
enable_masakari: "no"
|
enable_masakari: "no"
|
||||||
enable_mistral: "no"
|
enable_mistral: "no"
|
||||||
|
@ -167,6 +167,11 @@ manila_backends:
|
|||||||
protocols:
|
protocols:
|
||||||
- "NFS"
|
- "NFS"
|
||||||
- "CIFS"
|
- "CIFS"
|
||||||
|
- name: "glusterfsnfs1"
|
||||||
|
driver: "glusterfsnfs"
|
||||||
|
enabled: "{{ enable_manila_backend_glusterfs_nfs | bool }}"
|
||||||
|
protocols:
|
||||||
|
- "NFS"
|
||||||
|
|
||||||
manila_enabled_backends: "{{ manila_backends|selectattr('enabled', 'equalto', true)|list }}"
|
manila_enabled_backends: "{{ manila_backends|selectattr('enabled', 'equalto', true)|list }}"
|
||||||
|
|
||||||
@ -214,3 +219,11 @@ manila_ks_users:
|
|||||||
user: "{{ manila_keystone_user }}"
|
user: "{{ manila_keystone_user }}"
|
||||||
password: "{{ manila_keystone_password }}"
|
password: "{{ manila_keystone_password }}"
|
||||||
role: "admin"
|
role: "admin"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Glusterfs
|
||||||
|
####################
|
||||||
|
manila_glusterfs_share_layout: "layout_volume.GlusterfsVolumeMappedLayout"
|
||||||
|
manila_glusterfs_nfs_server_type: "Gluster"
|
||||||
|
manila_glusterfs_volume_pattern: "manila-share-volume-\\d+$"
|
||||||
|
manila_glusterfs_mount_point_base: "$state_path/mnt"
|
||||||
|
@ -117,3 +117,23 @@ cephfs_enable_snapshots = False
|
|||||||
cephfs_ganesha_server_is_remote= False
|
cephfs_ganesha_server_is_remote= False
|
||||||
cephfs_ganesha_server_ip = {{ api_interface_address }}
|
cephfs_ganesha_server_ip = {{ api_interface_address }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if enable_manila_backend_glusterfs_nfs | bool %}
|
||||||
|
[glusterfsnfs1]
|
||||||
|
driver_handles_share_servers = False
|
||||||
|
share_backend_name = GLUSTERFSNFS1
|
||||||
|
share_driver = manila.share.drivers.glusterfs.GlusterfsShareDriver
|
||||||
|
glusterfs_share_layout = {{ manila_glusterfs_share_layout }}
|
||||||
|
glusterfs_nfs_server_type = {{ manila_glusterfs_nfs_server_type }}
|
||||||
|
{% if manila_glusterfs_servers is defined %}
|
||||||
|
glusterfs_servers = {% for ip in manila_glusterfs_servers %}{% if manila_glusterfs_ssh_user is defined %}{{ manila_glusterfs_ssh_user }}@{% endif %}{{ ip }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
{% if manila_glusterfs_volume_pattern is defined %}glusterfs_volume_pattern = {{ manila_glusterfs_volume_pattern }}{% endif %}
|
||||||
|
|
||||||
|
{% if manila_glusterfs_target is defined %}glusterfs_target = {{ manila_glusterfs_target }}{% endif %}
|
||||||
|
|
||||||
|
{% if manila_glusterfs_mount_point_base is defined %}glusterfs_mount_point_base = {{ manila_glusterfs_mount_point_base }}{% endif %}
|
||||||
|
|
||||||
|
{% if manila_glusterfs_ssh_password is defined %}glusterfs_server_password = {{ manila_glusterfs_ssh_password }}{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
@ -361,3 +361,66 @@ migration process.
|
|||||||
|
|
||||||
For more information about how to manage shares, see the
|
For more information about how to manage shares, see the
|
||||||
:manila-doc:`Manage shares <user/create-and-manage-shares.html>`.
|
:manila-doc:`Manage shares <user/create-and-manage-shares.html>`.
|
||||||
|
|
||||||
|
GlusterFS
|
||||||
|
~~~~~~~~~
|
||||||
|
|
||||||
|
We have support for enabling Manila to provide users access to volumes from an
|
||||||
|
external GlusterFS. For more details on the GlusterfsShareDriver, please
|
||||||
|
see:
|
||||||
|
https://docs.openstack.org/manila/latest/admin/glusterfs_driver.html
|
||||||
|
|
||||||
|
Kolla-ansible supports using the GlusterFS shares with NFS. To enable this
|
||||||
|
backend, add the following to ``/etc/kolla/globals.yml``:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
enable_manila_backend_glusterfs_nfs: "yes"
|
||||||
|
|
||||||
|
Layouts
|
||||||
|
-------
|
||||||
|
|
||||||
|
A layout is a strategy of allocating storage from GlusterFS backends for
|
||||||
|
shares. Currently there are two layouts implemented:
|
||||||
|
|
||||||
|
volume mapped layout
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
You will also need to add the following configuration options to ensure the
|
||||||
|
driver can connect to GlusterFS and exposes the correct subset of existing
|
||||||
|
volumes in the system by adding the following in ``/etc/kolla/globals.yml``:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
manila_glusterfs_servers:
|
||||||
|
- glusterfs1.example.com
|
||||||
|
- glusterfs2.example.com
|
||||||
|
manila_glusterfs_ssh_user: "root"
|
||||||
|
manila_glusterfs_ssh_password: "<glusterfs ssh password>"
|
||||||
|
manila_glusterfs_volume_pattern: "manila-share-volume-\\d+$"
|
||||||
|
|
||||||
|
The ``manila_glusterfs_ssh_password`` and ``manila_glusterfs_ssh_user``
|
||||||
|
configuration options are only required when the GlusterFS server runs
|
||||||
|
remotely rather than on the system running the Manila share service.
|
||||||
|
|
||||||
|
directory mapped layout
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
You will also need to add the following configuration options to ensure the
|
||||||
|
driver can connect to GlusterFS and exposes the correct subset of existing
|
||||||
|
volumes in the system by adding the following in ``/etc/kolla/globals.yml``:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
manila_glusterfs_share_layout: "layout_directory.GlusterfsDirectoryMappedLayout"
|
||||||
|
manila_glusterfs_target: "root@10.0.0.1:/volume"
|
||||||
|
manila_glusterfs_ssh_password: "<glusterfs ssh password>"
|
||||||
|
manila_glusterfs_mount_point_base: "$state_path/mnt"
|
||||||
|
|
||||||
|
- ``manila_glusterfs_target``: If it’s of the format
|
||||||
|
<username>@<glustervolserver>:/<glustervolid>, then we ssh to
|
||||||
|
<username>@<glustervolserver> to execute gluster (<username> is supposed to
|
||||||
|
have administrative privileges on <glustervolserver>).
|
||||||
|
- ``manila_glusterfs_ssh_password``: configuration options are only required
|
||||||
|
when the GlusterFS server runs remotely rather than on the system running
|
||||||
|
the Manila share service.
|
||||||
|
@ -338,6 +338,7 @@
|
|||||||
#enable_manila_backend_hnas: "no"
|
#enable_manila_backend_hnas: "no"
|
||||||
#enable_manila_backend_cephfs_native: "no"
|
#enable_manila_backend_cephfs_native: "no"
|
||||||
#enable_manila_backend_cephfs_nfs: "no"
|
#enable_manila_backend_cephfs_nfs: "no"
|
||||||
|
#enable_manila_backend_glusterfs_nfs: "no"
|
||||||
#enable_mariabackup: "no"
|
#enable_mariabackup: "no"
|
||||||
#enable_masakari: "no"
|
#enable_masakari: "no"
|
||||||
#enable_mistral: "no"
|
#enable_mistral: "no"
|
||||||
@ -598,6 +599,37 @@
|
|||||||
#hnas_evs_ip:
|
#hnas_evs_ip:
|
||||||
#hnas_file_system_name:
|
#hnas_file_system_name:
|
||||||
|
|
||||||
|
# Gluster backend configuration
|
||||||
|
# The option of glusterfs share layout can be directory or volume
|
||||||
|
# The default option of share layout is 'volume'
|
||||||
|
#manila_glusterfs_share_layout:
|
||||||
|
# The default option of nfs server type is 'Gluster'
|
||||||
|
#manila_glusterfs_nfs_server_type:
|
||||||
|
|
||||||
|
# Volume layout Options (required)
|
||||||
|
# If the glusterfs server requires remote ssh, then you need to fill
|
||||||
|
# in 'manila_glusterfs_servers', ssh user 'manila_glusterfs_ssh_user', and ssh password
|
||||||
|
# 'manila_glusterfs_ssh_password'.
|
||||||
|
# 'manila_glusterfs_servers' value List of GlusterFS servers which provide volumes,
|
||||||
|
# the format is for example:
|
||||||
|
# - 10.0.1.1
|
||||||
|
# - 10.0.1.2
|
||||||
|
#manila_glusterfs_servers:
|
||||||
|
#manila_glusterfs_ssh_user:
|
||||||
|
#manila_glusterfs_ssh_password:
|
||||||
|
# Used to filter GlusterFS volumes for share creation.
|
||||||
|
# Examples: manila-share-volume-\d+$, manila-share-volume-#{size}G-\d+$;
|
||||||
|
#manila_glusterfs_volume_pattern:
|
||||||
|
|
||||||
|
# Directory layout Options
|
||||||
|
# If the glusterfs server is on the local node of the manila share,
|
||||||
|
# it’s of the format <glustervolserver>:/<glustervolid>
|
||||||
|
# If the glusterfs server is on a remote node,
|
||||||
|
# it’s of the format <username>@<glustervolserver>:/<glustervolid> ,
|
||||||
|
# and define 'manila_glusterfs_ssh_password'
|
||||||
|
#manila_glusterfs_target:
|
||||||
|
#manila_glusterfs_mount_point_base:
|
||||||
|
|
||||||
################################
|
################################
|
||||||
# Swift - Object Storage Options
|
# Swift - Object Storage Options
|
||||||
################################
|
################################
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Adds support for GlusterFS NFS Manila backend.
|
Loading…
Reference in New Issue
Block a user