Merge "Cloud Admin Guide: Shared File Systems updated information"

This commit is contained in:
Jenkins 2015-10-28 22:14:04 +00:00 committed by Gerrit Code Review
commit 41a93dfaec
17 changed files with 1267 additions and 1075 deletions

View File

@ -4,31 +4,32 @@
Consistency groups Consistency groups
================== ==================
Consistency groups enable you to create snapshots at the exact same point in Consistency groups enable you to create snapshots from multiple file system
time from multiple file system shares. For example, a database might place its shares at the same point in time. For example, a database might place its
tables, logs, and configuration on separate shares. To restore this database tables, logs, and configuration on separate shares. To restore this database
from a previous point in time, it makes sense to restore the logs, tables, and from a previous point in time, it makes sense to restore the logs, tables, and
configuration together from the exact same point in time. configuration together from the exact same point in time.
Shared File system allows you to create a snapshot of the consistency group and The Shared File System service allows you to create a snapshot of the
restore all shares that were associated with the consistency group by creating consistency group and restore all shares that were associated with a
a consistency group from a snapshot. consistency group.
.. note:: .. note::
The **consistency groups and snapshots** are realized as an The **consistency groups and snapshots** are realized as an
**experimental** Shared File Systems API. Contributors can change or remove **experimental** Shared File Systems API in Liberty release. Contributors
the experimental part of the Shared File Systems API without maintaining can change or remove the experimental part of the Shared File Systems API
backward compatibility. The experimental API has in further releases without maintaining backward compatibility. The
``"X-OpenStack-Manila-API-Experimental: true"`` header in their HTTP experimental API has ``"X-OpenStack-Manila-API-Experimental: true"`` header
requests. in their HTTP requests.
Consistency groups Consistency groups
------------------ ------------------
.. note:: .. note::
Before using consistency groups, make sure the Shared File System driver that Before using consistency groups, make sure the Shared File System driver
you are running has consistency group support. You can check it in the manila that you are running has consistency group support. You can check it in the
scheduler reports. The ``consistency_group_support`` can have such values: ``manila-scheduler`` service reports. The ``consistency_group_support`` can
have such values:
* ``pool`` or ``host``. Consistency groups are supported. Specifies the * ``pool`` or ``host``. Consistency groups are supported. Specifies the
level of consistency groups support. level of consistency groups support.

View File

