Debian 10 Buster
Sponsored Link

OpenStack Rocky : How to use Manila2019/08/22

 
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  |   |                       |   |        Libvirt        |
|  Memcached  httpd     |   |        L2 Agent       |   |     Nova Compute      |
|  Keystone   Glance    |   |        L3 Agent       |   |        L2 Agent       |
|  Nova API             |   |     Metadata Agent    |   |                       |
|  Neutron Server       |   |      Manila Share     |   |                       |
|  Metadata Agent       |   |                       |   |                       |
|  Manila API           |   |                       |   |                       |
+-----------------------+   +-----------------------+   +-----------------------+

[1] Configure Storage Node.
root@storage:~#
apt -y install lvm2 nfs-kernel-server
# 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
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 restart manila-share nfs-server

root@storage:~#
systemctl enable 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           | YES                                  |
| ID                   | 6bd83ab3-4a7c-4b24-99b3-7af52b0e15e9 |
| optional_extra_specs |                                      |
| Description          | None                                 |
+----------------------+--------------------------------------+

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

+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
| ID                                   | Name               | visibility | is_default | required_extra_specs                 | optional_extra_specs | Description |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
| 6bd83ab3-4a7c-4b24-99b3-7af52b0e15e9 | default_share_type | public     | YES        | driver_handles_share_servers : False |                      | None        |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
[3] Login as a common user to create Manila NFS Share.
debian@dlp ~(keystone)$
manila create NFS 10 --name share01

+---------------------------------------+--------------------------------------+
| Property                              | Value                                |
+---------------------------------------+--------------------------------------+
| status                                | creating                             |
| share_type_name                       | default_share_type                   |
| description                           | None                                 |
| availability_zone                     | None                                 |
| share_network_id                      | None                                 |
| share_group_id                        | None                                 |
| 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                                    | ce3156cd-5fb0-4546-90ea-59f20cdf21aa |
| size                                  | 10                                   |
| source_share_group_snapshot_member_id | None                                 |
| user_id                               | 2af053ff367b47fc9e1a9139c29340b6     |
| name                                  | share01                              |
| share_type                            | 6bd83ab3-4a7c-4b24-99b3-7af52b0e15e9 |
| has_replicas                          | False                                |
| replication_type                      | None                                 |
| created_at                            | 2019-08-22T02:39:55.000000           |
| share_proto                           | NFS                                  |
| mount_snapshot_support                | False                                |
| project_id                            | 6de0ab5f5ae24824820df0ab890bd84f     |
| metadata                              | {}                                   |
+---------------------------------------+--------------------------------------+

# few minutes later, the Status turns to available

debian@dlp ~(keystone)$
manila list

+--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+
| ID                                   | Name    | Size | Share Proto | Status    | Is Public | Share Type Name    | Host | Availability Zone |
+--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+
| ce3156cd-5fb0-4546-90ea-59f20cdf21aa | share01 | 10   | NFS         | available | False     | default_share_type |      | nova              |
+--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+
[4] It's OK, you can use Manila Shared filesystem from Instances like follows.
debian@dlp ~(keystone)$
openstack server list

+--------------------------------------+-----------+---------+------------------------------------+----------+----------+
| ID                                   | Name      | Status  | Networks                           | Image    | Flavor   |
+--------------------------------------+-----------+---------+------------------------------------+----------+----------+
| ca63556d-5adc-4183-a2de-476da9f71780 | Debian_10 | SHUTOFF | int_net=192.168.100.10, 10.0.0.219 | Debian10 | m1.small |
+--------------------------------------+-----------+---------+------------------------------------+----------+----------+

# allow access permission first

debian@dlp ~(keystone)$
manila access-allow share01 ip 10.0.0.0/24 --access-level rw

+--------------+--------------------------------------+
| Property     | Value                                |
+--------------+--------------------------------------+
| access_key   | None                                 |
| share_id     | ce3156cd-5fb0-4546-90ea-59f20cdf21aa |
| created_at   | 2019-08-22T02:40:54.000000           |
| updated_at   | None                                 |
| access_type  | ip                                   |
| access_to    | 10.0.0.0/24                          |
| access_level | rw                                   |
| state        | queued_to_apply                      |
| id           | 0d8108c6-4bca-4de8-b3b1-42c998820964 |
| metadata     | {}                                   |
+--------------+--------------------------------------+

# it's no ploblem if State turns to active

debian@dlp ~(keystone)$
manila access-list share01

+--------------------------------------+-------------+------------------+--------------+--------+------------+----------------------------+------------+
| id                                   | access_type | access_to        | access_level | state  | access_key | created_at                 | updated_at |
+--------------------------------------+-------------+------------------+--------------+--------+------------+----------------------------+------------+
| 0d8108c6-4bca-4de8-b3b1-42c998820964 | ip          | 10.0.0.0/24      | rw           | active | None       | 2019-08-22T02:40:54.000000 | None       |
+--------------------------------------+-------------+------------------+--------------+--------+------------+----------------------------+------------+

debian@dlp ~(keystone)$
openstack server start Debian_10

# confirm access Path

debian@dlp ~(keystone)$
manila show share01 | grep path | cut -d'|' -f3

path = 10.0.0.50:/var/lib/manila/mnt/share-f1443e02-8cff-480f-8dd4-20e06cb29c45
debian@dlp ~(keystone)$
ssh debian@10.0.0.219

Linux debian-10 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u2 (2019-08-08) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
# mount Manila shared storage

debian@debian-10:~$
sudo mount -t nfs 10.0.0.50:/var/lib/manila/mnt/share-f1443e02-8cff-480f-8dd4-20e06cb29c45 /mnt

debian@debian-10:~$
df -hT

Filesystem                                                                Size  Used Avail Use% Mounted on
udev                                                                      983M     0  983M   0% /dev
tmpfs                                                                     200M  2.9M  197M   2% /run
/dev/mapper/debian--vg-root                                               7.6G  1.1G  6.1G  16% /
tmpfs                                                                     998M     0  998M   0% /dev/shm
tmpfs                                                                     5.0M     0  5.0M   0% /run/lock
tmpfs                                                                     998M     0  998M   0% /sys/fs/cgroup
/dev/vda1                                                                 236M   48M  176M  22% /boot
tmpfs                                                                     200M     0  200M   0% /run/user/1000
10.0.0.50:/var/lib/manila/mnt/share-f1443e02-8cff-480f-8dd4-20e06cb29c45  9.8G   36M  9.3G   1% /mnt
Matched Content