一、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修改数据库,将相应资源从该物理主机的资源中扣除。