OpenStack Queens多节点安装:控制与存储节点Cinder配置指南
一、环境准备与组件概述
1.1 节点角色划分
在OpenStack Queens多节点架构中,控制节点承担认证(Keystone)、编排(Heat)、镜像管理(Glance)等核心服务;存储节点则专注于块存储服务(Cinder),提供持久化存储能力。典型部署建议采用1个控制节点+N个存储节点的拓扑结构,确保高可用与性能平衡。
1.2 Cinder组件核心功能
Cinder作为OpenStack块存储服务,提供以下关键能力:
- 存储后端抽象:支持LVM、iSCSI、Ceph、NFS等多种后端存储
- 动态卷管理:实现卷的创建、挂载、快照、克隆等操作
- 多租户隔离:通过项目(Project)维度实现存储资源配额管理
- 快照与备份:支持卷快照及通过Swift/S3接口的远程备份
二、控制节点Cinder服务部署
2.1 数据库初始化
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';
关键点:需确保密码复杂度符合安全策略,建议使用16位以上包含大小写字母、数字及特殊字符的组合。
2.2 服务认证配置
编辑/etc/cinder/cinder.conf
核心配置文件:
[DEFAULT]
transport_url = rabbit://openstack:RABBIT_PASS@controller
auth_strategy = keystone
my_ip = 10.0.0.11 # 控制节点管理IP
[database]
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
[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 = CINDER_PASS
配置验证:通过openssl s_client -connect controller:35357
检查Keystone服务可达性。
2.3 服务启动与状态检查
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
# 验证服务状态
openstack volume service list
预期输出:应显示cinder-scheduler
和cinder-api
服务状态为up
。
三、存储节点Cinder后端配置
3.1 LVM存储后端设置
3.1.1 存储设备准备
# 列出可用磁盘
lsblk
# 创建物理卷(示例使用/dev/sdb)
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb
注意事项:
- 确保目标磁盘未被其他文件系统占用
- 生产环境建议使用RAID阵列提高数据可靠性
- 磁盘容量需根据业务需求预估,建议预留20%空间缓冲
3.1.2 配置过滤规则
编辑/etc/lvm/lvm.conf
:
devices {
filter = [ "a/dev/sdb", "r/.*/" ]
}
原理说明:该配置仅允许LVM操作/dev/sdb
设备,防止误操作其他磁盘。
3.2 Cinder存储节点配置
编辑/etc/cinder/cinder.conf
:
[DEFAULT]
enabled_backends = lvm
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = lioadm
高级配置(可选):
- 多后端支持:通过添加
[ceph]
等配置段实现混合存储 - QoS策略:配置
extra_specs
实现IOPS/带宽限制 - 复制功能:启用
replication_device
参数实现跨节点数据复制
3.3 服务启动与注册
systemctl enable openstack-cinder-volume.service
systemctl start openstack-cinder-volume.service
# 在控制节点验证存储节点
openstack volume service list
故障排查:
- 若服务状态显示
down
,检查/var/log/cinder/volume.log
日志 - 常见问题包括防火墙阻止iSCSI端口(3260)、LVM配置错误等
四、功能验证与使用示例
4.1 创建测试卷
openstack volume create --size 10 demo-vol1
openstack volume list
预期结果:卷状态应经历creating
→available
过程,约需30-60秒。
4.2 卷挂载测试
# 创建测试实例
openstack server create --flavor m1.tiny --image cirros --nic net-id=NETWORK_ID demo-vm
# 挂载卷(需先获取实例ID和卷ID)
openstack server add volume INSTANCE_ID VOLUME_ID
验证方法:
- 登录实例执行
fdisk -l
查看新设备 - 通过
openstack server show INSTANCE_ID
检查挂载状态
4.3 性能基准测试
使用fio
工具进行IO性能测试:
fio --name=randwrite --ioengine=libaio --iodepth=32 \
--rw=randwrite --bs=4k --direct=1 --size=1G \
--numjobs=4 --runtime=60 --group_reporting \
--filename=/dev/vdb
结果分析:重点关注IOPS、带宽、延迟等指标,与存储后端规格进行对比验证。
五、运维最佳实践
5.1 监控告警配置
推荐使用Prometheus+Grafana监控方案:
- 关键指标:卷创建延迟、后端存储使用率、iSCSI会话数
- 告警阈值:存储使用率>85%、卷操作失败率>5%
5.2 备份恢复策略
# 卷快照创建
openstack volume snapshot create --volume demo-vol1 snap1
# 从快照恢复
openstack volume create --snapshot snap1 restored-vol
跨区域备份:建议配置Swift作为后端实现地理冗余。
5.3 扩容与升级指南
存储扩容步骤:
- 添加新磁盘并扩展VG:
vgextend cinder-volumes /dev/sdc
- 在线扩展LV(如需):
lvextend -L+10G /dev/cinder-volumes/volume-XXX
- 更新Cinder元数据:
cinder-manage db sync
版本升级注意事项:
- Queens到Rocky升级需先升级数据库schema
- 升级前必须备份
/etc/cinder/
目录 - 建议在测试环境验证升级流程
六、常见问题解决方案
6.1 卷状态卡在”creating”
可能原因:
- 后端存储空间不足
- iSCSI服务未正确启动
- 数据库连接异常
解决步骤:
- 检查
df -h
确认存储空间 - 验证
iscsiadm -m session
输出 - 查看
/var/log/cinder/volume.log
获取详细错误
6.2 实例无法访问卷
排查流程:
- 确认实例所在计算节点能访问存储节点iSCSI端口
- 检查
multipath -ll
输出确认多路径配置 - 验证实例内设备文件(如
/dev/vdb
)是否存在
6.3 性能瓶颈分析
诊断工具:
iostat -x 1
:监控磁盘IO利用率netstat -i
:检查网络丢包率cinder-status upgrade check
:验证版本兼容性
优化建议:
- 对于高并发场景,建议配置多个Cinder后端
- 启用Cinder的QoS功能限制异常流量
- 考虑使用Ceph等分布式存储替代LVM
通过本文的详细指导,读者可完成OpenStack Queens版本中Cinder组件在控制节点和存储节点的完整部署。实际部署时,建议先在测试环境验证所有操作,并建立完善的备份恢复机制。对于生产环境,还需考虑高可用架构设计,如使用Pacemaker实现Cinder服务的主备切换。