Upgrade the rst convention of the Reference Guide [3]
We upgrade the rst convention by following Documentation Contributor Guide[1]. [1] https://docs.openstack.org/doc-contrib-guide Change-Id: Id480cd24f5eed810e81af0f12e84a4a6db49247d Partially-Implements: blueprint optimize-the-documentation-format
This commit is contained in:
parent
b42b1361ee
commit
0002de177e
@ -5,7 +5,7 @@ Manila in Kolla
|
|||||||
===============
|
===============
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
========
|
~~~~~~~~
|
||||||
Currently, Kolla can deploy following manila services:
|
Currently, Kolla can deploy following manila services:
|
||||||
|
|
||||||
* manila-api
|
* manila-api
|
||||||
@ -19,7 +19,7 @@ management of share types as well as share snapshots if a driver supports
|
|||||||
them.
|
them.
|
||||||
|
|
||||||
Important
|
Important
|
||||||
=========
|
~~~~~~~~~
|
||||||
|
|
||||||
For simplicity, this guide describes configuring the Shared File Systems
|
For simplicity, this guide describes configuring the Shared File Systems
|
||||||
service to use the ``generic`` back end with the driver handles share
|
service to use the ``generic`` back end with the driver handles share
|
||||||
@ -32,21 +32,25 @@ Before you proceed, ensure that Compute, Networking and Block storage
|
|||||||
services are properly working.
|
services are properly working.
|
||||||
|
|
||||||
Preparation and Deployment
|
Preparation and Deployment
|
||||||
==========================
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Cinder and Ceph are required, enable it in ``/etc/kolla/globals.yml``:
|
Cinder and Ceph are required, enable it in ``/etc/kolla/globals.yml``:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
enable_cinder: "yes"
|
enable_cinder: "yes"
|
||||||
enable_ceph: "yes"
|
enable_ceph: "yes"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Enable Manila and generic back end in ``/etc/kolla/globals.yml``:
|
Enable Manila and generic back end in ``/etc/kolla/globals.yml``:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
enable_manila: "yes"
|
enable_manila: "yes"
|
||||||
enable_manila_backend_generic: "yes"
|
enable_manila_backend_generic: "yes"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
By default Manila uses instance flavor id 100 for its file systems. For Manila
|
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 (use *nova flavor-create*)
|
to work, either create a new nova flavor with id 100 (use *nova flavor-create*)
|
||||||
@ -59,27 +63,32 @@ contents:
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
[generic]
|
[generic]
|
||||||
service_instance_flavor_id = 2
|
service_instance_flavor_id = 2
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Verify Operation
|
Verify Operation
|
||||||
================
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Verify operation of the Shared File Systems service. List service components
|
Verify operation of the Shared File Systems service. List service components
|
||||||
to verify successful launch of each process:
|
to verify successful launch of each process:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# manila service-list
|
# manila service-list
|
||||||
+------------------+----------------+------+---------+-------+----------------------------+-----------------+
|
|
||||||
| Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
|
+------------------+----------------+------+---------+-------+----------------------------+-----------------+
|
||||||
+------------------+----------------+------+---------+-------+----------------------------+-----------------+
|
| 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 |
|
| 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 |
|
||||||
|
+------------------+----------------+------+---------+-------+----------------------------+-----------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Launch an Instance
|
Launch an Instance
|
||||||
==================
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Before being able to create a share, the manila with the generic driver and the
|
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
|
DHSS mode enabled requires the definition of at least an image, a network and a
|
||||||
@ -88,205 +97,232 @@ configuration, the share server is an instance where NFS/CIFS shares are
|
|||||||
served.
|
served.
|
||||||
|
|
||||||
Determine the configuration of the share server
|
Determine the configuration of the share server
|
||||||
===============================================
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Create a default share type before running manila-share service:
|
Create a default share type before running manila-share service:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# manila type-create default_share_type True
|
# manila type-create default_share_type True
|
||||||
+--------------------------------------+--------------------+------------+------------+-------------------------------------+-------------------------+
|
|
||||||
| ID | Name | Visibility | is_default | required_extra_specs | optional_extra_specs |
|
+--------------------------------------+--------------------+------------+------------+-------------------------------------+-------------------------+
|
||||||
+--------------------------------------+--------------------+------------+------------+-------------------------------------+-------------------------+
|
| 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 |
|
+--------------------------------------+--------------------+------------+------------+-------------------------------------+-------------------------+
|
||||||
+--------------------------------------+--------------------+------------+------------+-------------------------------------+-------------------------+
|
| 8a35da28-0f74-490d-afff-23664ecd4f01 | default_share_type | public | - | driver_handles_share_servers : True | snapshot_support : True |
|
||||||
|
+--------------------------------------+--------------------+------------+------------+-------------------------------------+-------------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Create a manila share server image to the Image service:
|
Create a manila share server image to the Image service:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# wget http://tarballs.openstack.org/manila-image-elements/images/manila-service-image-master.qcow2
|
# wget http://tarballs.openstack.org/manila-image-elements/images/manila-service-image-master.qcow2
|
||||||
# glance image-create --name "manila-service-image" \
|
# glance image-create --name "manila-service-image" \
|
||||||
--file manila-service-image-master.qcow2 \
|
--file manila-service-image-master.qcow2 \
|
||||||
--disk-format qcow2 --container-format bare \
|
--disk-format qcow2 --container-format bare \
|
||||||
--visibility public --progress
|
--visibility public --progress
|
||||||
[=============================>] 100%
|
|
||||||
+------------------+--------------------------------------+
|
[=============================>] 100%
|
||||||
| Property | Value |
|
+------------------+--------------------------------------+
|
||||||
+------------------+--------------------------------------+
|
| Property | Value |
|
||||||
| checksum | 48a08e746cf0986e2bc32040a9183445 |
|
+------------------+--------------------------------------+
|
||||||
| container_format | bare |
|
| checksum | 48a08e746cf0986e2bc32040a9183445 |
|
||||||
| created_at | 2016-01-26T19:52:24Z |
|
| container_format | bare |
|
||||||
| disk_format | qcow2 |
|
| created_at | 2016-01-26T19:52:24Z |
|
||||||
| id | 1fc7f29e-8fe6-44ef-9c3c-15217e83997c |
|
| disk_format | qcow2 |
|
||||||
| min_disk | 0 |
|
| id | 1fc7f29e-8fe6-44ef-9c3c-15217e83997c |
|
||||||
| min_ram | 0 |
|
| min_disk | 0 |
|
||||||
| name | manila-service-image |
|
| min_ram | 0 |
|
||||||
| owner | e2c965830ecc4162a002bf16ddc91ab7 |
|
| name | manila-service-image |
|
||||||
| protected | False |
|
| owner | e2c965830ecc4162a002bf16ddc91ab7 |
|
||||||
| size | 306577408 |
|
| protected | False |
|
||||||
| status | active |
|
| size | 306577408 |
|
||||||
| tags | [] |
|
| status | active |
|
||||||
| updated_at | 2016-01-26T19:52:28Z |
|
| tags | [] |
|
||||||
| virtual_size | None |
|
| updated_at | 2016-01-26T19:52:28Z |
|
||||||
| visibility | public |
|
| virtual_size | None |
|
||||||
+------------------+--------------------------------------+
|
| visibility | public |
|
||||||
|
+------------------+--------------------------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
List available networks to get id and subnets of the private network:
|
List available networks to get id and subnets of the private network:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
+--------------------------------------+---------+----------------------------------------------------+
|
+--------------------------------------+---------+----------------------------------------------------+
|
||||||
| id | name | subnets |
|
| id | name | subnets |
|
||||||
+--------------------------------------+---------+----------------------------------------------------+
|
+--------------------------------------+---------+----------------------------------------------------+
|
||||||
| 0e62efcd-8cee-46c7-b163-d8df05c3c5ad | public | 5cc70da8-4ee7-4565-be53-b9c011fca011 10.3.31.0/24 |
|
| 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 |
|
| 7c6f9b37-76b4-463e-98d8-27e5686ed083 | private | 3482f524-8bff-4871-80d4-5774c2730728 172.16.1.0/24 |
|
||||||
+--------------------------------------+---------+----------------------------------------------------+
|
+--------------------------------------+---------+----------------------------------------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Create a shared network
|
Create a shared network
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# manila share-network-create --name demo-share-network1 \
|
# manila share-network-create --name demo-share-network1 \
|
||||||
--neutron-net-id PRIVATE_NETWORK_ID \
|
--neutron-net-id PRIVATE_NETWORK_ID \
|
||||||
--neutron-subnet-id PRIVATE_NETWORK_SUBNET_ID
|
--neutron-subnet-id PRIVATE_NETWORK_SUBNET_ID
|
||||||
+-------------------+--------------------------------------+
|
|
||||||
| Property | Value |
|
+-------------------+--------------------------------------+
|
||||||
+-------------------+--------------------------------------+
|
| Property | Value |
|
||||||
| name | demo-share-network1 |
|
+-------------------+--------------------------------------+
|
||||||
| segmentation_id | None |
|
| name | demo-share-network1 |
|
||||||
| created_at | 2016-01-26T20:03:41.877838 |
|
| segmentation_id | None |
|
||||||
| neutron_subnet_id | 3482f524-8bff-4871-80d4-5774c2730728 |
|
| created_at | 2016-01-26T20:03:41.877838 |
|
||||||
| updated_at | None |
|
| neutron_subnet_id | 3482f524-8bff-4871-80d4-5774c2730728 |
|
||||||
| network_type | None |
|
| updated_at | None |
|
||||||
| neutron_net_id | 7c6f9b37-76b4-463e-98d8-27e5686ed083 |
|
| network_type | None |
|
||||||
| ip_version | None |
|
| neutron_net_id | 7c6f9b37-76b4-463e-98d8-27e5686ed083 |
|
||||||
| nova_net_id | None |
|
| ip_version | None |
|
||||||
| cidr | None |
|
| nova_net_id | None |
|
||||||
| project_id | e2c965830ecc4162a002bf16ddc91ab7 |
|
| cidr | None |
|
||||||
| id | 58b2f0e6-5509-4830-af9c-97f525a31b14 |
|
| project_id | e2c965830ecc4162a002bf16ddc91ab7 |
|
||||||
| description | None |
|
| id | 58b2f0e6-5509-4830-af9c-97f525a31b14 |
|
||||||
+-------------------+--------------------------------------+
|
| description | None |
|
||||||
|
+-------------------+--------------------------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Create a flavor (**Required** if you not defined *manila_instance_flavor_id* in
|
Create a flavor (**Required** if you not defined *manila_instance_flavor_id* in
|
||||||
``/etc/kolla/config/manila-share.conf`` file)
|
``/etc/kolla/config/manila-share.conf`` file)
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# nova flavor-create manila-service-flavor 100 128 0 1
|
# nova flavor-create manila-service-flavor 100 128 0 1
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Create a share
|
Create a share
|
||||||
==============
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Create a NFS share using the share network:
|
Create a NFS share using the share network:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# manila create NFS 1 --name demo-share1 --share-network demo-share-network1
|
# manila create NFS 1 --name demo-share1 --share-network demo-share-network1
|
||||||
+-----------------------------+--------------------------------------+
|
|
||||||
| Property | Value |
|
+-----------------------------+--------------------------------------+
|
||||||
+-----------------------------+--------------------------------------+
|
| Property | Value |
|
||||||
| status | None |
|
+-----------------------------+--------------------------------------+
|
||||||
| share_type_name | None |
|
| status | None |
|
||||||
| description | None |
|
| share_type_name | None |
|
||||||
| availability_zone | None |
|
| description | None |
|
||||||
| share_network_id | None |
|
| availability_zone | None |
|
||||||
| export_locations | [] |
|
| share_network_id | None |
|
||||||
| host | None |
|
| export_locations | [] |
|
||||||
| snapshot_id | None |
|
| host | None |
|
||||||
| is_public | False |
|
| snapshot_id | None |
|
||||||
| task_state | None |
|
| is_public | False |
|
||||||
| snapshot_support | True |
|
| task_state | None |
|
||||||
| id | 016ca18f-bdd5-48e1-88c0-782e4c1aa28c |
|
| snapshot_support | True |
|
||||||
| size | 1 |
|
| id | 016ca18f-bdd5-48e1-88c0-782e4c1aa28c |
|
||||||
| name | demo-share1 |
|
| size | 1 |
|
||||||
| share_type | None |
|
| name | demo-share1 |
|
||||||
| created_at | 2016-01-26T20:08:50.502877 |
|
| share_type | None |
|
||||||
| export_location | None |
|
| created_at | 2016-01-26T20:08:50.502877 |
|
||||||
| share_proto | NFS |
|
| export_location | None |
|
||||||
| consistency_group_id | None |
|
| share_proto | NFS |
|
||||||
| source_cgsnapshot_member_id | None |
|
| consistency_group_id | None |
|
||||||
| project_id | 48e8c35b2ac6495d86d4be61658975e7 |
|
| source_cgsnapshot_member_id | None |
|
||||||
| metadata | {} |
|
| project_id | 48e8c35b2ac6495d86d4be61658975e7 |
|
||||||
+-----------------------------+--------------------------------------+
|
| metadata | {} |
|
||||||
|
+-----------------------------+--------------------------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
After some time, the share status should change from ``creating``
|
After some time, the share status should change from ``creating``
|
||||||
to ``available``:
|
to ``available``:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# manila list
|
# manila list
|
||||||
+--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+-----------------------------+-------------------+
|
|
||||||
| ID | Name | Size | Share Proto | Status | Is Public | Share Type Name | Host | Availability Zone |
|
+--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+-----------------------------+-------------------+
|
||||||
+--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+-----------------------------+-------------------+
|
| 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 |
|
+--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+-----------------------------+-------------------+
|
||||||
+--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+-----------------------------+-------------------+
|
| e1e06b14-ba17-48d4-9e0b-ca4d59823166 | demo-share1 | 1 | NFS | available | False | default_share_type | share1@generic#GENERIC | nova |
|
||||||
|
+--------------------------------------+-------------+------+-------------+-----------+-----------+--------------------------------------+-----------------------------+-------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Configure user access to the new share before attempting to mount it via the
|
Configure user access to the new share before attempting to mount it via the
|
||||||
network:
|
network:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# manila access-allow demo-share1 ip INSTANCE_PRIVATE_NETWORK_IP
|
# manila access-allow demo-share1 ip INSTANCE_PRIVATE_NETWORK_IP
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Mount the share from an instance
|
Mount the share from an instance
|
||||||
================================
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Get export location from share
|
Get export location from share
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# manila show demo-share1
|
# 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 | {} |
|
|
||||||
+-----------------------------+----------------------------------------------------------------------+
|
|
||||||
|
|
||||||
|
+-----------------------------+----------------------------------------------------------------------+
|
||||||
|
| 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 | {} |
|
||||||
|
+-----------------------------+----------------------------------------------------------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Create a folder where the mount will be placed:
|
Create a folder where the mount will be placed:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# mkdir ~/test_folder
|
# mkdir ~/test_folder
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Mount the NFS share in the instance using the export location of the share:
|
Mount the NFS share in the instance using the export location of the share:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
# mount -v 10.254.0.3:/shares/share-422dc546-8f37-472b-ac3c-d23fe410d1b6 ~/test_folder
|
# mount -v 10.254.0.3:/shares/share-422dc546-8f37-472b-ac3c-d23fe410d1b6 ~/test_folder
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Share Migration
|
Share Migration
|
||||||
===============
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
As administrator, you can migrate a share with its data from one location to
|
As administrator, you can migrate a share with its data from one location to
|
||||||
another in a manner that is transparent to users and workloads. You can use
|
another in a manner that is transparent to users and workloads. You can use
|
||||||
@ -297,25 +333,29 @@ provider network for ``data_node_access_ip``.
|
|||||||
|
|
||||||
Modify the file ``/etc/kolla/config/manila.conf`` and add the contents:
|
Modify the file ``/etc/kolla/config/manila.conf`` and add the contents:
|
||||||
|
|
||||||
.. code-block:: console
|
.. path /etc/kolla/config/manila.conf
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
data_node_access_ip = 10.10.10.199
|
data_node_access_ip = 10.10.10.199
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Share migration requires have more than one back end configured.
|
Share migration requires have more than one back end configured.
|
||||||
For details, see :ref:`hnas_configure_multiple_back_ends`.
|
For details, see :ref:`hnas_configure_multiple_back_ends`.
|
||||||
|
|
||||||
Use the manila migration command, as shown in the following example:
|
Use the manila migration command, as shown in the following example:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
manila migration-start --preserve-metadata True|False \
|
# manila migration-start --preserve-metadata True|False \
|
||||||
--writable True|False --force_host_assisted_migration True|False \
|
--writable True|False --force_host_assisted_migration True|False \
|
||||||
--new_share_type share_type --new_share_network share_network \
|
--new_share_type share_type --new_share_network share_network \
|
||||||
shareID destinationHost
|
shareID destinationHost
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
- ``--force-host-copy``: Forces the generic host-based migration mechanism and
|
- ``--force-host-copy``: Forces the generic host-based migration mechanism and
|
||||||
bypasses any driver optimizations.
|
bypasses any driver optimizations.
|
||||||
@ -328,28 +368,31 @@ Use the manila migration command, as shown in the following example:
|
|||||||
Checking share migration progress
|
Checking share migration progress
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
Use the ``manila migration-get-progress shareID`` command to check progress.
|
Use the :command:`manila migration-get-progress shareID` command to check progress.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
manila migration-get-progress demo-share1
|
# manila migration-get-progress demo-share1
|
||||||
+----------------+-----------------------+
|
|
||||||
| Property | Value |
|
|
||||||
+----------------+-----------------------+
|
|
||||||
| task_state | data_copying_starting |
|
|
||||||
| total_progress | 0 |
|
|
||||||
+----------------+-----------------------+
|
|
||||||
|
|
||||||
manila migration-get-progress demo-share1
|
+----------------+-----------------------+
|
||||||
+----------------+-------------------------+
|
| Property | Value |
|
||||||
| Property | Value |
|
+----------------+-----------------------+
|
||||||
+----------------+-------------------------+
|
| task_state | data_copying_starting |
|
||||||
| task_state | data_copying_completing |
|
| total_progress | 0 |
|
||||||
| total_progress | 100 |
|
+----------------+-----------------------+
|
||||||
+----------------+-------------------------+
|
|
||||||
|
|
||||||
Use the ``manila migration-complete shareID`` command to complete share
|
# manila migration-get-progress demo-share1
|
||||||
migration process
|
+----------------+-------------------------+
|
||||||
|
| Property | Value |
|
||||||
|
+----------------+-------------------------+
|
||||||
|
| task_state | data_copying_completing |
|
||||||
|
| total_progress | 100 |
|
||||||
|
+----------------+-------------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
|
Use the :command:`manila migration-complete shareID` command to complete share
|
||||||
|
migration process.
|
||||||
|
|
||||||
For more information about how to manage shares, see the
|
For more information about how to manage shares, see the
|
||||||
`Manage shares
|
`Manage shares
|
||||||
|
@ -5,7 +5,7 @@ Hitachi NAS Platform File Services Driver for OpenStack
|
|||||||
========================================================
|
========================================================
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
========
|
~~~~~~~~
|
||||||
The Hitachi NAS Platform File Services Driver for OpenStack
|
The Hitachi NAS Platform File Services Driver for OpenStack
|
||||||
provides NFS Shared File Systems to OpenStack.
|
provides NFS Shared File Systems to OpenStack.
|
||||||
|
|
||||||
@ -54,12 +54,12 @@ The following operations are supported:
|
|||||||
|
|
||||||
|
|
||||||
Preparation and Deployment
|
Preparation and Deployment
|
||||||
==========================
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The manila-share node only requires the HNAS EVS data interface if you
|
The manila-share node only requires the HNAS EVS data interface if you
|
||||||
plan to use share migration.
|
plan to use share migration.
|
||||||
|
|
||||||
.. important ::
|
.. important ::
|
||||||
|
|
||||||
@ -75,10 +75,12 @@ Configuration on Kolla deployment
|
|||||||
Enable Shared File Systems service and HNAS driver in
|
Enable Shared File Systems service and HNAS driver in
|
||||||
``/etc/kolla/globals.yml``
|
``/etc/kolla/globals.yml``
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: yaml
|
||||||
|
|
||||||
enable_manila: "yes"
|
enable_manila: "yes"
|
||||||
enable_manila_backend_hnas: "yes"
|
enable_manila_backend_hnas: "yes"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Configure the OpenStack networking so it can reach HNAS Management
|
Configure the OpenStack networking so it can reach HNAS Management
|
||||||
interface and HNAS EVS Data interface.
|
interface and HNAS EVS Data interface.
|
||||||
@ -88,31 +90,31 @@ ports eth1 and eth2 associated respectively:
|
|||||||
|
|
||||||
In ``/etc/kolla/globals.yml`` set:
|
In ``/etc/kolla/globals.yml`` set:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: yaml
|
||||||
|
|
||||||
neutron_bridge_name: "br-ex,br-ex2"
|
neutron_bridge_name: "br-ex,br-ex2"
|
||||||
neutron_external_interface: "eth1,eth2"
|
neutron_external_interface: "eth1,eth2"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
eth1: Neutron external interface.
|
``eth1`` is used to Neutron external interface and ``eth2`` is
|
||||||
eth2: HNAS EVS data interface.
|
used to HNAS EVS data interface.
|
||||||
|
|
||||||
|
|
||||||
HNAS back end configuration
|
HNAS back end configuration
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
In ``/etc/kolla/globals.yml`` uncomment and set:
|
In ``/etc/kolla/globals.yml`` uncomment and set:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: yaml
|
||||||
|
|
||||||
hnas_ip: "172.24.44.15"
|
|
||||||
hnas_user: "supervisor"
|
|
||||||
hnas_password: "supervisor"
|
|
||||||
hnas_evs_id: "1"
|
|
||||||
hnas_evs_ip: "10.0.1.20"
|
|
||||||
hnas_file_system_name: "FS-Manila"
|
|
||||||
|
|
||||||
|
hnas_ip: "172.24.44.15"
|
||||||
|
hnas_user: "supervisor"
|
||||||
|
hnas_password: "supervisor"
|
||||||
|
hnas_evs_id: "1"
|
||||||
|
hnas_evs_ip: "10.0.1.20"
|
||||||
|
hnas_file_system_name: "FS-Manila"
|
||||||
|
|
||||||
Configuration on HNAS
|
Configuration on HNAS
|
||||||
---------------------
|
---------------------
|
||||||
@ -123,7 +125,9 @@ List the available tenants:
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ openstack project list
|
$ openstack project list
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Create a network to the given tenant (service), providing the tenant ID,
|
Create a network to the given tenant (service), providing the tenant ID,
|
||||||
a name for the network, the name of the physical network over which the
|
a name for the network, the name of the physical network over which the
|
||||||
@ -132,14 +136,18 @@ which the virtual network is implemented:
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ neutron net-create --tenant-id <SERVICE_ID> hnas_network \
|
$ neutron net-create --tenant-id <SERVICE_ID> hnas_network \
|
||||||
--provider:physical_network=physnet2 --provider:network_type=flat
|
--provider:physical_network=physnet2 --provider:network_type=flat
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
*Optional* - List available networks:
|
*Optional* - List available networks:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ neutron net-list
|
$ neutron net-list
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Create a subnet to the same tenant (service), the gateway IP of this subnet,
|
Create a subnet to the same tenant (service), the gateway IP of this subnet,
|
||||||
a name for the subnet, the network ID created before, and the CIDR of
|
a name for the subnet, the network ID created before, and the CIDR of
|
||||||
@ -147,28 +155,34 @@ subnet:
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ neutron subnet-create --tenant-id <SERVICE_ID> --gateway <GATEWAY> \
|
$ neutron subnet-create --tenant-id <SERVICE_ID> --gateway <GATEWAY> \
|
||||||
--name hnas_subnet <NETWORK_ID> <SUBNET_CIDR>
|
--name hnas_subnet <NETWORK_ID> <SUBNET_CIDR>
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
*Optional* - List available subnets:
|
*Optional* - List available subnets:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ neutron subnet-list
|
$ neutron subnet-list
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Add the subnet interface to a router, providing the router ID and subnet
|
Add the subnet interface to a router, providing the router ID and subnet
|
||||||
ID created before:
|
ID created before:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ neutron router-interface-add <ROUTER_ID> <SUBNET_ID>
|
$ neutron router-interface-add <ROUTER_ID> <SUBNET_ID>
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Create a file system on HNAS. See the `Hitachi HNAS reference <http://www.hds.com/assets/pdf/hus-file-module-file-services-administration-guide.pdf>`_.
|
Create a file system on HNAS. See the `Hitachi HNAS reference <http://www.hds.com/assets/pdf/hus-file-module-file-services-administration-guide.pdf>`_.
|
||||||
|
|
||||||
.. important ::
|
.. important ::
|
||||||
|
|
||||||
Make sure that the filesystem is not created as a replication target.
|
Make sure that the filesystem is not created as a replication target.
|
||||||
Refer official HNAS administration guide.
|
Refer official HNAS administration guide.
|
||||||
|
|
||||||
Prepare the HNAS EVS network.
|
Prepare the HNAS EVS network.
|
||||||
|
|
||||||
@ -176,99 +190,110 @@ Create a route in HNAS to the tenant network:
|
|||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ console-context --evs <EVS_ID_IN_USE> route-net-add --gateway <FLAT_NETWORK_GATEWAY> \
|
$ console-context --evs <EVS_ID_IN_USE> route-net-add --gateway <FLAT_NETWORK_GATEWAY> \
|
||||||
<TENANT_PRIVATE_NETWORK>
|
<TENANT_PRIVATE_NETWORK>
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
.. important ::
|
.. important ::
|
||||||
|
|
||||||
Make sure multi-tenancy is enabled and routes are configured per EVS.
|
Make sure multi-tenancy is enabled and routes are configured per EVS.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ console-context --evs 3 route-net-add --gateway 192.168.1.1 \
|
$ console-context --evs 3 route-net-add --gateway 192.168.1.1 \
|
||||||
10.0.0.0/24
|
10.0.0.0/24
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Create a share
|
Create a share
|
||||||
==============
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Create a default share type before running manila-share service:
|
Create a default share type before running manila-share service:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ manila type-create default_share_hitachi False
|
$ manila type-create default_share_hitachi False
|
||||||
|
|
||||||
+--------------------------------------+-----------------------+------------+------------+--------------------------------------+-------------------------+
|
+--------------------------------------+-----------------------+------------+------------+--------------------------------------+-------------------------+
|
||||||
| ID | Name | visibility | is_default | required_extra_specs | optional_extra_specs |
|
| ID | Name | visibility | is_default | required_extra_specs | optional_extra_specs |
|
||||||
+--------------------------------------+-----------------------+------------+------------+--------------------------------------+-------------------------+
|
+--------------------------------------+-----------------------+------------+------------+--------------------------------------+-------------------------+
|
||||||
| 3e54c8a2-1e50-455e-89a0-96bb52876c35 | default_share_hitachi | public | - | driver_handles_share_servers : False | snapshot_support : True |
|
| 3e54c8a2-1e50-455e-89a0-96bb52876c35 | default_share_hitachi | public | - | driver_handles_share_servers : False | snapshot_support : True |
|
||||||
+--------------------------------------+-----------------------+------------+------------+--------------------------------------+-------------------------+
|
+--------------------------------------+-----------------------+------------+------------+--------------------------------------+-------------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Create a NFS share using the HNAS back end:
|
Create a NFS share using the HNAS back end:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
manila create NFS 1 \
|
$ manila create NFS 1 \
|
||||||
--name mysharehnas \
|
--name mysharehnas \
|
||||||
--description "My Manila share" \
|
--description "My Manila share" \
|
||||||
--share-type default_share_hitachi
|
--share-type default_share_hitachi
|
||||||
|
|
||||||
Verify Operation
|
.. end
|
||||||
|
|
||||||
|
Verify Operation:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ manila list
|
$ manila list
|
||||||
|
|
||||||
+--------------------------------------+----------------+------+-------------+-----------+-----------+-----------------------+-------------------------+-------------------+
|
+--------------------------------------+----------------+------+-------------+-----------+-----------+-----------------------+-------------------------+-------------------+
|
||||||
| ID | Name | Size | Share Proto | Status | Is Public | Share Type Name | Host | Availability Zone |
|
| ID | Name | Size | Share Proto | Status | Is Public | Share Type Name | Host | Availability Zone |
|
||||||
+--------------------------------------+----------------+------+-------------+-----------+-----------+-----------------------+-------------------------+-------------------+
|
+--------------------------------------+----------------+------+-------------+-----------+-----------+-----------------------+-------------------------+-------------------+
|
||||||
| 721c0a6d-eea6-41af-8c10-72cd98985203 | mysharehnas | 1 | NFS | available | False | default_share_hitachi | control@hnas1#HNAS1 | nova |
|
| 721c0a6d-eea6-41af-8c10-72cd98985203 | mysharehnas | 1 | NFS | available | False | default_share_hitachi | control@hnas1#HNAS1 | nova |
|
||||||
+--------------------------------------+----------------+------+-------------+-----------+-----------+-----------------------+-------------------------+-------------------+
|
+--------------------------------------+----------------+------+-------------+-----------+-----------+-----------------------+-------------------------+-------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ manila show mysharehnas
|
$ manila show mysharehnas
|
||||||
|
|
||||||
+-----------------------------+-----------------------------------------------------------------+
|
+-----------------------------+-----------------------------------------------------------------+
|
||||||
| Property | Value |
|
| Property | Value |
|
||||||
+-----------------------------+-----------------------------------------------------------------+
|
+-----------------------------+-----------------------------------------------------------------+
|
||||||
| status | available |
|
| status | available |
|
||||||
| share_type_name | default_share_hitachi |
|
| share_type_name | default_share_hitachi |
|
||||||
| description | My Manila share |
|
| description | My Manila share |
|
||||||
| availability_zone | nova |
|
| availability_zone | nova |
|
||||||
| share_network_id | None |
|
| share_network_id | None |
|
||||||
| export_locations | |
|
| export_locations | |
|
||||||
| | path = 172.24.53.1:/shares/45ed6670-688b-4cf0-bfe7-34956648fb84 |
|
| | path = 172.24.53.1:/shares/45ed6670-688b-4cf0-bfe7-34956648fb84 |
|
||||||
| | preferred = False |
|
| | preferred = False |
|
||||||
| | is_admin_only = False |
|
| | is_admin_only = False |
|
||||||
| | id = e81e716f-f1bd-47b2-8a56-2c2f9e33a98e |
|
| | id = e81e716f-f1bd-47b2-8a56-2c2f9e33a98e |
|
||||||
| | share_instance_id = 45ed6670-688b-4cf0-bfe7-34956648fb84 |
|
| | share_instance_id = 45ed6670-688b-4cf0-bfe7-34956648fb84 |
|
||||||
| share_server_id | None |
|
| share_server_id | None |
|
||||||
| host | control@hnas1#HNAS1 |
|
| host | control@hnas1#HNAS1 |
|
||||||
| access_rules_status | active |
|
| access_rules_status | active |
|
||||||
| snapshot_id | None |
|
| snapshot_id | None |
|
||||||
| is_public | False |
|
| is_public | False |
|
||||||
| task_state | None |
|
| task_state | None |
|
||||||
| snapshot_support | True |
|
| snapshot_support | True |
|
||||||
| id | 721c0a6d-eea6-41af-8c10-72cd98985203 |
|
| id | 721c0a6d-eea6-41af-8c10-72cd98985203 |
|
||||||
| size | 1 |
|
| size | 1 |
|
||||||
| user_id | ba7f6d543713488786b4b8cb093e7873 |
|
| user_id | ba7f6d543713488786b4b8cb093e7873 |
|
||||||
| name | mysharehnas |
|
| name | mysharehnas |
|
||||||
| share_type | 3e54c8a2-1e50-455e-89a0-96bb52876c35 |
|
| share_type | 3e54c8a2-1e50-455e-89a0-96bb52876c35 |
|
||||||
| has_replicas | False |
|
| has_replicas | False |
|
||||||
| replication_type | None |
|
| replication_type | None |
|
||||||
| created_at | 2016-10-14T14:50:47.000000 |
|
| created_at | 2016-10-14T14:50:47.000000 |
|
||||||
| share_proto | NFS |
|
| share_proto | NFS |
|
||||||
| consistency_group_id | None |
|
| consistency_group_id | None |
|
||||||
| source_cgsnapshot_member_id | None |
|
| source_cgsnapshot_member_id | None |
|
||||||
| project_id | c3810d8bcc3346d0bdc8100b09abbbf1 |
|
| project_id | c3810d8bcc3346d0bdc8100b09abbbf1 |
|
||||||
| metadata | {} |
|
| metadata | {} |
|
||||||
+-----------------------------+-----------------------------------------------------------------+
|
+-----------------------------+-----------------------------------------------------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
.. _hnas_configure_multiple_back_ends:
|
.. _hnas_configure_multiple_back_ends:
|
||||||
|
|
||||||
Configure multiple back ends
|
Configure multiple back ends
|
||||||
============================
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
An administrator can configure an instance of Manila to provision shares from
|
An administrator can configure an instance of Manila to provision shares from
|
||||||
one or more back ends. Each back end leverages an instance of a vendor-specific
|
one or more back ends. Each back end leverages an instance of a vendor-specific
|
||||||
@ -283,45 +308,51 @@ the default share backends before deployment.
|
|||||||
|
|
||||||
Modify the file ``/etc/kolla/config/manila.conf`` and add the contents:
|
Modify the file ``/etc/kolla/config/manila.conf`` and add the contents:
|
||||||
|
|
||||||
.. code-block:: console
|
.. path /etc/kolla/config/manila.conf
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
enabled_share_backends = generic,hnas1,hnas2
|
enabled_share_backends = generic,hnas1,hnas2
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Modify the file ``/etc/kolla/config/manila-share.conf`` and add the contents:
|
Modify the file ``/etc/kolla/config/manila-share.conf`` and add the contents:
|
||||||
|
|
||||||
.. code-block:: console
|
.. path /etc/kolla/config/manila-share.conf
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
[generic]
|
[generic]
|
||||||
share_driver = manila.share.drivers.generic.GenericShareDriver
|
share_driver = manila.share.drivers.generic.GenericShareDriver
|
||||||
interface_driver = manila.network.linux.interface.OVSInterfaceDriver
|
interface_driver = manila.network.linux.interface.OVSInterfaceDriver
|
||||||
driver_handles_share_servers = True
|
driver_handles_share_servers = True
|
||||||
service_instance_password = manila
|
service_instance_password = manila
|
||||||
service_instance_user = manila
|
service_instance_user = manila
|
||||||
service_image_name = manila-service-image
|
service_image_name = manila-service-image
|
||||||
share_backend_name = GENERIC
|
share_backend_name = GENERIC
|
||||||
|
|
||||||
[hnas1]
|
[hnas1]
|
||||||
share_backend_name = HNAS1
|
share_backend_name = HNAS1
|
||||||
share_driver = manila.share.drivers.hitachi.hnas.driver.HitachiHNASDriver
|
share_driver = manila.share.drivers.hitachi.hnas.driver.HitachiHNASDriver
|
||||||
driver_handles_share_servers = False
|
driver_handles_share_servers = False
|
||||||
hitachi_hnas_ip = <hnas_ip>
|
hitachi_hnas_ip = <hnas_ip>
|
||||||
hitachi_hnas_user = <user>
|
hitachi_hnas_user = <user>
|
||||||
hitachi_hnas_password = <password>
|
hitachi_hnas_password = <password>
|
||||||
hitachi_hnas_evs_id = <evs_id>
|
hitachi_hnas_evs_id = <evs_id>
|
||||||
hitachi_hnas_evs_ip = <evs_ip>
|
hitachi_hnas_evs_ip = <evs_ip>
|
||||||
hitachi_hnas_file_system_name = FS-Manila1
|
hitachi_hnas_file_system_name = FS-Manila1
|
||||||
|
|
||||||
[hnas2]
|
[hnas2]
|
||||||
share_backend_name = HNAS2
|
share_backend_name = HNAS2
|
||||||
share_driver = manila.share.drivers.hitachi.hnas.driver.HitachiHNASDriver
|
share_driver = manila.share.drivers.hitachi.hnas.driver.HitachiHNASDriver
|
||||||
driver_handles_share_servers = False
|
driver_handles_share_servers = False
|
||||||
hitachi_hnas_ip = <hnas_ip>
|
hitachi_hnas_ip = <hnas_ip>
|
||||||
hitachi_hnas_user = <user>
|
hitachi_hnas_user = <user>
|
||||||
hitachi_hnas_password = <password>
|
hitachi_hnas_password = <password>
|
||||||
hitachi_hnas_evs_id = <evs_id>
|
hitachi_hnas_evs_id = <evs_id>
|
||||||
hitachi_hnas_evs_ip = <evs_ip>
|
hitachi_hnas_evs_ip = <evs_ip>
|
||||||
hitachi_hnas_file_system_name = FS-Manila2
|
hitachi_hnas_file_system_name = FS-Manila2
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
For more information about how to manage shares, see the
|
For more information about how to manage shares, see the
|
||||||
`Manage shares
|
`Manage shares
|
||||||
|
@ -1,8 +1,16 @@
|
|||||||
.. _networking-guide:
|
.. _networking-guide:
|
||||||
|
|
||||||
==========================
|
===================
|
||||||
|
Networking in Kolla
|
||||||
|
===================
|
||||||
|
|
||||||
|
Kolla deploys Neutron by default as OpenStack networking component. This section
|
||||||
|
describes configuring and running Neutron extensions like LBaaS, Networking-SFC,
|
||||||
|
QoS, and so on.
|
||||||
|
|
||||||
Enabling Provider Networks
|
Enabling Provider Networks
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
Provider networks allow to connect compute instances directly to physical
|
Provider networks allow to connect compute instances directly to physical
|
||||||
networks avoiding tunnels. This is necessary for example for some performance
|
networks avoiding tunnels. This is necessary for example for some performance
|
||||||
critical applications. Only administrators of OpenStack can create such
|
critical applications. Only administrators of OpenStack can create such
|
||||||
@ -12,54 +20,52 @@ DVR mode networking. Normal tenant non-DVR networking does not need external
|
|||||||
bridge on compute hosts and therefore operators don't need additional
|
bridge on compute hosts and therefore operators don't need additional
|
||||||
dedicated network interface.
|
dedicated network interface.
|
||||||
|
|
||||||
To enable provider networks modify the configuration
|
To enable provider networks, modify the ``/etc/kolla/globals.yml`` file
|
||||||
file ``/etc/kolla/globals.yml``:
|
as the following example shows:
|
||||||
|
|
||||||
::
|
.. code-block:: yaml
|
||||||
|
|
||||||
enable_neutron_provider_networks: "yes"
|
enable_neutron_provider_networks: "yes"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
===========================
|
|
||||||
Enabling Neutron Extensions
|
Enabling Neutron Extensions
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
Overview
|
|
||||||
========
|
|
||||||
Kolla deploys Neutron by default as OpenStack networking component. This guide
|
|
||||||
describes configuring and running Neutron extensions like LBaaS,
|
|
||||||
Networking-SFC, QoS, etc.
|
|
||||||
|
|
||||||
Networking-SFC
|
Networking-SFC
|
||||||
==============
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Preparation and deployment
|
Preparation and deployment
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
Modify the configuration file ``/etc/kolla/globals.yml`` and change
|
Modify the ``/etc/kolla/globals.yml`` file as the following example shows:
|
||||||
the following:
|
|
||||||
|
|
||||||
::
|
.. code-block:: yaml
|
||||||
|
|
||||||
enable_neutron_sfc: "yes"
|
enable_neutron_sfc: "yes"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Verification
|
Verification
|
||||||
------------
|
------------
|
||||||
|
|
||||||
For setting up a testbed environment and creating a port chain, please refer
|
For setting up a testbed environment and creating a port chain, please refer
|
||||||
to `networking-sfc documentation <https://docs.openstack.org/networking-sfc/latest/contributor/system_design_and_workflow.html>`_:
|
to `networking-sfc documentation
|
||||||
|
<https://docs.openstack.org/networking-sfc/latest/contributor/system_design_and_workflow.html>`__.
|
||||||
|
|
||||||
Neutron VPNaaS (VPN-as-a-Service)
|
Neutron VPNaaS (VPN-as-a-Service)
|
||||||
=================================
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Preparation and deployment
|
Preparation and deployment
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
Modify the configuration file ``/etc/kolla/globals.yml`` and change
|
Modify the ``/etc/kolla/globals.yml`` file as the following example shows:
|
||||||
the following:
|
|
||||||
|
|
||||||
::
|
.. code-block:: yaml
|
||||||
|
|
||||||
enable_neutron_vpnaas: "yes"
|
enable_neutron_vpnaas: "yes"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Verification
|
Verification
|
||||||
------------
|
------------
|
||||||
@ -70,58 +76,60 @@ simple smoke test to verify the service is up and running.
|
|||||||
On the network node(s), the ``neutron_vpnaas_agent`` should be up (image naming
|
On the network node(s), the ``neutron_vpnaas_agent`` should be up (image naming
|
||||||
and versioning may differ depending on deploy configuration):
|
and versioning may differ depending on deploy configuration):
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
docker ps --filter name=neutron_vpnaas_agent
|
# docker ps --filter name=neutron_vpnaas_agent
|
||||||
CONTAINER ID IMAGE
|
|
||||||
COMMAND CREATED STATUS PORTS
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||||
NAMES
|
97d25657d55e operator:5000/kolla/oraclelinux-source-neutron-vpnaas-agent:4.0.0 "kolla_start" 44 minutes ago Up 44 minutes neutron_vpnaas_agent
|
||||||
97d25657d55e
|
|
||||||
operator:5000/kolla/oraclelinux-source-neutron-vpnaas-agent:4.0.0
|
.. end
|
||||||
"kolla_start" 44 minutes ago Up 44 minutes
|
|
||||||
neutron_vpnaas_agent
|
|
||||||
|
|
||||||
Kolla-Ansible includes a small script that can be used in tandem with
|
Kolla-Ansible includes a small script that can be used in tandem with
|
||||||
``tools/init-runonce`` to verify the VPN using two routers and two Nova VMs:
|
``tools/init-runonce`` to verify the VPN using two routers and two Nova VMs:
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
tools/init-runonce
|
tools/init-runonce
|
||||||
tools/init-vpn
|
tools/init-vpn
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Verify both VPN services are active:
|
Verify both VPN services are active:
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
neutron vpn-service-list
|
# neutron vpn-service-list
|
||||||
+--------------------------------------+----------+--------------------------------------+--------+
|
|
||||||
| id | name | router_id | status |
|
+--------------------------------------+----------+--------------------------------------+--------+
|
||||||
+--------------------------------------+----------+--------------------------------------+--------+
|
| id | name | router_id | status |
|
||||||
| ad941ec4-5f3d-4a30-aae2-1ab3f4347eb1 | vpn_west | 051f7ce3-4301-43cc-bfbd-7ffd59af539e | ACTIVE |
|
+--------------------------------------+----------+--------------------------------------+--------+
|
||||||
| edce15db-696f-46d8-9bad-03d087f1f682 | vpn_east | 058842e0-1d01-4230-af8d-0ba6d0da8b1f | ACTIVE |
|
| ad941ec4-5f3d-4a30-aae2-1ab3f4347eb1 | vpn_west | 051f7ce3-4301-43cc-bfbd-7ffd59af539e | ACTIVE |
|
||||||
+--------------------------------------+----------+--------------------------------------+--------+
|
| edce15db-696f-46d8-9bad-03d087f1f682 | vpn_east | 058842e0-1d01-4230-af8d-0ba6d0da8b1f | ACTIVE |
|
||||||
|
+--------------------------------------+----------+--------------------------------------+--------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Two VMs can now be booted, one on vpn_east, the other on vpn_west, and
|
Two VMs can now be booted, one on vpn_east, the other on vpn_west, and
|
||||||
encrypted ping packets observed being sent from one to the other.
|
encrypted ping packets observed being sent from one to the other.
|
||||||
|
|
||||||
For more information on this and VPNaaS in Neutron refer to the VPNaaS area on
|
For more information on this and VPNaaS in Neutron refer to the
|
||||||
the OpenStack wiki:
|
`Neutron VPNaaS Testing <https://docs.openstack.org/neutron-vpnaas/latest/contributor/index.html#testing>`__
|
||||||
|
and the `OpenStack wiki <https://wiki.openstack.org/wiki/Neutron/VPNaaS>`_.
|
||||||
https://wiki.openstack.org/wiki/Neutron/VPNaaS/HowToInstall
|
|
||||||
https://wiki.openstack.org/wiki/Neutron/VPNaaS
|
|
||||||
|
|
||||||
Networking-ODL
|
Networking-ODL
|
||||||
==============
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Preparation and deployment
|
Preparation and deployment
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
Modify the configuration file ``/etc/kolla/globals.yml`` and enable
|
Modify the ``/etc/kolla/globals.yml`` file as the following example shows:
|
||||||
the following:
|
|
||||||
|
|
||||||
::
|
.. code-block:: yaml
|
||||||
|
|
||||||
enable_opendaylight: "yes"
|
enable_opendaylight: "yes"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Networking-ODL is an additional Neutron plugin that allows the OpenDaylight
|
Networking-ODL is an additional Neutron plugin that allows the OpenDaylight
|
||||||
SDN Controller to utilize its networking virtualization features.
|
SDN Controller to utilize its networking virtualization features.
|
||||||
@ -130,26 +138,33 @@ the ``neutron-server`` container. In this case, one could use the
|
|||||||
neutron-server-opendaylight container and the opendaylight container by
|
neutron-server-opendaylight container and the opendaylight container by
|
||||||
pulling from Kolla dockerhub or by building them locally.
|
pulling from Kolla dockerhub or by building them locally.
|
||||||
|
|
||||||
OpenDaylight globals.yml configurable options with their defaults include:
|
OpenDaylight ``globals.yml`` configurable options with their defaults include:
|
||||||
::
|
|
||||||
|
|
||||||
opendaylight_release: "0.6.1-Carbon"
|
.. code-block:: yaml
|
||||||
opendaylight_mechanism_driver: "opendaylight_v2"
|
|
||||||
opendaylight_l3_service_plugin: "odl-router_v2"
|
opendaylight_release: "0.6.1-Carbon"
|
||||||
opendaylight_acl_impl: "learn"
|
opendaylight_mechanism_driver: "opendaylight_v2"
|
||||||
enable_opendaylight_qos: "no"
|
opendaylight_l3_service_plugin: "odl-router_v2"
|
||||||
enable_opendaylight_l3: "yes"
|
opendaylight_acl_impl: "learn"
|
||||||
enable_opendaylight_legacy_netvirt_conntrack: "no"
|
enable_opendaylight_qos: "no"
|
||||||
opendaylight_port_binding_type: "pseudo-agentdb-binding"
|
enable_opendaylight_l3: "yes"
|
||||||
opendaylight_features: "odl-mdsal-apidocs,odl-netvirt-openstack"
|
enable_opendaylight_legacy_netvirt_conntrack: "no"
|
||||||
opendaylight_allowed_network_types: '"flat", "vlan", "vxlan"'
|
opendaylight_port_binding_type: "pseudo-agentdb-binding"
|
||||||
|
opendaylight_features: "odl-mdsal-apidocs,odl-netvirt-openstack"
|
||||||
|
opendaylight_allowed_network_types: '"flat", "vlan", "vxlan"'
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Clustered OpenDaylight Deploy
|
Clustered OpenDaylight Deploy
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
High availability clustered OpenDaylight requires modifying the inventory file
|
High availability clustered OpenDaylight requires modifying the inventory file
|
||||||
and placing three or more hosts in the OpenDaylight or Networking groups.
|
and placing three or more hosts in the OpenDaylight or Networking groups.
|
||||||
Note: The OpenDaylight role will allow deploy of one or three plus hosts for
|
|
||||||
OpenDaylight/Networking role.
|
.. note::
|
||||||
|
|
||||||
|
The OpenDaylight role will allow deploy of one or three plus hosts for
|
||||||
|
OpenDaylight/Networking role.
|
||||||
|
|
||||||
Verification
|
Verification
|
||||||
------------
|
------------
|
||||||
@ -159,12 +174,10 @@ deployment will bring up an Opendaylight container in the list of running
|
|||||||
containers on network/opendaylight node.
|
containers on network/opendaylight node.
|
||||||
|
|
||||||
For the source code, please refer to the following link:
|
For the source code, please refer to the following link:
|
||||||
|
https://github.com/openstack/networking-odl
|
||||||
https://github.com/openstack/networking-odl
|
|
||||||
|
|
||||||
|
|
||||||
OVS with DPDK
|
OVS with DPDK
|
||||||
=============
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
------------
|
------------
|
||||||
@ -205,36 +218,41 @@ it is advised to allocate them via the kernel command line instead to prevent
|
|||||||
memory fragmentation. This can be achieved by adding the following to the grub
|
memory fragmentation. This can be achieved by adding the following to the grub
|
||||||
config and regenerating your grub file.
|
config and regenerating your grub file.
|
||||||
|
|
||||||
::
|
.. code-block:: none
|
||||||
|
|
||||||
default_hugepagesz=2M hugepagesz=2M hugepages=25000
|
default_hugepagesz=2M hugepagesz=2M hugepages=25000
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
As dpdk is a userspace networking library it requires userspace compatible
|
As dpdk is a userspace networking library it requires userspace compatible
|
||||||
drivers to be able to control the physical interfaces on the platform.
|
drivers to be able to control the physical interfaces on the platform.
|
||||||
dpdk technically support 3 kernel drivers igb_uio,uio_pci_generic and vfio_pci.
|
dpdk technically support 3 kernel drivers ``igb_uio``,``uio_pci_generic``, and
|
||||||
While it is technically possible to use all 3 only uio_pci_generic and vfio_pci
|
``vfio_pci``.
|
||||||
are recommended for use with kolla. igb_uio is BSD licenced and distributed
|
While it is technically possible to use all 3 only ``uio_pci_generic`` and
|
||||||
as part of the dpdk library. While it has some advantages over uio_pci_generic
|
``vfio_pci`` are recommended for use with kolla. ``igb_uio`` is BSD licenced
|
||||||
loading the igb_uio module will taint the kernel and possibly invalidate
|
and distributed as part of the dpdk library. While it has some advantages over
|
||||||
distro support. To successfully deploy ovs-dpdk, vfio_pci or uio_pci_generic
|
``uio_pci_generic`` loading the ``igb_uio`` module will taint the kernel and
|
||||||
kernel module must be present on the platform. Most distros include vfio_pci
|
possibly invalidate distro support. To successfully deploy ``ovs-dpdk``,
|
||||||
or uio_pci_generic as part of the default kernel though on some distros you
|
``vfio_pci`` or ``uio_pci_generic`` kernel module must be present on the platform.
|
||||||
may need to install kernel-modules-extra or the distro equivalent prior to
|
Most distros include ``vfio_pci`` or ``uio_pci_generic`` as part of the default
|
||||||
running kolla-ansible deploy.
|
kernel though on some distros you may need to install ``kernel-modules-extra`` or
|
||||||
|
the distro equivalent prior to running :command:`kolla-ansible deploy`.
|
||||||
|
|
||||||
Install
|
Installation
|
||||||
-------
|
------------
|
||||||
|
|
||||||
To enable ovs-dpdk add the following to /etc/kolla/globals.yml
|
To enable ovs-dpdk, add the following configuration to ``/etc/kolla/globals.yml``
|
||||||
|
file:
|
||||||
|
|
||||||
::
|
.. code-block:: yaml
|
||||||
|
|
||||||
ovs_datapath: "netdev"
|
ovs_datapath: "netdev"
|
||||||
enable_ovs_dpdk: yes
|
enable_ovs_dpdk: yes
|
||||||
enable_openvswitch: yes
|
enable_openvswitch: yes
|
||||||
tunnel_interface: "dpdk_bridge"
|
tunnel_interface: "dpdk_bridge"
|
||||||
neutron_bridge_name: "dpdk_bridge"
|
neutron_bridge_name: "dpdk_bridge"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Unlike standard Open vSwitch deployments, the interface specified by
|
Unlike standard Open vSwitch deployments, the interface specified by
|
||||||
neutron_external_interface should have an ip address assigned.
|
neutron_external_interface should have an ip address assigned.
|
||||||
@ -272,161 +290,192 @@ prior to upgrading.
|
|||||||
On ubuntu network manager is required for tunnel networking.
|
On ubuntu network manager is required for tunnel networking.
|
||||||
This requirement will be removed in the future.
|
This requirement will be removed in the future.
|
||||||
|
|
||||||
|
|
||||||
Neutron SRIOV
|
Neutron SRIOV
|
||||||
=============
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
Preparation and deployment
|
Preparation and deployment
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
SRIOV requires specific NIC and BIOS configuration and is not supported on all
|
SRIOV requires specific NIC and BIOS configuration and is not supported on all
|
||||||
platforms. Consult NIC and platform specific documentation for instructions
|
platforms. Consult NIC and platform specific documentation for instructions
|
||||||
on enablement.
|
on enablement.
|
||||||
|
|
||||||
Modify the configuration file ``/etc/kolla/globals.yml``:
|
Modify the ``/etc/kolla/globals.yml`` file as the following example shows:
|
||||||
|
|
||||||
::
|
.. code-block:: yaml
|
||||||
|
|
||||||
enable_neutron_sriov: "yes"
|
enable_neutron_sriov: "yes"
|
||||||
|
|
||||||
Modify the file ``/etc/kolla/config/neutron/ml2_conf.ini``. Add ``sriovnicswitch``
|
.. end
|
||||||
to the mechanism drivers and add the provider networks for use by SRIOV. Both
|
|
||||||
flat and VLAN are configured with the same physical network name in this example:
|
|
||||||
|
|
||||||
::
|
Modify the ``/etc/kolla/config/neutron/ml2_conf.ini`` file and add ``sriovnicswitch``
|
||||||
|
to the ``mechanism_drivers``. Also, the provider networks used by SRIOV should be configured.
|
||||||
|
Both flat and VLAN are configured with the same physical network name in this example:
|
||||||
|
|
||||||
[ml2]
|
.. path /etc/kolla/config/neutron/ml2_conf.ini
|
||||||
mechanism_drivers = openvswitch,l2population,sriovnicswitch
|
.. code-block:: ini
|
||||||
|
|
||||||
[ml2_type_vlan]
|
[ml2]
|
||||||
network_vlan_ranges = sriovtenant1:1000:1009
|
mechanism_drivers = openvswitch,l2population,sriovnicswitch
|
||||||
|
|
||||||
[ml2_type_flat]
|
[ml2_type_vlan]
|
||||||
flat_networks = sriovtenant1
|
network_vlan_ranges = sriovtenant1:1000:1009
|
||||||
|
|
||||||
|
[ml2_type_flat]
|
||||||
|
flat_networks = sriovtenant1
|
||||||
|
|
||||||
Modify the file ``/etc/kolla/config/nova.conf``. The Nova Scheduler service
|
.. end
|
||||||
on the control node requires the ``PciPassthroughFilter`` to be added to the
|
|
||||||
list of filters and the Nova Compute service(s) on the compute node(s) need
|
|
||||||
PCI device whitelisting:
|
|
||||||
|
|
||||||
::
|
Add ``PciPassthroughFilter`` to scheduler_default_filters
|
||||||
|
|
||||||
[DEFAULT]
|
The ``PciPassthroughFilter``, which is required by Nova Scheduler service
|
||||||
scheduler_default_filters = <existing filters>, PciPassthroughFilter
|
on the Controller, should be added to ``scheduler_default_filters``
|
||||||
scheduler_available_filters = nova.scheduler.filters.all_filters
|
|
||||||
|
|
||||||
[pci]
|
Modify the ``/etc/kolla/config/nova.conf`` file and add ``PciPassthroughFilter``
|
||||||
passthrough_whitelist = [{"devname": "ens785f0", "physical_network": "sriovtenant1"}]
|
to ``scheduler_default_filters``. this filter is required by The Nova Scheduler
|
||||||
|
service on the controller node.
|
||||||
|
|
||||||
|
.. path /etc/kolla/config/nova.conf
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
Modify the file ``/etc/kolla/config/neutron/sriov_agent.ini``. Add physical
|
[DEFAULT]
|
||||||
network to interface mapping. Specific VFs can also be excluded here. Leave
|
scheduler_default_filters = <existing filters>, PciPassthroughFilter
|
||||||
blank to enable all VFs for the interface:
|
scheduler_available_filters = nova.scheduler.filters.all_filters
|
||||||
|
|
||||||
::
|
.. end
|
||||||
|
|
||||||
[sriov_nic]
|
Edit the ``/etc/kolla/config/nova.conf`` file and add PCI device whitelisting.
|
||||||
physical_device_mappings = sriovtenant1:ens785f0
|
this is needed by OpenStack Compute service(s) on the Compute.
|
||||||
exclude_devices =
|
|
||||||
|
.. path /etc/kolla/config/nova.conf
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[pci]
|
||||||
|
passthrough_whitelist = [{"devname": "ens785f0", "physical_network": "sriovtenant1"}]
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
|
Modify the ``/etc/kolla/config/neutron/sriov_agent.ini`` file. Add physical
|
||||||
|
network to interface mapping. Specific VFs can also be excluded here. Leaving
|
||||||
|
blank means to enable all VFs for the interface:
|
||||||
|
|
||||||
|
.. path /etc/kolla/config/neutron/sriov_agent.ini
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[sriov_nic]
|
||||||
|
physical_device_mappings = sriovtenant1:ens785f0
|
||||||
|
exclude_devices =
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Run deployment.
|
Run deployment.
|
||||||
|
|
||||||
Verification
|
Verification
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Check that VFs were created on the compute node(s). VFs will appear in the
|
Check that VFs were created on the compute node(s). VFs will appear in the
|
||||||
output of both ``lspci`` and ``ip link show``. For example:
|
output of both ``lspci`` and ``ip link show``. For example:
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
lspci | grep net
|
# lspci | grep net
|
||||||
05:10.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01)
|
05:10.0 Ethernet controller: Intel Corporation 82599 Ethernet Controller Virtual Function (rev 01)
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
ip -d link show ens785f0
|
# ip -d link show ens785f0
|
||||||
4: ens785f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP mode DEFAULT qlen 1000
|
4: ens785f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP mode DEFAULT qlen 1000
|
||||||
link/ether 90:e2:ba:ba:fb:20 brd ff:ff:ff:ff:ff:ff promiscuity 1
|
link/ether 90:e2:ba:ba:fb:20 brd ff:ff:ff:ff:ff:ff promiscuity 1
|
||||||
openvswitch_slave addrgenmode eui64
|
openvswitch_slave addrgenmode eui64
|
||||||
vf 0 MAC 52:54:00:36:57:e0, spoof checking on, link-state auto, trust off
|
vf 0 MAC 52:54:00:36:57:e0, spoof checking on, link-state auto, trust off
|
||||||
vf 1 MAC 52:54:00:00:62:db, spoof checking on, link-state auto, trust off
|
vf 1 MAC 52:54:00:00:62:db, spoof checking on, link-state auto, trust off
|
||||||
vf 2 MAC fa:16:3e:92:cf:12, spoof checking on, link-state auto, trust off
|
vf 2 MAC fa:16:3e:92:cf:12, spoof checking on, link-state auto, trust off
|
||||||
vf 3 MAC fa:16:3e:00:a3:01, vlan 1000, spoof checking on, link-state auto, trust off
|
vf 3 MAC fa:16:3e:00:a3:01, vlan 1000, spoof checking on, link-state auto, trust off
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Verify the SRIOV Agent container is running on the compute node(s):
|
Verify the SRIOV Agent container is running on the compute node(s):
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
docker ps --filter name=neutron_sriov_agent
|
# docker ps --filter name=neutron_sriov_agent
|
||||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||||
b03a8f4c0b80 10.10.10.10:4000/registry/centos-source-neutron-sriov-agent:17.04.0 "kolla_start" 18 minutes ago Up 18 minutes neutron_sriov_agent
|
b03a8f4c0b80 10.10.10.10:4000/registry/centos-source-neutron-sriov-agent:17.04.0 "kolla_start" 18 minutes ago Up 18 minutes neutron_sriov_agent
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Verify the SRIOV Agent service is present and UP:
|
Verify the SRIOV Agent service is present and UP:
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
openstack network agent list
|
# openstack network agent list
|
||||||
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
|
|
||||||
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
|
|
||||||
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
|
|
||||||
| 7c06bda9-7b87-487e-a645-cc6c289d9082 | NIC Switch agent | av09-18-wcp | None | :-) | UP | neutron-sriov-nic-agent |
|
|
||||||
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
|
|
||||||
|
|
||||||
Create a new provider network. Set ``provider-physical-network`` to the
|
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
|
||||||
|
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
|
||||||
|
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
|
||||||
|
| 7c06bda9-7b87-487e-a645-cc6c289d9082 | NIC Switch agent | av09-18-wcp | None | :-) | UP | neutron-sriov-nic-agent |
|
||||||
|
+--------------------------------------+--------------------+-------------+-------------------+-------+-------+---------------------------+
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
|
Create a new provider network. Set ``provider-physical-network`` to the
|
||||||
physical network name that was configured in ``/etc/kolla/config/nova.conf``.
|
physical network name that was configured in ``/etc/kolla/config/nova.conf``.
|
||||||
Set ``provider-network-type`` to the desired type. If using VLAN, ensure
|
Set ``provider-network-type`` to the desired type. If using VLAN, ensure
|
||||||
``provider-segment`` is set to the correct VLAN ID. Type VLAN is used in this example:
|
``provider-segment`` is set to the correct VLAN ID. This example uses ``VLAN``
|
||||||
|
network type:
|
||||||
|
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
openstack network create --project=admin \
|
# openstack network create --project=admin \
|
||||||
--provider-network-type=vlan \
|
--provider-network-type=vlan \
|
||||||
--provider-physical-network=sriovtenant1 \
|
--provider-physical-network=sriovtenant1 \
|
||||||
--provider-segment=1000 \
|
--provider-segment=1000 \
|
||||||
sriovnet1
|
sriovnet1
|
||||||
|
|
||||||
Create a subnet with a DHCP range for the provider network:
|
Create a subnet with a DHCP range for the provider network:
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
openstack subnet create --network=sriovnet1 \
|
# openstack subnet create --network=sriovnet1 \
|
||||||
--subnet-range=11.0.0.0/24 \
|
--subnet-range=11.0.0.0/24 \
|
||||||
--allocation-pool start=11.0.0.5,end=11.0.0.100 \
|
--allocation-pool start=11.0.0.5,end=11.0.0.100 \
|
||||||
sriovnet1_sub1
|
sriovnet1_sub1
|
||||||
|
|
||||||
Create a port on the provider network with vnic_type set to direct:
|
.. end
|
||||||
|
|
||||||
::
|
Create a port on the provider network with ``vnic_type`` set to ``direct``:
|
||||||
|
|
||||||
openstack port create --network sriovnet1 --vnic-type=direct sriovnet1-port1
|
.. code-block:: console
|
||||||
|
|
||||||
|
# openstack port create --network sriovnet1 --vnic-type=direct sriovnet1-port1
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Start a new instance with the SRIOV port assigned:
|
Start a new instance with the SRIOV port assigned:
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
openstack server create --flavor flavor1 \
|
# openstack server create --flavor flavor1 \
|
||||||
--image fc-26 \
|
--image fc-26 \
|
||||||
--nic port-id=`openstack port list | grep sriovnet1-port1 | awk '{print $2}'` \
|
--nic port-id=`openstack port list | grep sriovnet1-port1 | awk '{print $2}'` \
|
||||||
vm1
|
vm1
|
||||||
|
|
||||||
Verify the instance boots with the SRIOV port. Verify VF assignment by running
|
Verify the instance boots with the SRIOV port. Verify VF assignment by running
|
||||||
dmesg on the compute node where the instance was placed.
|
dmesg on the compute node where the instance was placed.
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
dmesg
|
# dmesg
|
||||||
[ 2896.849970] ixgbe 0000:05:00.0: setting MAC fa:16:3e:00:a3:01 on VF 3
|
[ 2896.849970] ixgbe 0000:05:00.0: setting MAC fa:16:3e:00:a3:01 on VF 3
|
||||||
[ 2896.850028] ixgbe 0000:05:00.0: Setting VLAN 1000, QOS 0x0 on VF 3
|
[ 2896.850028] ixgbe 0000:05:00.0: Setting VLAN 1000, QOS 0x0 on VF 3
|
||||||
[ 2897.403367] vfio-pci 0000:05:10.4: enabling device (0000 -> 0002)
|
[ 2897.403367] vfio-pci 0000:05:10.4: enabling device (0000 -> 0002)
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
For more information see `OpenStack SRIOV documentation <https://docs.openstack.org/neutron/pike/admin/config-sriov.html>`_.
|
For more information see `OpenStack SRIOV documentation <https://docs.openstack.org/neutron/pike/admin/config-sriov.html>`_.
|
||||||
|
|
||||||
|
|
||||||
Nova SRIOV
|
Nova SRIOV
|
||||||
==========
|
~~~~~~~~~~
|
||||||
|
|
||||||
Preparation and deployment
|
Preparation and deployment
|
||||||
--------------------------
|
--------------------------
|
||||||
@ -447,15 +496,18 @@ Compute service on the compute node also require the ``alias`` option under the
|
|||||||
``[pci]`` section. The alias can be configured as 'type-VF' to pass VFs or 'type-PF'
|
``[pci]`` section. The alias can be configured as 'type-VF' to pass VFs or 'type-PF'
|
||||||
to pass the PF. Type-VF is shown in this example:
|
to pass the PF. Type-VF is shown in this example:
|
||||||
|
|
||||||
::
|
.. path /etc/kolla/config/nova.conf
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
scheduler_default_filters = <existing filters>, PciPassthroughFilter
|
scheduler_default_filters = <existing filters>, PciPassthroughFilter
|
||||||
scheduler_available_filters = nova.scheduler.filters.all_filters
|
scheduler_available_filters = nova.scheduler.filters.all_filters
|
||||||
|
|
||||||
[pci]
|
[pci]
|
||||||
passthrough_whitelist = [{"vendor_id": "8086", "product_id": "10fb"}]
|
passthrough_whitelist = [{"vendor_id": "8086", "product_id": "10fb"}]
|
||||||
alias = [{"vendor_id":"8086", "product_id":"10ed", "device_type":"type-VF", "name":"vf1"}]
|
alias = [{"vendor_id":"8086", "product_id":"10ed", "device_type":"type-VF", "name":"vf1"}]
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Run deployment.
|
Run deployment.
|
||||||
|
|
||||||
@ -465,16 +517,19 @@ Verification
|
|||||||
Create (or use an existing) flavor, and then configure it to request one PCI device
|
Create (or use an existing) flavor, and then configure it to request one PCI device
|
||||||
from the PCI alias:
|
from the PCI alias:
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
openstack flavor set sriov-flavor --property "pci_passthrough:alias"="vf1:1"
|
# openstack flavor set sriov-flavor --property "pci_passthrough:alias"="vf1:1"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Start a new instance using the flavor:
|
Start a new instance using the flavor:
|
||||||
|
|
||||||
::
|
.. code-block:: console
|
||||||
|
|
||||||
openstack server create --flavor sriov-flavor --image fc-26 vm2
|
# openstack server create --flavor sriov-flavor --image fc-26 vm2
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Verify VF devices were created and the instance starts successfully as in
|
Verify VF devices were created and the instance starts successfully as in
|
||||||
the Neutron SRIOV case.
|
the Neutron SRIOV case.
|
||||||
|
@ -5,33 +5,35 @@ Nova Fake Driver
|
|||||||
================
|
================
|
||||||
|
|
||||||
One common question from OpenStack operators is that "how does the control
|
One common question from OpenStack operators is that "how does the control
|
||||||
plane (e.g., database, messaging queue, nova-scheduler ) scales?". To answer
|
plane (for example, database, messaging queue, nova-scheduler ) scales?". To answer
|
||||||
this question, operators setup Rally to drive workload to the OpenStack cloud.
|
this question, operators setup Rally to drive workload to the OpenStack cloud.
|
||||||
However, without a large number of nova-compute nodes, it becomes difficult to
|
However, without a large number of nova-compute nodes, it becomes difficult to
|
||||||
exercise the control performance.
|
exercise the control performance.
|
||||||
|
|
||||||
Given the built-in feature of Docker container, Kolla enables standing up many
|
Given the built-in feature of Docker container, Kolla enables standing up many
|
||||||
of nova-compute nodes with nova fake driver on a single host. For example,
|
of Compute nodes with nova fake driver on a single host. For example,
|
||||||
we can create 100 nova-compute containers on a real host to simulate the
|
we can create 100 nova-compute containers on a real host to simulate the
|
||||||
100-hypervisor workload to the nova-conductor and the messaging queue.
|
100-hypervisor workload to the ``nova-conductor`` and the messaging queue.
|
||||||
|
|
||||||
Use nova-fake driver
|
Use nova-fake driver
|
||||||
====================
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Nova fake driver can not work with all-in-one deployment. This is because the
|
Nova fake driver can not work with all-in-one deployment. This is because the
|
||||||
fake neutron-openvswitch-agent for the fake nova-compute container conflicts
|
fake ``neutron-openvswitch-agent`` for the fake ``nova-compute`` container conflicts
|
||||||
with neutron-openvswitch-agent on the compute nodes. Therefore, in the
|
with ``neutron-openvswitch-agent`` on the Compute nodes. Therefore, in the
|
||||||
inventory the network node must be different than the compute node.
|
inventory the network node must be different than the Compute node.
|
||||||
|
|
||||||
By default, Kolla uses libvirt driver on the compute node. To use nova-fake
|
By default, Kolla uses libvirt driver on the Compute node. To use nova-fake
|
||||||
driver, edit the following parameters in ``/etc/kolla/globals.yml`` or in
|
driver, edit the following parameters in ``/etc/kolla/globals.yml`` or in
|
||||||
the command line options.
|
the command line options.
|
||||||
|
|
||||||
::
|
.. code-block:: yaml
|
||||||
|
|
||||||
enable_nova_fake: "yes"
|
enable_nova_fake: "yes"
|
||||||
num_nova_fake_per_node: 5
|
num_nova_fake_per_node: 5
|
||||||
|
|
||||||
Each compute node will run 5 nova-compute containers and 5
|
.. end
|
||||||
neutron-plugin-agent containers. When booting instance, there will be no real
|
|
||||||
instances created. But *nova list* shows the fake instances.
|
Each Compute node will run 5 ``nova-compute`` containers and 5
|
||||||
|
``neutron-plugin-agent`` containers. When booting instance, there will be no real
|
||||||
|
instances created. But :command:`nova list` shows the fake instances.
|
||||||
|
@ -5,7 +5,8 @@ OSprofiler in Kolla
|
|||||||
===================
|
===================
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
========
|
~~~~~~~~
|
||||||
|
|
||||||
OSProfiler provides a tiny but powerful library that is used by most
|
OSProfiler provides a tiny but powerful library that is used by most
|
||||||
(soon to be all) OpenStack projects and their corresponding python clients
|
(soon to be all) OpenStack projects and their corresponding python clients
|
||||||
as well as the Openstack client.
|
as well as the Openstack client.
|
||||||
@ -17,12 +18,14 @@ to build a tree of calls which can be quite handy for a variety of reasons
|
|||||||
Configuration on Kolla deployment
|
Configuration on Kolla deployment
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
Enable OSprofiler in ``/etc/kolla/globals.yml``
|
Enable ``OSprofiler`` in ``/etc/kolla/globals.yml`` file:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: yaml
|
||||||
|
|
||||||
enable_osprofiler: "yes"
|
enable_osprofiler: "yes"
|
||||||
enable_elasticsearch: "yes"
|
enable_elasticsearch: "yes"
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
Verify operation
|
Verify operation
|
||||||
----------------
|
----------------
|
||||||
@ -32,25 +35,24 @@ Retrieve ``osprofiler_secret`` key present at ``/etc/kolla/passwords.yml``.
|
|||||||
Profiler UUIDs can be created executing OpenStack clients (Nova, Glance,
|
Profiler UUIDs can be created executing OpenStack clients (Nova, Glance,
|
||||||
Cinder, Heat, Keystone) with ``--profile`` option or using the official
|
Cinder, Heat, Keystone) with ``--profile`` option or using the official
|
||||||
Openstack client with ``--os-profile``. In example to get the OSprofiler trace
|
Openstack client with ``--os-profile``. In example to get the OSprofiler trace
|
||||||
UUID for ``openstack server create``.
|
UUID for :command:`openstack server create` command.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ openstack --os-profile <OSPROFILER_SECRET> \
|
$ openstack --os-profile <OSPROFILER_SECRET> server create \
|
||||||
server create \
|
--image cirros --flavor m1.tiny --key-name mykey \
|
||||||
--image cirros \
|
--nic net-id=${NETWORK_ID} demo
|
||||||
--flavor m1.tiny \
|
|
||||||
--key-name mykey \
|
|
||||||
--nic net-id=${NETWORK_ID} \
|
|
||||||
demo
|
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
The previous command will output the command to retrieve OSprofiler trace.
|
The previous command will output the command to retrieve OSprofiler trace.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
$ osprofiler trace show --html <TRACE_ID> --connection-string \
|
$ osprofiler trace show --html <TRACE_ID> --connection-string \
|
||||||
elasticsearch://<api_interface_address>:9200
|
elasticsearch://<api_interface_address>:9200
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
For more information about how OSprofiler works, see
|
For more information about how OSprofiler works, see
|
||||||
`OSProfiler – Cross-project profiling library
|
`OSProfiler – Cross-project profiling library
|
||||||
|
Loading…
Reference in New Issue
Block a user