云基础及其运维 7_第1页
云基础及其运维 7_第2页
云基础及其运维 7_第3页
云基础及其运维 7_第4页
云基础及其运维 7_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

私有云基础架构与运维项目7OpenStack云平台Placement放置服务

OpenStack云平台是一个集合了多种服务和资源的系统,这些资源包括计算资源、存储资源和网络资源等,云平台将这些资源通过虚拟化的方式提供给用户使用。随着大数据、人工智能、物联网等新兴技术的快速发展,数据处理、分析、存储等方面的需求日益复杂化。企业对云平台的性能要求也在不断提高,合理的资源分配和管理变的日益重要。从OpenStack的Stein版开始增加了Placement服务,该服务能够监控云平台中所有硬件资源的使用情况,本项目将围绕Placement服务的功能作用、配置管理进行详尽介绍。1.知识目标(1)理解Placement的概念、功能和作用;(2)掌握Placement的组件架构;(3)掌握Placement的基本工作流程。2.技能目标(1)具体OpenStack云平台Placement服务的部署能力;(2)具备Placement服务的检测和运维能力。(3)具备灵活解决OpenStack云平台硬件资源的分配和管理能力。3.素质目标(1)具备自我学习、探究学习和创新学习的能力;(2)养成探索问题、独立思考解决综合问题的方法和能力;(3)具备资料检索、举一反三、触类旁通的方法能力,提升职业迁移与长远目标发展能力。学习目标学习导图目录任务7.1项目需求分析任务7.2认识Placement服务任务7.3部署Placement服务项目需求分析

任务7.1项目需求分析

OpenStack是开源的云计算管理平台项目,是一系列服务开源项目的组合。复杂的服务生态系统对云平台硬件资源有着不同的需求。因此,云平台对资源的监控、管理、分配、调度、优化和扩展就变的尤为重要,云计算平台只有在获得系统现有资源信息的情况下才能根据需求决定哪些资源分配给哪些用户用来实现哪些服务。在最早期版本的OpenStack中,资源调度和分配逻辑分散在多个组件中,多个服务各自管理资源,缺乏全局视图,容易导致资源分配冲突或过度分配等问题。在OpenStack的Stein版之前,对系统资源的监控和云主机资源的选择都是由Nova计算服务独立完成,这时的Placement属于Nova的一部分,需要在Nova之前安装。从OpenStack的Stein版开始,将资源监控功能从Nova服务中拆分出来,成为了一个单独的服务,起名为Placement放置服务。Placement服务是一个用于监控平台中所有硬件资源使用情况的组件。它的主要作用是跟踪资源(比如计算节点、存储资源池、网络资源池等)的使用情况,并将这些资源的统计信息写入到数据库中。这些信息可以被其他OpenStack服务调用,以便能够更好地管理和分配资源。主要价值体现在以下几个方面:项目需求分析(1)资源供应和分配:Placement服务负责收集计算节点、存储节点等硬件资源的详细信息,如CPU、内存、磁盘等资源的使用情况。这些信息被存储到数据库中,供其他OpenStack服务调用。(2)调度约束管理:在Placement服务中,用户可以定义调度约束策略。这些策略可能包括请求的vCPU数量、内存大小等条件,用于筛选合适的计算节点。(3)资源提供商管理:Placement服务支持注册不同的资源提供商,如计算资源提供商、存储资源提供商等。这使得云平台能够灵活地管理和利用不同类型的资源,为用户提供更丰富的服务选项。(4)资源使用量收集:除了监控资源的静态信息外,Placement服务还能够收集每个实例的资源使用状况。这些信息对于评估云平台的性能和优化资源配置具有重要意义。(5)基础设施优化:通过分析Placement服务收集的资源使用情况数据,云平台管理员可以发现潜在的瓶颈和问题,从而采取相应的优化措施。这有助于提升云平台的整体性能和用户体验。(6)实现弹性伸缩:Placement服务中的资源信息对于自动伸缩层来说至关重要。通过分析这些资源信息,自动伸缩层可以判断何时进行扩容或缩容操作,以满足不断变化的业务需求。OpenStack云平台中的Placement服务在资源管理和调度方面发挥着重要作用,通过提供丰富的功能支持,有助于构建高效、稳定、可扩展的云基础设施。Placement是OpenStack从“简单虚拟化调度”向“精细化资源即服务(Resource-as-a-Service)”演进的关键组件,尤其在大规模、异构资源场景下不可或缺。项目需求分析任务7.2认识Placement服务7.2.1Placement服务的组件架构OpenStack的Placement服务是一个关键的组件,它主要负责资源调度和分配。PlacementAPI允许管理员和调度器查询和更新计算节点(ComputeNodes)的资源信息,例如CPU、内存、磁盘和网络带宽等。这对于确保虚拟机(VMs)或容器(Docker)在创建和运行时能得到合适的资源是非常重要的。Placement服务的组件架构主要由以下几个部分组成:7.2.1Placement服务的组件架构