@ -4,39 +4,231 @@
Share basic operations Share basic operations
====================== ======================
Create share General concepts
------------ ----------------
General concepts **to create file share**, you need to: As general concepts, to create a file share and access it you need to:
#. To create a share, use :command:`manila create` command and #. To create a share, use :command:`manila create` command and
specify the required arguments: the size of the share and the Shared File specify the required arguments: the size of the share and the shared file
Systems protocol (``NFS``, ``CIFS``, ``GlusterFS``, or ``HDFS`` are system protocol. ``NFS``, ``CIFS``, ``GlusterFS``, or ``HDFS`` share file
supported). system protocols are supported.
#. You can also optionally specify the share network and the share type. #. You can also optionally specify the share network and the share type.
#. Use the :command:`manila create` command to create a share. This command #. After the share becomes available, use the :command:`manila show` command
does the following things: to get the share export location.
* If there is no available share servers, the Shared File Systems service #. After getting the share export location, you can create an
service will launch new instance from service image, attach it to service :ref:`access rule <access_to_share>` for the share, mount it and work with
network and register it as a new share server. files on the remote file system.
* Creates new volume of required size and attaches it to the service There are big number of the share drivers created by different vendors in the
instance. Shared File Systems service. As a Python class, each share driver can be set
for the :ref:`back end <shared_file_systems_multi_backend>` and run in the back
end to manage the share operations.
* The NFS service on service instance is configured to use attached volume Initially there are two driver modes for the back ends:
and expose NFS share.
#. After share becomes available, use the :command:`manila show` command * no share servers mode
to get the share endpoint. * share servers mode
In the example to create a share, the default share type and the Each share driver supports one or two of possible back end modes that can be
existing already share network are used. configured in :file:`manila.conf` file. The configuration option
``driver_handles_share_servers`` in :file:`manila.conf` file sets the share
servers mode or no share servers mode, and defines the driver mode for share
storage life cycle management:
+------------------+-------------------------------------+--------------------+
| Mode | Config option | Description |
+==================+=====================================+====================+
| no share servers | driver_handles_share_servers = False| An administrator |
| | | rather than a share|
| | | driver manages the |
| | | bare metal storage |
| | | with some net |
| | | interface instead |
| | | of the presence of |
| | | the share servers. |
+------------------+-------------------------------------+--------------------+
| share servers | driver_handles_share_servers = True | The share driver |
| | | creates the share |
| | | server and manages,|
| | | or handles, the |
| | | share server life |
| | | cycle. |
+------------------+-------------------------------------+--------------------+
It is :ref:`the share types <shared_file_systems_share_types>` which have the
extra specifications that help scheduler to filter back ends and choose the
appropriate back end for the user that requested to create a share. The
required extra boolean specification for each share type is
``driver_handles_share_servers``. As an administrator, you can create the share
types with the specifications you need. For details of managing the share types
and configuration the back ends, see :ref:`shared_file_systems_share_types` and
:ref:`shared_file_systems_multi_backend` documentation.
You can create a share in two described above modes:
* in a no share servers mode without specifying the share network and
specifying the share type with ``driver_handles_share_servers = False``
parameter. See subsection :ref:`create_share_in_no_share_server_mode`.
* in a share servers mode with specifying the share network and the share
type with ``driver_handles_share_servers = True`` parameter. See subsection
:ref:`create_share_in_share_server_mode`.
.. _create_share_in_no_share_server_mode:
Create a share in no share servers mode
---------------------------------------
To create a file share in no share servers mode, you need to:
#. To create a share, use :command:`manila create` command and
specify the required arguments: the size of the share and the shared file
system protocol. ``NFS``, ``CIFS``, ``GlusterFS``, or ``HDFS`` share file
system protocols are supported.
#. You should specify the :ref:`share type <shared_file_systems_share_types>`
with ``driver_handles_share_servers = False`` extra specification.
#. You must not specify the ``share network`` because no share servers are
created. In this mode the Shared File Systems service expects that
administrator has some bare metal storage with some net interface.
#. The :command:`manila create` command creates a share. This command does the
following things:
* The :ref:`manila-scheduler <shared_file_systems_scheduling>` service will
find the back end with ``driver_handles_share_servers = False`` mode due
to filtering the extra specifications of the share type.
* The shared is created using the storage that is specified in the found
back end.
#. After the share becomes available, use the :command:`manila show` command
to get the share export location.
In the example to create a share, the created already share type named
``my_type`` with ``driver_handles_share_servers = False`` extra specification
is used.
Check share types that exist, run:
.. code:: console
$ manila type-list
+------+--------+-----------+------------------------------------+----------------------+
| ID | Name | is_default| required_extra_specs | optional_extra_specs |
+------+--------+-----------+------------------------------------+----------------------+
| le...| my_type| - | driver_handles_share_servers:False | snapshot_support:True|
+------+--------+-----------+------------------------------------+----------------------+
Create a private share with ``my_type`` share type, NFS shared file system
protocol, and size 1 GB:
.. code:: console
$ manila create nfs 1 --name Share2 --description "My share" --share-type my_type
+-----------------------------+--------------------------------------+
| Property | Value |
+-----------------------------+--------------------------------------+
| status | None |
| share_type_name | my_type |
| description | My share |
| availability_zone | None |
| share_network_id | None |
| export_locations | [] |
| share_server_id | None |
| host | None |
| snapshot_id | None |
| is_public | False |
| task_state | None |
| snapshot_support | True |
| id | bb9f0f28-4ca7-4fcb-a37c-9e3624584bec |
| size | 1 |
| name | Share2 |
| share_type | 1eafb65f-1987-44a9-9a98-20af91c95662 |
| created_at | 2015-10-01T09:44:59.669010 |
| export_location | None |
| share_proto | NFS |
| consistency_group_id | None |
| source_cgsnapshot_member_id | None |
| project_id | 20787a7ba11946adad976463b57d8a2f |
| metadata | {} |
+-----------------------------+--------------------------------------+
New share ``Share2`` should have a status ``available``:
.. code:: console
$ manila show Share2
+-----------------------------+---------------------------------------------------------------+
| Property | Value |
+-----------------------------+---------------------------------------------------------------+
| status | available |
| share_type_name | my_type |
| description | My share |
| availability_zone | nova |
| share_network_id | None |
| export_locations | 10.254.0.7:/shares/share-d1a66eed-a724-4cbb-a886-2f97926bd3b3 |
| share_server_id | None |
| host | manila@cannes#CANNES |
| snapshot_id | None |
| is_public | False |
| task_state | None |
| snapshot_support | True |
| id | bb9f0f28-4ca7-4fcb-a37c-9e3624584bec |
| size | 1 |
| name | Share2 |
| share_type | 1eafb65f-1987-44a9-9a98-20af91c95662 |
| created_at | 2015-10-01T09:44:59.000000 |
| share_proto | NFS |
| consistency_group_id | None |
| source_cgsnapshot_member_id | None |
| project_id | 20787a7ba11946adad976463b57d8a2f |
| metadata | {} |
+-----------------------------+---------------------------------------------------------------+
.. _create_share_in_share_server_mode:
Create a share in share servers mode
------------------------------------
To create a file share in share servers mode, you need to:
#. To create a share, use :command:`manila create` command and
specify the required arguments: the size of the share and the shared file
system protocol. ``NFS``, ``CIFS``, ``GlusterFS``, or ``HDFS`` share file
system protocols are supported.
#. You should specify the :ref:`share type <shared_file_systems_share_types>`
with ``driver_handles_share_servers = True`` extra specification.
#. You should specify the
:ref:`share network <shared_file_systems_share_networks>`.
#. The :command:`manila create` command creates a share. This command does the
following things:
* The :ref:`manila-scheduler <shared_file_systems_scheduling>` service will
find the back end with ``driver_handles_share_servers = True`` mode due to
filtering the extra specifications of the share type.
* The share driver will create a share server with the share network. For
details of creating the resources, see the `documentation <http://docs.
openstack.org/developer/manila/devref/index.html#share-backends>`_ of the
specific share driver.
#. After the share becomes available, use the :command:`manila show` command
to get the share export location.
In the example to create a share, the default share type and the already
existing share network are used.
.. note:: .. note::
There is no default share type just after you starting manila as the There is no default share type just after you started manila as the
administrator. See :ref:`shared_file_systems_share_types` to administrator. See :ref:`shared_file_systems_share_types` to
create the default share type. To create a share network, use create the default share type. To create a share network, use
:ref:`shared_file_systems_share_networks`. :ref:`shared_file_systems_share_networks`.
@ -312,8 +504,12 @@ You also can force-delete a share.
The shares cannot be deleted in transitional states. The transitional The shares cannot be deleted in transitional states. The transitional
states are ``creating``, ``deleting``, ``managing``, ``unmanaging``, states are ``creating``, ``deleting``, ``managing``, ``unmanaging``,
``extending``, and ``shrinking`` statuses for the shares. Force-deletion ``extending``, and ``shrinking`` statuses for the shares. Force-deletion
deletes an object in any state. Use the :file:`/etc/manila/policy.json` file to deletes an object in any state. Use the :file:`policy.json` file to grant
grant permissions for this action to other roles. permissions for this action to other roles.
.. tip::
The configuration file ``policy.json`` may be used from different places.
The path ``/etc/manila/policy.json`` is one of expected paths by default.
Use **manila delete <share_name_or_ID>** command to delete a specified share: Use **manila delete <share_name_or_ID>** command to delete a specified share:
@ -321,9 +517,10 @@ Use **manila delete <share_name_or_ID>** command to delete a specified share:
$ manila delete Share2 $ manila delete Share2
Pay attention that if you specified the consistency group while creating a .. note::
share (see :ref:`shared_file_systems_cgroups`), you If you specified :ref:`the consistency group <shared_file_systems_cgroups>`
should provide the ``--consistency-group`` parameter to delete the share: while creating a share, you should provide the ``--consistency-group``
parameter to delete the share:
.. code:: console .. code:: console
@ -368,11 +565,13 @@ run:
| aca..| Share1| 1 | NFS | avai..| c008658...| 10.254.0.3:/shares/share-...| manila@gen..| | aca..| Share1| 1 | NFS | avai..| c008658...| 10.254.0.3:/shares/share-...| manila@gen..|
+------+-------+-----+------------+-------+-----------+-----------------------------+-------------+ +------+-------+-----+------------+-------+-----------+-----------------------------+-------------+
.. _access_to_share:
Manage access to share Manage access to share
---------------------- ----------------------
The Shared File Systems Storage Service allows to grant or deny access to The Shared File Systems service allows to grant or deny access to a specified
a specified share, and list the permissions for a specified share. share, and list the permissions for a specified share.
To grant or deny access to a share, specify one of these supported share To grant or deny access to a share, specify one of these supported share
access levels: access levels:
@ -475,12 +674,11 @@ Allow access to the share with ``user`` access type:
.. note:: .. note::
Different share features are supported by different share drivers. Different share features are supported by different share drivers.
For the example hereinabove was used the Generic (Cinder as back-end) For the example, the Generic driver with the Block Storage service as a
driver that doesn't support ``user`` and ``cert`` authentications methods. back-end doesn't support ``user`` and ``cert`` authentications methods. For
For details of supporting of features by different drivers, see `Manila details of supporting of features by different drivers, see `Manila share
share features support mapping features support mapping <http://docs.openstack.org/developer/manila/devref
<http://docs.openstack.org/developer/manila/devref/share_back_ends_feature /share_back_ends_feature_support_mapping.html>`_.
_support_mapping.html>`_.
To verify that the access rules (ACL) were configured correctly for a share, To verify that the access rules (ACL) were configured correctly for a share,
you list permissions for a share: you list permissions for a share:

View File

@ -10,8 +10,8 @@ Share
In the Shared File Systems service ``share`` is the fundamental resource unit In the Shared File Systems service ``share`` is the fundamental resource unit
allocated by the Shared File System service. It represents an allocation of a allocated by the Shared File System service. It represents an allocation of a
persistent, readable, and writable filesystem that can be accessed by persistent, readable, and writable filesystem that can be accessed by
OpenStack compute instances, or clients outside of OpenStack (depending on OpenStack compute instances, or clients outside of OpenStack, which depends on
deployment configuration). deployment configuration.
.. note:: .. note::
A ``share`` is an abstract storage object that may or may not directly A ``share`` is an abstract storage object that may or may not directly
@ -51,7 +51,7 @@ Share Access Rules
``Share access rules`` define which users can access a particular ``share``. ``Share access rules`` define which users can access a particular ``share``.
For example, access rules can be declared for NFS shares by listing the valid For example, access rules can be declared for NFS shares by listing the valid
IP networks (using CIDR notation) which should have access to the ``share``. IP networks, in CIDR notation, which should have access to the ``share``.
Security Services Security Services
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
@ -68,13 +68,19 @@ Share Networks
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
A ``share network`` is an object that defines a relationship between a A ``share network`` is an object that defines a relationship between a
tenant's network/subnet (as defined in an OpenStack network service (Neutron tenant's network and subnet, as defined in an OpenStack Networking service or
or Nova-network)) and the ``shares`` created by the same tenant; that is, a Compute service, and the ``shares`` created by the same tenant; that is, a
tenant may find it desirable to provision ``shares`` such that only instances tenant may find it desirable to provision ``shares`` such that only instances
connected to a particular OpenStack-defined network have access to the connected to a particular OpenStack-defined network have access to the
``share``. Also, ``security services`` can be attached to ``share networks``, ``share``. Also, ``security services`` can be attached to ``share networks``,
because most of auth protocols require some interaction with network services. because most of auth protocols require some interaction with network services.
The Shared File Systems service has the ability to work outside of OpenStack.
That is due to the ``StandaloneNetworkPlugin`` that can be used with any
network platform and does not require some specific network services in
OpenStack like Compute or Networking service. You can set the network
parameters in its configuration file.
Share Servers Share Servers
~~~~~~~~~~~~~ ~~~~~~~~~~~~~

View File

@ -6,30 +6,27 @@ Manage and unmanage share
To ``manage`` a share means that an administrator rather than a share driver To ``manage`` a share means that an administrator rather than a share driver
manages the storage life cycle. This approach is appropriate when an manages the storage life cycle. This approach is appropriate when an
administrator already has the custom non-manila share with its size, Shared administrator already has the custom non-manila share with its size, shared
File System protocol, export path and so on, and administrator wants to file system protocol, export path and so on, and administrator wants to
register it in the Shared File System Storage service. register it in the Shared File System service.
To ``unmanage`` a share means to unregister a specified share from the Shared To ``unmanage`` a share means to unregister a specified share from the Shared
File System Storage service. An administrator can manage the custom share back. File Systems service. An administrator can manage the custom share back.
Since with the generic driver, shares are hosted on Compute VMs, in the
examples the compute VM is used to create a new host and to create a share
hosted on it.
.. _unmanage_share: .. _unmanage_share:
Unmanage share Unmanage share
-------------- --------------
You can ``unmanage`` share, to take manual control on share life cycle. The You can ``unmanage`` a share, to unregister it from the Shared File System
``unmanage`` operation is not supported for shares that were created on top of service, and take manual control on share life cycle. The ``unmanage``
share servers (created with share networks), so share service should have operation is not supported for shares that were created on top of share servers
option ``driver_handles_share_servers = False`` in its configuration. and created with share networks), so share service should have option
You can unmanage a share that has no dependent snapshots. ``driver_handles_share_servers = False`` in its configuration. You can unmanage
a share that has no dependent snapshots.
To unmanage managed share, run :command:`manila unmanage <share>` command. To unmanage managed share, run :command:`manila unmanage <share>` command.
Then try to print the information about it. The expected behaviour is that Then try to print the information about it. The expected behaviour is that
File System Storage service won't find the share: Shared File Systems service won't find the share:
.. code:: console .. code:: console
@ -41,8 +38,8 @@ File System Storage service won't find the share:
Manage share Manage share
------------ ------------
To register the non-managed share in File System Storage service you need to To register the non-managed share in File System service you need to run
run :command:`manila manage` command which has such arguments: :command:`manila manage` command which has such arguments:
.. code:: console .. code:: console
@ -67,6 +64,9 @@ The positional arguments are:
- CIFS protocol. \\\\10.0.0.1\\foo_name_of_cifs_share. - CIFS protocol. \\\\10.0.0.1\\foo_name_of_cifs_share.
- HDFS protocol. hdfs://10.0.0.1:foo_port/foo_share_name.
- GlusterFS. 10.0.0.1:/foo_volume.
The ``driver_options`` is an optional set of one or more key and value pairs, The ``driver_options`` is an optional set of one or more key and value pairs,
that describe driver options. Note that the share type must have that describe driver options. Note that the share type must have
@ -106,7 +106,7 @@ To manage share, run:
| metadata | {} | | metadata | {} |
+-----------------------------+---------------------------------------------------------------+ +-----------------------------+---------------------------------------------------------------+
Check that he share is available: Check that the share is available:
.. code:: console .. code:: console

View File

@ -1,31 +1,27 @@
.. _shared_file_systems_multi_backend: .. _shared_file_systems_multi_backend:
.. highlight: ini
:linenothreshold: 5
=========================== ===========================
Multi-storage configuration Multi-storage configuration
=========================== ===========================
Shared File Systems service can provide access to multiple file storage back The Shared File Systems service can provide access to multiple file storage
ends. In general, workflow with multiple back ends look very similar to Block back ends. In general, the workflow with multiple back ends looks very similar
Storage service one, see :ref:`Configure multiple-storage back ends in to the Block Storage service one, see :ref:`Configure multiple-storage back
Openstack Block Storage service <multi_backend>`. ends in Openstack Block Storage service <multi_backend>`.
Using `manila.conf` you can spawn multiple share services. To do it, you must Using `manila.conf`, you can spawn multiple share services. To do it, you
set the `enabled_share_backends` flag in the `manila.conf` file. This flag should set the `enabled_share_backends` flag in the `manila.conf` file. This
defines the names (separated by a comma) of the configuration stanzas for the flag defines the comma-separated names of the configuration stanzas for the
different back ends: one name is associated to one configuration group for a different back ends: one name is associated to one configuration group for a
back end. back end.
The following example runs three configured share services: The following example runs three configured share services:
.. code-block:: ini .. code-block:: ini
:linenos: :linenos:
[DEFAULT] [DEFAULT]
enabled_share_backends=backendEMC1,backendEMC2,backendGeneric1,backendGeneric2,backendNetApp enabled_share_backends=backendEMC2,backendGeneric1,backendNetApp
[backendGeneric1] [backendGeneric1]
share_driver=manila.share.drivers.generic.GenericShareDriver share_driver=manila.share.drivers.generic.GenericShareDriver
@ -55,9 +51,9 @@ The following example runs three configured share services:
netapp_server_hostname=1.1.1.1 netapp_server_hostname=1.1.1.1
netapp_root_volume_aggregate=aggr01 netapp_root_volume_aggregate=aggr01
To spawn separate groups of share services you can use separate configuration To spawn separate groups of share services, you can use separate configuration
files. If it is necessary to control each back end in separate way, you should files. If it is necessary to control each back end in a separate way, you
provide a single configuration file per each back end. should provide a single configuration file per each back end.
.. toctree:: .. toctree::
shared_file_systems_scheduling.rst shared_file_systems_scheduling.rst

View File

@ -7,73 +7,77 @@ Network plug-ins
The Shared File Systems service architecture defines an abstraction layer for The Shared File Systems service architecture defines an abstraction layer for
network resource provisioning and allowing administrators to choose from a network resource provisioning and allowing administrators to choose from a
different options for how network resources are assigned to their tenants different options for how network resources are assigned to their tenants
networked storage. There are a set of network plugins that provide a variety networked storage. There are a set of network plug-ins that provide a variety
of integration approaches with the network services that are available with of integration approaches with the network services that are available with
OpenStack. OpenStack.
The Shared File Systems service may need a network resource provisioning if The Shared File Systems service may need a network resource provisioning if
share service with specified driver works in mode, when share driver manage share service with specified driver works in mode, when a share driver manages
life cycle of share servers on its own. This behavior defines by flag life cycle of share servers on its own. This behavior is defined by a flag
``driver_handles_share_servers`` in share service configuration. When ``driver_handles_share_servers`` in share service configuration. When
``driver_handles_share_servers`` is set to ``True``, a share driver will be ``driver_handles_share_servers`` is set to ``True``, a share driver will be
called to create share servers for shares using information provided within a called to create share servers for shares using information provided within a
share network. This information will be provided to one of the enabled network share network. This information will be provided to one of the enabled network
plugins that will handle reservation, creation and deletion of network plug-ins that will handle reservation, creation and deletion of network
resources including IP addresses and network interfaces. resources including IP addresses and network interfaces.
What network plugins are available? What network plug-ins are available?
----------------------------------- ------------------------------------
There are three different network plugins and five python classes in Manila: There are three different network plug-ins and five python classes in the
Shared File Systems service:
1. Network plugin for using the OpenStack networking project `Neutron`. It #. Network plug-in for using the OpenStack Networking service. It allows to use
allows one to use any network segmentation that Neutron supports. It is up any network segmentation that the Networking service supports. It is up to
to each share driver to support at least one network segmentation type. each share driver to support at least one network segmentation type.
a) ``manila.network.neutron.neutron_network_plugin.NeutronNetworkPlugin``. a) ``manila.network.neutron.neutron_network_plugin.NeutronNetworkPlugin``.
This is the default network plugin. It requires that ``neutron_net_id`` This is a default network plug-in. It requires the ``neutron_net_id`` and
and ``neutron_subnet_id`` are provided when defining the share network the ``neutron_subnet_id`` to be provided when defining the share network
that will be used for the creation of share servers. The user may that will be used for the creation of share servers. The user may define
define any number of share networks corresponding to the various any number of share networks corresponding to the various physical
physical network segments in a tenant environment. network segments in a tenant environment.
b) ``manila.network.neutron.neutron_network_plugin.NeutronSingleNetworkPlug b) ``manila.network.neutron.neutron_network_plugin.
in``. This is a simplification of the previous case. It accepts values NeutronSingleNetworkPlugin``. This is a simplification of the previous
for ``neutron_net_id`` and ``neutron_subnet_id`` from the Manila case. It accepts values for ``neutron_net_id`` and ``neutron_subnet_id``
configuration file and uses one network for all shares. from the ``manila.conf`` configuration file and uses one network for all
shares.
When only a single network is needed, the NeutronSingleNetworkPlugin (1.b) When only a single network is needed, the NeutronSingleNetworkPlugin (1.b)
is a simple solution. Otherwise NeutronNetworkPlugin (1.a) should be chosen. is a simple solution. Otherwise NeutronNetworkPlugin (1.a) should be chosen.
2. Network plugin for working with OpenStack networking from `Nova`. It #. Network plug-in for working with OpenStack Networking from the Compute
supports either flat networks or VLAN-segmented networks. service. It supports either flat networks or VLAN-segmented networks.
a) ``manila.network.nova_network_plugin.NovaNetworkPlugin``. This plugin a) ``manila.network.nova_network_plugin.NovaNetworkPlugin``. This plug-in
serves the networking needs when ``Nova networking`` is configured in serves the networking needs when ``Nova networking`` is configured in
the cloud instead of Neutron. It requires a single parameter, the cloud instead of Neutron. It requires a single parameter,
``nova_net_id``. ``nova_net_id``.
b) ``manila.network.nova_network_plugin.NovaSingleNetworkPlugin``. This one b) ``manila.network.nova_network_plugin.NovaSingleNetworkPlugin``. This
works in the same way as the previous one with one difference. It takes plug-in works the same way as
nova_net_id from the Shared File Systems service configuration file and ``manila.network.nova_network_plugin.NovaNetworkPlugin``, except it takes
creates share servers using only one network. ``nova_net_id`` from the Shared File Systems service configuration
file and creates the share servers using only one network.
When only a single network is needed, the NovaSingleNetworkPlugin (2.b) is a When only a single network is needed, the NovaSingleNetworkPlugin (2.b) is a
simple solution. Otherwise NovaNetworkPlugin (1.a) should be chosen. simple solution. Otherwise NovaNetworkPlugin (2.a) should be chosen.
3. Network plugin for specifying networks independently from OpenStack #. Network plug-in for specifying networks independently from OpenStack
networking services. networking services.
a) ``manila.network.standalone_network_plugin.StandaloneNetworkPlugin``. a) ``manila.network.standalone_network_plugin.StandaloneNetworkPlugin``.
This plug-in uses a pre-existing network that is available to the This plug-in uses a pre-existing network that is available to the
manila-share host. This network may be handled either by OpenStack or be manila-share host. This network may be handled either by OpenStack or be
created independently by any other means. The plugin supports any type of created independently by any other means. The plug-in supports any type
network - flat and segmented. As above, it is completely up to the driver of network - flat and segmented. As above, it is completely up to the
to support the network type for which the network plugin is configured. share driver to support the network type for which the network plug-in is
configured.
.. note:: .. note::
These network plugins were introduced in the OpenStack Kilo release. In These network plug-ins were introduced in the OpenStack Kilo release. In
the OpenStack Juno version, only NeutronNetworkPlugin is available. the OpenStack Juno version, only NeutronNetworkPlugin is available.
More information about network plugins can be found in `Manila developer documentation <http://docs.openstack.org/developer/manila/adminref/network_plugins.html>`_ More information about network plug-ins can be found in `Manila developer documentation <http://docs.openstack.org/developer/manila/adminref/network_plugins.html>`_

