Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

OpenStack Pike

2017/09/03

Travaux de synthèse : Taylor VOLI

Volet 14
2

OpenStack Pike : How to use Manila#1


2017/09/07

This is How to use OpenStack Shared File System (Manila).


This example is based on the emvironment like follows.
For example, Configure local block device as shared storage on Storage Node and use it from
Instances. Therefore, it needs there is a free block device on Storage Node.
------------+---------------------------+--------------------------
-+------------
| |
|
eth0|10.0.0.30 eth0|10.0.0.50
eth0|10.0.0.51
+-----------+-----------+ +-----------+-----------+ +----------
-+-----------+
| [ Control Node ] | | [ Storage Node ] | | [
Compute Node ] |
| | | | |
|
| MariaDB RabbitMQ | | Open vSwitch | |
Libvirt |
| Memcached httpd | | L2 Agent | | Nova
Compute |
| Keystone Glance | | L3 Agent | | Open
vSwitch |
| Nova API | | Metadata Agent | | L2
Agent |
| Neutron Server | | Manila Share | |
|
| Metadata Agent | | | |
|
| Manila API | | | |
|
+-----------------------+ +-----------------------+ +----------
-------------+

[1] Configure Storage Node.


[root@storage ~]#
yum -y install nfs-utils nfs4-acl-tools
# create a volume for Manila on free block device

[root@storage ~]#
pvcreate /dev/sdb1

Physical volume "/dev/sdb1" successfully created


[root@storage ~]#
vgcreate manila-volumes /dev/sdb1

Volume group "manila-volumes" successfully created

2
3

[root@storage ~]#
vi /etc/manila/manila.conf
# add follows into [DEFAULT] section

enabled_share_backends = lvm
# add to the end

[lvm]
share_backend_name = LVM
share_driver = manila.share.drivers.lvm.LVMShareDriver
driver_handles_share_servers = False
lvm_share_volume_group = manila-volumes
lvm_share_export_ip = 10.0.0.50
[root@storage ~]#
systemctl start openstack-manila-share nfs-server

[root@storage ~]#
systemctl enable openstack-manila-share nfs-server
[2] Create default share type. It's OK to work on any node. (This example is on Control Node)
[root@dlp ~(keystone)]#
manila type-create default_share_type False

+----------------------+--------------------------------------+
| Property | Value |
+----------------------+--------------------------------------+
| required_extra_specs | driver_handles_share_servers : False |
| Name | default_share_type |
| Visibility | public |
| is_default | - |
| ID | 224021a0-bb81-4d7f-91b1-488e7baf191f |
| optional_extra_specs | |
+----------------------+--------------------------------------+

[root@dlp ~(keystone)]#
manila type-list

+-----------+--------------------+------------+------------+------------------------
--------------+--------+
| ID | Name | visibility | is_default | required_extra_specs
| opt... |
+-----------+--------------------+------------+------------+------------------------
--------------+--------+
| 224021a0- | default_share_type | public | YES |
driver_handles_share_servers : False | |
+-----------+--------------------+------------+------------+------------------------
--------------+--------+
[3] Create NFS share.
[root@dlp ~(keystone)]#

3
4

manila create NFS 1 --name share01

+---------------------------------------+--------------------------------------+
| Property | Value |
+---------------------------------------+--------------------------------------+
| status | creating |
| share_type_name | default_share_type |
| description | None |
| availability_zone | None |
| share_network_id | None |
| share_server_id | None |
| share_group_id | None |
| host | |
| revert_to_snapshot_support | False |
| access_rules_status | active |
| snapshot_id | None |
| create_share_from_snapshot_support | False |
| is_public | False |
| task_state | None |
| snapshot_support | False |
| id | da49783c-baa7-4514-97ef-a09c90a9a6e5 |
| size | 1 |
| source_share_group_snapshot_member_id | None |
| user_id | 09d8dfa20e0f40eaae448d369943b195 |
| name | share01 |
| share_type | 224021a0-bb81-4d7f-91b1-488e7baf191f |
| has_replicas | False |
| replication_type | None |
| created_at | 2017-09-08T02:42:29.000000 |
| share_proto | NFS |
| mount_snapshot_support | False |
| project_id | 09158bee8c6441519bf3a3743d936566 |
| metadata | {} |
+---------------------------------------+--------------------------------------+

# few minutes later, the Status turns to available

[root@dlp ~(keystone)]#
manila list

