设为首页 收藏本站
查看: 1080|回复: 0

[经验分享] openstack运维实战系列(十二)之nova aggregate资源分组

[复制链接]

尚未签到

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

  概念说明
  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
[root@controller ~]# nova aggregate-create HappyLabZone1 HappyAggreate1
+----+---------------+-------------------+-------+------------------------------------+
| Id | Name          | Availability Zone | Hosts | Metadata                           |
+----+---------------+-------------------+-------+------------------------------------+
| 11 | HappyLabZone1 | HappyAggreate1    |       | 'availability_zone=HappyAggreate1' |
+----+---------------+-------------------+-------+------------------------------------+  2. 查看aggreate列表
[root@controller ~]# nova aggregate-list
+----+-------------------+-------------------+
| Id | Name              | Availability Zone |
+----+-------------------+-------------------+
| 5  | ChuangYiYuanZone1 | ChuangYiYuanZone1 |
| 11 | HappyLabZone1     | HappyAggreate1    |        #Zone和Aggreate关联一起了
+----+-------------------+-------------------+  3. 将compute节点加入到Aggreate内
[root@controller ~]# 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' |
+----+---------------+-------------------+---------------------------+------------------------------------+
[root@controller ~]# 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' |
+----+---------------+-------------------+------------------------------------------------------+------------------------------------+
[root@controller ~]# 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的详细信息
[root@controller ~]# 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查看划分情况

[root@controller ~]# 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。效果如下:
[root@controller ~]# 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  页面效果:
DSC0001.png DSC0002.png

  创建VM的时候可以选择:

  4.aggreate的删除
[root@controller ~]# nova aggregate-list            #获取aggregate的ID号码
+----+-------------------+-------------------+
| Id | Name              | Availability Zone |
+----+-------------------+-------------------+
| 5  | ChuangYiYuanZone1 | ChuangYiYuanZone1 |
| 11 | HappyLabZone1     | HappyAggreate1    |      #id号是11
+----+-------------------+-------------------+
[root@controller ~]# 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' |
+----+---------------+-------------------+------------------------------------------------------+------------------------------------+
查看详情:
[root@controller ~]# nova aggregate-details  11   
+----+---------------+-------------------+-------+------------------------------------+
| Id | Name          | Availability Zone | Hosts | Metadata                           |
+----+---------------+-------------------+-------+------------------------------------+
| 11 | HappyLabZone1 | HappyAggreate1    |       | 'availability_zone=HappyAggreate1' |    #已经没有compute节点
+----+---------------+-------------------+-------+------------------------------------+
将aggregate删除
[root@controller ~]# nova aggregate-delete HappyLabZone1
Aggregate 11 has been successfully deleted.  

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

  6. 附录
  nova aggregate实现的几个命令
[root@controller ~]# 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           #修改分组名字  

  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-497777-1-1.html 上篇帖子: 在OpenStack中对云主机类型进行重新配置 下篇帖子: openstack运维实战系列(十三)之glance更改路径引发的"血案"
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表