View File

@ -4,13 +4,13 @@
Networking Networking
========== ==========
Instead of OpenStack Block Storage service, Shared File Systems service Unlike the OpenStack Block Storage service, the Shared File Systems service
requires interaction with Networking service. The first of all, it because requires interaction with the Networking service. First of all, it is because
share services should have a possibility to manage share servers on its own. the share services require the option to self-manage share servers. Also, for
Also, lots of shared file systems provides have own access control systems and authentication and authorization of the clients, the Shared File Systems
requires network connectivity with some external auth providers, like LDAP, service can be optionally configured to work with different network
Kerberos, or Microsoft Active Directory. So, management share services base authentication services, like LDAP, Kerberos protocols, or Microsoft Active
on such back end needs some interacting with Networking service. Directory.
.. toctree:: .. toctree::
shared_file_systems_share_networks.rst shared_file_systems_share_networks.rst

View File

@ -8,23 +8,9 @@ Limits
------ ------
Limits are the resource limitations that are allowed for each tenant (project). Limits are the resource limitations that are allowed for each tenant (project).
An administrator can configure limits in the :file:`/etc/manila/manila.conf` An administrator can configure limits in the :file:`manila.conf` file.
file.
Users can query their rate and absolute limits. Users can query their rate and absolute limits.
The absolute limits contain information about:
- Total maximum share memory, in GBs.
- Total maximum snapshot memory, in GBs.
- Number of share-networks.
- Number of share-snapshots.
- Number of shares.
- Shares and total used memory, in GBs.
To see the absolute limits, run: To see the absolute limits, run:
@ -52,11 +38,39 @@ number of API calls that can be made in a specific time interval. For example,
a rate limit can control the number of GET requests that can be processed a rate limit can control the number of GET requests that can be processed
during a one-minute period. during a one-minute period.
To set the API rate limits, add configuration to the
:file:`etc/manila/api-paste.ini` file that is a part of the WSGI pipeline and
defines the actual limits. You need to restart ``manila-api`` service after
you edited :file:`etc/manila/api-paste.ini` file.
.. code-block:: ini
[filter:ratelimit]
paste.filter_factory = manila.api.v1.limits:RateLimitingMiddleware.factory
limits = (POST, "*/shares", ^/shares, 120, MINUTE);(PUT, "*/shares", .*, 120, MINUTE);(DELETE, "*", .*, 120, MINUTE)
Also, add ``ratelimit`` to ``noauth``, ``keystone``, ``keystone_nolimit``
parameters in ``[composite:openstack_share_api]`` group.
.. code-block:: ini
[composite:openstack_share_api]
noauth = faultwrap ssl ratelimit sizelimit noauth api
keystone = faultwrap ssl ratelimit sizelimit authtoken keystonecontext api
keystone_nolimit = faultwrap ssl ratelimit sizelimit authtoken keystonecontext api
To see the rate limits, run: To see the rate limits, run:
.. code:: console .. code:: console
$ manila rate-limits $ manila rate-limits
+--------+------------+-------+--------+--------+----------------------+
| Verb | URI | Value | Remain | Unit | Next_Available |
+--------+------------+-------+--------+--------+----------------------+
| DELETE | "*" | 120 | 120 | MINUTE | 2015-10-20T15:17:20Z |
| POST | "*/shares" | 120 | 120 | MINUTE | 2015-10-20T15:17:20Z |
| PUT | "*/shares" | 120 | 120 | MINUTE | 2015-10-20T15:17:20Z |
+--------+------------+-------+--------+--------+----------------------+
Quotas Quotas
------ ------
@ -82,7 +96,7 @@ for the specified project.
+--------------------+-------+ +--------------------+-------+
There are default quotas for a project that are set from There are default quotas for a project that are set from
:file:`/etc/manila/manila.conf` file. To list default quotas for a project, use :file:`manila.conf` file. To list default quotas for a project, use
**manila quota-defaults** command: **manila quota-defaults** command:
.. code:: console .. code:: console
@ -120,21 +134,3 @@ To revert quotas to default for a project or for a user, delete quotas:
.. code:: console .. code:: console
$ manila quota-delete --tenant demo --user demo $ manila quota-delete --tenant demo --user demo
It is possible to set quotas for a quota class and then check that the quotas
were updated:
.. code:: console
$ manila quota-class-update my_custom_class --shares 49 --snapshot_gigabytes 999
$ manila quota-class-show my_custom_class
+--------------------+-------+
| Property | Value |
+--------------------+-------+
| gigabytes | 1000 |
| snapshot_gigabytes | 999 |
| snapshots | 50 |
| shares | 49 |
| share_networks | 10 |
+--------------------+-------+

