说明
- 本方案是在每一个计算节点上安装cinder-volumes组件来完成对本地存储的管理。
- 若无特殊说明,以下步骤仅在计算节点执行。
1. 前期准备
- 检查计算节点是否安装 lvm ,iscsi
- 磁盘分区和格式化,裸盘不能直接使用,如果已完成分区和格式化,请跳过此步骤
# fdisk –l
[root@qa2 ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel
New disk label type? gpt
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes
(parted) mkpart
Partition name? []? 1
--指定分区名称“1”
File system type? [ext2]? ext2
--指定分区类型“ext2”
Start? 1
End? 3000G
--指定分区大小“3000G”
(parted) q
Information: You may need to update /etc/fstab.
2.创建物理卷(PV)
2.1 将分区sdb1创建为PV
# pvcreate /dev/sdb1
注意:需要对磁盘进行分区,裸盘不能直接使用。
2.2 验证PV创建成功
# pvdisplay
3.创建卷组(VG)
3.1 使用物理卷 /dev/sdb1创建卷组
# vgcreate ecloud-node1-sdb /dev/sdb1
注意:标红字段建议格式:ecloud-主机名-分区名称
3.2 验证VG创建成功,vddiaplay能看到名称为ecloud-node1-sdb的卷组
# vgdisplay
4.修改cinder.conf文件
注意:只需要修改计算节点的cinder.conf文件,纯管理节点不用做以下配置。云主机和云硬盘仅能使用计算节点上本地存储资源。
4.1 修改enabled_backends
在该节点创建几个VG卷组,就对应添加几个标签,不删除原有backend标签
# vi /etc/cinder/cinder.conf
enabled_backends=lvm-1,lvm-2
注意:
- backend标签名称lvm-1 与下面新增session的名称必须一致,且一个backend对应一个session
- 新增backend标签的个数与VG个数一致,一个backend对应一个VG
4.2 增加backend标签session
在cinder.conf文件的最后增加以下内容:
[lvm-1]
iscsi_helper = lioadm
volume_group = ecloud-node1-sdb
iscsi_ip_address = 127.0.0.1
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volumes_dir = /var/lib/cinder/volumes
iscsi_protocol = iscsi
volume_backend_name = lvm
注意:
- session的名称lvm-1与enabled_backends的值一一对应
- volume_group:卷组名称为创建的卷组的名称
- session里面,volume_backend_name都是一致的lvm
4.3 修改参数storage_availability_zone
在cinder.conf文件中,修改该参数的值为当前计算节点的主机名
storage_availability_zone=node1
4.4 管理节点创建存储类型(cinder type)
若安装管理节点时,install.conf文件中using_local_storage=y,则忽略该步骤,直接重启计算节点cinder服务
# source keystonerc_admin
# cinder type-create lvm
设置volume type lvm的backend_name.(将volume_backend_name=lvm的所有VG的type-key设置为lvm)
# cinder type-key lvm set volume_backend_name=lvm
4.5 重启计算节点cinder服务
# systemctl enable openstack-cinder-volume.service target.service
# systemctl restart openstack-cinder-volume.service target.service