openstack运维实战系列(十二)之nova aggregate资源分组

1. 背景说明

   openstack设计时的宗旨是能够为企业提供大规模的云计算服务,包括计算,存储,网络等资源,以服务的形式交付给用户,在一个非常大的环境中,需要将openstack的资源划分,openstack nova支持三种划分的方式:Region区域,Zone空间和Aggregate分组,其中Region是指一个地区或者地域,如可以将中国划分为:华南地区,华中地区,东北地区,西南地区;Zone则可以按照机房的形式来划分,如北京兆维机房为一个Zone,北京鲁谷机房为另外一个Zone;Aggreate粒度则更细,如按照同个机房中的不同机柜来划分。

概念说明

1. Region,更像是一个地理上的概念,每个region有自己独立的endpoint,regions之间完全隔离,但是多个regions之间共享同一个keystone和dashboard,region的设计更多侧重地理位置的概念,用户可以选择离自己更近的region来部署自己的服务。

2. Zone,即 Availability Zone,AZ可以简单理解为一组节点的集合,这组节点具有独立的电力供应设备,比如一个个独立供电的机房,一个个独立供电的机架都可以被划分成AZ。所以,AZ主要是通过冗余来解决可用性问题,Zone的目的主要是,保障用户在创建instance的时候可以选择创建到哪些AZ中,以保证instance的可用性。

3. Host Aggregate AZ是一个面向用户的概念和能力,而host aggregate是管理员用来根据硬件资源的某一属性来对硬件进行划分的功能,只对管理员可见,主要用来给nova-scheduler通过某一属性来进行instance的调度。其主要功能就是实现根据某一属性来划分物理机,比如按照地理位置,使用固态硬盘的机器,内存超过32G的机器,根据这些指标来构成一个host group。

2. 具体实现

因为规模的因素和设计的因素,此处只演示同个机房的Aggreate的划分,其中Aggreate需要配合Zone一起使用,否则没法实现

1. 创建Zone和Aggreate

[[email protected] ~]# nova aggregate-create HappyLabZone1 HappyAggreate1
+----+---------------+-------------------+-------+------------------------------------+
| Id | Name          | Availability Zone | Hosts | Metadata                           |
+----+---------------+-------------------+-------+------------------------------------+
| 11 | HappyLabZone1 | HappyAggreate1    |       | ‘availability_zone=HappyAggreate1‘ |
+----+---------------+-------------------+-------+------------------------------------+

2. 查看aggreate列表

[[email protected] ~]# nova aggregate-list
+----+-------------------+-------------------+
| Id | Name              | Availability Zone |
+----+-------------------+-------------------+
| 5  | ChuangYiYuanZone1 | ChuangYiYuanZone1 |
| 11 | HappyLabZone1     | HappyAggreate1    |        #Zone和Aggreate关联一起了
+----+-------------------+-------------------+

3. 将compute节点加入到Aggreate内

[[email protected] ~]# nova aggregate-add-host HappyLabZone1 ChuangYiYuan_10_16_2_19        #添加一台compute节点
Host ChuangYiYuan_10_16_2_19 has been successfully added for aggregate 11 
+----+---------------+-------------------+---------------------------+------------------------------------+
| Id | Name          | Availability Zone | Hosts                     | Metadata                           |
+----+---------------+-------------------+---------------------------+------------------------------------+
| 11 | HappyLabZone1 | HappyAggreate1    | ‘ChuangYiYuan_10_16_2_19‘ | ‘availability_zone=HappyAggreate1‘ |
+----+---------------+-------------------+---------------------------+------------------------------------+
[[email protected] ~]# nova aggregate-add-host HappyLabZone1 ChuangYiYuan_10_16_2_20        #添加另外一台compute节点
Host ChuangYiYuan_10_16_2_20 has been successfully added for aggregate 11 
+----+---------------+-------------------+------------------------------------------------------+------------------------------------+
| Id | Name          | Availability Zone | Hosts                                                | Metadata                           |
+----+---------------+-------------------+------------------------------------------------------+------------------------------------+
| 11 | HappyLabZone1 | HappyAggreate1    | ‘ChuangYiYuan_10_16_2_19‘, ‘ChuangYiYuan_10_16_2_20‘ | ‘availability_zone=HappyAggreate1‘ |
+----+---------------+-------------------+------------------------------------------------------+------------------------------------+
[[email protected] ~]# nova aggregate-add-host HappyLabZone1 ChuangYiYuan_10_16_2_21        #添加另外一台compute节点
Host ChuangYiYuan_10_16_2_21 has been successfully added for aggregate 11 
+----+---------------+-------------------+---------------------------------------------------------------------------------+------------------------------------+
| Id | Name          | Availability Zone | Hosts                                                                           | Metadata                           |
+----+---------------+-------------------+---------------------------------------------------------------------------------+------------------------------------+
| 11 | HappyLabZone1 | HappyAggreate1    | ‘ChuangYiYuan_10_16_2_19‘, ‘ChuangYiYuan_10_16_2_20‘, ‘ChuangYiYuan_10_16_2_21‘ | ‘availability_zone=HappyAggreate1‘ |
+----+---------------+-------------------+---------------------------------------------------------------------------------+------------------------------------+

