OpenStack Stein : How to use Manila#12019/05/17 |
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/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_ip = 10.0.0.50 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 | YES | | ID | 9cbec700-a2da-4116-9846-475ac3f0a57c | | optional_extra_specs | | | Description | None | +----------------------+--------------------------------------+[root@dlp ~(keystone)]# manila type-list +--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+ | ID | Name | visibility | is_default | required_extra_specs | optional_extra_specs | Description | +--------------------------------------+--------------------+------------+------------+--------------------------------------+----------------------+-------------+ | 9cbec700-a2da-4116-9846-475ac3f0a57c | 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 | +---------------------------------------+--------------------------------------+ | 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 | 1ecfd2a9-6eba-4dab-8b07-9a8c9adff9eb | | size | 10 | | source_share_group_snapshot_member_id | None | | user_id | b5dd128c2fd744c892ad7d1fb39d21a0 | | name | share01 | | share_type | 9cbec700-a2da-4116-9846-475ac3f0a57c | | has_replicas | False | | replication_type | None | | created_at | 2019-05-17T01:54:43.000000 | | share_proto | NFS | | mount_snapshot_support | False | | project_id | caab6ec580994e6481cd104b9d210f3f | | metadata | {} | +---------------------------------------+--------------------------------------+ # few minutes later, the Status turns to available [cent@dlp ~(keystone)]$ manila list +--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+ | ID | Name | Size | Share Proto | Status | Is Public | Share Type Name | Host | Availability Zone | +--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+ | 1ecfd2a9-6eba-4dab-8b07-9a8c9adff9eb | share01 | 10 | NFS | available | False | default_share_type | | nova | +--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+ |
[4] | It's OK all, you can use Manila Shared filesystem on your own instances like follows. |
[cent@dlp ~(keystone)]$ openstack server list +--------------------------------------+----------+---------+------------------------------------+---------+----------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+----------+---------+------------------------------------+---------+----------+ | aced428a-2d16-4679-9798-50e69c7aaf1d | CentOS_7 | SHUTOFF | int_net=192.168.100.59, 10.0.0.240 | CentOS7 | m1.small | +--------------------------------------+----------+---------+------------------------------------+---------+----------+ # allow access permission first [cent@dlp ~(keystone)]$ manila access-allow share01 ip 10.0.0.0/24 --access-level rw +--------------+--------------------------------------+ | Property | Value | +--------------+--------------------------------------+ | access_key | None | | share_id | 1ecfd2a9-6eba-4dab-8b07-9a8c9adff9eb | | created_at | 2019-05-17T01:55:35.000000 | | updated_at | None | | access_type | ip | | access_to | 10.0.0.0/24 | | access_level | rw | | state | queued_to_apply | | id | a4d47fef-afa9-4f39-a13d-ee12aaac2e93 | | 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 | +--------------------------------------+-------------+-------------+--------------+--------+------------+----------------------------+------------+ | a4d47fef-afa9-4f39-a13d-ee12aaac2e93 | ip | 10.0.0.0/24 | rw | active | None | 2019-05-17T01:55:35.000000 | None | +--------------------------------------+-------------+-------------+--------------+--------+------------+----------------------------+------------+
[cent@dlp ~(keystone)]$
openstack server start CentOS_7 # confirm access Path [cent@dlp ~(keystone)]$ manila show share01 | grep path | cut -d'|' -f3 path = 10.0.0.50:/var/lib/manila/mnt/share-1d3a5791-8ac6-4249-acda-4891d8f44f38
[cent@dlp ~(keystone)]$
ssh centos@10.0.0.240 Last login: Thu May 16 19:55:00 2019 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-1d3a5791-8ac6-4249-acda-4891d8f44f38 /mnt [centos@centos-7 ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 8.0G 1.1G 6.9G 14% / devtmpfs devtmpfs 988M 0 988M 0% /dev tmpfs tmpfs 1000M 0 1000M 0% /dev/shm tmpfs tmpfs 1000M 8.5M 992M 1% /run tmpfs tmpfs 1000M 0 1000M 0% /sys/fs/cgroup /dev/vda1 xfs 1014M 132M 883M 13% /boot tmpfs tmpfs 200M 0 200M 0% /run/user/1000 10.0.0.50:/var/lib/manila/mnt/share-1d3a5791-8ac6-4249-acda-4891d8f44f38 nfs4 9.8G 36M 9.2G 1% /mnt |
Sponsored Link |