openstack-manuals/doc/config-reference/shared-file-systems/drivers/generic-driver.xml

212 lines
6.5 KiB
XML

<section xml:id="generic-approach-for-share-provisioning" 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>Generic approach for share provisioning</title>
<para>
The Shared File Systems service can be configured to
use nova VMs and cinder volumes. There are two modules that handle
them in the Shared File Systems service:</para>
<itemizedlist>
<listitem><para>
<literal>service_instance</literal> module creates VMs in nova
with predefined image called service image. This module can be used
by any driver for provisioning of service VMs to be able to
separate share resources among tenants.
</para></listitem>
<listitem><para>
'generic' module operates
with cinder volumes and VMs created by
<literal>service_instance</literal> module,
then creates shared filesystems based on volumes attached to VMs.
</para></listitem>
</itemizedlist>
<simplesect>
<title>Network configurations</title>
<para>
Each driver can handle networking in its own way, see:
<link xlink:href="https://wiki.openstack.org/wiki/manila/Networking">https://wiki.openstack.org/wiki/manila/Networking</link>.
</para>
<variablelist>
<varlistentry>
<term>
One of two possible configurations can be chosen for share
provisioning
</term>
<listitem>
<para>
using <literal>service_instance</literal> module:
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- Service VM has one net interface from net that is connected
to public router.
</term>
<listitem>
<para>
For successful creation of share, user network should be
connected to public router too.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- Service VM has two net interfaces, first one connected to
service network,
</term>
<listitem>
<para>
second one connected directly to user's network.
</para>
</listitem>
</varlistentry>
</variablelist>
</simplesect>
<simplesect>
<title>Requirements for service image</title>
<itemizedlist>
<listitem>
<para>
Linux based distro
</para>
</listitem>
<listitem>
<para>
NFS server
</para>
</listitem>
<listitem>
<para>
Samba server &gt;=3.2.0, that can be configured by data stored
in registry
</para>
</listitem>
<listitem>
<para>
SSH server
</para>
</listitem>
<listitem>
<para>
Two net interfaces configured to DHCP (see network approaches)
</para>
</listitem>
<listitem>
<para>
'exportfs' and 'net conf' libraries used for share actions
</para>
</listitem>
<listitem>
<variablelist>
<varlistentry>
<term>
Following files will be used, so if their paths differ one
needs to create at
</term>
<listitem>
<para>
least symlinks for them:
</para>
</listitem>
</varlistentry>
</variablelist>
<itemizedlist>
<listitem>
<para>
/etc/exports (permanent file with NFS exports)
</para>
</listitem>
<listitem>
<para>
/var/lib/nfs/etab (temporary file with NFS exports used by
'exportfs')
</para>
</listitem>
<listitem>
<para>
/etc/fstab (permanent file with mounted filesystems)
</para>
</listitem>
<listitem>
<para>
/etc/mtab (temporary file with mounted filesystems used by
'mount')
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Supported shared filesystems</title>
<itemizedlist>
<listitem>
<para>
NFS (access by IP)
</para>
</listitem>
<listitem>
<para>
CIFS (access by IP)
</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Known restrictions</title>
<itemizedlist>
<listitem>
<para>
One of nova's configurations only allows 26 shares per server.
This limit comes from the maximum number of virtual PCI
interfaces that are used for block device attaching. There are
28 virtual PCI interfaces, in this configuration, two of them
are used for server needs and other 26 are used for attaching
block devices that are used for shares.
</para>
</listitem>
<listitem>
<para>
Juno version works only with neutron. Each share should be
created with neutron-net and neutron-subnet IDs provided via
share-network entity.
</para>
</listitem>
<listitem>
<para>
Juno version handles security group, flavor, image, keypair
for nova VM and also creates service networks, but does not
use availability zones for nova VMs and volume types for
cinder block devices.
</para>
</listitem>
<listitem>
<para>
Juno version does not use security services data provided with
share-network. These data will be just ignored.
</para>
</listitem>
<listitem>
<para>
Liberty version adds a share extend capability. Share access
will be briefly interrupted during an extend operation.
</para>
</listitem>
<listitem>
<para>
Liberty version adds a share shrink capability, but this
capability is not effective because generic driver shrinks
only filesystem size and doesn't shrink the size of cinder
volume.
</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Driver options</title>
<para>The following table contains the configuration options specific to this driver.</para>
<xi:include href="../../../common/tables/manila-generic.xml"/>
</simplesect>
</section>