(1)PlacementAPI服务提供RESTfulAPI接口,用于查询和更新资源信息。允许管理员查询特定资源的当前状态(如可用资源、已分配资源等),也支持修改资源分配,例如在资源使用后释放资源。

(2)数据库Placement使用一个专门的数据库来存储资源信息。这通常是一个关系型数据库,如PostgreSQL。数据库中存储的信息包括但不限于计算节点的资源详情、资源池的配置等。

(3)消息队列Placement使用消息队列(如RabbitMQ)来处理异步任务,如资源更新的通知和同步。这有助于确保资源状态的更新能够及时反映到其他系统组件中,如Nova(Nova是OpenStack的计算服务,负责管理虚拟机)。7.2.1Placement服务的组件架构

(4)调度器虽然调度器不是Placement组件的一部分,但它与Placement密切相关。在OpenStack中,调度器(如NovaScheduler)会通过PlacementAPI查询可用的资源信息,以决定如何分配新的计算任务(例如启动新的虚拟机)。Placement服务的核心组件是它的接口模块(Placement-API),该模块监控系统资源信息并给Nova提供它获得的系统资源信息,Placement-API与Nova相关模块之间的关系如下。Nova的计算模块(Nova-Compute)将准备创建的云主机的硬件需求提交给Placement-API;Placement-API收到请求后,从系统资源库中查询现有资源情况,可利用资源是否可以满足创建该云主机,同时,将查询结果返回给Nova的计划模块(Nova-Scheduler);如果满足创建条件,Nova-Scheduler根据获得的信息,选择其相应资源生成云主机,并将结果告诉Nova-Compute。7.2.2Placement服务的基本工作流程在OpenStack云计算平台中,Nova计算服务和Placement服务是紧密合作的两个组件,它们共同负责资源的调度和分配。下面以Nova计算服务创建云主机为例介绍Placement的系统监测功能的基本流程:7.2.2Placement服务的基本工作流程

1.资源提供者注册当OpenStack云计算平台进行部署时,各种资源提供者(例如计算节点、存储节点等)会通过PlacementAPI注册自己。这一步骤通常在Nova服务启动时进行,通过调用PlacementAPI的POST/resource_providers接口来实现。7.2.2Placement服务的基本工作流程2.资源分配当用户提出请求要进行实例创建时,Nova服务会通过PlacementAPI查询可用的资源。这一过程涉及以下步骤:

(1)查询可用资源Nova服务使用PlacementAPI的GET/resource_providers/{uuid}/inventories接口来查询特定资源提供者的可用资源(如CPU、内存、磁盘等)。

(2)计算能力评估Nova服务根据用户的请求(如实例规格)和查询到的资源信息,评估是否能够满足请求。

(3)资源预留如果资源足够,Nova服务会通过PlacementAPI的POST/resource_providers/{uuid}/usages/{project_id}/resources接口进行资源预留。这一步是为了确保在实例创建过程中不会被其他请求抢占资源。7.2.2Placement服务的基本工作流程

3.实例创建在完成资源预留后,Nova进行实例的创建,其操作流程如下:

(1)启动实例Nova服务会调用底层计算节点(如使用libvirt或KVM)来实际启动虚拟机。

(2)更新资源使用情况在实例创建成功后,Nova服务会更新PlacementAPI中的资源使用情况,通过PUT/resource_providers/{uuid}/usages/{project_id}接口。这表示该资源已被实际使用。

(3)实例删除当实例被删除时,Nova服务同样会更新PlacementAPI中的资源使用情况,通过DELETE/resource_providers/{uuid}/usages/{project_id}接口来释放之前预留的资源。7.2.2Placement服务的基本工作流程

4.监控和调度优化PlacementAPI提供的数据可以被用来监控整个OpenStack环境的资源使用情况,Nova服务可以利用这些信息来进行更智能的调度决策,例如负载均衡、故障转移等。通过上述流程,Nova服务和Placement服务共同确保了OpenStack环境中资源的有效管理和高效利用。PlacementAPI作为一个独立的微服务,为Nova服务和其他服务提供了灵活的资源管理和调度能力,从而增强了整个OpenStack云的灵活性和可扩展性。任务7.3部署Placement服务7.3.1安装与配置Placement服务

