安装配置并验证Cinder
Cinder块存储,为虚拟机实例提供持久化存储。它的存在简化了块存储设备的创建和管理。
创建Cinder数据库
在控制节点执行以下操作。
- 以root用户访问数据库。
1
mysql -u root -p
- 创建Cinder数据库,并授予对Cinder数据库的适当访问权限。
1 2 3 4
CREATE DATABASE cinder; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '<PASSWORD>'; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '<PASSWORD>'; exit
为方便理解,本文将涉及到的密码全部以“<PASSWORD>”代替,请用户根据实际情况进行修改。此处<PASSWORD>为cinder数据库的密码。
- 使用admin用户登录openstack命令行,创建服务凭据和Cinder用户。
1 2
source /etc/keystone/admin-openrc openstack user create --domain default --password-prompt cinder
- 将admin角色添加到Cinder用户。
1
openstack role add --project service --user cinder admin
- 创建cinderv2和cinderv3服务实体。
1 2
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2 openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
Cinder服务需要创建两个服务实体。
- 创建Block Storage服务API端点。
1 2 3
openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(project_id\)s openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(project_id\)s openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(project_id\)s
1 2 3
openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(project_id\)s openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(project_id\)s openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(project_id\)s
安装和配置Cinder
在控制节点执行以下操作。
- 安装软件包。
1
yum -y install openstack-cinder
- 编辑配置文件“/etc/cinder/cinder.conf”。
1
vim /etc/cinder/cinder.conf
并且完成以下操作:
- 配置数据库访问,替换<PASSWORD>为合适的密码。
1 2
[database] connection = mysql+pymysql://cinder:<PASSWORD>@controller/cinder
- 配置RabbitMQ消息队列访问,替换<PASSWORD>为合适的密码。
1 2
[DEFAULT] transport_url = rabbit://openstack:<PASSWORD>@controller
- 配置身份服务访问,替换<PASSWORD>为cinder在Identity服务中为用户选择的密码。
1 2
[DEFAULT] auth_strategy = keystone
keystone_authtoken模块:1 2 3 4 5 6 7 8 9 10
[keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = <PASSWORD>
- 配置my_ip选项以使用控制器节点的管理接口IP地址。
1 2
[DEFAULT] my_ip = 172.168.201.11
- 配置锁定路径。
1 2
[oslo_concurrency] lock_path = /var/lib/cinder/tmp
- 配置数据库访问,替换<PASSWORD>为合适的密码。
- 填充块存储数据库。
1
su -s /bin/sh -c "cinder-manage db sync" cinder
配置计算使用块存储
在控制节点执行以下操作。
- 编辑“/etc/nova/nova.conf”配置文件。
1
vim /etc/nova/nova.conf
- 完成以下操作:
1 2
[cinder] os_region_name = RegionOne
完成控制节点的安装
在控制节点执行以下操作。
- 重新启动Compute API服务。
1
systemctl restart openstack-nova-api.service
- 启动Block Storage服务并将其配置为在系统引导时启动。
1 2
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
- 验证控制节点的安装,state为up,即为状态正常。
1
openstack volume service list
集成Ceph块存储
当前版本不支持本地存储,需要集成Ceph实现存储功能。具体请参见《Ceph块存储 部署指南(CentOS 7.6&openEuler 20.03)》和《OpenStack&Ceph集成 部署指南》。
安装和配置存储节点
在存储节点执行以下操作。
- 安装软件包。
1
yum -y install openstack-cinder python2-keystone
- 编辑配置文件“/etc/cinder/cinder.conf”。
1
vim /etc/cinder/cinder.conf
并完成以下操作:
- 配置数据库访问。
1 2
[database] connection = mysql+pymysql://cinder:<PASSWORD>@controller/cinder
<PASSWORD>为Block Storage数据库选择的密码。
- 配置RabbitMQ消息队列访问。
1 2
[DEFAULT] transport_url = rabbit://openstack:<PASSWORD>@controller
<PASSWORD>为openstack账户选择的密码RabbitMQ。
- 配置身份服务访问。
1 2 3 4 5 6 7 8 9 10 11 12
[DEFAULT] auth_strategy = keystone [keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = <PASSWORD>
<PASSWORD>为Cinder在Identity服务中为用户选择的密码。
- 配置my_ip为存储节点上管理网络接口的IP地址。
1 2
[DEFAULT] my_ip = 172.168.201.12
- 新增[lvm]配置,使用LVM驱动程序,cinder-volumes卷组,iSCSI协议和相应的iSCSI服务配置LVM后端。
1 2 3 4 5
[lvm] volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volume_group = cinder-volumes target_protocol = iscsi target_helper = lioadm
- 启用LVM后端。
1 2
[DEFAULT] enabled_backends = lvm
- 配置Image服务API的位置。
1 2
[DEFAULT] glance_api_servers = http://controller:9292
- 配置锁定路径。
1 2
[oslo_concurrency] lock_path = /var/lib/cinder/tmp
- 配置数据库访问。
完成安装
在存储节点系以下操作。
启动Block Storage卷服务(包括其依赖项)并将其配置为在系统引导时启动。
1 2 |
systemctl enable openstack-cinder-volume.service systemctl start openstack-cinder-volume.service |
验证
在控制节点执行以下操作。
- 使用admin用户登录openstack命令行。
1
source /etc/keystone/admin-openrc
- 列出服务组件以验证每个进程的成功启动。
1
openstack volume service list
Cinder常用命令
命令行 |
功能描述 |
---|---|
openstack volume create --size 1 volume1 |
创建存储卷 |
openstack volume list |
显示存储卷列表 |
openstack volume delete VOLNAME-OR-ID |
删除所选存储卷 |
openstack volume snapshot create --volume VOLNAME-OR-ID SNAPSHOT-VOLNAME |
创建存储卷快照 |
openstack volume snapshot list |
显示存储卷快照 |
nova volume-attach VM_ID VOLUME_ID /dev/vdb |
虚拟机挂载卷 |
nova volume-detach VM_ID VOLUME_ID |
虚拟机卸载卷 |