openstack 管理三十 - rpm 方式部署 openstack [cinder]

本文介绍OpenStack Cinder组件的配置过程,包括与Keystone、RabbitMQ及Ceph的连接设置,以及支持的各种块存储类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用

1 cinder 需要连接 ceph 进行云硬盘存储
2 cinder 需要连接 keystone 进行用户验证
3 cinder 需要连接 rabbitmq 处理消息队列

默认下 openstack 提供卷驱动, 支持下面的块存储类型

LVM/iSCSI
ThinLVM
NFS
NetAPP NFS
Red Hat Storage (Gluster)
Dell EqualLogic
CEPH

配置

配置 keystone 验证

# openstack-config --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone
# openstack-config --set /etc/cinder/cinder.conf keystone_authtoken auth_host 240.10.130.25
# openstack-config --set /etc/cinder/cinder.conf keystone_authtoken admin_tenant_name service
# openstack-config --set /etc/cinder/cinder.conf keystone_authtoken admin_user cinder
# openstack-config --set /etc/cinder/cinder.conf keystone_authtoken admin_password cinder
# openstack-config --set /etc/cinder/cinder.conf keystone_authtoken identity_uri  http://240.10.130.25:35357

配置监控端口,地址

# openstack-config --set /etc/cinder/cinder.conf DEFAULT  osapi_volume_listen <你自己IP>
# openstack-config --set /etc/cinder/cinder.conf DEFAULT  osapi_volume_listen_port 8776

数据库配置

# openstack-config --set /etc/cinder/cinder.conf DEFAULT sql_connection mysql://cinder:cinder@240.10.130.25/cinder
# cinder-manage db sync

执行 db sync 之后, 正常会在数据库中看到下面一堆表

mysql> use cinder;
Database changed

mysql> show tables;
+--------------------------+
| Tables_in_cinder         |
+--------------------------+
| backups                  |
| encryption               |
| iscsi_targets            |
| migrate_version          |
| quality_of_service_specs |
| quota_classes            |
| quota_usages             |
| quotas                   |
| reservations             |
| services                 |
| snapshot_metadata        |
| snapshots                |
| transfers                |
| volume_admin_metadata    |
| volume_glance_metadata   |
| volume_metadata          |
| volume_type_extra_specs  |
| volume_types             |
| volumes                  |
+--------------------------+
19 rows in set (0.00 sec)

配置 cinder 服务配置

cpu 配置

设定 cinder 的进程数量 cores = cpu 个数

# CORES=16
# openstack-config --set /etc/cinder/cinder.conf DEFAULT osapi_volume_workers $CORES

cinder 连接 rabbitmq

设定 rabbitmq 作为 rpc 后台

# openstack-config --set /etc/cinder/cinder.conf DEFAULT rpc_backend cinder.openstack.common.rpc.impl_kombu
# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_host <rabbit_mq_server>
# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_port <rabbit_mq port>
# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_use_ssl false
# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_userid cinder
# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_userid <cinder_password>
# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_login_method AMQPLAIN
# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_virtual_host /
# openstack-config --set /etc/cinder/cinder.conf DEFAULT host <cinder_host>

cinder 连接 rabbitmq 方法

	# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_host 240.10.130.25
	# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_virtual_host /
	# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_port 5672
	# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_userid guest
	# openstack-config --set /etc/cinder/cinder.conf DEFAULT rabbit_password openstack

其他配置

# openstack-config --set /etc/cinder/cinder.conf DEFAULT notification_driver cinder.openstack.common.notifier.rpc_notifier
# openstack-config --set /etc/cinder/cinder.conf DEFAULT control_exchange openstack
# openstack-config --set /etc/cinder/cinder.conf DEFAULT api_paste_config /etc/cinder/api-paste.ini
# openstack-config --set /etc/cinder/cinder.conf DEFAULT glance_host <你的ip>
# openstack-config --set /etc/cinder/cinder.conf DEFAULT backup_topic cinder-backup
# openstack-config --set /etc/cinder/cinder.conf DEFAULT backup_manager cinder.backup.manager.BackupManager
# openstack-config --set /etc/cinder/cinder.conf DEFAULT backup_api_class cinder.backup.api.API
# openstack-config --set /etc/cinder/cinder.conf DEFAULT volume_group cinder-volumes

