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

[经验分享] openstack各个组件对应介绍

[复制链接]

尚未签到

发表于 2018-6-2 13:48:50 | 显示全部楼层 |阅读模式
  

DSC0000.png DSC0001.png



圆形为openstack组件,矩形为外部组件
RabbitMQ, Qpid, ZeroMQ为消息队列
xapi+XCP, xapi+XenServer, libvirt+KVM, libvirt+QEMU, libvirt+LXC, libvirt+VMWare为虚拟化技术
LVM+IET, LVM+tgt, Xen Storage Manager, SAN (Solaris, HP, SolidFire), NexentaStor, NetApp, Ceph, Sheepdog为外部扩展iscsi存储,用来挂载远程块存储设备
MySQL, PostgreSQL, sqlite为数据库
Apache, Nginx 为web服务器
memcache, any Django-supported database backend (e.g., MySQL, PostgreSQL, sqlite)为会话缓存技术
floating IP为服务器对外网络IP,fixed IP为虚拟机网段IP

    nova-compute 通过虚拟驱动技术管理虚拟机,一般采用KVM+libvirt或XCP+xapi技术
nova-network 通过linux网络技术实现虚拟机与物理服务器的通信,Dnsmasq与DHCP服务器相似,向虚拟机分发IP。(F版为 Quantum)
nova-volume 利用LVM创建和管理本地磁盘卷,使用IET或tgt实现iSCSI。(F版为Cinder)
  openstack-dashboard基于 Django的web应用,使用apache web服务器,默认使用 memcache做会话缓存,novnc通过VNC技术远程控制虚拟机节点
  Identity-------------Keystone
  Compute----------Nova
  Image-----------Glance
  Dashboard---------Horizon
  Object Storage--------Swift
  Volumes---------Cinder
  Networking------Quantum
   OpenStack 主要由3个核心的项目组成, 它们是OpenStack Compute(代号 Nova)、OpenStack Object  Storage(代号Swift)和OpenStack Image Service(代号Glance), 除此之外,  目前还添加了身份验证服务Openstack Identity Service(代号Keystone)和OpenStack Dashboard,  通过它们之间相互集成和协作, 我们就可以非常方便的打造一个规模庞大的云计算环境。 另外开源社区也在不断的为OpenStack添砖加瓦,  我们可以通过OpenStack Projects来了解, 具体有多少应用以及它们的作用是什么。


下面这张图描述了OpenStack的核心部件是如何工作的:
DSC0002.jpg

官方地址:https://github.com/openstack

孵化项目:https://github.com/stackforge

Nova
这个是最核心的,Nova最开始的时候,可以说是一套虚拟化管理程序,还可以管理网络和存储。不过从Essex版本后,Nova开始做减法,和网络相关的 内容,包括安全组,交给Quantum负责,存储相关的交给Cinder负责。调度有关的内容,会交给新的项目Marconi。
以前还有一个nova common,这其实是各个组件都使用相同的东西,现在也专门成立一个项目:oslo,已经是核心项目。
未来Nova对各种Hyperv的支持是有差异的,KVM和XEN,基本是最好的。微软的Hyper-V算是很不错,微软投入再研发。刚才朋友还专门提到一点:就是未来计算节点,不直接查询数据库,而是通过rpc的方式,据说这是一大进步。
Nova的稳定性,其实取决于libvirt,qemu,希望未来可以能更加稳定。功能现在其实已经不是大问题。

keystone
这是提供身份认证和授权的组件。任何系统,身份认证和授权,其实都比较复杂。尤其Openstack 那么庞大的项目,每个组件都需要使用统一认证和授权。
目前keystone 要做的东西其实还是很多。没法基于角色的授权,web管理用户等。当然你如果希望实现使用动态令牌认证,多因素认证,LDAP集成,这都是未来版本需要实现的功能,这些功能都已经在计划中。
目前好像要实现keystone的高可用,还是比较困难,这个就让社区慢慢解决吧。大规模部署,这也会是瓶颈。

Glance
这是镜像管理。功能其实相对比较简单。不过Glance后端的存储的支持,其实一直到Folsom的版本,Glance对swift的支持,才算是比较完善。
目前Glance的镜像存储,支持本地存储,NFS,swift,sheepdog和Ceph,基本是够用了。
目前Glance的最大需求就是多个数据中心的镜像管理,如何复制,不过这个功能已经基本实现。还有就是租户私有的image管理,这些目前功能都已经实现。
个人感觉:Glance后续基本就是一个bug修复,稳定的阶段。

  Quantum