Placement服务在OpenStack中负责资源管理和追踪,它收集计算节点、存储节点的资源信息,并根据需求进行资源分配。同时,Placement还提供了调度约束管理、资源提供商管理等功能,是OpenStack中不可或缺的一部分。特别是对于一些依赖Placement服务的其他OpenStack服务(如Nova服务)来说,Placement服务的正确安装与配置至关重要。7.3.1安装与配置Placement服务使用yum命令安装Placement服务所需要的软件包。命令如下所示。1.安装Placement软件包[root@controller~]#yuminstallopenstack-placement-api-y安装“openstack-placement-api”软件包的时候会自动再CentOSLinux中生成一个名为“placement”的用户和同名用户组。可以使用以下两种方法查看Linux操作系统的用户及用户组信息。(1)查看用户信息在“passwd”文件中插卡所有包含“placement”字符串的行。[root@controller~]#cat/etc/passwd|grepplacementplacement:x:990:987:OpenStackPlacement:/:/bin/bash在结果中可以看见已经存在“placement”用户。(2)查看用户组信息在“group”文件中查看所有包含“placement”字符串的行。[root@controller~]#cat/etc/group|grepplacementplacement:x:987:在结果中能看见已经存在“placement”用户组。7.3.1安装与配置Placement服务(1)进入数据库登录mysql数据库,“-uroot”指定使用root管理员用户登录,“-p000000”使用root用户对应的密码000000进行登录,当用户名和密码正确就可以进入数据库。(root用户的密码在项目4中初始化数据库的时候已经设置过为000000)。2.创建Placement的数据库并授权[root@controller~]#mysql-uroot-p000000WelcometotheMariaDBmonitor.Commandsendwith;or\g.YourMariaDBconnectionidis8Serverversion:10.3.28-MariaDBMariaDBServerCopyright(c)2000,2018,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>注意:上述命令中“-p”选项后面直接接密码值“000000”(无空格)。出于安全考虑,尽量避免在命令行中直接输入密码,可以使用命令“mysql-uroot-p”,当系统提示“Enterpassword:”时,直接输入“000000”,这样密码不会在浏览器上显示出来。7.3.1安装与配置Placement服务(2)创建Placement数据库进入到数据库之后,需要创建名为placement的数据库,使用命令“createdatabaseplacement;”,看到提示信息“QueryOK,1rowaffected(0.001sec)”,表示数据库已经创建成功。2.创建Placement的数据库并授权MariaDB[(none)]>createdatabaseplacement;QueryOK,1rowaffected(0.001sec)注意:SQL语句中需要在末尾添加“;”来表示语句的结束。可以使用“showdatabases”命令来查看当前已存在的数据库的情况。操作如下所示。MariaDB[(none)]>showdatabases;+--------------------+|Database|+--------------------+|information_schema||placement||keystone||mysql||performance_schema|+--------------------+5rowsinset(0.002sec)7.3.1安装与配置Placement服务(3)给用户授权使用placement数据库将所有权限授予“keystone”用户,该用户只能从本地主机连接,并使用密码“000000”进行身份验证。执行成功后有“QueryOK,0rowsaffected(0.000sec)”提示。2.创建Placement的数据库并授权MariaDB[(none)]>GRANTALLPRIVILEGESONplacement.*TO'placement'@'localhost'IDENTIFIEDBY'000000';QueryOK,0rowsaffected(0.003sec)上述SQL语句中,第一个“placement”为数据库名,第二个“placement”为MySQL中的用户名,“*”代表placement库中所有表,“localhost”代表本机,通常的语法是:GRANTALLPRIVILEGESON数据库名.表名TO'用户名'@'主机'IDENTIFIEDBY'密码‘;。将所有权限授予“placement”用户,该用户可以从任何主机(“%”通配符代表所有主机)连接,并使用密码“000000”进行身份验证。MariaDB[(none)]>GRANTALLPRIVILEGESONplacement.*TO'placement'@'%'IDENTIFIEDBY'000000';QueryOK,0rowsaffected(0.001sec)注意:需要对本地主机和远程主机的用户都执行授权的操作,否则会影响后续的操作。7.3.1安装与配置Placement服务(4)查看placement数据库的情况使用show命令查看placement数据库的情况。首先需要切换到placement数据库,再使用show命令查看表的情况。命令如下所示。2.创建Placement的数据库并授权MariaDB[(none)]>useplacement;DatabasechangedMariaDB[keystone]>showtables;Emptyset(0.000sec)注意:此时placement数据库是空的。7.3.1安装与配置Placement服务(5)查看权限通过“showgrantsforplacement;”命令,可以查看给用户“keystone”授予的权限列表。命令和结果如下所示。2.创建Placement的数据库并授权MariaDB[(none)]>showgrantsforplacement;+----------------------------------------------------------------------------------------------------------+|Grantsforplacement@%|+----------------------------------------------------------------------------------------------------------+|GRANTUSAGEON*.*TO`placement`@`%`IDENTIFIEDBYPASSWORD'*032197AE5731D4664921A6CCAC7CFCE6A0698693'||GRANTALLPRIVILEGESON`placement`.*TO`placement`@`%`|+----------------------------------------------------------------------------------------------------------+2rowsinset(0.001sec)7.3.1安装与配置Placement服务通过“selectuser,hostfrommysql.user;”命令,在数据库中存放用户基本权限的表mysql.user中查看用户和主机的相关信息,显示所有用户及其对应的主机信息。命令和结果如下所示。2.创建Placement的数据库并授权MariaDB[placement]>selectuser,hostfrommysql.user;+-----------+------------+|user|host|+-----------+------------+|glance|%||keystone|%||placement|%||root|||root|::1||root|controller||glance|localhost||keystone|localhost||placement|localhost||root|localhost|+-----------+------------+10rowsinset(0.011sec)7.3.1安装与配置Placement服务(6)退出数据库此时,在数据库中的操作告一段落,可以使用exit或者quit命令从数据库中退出。2.创建Placement的数据库并授权MariaDB[(none)]>exitBye7.3.1安装与配置Placement服务

