Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2285947
  • 博文数量: 259
  • 博客积分: 9440
  • 博客等级: 少将
  • 技术积分: 6988
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-03 10:28
  • 认证徽章:
个人简介

-- linux爱好者,业余时间热衷于分析linux内核源码 -- 目前主要研究云计算和虚拟化相关的技术,主要包括libvirt/qemu,openstack,opennebula架构和源码分析。 -- 第五届云计算大会演讲嘉宾 微博:@Marshal-Liu

文章分类

全部博文(259)

文章存档

2016年(1)

2015年(4)

2014年(16)

2013年(23)

2012年(41)

2011年(59)

2010年(40)

2009年(75)

分类: 云计算

2014-01-03 17:59:46

    OpenStack中涉及很多的概念,由于很多同学没有实际的运维经验或者说对代码没有深入分析,很多同学可能不太理解为什么有这么多的概念,它们之间到底有哪些区别。下面就个人的简单理解,分析和总结下这些概念,纯属一家之言,期待相互交流。
   首先,openstack的这些概念,主要还是受AWS的影响,毕竟openstack起步晚,很多东西还是的向AWS学习。在这里想表明一个观点:有些概念的产生,最初可能并不是为了解决现在的问题,所以没有必要非得去抄袭这个概念,关键是解决实际的问题。另外,以目前的趋势来看,openstack社区的力量已经不是AWS一个公司能比拟的了的了,openstack势必会提出一些区别于AWS的概念,所以不要老是想AWS的这个概念和openstack这个概念的关系。
   
   通过下图来详细解释下几个概念的含义和区别。

1. Regions
    更像是一个地理上的概念,每个region有自己独立的endpoint,regions之间完全隔离,但是多个regions之间共享同一个keystone和dashboard。(注:目前openstack的dashboard还不支持多region)
   所以除了提供隔离的功能,region的设计更多侧重地理位置的概念,用户可以选择离自己更近的region来部署自己的服务。
2. Cells
   cell是openstack一个非常重要的概念,主要用来解决openstack的扩展性和规模瓶颈。众所周知,openstack是由很多的组件通过松耦合构成,那么当达到一定的规模后,某些模块必然成为整个系统的瓶颈。比较典型的组件就是database和AMQP了,所以,每个cell有自己独立的DB和AMQP。
   另外,由于cell被实现为树形结构,自然而然引入了分级调度的概念。通过在每级cell引入nova-cell服务,实现了以下功能:
(1)Messages的路由,即父cell通过nova-cell将Messages路由到子cell的AMQP模块
(2)分级调度功能,即调度某个instances的时候先要进行cell的选择,目前只支持随机调度,后续会增加基于filter和weighing策略的调度。
(3)资源统计,子cell定时的将自己的资源信息上报给父cell,用来给分级调度策略提供决策数据和基于cell的资源监控
(4)cell之间的通信(通过rpc完成)
  最后,所有的子cell公用底层cell的nova-api,子cell包含除了nova-api之外的其他nova服务,当然所有的cell都共用keystone服务。
(注:nova-*是指除了nova-api之外的其他nova服务,子cell + 父cell才构成了完整的nova服务)
3. Availability Zones
   AZ可以简单理解为一组节点的集合,这组节点具有独立的电力供应设备,比如一个个独立供电的机房,一个个独立供电的机架都可以被划分成AZ。所以,AZ主要是通过冗余来解决可用性问题。在亚马逊的声明中,instance不可用指的是用户所有AZ中的同一instances都不可达才表明不可用。
  AZ之间共享所有的nova服务和keystone服务。
  另外,AZ是用户可见的一个概念,用户在创建instance的时候可以选择创建到哪些AZ中,以保证instance的可用性。
  注:AZ相关的其他概念参见文章《OpenStack Availability Zone和Aggregate Hosts理解 
4.Host Aggregates
  Host Aggregates也是一组节点的组合,但强调这组节点具有共同的属性,比如:cpu是制定类型的一组节点,disks是ssd的一组节点,os是linux或windows的一组节点等等。
  需要注意的是,Host Aggregates是用户不可见的概念,主要用来给nova-scheduler通过某一属性来进行instance的调度,比如讲数据库服务的instances都调度到具有ssd属性的Host Aggregate中,又或者让某个flavor或某个image的instance调度到同一个Host Aggregates中。
  Host Aggregates之间共享keystone和所有的nova服务。
  注:Host Aggregates相关的其他概念参见文章《OpenStack Availability Zone和Aggregate Hosts理解 

  Openstack还有几个比较重要的概念:domain,project,group,user和rule等,由于这部分主要涉及到用户权限管理,个人感觉比较复杂,会在后续文章中介绍。
                                                                                                                                                                                                                        
 微博:@Marshal-Liu
阅读(19597) | 评论(2) | 转发(7) |
给主人留下些什么吧!~~

天蓝之蝎2015-04-09 16:32:33

期待后续

5t5t_5t5t2014-01-06 16:25:44

强烈关注 ,呵呵。

评论热议
请登录后评论。

登录 注册