+-----------+---------+------+-------------+-----------+-----------+----------------
----+---------+--------+
| ID | Name | Size | Share Proto | Status | Is Public | Share Type Name
| Host | Avai.. |
+-----------+---------+------+-------------+-----------+-----------+----------------
----+---------+--------+
| da49783c- | share01 | 1 | NFS | available | False |
default_share_type | netw... | nova |
+-----------+---------+------+-------------+-----------+-----------+----------------
----+---------+--------+
[4] It's OK all, you can use Manila Shared filesystem from Instances like follows.
[root@dlp ~(keystone)]#

4
5

openstack server list

+-----------+----------+---------+------------------------------------+---------+---
-------+
| ID | Name | Status | Networks | Image |
Flavor |
+-----------+----------+---------+------------------------------------+---------+---
-------+
| 662f62b8- | CentOS_7 | SHUTOFF | int_net=192.168.100.12, 10.0.0.201 | CentOS7 |
m1.small |
+-----------+----------+---------+------------------------------------+---------+---
-------+

# allow access rights first

[root@dlp ~(keystone)]#
manila access-allow share01 ip 10.0.0.0/24 --access-level rw

+--------------+--------------------------------------+
| Property | Value |
+--------------+--------------------------------------+
| access_key | None |
| share_id | da49783c-baa7-4514-97ef-a09c90a9a6e5 |
| created_at | 2017-09-08T02:45:11.000000 |
| updated_at | None |
| access_type | ip |
| access_to | 10.0.0.0/24 |
| access_level | rw |
| state | queued_to_apply |
| id | 621d52ac-90ee-4470-af2c-253224cb092a |
+--------------+--------------------------------------+

# it's no ploblem if State turns to active

[root@dlp ~(keystone)]#
manila access-list share01

+-----------+-------------+-------------+--------------+--------+------------+------
---------+------------+
| id | access_type | access_to | access_level | state | access_key |
created_at | updated_at |
+-----------+-------------+-------------+--------------+--------+------------+------
---------+------------+
| 621d52ac- | ip | 10.0.0.0/24 | rw | active | None | 2017-
09-08... | None |
+-----------+-------------+-------------+--------------+--------+------------+------
---------+------------+

[root@dlp ~(keystone)]#
openstack server start CentOS_7

# confirm access Path

5
6

[root@dlp ~(keystone)]#
manila show share01 | grep path | cut -d'|' -f3

path = 10.0.0.50:/var/lib/manila/mnt/share-6c6770cc-a2ba-41bc-b283-ffd9204991d9
[root@dlp ~(keystone)]#
ssh centos@10.0.0.201

Last login: Thu Sep 7 17:13:09 2017 from dlp.srv.world


[centos@centos-7 ~]$
# mount Manila shared storage

[centos@centos-7 ~]$
sudo mount -t nfs \
10.0.0.50:/var/lib/manila/mnt/share-6c6770cc-a2ba-41bc-b283-ffd9204991d9 /mnt

[centos@centos-7 ~]$
df -hT

Filesystem Type Size Used


Avail Use% Mounted on
/dev/mapper/cl-root xfs 8.0G 1.1G
7.0G 14% /
devtmpfs devtmpfs 990M 0
990M 0% /dev
tmpfs tmpfs 1001M 0
1001M 0% /dev/shm
tmpfs tmpfs 1001M 8.3M
992M 1% /run
tmpfs tmpfs 1001M 0
1001M 0% /sys/fs/cgroup
/dev/vda1 xfs 1014M 121M
894M 12% /boot
tmpfs tmpfs 201M 0
201M 0% /run/user/1000
10.0.0.50:/var/lib/manila/mnt/share-6c6770cc-a2ba-41bc-... nfs4 976M 2.5M
907M 1% /mnt

6
7

OpenStack Pike : How to use Manila#2


2017/09/07

This is How to use OpenStack Shared File System (Manila).


This example is based on the emvironment like follows.
For example, Configure Manila share to use a designed instance.
It needs to use Cinder storage for backends, so Configure Cinder service first.
On this example, create and use a Cinder storage [disk01] with 10G by LVM backend like
here.
------------+---------------------------+--------------------------
-+------------
| |
|
eth0|10.0.0.30 eth0|10.0.0.50
eth0|10.0.0.51
+-----------+-----------+ +-----------+-----------+ +----------
-+-----------+
| [ Control Node ] | | [ Storage Node ] | | [
Compute Node ] |
| | | | |
|
| MariaDB RabbitMQ | | Open vSwitch | |
Libvirt |
| Memcached httpd | | L2 Agent | | Nova
Compute |
| Keystone Glance | | L3 Agent | | Open
vSwitch |
| Nova API Cinder API| | Metadata Agent | | L2
Agent |
| Neutron Server | | Cinder-Volume | |
|
| Metadata Agent | | Manila Share | |
|
| Manila API | | | |
|
+-----------------------+ +-----------------------+ +----------
-------------+