4. 查看aggreate的详细信息

[[email protected] ~]# nova aggregate-details HappyLabZone1
+----+---------------+-------------------+---------------------------------------------------------------------------------+------------------------------------+
| Id | Name          | Availability Zone | Hosts                                                                           | Metadata                           |
+----+---------------+-------------------+---------------------------------------------------------------------------------+------------------------------------+
| 11 | HappyLabZone1 | HappyAggreate1    | ‘ChuangYiYuan_10_16_2_19‘, ‘ChuangYiYuan_10_16_2_20‘, ‘ChuangYiYuan_10_16_2_21‘ | ‘availability_zone=HappyAggreate1‘ |
+----+---------------+-------------------+---------------------------------------------------------------------------------+------------------------------------+
#已经添加了3台compute节点,在dashboard中,也能够正常显示

5.nova list查看划分情况

[[email protected] ~]# nova service-list
+------------------+-------------------------+-------------------+---------+-------+----------------------------+-----------------+
| Binary           | Host                    | Zone              | Status  | State | Updated_at                 | Disabled Reason |
+------------------+-------------------------+-------------------+---------+-------+----------------------------+-----------------+
| nova-conductor   | ChuangYiYuan_10_16_2_8  | internal          | enabled | up    | 2016-01-27T06:06:05.000000 | -               |
| nova-cert        | ChuangYiYuan_10_16_2_8  | internal          | enabled | up    | 2016-01-27T06:06:10.000000 | -               |
| nova-consoleauth | ChuangYiYuan_10_16_2_8  | internal          | enabled | up    | 2016-01-27T06:06:06.000000 | -               |
| nova-scheduler   | ChuangYiYuan_10_16_2_8  | internal          | enabled | up    | 2016-01-27T06:06:09.000000 | -               |
| nova-compute     | ChuangYiYuan_10_16_2_11 | ChuangYiYuanZone1 | enabled | up    | 2016-01-27T06:06:11.000000 | -               |
| nova-compute     | ChuangYiYuan_10_16_2_14 | ChuangYiYuanZone1 | enabled | up    | 2016-01-27T06:06:12.000000 | -               |
| nova-compute     | ChuangYiYuan_10_16_2_13 | ChuangYiYuanZone1 | enabled | up    | 2016-01-27T06:06:13.000000 | -               |
| nova-compute     | ChuangYiYuan_10_16_2_12 | ChuangYiYuanZone1 | enabled | up    | 2016-01-27T06:06:05.000000 | -               | #新添加的aggregate组
| nova-compute     | ChuangYiYuan_10_16_2_19 | HappyAggreate1    | enabled | up    | 2016-01-27T06:06:05.000000 | -               |
| nova-compute     | ChuangYiYuan_10_16_2_20 | HappyAggreate1    | enabled | up    | 2016-01-27T06:06:04.000000 | -               |
| nova-compute     | ChuangYiYuan_10_16_2_21 | HappyAggreate1    | enabled | up    | 2016-01-27T06:06:08.000000 | -               |
+------------------+-------------------------+-------------------+---------+-------+----------------------------+-----------------+
#至此,host aggregate配置完毕,后续扩容时,可以根据批次配置在不通的zone

3. 带来的好处

