推广 热搜: B2B  电子商务  电子  投资理财  市场分析  企业  机械  优汇网  科技  SEO 

深度揭秘:腾讯存储技术发展史

   日期:2020-11-03     浏览:150    评论:0    
核心提示:在腾讯内部,负责腾讯存储技术研发的部门,一直被认为是生产技术专家的“黄埔军校”。腾讯不少技术方向的负责人,最早也都出自这

在腾讯内部,负责腾讯存储技术研发的部门,一直被认为是生产技术专家的“黄埔军校”。腾讯不少技术方向的负责人,最早也都出自这个团队。

 

这或许可以看出这只团队的底蕴——对于腾讯来说,存储是几乎所有业务开展的基础,存储技术和架构的迭代是腾讯最关注的技术方向之一。

 

作为海量数据的坚实承载,腾讯存储技术支撑了微信、QQ、QZone、邮件、微云、流媒体等内部业务的快速发展,同时也为快手、OPPO、小红书、海康、猎豹、58同城等几十多万个客户腾讯云上客户提供了可靠的服务,整体数据量高达EB级别。

 

本文中,我们将采访腾讯云存储技术相关负责人,深度揭秘腾讯云存储从零开始,到如今支撑起ZB级数据存储系统的技术演进历程,以及背后一些有趣的故事。



腾讯存储技术演进历程

 

腾讯存储技术的演进基本上可以分为以下阶段:


1. 海量存储(2005~2010),支撑社交网络,构平台,撑海量

 

腾讯存储技术的发展,起源于2005年前后国内社交网络兴起。QQ、QZone(相册)业务的发展带来了海量的图片、文件、头像等UGC数据。为应对海量存储的挑战,腾讯云开始自研并构建了几套核心存储平台,包括TFS(通用性存储平台),CTFS(数据频删型存储,用于短期临时存储),TDB(基于HDD的键值对存储平台),TSSD(基于SSD的键值对存储平台)。

 

这些自研平台为腾讯对象存储的发展奠定了基础。基于存储SET容量模型,腾讯云构建起标准可控的运营体系,支撑起了QQ空间、微云、QQ等产品的海量存储需求。


2. 跨地分布(2011~2013),分拆大体量业务,搬数据,腾机房

 

2011~2013年,QQ相册等大体量业务的访问量、存储量迅速增长,对深圳的三通机房在机架、带宽方面产生了较大压力。为应对底层机房,带宽等方面的瓶颈,存储平台启动了相册一通点等项目,海量业务数据开始从深圳向西安、杭州、广州、上海等地分布,访问带宽同时调度到天津、南京、东莞等成本更低的一通机房。 

 

存储平台在做数据分布搬迁的过程中,自身也在同步迭代演进。比如TFS从3份存储演进为同时支持1/2/3份数据的多副本存储;CTFS从2份存储演进为同时支持2/3份数据存储。TSSD平台也从仅支持单机独享的Uin-Value定制存储演进为支持多租户的通用Key-Value存储。


3. 冷存储(2014~2015),分离冷数据,降份数,省成本

 

腾讯相册、微云、邮件等业务在业务发展中,逐步积累起来较多的UGC历史数据,这些历史数据访问量低、存储量大,对业务的运营成本构成了较大的压力。为了应对冷数据存储的成本挑战,2015年前后,腾讯基于纠删码研发了BTFS平台(Backup-TFS)。对业务进行了数据分层,增量数据访问量大,用TFS存储3份;历史冷数据从TFS平台剥离出来,从3副本存储转向1.33副本的纠删存储,降低了存储成本。这个阶段中,腾讯优化BTFS,使得部分低访问量业务的增量数据也可以直接存储进来。


4. 云存储磨合期(2016~2017),重构系统,兼容接口

 

在磨合期,腾讯云基于已有的存储访问接口和平台架构对外提供服务。经过一段时间的运营,腾讯云发现外部第三方业务在体验、可用性、成本等诸多运营方面有极高的要求。为支撑云的需求场景,腾讯云对存储的接入层和索引层架构进行重构,架构扁平,模块精简,同时开始舍弃私有接口,转为兼容AWS S3接口与功能。重构后存储架构支撑了腾讯云COS近几年的发展。(注:对象存储COS,CloudObjectStorage,是由腾讯云推出的安全稳定、便捷易用、低成本的海量云端存储服务。)


5. 多云时代(2018~),对标行业,比成本,拼质量

 

伴随公有云的逐步普及,用户存储的数据成几何倍数增长,硬件发展日新月异,公有云提供商间的竞争日趋激烈。2017年,腾讯云的数据量突破一个EB,成为腾讯存储历史上的一个标志性节点。

 

AWS S3的存储访问接口已成为公有云上对象存储事实上的行业标准,存储成本、运营质量成为客户上云选择产品提供方的主要考量。

 

在这一阶段,腾讯重新审视了机房,机型等方面的技术演进趋势,重构了公有云对象存储引擎(详解见下文)。新架构采用大容量高密度存储机型,针对存储SET导致的闲置资源分散和隔离等多个主要矛盾,进行了全面应对和优化。

 

先从整体上对腾讯云存储有了一个大致了解后,我们再从各阶段一些重要节点事件,来了解腾讯云存储技术演变背后的逻辑,供业内参考。

 


七八个人搞了TFS

 

2005年,QQ空间发布,大量存储需求爆发。

 

腾讯云副总裁 、云架构平台部总经理谢明,以及腾讯云架构平台部系统研发中心总监郭振宇,都是腾讯云在2005-2006年开始做统一存储架构时期的重要亲历者。

 

2003-2004年,谷歌发表了俗称“三大件”的论文,即BigTable、GFS和MapReduce,这是从原先的企业级存储向互联网时代大规模使用廉价的分布式存储的一个较早期的实践。

 

受此启发,谢明、郭振宇与团队中七八个人开始做通用性存储平台TFS,把RPC框架和通信协议、存储相关的数据迁移、巡检系统等逐步做起来,第二年初就将这套存储系统用到了 QQ 相册。

 

用上TFS后,QQ相册解除了每天800万张图片的上传限制,结束了那段只有QQ黄钻用户才能无限上传图片的历史,普通用户再也无需凌晨24点守在电脑前抢着上传图片。

 

但与谷歌 GFS 主要面对搜索场景,因此主要解决的问题是大文件存储不同,腾讯的业务里图片较多,小文件才是要解决的主要问题,但是TFS并不适合做小文件存储,因此又创建了KV存储平台——TDB。

 

再往后,腾讯云的业务中又出现了一些需要频繁删除的场景,CTFS应运而生,用于短期的临时存储。这套系统在频删型的场景,如文件中转站中非常实用。积累了一定口碑后,其他业务也逐渐迁移到CTFS。

 

除了这些,团队还针对业务场景进行用户体验优化,例如优化了索引。原先的文件系统索引有很多层,拓展性强,但是每次硬盘要进行多次访问。当文件较大,硬盘多次访问会造成延时。为此,TFS设计之初就力争硬盘只访问一次,把chunkID(段表示)和FID索引放在一起,用户读取索引时就能知道图片在哪块盘上,只要访问一次硬盘就能读取图片,减少磁盘IO次数提升了用户体验。

 

之后,TFS又陆续被用于网络硬盘、QQ邮箱等产品中。


 
打赏
 
更多>同类头条资讯
0相关评论

推荐图文
推荐头条资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报