Ubuntu 20.04
Sponsored Link

OpenStack Xena : How to use Manila (Local Device)2021/10/08

 
This is How to use OpenStack Shared File System (Manila).
This example is based on the environment like follows.
For example, Configure a local block device as a shared storage on Storage Node and use it on 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     |   |     Neutron Server    |   |     Nova Compute      |
|  Keystone   Glance    |   |       OVN-Northd      |   |      Open vSwitch     |
|  Nova API             |   |     Cinder Volume     |   |   OVN Metadata Agent  |
|  Cinder API           |   |     iSCSI Target      |   |     OVN-Controller    |
|  Manila API           |   |    Heat API/Engine    |   |                       |
|                       |   |     Manila Share      |   |                       |
+-----------------------+   +-----------------------+   +-----------------------+

[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/sdc1

  Physical volume "/dev/sdc1" successfully created
root@storage:~#
vgcreate manila-volumes /dev/sdc1

  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_ips = 10.0.0.50
root@storage:~#
systemctl restart manila-share nfs-server

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

+----------------------+--------------------------------------+
| Property             | Value                                |
+----------------------+--------------------------------------+
| ID                   | 5f92792f-51a8-4161-8e89-5170c12a61c6 |
| Name                 | default_share_type                   |
| Visibility           | public                               |
| is_default           | YES                                  |
| required_extra_specs | driver_handles_share_servers : False |
| optional_extra_specs |                                      |
| Description          | None                                 |
+----------------------+--------------------------------------+

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

+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
| ID                                   | Name               | visibility | is_default | required_extra_specs                 | optional_extra_specs | Description |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
| 5f92792f-51a8-4161-8e89-5170c12a61c6 | default_share_type | public     | YES        | driver_handles_share_servers : False |                      | None        |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
[3] Login as a common user to create Manila NFS Share.
ubuntu@dlp ~(keystone)$
manila create NFS 10 --name share01

+---------------------------------------+--------------------------------------+
| Property                              | Value                                |
+---------------------------------------+--------------------------------------+
| id                                    | be2bcfd6-d140-4081-a35d-ce4d3fbb381f |
| size                                  | 10                                   |
| availability_zone                     | None                                 |
| created_at                            | 2021-10-08T01:49:33.504792           |
| status                                | creating                             |
| name                                  | share01                              |
| description                           | None                                 |
| project_id                            | facc545a7f9e4218884c40169158a2dc     |
| snapshot_id                           | None                                 |
| share_network_id                      | None                                 |
| share_proto                           | NFS                                  |
| metadata                              | {}                                   |
| share_type                            | 5f92792f-51a8-4161-8e89-5170c12a61c6 |
| is_public                             | False                                |
| snapshot_support                      | False                                |
| task_state                            | None                                 |
| share_type_name                       | default_share_type                   |
| access_rules_status                   | active                               |
| replication_type                      | None                                 |
| has_replicas                          | False                                |
| user_id                               | f5a7ffdd6e54434badbd75ba0e6d6ac2     |
| create_share_from_snapshot_support    | False                                |
| revert_to_snapshot_support            | False                                |
| share_group_id                        | None                                 |
| source_share_group_snapshot_member_id | None                                 |
| mount_snapshot_support                | False                                |
| progress                              | None                                 |
+---------------------------------------+--------------------------------------+

# OK if the Status turns to [available] after a few minutes

ubuntu@dlp ~(keystone)$
manila list

+--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+
| ID                                   | Name    | Size | Share Proto | Status    | Is Public | Share Type Name    | Host | Availability Zone |
+--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+
| be2bcfd6-d140-4081-a35d-ce4d3fbb381f | share01 | 10   | NFS         | available | False     | default_share_type |      | nova              |
+--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+
[4] That's OK, you can use Manila Shared filesystem on your own instances like follows.
ubuntu@dlp ~(keystone)$
openstack server list

+--------------------------------------+-------------+---------+-------------------------------------+------------+----------+
| ID                                   | Name        | Status  | Networks                            | Image      | Flavor   |
+--------------------------------------+-------------+---------+-------------------------------------+------------+----------+
| 4699d575-1d94-4024-8323-9dfa3599c8d2 | Ubuntu-2004 | SHUTOFF | private=10.0.0.249, 192.168.100.237 | Ubuntu2004 | m1.small |
+--------------------------------------+-------------+---------+-------------------------------------+------------+----------+

# set access permission first

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

+--------------+--------------------------------------+
| Property     | Value                                |
+--------------+--------------------------------------+
| id           | e41ecd80-d180-47a7-b90b-b6a841e6b6db |
| share_id     | be2bcfd6-d140-4081-a35d-ce4d3fbb381f |
| access_level | rw                                   |
| access_to    | 10.0.0.0/24                          |
| access_type  | ip                                   |
| state        | queued_to_apply                      |
| access_key   | None                                 |
| created_at   | 2021-10-08T01:50:27.017429           |
| updated_at   | None                                 |
| metadata     | {}                                   |
+--------------+--------------------------------------+

# OK if State turns to [active]

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

+--------------------------------------+-------------+-------------+--------------+--------+------------+----------------------------+------------+
| id                                   | access_type | access_to   | access_level | state  | access_key | created_at                 | updated_at |
+--------------------------------------+-------------+-------------+--------------+--------+------------+----------------------------+------------+
| e41ecd80-d180-47a7-b90b-b6a841e6b6db | ip          | 10.0.0.0/24 | rw           | active | None       | 2021-10-08T01:50:27.017429 | None       |
+--------------------------------------+-------------+-------------+--------------+--------+------------+----------------------------+------------+

ubuntu@dlp ~(keystone)$
openstack server start Ubuntu-2004

# confirm access Path

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

 path = 10.0.0.50:/var/lib/manila/mnt/share-3fd741d5-4cb7-444b-87fc-a14e0727f02f

ubuntu@dlp ~(keystone)$
ssh ubuntu@10.0.0.249

Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-88-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri Oct  8 01:52:19 UTC 2021
.....
.....

# mount Manila shared storage

ubuntu@ubuntu-2004:~$
sudo mount -t nfs \
10.0.0.50:/var/lib/manila/mnt/share-3fd741d5-4cb7-444b-87fc-a14e0727f02f /mnt

ubuntu@ubuntu-2004:~$
df -hT

Filesystem                                                               Type      Size  Used Avail Use% Mounted on
udev                                                                     devtmpfs  977M     0  977M   0% /dev
tmpfs                                                                    tmpfs     199M  964K  198M   1% /run
/dev/vda1                                                                ext4      9.6G  1.4G  8.2G  15% /
tmpfs                                                                    tmpfs     994M     0  994M   0% /dev/shm
tmpfs                                                                    tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs                                                                    tmpfs     994M     0  994M   0% /sys/fs/cgroup
/dev/loop0                                                               squashfs   62M   62M     0 100% /snap/core20/1081
/dev/loop1                                                               squashfs   68M   68M     0 100% /snap/lxd/21545
/dev/loop2                                                               squashfs   33M   33M     0 100% /snap/snapd/13170
/dev/vda15                                                               vfat      105M  5.2M  100M   5% /boot/efi
/dev/loop3                                                               squashfs   62M   62M     0 100% /snap/core20/1169
tmpfs                                                                    tmpfs     199M     0  199M   0% /run/user/1000
10.0.0.50:/var/lib/manila/mnt/share-3fd741d5-4cb7-444b-87fc-a14e0727f02f nfs4      9.8G   36M  9.3G   1% /mnt
Matched Content