cinder连接LVM存储后端

Table of Contents:

目标

创建增加cinder volume时volume type

_images/create_volume.png
[root@overcloud-controller-0 cinder]# cinder type-list
+--------------------------------------+--------------+--------------------------+-----------+
|                  ID                  |     Name     |       Description        | Is_Public |
+--------------------------------------+--------------+--------------------------+-----------+
| 289f591e-59a9-4f93-9549-eb553941240b | tripleo-ceph |   ceph tripleo backend   |    True   |
| d259562a-b958-4bb1-8149-15429ffd71af |  cinderlvm   | LVM test on controller-0 |   False   |
+--------------------------------------+--------------+--------------------------+-----------+

准备物理环境

  • 安装必要软件

rpm -ivh perl-Config-General-2.61-1.el7.noarch.rpm
rpm -ivh scsi-target-utils-1.0.55-4.el7.x86_64.rpm
  • 创建loop设备

由于节点已经没有多余裸盘可以用,所以从controller-0划出一部分空间挂载为loop设备:

dd if=/dev/zero of=/cinder-test.dontdelete bs=1 count=0 seek=100G
losetup /dev/loop3 /var/lib/cinder/cinder-test.dontdelete
  • 创建physical volume

[root@overcloud-controller-0 cinder]#pvcreate /dev/loop3
[root@overcloud-controller-0 cinder]#pvdisplay
--- Physical volume ---
PV Name               /dev/loop3
VG Name               cinderlvm
PV Size               100.00 GiB / not usable 4.00 MiB
Allocatable           yes
PE Size               4.00 MiB
Total PE              25599
Free PE               25599
Allocated PE          0
PV UUID               6Zpmmb-EjKi-PlHQ-ojon-9hJT-olHH-mMvhSW
  • 创建volume group

[root@overcloud-controller-0 cinder]#vgcreate cinderlvm /dev/loop3
[root@overcloud-controller-0 cinder]#vgdisplay
--- Volume group ---
VG Name               cinderlvm
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               100.00 GiB
PE Size               4.00 MiB
Total PE              25599
Alloc PE / Size       0 / 0
Free  PE / Size       25599 / 100.00 GiB
VG UUID               AyVZbf-FAIY-agzq-Hd3O-j7cx-sdiy-X03NkO

修改cinder配置文件

  • 查看当前配置

[root@overcloud-controller-0 cinder]# crudini --get /etc/cinder/cinder.conf DEFAULT enabled_backends
tripleo-ceph
  • 增加存储后端

[root@overcloud-controller-0 cinder]# crudini --set /etc/cinder/cinder.conf DEFAULT enabled_backends tripleo-ceph,lvmtest
  • 在/etc/cinder/cinder.conf中增加lvmtest段落

[lvmtest]   """对应[DEFAULT]段落中的enabled_backends"""
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinderlvm
iscsi_helper = tgtadm
volume_backend_name = lvmtest-renbin
  • 创建volume type

[root@overcloud-controller-0 cinder]# cinder type-create cinderlvm
[root@overcloud-controller-0 cinder]# cinder type-key cinderlvm set volume_backend_name=lvmtest-renbin
[root@overcloud-controller-0 cinder]# cinder extra-specs-list
+--------------------------------------+--------------+---------------------------------------------+
|                  ID                  |     Name     |                 extra_specs                 |
+--------------------------------------+--------------+---------------------------------------------+
| 289f591e-59a9-4f93-9549-eb553941240b | tripleo-ceph |  {u'volume_backend_name': u'tripleo-ceph'}  |
| d259562a-b958-4bb1-8149-15429ffd71af |  cinderlvm   | {u'volume_backend_name': u'lvmtest-renbin'} |
+--------------------------------------+--------------+---------------------------------------------+
  • 重启cinder服务

[root@overcloud-controller-0 cinder]#pcs resource restart openstack-cinder-scheduler-clone
[root@overcloud-controller-0 cinder]#pcs resource restart openstack-cinder-api-clone
[root@overcloud-controller-0 cinder]#pcs resource restart openstack-cinder-volume
  • 测试创建volume

[root@overcloud-controller-0 cinder]# cinder create --name testlvm --volume-type cinderlvm 10
+---------------------------------------+--------------------------------------+
|                Property               |                Value                 |
+---------------------------------------+--------------------------------------+
|              attachments              |                  []                  |
|           availability_zone           |                 nova                 |
|                bootable               |                false                 |
|          consistencygroup_id          |                 None                 |
|               created_at              |      2018-01-19T06:46:37.000000      |
|              description              |                 None                 |
|               encrypted               |                False                 |
|                   id                  | c4b247a8-9808-4bcf-a7b2-080b4cc2b0f9 |
|                metadata               |                  {}                  |
|            migration_status           |                 None                 |
|              multiattach              |                False                 |
|                  name                 |               testlvm                |
|         os-vol-host-attr:host         |                 None                 |
|     os-vol-mig-status-attr:migstat    |                 None                 |
|     os-vol-mig-status-attr:name_id    |                 None                 |
|      os-vol-tenant-attr:tenant_id     |   dcbb3cd11f48438383d6232af95b7d93   |
|   os-volume-replication:driver_data   |                 None                 |
| os-volume-replication:extended_status |                 None                 |
|           replication_status          |               disabled               |
|                  size                 |                  10                  |
|              snapshot_id              |                 None                 |
|              source_volid             |                 None                 |
|                 status                |               creating               |
|                user_id                |   1c3c35d5e1bb4c8c8d78c276661af2a9   |
|              volume_type              |              cinderlvm               |
+---------------------------------------+--------------------------------------+