OpenStack Bobcat : Use Cinder Storage (LVM)2023/10/25 |
It's possible to use Virtual Storages provided by Cinder if an Instance needs more disks.
Configure Virtual storage with LVM backend on here.
It needs there are some free space on disks of Storage Node. ------------+--------------------------+--------------------------+------------ | | | eth0|10.0.0.30 eth0|10.0.0.50 eth0|10.0.0.51 +-----------+-----------+ +-----------+-----------+ +-----------+-----------+ | [ dlp.srv.world ] | | [ network.srv.world ] | | [ node01.srv.world ] | | (Control Node) | | (Network Node) | | (Compute Node) | | | | | | | | MariaDB RabbitMQ | | Open vSwitch | | Libvirt | | Memcached Nginx | | Neutron Server | | Nova Compute | | Keystone httpd | | OVN-Northd | | Open vSwitch | | Glance Nova API | | Nginx iSCSI Target | | OVN Metadata Agent | | Cinder API | | Cinder Volume | | OVN-Controller | +-----------------------+ +-----------------------+ +-----------------------+ |
[1] | Create a volume group for Cinder on Storage Node. |
[root@network ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created [root@network ~]# vgcreate -s 32M vg_volume01 /dev/sdb1 Volume group "vg_volume01" successfully created |
[2] | Configure Cinder Volume on Storage Node. |
[root@network ~]#
vi /etc/cinder/cinder.conf # add follows into [DEFAULT] section enabled_backends = lvm # add follows to the end [lvm] target_helper = lioadm target_protocol = iscsi target_ip_address = $my_ip # volume group name just created volume_group = vg_volume01 volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volumes_dir = $state_path/volumes systemctl restart openstack-cinder-volume |
[3] | On Storage Node, If Firewalld is running, allow service ports. |
[root@network ~]# firewall-cmd --add-service=iscsi-target success [root@network ~]# firewall-cmd --runtime-to-permanent success |
[4] | Configure Nova on Compute Node. |
[root@node01 ~]#
vi /etc/iscsi/initiatorname.iscsi # create new # set any InitiatorName you like InitiatorName=iqn.2023-10.world.srv:node01.initiator01
[root@node01 ~]#
vi /etc/nova/nova.conf # add into the [keystone_authtoken] section [keystone_authtoken] ..... ..... service_token_roles = service service_token_roles_required = true # add to the end [service_user] send_service_user_token = true auth_url = https://dlp.srv.world:5000 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = servicepassword insecure = false [cinder] os_region_name = RegionOne
[root@node01 ~]#
systemctl restart openstack-nova-compute
# if SELinux enabled, change policy like follows
[root@node01 ~]#
vi iscsiadm.te # create new module iscsiadm 1.0; require { type iscsid_t; class capability dac_override; } #============= iscsid_t ============== allow iscsid_t self:capability dac_override; checkmodule -m -M -o iscsiadm.mod iscsiadm.te [root@node01 ~]# semodule_package --outfile iscsiadm.pp --module iscsiadm.mod [root@node01 ~]# semodule -i iscsiadm.pp |
[5] | Login as an openstack user and add volumes to your instances. For example, create a virtual disk [disk01] with 10GB. It's OK to work on any node. (example below is on Control Node) |
# set environment variable [cent@dlp ~(keystone)]$ echo "export OS_VOLUME_API_VERSION=3" >> ~/keystonerc [cent@dlp ~(keystone)]$ source ~/keystonerc
openstack volume create --size 10 disk01 +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2023-10-25T01:09:11.625557 | | description | None | | encrypted | False | | id | 4c809ae8-7861-4c32-bbc5-407a3cebf234 | | multiattach | False | | name | disk01 | | properties | | | replication_status | None | | size | 10 | | snapshot_id | None | | source_volid | None | | status | creating | | type | __DEFAULT__ | | updated_at | None | | user_id | d70a5f7908de4cd9aa8e189b725244a9 | +---------------------+--------------------------------------+[cent@dlp ~(keystone)]$ openstack volume list +--------------------------------------+--------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+--------+-----------+------+-------------+ | 4c809ae8-7861-4c32-bbc5-407a3cebf234 | disk01 | available | 10 | | +--------------------------------------+--------+-----------+------+-------------+ |
[6] | Attach the virtual disk to an Instance. For the example below, the disk is connected as [/dev/vdb]. It's possible to use it as a storage to create a file system on it. |
[cent@dlp ~(keystone)]$ openstack server list +--------------------------------------+------------+---------+------------------------------------+----------------+-----------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+------------+---------+------------------------------------+----------------+-----------+ | 78b8c394-be14-4312-84e8-06eeebbd74f3 | CentOS-St9 | SHUTOFF | private=10.0.0.208, 192.168.100.63 | CentOS-Stream9 | m1.medium | +--------------------------------------+------------+---------+------------------------------------+----------------+-----------+[cent@dlp ~(keystone)]$ openstack server add volume CentOS-St9 disk01 +-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | ID | 4c809ae8-7861-4c32-bbc5-407a3cebf234 | | Server ID | 78b8c394-be14-4312-84e8-06eeebbd74f3 | | Volume ID | 4c809ae8-7861-4c32-bbc5-407a3cebf234 | | Device | /dev/vdb | | Tag | None | | Delete On Termination | False | +-----------------------+--------------------------------------+ # the status of attached disk turns [in-use] like follows [cent@dlp ~(keystone)]$ openstack volume list +--------------------------------------+--------+--------+------+-------------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+--------+--------+------+-------------------------------------+ | 4c809ae8-7861-4c32-bbc5-407a3cebf234 | disk01 | in-use | 10 | Attached to CentOS-St9 on /dev/vdb | +--------------------------------------+--------+--------+------+-------------------------------------+ # detach the disk [cent@dlp ~(keystone)]$ openstack server remove volume CentOS-St9 disk01 |
Sponsored Link |