OpenStack Ussuri : Manila 利用 (専用インスタンス)2020/06/18 |
OpenStack Shared File System(Manila)による共有の設定です。
当例では以下のような環境を例に Manila をインストールして設定しています。
例として、専用のインスタンスを利用した NFS 共有を設定します。
------------+---------------------------+---------------------------+------------ | | | eth0|10.0.0.30 eth0|10.0.0.50 eth0|10.0.0.51 +-----------+-----------+ +-----------+-----------+ +-----------+-----------+ | [ Control Node ] | | [ Storage Node ] | | [ Compute Node ] | | | | | | | | MariaDB RabbitMQ | | Cinder-Volume | | Libvirt | | Memcached httpd | | L2 Agent | | Nova Compute | | Keystone Glance | | L3 Agent | | L2 Agent | | Nova API Cinder API | | Metadata Agent | | | | Neutron Server | | Manila Share | | | | Metadata Agent | | | | | | Manila API | | | | | +-----------------------+ +-----------------------+ +-----------------------+ |
[1] |
バックエンドに Cinder ストレージを利用するため、事前に設定しておきます。
(Cinder のバックエンドは何でも OK) |
[2] | Storage ノードの設定です。 |
root@storage:~#
vi /etc/manila/manila.conf # [DEFAULT] セクション内の任意の場所へ追記
enabled_share_backends = generic
# 最終行へ追記
[neutron]
url = http://10.0.0.30:9696
auth_url = http://10.0.0.30:5000
memcached_servers = 10.0.0.30:11211
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = servicepassword
[nova]
auth_url = http://10.0.0.30:5000
memcached_servers = 10.0.0.30:11211
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = servicepassword
[cinder]
auth_url = http://10.0.0.30:5000
memcached_servers = 10.0.0.30:11211
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = cinder
password = servicepassword
[generic]
share_backend_name = backend01
share_driver = manila.share.drivers.generic.GenericShareDriver
interface_driver = manila.network.linux.interface.BridgeInterfaceDriver
driver_handles_share_servers = True
service_instance_flavor_id = 0
service_instance_security_group = manila-service
service_image_name = manila-service-image
service_instance_user = manila
service_instance_password = manila
service_network_cidr = 10.254.0.0/16
service_network_division_mask = 24
systemctl restart manila-share |
[3] | Manila のサービスイメージをダウンロードして、Glance に登録しておきます。また Manilaサービス用のセキィリティグループも作成しておきます。 |
root@dlp ~(keystone)# wget https://tarballs.opendev.org/openstack/manila-image-elements/images/manila-service-image-master.qcow2 root@dlp ~(keystone)# openstack image create "manila-service-image" --file manila-service-image-master.qcow2 --disk-format qcow2 --container-format bare --public +------------------+--------------------------------------------------------------------------------+ | Field | Value | +------------------+--------------------------------------------------------------------------------+ | checksum | 86ff39a9ffe1fbf0d35557d81ea01d51 | | container_format | bare | | created_at | 2020-06-18T00:36:02Z | | disk_format | qcow2 | | file | /v2/images/0a5e4628-aa7c-4e1f-b785-0418259e7df2/file | | id | 0a5e4628-aa7c-4e1f-b785-0418259e7df2 | | min_disk | 0 | | min_ram | 0 | | name | manila-service-image | | owner | 3227cdd34d5c4d9c97eeb8f0dfdf5d0e | | properties | os_hash_algo='sha512', os_hash_value='a7f284913fd4f4447f8108603b1d634d5f7a79e8 | | protected | False | | schema | /v2/schemas/image | | size | 468320256 | | status | active | | tags | | | updated_at | 2020-06-18T00:36:05Z | | visibility | public | +------------------+--------------------------------------------------------------------------------+ # [service] プロジェクトで専用のセキィリティグループ作成 root@dlp ~(keystone)# openstack security group create --project service manila-service +-----------------+---------------------------------------------------------------------------------+ | Field | Value | +-----------------+---------------------------------------------------------------------------------+ | created_at | 2020-06-18T00:36:43Z | | description | manila-service | | id | e40f3ea5-259a-4c64-a22b-742097178ae9 | | location | cloud='', project.domain_id=, project.domain_name=, project.id='c0e098a54a4640c | | name | manila-service | | project_id | c0e098a54a4640caa9004fb8f500f554 | | revision_number | 1 | | rules | created_at='2020-06-18T00:36:43Z', direction='egress', ethertype='IPv6', id=... | | | created_at='2020-06-18T00:36:43Z', direction='egress', ethertype='IPv4', id=... | | stateful | True | | tags | [] | | updated_at | 2020-06-18T00:36:43Z | +-----------------+---------------------------------------------------------------------------------+ # 作成したセキィリティグループに必要なポートを許可 root@dlp ~(keystone)# openstack security group rule create --protocol icmp --ingress manila-service root@dlp ~(keystone)# openstack security group rule create --protocol tcp --dst-port 22:22 manila-service root@dlp ~(keystone)# openstack security group rule create --protocol tcp --dst-port 2049:2049 manila-service |
[4] | デフォルトの共有タイプを作成します。 |
root@dlp ~(keystone)# manila type-create default_share_type True +----------------------+--------------------------------------+ | Property | Value | +----------------------+--------------------------------------+ | ID | b4f761a9-f04d-4ff9-afe0-638b44571bd0 | | Name | default_share_type | | Visibility | public | | is_default | YES | | required_extra_specs | driver_handles_share_servers : True | | optional_extra_specs | | | Description | None | +----------------------+--------------------------------------+root@dlp ~(keystone)# manila type-list +--------------------------------------+--------------------+------------+------------+-------------------------------------+----------------------+-------------+ | ID | Name | visibility | is_default | required_extra_specs | optional_extra_specs | Description | +--------------------------------------+--------------------+------------+------------+-------------------------------------+----------------------+-------------+ | b4f761a9-f04d-4ff9-afe0-638b44571bd0 | default_share_type | public | YES | driver_handles_share_servers : True | | None | +--------------------------------------+--------------------+------------+------------+-------------------------------------+----------------------+-------------+ |
[5] | 以降は共有を作成して自身が所有するインスタンスで利用したい任意のユーザーで作業します。まずは共有ネットワークを作成しておきます。 |
ubuntu@dlp ~(keystone)$ openstack network list +--------------------------------------+---------+--------------------------------------+ | ID | Name | Subnets | +--------------------------------------+---------+--------------------------------------+ | 1f3f1f9b-4822-4312-b5a5-51a529cd6e8a | ext_net | ddfcdd10-7ecb-4239-b3d7-46fdd15a006d | | b351e1b9-bd7c-4e3c-b5eb-848d211f4392 | int_net | e2a461fc-9d50-4bab-913f-14067b175ea6 | +--------------------------------------+---------+--------------------------------------+ubuntu@dlp ~(keystone)$ openstack subnet list +--------------------------------------+---------+--------------------------------------+------------------+ | ID | Name | Network | Subnet | +--------------------------------------+---------+--------------------------------------+------------------+ | e2a461fc-9d50-4bab-913f-14067b175ea6 | subnet1 | b351e1b9-bd7c-4e3c-b5eb-848d211f4392 | 192.168.100.0/24 | +--------------------------------------+---------+--------------------------------------+------------------+
ubuntu@dlp ~(keystone)$
ubuntu@dlp ~(keystone)$ INT_NET=$(openstack network list | grep 'int_net' | awk '{print $2}') ubuntu@dlp ~(keystone)$ INT_SUBNET=$(openstack subnet list | grep 'subnet1' | awk '{print $2}')
manila share-network-create --neutron-net-id $INT_NET --neutron-subnet-id $INT_SUBNET --name manila_share +-----------------------+---------------------------------------------------------------------------+ | Property | Value | +-----------------------+---------------------------------------------------------------------------+ | id | c54808bb-0f9a-4910-bda4-008cfcadcd48 | | name | manila_share | | project_id | eaa8de359ae0451d944a6401e688f730 | | created_at | 2020-06-18T00:39:01.000000 | | updated_at | None | | description | None | | share_network_subnets | [{'id': '99d08614-91a5-49f0-b691-222b49be615a', 'availability_zone': N... | +-----------------------+---------------------------------------------------------------------------+ubuntu@dlp ~(keystone)$ manila share-network-list +--------------------------------------+--------------+ | id | name | +--------------------------------------+--------------+ | c54808bb-0f9a-4910-bda4-008cfcadcd48 | manila_share | +--------------------------------------+--------------+ |
[6] | NFS 共有を作成します。 |
ubuntu@dlp ~(keystone)$ manila create NFS 5 --name share01 --share-network manila_share +---------------------------------------+--------------------------------------+ | Property | Value | +---------------------------------------+--------------------------------------+ | id | 28ab0c70-f59a-4f90-b391-aecd23b6971b | | size | 5 | | availability_zone | None | | created_at | 2020-06-18T00:40:46.000000 | | status | creating | | name | share01 | | description | None | | project_id | eaa8de359ae0451d944a6401e688f730 | | snapshot_id | None | | share_network_id | c54808bb-0f9a-4910-bda4-008cfcadcd48 | | share_proto | NFS | | metadata | {} | | share_type | b4f761a9-f04d-4ff9-afe0-638b44571bd0 | | 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 | +---------------------------------------+--------------------------------------+ # Status が [available] になれば作成完了 ubuntu@dlp ~(keystone)$ manila list +--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+ | ID | Name | Size | Share Proto | Status | Is Public | Share Type Name | Host | Availability Zone | +--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+ | 28ab0c70-f59a-4f90-b391-aecd23b6971b | share01 | 5 | NFS | available | False | default_share_type | | nova | +--------------------------------------+---------+------+-------------+-----------+-----------+--------------------+------+-------------------+ |
[7] | ここまでの設定で Storage ノード上に [10.254.0.0] 内から任意のネットワークが設定されます。 |
root@storage:~# ip addr ..... ..... 10: ns-cf787217-72@tapcf787217-72: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether fa:16:3e:11:8d:9d brd ff:ff:ff:ff:ff:ff inet 10.254.0.16/24 brd 10.254.0.255 scope global ns-cf787217-72 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fe11:8d9d/64 scope link valid_lft forever preferred_lft forever ..... ..... |
[8] | 以上で、共有を作成したユーザーが所有するインスタンスから Manila の共有サービスを利用することができます。 |
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 | +--------------------------------------+-------------+---------+-------------------------------------+------------+----------+ # アクセス許可の設定 (インスタンスの IP アドレス または インスタンスが属するサブネットを指定) ubuntu@dlp ~(keystone)$ manila access-allow share01 ip 10.0.0.0/24 --access-level rw +--------------+--------------------------------------+ | Property | Value | +--------------+--------------------------------------+ | id | 3ecf6b4f-774b-484e-aa24-367a583ef023 | | share_id | 28ab0c70-f59a-4f90-b391-aecd23b6971b | | access_level | rw | | access_to | 10.0.0.0/24 | | access_type | ip | | state | queued_to_apply | | access_key | None | | created_at | 2020-06-18T00:45:39.000000 | | updated_at | None | +--------------+--------------------------------------+ # State が active であれば問題なし ubuntu@dlp ~(keystone)$ manila access-list share01 +--------------------------------------+-------------+------------------+--------------+--------+------------+----------------------------+------------+ | id | access_type | access_to | access_level | state | access_key | created_at | updated_at | +--------------------------------------+-------------+------------------+--------------+--------+------------+----------------------------+------------+ | 3ecf6b4f-774b-484e-aa24-367a583ef023 | ip | 10.0.0.0/24 | rw | active | None | 2020-06-18T00:45:39.000000 | None | | b02a0a39-e24e-47b0-812c-26840a87024d | ip | 192.168.100.0/24 | rw | active | None | 2020-06-18T00:45:55.000000 | None | +--------------------------------------+-------------+------------------+--------------+--------+------------+----------------------------+------------+
ubuntu@dlp ~(keystone)$
openstack server start Ubuntu_2004 # アクセス Path 確認 ubuntu@dlp ~(keystone)$ manila show share01 | grep path | cut -d'|' -f3 path = 10.254.0.215:/shares/share-102e10e9-8c24-42c4-b2e8-abd52af4b5d2ubuntu@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 Thu 18 Jun 2020 09:48:01 AM JST System load: 0.56 Processes: 104 Usage of /: 24.2% of 8.34GB Users logged in: 0 Memory usage: 7% IPv4 address for ens3: 192.168.100.216 Swap usage: 0% 31 updates can be installed immediately. 21 of these updates are security updates. To see these additional updates run: apt list --upgradable # Manila 共有ストレージをマウント ubuntu@ubuntu-2004:~$ sudo mount -t nfs \ 10.254.0.215:/shares/share-102e10e9-8c24-42c4-b2e8-abd52af4b5d2 /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.254.0.215:/shares/share-102e10e9-8c24-42c4-b2e8-abd52af4b5d2 nfs4 4.9G 20M 4.6G 1% /mnt |
Sponsored Link |