[1] Configure Storage Node.


[root@storage ~]#
vi /etc/manila/manila.conf
# add follows into [DEFAULT] section

enabled_share_backends = generic

# add follows to the end


[neutron]
url = http://10.0.0.30:9696
auth_uri = http://10.0.0.30:5000
auth_url = http://10.0.0.30:35357

7
8

memcached_servers = 10.0.0.30:11211
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = servicepassword

[nova]
auth_uri = http://10.0.0.30:5000
auth_url = http://10.0.0.30:35357
memcached_servers = 10.0.0.30:11211
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = servicepassword

[cinder]
auth_uri = http://10.0.0.30:5000
auth_url = http://10.0.0.30:35357
memcached_servers = 10.0.0.30:11211
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = cinder
password = servicepassword

[generic]
share_backend_name = backend01
share_driver = manila.share.drivers.generic.GenericShareDriver
driver_handles_share_servers = True
service_instance_flavor_id = 1
service_instance_security_group = manila-service
service_image_name = manila-service-image
service_instance_user = manila
service_instance_password = manila
interface_driver = manila.network.linux.interface.OVSInterfaceDriver

[root@storage ~]#
systemctl start openstack-manila-share

[root@storage ~]#
systemctl enable openstack-manila-share
Download official Manila designed image and add it to Glance. And more, create a security
[2]
group for Manila Service.
[root@dlp ~(keystone)]#

8
9

curl -O http://tarballs.openstack.org/manila-image-elements/images/manila-service-image-
master.qcow2

[root@dlp ~(keystone)]#
openstack image create "manila-service-image" --file manila-service-image-master.qcow2 --
disk-format qcow2 --container-format bare --public

+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| checksum | 2bf61c8f8fc4f0305a01efcf28a28151 |
| container_format | bare |
| created_at | 2017-09-08T03:54:43Z |
| disk_format | qcow2 |
| file | /v2/images/ed4094fc-a22e-400f-9eb3-833bb25c0230/file |
| id | ed4094fc-a22e-400f-9eb3-833bb25c0230 |
| min_disk | 0 |
| min_ram | 0 |
| name | manila-service-image |
| owner | 09158bee8c6441519bf3a3743d936566 |
| protected | False |
| schema | /v2/schemas/image |
| size | 337947136 |
| status | active |
| tags | |
| updated_at | 2017-09-08T03:54:45Z |
| virtual_size | None |
| visibility | public |
+------------------+------------------------------------------------------+

[root@dlp ~(keystone)]#
openstack security group create manila-service

+-----------------+-----------------------------------------------------------------
---------------------+
| Field | Value
|
+-----------------+-----------------------------------------------------------------
---------------------+
| created_at | 2017-09-08T07:05:59Z
|
| description | manila-service
|
| id | fb852fcd-3c1d-4555-b59a-a4b8cab4f27a
|
| name | manila-service
|
| project_id | 09158bee8c6441519bf3a3743d936566
|
| revision_number | 2
|
| rules | created_at='2017-09-08T07:05:59Z', direction='egress',
ethertype='IPv4', id='19af... |

9
10

| | created_at='2017-09-08T07:05:59Z', direction='egress',
ethertype='IPv6', id='f107... |
| updated_at | 2017-09-08T07:05:59Z
|
+-----------------+-----------------------------------------------------------------
---------------------+
[3] Create default share type.
[root@dlp ~(keystone)]#
manila type-create default_share_type True

+----------------------+--------------------------------------+
| Property | Value |
+----------------------+--------------------------------------+
| required_extra_specs | driver_handles_share_servers : True |
| Name | default_share_type |
| Visibility | public |
| is_default | - |
| ID | 34805584-9ac4-4ffd-a802-08d27c788ce6 |
| optional_extra_specs | |
+----------------------+--------------------------------------+

[root@dlp ~(keystone)]#
manila type-list

+-----------+--------------------+------------+------------+------------------------
--+-------------------+
| ID | Name | visibility | is_default | required_extra_specs
| optional_extra_.. |
+-----------+--------------------+------------+------------+------------------------
--+-------------------+
| 34805584- | default_share_type | public | YES |
driver_handles_share_... | |
+-----------+--------------------+------------+------------+------------------------
--+-------------------+
[4] Create shared network.
[root@dlp ~(keystone)]#
openstack network list

