OpenEuler的安装_openeuler5.1.0-249-CSDN博客
OpenStack云计算平台基础环境准备_openstack基础环境配置-CSDN博客
OpenStack组件:镜像服务(Glance)安装-CSDN博客
OpenStack组件:认证服务(Keystone)安装_认证服务(keystone)安装-CSDN博客
一、放置服务(Placement Service)的核心作用
OpenStack 放置服务(placement
)是 Nova 组件的核心依赖服务,主要用于管理计算资源的调度和分配,解决以下关键问题:
-
资源跟踪:记录计算节点(Compute Node)的 CPU、内存、磁盘、PCI 设备 等资源的使用情况和库存。
-
调度决策:为 Nova Scheduler 提供资源查询接口,帮助调度器根据资源过滤条件(如可用资源量、亲和 / 反亲和策略等)选择合适的计算节点。
-
多维度资源管理:支持对 自定义资源类型(如 GPU 数量、FPGA 设备等)进行建模和跟踪,满足异构计算场景需求。
二、项目实施
1、安装与配置Placement放置服务
1.1、安装Placement软件包
root@controller \~\]# yum install -y openstack-placement-api  //查看用户信息 \[root@controller \~\]# cat /etc/passwd \| grep placement //查看用户组信息 \[root@controller \~\]# cat /etc/group \| grep placement 
1.2、创建Placement的数据库并授权
[root@controller ~]# mysql -uroot -p000000 //进入数据库
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.5.25-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE placement; //创建数据库
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY '000000'; //远程管理授权
Query OK, 0 rows affected (0.005 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY '000000';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> EXIT;//退出
Bye

1.3、修改Placement配置文件
[root@controller ~]# cp /etc/placement/placement.conf /etc/placement/placement.bak
[root@controller ~]# grep -Ev '^$|#' /etc/placement/placement.bak > /etc/placement/placement.conf
[root@controller ~]# cat /etc/placement/placement.conf
[DEFAULT]
[api]
[cors]
[keystone_authtoken]
[oslo_policy]
[placement]
[placement_database]
[profiler]
[root@controller ~]# vim /etc/placement/placement.conf(编辑添加下面的内容)
[DEFAULT]
[api]
auth_strategy = keystone
[cors]
[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = project
username = placement
password = 000000
[oslo_policy]
[placement]
[placement_database]
connection = mysql+pymysql://placement:000000@controller/placement
[profiler]

1.4、初始化Placement的数据库
//同步数据库
[root@controller ~]# su -s /bin/sh -c "placement-manage db sync" placement
/usr/lib/python3.9/site-packages/pymysql/cursors.py:170: Warning: (1280, "Name 'alembic_version_pkc' ignored for PRIMARY key.")
result = self._query(query)
//进入收据库验证同步是否成功
[root@controller ~]# mysql -uroot -p000000
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 7
Server version: 10.5.25-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use placement;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [placement]> show tables;
+------------------------------+
| Tables_in_placement |
+------------------------------+
| alembic_version |
| allocations |
| consumers |
| inventories |
| placement_aggregates |
| projects |
| resource_classes |
| resource_provider_aggregates |
| resource_provider_traits |
| resource_providers |
| traits |
| users |
+------------------------------+
12 rows in set (0.000 sec)

2、Placement组件初始化
2.1 、创建Placement用户并分配角色
[root@controller ~]# source admin-login //导入环境变量,模拟登录
//在openstack云计算平台中创建用户placement
[root@controller ~]# openstack user create --domain default --password 000000 placement
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 323ce14e683a490f8ee53d2b15a876b0 |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
//为用户分配admin角色
[root@controller ~]# openstack role add --project project --user placement admin

2.2、创建Placement服务及服务端点
//创建一个名字和类型都是placement的服务
[root@controller ~]# openstack service create --name placement placement
//创建服务端点
[root@controller ~]# openstack endpoint create --region RegionOne placement public http://controller:8778
[root@controller ~]# openstack endpoint create --region RegionOne placement internal http://controller:8778
[root@controller ~]# openstack endpoint create --region RegionOne placement admin http://controller:8778

2.3、启动Placement服务
root@controller \~\]# systemctl restart httpd //重启使之配置文件生效
3、检测Placement服务
3.1、查看端口情况
root@controller \~\]# netstat -tnlup\|grep 8778
3.2、检验服务端点
root@controller \~\]# curl http://controller:8778
出现以下信息,表示placement服务运行正常