aggregate的分组带来的好处是,nova支持availablily zone级别的调度,即创建vm的时候,能够指定zone,指定zone之后,instance将会在指定的zone中选择合适的compute nodes来启动虚拟机,openstack默认安装完之后,只有一个nova的zone。效果如下:

[[email protected] ~]# nova boot --name  --flavor 1 --image db5fbfb7-bb14-4691-96dc-ba25531f4442 --key-name KEY  --availability-zone  HappyLabZone1 --security-groups  404af9b8-faa2-43df-aba8-24f17b40c17e  --nic net-id=182d2632-4373-47ff-b3a6-d50f116b76a7 vm_test_for_zone_and_aggregate

页面效果:

创建VM的时候可以选择:

4.aggreate的删除

[[email protected] ~]# nova aggregate-list            #获取aggregate的ID号码
+----+-------------------+-------------------+
| Id | Name              | Availability Zone |
+----+-------------------+-------------------+
| 5  | ChuangYiYuanZone1 | ChuangYiYuanZone1 |
| 11 | HappyLabZone1     | HappyAggreate1    |      #id号是11
+----+-------------------+-------------------+

[[email protected] ~]# nova aggregate-remove-host 11  ChuangYiYuan_10_16_2_21       #将主机从aggregate中删除,其他的compute节点,相同的方法执行         
Host ChuangYiYuan_10_16_2_21 has been successfully removed from aggregate 11 
+----+---------------+-------------------+------------------------------------------------------+------------------------------------+
| Id | Name          | Availability Zone | Hosts                                                | Metadata                           |
+----+---------------+-------------------+------------------------------------------------------+------------------------------------+
| 11 | HappyLabZone1 | HappyAggreate1    | ‘ChuangYiYuan_10_16_2_19‘, ‘ChuangYiYuan_10_16_2_20‘ | ‘availability_zone=HappyAggreate1‘ |
+----+---------------+-------------------+------------------------------------------------------+------------------------------------+

查看详情:
[[email protected] ~]# nova aggregate-details  11   
+----+---------------+-------------------+-------+------------------------------------+
| Id | Name          | Availability Zone | Hosts | Metadata                           |
+----+---------------+-------------------+-------+------------------------------------+
| 11 | HappyLabZone1 | HappyAggreate1    |       | ‘availability_zone=HappyAggreate1‘ |    #已经没有compute节点
+----+---------------+-------------------+-------+------------------------------------+

将aggregate删除
[[email protected] ~]# nova aggregate-delete HappyLabZone1
Aggregate 11 has been successfully deleted.

5. 总结

openstack中的region,zone,host aggregate的实现里,其中region相对比较复杂,所有的的资源共享一个dashboard和keystone。关于具体实现,参考官方文档。

6. 附录

nova aggregate实现的几个命令

[[email protected] ~]# nova -h |grep aggregate
    aggregate-add-host  Add the host to the specified aggregate.           #添加主机         
    aggregate-create    Create a new aggregate with the specified details.   #创建分组
    aggregate-delete    Delete the aggregate.                                #删除分组
    aggregate-details   Show details of the specified aggregate.              #查看分组详情
    aggregate-list      Print a list of all aggregates.                     #查看分组列表
    aggregate-remove-host  aggregate.                                          #从主机从分组删除       
    aggregate-set-metadata Update the metadata associated with the aggregate.  #设置分组元数据信息
    aggregate-update    Update the aggregate‘s name and optionally           #修改分组名字
时间: 2024-10-27 06:27:46

openstack运维实战系列(十二)之nova aggregate资源分组的相关文章

openstack运维实战系列(十八)nova与ceph结合

1. 背景说明    nova负责虚拟机的生命周期管理,包括创建,删除,重建,开机,关机,重启,快照等,作为openstack的核心,nova负责IaaS中计算重要的职责,其中nova的存储格外重要,默认情况下,nova将instance的数据存放在/var/lib/nova/instances/%UUID目录下,使用本地的存储空间.使用这种方式带来的好处是:简单,易实现,速度快,故障域在一个可控制的范围内.然而,缺点也非常明显:compute出故障,上面的虚拟机down机时间长,没法快速恢复,

openstack运维实战系列(五)之nova quota调整