cinder 与 ceph 连接

基本的 ceph 连接配置

# openstack-config --set /etc/cinder/cinder.conf DEFAULT enabled_backends CEPH_SATA
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA glance_api_version 2
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA volume_backend_name ceph_sata
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA rbd_ceph_conf /etc/ceph/ceph-test.conf (ceph 配置)
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA rbd_user testyun (ceph 用户)
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA rbd_flatten_volume_from_snapshot False
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA rados_connect_timeout -1
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA rbd_max_clone_depth 5
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA volume_driver cinder.volume.drivers.rbd.RBDDriver
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA rbd_store_chunk_size 4
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA rbd_secret_uuid 4dc4979a-7dad-4101-9722-20f5917ee133 (ceph 集群 uuid)
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA rbd_pool data (ceph rbd pool)
# openstack-config --set /etc/cinder/cinder.conf CEPH_SATA host ns-yun.vclound.com (对应上面 default 中 host配置) 

参考 openstack 管理二十二 - cinder 连接多个存储 backend

注: 默认情况下, 当 cinder 成功使用, 并在创建云硬盘时候, 会自动地连接 ceph, 不需要人为手动挂载

配置 token 验证 (可选, 不影响 cinder create 1)

# openstack-config --set /etc/cinder/api-paste.ini filter:authtoken paste.filter_factory keystoneclient.middleware.auth_token:filter_factory

注: 假如上述 token 不配置, 则在 /var/log/cinder/api.log 中会经常看见下面警告

2014-10-04 15:40:35.830 63155 WARNING keystoneclient.middleware.auth_token [-] Configuring auth_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
2014-10-04 15:40:35.873 63155 WARNING keystoneclient.middleware.auth_token [-] Configuring auth_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint

而下面警告可忽略, 官方提出这个可能是一个 bug, 并在下一个版本会修复

2014-10-04 15:41:05.370 63170 WARNING cinder.context [-] Arguments dropped when creating context: {'user': None, 'tenant': None, 'user_identity': u'- - - - -'}
2014-10-04 15:42:05.372 63170 WARNING cinder.context [-] Arguments dropped when creating context: {'user': None, 'tenant': None, 'user_identity': u'- - - - -'}

创建 云盘 验证

创建云盘

# cinder create --display-name testimg --display-description testimg --volume-type CEPH_SATA 10
+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2025-02-20T03:08:58.049611      |
| display_description |               testimg                |
|     display_name    |               testimg                |
|      encrypted      |                False                 |
|          id         | 9e39ad55-b566-4a47-9796-f5e29c0748de |
|       metadata      |                  {}                  |
|         size        |                  10                  |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|       user_id       |   e67d2bd90d7f4b12b062df5b8e329d37   |
|     volume_type     |              CEPH_SATA               |
+---------------------+--------------------------------------+

查询云盘

# cinder list
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
|                  ID                  |   Status  | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| 9e39ad55-b566-4a47-9796-f5e29c0748de | available |   testimg    |  10  |  CEPH_SATA  |  false   |             |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

到 ceph 中进行验证

# rbd -p data info volume-9e39ad55-b566-4a47-9796-f5e29c0748de
rbd image 'volume-9e39ad55-b566-4a47-9796-f5e29c0748de':
        size 10GiB in 2560 objects
        order 22 (4MiB objects)
        block_name_prefix: rbd_data.11bc6a9be815
        format: 2
        features: layering
        flags:
        create_timestamp: Thu Feb 20 11:08:59 2025
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值