返回 登录
0

Dropbox存储系统:扩展至EB级别的架构实践

原文: Scaling to exabytes and beyond
作者: Akhil Gupta
翻译: 孙薇
责编: 钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN 高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qshuguang2008申请入群,备注姓名+公司+职位。

多年前,我们将 Dropbox 称为“魔力口袋”,因为它设计的初衷就是让用户将所有文件放在一个顺手的地方。一路发展下来,Dropbox 已经从一个简单的东西发展成为世界上最为强大、随处可用的协作平台。随着规模逐渐扩大,我们需要建立专有的存储架构,这个项目被命名为“魔力口袋”(Magic Pocket)。两年半之后,如今我们很高兴地宣布:我们的自定义架构将提供90%的用户数据存储及服务。

图片描述

Dropbox 是由工程师建立的,技术创新是公司文化的立足之本。对于我们的用户而言,这仅仅意味着我们创造了一个可用的产品,但在打造如此简单的用户体验背后,还有许多事情发生。

Dropbox 公司建立于2008年,在迅速成长中收获了逾5亿的注册用户以及 500PB 用户数据(即5后面有17个0),这个数字几乎达到了美国国会图书馆(全球最重要的图书馆之一)所有书籍内容的 1.4 万倍。为了让读者对 Dropbox 不可思议的成长有个概念,我这样来说吧:2012年在笔者加入 Dropbox 时,用户数据仅有 40PB ,而这个数字在四年后翻了12倍多。

Dropbox 存储两类数据:文件内容与文件/用户的元数据。我们使用了混合云架构,将元数据与我们的 web 服务放在自行管理的数据中心,而将文件内容存储在 Amazon 之上 —— 我们是 Amazon S3 的早期用户之一,也正是它使得我们能快速可靠地进行扩展。Amazon Web Services(AWS) 一直是我们宝贵的合作伙伴,没有 AWS 这样的服务,我们也没办法发展得如此之快。

随着我们的用户及客户在需求上持续增长,我们决定在内部存储系统上进行大规模投入。作出这个决定有如下几个原因:首先,我们产品的差异关键之一在于性能,使用内部存储则允许我们将整个堆栈定制为端到端的结构,从而提高在特定用例上的性能。其次,作为全世界领先的云服务提供商之一,我们的块状存储用例是独一无二的,修改后我们可以利用自身规模及特殊用例来自定义硬件与软件,从而在单位经济效益上有所提高。

我们明了:自己想要打造全世界仅有数个的 EB 级存储系统,因此从一开始就很明显,由于在开源社区中并没有能用于 Dropbox 这样规模的内容,我们必须从零开始。全世界没有几家公司有我们这样的困扰 —— 对这样的存储规模有如此的需求,而在安全性标准上高于我们的就更少了。我们从设计之初就考虑到了可靠性与安全性的问题,确保系统所存储的数据安全可靠,且高度可用。数据以静态形式加密,系统旨在提供超过99.9999999999%的年度数据耐久性,以及超过99.99%的数据可用性。

具体如何达成呢?

代码部署: Magic Pocket 项目在2013年夏季便成为主要项目之一。我们预先构建了一个小的原型以验证概念,对我们的工作负载和文件分布有个了解。软件是这个项目的重头戏,我们一边在生产环境中就构建的方式做了多次迭代,一边在各个阶段中严格执行验证。创新集中在设计与自动化方面:我们需要创建可以从零开始,扩展成为世界上最大的存储系统之一的干净设计,以及允许我们的小团队维护数量巨大的硬件的自动化方案,还需要测试并审计在针对数据最高级别的耐久性及可用性时系统的可靠性程度。

灰度发布: 在2014年8月,我们着手开始“灰度发布”(即产品发布的一种手段,往往用于需要一次性发布的产品),在对数据做了两个区域定位的镜像备份之后,我们认为系统已经准备好可以存储用户数据了。当然,我们将额外的备份又多存储了半年以防万一。

发布日期: “登陆日” 2015年2月27日。在 Dropbox 的历史上,我们首次使用专有的用户文件存储及服务,一旦新架构得到验证,我们就能在半年内设定积极的目标:将系统扩展到 500PB 以上。

低空跳伞: 2015年4月30日,我们开始了这场竞赛:在三个区域定位安装额外的服务器,以跟上数据流的处理速度。为了使其奏效,我们从服务器建立了一个高性能的网络,高峰值传输的数据量超过每秒0.5TB。由于在计划中留给我们“打开降落伞”的时间非常少,因此这个项目被叫做“低空跳伞”。同时在硬件方面,我们让同一平台内可负载的硬件机架数量达到了极限。

成功着陆: 我们的目标是截至2015年10月30日,使用内部架构提供90%的数据服务,结果这个目标的达成时间比预期提前了将近一个月(即2015年10月7日)。团队不仅按时交付了任务,而且还是在并未造成任何重大服务中断与数据丢失的情况下,完成了这一重要的技术任务。

这是一个振奋人心的里程碑,更是其他创新的开始。我们会继续投入自己的架构建设,也会继续使用 Amazon 的服务。今年晚些时候,我们会拓展与 AWS 的关系,以便在德国存储欧洲企业级用户的数据。为信任我们的用户保护及保存他们的数据,是我们贯彻始终的首要任务。


本文是“Magic Pocket”系列文的第一篇,下个月我们会分享在构建高性能云架构时学到的很多技术细节经验,希望大家继续关注。

2016年5月13日-15日,由CSDN重磅打造的2016中国云计算技术大会(CCTC 2016)将于5月13日-15日在北京举办,今年大会特设“中国Spark技术峰会”、“Container技术峰会”、“OpenStack技术峰会”、“大数据核心技术与应用实战峰会”四大技术主题峰会,以及“云计算核心技术架构”、“云计算平台构建与实践”等专场技术论坛。大会讲师阵容囊括Intel、微软、IBM、AWS、Hortonworks、Databricks、Elastic、百度、阿里、腾讯、华为、乐视、京东、小米、微博、迅雷、国家电网、中国移动、长安汽车、广发证券、民生银行、国家超级计算广州中心等60+顶级技术讲师,CCTC必将是中国云计算技术开发者的顶级盛会。详情访问CCTC 2016官网

评论