OpenStack-Placement组件部署-----T版

本文档详细介绍了如何部署OpenStack的Placement组件,包括创建数据库实例和用户、配置Placement服务用户、API endpoint的设置,以及安装、配置和测试Placement服务的过程。Placement是从Nova中分离出的组件,用于管理资源分配信息,其监听端口为8778。

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

一、创建数据库实例和数据库用户

[root@controller ~]# mysql -uroot -p123456

MariaDB [(none)]> CREATE DATABASE placement;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'PLACEMENT_DBPASS';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'PLACEMENT_DBPASS';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> exit
Bye

二、创建Placement服务用户和API的endpoint

2.1、创建placement用户

[root@controller ~]# openstack user create --domain default --password PLACEMENT_PASS placement
 +---------------------+----------------------------------+
 | Field               | Value                            |
 +---------------------+----------------------------------+
 | domain_id           | default                          |
 | enabled             | True                             |
 | id                  | c46bb0ad1f794a0e9a32e8c4dd5e3002 |
 | name                | placement                        |
 | options             | {
   }                               |
 | password_expires_at | None                             |
 +---------------------+----------------------------------+

2.2、给与placement用户对service项目拥有admin权限

[root@controller ~]# openstack role add --project service --user placement admin

2.3、创建一个placement服务,服务类型为placement

[root@controller ~]#  openstack service create --name placement --description "Placement API" placement
 +
### OpenStack与Ceph-deploy部署的Ceph集群对接配置指南 #### 1. 准备工作 在将OpenStack与通过`ceph-deploy`部署的Ceph集群进行对接之前,需确保以下条件已满足: - 已完成Ceph集群的正常部署并验证其功能[^1]。 - OpenStack环境已完成基本安装,并能够正常运行。 - 网络连通性:Ceph集群中的Monitor节点和OSD节点应能与OpenStack控制节点通信。 #### 2. 配置Ceph客户端环境 为了使OpenStack能够访问Ceph存储池,需要在OpenStack环境中设置Ceph客户端的相关参数。具体操作如下: ##### (1)复制Ceph配置文件至OpenStack节点 将Ceph集群的配置文件`ceph.conf`以及密钥环文件`ceph.client.admin.keyring`从Ceph管理节点拷贝到OpenStack控制节点和其他相关计算节点上: ```bash scp /etc/ceph/ceph.conf root@<openstack-control-node>:/etc/ceph/ scp /etc/ceph/ceph.client.admin.keyring root@<openstack-control-node>:/etc/ceph/ ``` ##### (2)修改权限 确保Ceph配置文件和密钥环文件具有适当的安全权限: ```bash chmod 644 /etc/ceph/ceph.conf chmod 600 /etc/ceph/ceph.client.admin.keyring chown ceph:ceph /etc/ceph/ceph.* ``` #### 3. 创建RBD Pool供OpenStack使用 创建一个新的RADOS Block Device (RBD) pool来专门服务于OpenStack实例的数据存储需求: ```bash ceph osd pool create volumes 128 128 replicated ``` 其中,“volumes”为新创建的pool名称;后面的两个数值分别表示副本数量和PG数(Placement Groups)。可以根据实际硬件资源调整这些参数[^2]。 #### 4. 修改Glance服务以支持Ceph作为镜像后端 编辑Glance的服务配置文件 `/etc/glance/glance-api.conf` ,添加或更新以下部分: ```ini [glance_store] stores = rbd, file default_store = rbd rbd_pool = images rbd_ceph_conf = /etc/ceph/ceph.conf rbd_user = glance rbd_secret_uuid = <uuid> ``` 注意替换 `<uuid>` 字段为你生成的实际UUID值。如果尚未存在名为 `images` 的pool,则先创建它: ```bash ceph osd pool create images 128 128 replicated ``` 接着,在数据库中注册该用户的secret key以便后续认证过程顺利进行: ```sql INSERT INTO secrets VALUES ('<uuid>', '<base64-encoded-secret>'); ``` 最后重启Glance API服务使其生效: ```bash systemctl restart openstack-glance-api.service ``` #### 5. Nova组件启用libvirt驱动程序连接Ceph RBD 对于Nova而言,默认情况下会利用libvirt库实现虚拟机磁盘映射到远程块设备的功能。因此我们需要确认nova-compute服务已经加载了必要的模块并且正确指向我们的Ceph集群地址。 打开 `/etc/nova/nova.conf` 文件查找 `[libvirt]` 节点下的选项做相应更改: ```ini [libvirt] disk_cachemodes="network=writeback" hw_disk_discard='unmap' inject_password=false inject_key=false inject_partition=-2 live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_TUNNELLED volume_clear=zero volume_clear_size=0 cpu_mode=host-passthrough image_backend=rbd rbd_pool=volumes rbd_user=cinder rbd_secret_uuid=<same-as-above> rados_mon_hosts=node01,node02,node03 ``` 同样记得把占位符替换成真实数据源信息之后保存退出再重新启动对应进程即可应用改动效果: ```bash systemctl daemon-reload && systemctl restart libvirtd nova-compute ``` #### 6. Cinder卷插件激活RBD类型持久化存储方案 为了让用户可以请求动态分配额外空间给自己的云服务器实例用作临时扩展用途或者长期归档资料之需的话还需要进一步配置好cinder-volume服务才行啊! 前往路径 `/etc/cinder/cinder.conf` 查找合适位置追加下面几行内容进去吧: ```ini [cinder-ceph] enabled_backends = rbd backend_name = rbd volume_driver = cinder.volume.drivers.rbd.RBDDriver rbd_pool = volumes rbd_user = cinder rbd_secret_uuid = <same-as-above> flavor_id = auto auth_enabled = true keyring_conf_path = /etc/ceph/ceph.client.cinder.keyring report_discard_supported = True ``` 再次强调一遍哦~这里的用户名密码组合应该跟前面提到过的保持一致哈!另外由于涉及到跨域身份校验机制的缘故所以最好提前准备好相应的证书材料以免到时候遇到麻烦事呢😊 最终别忘了同步一下最新的元数据记录表单结构形式呀~ ```bash su -s /bin/sh -c "cinder-manage db sync" cinder ``` 至此整个流程就算大功告成了🎉 不过还是强烈建议大家按照官方文档指引逐步检验每一步骤的结果准确性从而最大程度降低潜在风险隐患的发生概率哟~ --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值