From d5c79a2487e981420998a010b0d1e3da76b98566 Mon Sep 17 00:00:00 2001 From: Thiago Gomes <thiago.gomes@lsbd.ufc.br> Date: Wed, 16 Mar 2016 09:10:38 -0400 Subject: [PATCH] Add Manila deployment document Deploy Manila in kolla Co-Authored-By: Mauricio Lima <mauriciolimab@gmail.com> Change-Id: I1397e0f10dcbcfd182497fbaf0ebe9d5de718cc5 --- doc/index.rst | 5 +- doc/manila-guide.rst | 287 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 290 insertions(+), 2 deletions(-) create mode 100644 doc/manila-guide.rst diff --git a/doc/index.rst b/doc/index.rst index 69f7d4be68..aeb1a13364 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -49,7 +49,8 @@ Kolla Services .. toctree:: :maxdepth: 1 - cinder-guide - swift-guide ceph-guide + cinder-guide ironic-guide + manila-guide + swift-guide diff --git a/doc/manila-guide.rst b/doc/manila-guide.rst new file mode 100644 index 0000000000..04f6cd34bd --- /dev/null +++ b/doc/manila-guide.rst @@ -0,0 +1,287 @@ +Manila in Kolla +=============== + +Overview +-------- +Currently, Kolla can deploy following manila services: + +* manila-api +* manila-scheduler +* manila-share + +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. + +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 shared networks. + +Before you proceed, ensure that Compute, Networking and Block storage +services are properly working. + +Preparation and Deployment +-------------------------- + +Cinder and Ceph are required, enable it in /etc/kolla/globals.yml: + +.. code-block:: console + + enable_cinder: "yes" + enable_ceph: "yes" + +Enable Manila in /etc/kolla/globals.yml: + +.. code-block:: console + + enable_manila: "yes" + +By default Manila uses instance flavor id 100 for its file systems. For +Manila to work, either create a new nova flavor with id 100 (using "nova +flavor-create") or change service_instance_flavor_id to use one of the +default nova flavor ids. +Ex: service_instance_flavor_id = 2 to use nova default flavor m1.small. + +Create or modify the file /etc/kolla/config/manila.conf and add the contents: + +.. code-block:: console + + [generic] + service_instance_flavor_id = 2 + +Verify operation +---------------- + +Verify operation of the Shared File Systems service. 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 | + +------------------+----------------+------+---------+-------+----------------------------+-----------------+ + +Launch an Instance +------------------ + +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. + +Determine the configuration of the share server +----------------------------------------------- + +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 + + # wget http://tarballs.openstack.org/manila-image-elements/images/manila-service-image-master.qcow2 + # glance image-create --name "manila-service-image" \ + --file manila-service-image-master.qcow2 \ + --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 to get id and subnets of the private network: + +.. code-block:: console + + +--------------------------------------+---------+----------------------------------------------------+ + | 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 | + +--------------------------------------+---------+----------------------------------------------------+ + +Create a shared network + +.. 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 flavor (Required if you not defined manila_instance_flavor_id in +/etc/kolla/config/manila.conf file) + +.. code-block:: console + + # nova flavor-create manila-service-flavor 100 128 0 1 + +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 Name | Host | Availability Zone | + +--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+-----------------------------+-------------------+ + | e1e06b14-ba17-48d4-9e0b-ca4d59823166 | demo-share1 | 1 | NFS | available | False | default_share_type | share1@generic#GENERIC | nova | + +--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+-----------------------------+-------------------+ + +Configure user access to the new share before attempting to mount it via the +network: + +.. code-block:: console + + # manila access-allow demo-share1 ip INSTANCE_PRIVATE_NETWORK_IP + +Mount the share from an instance +-------------------------------- + +Get export location from share + +.. code-block:: console + + # manila show demo-share1 + +-----------------------------+----------------------------------------------------------------------+ + | Property | Value | + +-----------------------------+----------------------------------------------------------------------+ + | status | available | + | share_type_name | default_share_type | + | description | None | + | availability_zone | nova | + | share_network_id | fa07a8c3-598d-47b5-8ae2-120248ec837f | + | export_locations | | + | | path = 10.254.0.3:/shares/share-422dc546-8f37-472b-ac3c-d23fe410d1b6 | + | | preferred = False | + | | is_admin_only = False | + | | id = 5894734d-8d9a-49e4-b53e-7154c9ce0882 | + | | share_instance_id = 422dc546-8f37-472b-ac3c-d23fe410d1b6 | + | share_server_id | 4782feef-61c8-4ffb-8d95-69fbcc380a52 | + | host | share1@generic#GENERIC | + | access_rules_status | active | + | snapshot_id | None | + | is_public | False | + | task_state | None | + | snapshot_support | True | + | id | e1e06b14-ba17-48d4-9e0b-ca4d59823166 | + | size | 1 | + | name | demo-share1 | + | share_type | 6e1e803f-1c37-4660-a65a-c1f2b54b6e17 | + | has_replicas | False | + | replication_type | None | + | created_at | 2016-03-15T18:59:12.000000 | + | share_proto | NFS | + | consistency_group_id | None | + | source_cgsnapshot_member_id | None | + | project_id | 9dc02df0f2494286ba0252b3c81c01d0 | + | metadata | {} | + +-----------------------------+----------------------------------------------------------------------+ + + +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.3:/shares/share-422dc546-8f37-472b-ac3c-d23fe410d1b6 ~/test_folder + + +For more information about how to manage shares, see the +`OpenStack User Guide +<http://docs.openstack.org/user-guide/index.html>`__. +