+--------------------------------------+---------+----------------------------------
----+
| ID | Name | Subnets
|
+--------------------------------------+---------+----------------------------------
----+
| b70e8cdc-8c61-4a3b-8dfc-060cba8f82f9 | int_net | 3627d5d7-8196-469f-897e-
2159f695052a |
| e27d7f02-773f-4e11-8aa9-e70ebc05ab76 | ext_net | 85f3a6a0-07ab-493d-91a3-
cd60ecd908c7 |
+--------------------------------------+---------+----------------------------------
----+

10
11

[root@dlp ~(keystone)]#
openstack subnet list

+--------------------------------------+---------+----------------------------------
----+------------------+
| ID | Name | Network
| Subnet |
+--------------------------------------+---------+----------------------------------
----+------------------+
| 3627d5d7-8196-469f-897e-2159f695052a | subnet1 | b70e8cdc-8c61-4a3b-8dfc-
060cba8f82f9 | 192.168.100.0/24 |
| 85f3a6a0-07ab-493d-91a3-cd60ecd908c7 | subnet2 | e27d7f02-773f-4e11-8aa9-
e70ebc05ab76 | 10.0.0.0/24 |
+--------------------------------------+---------+----------------------------------
----+------------------+

[root@dlp ~(keystone)]#
INT_NET=$(openstack network list | grep 'int_net' | awk '{print $2}')

[root@dlp ~(keystone)]#
INT_SUBNET=$(openstack subnet list | grep 'subnet1' | awk '{print $2}')
[root@dlp ~(keystone)]#
manila share-network-create --neutron-net-id $INT_NET --neutron-subnet-id $INT_SUBNET --
name manila_share

+-------------------+--------------------------------------+
| Property | Value |
+-------------------+--------------------------------------+
| network_type | None |
| name | manila_share |
| segmentation_id | None |
| created_at | 2017-09-08T07:09:13.579105 |
| neutron_subnet_id | 3627d5d7-8196-469f-897e-2159f695052a |
| updated_at | None |
| mtu | None |
| gateway | None |
| neutron_net_id | b70e8cdc-8c61-4a3b-8dfc-060cba8f82f9 |
| ip_version | None |
| cidr | None |
| project_id | 09158bee8c6441519bf3a3743d936566 |
| id | 26f4b5da-a472-46db-bc27-9277ff7ff6c2 |
| description | None |
+-------------------+--------------------------------------+

[root@dlp ~(keystone)]#
manila share-network-list

+--------------------------------------+--------------+
| id | name |
+--------------------------------------+--------------+
| 26f4b5da-a472-46db-bc27-9277ff7ff6c2 | manila_share |
+--------------------------------------+--------------+

11
12

[5] Create NFS share.


# create a flavor id 1

[root@dlp ~(keystone)]#
openstack flavor create --id 1 --vcpus 1 --ram 2048 --disk 10 m1.tiny

+----------------------------+---------+
| Field | Value |
+----------------------------+---------+
| OS-FLV-DISABLED:disabled | False |
| OS-FLV-EXT-DATA:ephemeral | 0 |
| disk | 10 |
| id | 1 |
| name | m1.tiny |
| os-flavor-access:is_public | True |
| properties | |
| ram | 2048 |
| rxtx_factor | 1.0 |
| swap | |
| vcpus | 1 |
+----------------------------+---------+

[root@dlp ~(keystone)]#
manila create NFS 1 --name share01 --share-network manila_share

+---------------------------------------+--------------------------------------+
| Property | Value |
+---------------------------------------+--------------------------------------+
| status | creating |
| share_type_name | default_share_type |
| description | None |
| availability_zone | None |
| share_network_id | e346e2d4-cceb-420e-a1b0-950dacea10ee |
| share_server_id | None |
| share_group_id | None |
| host | |
| revert_to_snapshot_support | False |
| access_rules_status | active |
| snapshot_id | None |
| create_share_from_snapshot_support | False |
| is_public | False |
| task_state | None |
| snapshot_support | False |
| id | f51f9e8a-a7ae-446c-9332-b5104c3401cf |
| size | 1 |
| source_share_group_snapshot_member_id | None |
| user_id | 09d8dfa20e0f40eaae448d369943b195 |
| name | share01 |
| share_type | cbfdfba0-f043-4c48-9f75-aea45be2caff |
| has_replicas | False |
| replication_type | None |
| created_at | 2017-09-08T07:31:35.000000 |
| share_proto | NFS |

