• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
菜鸟笔记OpenStack:溯源篇
发布日期:2016-3-11 16:3:11

  菜鸟笔记OpenStack:溯源篇

  OpenStack是一个定位于IaaS(Infrastructure as a Service),旨在为公共及私有云的建设与管理提供软件的开源项目。自从2010年发布的第一个A版本,就按照英文字母排序的规律进行版本发布,截至目前他们已经发布了12个主要版本,现在稳定为每6个月发布一次大的版本更新。在搜索OpenStack时,会在各种百科中出现这样一个解释:OpenStack是一个美国国家航空航天局(NASA)和Rackspace合作研发的开源云端运算‎软件。“NASA”、“Rackspace”、“开源”这些组合的出现让笔者顿时对OpenStack的历史产生了浓厚的兴趣。所以准备在学习OpenStack之前先发扬八卦精神,码一码他们之间的关系,也让枯燥的学习生活增加一丝乐趣。

  

  项目起源时间回到2010年,当时的云计算场景是这样的,亚马逊的AWS稳坐大当家的地位,Ubuntu选择了Eucalyptus,Redhat放弃Xen选择了kvm(直接集成在Linux内核中)。在IaaS方面有这么几家:Cloudstack(双license)、Eucalyptus(双license)、Nebula(NASA的云平台)、Rackspace Cloud service。当时NASA已经在云计算领域投入了大量的资金,使用了很多Eucalyptus的代码。他们在该平台上进行了很多深度开发,最后放弃了该平台,据说是NASA的工程师试图获取更多的Eucalyptus 代码,但是失败了,因为这个平台只是开放部分的源码。最初的问题仅仅是扩展性的问题,这也是大部分产品最初都会遇到的问题,但是Eucalyptu与NASA的裂痕发展到无法挽回的地步,却是因为NASA发现Eucalyptus不愿向该项目提供解决扩展性问题的代码,即便是该项目并未与Eucalyptus Systems Inc(Eucalyptus幕后的实体公司)造成利益冲突。Eucalyptus幕后公司维护着部分代码,这些代码关系到商业版Eucalyptus Enterprise Edition(E3)的诸多特性,例如管理、SAN集成、更为出色的后台数据库以及与VMware的兼容性,这些功能对公司而言,既不可能也不愿意开源。索性NASA的工程师就用Python开发了Nova,在2010年4月开始筹备OpenStack。2010年7月NASA贡献了自己的云计算管理平台Nova代码,联合了当时第二大云计算厂商Rackspace(贡献了对象存储代码,也就是后来的Swift)发起了OpenStack开源项目。

  从此开始便开启了OpenStack的开源进程。当时在OpenStack项目上约定了几个原则:

  1、项目全部由Python语言开发;

  2、虚拟机默认使用Kvm;

  3、项目进行松耦合设计;

  4、使用Launchpad进行项目管理;

  5、使用GitHub进行代码管理;

  6、举办开发峰会;

  7、3个月迭代一个版本(后来改为6个月);

  8、产业链条设计(更多公司的加入,让开源项目更为蓬勃的发展)

  版本演进

  

  在OpenStack中最重要三个部分:计算、控制、网络。从这个版本演进的表格中可以看到,这里面项目的变化情况一直在遵循着某些规律,可以归纳出一些特点。松耦合的设计思路贯穿始终。从刚开始的Nova+Swift,慢慢对Nova进行松耦合处理。D版本中Keystore项目的建立,让Swift和Nova有了联系;F版本中Cinder和Quantum成为core项目,希望逐步代替Nova volume和Nova network;I版本增加的Trove数据库服务,Bare Metal(Ironic)。这种松耦合模式让OpenStack更加灵活,并且可以让多厂商进行开发,也保证了OpenStack作为开源项目能够得到支持从而很快发展。

  网络功能优化越来越成为重点。网络功能的加入源自第二个版本,最初作为Nova项目的一个功能Nova network,仅支持所有用户共享一个底层网络,也就是所说的扁平化网络。然而Nova network网络功能不尽如人意。D版本Cisco推动Quantum项目,Quantum逐渐从摆设慢慢壮大到和Nova network抗衡直至逐渐成为OpenStack的标配。随着Quantum改名Neutron,Neutron+Linux bridge、Neutron+OVS、OVS硬件化,让网络能力逐渐丰富和提升。SDN和NFV技术的强力接入,也为OpenStack的网络性能增加了强劲动力。下面把OpenStack中网络功能的演进进行了一番归纳。

  

  容器技术的强势加入。从OpenStack诞生之日起,Kvm由于其原生于Linux内核的高性能将老牌Xen挡在门外,不过Docker技术的盛行,Kvm和Docker又面临着新的战斗,并且Nova Docker、Heat Docker、Magnum技术让OpenStack和Docker更好结合进行试验,最新的Kuryr项目让Docker网络功能更加优秀。

  本文通过对OpenStack演进过程的归纳,可以从大的范畴上看到OpenStack在演进过程中的一些特征,后续将对OpenStack的详细技术细节进行阐述。