你提到的“云主机”(通常指一台已经创建好的虚拟机)本身是无法也没有必要安装Cinder 服务 的。

Cinder 是 OpenStack 的块存储服务组件,它运行在 OpenStack 的控制节点或存储节点上,为“云主机”提供块存储(云硬盘)的后端支持。
Cinder 是“制造”云硬盘的系统,而云主机是“使用”云硬盘的实体。
你真正的需求应该是:在 OpenStack 的某个节点(通常是控制节点或专门的存储节点)上安装和配置 Cinder 服务。
以下是为一个全新的 OpenStack 环境手动安装 Cinder 服务的标准流程(以 OpenStack Yoga 版本和 Ubuntu 22.04 LTS 为例),如果你的目标是已有的云主机,请忽略此流程。
- 你已经部署好了一个基本的 OpenStack 环境(包含 Keystone, Glance, Nova, Neutron 等核心服务)。

- 你有控制节点(Controller)和计算节点(Compute,可能也是存储节点Storage)的 root 权限。
- 数据库和消息队列(RabbitMQ)已经就绪。
Cinder 服务分为几个核心组件,通常部署在不同的节点:
控制节点:cinder-api (API服务),cinder-scheduler (调度器)
存储节点:cinder-volume (卷管理服务,实际管理存储后端)

备份节点(可选):cinder-backup
1、创建数据库(在数据库服务器上)
# 假设你的数据库在控制节点上
mysql -u root -p
# 创建 cinder 数据库及用户
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'YOUR_CINDER_DB_PASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'YOUR_CINDER_DB_PASS';
EXIT;2、创建服务凭据(在 Keystone 所在的控制节点执行)
source admin-openrc
# 创建 cinder 用户(在 Keystone 中)
openstack user create --domain default --password-prompt cinder
# 赋予 cinder 用户 admin 角色(在 service project 中)
openstack role add --project service --user cinder admin
# 创建 cinder 和 cinderv3 服务实体
openstack service create --name cinderv2 --description "OpenStack Block Storage" volume
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
# 创建 API 端点(假设控制节点 IP 为 192.168.1.10)
openstack endpoint create --region RegionOne volume public http://192.168.1.10:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne volume internal http://192.168.1.10:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne volume admin http://192.168.1.10:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev3 public http://192.168.1.10:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 internal http://192.168.1.10:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 admin http://192.168.1.10:8776/v3/%\(project_id\)s1、安装软件包
apt update
apt install cinder-api cinder-scheduler -y2、编辑配置文件:/etc/cinder/cinder.conf
[DEFAULT]
# 配置传输后端(使用 RabbitMQ)
transport_url = rabbit://openstack:RABBIT_PASS@192.168.1.10
# 配置 API 使用 Keystone 认证
auth_strategy = keystone
[database]
connection = mysql+pymysql://cinder:YOUR_CINDER_DB_PASS@192.168.1.10/cinder
[keystone_authtoken]
www_authenticate_uri = http://192.168.1.10:5000
auth_url = http://192.168.1.10:5000
memcached_servers = 192.168.1.10:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = cinder
password = CINDER_PASS
# 注意:替换 CINDER_PASS 为你之前创建的用户密码
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
# 可选:配置默认的存储后端
# [DEFAULT] 下也可以直接写
# enabled_backends = lvm-13、同步数据库
su -s /bin/sh -c "cinder-manage db sync" cinder4、启动服务并设置开机自启
systemctl restart cinder-api cinder-scheduler
systemctl enable cinder-api cinder-scheduler第三步:安装和配置存储节点(使用 LVM 后端)
1、安装软件包(在存储节点上)
apt install cinder-volume -y # 或 lvm2, cinder-backup 等2、配置 LVM(如果尚未配置)
# 假设你有一块空闲磁盘 /dev/sdb
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb3、配置 LVM 过滤(重要!)
编辑/etc/lvm/lvm.conf,修改devices 部分的filter,使其只包含你的 Cinder 卷用的磁盘,排除系统盘。
# 示例:只允许 /dev/sdb,排除其他所有设备
filter = [ "a|/dev/sdb|", "r|.*|" ]4、编辑 cinder.conf(在存储节点上)
在/etc/cinder/cinder.conf 中添加后端配置。
[DEFAULT]
# ... 其他配置与控制节点基本相同(transport_url, database, keystone等)
# 需要连接到控制节点的数据库和消息队列
[lvm-1] # 后端名称,可自定义
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes # 与上面 vgcreate 的名称一致
target_protocol = iscsi
target_helper = tgtadm
[DEFAULT]
enabled_backends = lvm-1 # 启用这个后端5、启动服务(在存储节点上)
systemctl restart cinder-volume
systemctl enable cinder-volume回到控制节点,执行:
source admin-openrc openstack volume service list
你应该能看到cinder-scheduler、cinder-volume 等服务的状态为up。
可以尝试创建卷:
openstack volume create --size 1 test-volume openstack volume list
如果你确实想在某个已经通过 OpenStack 创建好的云主机内部安装 Cinder 相关客户端工具或测试,则:
安装客户端(不是服务):
pip install python-cinderclient- 然后可以通过类似openstack volume list 的命令来管理存储(前提是云主机有对应的网络访问权限)。
Cinder 服务不在“云主机”上安装,而是在 OpenStack 的物理节点上安装,请根据你的实际角色(管理员/开发者)选择上述第1-3步或第4步的客户端安装。 如果你能提供更多的上下文(你是在手动搭建 OpenStack 还是在使用一个已有的环境),我可以给出更精确的指导。
文章摘自:https://idc.huochengrm.cn/zj/26447.html
评论