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_cephfs_native: "no"
|
||||
enable_manila_backend_cephfs_nfs: "no"
|
||||
enable_manila_backend_glusterfs_nfs: "no"
|
||||
enable_mariabackup: "no"
|
||||
enable_masakari: "no"
|
||||
enable_mistral: "no"
|
||||
|
@ -167,6 +167,11 @@ manila_backends:
|
||||
protocols:
|
||||
- "NFS"
|
||||
- "CIFS"
|
||||
- name: "glusterfsnfs1"
|
||||
driver: "glusterfsnfs"
|
||||
enabled: "{{ enable_manila_backend_glusterfs_nfs | bool }}"
|
||||
protocols:
|
||||
- "NFS"
|
||||
|
||||
manila_enabled_backends: "{{ manila_backends|selectattr('enabled', 'equalto', true)|list }}"
|
||||
|
||||
@ -214,3 +219,11 @@ manila_ks_users:
|
||||
user: "{{ manila_keystone_user }}"
|
||||
password: "{{ manila_keystone_password }}"
|
||||
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_ip = {{ api_interface_address }}
|
||||
{% 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
|
||||
: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_cephfs_native: "no"
|
||||
#enable_manila_backend_cephfs_nfs: "no"
|
||||
#enable_manila_backend_glusterfs_nfs: "no"
|
||||
#enable_mariabackup: "no"
|
||||
#enable_masakari: "no"
|
||||
#enable_mistral: "no"
|
||||
@ -598,6 +599,37 @@
|
||||
#hnas_evs_ip:
|
||||
#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
|
||||
################################
|
||||
|
@ -0,0 +1,4 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Adds support for GlusterFS NFS Manila backend.
|
Loading…
Reference in New Issue
Block a user