CentOS 8
Sponsored Link

OpenStack Ussuri : How to use Manila (Local Device)2020/06/11

 
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  |   |      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 ~]#
dnf -y install nfs-utils nfs4-acl-tools
# 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 enable --now openstack-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                   | 4f721763-0a1b-4065-87eb-eba2cdb56a51 |
| 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 |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
| 4f721763-0a1b-4065-87eb-eba2cdb56a51 | default_share_type | public     | YES        | driver_handles_share_servers : False |                      | None        |
+--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+
[3] Login as a common user to create Manila NFS Share.
[cent@dlp ~(keystone)]$
manila create NFS 10 --name share01

+---------------------------------------+--------------------------------------+
| Property                              | Value                                |
+---------------------------------------+--------------------------------------+
| id                                    | 4b852672-6c69-42c3-977e-ef96966848d6 |
| size                                  | 10                                   |
| availability_zone                     | None                                 |
| created_at                            | 2020-06-10T02:24:23.000000           |
| status                                | creating                             |
| name                                  | share01                              |
| description                           | None                                 |
| project_id                            | d9c8c215499949cfb249b28bdaba848a     |
| snapshot_id                           | None                                 |
| share_network_id                      | None                                 |
| share_proto                           | NFS                                  |
| metadata                              | {}                                   |
| share_type                            | 4f721763-0a1b-4065-87eb-eba2cdb56a51 |
| 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                               | 0e4117de456a4bbaa5aac2cc6507be91     |
| 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

[cent@dlp ~(keystone)]$
manila list

+--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+
| ID                                   | Name    | Size | Share Proto | Status    | Is Public | Share Type Name    | Host | Availability Zone |
+--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+
| 4b852672-6c69-42c3-977e-ef96966848d6 | 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.
[cent@dlp ~(keystone)]$
openstack server list

+--------------------------------------+----------+---------+------------------------------------+---------+----------+
| ID                                   | Name     | Status  | Networks                           | Image   | Flavor   |
+--------------------------------------+----------+---------+------------------------------------+---------+----------+
| 2929c442-26c4-41cb-b95f-98c3adceb3ef | CentOS_8 | SHUTOFF | int_net=192.168.100.24, 10.0.0.247 | CentOS8 | m1.small |
+--------------------------------------+----------+---------+------------------------------------+---------+----------+

# set access permission first

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

+--------------+--------------------------------------+
| Property     | Value                                |
+--------------+--------------------------------------+
| id           | fa98830f-e62c-4027-86b9-99eb55084572 |
| share_id     | 4b852672-6c69-42c3-977e-ef96966848d6 |
| access_level | rw                                   |
| access_to    | 10.0.0.0/24                          |
| access_type  | ip                                   |
| state        | queued_to_apply                      |
| access_key   | None                                 |
| created_at   | 2020-06-10T02:28:46.000000           |
| updated_at   | None                                 |
| metadata     | {}                                   |
+--------------+--------------------------------------+

# OK if State turns to [active]

[cent@dlp ~(keystone)]$
manila access-list share01

+--------------------------------------+-------------+-------------+--------------+--------+------------+----------------------------+------------+
| id                                   | access_type | access_to   | access_level | state  | access_key | created_at                 | updated_at |
+--------------------------------------+-------------+-------------+--------------+--------+------------+----------------------------+------------+
| fa98830f-e62c-4027-86b9-99eb55084572 | ip          | 10.0.0.0/24 | rw           | active | None       | 2020-06-10T02:28:46.000000 | None       |
+--------------------------------------+-------------+-------------+--------------+--------+------------+----------------------------+------------+

[cent@dlp ~(keystone)]$
openstack server start CentOS_8

# confirm access Path

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

 path = 10.0.0.50:/var/lib/manila/mnt/share-3544d5a3-7157-4c10-aaa3-edd4b6fd2512

[cent@dlp ~(keystone)]$
ssh centos@10.0.0.247

Last login: Mon Jun 8 03:57:42 2020 from 10.0.0.30
[centos@centos-8 ~]$
# mount Manila shared storage

[centos@centos-8 ~]$
sudo mount -t nfs \
10.0.0.50:/var/lib/manila/mnt/share-3544d5a3-7157-4c10-aaa3-edd4b6fd2512 /mnt

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

Filesystem                                                               Type      Size  Used Avail Use% Mounted on
devtmpfs                                                                 devtmpfs  901M     0  901M   0% /dev
tmpfs                                                                    tmpfs     915M     0  915M   0% /dev/shm
tmpfs                                                                    tmpfs     915M   17M  899M   2% /run
tmpfs                                                                    tmpfs     915M     0  915M   0% /sys/fs/cgroup
/dev/vda4                                                                xfs       7.4G  1.4G  6.1G  18% /
/dev/vda2                                                                ext4      976M  120M  790M  14% /boot
tmpfs                                                                    tmpfs     183M     0  183M   0% /run/user/1000
10.0.0.50:/var/lib/manila/mnt/share-3544d5a3-7157-4c10-aaa3-edd4b6fd2512 nfs4      9.8G   36M  9.3G   1% /mnt
Matched Content