View File

@ -4,29 +4,30 @@
Scheduling Scheduling
========== ==========
Shared File Systems service provides unified access for variety of different The Shared File Systems service provides unified access for variety of
types of shared file systems. To achieve this, Shared File Systems service different types of shared file systems. To achieve this, the Shared File
use scheduler. Scheduler collects information from active share services and Systems service uses a scheduler. The scheduler collects information from
take decisions, what share service will be used to create new share. To manage active share services and takes decisions, what share service will be used to
this process Shared File Systems service provides Share types API. create a new share. To manage this process, the Shared File Systems service
provides Share types API.
Share type is a list from key-value pairs called extra-specs. Some of them, A share type is a list from key-value pairs called extra-specs. Some of them,
called required and un-scoped extra-specs, scheduler uses for lookup the called required and un-scoped extra-specs, scheduler uses for lookup the
share service suitable for new share with specified share type. For more share service suitable for new share with specified share type. For more
information about extra-specs and their type see `Capabilities and Extra-Specs information about extra-specs and their type, see `Capabilities and Extra-Specs
<http://docs.openstack.org/developer/manila/devref/capabilities_and_extra_spec <http://docs.openstack.org/developer/manila/devref/capabilities_and_extra_spec
s.html>`_ section in developer documentation. s.html>`_ section in developer documentation.
In general scheduler workflow looks like: The general scheduler workflow in described below.
1) Share services report information about number of existed pools, their #. Share services report information about number of existing pools, their
capacities and capabilities. capacities and capabilities.
2) When request on share creation comes in, scheduler picks a service and pool #. When request on share creation comes in, scheduler picks a service and pool
that fits the need best to serve the request, using share type filters and that fits the need best to serve the request, using share type filters and
back end capabilities. If back end capabilities passes thought all filters back end capabilities. If back end capabilities passes thought all filters
request to the selected back end where the target pool resides; request to the selected back end where the target pool resides.
3) Share driver gets the message and lets the target pool serve the request #. Share driver gets the message and lets the target pool serve the request
as scheduler instructed. Share type extra-specs (scoped and un-scoped) as scheduler instructed. The scoped and un-scoped share type extra-specs
are available for the driver implementation to use as-needed. are available for the driver implementation to use as needed.