12
13

| mount_snapshot_support | False |
| project_id | 09158bee8c6441519bf3a3743d936566 |
| metadata | {} |
+---------------------------------------+--------------------------------------+

# few minutes later, the Status turns to available

[root@dlp ~(keystone)]#
manila list

+--------+---------+------+-------------+-----------+-----------+-------------------
-+------------+--------+
| ID | Name | Size | Share Proto | Status | Is Public | Share Type Name
| Host | Avai.. |
+--------+---------+------+-------------+-----------+-----------+-------------------
-+------------+--------+
| f51... | share01 | 1 | NFS | available | False | default_share_type
| network... | nova |
+--------+---------+------+-------------+-----------+-----------+-------------------
-+------------+--------+
[6] At this point, 10.254.0.9/28 network has been created on Storage Node.
[root@storage ~]#
ip addr

.....
.....
16: tapb2bf768a-46: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UNKNOWN qlen 1000
link/ether fa:16:3e:55:f3:ed brd ff:ff:ff:ff:ff:ff
inet 10.254.0.9/28 brd 10.254.0.15 scope global tapb2bf768a-46
valid_lft forever preferred_lft forever
inet6 fe80::f816:3eff:fe55:f3ed/64 scope link
valid_lft forever preferred_lft forever
.....
.....
[7] It's OK all, you can use Manila Shared filesystem from Instances like follows.
[root@dlp ~(keystone)]#
openstack server list

+-----------+----------+---------+------------------------------------+---------+---
-------+
| ID | Name | Status | Networks | Image |
Flavor |
+-----------+----------+---------+------------------------------------+---------+---
-------+
| 662f62b8- | CentOS_7 | SHUTOFF | int_net=192.168.100.12, 10.0.0.201 | CentOS7 |
m1.small |
+-----------+----------+---------+------------------------------------+---------+---
-------+

# allow access rights first

13
14

[root@dlp ~(keystone)]#
manila access-allow share01 ip 192.168.100.0/24 --access-level rw

+--------------+--------------------------------------+
| Property | Value |
+--------------+--------------------------------------+
| access_key | None |
| share_id | f51f9e8a-a7ae-446c-9332-b5104c3401cf |
| created_at | 2017-09-08T07:40:23.000000 |
| updated_at | None |
| access_type | ip |
| access_to | 192.168.100.0/24 |
| access_level | rw |
| state | queued_to_apply |
| id | c9c973a4-3b68-47c7-bcef-724fc3551463 |
+--------------+--------------------------------------+

# it's no ploblem if State turns to active

[root@dlp ~(keystone)]#
manila access-list share01

+--------+-------------+------------------+--------------+--------+------------+----
----------+------------+
| id | access_type | access_to | access_level | state | access_key |
created_at | updated_at |
+--------+-------------+------------------+--------------+--------+------------+----
----------+------------+
| c9c... | ip | 192.168.100.0/24 | rw | active | None |
2017-09-0... | None |
+--------+-------------+------------------+--------------+--------+------------+----
----------+------------+

[root@dlp ~(keystone)]#
openstack server start CentOS_7

# confirm access Path

[root@dlp ~(keystone)]#
manila show share01 | grep path | cut -d'|' -f3

path = 10.254.0.11:/shares/share-15db92a3-4e21-4efc-9c36-bbcc65002662
[root@dlp ~(keystone)]#
ssh centos@10.0.0.201

Last login: Thu Sep 7 17:13:09 2017 from dlp.srv.world


# mount Manila shared storage

[centos@centos-7 ~]$

14
15

sudo mount -t nfs \


10.254.0.11:/shares/share-15db92a3-4e21-4efc-9c36-bbcc65002662 /mnt

[centos@centos-7 ~]$
df -hT

Filesystem Type Size Used Avail


Use% Mounted on
/dev/mapper/cl-root xfs 8.0G 1.1G 7.0G
14% /
devtmpfs devtmpfs 990M 0 990M
0% /dev
tmpfs tmpfs 1001M 0 1001M
0% /dev/shm
tmpfs tmpfs 1001M 8.4M 992M
1% /run
tmpfs tmpfs 1001M 0 1001M
0% /sys/fs/cgroup
/dev/vda1 xfs 1014M 121M 894M
12% /boot
tmpfs tmpfs 201M 0 201M
0% /run/user/1000
10.254.0.11:/shares/share-15db92a3-4e21-4efc-9c36-bb... nfs4 976M 1.3M 908M
1% /mnt

15

You might also like