
Shared File Systems service (manila) should be added to the Config Ref similar to Block Storage (cinder). The content would be similar to cinder in that it would have sections to describe Intro, Drivers, Log Files and Options. Change-Id: I89fc64f8cd4fe880b36017139e7989f3a4100cc6 Implements: blueprint manila-config-ref
271 lines
8.9 KiB
XML
271 lines
8.9 KiB
XML
<section xml:id="glusterfs-native-driver" xmlns="http://docbook.org/ns/docbook"
|
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
|
<title>GlusterFS Native driver</title>
|
|
<para>
|
|
GlusterFS Native driver uses GlusterFS, an open source distributed
|
|
file system, as the storage back end for serving file shares to
|
|
Shared File Systems service clients.
|
|
</para>
|
|
<para>
|
|
A Shared File Systems service share is a GlusterFS volume.
|
|
This driver uses flat-network
|
|
(share-server-less) model. Instances directly talk with the
|
|
GlusterFS back end storage pool. The instances use 'glusterfs'
|
|
protocol to mount the GlusterFS shares. Access to each share is
|
|
allowed via TLS Certificates. Only the instance which has the TLS
|
|
trust established with the GlusterFS back end can mount and hence use
|
|
the share. Currently only 'rw' access is supported.
|
|
</para>
|
|
<simplesect>
|
|
<title>Network approach</title>
|
|
<para>
|
|
L3 connectivity between the storage back end and the host running
|
|
the Shared File Systems share service should exist.
|
|
</para>
|
|
</simplesect>
|
|
<simplesect>
|
|
<title>Supported shared filesystems</title>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
GlusterFS (access by TLS Certificates (<literal>cert</literal>
|
|
access type))
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</simplesect>
|
|
<simplesect>
|
|
<title>Multi-tenancy model</title>
|
|
<para>
|
|
The driver does not support network segmented multi-tenancy model.
|
|
Instead multi-tenancy is supported using tenant specific TLS
|
|
certificates.
|
|
</para>
|
|
</simplesect>
|
|
<simplesect>
|
|
<title>Supported operations</title>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Create GlusterFS share.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Delete GlusterFS share.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Allow GlusterFS share access (rw).
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Deny GlusterFS share access.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Create GlusterFS snapshot.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Delete GlusterFS snapshot.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</simplesect>
|
|
<simplesect>
|
|
<title>Requirements</title>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Install glusterfs-server package, version >= 3.6.x, on the
|
|
storage back end.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Install glusterfs and glusterfs-fuse package, version
|
|
>=3.6.x, on the Shared File Systems service host.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Establish network connection between the Shared File Systems
|
|
service host and the storage back end.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</simplesect>
|
|
<simplesect>
|
|
<title>Shared File Systems service driver configuration setting</title>
|
|
<para>
|
|
The following parameters in the Shared File Systems service's
|
|
configuration file need to be
|
|
set:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>
|
|
share_driver =
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
manila.share.drivers.glusterfs_native.GlusterfsNativeShareDriver
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</listitem>
|
|
<listitem>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>
|
|
glusterfs_servers = List of GlusterFS servers which
|
|
provide volumes
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
that can be used to create shares. The servers are
|
|
expected to be of distinct Gluster clusters (ie. should
|
|
not be gluster peers). Each server should be of the form
|
|
<literal>[<remoteuser>@]<glustervolserver></literal>.
|
|
</para>
|
|
<para>
|
|
The optional <literal><remoteuser>@</literal> part
|
|
of the server URI indicates SSH access for cluster
|
|
management (see related optional parameters below). If
|
|
it is not given, direct command line management is
|
|
performed (the Shared File Systems service host is
|
|
assumed to be part of the
|
|
GlusterFS cluster the server belongs to).
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</listitem>
|
|
<listitem>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>
|
|
glusterfs_volume_pattern = Regular expression template
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
used to filter GlusterFS volumes for share creation. The
|
|
regex template can contain the #{size} parameter which
|
|
matches a number (sequence of digits) and the value
|
|
shall be interpreted as size of the volume in GB.
|
|
Examples: <literal>manila-share-volume-\d+$</literal>,
|
|
<literal>manila-share-volume-#{size}G-\d+$</literal>;
|
|
with matching volume names, respectively:
|
|
<emphasis>manila-share-volume-12</emphasis>,
|
|
<emphasis>manila-share-volume-3G-13</emphasis>". In
|
|
latter example, the number that matches
|
|
<literal>#{size}</literal>, that is, 3, is an indication
|
|
that the size of volume is 3G.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>
|
|
The following configuration parameters are optional:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>
|
|
glusterfs_mount_point_base =
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
<base path of GlusterFS
|
|
volume mounted on the Shared File Systems service host>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
glusterfs_path_to_private_key = <path to Shared File Systems
|
|
service host's private key file>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
glusterfs_server_password = <password of remote GlusterFS
|
|
server machine>
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</simplesect>
|
|
<simplesect>
|
|
<title>Known restrictions</title>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
GlusterFS volumes are not created on demand. A pre-existing
|
|
set of GlusterFS volumes should be supplied by the GlusterFS
|
|
cluster(s), conforming to the naming convention encoded by
|
|
<literal>glusterfs_volume_pattern</literal>. However, the
|
|
GlusterFS endpoint is allowed to extend this set any time (so
|
|
the Shared File Systems service and GlusterFS endpoints are
|
|
expected to communicate
|
|
volume supply/demand out-of-band).
|
|
<literal>glusterfs_volume_pattern</literal> can include a size
|
|
hint (with <literal>#{size}</literal> syntax), which, if
|
|
present, requires the GlusterFS end to indicate the size of
|
|
the shares in GB in the name. (On share creation, the
|
|
Shared File Systems service picks
|
|
volumes <emphasis>at least</emphasis> as big as the requested
|
|
one.)
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Certificate setup (also known as trust setup) between instance and
|
|
storage back end is out of band of the Shared File Systems service.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Support for 'create_share_from_snapshot' is planned for
|
|
Liberty release.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
For the Shared File Systems service to use GlusterFS volumes,
|
|
the name of the trashcan
|
|
directory in GlusterFS volumes must not be changed from the
|
|
default.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</simplesect>
|
|
<!--
|
|
<simplesect>
|
|
<title>Driver options</title>
|
|
<para>The following table contains the configation options specific to this driver.</para>
|
|
<xi:include href="../../../common/tables/manila-glusterfs.xml"/>
|
|
</simplesect>
|
|
-->
|
|
<simplesect>
|
|
<title>Driver configuration options</title>
|
|
<para>
|
|
Configuration options specific to this driver are documented here:
|
|
<xref linkend="config_table_manila_glusterfs"/>.
|
|
</para>
|
|
</simplesect>
|
|
</section>
|