View File

@ -168,7 +168,7 @@ and see that a security service now has empty list of share networks:
| description | None | | description | None |
+----------------+--------------------------------------+ +----------------+--------------------------------------+
Shared File Systems Storage allows you to update a security service fields Shared File Systems service allows you to update a security service fields
using **manila security-service-update** command with optional arguments using **manila security-service-update** command with optional arguments
such as ``--dns-ip``, ``--server``, ``--domain``, ``--user``, ``--password``, such as ``--dns-ip``, ``--server``, ``--domain``, ``--user``, ``--password``,
``--name``, or ``--description``. ``--name``, or ``--description``.

View File

@ -4,12 +4,12 @@
Manage shares services Manage shares services
====================== ======================
The Shared File Systems service provides API allows to Cloud Administrator The Shared File Systems service provides API that allows to manage running
manage running share services (`Share services API share services (`Share services API
<http://developer.openstack.org/api-ref-share-v2.html#share-services>`_). <http://developer.openstack.org/api-ref-share-v2.html#share-services>`_).
It hasn't exposed in CLI client yet. Using raw API calls, it is possible Using ``manila service-list`` command, it is possible to get a list of all
to get list of running services all kinds. To select only share services, kinds of running services. To select only share services, you can pick items
you can pick items only have field ``binary`` equals to ``manila-share``. that have field ``binary`` equals to ``manila-share``. Also, you can enable or
Aslo, you can enable and disable share services. Disabling means that share disable share services using raw API requests. Disabling means that share
service excludes from scheduler cycle and new shares will not be placed on service excludes from scheduler cycle and new shares will not be placed on
disabled back end, but shares from this service stay available. disabled back end, but shares from this service stay available.

View File

@ -4,12 +4,6 @@
Share management Share management
================ ================
The default configuration of the Shared File Systems service uses the OpenStack
Block Storage based back end. In that case, the Shared File Systems service
cares about everything (VMs, networking, keypairs, security groups) by itself.
It is not production solution, but can help you to understand how the Shared
File Systems service works.
A share is a remote, mountable file system. You can mount a share to and access A share is a remote, mountable file system. You can mount a share to and access
a share from several hosts by several users at a time. a share from several hosts by several users at a time.
@ -25,12 +19,9 @@ The shares are based on of the supported Shared File Systems protocols:
* *GLUSTERFS*. Gluster file system (GlusterFS). * *GLUSTERFS*. Gluster file system (GlusterFS).
* *HDFS*. Hadoop Distributed File System (HDFS). * *HDFS*. Hadoop Distributed File System (HDFS).
.. note:: The Shared File Systems service provides set of drivers that enable you to use
various network file storage devices, instead of the base implementation. That
The Shared File Systems service provides set of drivers that enable you to is the real purpose of the Shared File Systems service service in production.
use various network file storage devices, instead of the base
implementation. That is the real purpose of the Shared File Systems service
service in production.
.. toctree:: .. toctree::
shared_file_systems_crud_share.rst shared_file_systems_crud_share.rst

View File

@ -4,9 +4,10 @@
Share networks Share networks
============== ==============
Share network is an entity that encapsulates interaction with Networking Share network is an entity that encapsulates interaction with the OpenStack
service. If selected driver runs in mode requiring such kind of interaction, Networking service. If the share driver that you selected runs in a mode
you need to specify share network when share creates. requiring Networking service interaction, specify the share network when
creating a share network.
How to create share network How to create share network
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -5,8 +5,9 @@ Resize share
============ ============
To change file share size, use :command:`manila extend` and To change file share size, use :command:`manila extend` and
:command:`manila shrink`. For most drivers it is safe operation. In case of :command:`manila shrink`. For most drivers it is safe operation. If you want to
using generic driver it is better to create share snapshot for backup. be sure that your data is safe, you can make a share back up by creating a
snapshot of it.
You can extend and shrink the share with **manila extend** and You can extend and shrink the share with **manila extend** and
**manila shrink** commands correspondingly and specifying the share and new **manila shrink** commands correspondingly and specifying the share and new

View File

@ -5,12 +5,12 @@ Share types
=========== ===========
A share type enables you to filter or choose back ends before you create a A share type enables you to filter or choose back ends before you create a
share. A share type behaves in the same way as a Block Storage volume type share and to set data for the share driver. A share type behaves in the same
behaves. way as a Block Storage volume type behaves.
In the manila configuration file :file:`/etc/manila/manila.conf` administrator In the Shared File Systems configuration file :file:`manila.conf`, the
can set the share type used by default for the share creation and then create administrator can set the share type used by default for the share creation and
a default share type. then create a default share type.
To create a share type, use **manila type-create** command as: To create a share type, use **manila type-create** command as:
@ -126,8 +126,8 @@ The public or private share type can be deleted by means of
Share type access Share type access
----------------- -----------------
You can manage the access to the private for the different projects: add You can manage the access to the private share type for the different projects:
access, remove access, and get information about access for a specified add access, remove access, and get information about access for a specified
private share type. private share type.
Create a private type: Create a private type:

View File

@ -4,13 +4,13 @@
Share snapshots Share snapshots
=============== ===============
The Shared File Systems service provides mechanism of snapshots to help users The Shared File Systems service provides a snapshot mechanism to help users
to restore theirs own data. Use :command:`manila snapshot-create` for it. restore data by running the `manila snapshot-create` command.
To export a snapshot, you can create shares from it, then mount new share to To export a snapshot, you can create shares from it, then mount new share to
instance and then directly copy files from attached share into archive. instance and then directly copy files from attached share into archive.
To import snapshot, create a new share with appropriate size, attach it to To import a snapshot, create a new share with appropriate size, attach it to
instance and then copy file from archive to attached file system. instance and then copy file from archive to attached file system.
.. note:: .. note::

View File

@ -4,21 +4,21 @@
Troubleshoot Shared File Systems service Troubleshoot Shared File Systems service
======================================== ========================================
Failures in share service during share creation Failures in Share File Systems service during a share creation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If new shares go into ``error`` state during creation, follow next steps: If new shares go into ``error`` state during creation, follow next steps:
1. Make sure, that share services are running into debug mode. If it is not #. Make sure, that share services are running in debug mode. If the debug mode
true, you will not get any tips from logs how to fix your issue. is not set, you will not get any tips from logs how to fix your issue.
2. Find what a share service holds specified share. Do to that, run command #. Find what share service holds a specified share. Do to that, run command
:command:`manila show <share_id_or_name>` and find share host in the :command:`manila show <share_id_or_name>` and find a share host in the
output. Host uniquely identifies share service holds broken share. output. Host uniquely identifies what share service holds the broken share.
3. Look thought logs of this share service. Usually, it can be found at #. Look thought logs of this share service. Usually, it can be found at
``/etc/var/log/manila-share.log``. This log should contain kind of ``/etc/var/log/manila-share.log``. This log should contain kind of
traceback with extra information to help you find origin of issues. traceback with extra information to help you to find the origin of issues.
No valid host was found No valid host was found
~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
@ -34,30 +34,27 @@ To solve this issue look carefully through list of extra specs in share type
and list of share service reported capabilities and make sure that extra specs and list of share service reported capabilities and make sure that extra specs
are pointed in the right way. are pointed in the right way.
Created share is unreachable Created share is unreachable
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
By default new share doesn't have any active access rules. So, to provide By default, a new share does not have any active access rules. To provide
access to new created share, you need to create appropriate access rule with access to new created share, you need to create appropriate access rule with
right value that defines access. right value that defines access.
Service become unavailable after upgrade Service becomes unavailable after upgrade
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After upgrading Shared File Systems service from version v1 to version v2.x,
please be attentive to update service endpoint in OpenStack Identity Service.
Use :command:`keystone service-list` to get service type related to Shared
File Systems service and then :command:`keystone service-list --service
<share-service-type>`. You will get endpoints expected from running
Shared File Systems service. Make sure that these endpoints are update.
If it is not true, you need delete outdated endpoints and create a new one.
After upgrading the Shared File Systems service from version v1 to version
v2.x, please be attentive to update service endpoint in OpenStack Identity
Service. Use :command:`keystone service-list` to get service type related to
Shared File Systems service and then :command:`keystone service-list --service
<share-service-type>` command. You will get endpoints expected from running
Shared File Systems service. Make sure that these endpoints are updated.
If it is not true, you need to delete outdated endpoints and create new ones.
Failures during management of internal resources Failures during management of internal resources
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Some drivers in Shared File Systems service can create service entities, like Some drivers in Shared File Systems service can create service entities, like
servers and networks. If it is necessary to reach it you can login in servers and networks. If it is necessary to reach it you can log in to tenant
tenant ``service`` and get manual control over it. ``service`` and get manual control over it.