这是OpenStack的概述。 如果您不熟悉它,OpenStack是由众多行业领导者共同发起的开源技术项目的集合(请参阅参考资料 )。 它提供了用于大规模协调云的操作平台。 它的技术与虚拟机管理程序无关,并包括在标准硬件上置备虚拟机(VM)的软件。 此外,它提供了分布式对象存储和广泛的可选功能,包括网络控制器,身份验证管理器,管理仪表板和块存储。
OpenStack由Rackspace Cloud和美国国家航空航天局(NASA)发起,目前是世界上最受欢迎的由财团主导的基础架构即服务软件栈(请参阅参考资料 )。 自成立以来,它得到了业界的广泛认可,现在有100多个支持者,其中包括许多业内最大的组织。 当前的白金会员包括IBM,AT&T,Canonical,HP,Nebula,Rackspace,Red Hat和SUSE。
IBM参与
这些文章的许多读者对IBM怀有浓厚的兴趣,因此有必要强调一下OpenStack对公司的重要性。 IBM于2013年3月宣布了开放云架构,并致力于从IBMSmartCloud®Orchestrator开始将其所有云产品基于OpenStack。 在此公告发布之前,IBM积极投资于将其产品与OpenStack集成,并为OpenStack社区做出了重大贡献,帮助该软件满足了企业和云服务提供商的要求。
IBM选择OpenStack不仅是因为其体系结构,还因为其开发社区,开放式治理以及不断发展的提供商和插件生态系统。 作为社区的一部分,IBM提供了许多直接的贡献。 另外,许多其他基于IBM云的活动间接支持OpenStack。
例如,IBM的开放云体系结构并入了OASIS云应用程序的拓扑和业务流程规范(TOSCA)标准。 TOSCA是由IBM,SAP,HP,Rackspace和许多其他公司开发的开放标准。 为了最大程度地发挥影响,这些公司中的许多公司还在OpenStack Heat项目中合作实现对OASIS TOSCA模板描述的支持。
另一个参与领域是白金赞助OpenDaylight,这是Linux®基金会下的一个合作项目,致力于为软件定义网络(SDN)创建一种开放透明的方法。 它是迄今为止最大的开源SDN项目,得到了业界的广泛认可。 该项目的使命是根据行业标准创建一个开放的SDN平台。 例如,计划将OpenDaylight项目成员创建的OpenFlow控制器作为OpenStack网络服务的插件。
IBM云产品提供了一个开源的平台即服务平台,开发人员可以在该平台上创建依赖于托管服务的以云为中心的应用程序,这些托管服务包括PostgreSQL,MySQL,Redis,blob存储,弹性缓存,示例位置服务,SMS服务,简单的社交网络。服务和RabbitMQ。
历史
最了解OpenStack项目的历史过程是最容易的。
OpenStack由Rackspace Cloud和NASA于2010年发起,他们整合了NASA的Nebula平台和Rackspace的Cloud Files平台的代码。 第一个核心模块称为“计算”和“对象存储”,但更常用的分别是项目名称Nova和Swift。
有关OpenStack的最令人兴奋的事情之一是,它持续快速,快速地增长,并且通常每年发行两个或多个版本。 结果,有关该技术的许多公开信息已过时,因此重要的一点是要保持任何文档所指代的版本。
OpenStack使用YYYY.N
表示法根据发行年份和当年的主要版本来指定其发行版本。 例如,2011年的第一个版本(Bexar)的版本号为2011.1,而下一个版本(Cactus)的标签为2011.2。 次要版本进一步扩展了点符号(例如2011.3.1)。
开发人员经常通过其代号来引用该发行版,代号按字母顺序排序(请参见表1)。 奥斯汀是第一个主要发行版本,其次是Bexar,仙人掌和暗黑破坏神。 这些代号是在OpenStack设计峰会上由公众投票选择的,通常标识峰会所在地附近的地理实体。
表1. OpenStack版本
发布名称 | 发行编号 | 日期 |
---|---|---|
奥斯丁 | 2010.1 | 2010-10-21 |
贝克斯 | 2011.1 | 2011-02-03 |
仙人掌 | 2011.2 | 2011-04-15 |
暗黑破坏神 | 2011.3 | 2011-09-22 |
2011.3.1 | 2012-01-19 | |
艾塞克斯 | 2012.1 | 2012-04-05 |
2012.1.1 | 2012-06-22 | |
2012.1.2 | 2012-08-10 | |
2012.1.3 | 2012-10-12 | |
福尔松 | 2012.2 | 2012-09-27 |
2012.2.1 | 2012-11-29 | |
2012.2.2 | 2012-12-13 | |
2012.2.3 | 2013-01-31 | |
2012.2.4 | 2013-04-11 | |
灰熊 | 2013.1 | 2013-04-04 |
2013.1.1 | 2013-05-09 | |
2013.1.2 | 2013-06-06 | |
2013.1.3 | 2013-08-08 | |
哈瓦那 | 2013-10-17 |
每个版本都合并了新功能,添加了文档并以增量方式提高了部署的便利性,但路线图还扩大了构成该计划一部分的项目数量。
如前所述,Austin版本仅包含两个核心项目:OpenStack Compute(Nova)和OpenStack Object Storage(Swift)。 Bexar通过图像服务(概览)对这些内容进行了补充,该服务在许多方面构成了计算和存储的交集。 图像代表存储在OpenStack中的模板VM,以根据需要快速启动计算实例。
Essex版本增加了另外两个核心项目。 OpenStack Identity(Keystone)隔离了Nova以前处理过的用户管理元素,并引入了OpenStack仪表板(Horizon)来标准化和简化单个租户和OpenStack管理员的用户界面(UI)。
Folsom将计数增加了另外两个档次。 团队决定将网络组件(以前也包含在Nova中)拆分为一个单独的项目,该项目最初称为Quantum ,后来更名为Neutron 。 同时,一个单独的团队开发了一个名为Cinder的OpenStack块存储组件。
模组
从Grizzly版本开始,OpenStack包含七个核心项目:
- 计算(新星)
- 联网(中子/量子)
- 身份管理(重点)
- 对象存储(快速)
- 块存储(煤渣)
- 影像服务(概览)
- 用户界面仪表板(Horizon)
OpenStack计算(Nova)
OpenStack Compute(Nova)控制云计算结构(基础结构服务的核心组件)。 它使用Python编写,创建了一个抽象层,用于虚拟化商品服务器资源(例如CPU,RAM,网络适配器和硬盘驱动器),并具有提高利用率和自动化的功能。
其实时VM管理具有通过与一组受支持的虚拟机管理程序集成来启动,调整大小,挂起,停止和重新启动的功能。 还有一种机制可以将VM映像缓存在计算节点上,以加快配置速度。 映像运行时,可以通过应用程序编程接口(API)以编程方式存储和管理文件。
OpenStack网络(Neutron / Quantum)
网络(Neutron)以前称为Quantum,它具有管理LAN的功能以及虚拟LAN(VLAN),动态主机配置协议和Internet协议版本6的功能。用户可以定义网络,子网和路由器以配置其内部拓扑,然后为这些网络分配IP地址和VLAN。 浮动IP地址允许用户向VM分配(和重新分配)固定的外部IP地址。
OpenStack身份管理(重点)
OpenStack身份管理(Keystone)管理用户的目录以及他们可以访问的OpenStack服务的目录。 其目的是在所有OpenStack组件中公开一种中央身份验证机制。 Keystone可以不提供身份验证本身,而可以与各种其他目录服务集成,例如可插拔身份验证模块,轻型目录访问协议(LDAP)或OAuth。 通过这些插件,它可以促进多种形式的身份验证,从简单的用户名-密码凭据到复杂的多因素系统。
OpenStack Identity使管理员可以配置适用于用户和系统的集中式策略。 他们可以创建项目和用户,将它们分配给管理域,定义基于角色的资源权限,并与LDAP等其他目录集成。 目录包含单个注册表中所有已部署服务的列表。 用户和工具可以检索他们可以通过编程请求或登录到仪表板访问的服务列表,他们还可以使用仪表盘创建资源并将其分配给他们的帐户。
OpenStack对象存储(快速)
OpenStack对象存储(Swift)基于Rackspace Cloud Files产品,是用于横向扩展存储的理想冗余存储系统。 OpenStack可确保在池中的设备之间进行数据复制和分发,因此用户可以使用商用硬盘和服务器,而不必使用较昂贵的设备。 如果组件发生故障,OpenStack可以将其他活动系统中的内容补充到新的群集成员中。 该架构还可以实现水平可伸缩性,因为很容易根据需要用其他服务器扩展存储集群。
Swift是主要用于静态数据(例如VM映像,备份和存档)的分布式存储系统。 该软件将文件和其他对象写入一组磁盘驱动器,这些磁盘驱动器可以分布在一个或多个数据中心周围的多台服务器上,从而确保整个集群的数据复制和完整性。
OpenStack块存储(Cinder)
OpenStack块存储(Cinder)管理计算实例使用的块级存储。 块存储非常适合具有严格性能限制的方案,例如数据库和文件系统。
与Cinder一起使用的最常见的存储是Linux服务器存储,但是也存在其他平台的插件,包括Ceph,NetApp,Nexenta和SolidFire。 云用户可以通过仪表板管理其存储需求。 该系统提供了用于在服务器之间创建,连接和分离块设备的接口。 也可以通过使用快照功能来备份Cinder卷。
OpenStack映像服务(概览)
OpenStack映像服务(Glance)提供对VM映像的支持,特别是在启动VM实例时使用的系统磁盘。 除了发现,注册和激活服务之外,它还具有快照和备份功能。
概览图像可以用作模板,以快速,一致地推出新服务器。 API服务器公开了一个具有表示状态传输(REST)功能的接口,用户可以使用该接口列出和获取分配给可扩展的后端存储集(包括OpenStack对象存储)的虚拟磁盘映像。
用户可以以多种格式向服务提供私有和公共映像,包括VHD(Microsoft(®)Hyper-V®),VDI(VirtualBox),VMDK(VMware),qcow2(基于Qemu /内核的虚拟机),现有的功能可以注册新的虚拟磁盘映像,查询有关公共可用磁盘映像的信息以及流式传输虚拟磁盘映像。
相互依存
一个典型的OpenStack实现将集成大多数(如果不是全部)项目。
图1. OpenStack体系结构
三个元素与系统中的所有组件交互。 Horizon是图形界面,管理员可以最轻松地使用它来管理所有项目。 Keystone处理授权用户的管理,而Neutron定义了在组件之间提供连接的网络。
Nova可以说是OpenStack的核心。 它处理工作负载的编排。 它的计算实例通常需要某种形式的持久性存储,可以是基于块的(Cinder)或基于对象的(Swift)。 Nova还需要映像来启动实例。 Glance处理此请求,从而可以选择使用Swift作为其存储后端。
OpenStack架构致力于使每个项目尽可能独立,这使用户可以选择仅部署功能的一部分并将其与提供相似或互补功能的其他系统和技术集成。 但是,这种独立性不应掩盖一个事实,即功能齐全的私有云实际上可能需要所有功能才能平稳运行,并且必须紧密集成各个元素。
路线图
在理解OpenStack时,请务必记住该系统仍在开发中。 可以以当前的形式实现它,但还有很多事情要做。 例如,哈瓦那版本包含两个新项目,许多人一直期待着一段时间:OpenStack Metering(Ceilometer)和OpenStack Orchestration(Heat)。
云高仪是一种集中收集计量和监视数据的机制。 它为计费系统提供了一个单点联系,以获取他们在整个OpenStack组件套件中所需的所有使用信息。 它支持一组可追溯和可审核的可扩展计数器。
Heat是OpenStack的基于模板的编排引擎。 它允许开发人员定义应用程序部署模式,从而通过RESTful API来协调复合云应用程序。 模板可以容纳大多数OpenStack资源类型(例如Nova实例和浮动IP地址范围,Cinder卷,Keystone用户)。 还具有用于高级功能的功能,包括高可用性,自动缩放和嵌套堆栈。
翻译自: https://www.ibm.com/developerworks/cloud/library/cl-openstack-overview/index.html