1. 前言     安装完openstack之后,为了对资源的限制,openstack内置了几种配额机制:nova计算资源的配额,cinder存储资源的配额,neutron网络资源的配额,防止资源的分过分配,默认的quota配置很低,比如nova默认只允许建立10个instance.未能能够正常使用openstack系统资源,需要调整quota的配置.本文主要讲述nova的配额修改,关于cinder和neutron的配额修改,请参考后续的的博文. 2. nova默认的配额 nova默认的配额定义

openstack运维实战系列(十三)之glance更改路径引发的"血案"

1. 背景说明 glance在openstack中负责镜像相关的服务,支持将运行的虚拟机转换为快照,镜像和快照都存储在glance中,glance的后端支持多种存储方式,包括本地的文件系统,http,glusterfs,ceph,swift等等. 默认情况下,glance采用本地文件系统的方式存储image,存储的路径为/var/lib/glance/images,随着时间的推移,当镜像越来越多的时候,根目录的空间将会越来越大,所以对于glance的路径来说,需要提前做好规划和准备,如划分一个单

openstack运维实战系列之keystone用户建立(一)

1. 前言 在生产环境中,使用openstack已经有1年多的时间了,苦于一直没有时间,加上工作带来的懒惰,一直迟迟没有对openstack方面的知识做个总结,趁着年底,把过去一年多在生产环境中所遇到的一些常见运维操作做个总结.需要说明的是,相关的操作,基本都建立在openstack的官方文档和帮助,所以最好的方式莫过于看官方文档,此处只作为抛砖引玉之用,望须知. 2. 关于keystone keystone是openstack中负责认证授权的服务,主要负责两方面的工作:1. 用户认证授权,2.

openstack运维实战系列(二十)之neutron创建网络并指定vlan号码

1. 背景说明   neutron在openstack中负责instance的网络,如虚拟机内部网络,虚拟机外部网络等,和实体网络相类似,openstack中的网络也存在路由器router,交换机switch,网络network,子网subnet,端口port等概念,这些功能都有neutron来完成,neutron由有个不同的插件plugins组成,如二层插件neutron-openvswitch-agent,三层插件neutron-l3-agent,动态地址分配neutron-dhcp-age

openstack运维实战系列(九)之cinder与glusterfs结合

1. 概述     cinder作为openstack的快存储服务,为instance提供永久的volume服务,cinder作为一种可插拔式的服务,能够支持各种存储类型,包括专业的FC存储,如EMC,NetApp,HP,IBM,huawei等商场的专业存储服务器,存储厂商只要开发对应的驱动和cinder对接即可:此外,cinder还支持开源的分布式存储,如glusterfs,ceph,sheepdog,nfs等,通过开源的分布式存储方案,能够达到廉价的IP-SAN存储.本文以glusterfs

openstack运维实战系列(六)之neutron配额调整

1. 前言   neutron在安装配置完成之后,openstack为了实现对所有tenant对网络资源的使用,针对neutron设置有专门的配额,以防止租户使用过多的资源,而对其他的tenant造成影响.和nova的quota相类似,neutron也使用单独的一个驱动来实现网络neutron的配额控制. 2. neutron默认的配额     neutron默认的配额针对network,port,router,subnet,floatingip做了配额方面的限定,参考neutron的配置文件,

openstack运维实战系列(十七)之glance与ceph结合

1. 需求说明 glance作为openstack中image服务,支持多种适配器,支持将image存放到本地文件系统,http服务器,ceph分布式文件系统,glusterfs和sleepdog等开源的分布式文件系统上,本文,通过将讲述glance如何和ceph结合. 目前glance采用的是本地filesystem的方式存储,存放在默认的路径/var/lib/glance/images下,当把本地的文件系统修改为分布式的文件系统ceph之后,原本在系统中镜像将无法使用,所以建议当前的镜像删除

openstack运维实战系列(十一)之neutron替换instance的IP

1. 背景说明   生产环境下openstack使用了vlan的的网络模式,针对业务需求不同,设置不同的网段,分别放置在不通的vlan中,通过vlan的方式,实现网络的隔离,网络相关的策略,可以通过现有的交换机,防火墙来设置.有时候,业务申请的虚拟机使用一段时间之后,需要将网络A切换至另外一个网络B,并且需要保留原有的虚拟机和数据,对于这种场景,就可以通过neutron端口替换的方式实现. neutron在openstack中负责虚拟机网络相关的服务,作为一种插件式的服务,neutron能够支持