GlusterFS driver¶
GlusterFS driver uses GlusterFS, an open source distributed file system, as the storage back end for serving file shares to the Shared File Systems clients.
Requirements¶
Install glusterfs-server package, version >= 3.5.x, on the storage back end.
Install NFS-Ganesha, version >=2.1, if using NFS-Ganesha as the NFS server for the GlusterFS back end.
Install glusterfs and glusterfs-fuse package, version >=3.5.x, on the Shared File Systems service host.
Establish network connection between the Shared File Systems service host and the storage back end.
Known restrictions¶
The driver does not support network segmented multi-tenancy model, but instead works over a flat network, where the tenants share a network.
If NFS Ganesha is the NFS server used by the GlusterFS back end, then the shares can be accessed by NFSv3 and v4 protocols. However, if Gluster NFS is used by the GlusterFS back end, then the shares can only be accessed by NFSv3 protocol.
All Shared File Systems service shares, which map to subdirectories within a GlusterFS volume, are currently created within a single GlusterFS volume of a GlusterFS storage pool.
The driver does not provide read-only access level for shares.
Driver options¶
The following table contains the configuration options specific to the share driver.
Configuration option = Default value |
Description |
---|---|
[DEFAULT] |
|
|
(String) Remote Ganesha server node’s IP address. |
|
(String) Remote Ganesha server node’s login password. This is not required if ‘glusterfs_path_to_private_key’ is configured. |
|
(String) Remote Ganesha server node’s username. |
|
(String) Base directory containing mount points for Gluster volumes. |
|
(String) Type of NFS server that mediate access to the Gluster volumes (Gluster or Ganesha). |
|
(String) Path of Manila host’s private SSH key file. |
|
(String) Remote GlusterFS server node’s login password. This is not required if ‘glusterfs_path_to_private_key’ is configured. |
|
(List) List of GlusterFS servers that can be used to create shares. Each GlusterFS server should be of the form [remoteuser@]<volserver>, and they are assumed to belong to distinct Gluster clusters. |
|
(String) Specifies GlusterFS share layout, that is, the method of associating backing GlusterFS resources to shares. |
|
(String) Specifies the GlusterFS volume to be mounted on the Manila host. It is of the form [remoteuser@]<volserver>:<volid>. |
|
(String) Regular expression template used to filter GlusterFS volumes for share creation. The regex template can optionally (ie. with support of the GlusterFS backend) contain the #{size} parameter which matches an integer (sequence of digits) in which case the value shall be interpreted as size of the volume in GB. Examples: “manila-share-volume-d+$”, “manila-share-volume-#{size}G-d+$”; with matching volume names, respectively: “manila-share-volume-12”, “manila-share-volume-3G-13”. In latter example, the number that matches “#{size}”, that is, 3, is an indication that the size of volume is 3G. |