如何在云主机上安装Cinder服务?

HCRM技术_小炮 云主机 2026-06-10 5 0

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

云主机怎么安装cinder服务

Cinder 是 OpenStack 的块存储服务组件,它运行在 OpenStack 的控制节点或存储节点上,为“云主机”提供块存储(云硬盘)的后端支持。

Cinder 是“制造”云硬盘的系统,而云主机是“使用”云硬盘的实体。

你真正的需求应该是:在 OpenStack 的某个节点(通常是控制节点或专门的存储节点)上安装和配置 Cinder 服务

以下是为一个全新的 OpenStack 环境手动安装 Cinder 服务的标准流程(以 OpenStack Yoga 版本和 Ubuntu 22.04 LTS 为例),如果你的目标是已有的云主机,请忽略此流程。

准备工作:环境假设

- 你已经部署好了一个基本的 OpenStack 环境(包含 Keystone, Glance, Nova, Neutron 等核心服务)。

云主机怎么安装cinder服务

- 你有控制节点Controller)和计算节点Compute,可能也是存储节点Storage)的 root 权限。

- 数据库和消息队列(RabbitMQ)已经就绪。

核心安装步骤

Cinder 服务分为几个核心组件,通常部署在不同的节点:

控制节点cinder-api (API服务),cinder-scheduler (调度器)

存储节点cinder-volume (卷管理服务,实际管理存储后端)

云主机怎么安装cinder服务

备份节点(可选)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\)s

第二步:安装和配置控制节点组件

1、安装软件包

    apt update
    apt install cinder-api cinder-scheduler -y

2、编辑配置文件/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-1

3、同步数据库

    su -s /bin/sh -c "cinder-manage db sync" cinder

4、启动服务并设置开机自启

    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/sdb

3、配置 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-schedulercinder-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

评论