Placement的配置文件是“/etc/placement/placement.conf”。通过修改它可实现Placement与数据库及Keystone的连接。由于“placement.conf”官方文件的内容存在很多注释,直接进行编辑比较麻烦,可以先将注释和空行去掉再对其进行编辑。

3.修改Placement配置文件7.3.1安装与配置Placement服务

3.修改Placement配置文件(1)将配置文件中的注释和空行去掉第1步,备份配置文件[root@controller~]#cp/etc/placement/placement.conf/etc/placement/placement.conf.bak第2步,去掉配置文件中的所有注释和空行,生成新的配置文件[root@controller~]#grep-Ev‘^$|#’/etc/placement/placement.conf.bak>/etc/placement/placement.conf7.3.1安装与配置Placement服务

3.修改Placement配置文件(2)编辑新的配置文件第1步,打开配置文件进行编辑[root@controller~]#vi/etc/placement/placement.conf[DEFAULT][api][cors][keystone_authtoken][oslo_policy][placement][placement_database][profiler]7.3.1安装与配置Placement服务

3.修改Placement配置文件(2)编辑新的配置文件第2步,修改“[placement_database]”部分,实现与数据库的连接。[placement_database]connection=mysql+pymysql://placement:000000@controller/placement7.3.1安装与配置Placement服务

3.修改Placement配置文件(2)编辑新的配置文件第3步,修改“[api]”与“[keystone_authtoken]”部分,实现与Keystone的交互。[keystone_authtoken]www_authenticate_uri=http://controller:5000/v3auth_url=http://controller:5000/v3memcached_servers=controller:11211auth_type=passwordproject_domain_name=Defaultuser_domain_name=Defaultproject_name=serviceusername=placementpassword=0000007.3.1安装与配置Placement服务4.修改Apache配置文件

