diff --git a/doc/common/get_started_file_storage.rst b/doc/common/get_started_file_storage.rst index aeaeabf36e..19221537e6 100644 --- a/doc/common/get_started_file_storage.rst +++ b/doc/common/get_started_file_storage.rst @@ -2,29 +2,32 @@ OpenStack Shared File Systems service ===================================== -The OpenStack Shared File Systems service (manila) provides file -storage to a virtual machine. The Shared File Systems service -provides an infrastructure for managing shares and provides access -to shares to instances. The service also enables management of share -types as well as share snapshots if a driver supports snapshots. +The OpenStack Shared File Systems service (manila) provides file storage to a +virtual machine. The Shared File Systems service provides an infrastructure +for managing and provisioning of file shares. The service also enables +management of share types as well as share snapshots if a driver supports +them. The Shared File Systems service consists of the following components: manila-api - Accepts API requests and routes them to the ``manila-share`` for - action. + A WSGI app that authenticates and routes requests throughout the Shared File + Systems service. It supports the OpenStack APIs. + +manila-scheduler + Schedules and routes requests to the appropriate share service. The + scheduler uses configurable filters and weighers to route requests. The + Filter Scheduler is the default and enables filters on things like Capacity, + Availability Zone, Share Types, and Capabilities as well as custom filters. manila-share - Interacts directly with the Shared File Systems service and processes - such as the ``manila-scheduler``. It also interacts with these processes - through a message queue. The ``manila-share`` service responds to read - and write requests sent to the Shared File Systems service to maintain - state. It can interact with a variety of storage providers through a - driver architecture. - -manila-scheduler daemon - Selects the optimal storage provider node on which to create the - share. A similar component to the ``cinder-scheduler``. + Manages back-end devices that provide shared file systems. A manila-share + process can run in one of two modes, with or without handling of share + servers. Share servers export file shares via share networks. When share + servers are not used, the networking requirements are handled outside of + Manila. Messaging queue Routes information between the Shared File Systems processes. + +For more information, see `Configuration Reference Guide `__. diff --git a/doc/install-guide/source/conf.py b/doc/install-guide/source/conf.py index 3fe4bbf13b..cb0fd4048d 100644 --- a/doc/install-guide/source/conf.py +++ b/doc/install-guide/source/conf.py @@ -99,7 +99,6 @@ exclude_patterns = ['common/cli*', 'common/nova*', 'common/get_started_logical_architecture.rst', 'common/get_started_dashboard.rst', 'common/get_started_database_service.rst', - 'common/get_started_file_storage.rst', 'common/get_started_storage_concepts.rst', 'common/get_started_sahara.rst', 'common/dashboard_customizing.rst', diff --git a/doc/install-guide/source/index.rst b/doc/install-guide/source/index.rst index ba15c1d406..89e0422230 100644 --- a/doc/install-guide/source/index.rst +++ b/doc/install-guide/source/index.rst @@ -94,6 +94,7 @@ Contents neutron.rst horizon.rst cinder.rst + manila.rst swift.rst heat.rst ceilometer.rst @@ -117,6 +118,7 @@ Contents neutron.rst horizon.rst cinder.rst + manila.rst swift.rst heat.rst ceilometer.rst diff --git a/doc/install-guide/source/launch-instance-manila.rst b/doc/install-guide/source/launch-instance-manila.rst new file mode 100644 index 0000000000..0744ef1440 --- /dev/null +++ b/doc/install-guide/source/launch-instance-manila.rst @@ -0,0 +1,198 @@ +.. _launch-instance-manila: + +Shared File Systems +~~~~~~~~~~~~~~~~~~~ + +Before being able to create a share, the manila with the generic driver and +the DHSS mode enabled requires the definition of at least an image, +a network and a share-network for being used to create a share server. +For that back end configuration, the share server is an instance where +NFS/CIFS shares are served. + +.. note:: + + This configuration automatically creates a cinder volume for every share. + The cinder volumes are attached to share servers according to the + definition of a share network. + +Determine the configuration of the share server +----------------------------------------------- + +#. Source the admin credentials to gain access to admin-only CLI commands: + + .. code-block:: console + + $ source admin-openrc.sh + +#. Create a default share type before running manila-share service: + + .. code-block:: console + + $ manila type-create default_share_type True + +--------------------------------------+--------------------+------------+------------+-------------------------------------+-------------------------+$ + | ID | Name | Visibility | is_default | required_extra_specs | optional_extra_specs |$ + +--------------------------------------+--------------------+------------+------------+-------------------------------------+-------------------------+$ + | 8a35da28-0f74-490d-afff-23664ecd4f01 | default_share_type | public | - | driver_handles_share_servers : True | snapshot_support : True |$ + +--------------------------------------+--------------------+------------+------------+-------------------------------------+-------------------------+$ + +#. Create a manila share server image to the Image service: + + .. code-block:: console + + $ glance image-create \ + --copy-from http://tarballs.openstack.org/manila-image-elements/images/manila-service-image-master.qcow2 \ + --name "manila-service-image" \ + --disk-format qcow2 \ + --container-format bare \ + --visibility public --progress + [=============================>] 100% + +------------------+--------------------------------------+ + | Property | Value | + +------------------+--------------------------------------+ + | checksum | 48a08e746cf0986e2bc32040a9183445 | + | container_format | bare | + | created_at | 2016-01-26T19:52:24Z | + | disk_format | qcow2 | + | id | 1fc7f29e-8fe6-44ef-9c3c-15217e83997c | + | min_disk | 0 | + | min_ram | 0 | + | name | manila-service-image | + | owner | e2c965830ecc4162a002bf16ddc91ab7 | + | protected | False | + | size | 306577408 | + | status | active | + | tags | [] | + | updated_at | 2016-01-26T19:52:28Z | + | virtual_size | None | + | visibility | public | + +------------------+--------------------------------------+ + +#. List available networks in order to get id and subnets of the private + network: + + .. code-block:: console + + $ neutron net-list + +--------------------------------------+---------+----------------------------------------------------+ + | id | name | subnets | + +--------------------------------------+---------+----------------------------------------------------+ + | 0e62efcd-8cee-46c7-b163-d8df05c3c5ad | public | 5cc70da8-4ee7-4565-be53-b9c011fca011 10.3.31.0/24 | + | 7c6f9b37-76b4-463e-98d8-27e5686ed083 | private | 3482f524-8bff-4871-80d4-5774c2730728 172.16.1.0/24 | + +--------------------------------------+---------+----------------------------------------------------+ + +#. Source the ``demo`` credentials to perform + the following steps as a non-administrative project: + + .. code-block:: console + + $ source demo-openrc.sh + + .. code-block:: console + + $ manila share-network-create --name demo-share-network1 \ + --neutron-net-id PRIVATE_NETWORK_ID \ + --neutron-subnet-id PRIVATE_NETWORK_SUBNET_ID + +-------------------+--------------------------------------+ + | Property | Value | + +-------------------+--------------------------------------+ + | name | demo-share-network1 | + | segmentation_id | None | + | created_at | 2016-01-26T20:03:41.877838 | + | neutron_subnet_id | 3482f524-8bff-4871-80d4-5774c2730728 | + | updated_at | None | + | network_type | None | + | neutron_net_id | 7c6f9b37-76b4-463e-98d8-27e5686ed083 | + | ip_version | None | + | nova_net_id | None | + | cidr | None | + | project_id | e2c965830ecc4162a002bf16ddc91ab7 | + | id | 58b2f0e6-5509-4830-af9c-97f525a31b14 | + | description | None | + +-------------------+--------------------------------------+ + +Create a share +-------------- + +#. Create a NFS share using the share network: + + .. code-block:: console + + $ manila create NFS 1 --name demo-share1 --share-network demo-share-network1 + +-----------------------------+--------------------------------------+ + | Property | Value | + +-----------------------------+--------------------------------------+ + | status | None | + | share_type_name | None | + | description | None | + | availability_zone | None | + | share_network_id | None | + | export_locations | [] | + | host | None | + | snapshot_id | None | + | is_public | False | + | task_state | None | + | snapshot_support | True | + | id | 016ca18f-bdd5-48e1-88c0-782e4c1aa28c | + | size | 1 | + | name | demo-share1 | + | share_type | None | + | created_at | 2016-01-26T20:08:50.502877 | + | export_location | None | + | share_proto | NFS | + | consistency_group_id | None | + | source_cgsnapshot_member_id | None | + | project_id | 48e8c35b2ac6495d86d4be61658975e7 | + | metadata | {} | + +-----------------------------+--------------------------------------+ + +#. After some time, the share status should change from ``creating`` + to ``available``: + + .. code-block:: console + + $ manila list + +--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+---------------------------------------------------------------+-----------------------------+-------------------+ + | ID | Name | Size | Share Proto | Status | Is Public | Share Type | Export location | Host | Availability Zone | + +--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+---------------------------------------------------------------+-----------------------------+-------------------+ + | 5f8a0574-a95e-40ff-b898-09fd8d6a1fac | demo-share1 | 1 | NFS | available | False | 8a35da28-0f74-490d-afff-23664ecd4f01 | 10.254.0.6:/shares/share-0bfd69a1-27f0-4ef5-af17-7cd50bce6550 | storagenode@generic#GENERIC | nova | + +--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+---------------------------------------------------------------+-----------------------------+-------------------+ + +#. Configure user access to the new share before attempting to mount it via + the network: + + .. important :: + + The image used for launching an instance and mounting a share must have + the NFS packages provided by the distro. Example: The cirros image + created at the image service section is not enough. + + .. important :: + + Use an instance that is connected to the private network used to create + the share-network. + + .. code-block:: console + + $ manila access-allow demo-share1 ip INSTANCE_PRIVATE_NETWORK_IP + +Mount the share from an instance +-------------------------------- + +#. Create a folder where the mount will be placed: + + .. code-block:: console + + $ mkdir ~/test_folder + +#. Mount the NFS share in the instance using the export location of the share: + + .. code-block:: console + + $ mount -v 10.254.0.6:/shares/share-0bfd69a1-27f0-4ef5-af17-7cd50bce6550 ~/test_folder + + +For more information about how to manage shares, see the +`OpenStack User Guide +`__. + +Return to :ref:`launch-instance`. diff --git a/doc/install-guide/source/launch-instance.rst b/doc/install-guide/source/launch-instance.rst index ed9cdfa46c..7245cf311c 100644 --- a/doc/install-guide/source/launch-instance.rst +++ b/doc/install-guide/source/launch-instance.rst @@ -139,3 +139,14 @@ a stack that launches an instance. :maxdepth: 1 launch-instance-heat.rst + +Shared File Systems +------------------- + +If your environment includes the Shared File Systems service, you can create +a share. + +.. toctree:: + :maxdepth: 1 + + launch-instance-manila.rst diff --git a/doc/install-guide/source/manila-controller-install.rst b/doc/install-guide/source/manila-controller-install.rst new file mode 100644 index 0000000000..12887b1729 --- /dev/null +++ b/doc/install-guide/source/manila-controller-install.rst @@ -0,0 +1,390 @@ +.. _manila-controller: + +Install and configure controller node +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section describes how to install and configure the Shared File Systems +service, code-named manila, on the controller node. This service requires at +least one additional share node that manages file storage back-ends. + +Prerequisites +------------- + +Before you install and configure the Share File System service, you +must create a database, service credentials, and API endpoints. + +#. To create the database, complete these steps: + + * Use the database access client to connect to the database server as the + ``root`` user: + + .. code-block:: console + + $ mysql -u root -p + + * Create the ``manila`` database: + + .. code-block:: console + + CREATE DATABASE manila; + + * Grant proper access to the ``manila`` database: + + .. code-block:: console + + GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'localhost' \ + IDENTIFIED BY 'MANILA_DBPASS'; + GRANT ALL PRIVILEGES ON manila.* TO 'manila'@'%' \ + IDENTIFIED BY 'MANILA_DBPASS'; + + Replace ``MANILA_DBPASS`` with a suitable password. + + * Exit the database access client. + +#. Source the ``admin`` credentials to gain access to admin-only CLI commands: + + .. code-block:: console + + $ source admin-openrc.sh + +#. To create the service credentials, complete these steps: + + * Create a ``manila`` user: + + .. code-block:: console + + $ openstack user create --domain default --password-prompt manila + User Password: + Repeat User Password: + +-----------+----------------------------------+ + | Field | Value | + +-----------+----------------------------------+ + | domain_id | default | + | enabled | True | + | id | 83a3990fc2144100ba0e2e23886d8acc | + | name | manila | + +-----------+----------------------------------+ + + * Add the ``admin`` role to the ``manila`` user: + + .. code-block:: console + + $ openstack role add --project service --user manila admin + + .. note:: + + This command provides no output. + + * Create the ``manila`` and ``manilav2`` service entities: + + .. code-block:: console + + $ openstack service create --name manila \ + --description "OpenStack Shared File Systems" share + +-------------+----------------------------------+ + | Field | Value | + +-------------+----------------------------------+ + | description | OpenStack Shared File Systems | + | enabled | True | + | id | 82378b5a16b340aa9cc790cdd46a03ba | + | name | manila | + | type | share | + +-------------+----------------------------------+ + + .. code-block:: console + + $ openstack service create --name manilav2 \ + --description "OpenStack Shared File Systems" sharev2 + +-------------+----------------------------------+ + | Field | Value | + +-------------+----------------------------------+ + | description | OpenStack Shared File Systems | + | enabled | True | + | id | 30d92a97a81a4e5d8fd97a32bafd7b88 | + | name | manilav2 | + | type | sharev2 | + +-------------+----------------------------------+ + + .. note:: + + The Share File System services require two service entities. + +#. Create the Shared File Systems service API endpoints: + + .. code-block:: console + + $ openstack endpoint create --region RegionOne \ + share public http://controller:8786/v1/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | 0bd2bbf8d28b433aaea56a254c69f69d | + | interface | public | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 82378b5a16b340aa9cc790cdd46a03ba | + | service_name | manila | + | service_type | share | + | url | http://controller:8786/v1/%(tenant_id)s | + +--------------+-----------------------------------------+ + + $ openstack endpoint create --region RegionOne \ + share internal http://controller:8786/v1/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | a2859b5732cc48b5b083dd36dafb6fd9 | + | interface | internal | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 82378b5a16b340aa9cc790cdd46a03ba | + | service_name | manila | + | service_type | share | + | url | http://controller:8786/v1/%(tenant_id)s | + +--------------+-----------------------------------------+ + + $ openstack endpoint create --region RegionOne \ + share admin http://controller:8786/v1/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | f7f46df93a374cc49c0121bef41da03c | + | interface | admin | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 82378b5a16b340aa9cc790cdd46a03ba | + | service_name | manila | + | service_type | share | + | url | http://controller:8786/v1/%(tenant_id)s | + +--------------+-----------------------------------------+ + + .. code-block:: console + + $ openstack endpoint create --region RegionOne \ + sharev2 public http://controller:8786/v2/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | d63cc0d358da4ea680178657291eddc1 | + | interface | public | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 30d92a97a81a4e5d8fd97a32bafd7b88 | + | service_name | manilav2 | + | service_type | sharev2 | + | url | http://controller:8786/v2/%(tenant_id)s | + +--------------+-----------------------------------------+ + + $ openstack endpoint create --region RegionOne \ + sharev2 internal http://controller:8786/v2/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | afc86e5f50804008add349dba605da54 | + | interface | internal | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 30d92a97a81a4e5d8fd97a32bafd7b88 | + | service_name | manilav2 | + | service_type | sharev2 | + | url | http://controller:8786/v2/%(tenant_id)s | + +--------------+-----------------------------------------+ + + $ openstack endpoint create --region RegionOne \ + sharev2 admin http://controller:8786/v2/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | e814a0cec40546e98cf0c25a82498483 | + | interface | admin | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 30d92a97a81a4e5d8fd97a32bafd7b88 | + | service_name | manilav2 | + | service_type | sharev2 | + | url | http://controller:8786/v2/%(tenant_id)s | + +--------------+-----------------------------------------+ + + .. note:: + + The Share File System services require endpoints for each service + entity. + +Install and configure components +-------------------------------- + +.. only:: obs + + #. Install the packages: + + .. code-block:: console + + # zypper install openstack-manila-api openstack-manila-scheduler python-manilaclient + +.. only:: rdo + + #. Install the packages: + + .. code-block:: console + + # yum install openstack-manila python-manilaclient + +.. only:: ubuntu or debian + + #. Install the packages: + + .. code-block:: console + + # apt-get install manila-api manila-scheduler python-manilaclient + + .. only:: debian + + Respond to prompts for + :doc:`database management `, + :doc:`Identity service credentials `, + :doc:`service endpoint registration `, + and :doc:`message broker credentials `. + +2. Edit the ``/etc/manila/manila.conf`` file and complete the + following actions: + + .. only:: obs or rdo or ubuntu + + * In the ``[database]`` section, configure database access: + + .. only:: ubuntu or obs + + .. code-block:: ini + + [database] + ... + connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila + + .. only:: rdo + + .. code-block:: ini + + [database] + ... + connection = mysql+pymysql://manila:manila_DBPASS@controller/manila + + Replace ``MANILA_DBPASS`` with the password you chose for the + Share File System database. + + * In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections, + configure ``RabbitMQ`` message queue access: + + .. code-block:: ini + + [DEFAULT] + ... + rpc_backend = rabbit + + [oslo_messaging_rabbit] + ... + rabbit_host = controller + rabbit_userid = openstack + rabbit_password = RABBIT_PASS + + Replace ``RABBIT_PASS`` with the password you chose for the + ``openstack`` account in ``RabbitMQ``. + + * In the ``[DEFAULT]`` section, set the following config values: + + .. code-block:: ini + + [DEFAULT] + ... + default_share_type = default_share_type + share_name_template = share-%s + rootwrap_config = /etc/manila/rootwrap.conf + api_paste_config = /etc/manila/api-paste.ini + + * In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections, + configure Identity service access: + + .. code-block:: ini + + [DEFAULT] + ... + auth_strategy = keystone + + [keystone_authtoken] + ... + auth_uri = http://controller:5000 + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + project_name = service + username = manila + password = MANILA_PASS + + Replace ``MANILA_PASS`` with the password you chose for + the ``manila`` user in the Identity service. + + * In the ``[DEFAULT]`` section, configure the ``my_ip`` option to + use the management interface IP address of the controller node: + + .. code-block:: ini + + [DEFAULT] + ... + my_ip = 10.0.0.11 + + .. only:: obs or rdo or ubuntu + + * In the ``[oslo_concurrency]`` section, configure the lock path: + + .. code-block:: ini + + [oslo_concurrency] + ... + lock_path = /var/lock/manila + +.. only:: obs or rdo or ubuntu + + 3. Populate the Share File System database: + + .. code-block:: console + + # su -s /bin/sh -c "manila-manage db sync" manila + +Finalize installation +--------------------- + +.. only:: obs or rdo + + #. Start the Share File System services and configure them to start when + the system boots: + + .. code-block:: console + + # systemctl enable openstack-manila-api.service openstack-manila-scheduler.service + # systemctl start openstack-manila-api.service openstack-manila-scheduler.service + +.. only:: ubuntu or debian + + #. Restart the Share File Systems services: + + .. code-block:: console + + # service manila-scheduler restart + # service manila-api restart + +.. only:: ubuntu + + 3. By default, the Ubuntu packages create an SQLite database. + + Because this configuration uses an SQL database server, + you can remove the SQLite database file: + + .. code-block:: console + + # rm -f /var/lib/manila/manila.sqlite diff --git a/doc/install-guide/source/manila-next-steps.rst b/doc/install-guide/source/manila-next-steps.rst new file mode 100644 index 0000000000..1ebedb3d36 --- /dev/null +++ b/doc/install-guide/source/manila-next-steps.rst @@ -0,0 +1,9 @@ +.. _manila-next-steps: + +========== +Next steps +========== + +Your OpenStack environment now includes the Shared File Systems service. You +can :doc:`launch an instance ` or add more services to your +environment in the following chapters. diff --git a/doc/install-guide/source/manila-share-install.rst b/doc/install-guide/source/manila-share-install.rst new file mode 100644 index 0000000000..08d214beaa --- /dev/null +++ b/doc/install-guide/source/manila-share-install.rst @@ -0,0 +1,259 @@ +.. _manila-storage: + +Install and configure a share node +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section describes how to install and configure a share node for the +Shared File Systems service. For simplicity, this configuration references one +storage node with the generic driver managing the share servers. The +generic backend manages share servers using compute, networking and block +services for provisioning shares. + +.. Note:: + The manila-share process can run in two modes, with and without handling of + share servers. In general it depends of the driver support. + +Install and configure components +-------------------------------- + +#. Install the packages: + + .. only:: obs + + .. code-block:: console + + # zypper install openstack-manila python-PyMySQL + + .. only:: rdo + + .. code-block:: console + + # yum install openstack-manila targetcli python-oslo-policy + + .. only:: ubuntu + + .. code-block:: console + + # apt-get install manila-common python-pymysql + +#. Install neutron agent packages needed for generic driver: + + .. only:: obs + + .. code-block:: console + + # zypper install --no-recommends openstack-neutron-linuxbridge-agent ipset + + .. only:: rdo + + .. code-block:: console + + # yum install openstack-neutron openstack-neutron-linuxbridge ebtables ipset + + .. only:: ubuntu + + .. code-block:: console + + # apt-get install neutron-plugin-linuxbridge-agent conntrack + +#. Edit the ``/etc/manila/manila.conf`` file and complete the following + actions: + + * In the ``[database]`` section, configure database access: + + .. only:: ubuntu or obs + + .. code-block:: ini + + [database] + ... + connection = mysql+pymysql://manila:MANILA_DBPASS@controller/manila + + .. only:: rdo + + .. code-block:: ini + + [database] + ... + connection = mysql://manila:MANILA_DBPASS@controller/manila + + Replace ``MANILA_DBPASS`` with the password you chose for + the Share File System database. + + * In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections, + configure ``RabbitMQ`` message queue access: + + .. code-block:: ini + + [DEFAULT] + ... + rpc_backend = rabbit + + [oslo_messaging_rabbit] + ... + rabbit_host = controller + rabbit_userid = openstack + rabbit_password = RABBIT_PASS + + Replace ``RABBIT_PASS`` with the password you chose for the + ``openstack`` account in ``RabbitMQ``. + + * In the ``[DEFAULT]`` section, set the following config values: + + .. code-block:: ini + + [DEFAULT] + ... + default_share_type = default_share_type + share_name_template = share-%s + rootwrap_config = /etc/manila/rootwrap.conf + api_paste_config = /etc/manila/api-paste.ini + + * In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections, + configure Identity service access: + + .. code-block:: ini + + [DEFAULT] + ... + auth_strategy = keystone + + [keystone_authtoken] + ... + auth_uri = http://controller:5000 + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + project_name = service + username = manila + password = MANILA_PASS + + Replace ``MANILA_PASS`` with the password you chose for the ``manila`` + user in the Identity service. + + * In the ``[DEFAULT]`` section, configure the ``my_ip`` option: + + .. code-block:: ini + + [DEFAULT] + ... + my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS + + Replace ``MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP address + of the management network interface on your share node, + typically 10.0.0.41 for the first node in the + :ref:`example architecture `. + + * Edit the ``/etc/manila/manila.conf`` file, configure nova, cinder and + neutron credentials: + + .. code-block:: ini + + [DEFAULT] + ... + nova_admin_auth_url=http://controller:5000/v2.0 + nova_admin_tenant_name=service + nova_admin_username=nova + nova_admin_password=NOVA_PASS + + cinder_admin_auth_url=http://controller:5000/v2.0 + cinder_admin_tenant_name=service + cinder_admin_username=cinder + cinder_admin_password=CINDER_PASS + + neutron_admin_auth_url=http://controller:5000/v2.0 + neutron_url=http://controller:9696 + neutron_admin_project_name=service + neutron_admin_username=neutron + neutron_admin_password=NEUTRON_PASS + + * In the ``[generic]`` section, configure the generic share driver: + + .. code-block:: ini + + [generic] + share_backend_name = GENERIC + share_driver = manila.share.drivers.generic.GenericShareDriver + + * In the ``[generic]`` section, enable driver handles share servers (DHSS), + setup flavor (m1.small has id=2) and image configurations: + + .. code-block:: ini + + driver_handles_share_servers = True + + service_instance_flavor_id = 2 + + service_image_name = manila-service-image + service_instance_user = manila + service_instance_password = manila + + * In the ``[generic]`` section, configure linux bridge for interface + driver: + + .. code-block:: ini + + interface_driver = manila.network.linux.interface.BridgeInterfaceDriver + + * In the ``[DEFAULT]`` section, enable the generic back end: + + .. note:: + + Back-end names are arbitrary. As an example, this guide + uses the name of the driver as the name of the back end. + + .. code-block:: ini + + [DEFAULT] + ... + enabled_share_backends = generic + enabled_share_protocols = NFS,CIFS + + * In the ``[oslo_concurrency]`` section, configure the lock path: + + .. code-block:: ini + + [oslo_concurrency] + ... + lock_path = /var/lib/manila/tmp + +Finalize installation +--------------------- +#. Prepare manila-share as start/stop service: + + .. only:: obs + + * Start the Share File System service including its dependencies + and configure them to start when the system boots: + + .. code-block:: console + + # systemctl enable openstack-manila-volume.service tgtd.service + # systemctl start openstack-manila-volume.service tgtd.service + + .. only:: rdo + + * Start the Share File System service including its dependencies + and configure them to start when the system boots: + + .. code-block:: console + + # systemctl enable openstack-manila-share.service target.service + # systemctl start openstack-manila-share.service target.service + + .. only:: ubuntu + + * Start the Share File System service including its dependencies: + + .. code-block:: console + + # service manila-share restart + + * By default, the Ubuntu packages create an SQLite database. + Because this configuration uses an SQL database server, + remove the SQLite database file: + + .. code-block:: console + + # rm -f /var/lib/manila/manila.sqlite diff --git a/doc/install-guide/source/manila-verify.rst b/doc/install-guide/source/manila-verify.rst new file mode 100644 index 0000000000..1723616b66 --- /dev/null +++ b/doc/install-guide/source/manila-verify.rst @@ -0,0 +1,29 @@ +.. _manila-verify: + +Verify operation +~~~~~~~~~~~~~~~~ + +Verify operation of the Shared File Systems service. + +.. note:: + + Perform these commands on the controller node. + +#. Source the ``admin`` credentials to gain access to + admin-only CLI commands: + + .. code-block:: console + + $ source admin-openrc.sh + +#. List service components to verify successful launch of each process: + + .. code-block:: console + + $ manila service-list + +------------------+----------------+------+---------+-------+----------------------------+-----------------+ + | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | + +------------------+----------------+------+---------+-------+----------------------------+-----------------+ + | manila-scheduler | controller | nova | enabled | up | 2014-10-18T01:30:54.000000 | None | + | manila-share | share1@generic | nova | enabled | up | 2014-10-18T01:30:57.000000 | None | + +------------------+----------------+------+---------+-------+----------------------------+-----------------+ diff --git a/doc/install-guide/source/manila.rst b/doc/install-guide/source/manila.rst new file mode 100644 index 0000000000..38656a0eee --- /dev/null +++ b/doc/install-guide/source/manila.rst @@ -0,0 +1,37 @@ +.. _manila: + +=========================== +Shared File Systems service +=========================== + +.. toctree:: + + common/get_started_file_storage.rst + manila-controller-install.rst + manila-share-install.rst + manila-verify.rst + manila-next-steps.rst + +The OpenStack Shared File Systems service provides coordinated access to +shared or distributed file systems. The method in which the share is +provisioned and consumed is determined by the Shared File Systems driver, or +drivers in the case of a multi-backend configuration. There are a variety of +drivers that support NFS, CIFS, HDFS and/or protocols as well. +The Shared File Systems API and scheduler services typically run on the +controller nodes. Depending upon the drivers used, the share service can run +on controllers, compute nodes, or storage nodes. + +.. important:: + + For simplicity, this guide describes configuring the Shared File Systems + service to use the ``generic`` back end with the driver handles share + server mode (DHSS) enabled that uses Compute (nova), Networking (neutron) + and Block storage (cinder) services. + Networking service configuration requires the capability of networks being + attached to a public router in order to create share networks. + + Before you proceed, ensure that Compute, Networking and Block storage + services are properly working. For networking service, ensure that option + 2 is properly configured. + +For more information, see the `Configuration Reference `__.