周振林 周振林
首页
  • 前端文章

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • 学习笔记

    • 《JavaScript教程》
    • 《ES6 教程》
    • 《TypeScript》
    • 《Vue》
    • 《Git》
    • 《小程序笔记》
    • 《JS设计模式总结笔记》
  • 规范
  • Spring
  • 安装教程
  • 其他教程
  • 归真医学
  • 常用药材
  • 学习笔记
  • 经方学习心得
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏
  • 分类
  • 标签
  • 归档

周振林

IT界的小学生
首页
  • 前端文章

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • 学习笔记

    • 《JavaScript教程》
    • 《ES6 教程》
    • 《TypeScript》
    • 《Vue》
    • 《Git》
    • 《小程序笔记》
    • 《JS设计模式总结笔记》
  • 规范
  • Spring
  • 安装教程
  • 其他教程
  • 归真医学
  • 常用药材
  • 学习笔记
  • 经方学习心得
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏
  • 分类
  • 标签
  • 归档
  • 虚拟化

  • Docker

  • OpenStack

    • VMware三种网络模式
    • 常用linux命令
    • OpenStack命令
    • OpenStack简介
    • OpenStack安装部署
    • Keystone服务详解
    • Placement服务详解
      • Placement 服务详解
        • Placement里的核心概念
        • Placement资源分类
        • Placement资源供应商
    • Glance服务详解
    • CentOS镜像的制作
    • Cinder服务详解
    • LVM详解
    • Nova服务详解
  • 心情杂货

  • 更多
  • OpenStack
周振林
2025-03-27
目录

Placement服务详解

# Placement 服务详解

Placement是OpenStack中用来进行资源管理的组件,是N版本开始从Nova组件中剥离出来的项目。之 前在Nova中是用来寻找符合条件的主机,独立出来以后,它的目标变成了寻找合适资源。例如Nova用 来开启虚拟机的主机资源,Neutron用来创建虚拟网络的资源等等。

现在它的API是用来追踪资源供应商(例如计算节点、存储池等)的清单和使用率,以及不同的资源类 别。例如可以查看计算节点上的CPU和内存使用情况,外部存储池的使用情况等。

# Placement里的核心概念

Placement服务因为从N版本才开始分离出来,因此最开始默认只提供了api接口供其他服务进行资源的 查询,没有提供对应的CLI命令,因此社区为了方便用户查询placement管理的资源信息,为它开发了 一个命令行工具osc-placement,这个命令行工具没有自己的命令,它更像是一个插件,给openstack 添加了对应的子命令resource、allocation。我们先安装配置好这个命令

osc-placement这个命令插件需要通过pip来安装,在CentOS7上,安装pip需要使用epel源,因此安装 命令步骤是:

yum install epel-release
yum install python2-pip
1
2

如果你的机器上已经安装配置好epel的yum源,则可以直接执行第二条命令。pip命令安装好以后,因 为默认的pip命令是8.1版本,比较老旧,一般我们要把它升级到较新的版本,支持python2的最后一个 pip版本是20.3.4,因此我们的升级命令是:

pip install --upgrade 'pip<=20.3.4'
1

升级完成后,使用pip命令安装osc-placement:

pip install osc-placement
1

可以安装的最新osc-placement版本是2.0.0,安装完成后,openstack就多了resource和allocation这样 两个子命令。但是这个版本的命令默认使用的是Placement 1.0版本的API接口,而实际使用时需要最 低1.20版本的接口,因此在使用之前,我们还需要在admin-rc文件中添加下面一行:

export OS_PLACEMENT_API_VERSION=1.20
1

然后重新执行source admin-rc.sh让环境变量生效,下面我们就可以通过这两个子命令来查看整个集群 内的资源基本情况。

# Placement资源分类

资源分类指的是Placement里把资源节点能够提供的资源分成了对应的类别,例如计算节点一般可以提 供CPU、内存,安装了计算显卡的节点可以提供GPU资源等,管理资源分类对应的子命令是:

openstack resource class [list|show|create|delete|set]
1

各个子命令的作用分别是:

  • list,列出现有的所有资源类
  • show,显示某个资源类的详细信息;
  • create,创建一个自定义的资源类别;
  • delete,删除某个资源类别;
  • set,创建或者校验已有的单个资源类,和create命令不一样的是,create命令在资源类存在时会失败。而set命令不会。同时这个命令要求placement 的API版本大于1.7,即我们当前的1.10版本可以正常使用。

# Placement资源供应商

资源供应商指的就是提供资源的节点,对应的管理子命令是:

openstack resource provider [list|create|delete|set|show]
1

除了对资源供应商本身的管理外,基于资源供应商,还有另外几个下级概念,分别是:

  • inventory,资源清单,即可以处理单个资源供应节点上提供的资源详情信息,对应的子命令有:
    • list,列出单个节点上提供的所有资源类的详情信息。
    • show,列出单个节点上某个资源类的详情信息。
    • delete,可以删除单个节点上整个资源清单或者单个资源类,
    • set,替换节点上资源清单里的资源类信息,默认是会使用新的值替换所有旧的值,因此如果只是想增加新的属性,那么必须要同时列出所有的新旧资源类属性。
    • class set,修改节点上资源清单里某个资源类的属性。
  • trait,特征,即将某一类具有相同的特征的节点打上某个标签,例如某几个计算节点都具有高速SSD,那么可以给它打上hspeed_ssd特征信息。对应的管理子命令有:
    • list,列出某个节点上的所有特征值;
    • delete, 删除某个节点上某个特征值;
    • set,给节点添加某个特征值;
  • usage,使用率,即某个节点上已有资源的使用情况,例如VCPU使用了多少,内存使用了多少,硬盘使用了多少等信息。
  • aggregate,显示主机聚合信息,主机聚合指的是将一组具有相同特征的主机分配到同一个组里,称为聚合。
  • allocation,分配信息

Placement组件通过上面命令查询出来的信息并不具备权威性,它里面的信息更多的是由其他组件提供,是在动态变化的信息,特别是对于大规模集群而言,更多的是一个参考作用。

Last Updated: 2025/04/03, 17:32:35
Keystone服务详解
Glance服务详解

← Keystone服务详解 Glance服务详解→

最近更新
01
LVM详解
04-28
02
KVM虚拟机安装
04-18
03
Nova服务详解
04-17
更多文章>
Copyright © 2019-2025 鲁ICP备19032096号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式