Placement本质上和Glance及Keystone一样,是运行在Web服务器上的应用。安装完Placement的软件包后,Ussrui版本安装完成后会自动生成:/etc/httpd/conf.d/00-placement-api.conf的配置文件,Web服务器通过它才能知道如何运行Placement。按照以下代码修改该配置文件。[root@controller~]#vi/etc/httpd/conf.d/00-placement-api.conf在“VirtualHost”节点中加入以下代码。#PlacementAPI<Directory/usr/bin><IfVersion>=2.4>Requireallgranted</IfVersion><IfVersion<2.4>Orderallow,denyAllowfromall</IfVersion></Directory>此处新增的内容用于告诉Web服务器,如果Apache的版本号大于或等于2.4,则向系统请求获得“/usr/bin”目录的所有操作权限。可以通过以下代码查看Apache的版本号。[root@controller~]#httpd-vServerversion:Apache/2.4.37(centos)Serverbuilt:Nov12202104:57:27注意:配置文件中的两个“>=”运算符两边均要有空格,否则后面运行时会报错。7.3.1安装与配置Placement服务5.初始化Placement的数据库(1)同步数据库同步数据库的目的是将安装文件中的数据库的表信息填充到数据库中,Placement数据库同步的方法如下:[root@controller~]#su-s/bin/sh-c"placement-managedbsync"placement如果“placement”数据库中存在以上数据表,则表示数据库同步成功。(2)检查数据库通过以下方法检查数据库是否同步成功。[root@controller~)]#mysql-uplacement-p000000-e"useplacement;showtables;"+------------------------------+|Tables_in_placement|+------------------------------+|alembic_version||allocations||consumers||inventories||placement_aggregates||projects||resource_classes||resource_provider_aggregates||resource_provider_traits||resource_providers||traits||users|+------------------------------+7.3.2Placement服务组件初始化1.创建Placement用户并分配角色(1)为OpenStack云计算平台创建“placement”用户第1步,导入环境变量模拟登录[root@controller~]#sourcekeystonerc_admin第2步,在OpenStack云计算平台中创建用户“placement”。通过“openstackusercreate”命令在“default”域中创建一个名为“placement”,密码为“000000”的用户。[root@controller~]#openstackusercreate--domaindefault--password=000000placement+---------------------+----------------------------------+|Field|Value|+---------------------+----------------------------------+|domain_id|default||enabled|True||id|4d51e54112d040b29c91bf77b7b4d99c||name|placement||options|{}||password_expires_at|None|+---------------------+----------------------------------+注意:这里的用户名和密码一定要与“placement.conf”文件“[keystone_authtoken]”中的用户名和密码一致。7.3.2Placement服务组件初始化1.创建Placement用户并分配角色通过“openstackuserlist”命令查看刚刚创建的用户。[root@controller~]#openstackuserlist+----------------------------------+-----------+|ID|Name|+----------------------------------+-----------+|964a1d98dcd843a8825d97af8ab9716e|admin||37e49f9a90904eaab2e6db92d640c367|myuser||364a630b178a452c996c099ec0c85095|glance||4d51e54112d040b29c91bf77b7b4d99c|placement|+----------------------------------+-----------+7.3.2Placement服务组件初始化1.创建Placement用户并分配角色(2)为用户“placement”分配“admin”角色通过以下命令授予“placement”用户操作“project”项目时的“admin”权限。[root@controller~]#openstackroleadd--projectservice--userplacementadmin注意:执行赋予placement用户admin权限的命令时没有任何输出的。7.3.2Placement服务组件初始化2.创建Placement服务及服务端点(1)创建Placement服务通过“openstackservicecreate”命令注册Placement服务信息,命令如下:[root@controller~)]#openstackservicecreate--nameplacement--description"PlacementAPI"placement+-------------+----------------------------------+|Field|Value|+-------------+----------------------------------+|description|PlacementAPI||enabled|True||id|413537acb2b54e6ba8e1f8719148be4b||name|placement||type|placement|+-------------+----------------------------------+7.3.2Placement服务组件初始化2.创建Placement服务及服务端点(2)创建Placement服务端点OpenStack组件的服务端点有3个,分别对应公众用户(public)、内部组件(internal)、Admin用户(admin)服务的地址。[root@controller~)]#openstackendpointcreate--regionRegionOneplacementpublichttp://controller:8778+--------------+----------------------------------+|Field|Value|+--------------+----------------------------------+|enabled|True||id|f6fdfb731ec44cc5af621921278cc87f||interface|public||region|RegionOne||region_id|RegionOne||service_id|413537acb2b54e6ba8e1f8719148be4b||service_name|placement||service_type|placement||url|http://controller:8778|+--------------+----------------------------------+第1步,创建公众用户访问的端点。7.3.2Placement服务组件初始化2.创建Placement服务及服务端点(2)创建Placement服务端点[root@controller~)]#openstackendpointcreate--regionRegionOneplacementinternalhttp://controller:8778+--------------+----------------------------------+|Field|Value|+--------------+----------------------------------+|enabled|True||id|dd3a5f2e761046f6b79d70df254e3333||interface|internal||region|RegionOne||region_id|RegionOne||service_id|413537acb2b54e6ba8e1f8719148be4b||

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论