OpenStack之放置服务(Placement)

一、放置服务 Placement 基本概念

云计算平台中的云主机(虚拟机)不是凭空出现的,它是从云中现有的硬件资源中划分出来的。每创建一台云主机都会使用一部分物理主机资源,如CPU、磁盘、内存等。因此,在创建某台云主机前,OpenStack云计算平台需要知道在云中所有的计算机集群中还有哪些计算机拥有足够的硬件资源能够用来创建云主机,然后才能做出判断选择哪台计算机来产生这台云主机。Placement就是监控云中所有硬件资源使用情况的组件。 在OpenStack的Stein版出现之前,对系统资源的监控和云主机资源的选择都是由计算组件Nova独立完成的。从OpenStack(Stein版)开始,对系统资源的监控功能才从Nova中独立出来,成为一个独立的组件,该组件名为Placement。

二、Placement组件

Placement的主要组成是它的接口模块(Placement-API),该模块监控系统资源信息。Placement和Nova之间的合作关系大致是这样的:Nova的计算模块(Nova-Compute)将要创建的云主机的硬件需求提交给Placement-API;Placement-API收到需求后从系统资源库中查询到现有资源满足创建云主机的所有计算机的信息,然后将结果返回给Nova的计划模块(Nova-Scheduler);Nova-Scheduler根据获得的信息选择其中一台计算机并将结果告诉Nova-Compute。image.png

三、Placement 工作流程

image.png

  • 第1步,Nova告诉Placement要创建的云主机需要什么资源、数量如何。
  • 第2步,Placement从数据库中查询获得两个数据,第一个数据是现有空闲资源足以创建云主机的物理主机以及它们所剩资源信息,第二个数据是这些物理主机原有的资源信息。
  • 第3步,数据库为Placement返回查询到的数据。
  • 第4步,Placement将获得的两个数据告知Nova。
  • 第5步,Nova用这两个数据通过算法选择好创建云主机的物理主机,并将选择的结果告诉Placement。
  • 第6步,Placement修改数据库,将相应资源从该物理主机的资源中扣除。

四、Placement 项目实施

**1、安装与配置Placement **

安装Placement软件包

yum -y install openstack-placement-api

查看用户信息

cat /etc/passwd | grep placement

查看用户组信息

cat /etc/group | grep placement

创建Placement的数据库并授权

#登录数据库
mysql -uroot -p123456

#创建placement数据库
CREATE DATABASE placement;

#placement数据库进行授权
GRANT ALL PRIVILEGES ON placement.* TO placement@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON placement.* TO placement@'%' IDENTIFIED BY '123456';

修改Placement配置文件

#备份
cp /etc/placement/placement.conf /etc/placement/placement.bak

#去掉所有注释和空行,生成新的配置文件。
grep -Ev '^$|#' /etc/placement/placement.bak > /etc/placement/placement.conf

编辑新的配置文件

vi /etc/placement/placement.conf

#修改“[placement_database]”部分,实现与数据库连接。
connection = mysql+pymysql://placement:123456@controller/placement

#修改“[api]”与“[keystone_authtoken]”部分,实现与Keystone交互。
[api]
auth_strategy = keystone
[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 = 123456

修改Apache配置文件

vi /etc/httpd/conf.d/00-placement-api.conf

#在“VirtualHost”节点中加入以下代码使Httpd对“/usr/bin”目录拥有权限。
<Directory /usr/bin>
Require all granted
</Directory>

初始化Placement的数据库

su placement -s /bin/sh -c "placement-manage db sync"
2、Placement组件初始化

导入环境变量模拟登录。

admin-login

在OpenStack云计算平台中创建用户“placement”。

openstack user create --domain default --password 123456 placement

给用户“placement”分配“admin”角色

openstack role add --project project --user placement admin

创建Placement服务及端点

#创建服务
openstack service create --name placement placement

#创建放置服务端点
#公共服务节点
openstack endpoint create --region RegionOne placement public
http://controller:8778

#内部组件访问的服务端点
openstack endpoint create --region RegionOne placement internal http://controller:8778

#Admin用户访问端点。
openstack endpoint create --region RegionOne placement admin http://controller:8778

启动Placement服务

systemctl restart httpd

查看端口占用情况

netstat -tnlup|grep 8778

检验服务端点

curl http://controller:8778

猜你喜欢

转载自blog.csdn.net/xiaoyu070321/article/details/131380445