BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

使用Hummingbird提升Rackspace Cloud Files的性能

| 作者 谢丽 关注 11 他的粉丝 发布于 2015年10月27日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Rackspace Cloud Files是一个使用OpenStack Swift构建的大规模云对象存储系统。随着发展,该系统遇到了许多可扩展性问题。近日,Cloud Files项目经理Matt Barker撰文介绍了他们遇到的问题以及Hummingbird如何提升了Cloud Flies的性能。

OpenStack Swift是Rackspace于2010年推出的一个存储项目,用Python编写,是原始OpenStack平台的一部分。为了保证可扩展性和硬件部署架构的灵活性,Swift被分解为一个公共服务(代理服务)和三个内部服务(对象服务、容器服务、账户服务)。其中,对象服务层(即对象服务器和复制器)自创建以来几乎没有变化。但随着Cloud Files的发展,Python的局限性显现出来。比如,它在并发支持和磁盘I/O方面的局限会导致对象服务层成为瓶颈。

他们考虑了许多不同的方法,包括配置更多的对象工作进程、修改并发设置及加入事件循环。但是,当一个节点在硬件或磁盘层面出现故障时,Python对象服务会让问题变得更加严重。对象服务器会完全没有响应,或者继续接受连接,但提供数据非常缓慢,许多请求都需要很长的时间才能完成。Cloud Files团队运行和优化服务的时间都赶上开发新特性了。

为了解决上述问题,Cloud Files团队首席工程师Michael Barton开始尝试使用各种语言框架重写对象服务器。基准测试表明,Go是一个不错的选择。于是,他们就使用Go语言重新编写和部署对象服务,即Hummingbird项目。在API层面,Hummingbird具备与Swift相同的功能。他们还创建了一个测试套件,用于在对象服务器和对象复制器层面比较两者的性能。接下来,他们将Hummingbird部署到弗吉尼亚数据中心的单个生产节点上,然后依次扩展到一个4节点“区域(zone)”、半个集群、整个“地区(region)”。截至目前,他们已经在弗吉尼亚和伦敦数据中心这两个生产环境中部署了Hummingbird。在弗吉尼亚地区,每小时的读超时数量显著减少,如下图所示:

而在响应速度方面,Go对象服务器大约是Python对象服务器的两倍。

目前,Hummingbird已经成为OpenStack Swift的一个特性分支,感兴趣的读者可以查看其GitHub页面。另外,在将于10月27日举行的东京OpenStack峰会上,Michael及资深软件开发工程师David Goetz将会对Hummingbird进行介绍,感兴趣的读者可以关注一下。


感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT