文 / 程辉 OpenStack,火热正当时

2012年4月5日,OpenStack Essex版本正式发布。按照OpenStack社区的传统,正式版本发布之后就会举行OpenStack Design Summit和OpenStack Conference两场活动,简称“两会”,今年也不例外——“两会”在美国旧金山如期而至。

OpenStack Design Summit 为期三天,是一场技术 Geek 盛会,主要面向社区贡献者; OpenStack Conference 为期两天,是一场综合性会议,主要面向企业和用户,既有用户案例,又有技术分享。 由于新浪云计算在生产环境中部署 OpenStack 较早,且积极参与社区贡献,所以我也受邀在“两会”上做了技术分享和主题演讲。本文将主要谈谈 OpenStack 及其社区的现状。 OpenStack生态系统正在形成 2010 年 7 月, OpenStack 发布第一个版本 Austin 。当时只有两个核心项目:计算资源虚拟化项目 Nova 和对象存储系统 Swift 。不到两年时间,第五个版本 Essex 已发布,核心项目增加到 6 个。新增的两个值得关注的项目是统一认证与授权项目 Keystone 和网络虚拟化项目 Quantum ,还有一批正在孵化期的项目和大量第三方开发的项目或插件,如数据库即服务项目 RedDwarf 、队列服务 Burrow 等。 IBM 、 HP 、 DELL 、 Intel 等 IT 巨头纷纷表态加入 OpenStack 阵营,大批互联网企业、传统软件服务商等也开始在测试或生产环境中部署 OpenStack 。开源项目能获得如此多的支持实属少见。 同时,基于 OpenStack 的商业模式正在形成。在北美,涌现出一批基于 OpenStack 的创业公司,影响力较大的是 Piston ,它立志成为 OpenStack 领域的 RedHat ,是几位 OpenStack 创始人,包括前 NASA 首席架构师 Joshua McKenty 于 2011 年成立的。它提供了 Piston Enterprise OS 及企业服务,特点是快速部署和安装,只需一个 U 盘便可在几分钟内将一批裸机架部署完成。其他值得关注的创业公司,如 Mirantis ,提供 OpenStack 培训和人力资源服务; SwiftStack ,提供基于 Swift 的私有云存储服务解决方案; Nicira ,利用 OpenFlow 协议和 Open vSwitch 为 OpenStack 提供商业的网络虚拟化解决方案,它们的工程师主导了 Quantum 项目的开发,且将 Nicira NVP 插件集成到 Quantum 项目中。 另外值得一提的是 HP 对 OpenStack 的商业化尝试。 HP Cloud 算是最大的一个完全基于 OpenStack 的公有云项目,经历了半年多的免费测试期之后,终于在五月中旬推出 Beta 版。 Quantum:OpenStack下一代网络解决方案 在 Design Summit 上,关于网络的讨论是一个热点。之前, Nova 项目 PTL ( Project Technical Leader ) Vishy 已经宣布,目前 Nova 中的网络部分不接受大改,只允许 bugfix ,网络相关的功能将全部由另一个核心项目 Quantum 实现。 Quantum 定义网络操作相关的 API ,并且就像 Nova 通过插件式的架构支持不同的 Hypervisor 驱动一样, Quantum 也支持多个不同实现,既可以操作虚拟交换机,也支持物理交换机。 目前官方支持的驱动有 Nova Network 模块正用的 LinuxBridge 和 OpenvSwitch ,还支持商业的 Cisco UCS 以及 Nicira NVP 。 Quantum 跟 Nova Network 模块的关系可以理解为 Nova Network=Quantum+LinuxBridge Plugin 。目前 Quantum 项目完成了二层网络相关的功能,如创建和管理虚拟网络、端口等。另一个负责三层网络的项目是 Melange ,它的主要任务是 IP 地址管理( IPAM )、 DHCP 、 NAT 甚至负载均衡。不过未来, Melange 将最终合并到 Quantum 项目中,以补充其三层网络功能,实现大统一,也避免多个网络相关的项目同时存在而造成用户困惑。 Swift存储 在 Design Summit 上, Swift 是一个热门话题。一位来自 Nexenta 的七十多岁的老太太 Caitlin Bester 非常引人关注。她讲解关于 Swift 的多版本支持和排重技术,技术含量很高。 Amazon S3 很早就支持单文件多版本,但 Swift 一直没有类似功能。多版本对于互联网业务和数据安全都很重要。同时,倘若文件支持多版本,那么势必大幅增加存储空间占用,因此,这时文件排重就显得尤其重要。 正因为如此, Caitlin 同时提出这两个问题的解决方案:对于多版本支持, Swift 的 Proxy Server 通过为每一个 PUT 新文件的请求,定义一个分布式版本 ID 来标识,这个 ID 的生成不依赖上一个版本,并且与 Swift 的 Share-Nothing 架构保持一致,不依赖中心 metadata 存储来生成;对于排重,基于文件块( Chunk )来做,而不是对象级别,客户端(可以是 Proxy Server )在上传每一个块时,计算它的散列,然后向系统查询这个块是否存在,如果存在就不必继续上传后面的存储节点;如果不存在则继续。当然,还有很多其他因素需要考虑,篇幅有限,感兴趣的读者可查阅设计文档。 Swift 即将发生的另一个变化是 PTL John Dickinson 提出来的。 Swift 代码目前比较臃肿,尤其是在 Essex 开发周期中,大量的新特性、新功能加入到了代码核心中,代码审查人员需要完全熟悉日益增长的代码,给代码审查带来了些困难。因此 John 提议将 Swift 周边的功能,如 tempurl 、formpost 、 staticweb 、 rate limiting 、 swift3 、 cname lookup 等中间件移出来,成为 Swift 的附属项目。 计费与监控 越来越多的公司开始将 OpenStack 商用,但都面临同一个问题——不得不自己开发统计与计费模块和监控功能,因为 OpenStack 官方缺少类似项目。新浪也面临同样的问题,因此开发了计费和监控两个项目,并在 Design Summit 的一个分会场上分享了计费项目 Dough 的开发和设计,同时,新浪也在 GitHub 上开放了 Dough 的源码,并邀请现场开发者一起参与并改进这个项目。 另外,本次 OpenStack Conference 期间,亚太地区的 OpenStack 社区代表举行了两场座谈,讨论亚太地区 OpenStack 大会的相关事宜。有个重要的议题是第一次会议举办的时间和地点。对于举办时间,与会代表很快达成一致,即在两次 OpenStack 发行版之间,但对于举办地点,各国代表都希望在本国举办,后来才达成一致—在中国举办。 小结 本次 OpenStack 两会中,充分感受到了 OpenStack 一直所宣称的四个 Open : Open Source 、 Open Design 、 Open Development 、 Open Community 。 OpenStack 使用的是对公司最友好的 Apache 2 开源协议。任何人都能参与设计和开发,甚至提出创立自己的项目。只要经过社区讨论,并达成一致,就可以按照你的标准。期待更多的中国公司和开发者参与到 OpenStack 社区中。 作者程辉,新浪云计算技术经理,2009年加入新浪SAE,曾担任SAE系统开发工程师和运维负责人。2011年初开始研究OpenStack,并组建团队,成立基于OpenStack的项目SWS(Sina Web Services),为新浪内部和合作伙伴提供IaaS层服务。 本文选自《程序员》杂志2012年06期,未经允许不得转载。如需转载请联系 market@csdn.net 《程序员》2012年杂志订阅送好礼活动火热进行中 首届OpenStack亚太技术大会将于8月10日、11日在北京、上海召开,详情请参见大会官网( openstack.csdn.net),欢迎 讲师报名听众报名。感兴趣的网友,请关注 @CSDN云计算微博和 国际云计算技术交流群,了解此次大会最新动态和OpenStack更多资讯,参与交流讨论。
Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