Ubuntu 20.04
Sponsored Link

OpenStack Ussuri : How to use Manila (Local Device)
2020/06/18
 
This is How to use OpenStack Shared File System (Manila).
This example is based on the environment 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_ips = 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. (example below is on Control Node)
root@dlp ~(keystone)#
manila type-create default_share_type False

+----------------------+--------------------------------------+
| Property             | Value                                |
+----------------------+--------------------------------------+
| ID                   | a86f56a3-fd21-40c4-936c-dbae4ceafb5b |
| 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 |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
| a86f56a3-fd21-40c4-936c-dbae4ceafb5b | 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                                    | 1c78dd34-c179-4a53-bdd8-32dfbd2789d9 |
| size                                  | 10                                   |
| availability_zone                     | None                                 |
| created_at                            | 2020-06-17T08:29:45.000000           |
| status                                | creating                             |
| name                                  | share01                              |
| description                           | None                                 |
| project_id                            | eaa8de359ae0451d944a6401e688f730     |
| snapshot_id                           | None                                 |
| share_network_id                      | None                                 |
| share_proto                           | NFS                                  |
| metadata                              | {}                                   |
| share_type                            | a86f56a3-fd21-40c4-936c-dbae4ceafb5b |
| 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                               | 2a1e722c971c45d384efe048155d89c7     |
| 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 |
+--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+
| 1c78dd34-c179-4a53-bdd8-32dfbd2789d9 | 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   |
+--------------------------------------+-------------+---------+-------------------------------------+------------+----------+
| 2dde6728-0e9a-4bd1-b10a-196162ec5e2a | Ubuntu_2004 | SHUTOFF | int_net=192.168.100.216, 10.0.0.210 | 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           | 713ebc06-41f5-414d-9765-67b1fad27cb5 |
| share_id     | 1c78dd34-c179-4a53-bdd8-32dfbd2789d9 |
| access_level | rw                                   |
| access_to    | 10.0.0.0/24                          |
| access_type  | ip                                   |
| state        | queued_to_apply                      |
| access_key   | None                                 |
| created_at   | 2020-06-17T08:30:59.000000           |
| 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 |
+--------------------------------------+-------------+-------------+--------------+--------+------------+----------------------------+------------+
| 713ebc06-41f5-414d-9765-67b1fad27cb5 | ip          | 10.0.0.0/24 | rw           | active | None       | 2020-06-17T08:30:59.000000 | 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-29407330-4d5d-4165-af71-f394f05bf339

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

Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-33-generic x86_64)

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

  System information as of Wed 17 Jun 2020 05:32:30 PM JST

  System load:  0.41              Processes:             105
  Usage of /:   24.1% of 8.34GB   Users logged in:       0
  Memory usage: 7%                IPv4 address for ens3: 192.168.100.216
  Swap usage:   0%


0 updates can be installed immediately.
0 of these updates are security updates.


The list of available updates is more than a week old.
To check for new updates run: sudo apt update

# mount Manila shared storage

ubuntu@ubuntu-2004:~$
sudo mount -t nfs \
10.0.0.50:/var/lib/manila/mnt/share-29407330-4d5d-4165-af71-f394f05bf339 /mnt

ubuntu@ubuntu-2004:~$
df -hT

Filesystem                                                               Type      Size  Used Avail Use% Mounted on
udev                                                                     devtmpfs  952M     0  952M   0% /dev
tmpfs                                                                    tmpfs     199M  716K  199M   1% /run
/dev/mapper/vgubuntu-root                                                ext4      8.4G  2.1G  5.9G  26% /
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/vda1                                                                vfat      511M  4.0K  511M   1% /boot/efi
tmpfs                                                                    tmpfs     199M     0  199M   0% /run/user/1000
10.0.0.50:/var/lib/manila/mnt/share-29407330-4d5d-4165-af71-f394f05bf339 nfs4      9.8G   36M  9.3G   1% /mnt
Matched Content