这是网络管理的组件,也是重头戏,Openstack的未来,基本都要靠quantum。上面介绍nova的时候,说过网络相关的内容,都会交给 Quantum。不过Quantum的开发进度不是太如人意。Flosom规划实现功能,到Grizzly才实现。未来nova  network的代码清理,估计到H版本都不见得可以实现。
Quantum 后端可以是商业产品或者开源。开源产品支持Openvswitch,和linux bridge。网络设备厂商都在积极参与,让他们的产品支持Quantum,目前思科,锐捷已经实现支持。
比较悲观的估计:quantum要完全满足生产的需求,例如带宽限制,mutilhost等功能,很可能需要等到2014年的I版本,真的考验耐心。
如果你关注Quantum的话,就会发现目前还是在起步阶段,无论是bug还是功能,都是非常多。

Cinder
这是存储管理的组件。一直以来,很多人都很纠结AWS的EBS的实现。Openstack也终于推出了自己的存储管理组件。
Cinder存储管理主要是指虚拟机的存储管理。目前支持开源和商业化产品。开源的sheepdog,Ceph等。商业存储的支持,目前IBM是最积极的。未来如果商业存储厂商都支持Cinder,对Openstack的商业化还是非常有利的。
对于企业来说,使用分布式作为虚拟机的存储,并不能真正节省成本,维护一套分布式存储,成本还是很高的。目前虚拟机的各种高可用,备份的问题,其实都可以把问题交给商业存储厂商来解决。

Lbaas
这是实现负载均衡的项目。现在linode,Rackspace,都提供了负载均衡的服务,有了这个服务,你才有可能实现所谓的弹性扩展。这个组件是Mirantis公司和思科合作开发的。目前这个项目集成在Quantum里,不过基本算是一个独立的组件。
Lbaas后端可以是各种商业产品和开源产品。F5,Ngnix,Haproxy,LVS
为了发布的Grizzly,你应该有机会在Dashboard里设置虚拟机的负载均衡。

Horizon
严格意义来说,Horizon不会为Openstack  增加一个功能,他更多的是一个演示,demo。不过对于很多用户来说,了解Openstack基本都是从Horizon,dashboard开始。从这个 角度来看,他在Openstack各个项目里,显得非常重要。
Horizon的开发者,应该是最累的。需要和各个项目打角度。每个项目的功能很多都是需要通过Dashboard来展现。
大家需要注意的是:Horizon只是使用了Openstack部分API功能,很多功能,你可以根据你的需求去实现。

Swift
这是对象存储的组件。对于大部分用户来说,swift不是必须的。你只有存储数量到一定级别,而且是非结构化数据才有这样的需求。很多人都问一个相同的问 题:是否可以把虚拟机的存储放在swift上。简单回答:不行。你需要搞明白对象存储是干啥,擅长那些地方,那些是不行的。
swift是Openstack所有组件了最成熟的,可以在线升级版本,各种版本可以混合在一起,也就是说,1.75版本的swift可以和1.48的在一个群集里.这个是很难得的.

  
oslo
这个项目其实就是把所有组件需要用到相同的东西,集中起来,以前叫nova common,估计感觉不贴切,现在单独成立一个项目。日后大家开发新的组件,估计都需要用到oslo。

Ceilometer
这是实现监控和计量的组件。这应该算是Grizzly的孵化项目。对他的了解其实很少。在Grizzly版本里,你应该可以在Dashboard里看到这个组件。
监控和计费一直是一个难题,尤其用户希望知道cpu和内存的使用情况。看看他如何解决这个问题。到时候看看同事如何调用api来解决监控和计量的问题。解决计量,计费就简单的。
http://wiki.openstack.org/Ceilometer

Heat
这个项目是要解决虚拟机的软件部署的问题。你的虚拟机创建好,os准备好,你还需要做很多配置才能使用,如何能实现把所有繁琐的操作简化呢?亚马逊上有一 个专门的工具:AWS cloudformation。目前Openstack上,希望通过Heat来实现类似的功能。
关于这个项目,还是有很多争议。不过这个项目是Redhat发起。他们的功力是不容置疑,等Openstack成熟后,这个项目的重要性就会体现出来。
http://wiki.openstack.org/Heat
真的要实现弹性扩展,自动部署,都是需要指望这个。目前Heat已经成为孵化项目

下面的项目,基本都还是在讨论阶段,不过成为孵化项目的可能性很大。
Moniker
这是实现dns功能的组件。其实如果你用过AWS,你就知道这个功能是必不可少。新浪目前的已经加上了这个功能,每个虚拟机,都会自动有一个dns记录。
https://github.com/stackforge/moniker
估计集成到Dashboard里,还是需要等待一段时间啊。目前该项目开发还是非常积极。

  marconi
此项目用于解决openstack 消息队列的扩展问题。据说这是Rackspce推出的项目,就是为了解决他们生产中遇到消息队列的问题。
Marconi – Message Bus for OpenStack

运维网声明 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-508137-1-1.html 上篇帖子: openstack 创建镜像时遇到 failed to find romfile "pxe 下篇帖子: Openstack 创建windows 镜像文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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