admin 发表于 2024-6-25 16:37:37

腾讯存储技术发展史

  用上TFS后,QQ相册解除了每天800万张图片的上传限制,结束了那段只要QQ黄钻用户才能无限上传图片的汗青,普通用户再也无需凌晨24点守在电脑前抢着上传图片。
  受此启发,谢明、郭振宇取团队中七八个人开始做通用性存储平台TFS,把RPC框架和通信和谈、存储相关的数据迁移、巡检系统等逐渐做起来,第二年初就将这套存储系统用到了 QQ 相册。
  先从全体上对腾讯云存储有了一个大致了解后,我们再从各阶段一些主要节点事件,来了解腾讯云存储技术演变背后的逻辑,供业内参考。
https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F1105%2Fbf575032j00qjau420036d000s600f0p.jpg&thumbnail=660x2147483647&quality=80&type=jpg
  谢明回忆,当时搬家的第一个设备的数据量是100T。此刻看来,这个数字也许并不大,但当时倒是腾讯汗青上最大的一次数据搬家,由于那时候基本上没有专线可用,数据搬家都是趁着半夜公网空闲搬家过去的!
  第二件大事是网络硬盘的发展给存储带来很大的成本压力。做为一项免费办事,如何控制成本成了谢明团队的又一个巨大的挑战。为此,团队于2014年达成并上线了基于纠删码的BTFS平台。
  资源操纵率提高:基于前文所述的在超大规模集群和超高资源操纵率上的技术冲破,跟着资源操纵率的增高,单元存储的成本随之降低。
  做为海量数据的坚实承载,腾讯存储技术支持了wx、qq、QZone、mail、Micro cloud、流媒体等内部业务的快速发展,同时也为很多等几十多万个客户腾讯云上客户提供了可靠的办事,全体数据量高达EB级别。
https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F1105%2Fa7007a74j00qjaunh000id000dl008cp.jpg&thumbnail=660x2147483647&quality=80&type=jpg
  在磨合期,腾讯云基于已有的存储拜候接口和平台架构对外提供办事。颠末一段时间的运营,腾讯云发觉外部第三方业务在体验、可用性、成本等诸多运营方面有极高的要求。为支持云的需求场景,腾讯云对存储的接入层和索引层架构进行沉构,架构扁平,模块精简,同时开始舍弃私有接口,转为兼容AWS S3接口取功能。沉构后存储架构支持了腾讯云COS近几年的发展。(注:对象存储COS,CloudObjectStorage,是由腾讯云推出的安全不变、便利易用、低成本的海量云端存储办事。)
  但取谷歌 GFS 主要面对搜索场景,因而主要处理的问题是大文件存储不一样,腾讯的业务里图片较多,小文件才是要处理的主要问题,但是TFS并不适合做小文件存储,因而又创建了KV存储平台——TDB。
  集群规模:YottaStore是一个云原生的数据存储系统,这个系统的理论极限是一个集群能够管理超上千万台办事器。而要管理这上千万台的机器,元数据管理只需要用600G摆布的空间,用一台机器就能存下索引布局,这在业界是绝无仅有的。
  对于做存储的同学来说,经常会跟GB、TB、PB、EB这些概念打交道。此刻全球互联网很是大的巨头公司的数据量基本都是在EB这个量级。EB上面是ZB,全球互联网巨头数据起来也就几个ZB;ZB上面是YB,也就是YottaByte,目前全世界所有的数据加起来也不会超过一个Yotta。别的这个单词中文译名“有他”,给人安全可靠安心的感受,系统的Slogan就是“存储有他,能力无限”。
  腾讯存储技术的发展,发源于2005年前后国内社交网络兴起。QQ、QZone(相册)业务的发展带来了海量的图片、文件、头像等UGC数据。为应对海量存储的挑战,腾讯云开始自研并建立了几套核心存储平台,涵盖TFS(通用性存储平台),CTFS(数据频删型存储,用于短期姑且存储),TDB(基于HDD的键值对存储平台),TSSD(基于SSD的键值对存储平台)。
  激烈合作环境下,成本是存储业务胜出的环节要素之一。YottaStore是如何优化成本的呢?
  再往后,腾讯云的业务中又涌现了一些需要屡次删除的场景,CTFS应运而生,用于短期的姑且存储。这套系统在频删型的场景,如文件中转站中很是实用。堆集了必然口碑后,其他业务也逐步迁移到CTFS。
  伴随公有云的逐渐普及,用户存储的数据成几何倍数增加,硬件发展日新月异,公有云提供商间的合作日趋激烈。2017年,腾讯云的数据量冲破一个EB,成为腾讯存储汗青上的一个标记性节点。
  到这里,我们回首了腾讯云存储技术发展的全部过程,也得以从中一窥互联网大厂在底层存储技术取业务发展紧密结合,“共同做战”成功的窍门,但愿对业内有必然的启发。云时代下,腾讯云存储还将有哪些创新,我们拭目以待!!
  2003-2004年,谷歌发表了俗称“三大件”的论文,即BigTable、GFS和MapReduce,这是从原先的企业级存储向互联网时代大规模使用廉价的分布式存储的一个较晚期的实践。
  这大概能够看出这支团队的底蕴——对于腾讯来说,存储是几乎所有业务开展的根本,存储技术和架构的迭代是腾讯最关心的技术标的目的之一。
  资源操纵率:当集群规模很是大的时候,其实1%的残剩空间量都长短常很是大的,所以YottaStore的硬盘操纵率很是高,加上实时回收机制,有用数据占比达90%以上,这在业界很是少见。
  大师好,我是大鱼,我们按照采访腾讯云存储技术相关担任人,来聊一聊腾讯云存储从零开始,到如今支持起ZB级数据存储系统的技术演进过程,以及背后一些有味的故事!
  腾讯基本上把公司所有闲置办事器都用在QQ农场,但仍远远不敷,需要大量采购办事器。团队一方面通过疯狂的机器扩容,另一方面基于数据规模不太大但是拜候量极高的业务特点,快速研发了全内存的分布式存储系统,在保障数据安全可靠的前提下,并发拜候的性能得到极大提升。快速上线、快速验证,完全自研,团队再次闯关成功,“修为”再上一层楼。
  得益于YottaStore在集群规模、资源操纵率、灵活性等方面的技术冲破,近期COS沉磅推出的深度归档产物刷新了业界存储的最低价:1分钱/GB/月。
  腾讯相册、微云、邮件等业务在业务发展中,逐渐堆集起来较多的UGC汗青数据,这些汗青数据拜候量低、存储量大,对业务的运营成本形成了较大的压力。为了应对冷数据存储的成本挑战,2015年前后,腾讯基于纠删码研发了BTFS平台(Backup-TFS)。对业务进行了数据分层,增量数据拜候量大,用TFS存储3份;汗青冷数据从TFS平台剥离出来,从3副本存储转向1.33副本的纠删存储,降低了存储成本。这个阶段中,腾讯优化BTFS,使得部门低拜候量业务的增量数据也能够间接存储进来。
  AWS S3的存储拜候接口已成为公有云上对象存储现实上的行业尺度,存储成本、运营质量成为客户上云选择产物提供方的主要考量。
  时间到了2009年,腾讯日益扩张的业务取激增的数据量使得存储的拜候带宽问题暴显露来。
  腾讯云从2017年开始构想,并于2018年正式启动了下一代云原生对象存储系统设想——YottaStore。
  可用性:YottaStore开始上线大规模支持业务的前三个月一曲维持百分之百的可用性,到此刻一年半了,系统一曲单人值周零毛病运转,在业界是极少见的。可用性数个9很容易,但是可用性100%很是难。例如机房网络发抖,如果容错做的不敷好,就很容易就会涌现失败。但是YottaStore在初期上线的很长一段时间都是百分之百的可用性。
https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F1105%2F60afe75aj00qjau5u001od000dw009zp.jpg&thumbnail=660x2147483647&quality=80&type=jpg
  别的,由于大集群的全集群均衡能力,办事器资源使用均衡,所以资源使用率也能够做得很高,这样办事器硬件能够最低位配置,所有尖峰流量在这个特别大的池子里,波涛不惊。所以无论是成本、还是办事能力,都很大程度受益于超大规模集群带来的红利。
  在腾讯内部,担任腾讯存储技术研发的部分,一曲被认为是出产技术专家的“黄埔军校”。腾讯不少技术标的目的的担任人,最早也都出自这个团队。
  那时,腾讯几乎所有的数据都在深圳,但当时国内的骨干网宽带取此刻不成同日而语。QQ相册高峰时占用40-50G,而1G的流量对公司的网络就已经是很大的承担了。因而,在控制带宽高峰的驱动下,腾讯开始考虑把存储向西安搬家。
  YottaStore是腾讯云对象存储办事COS的数据存储引擎,支持起整个腾讯云海量数据的存储。COS的尺度存储、低频存储、归档存储、多AZ存储等产物形态都是基于YottaStore推出。
  场景优化:针对海量小文件的用户场景,YottaStore采用多种冗余和数据组织策略持续优化成本。
  YottaStore这个名字实际上取得很有深意,腾讯云架构平台部存储研发核心总监杨奋强介绍了Yotta这个词背后的含义。
https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F1105%2F4a26383dj00qjau9c001ed000go00b4p.jpg&thumbnail=660x2147483647&quality=80&type=jpg
  运营能力:以存储节点迭代升级为例,十万百万规模的一个集群,上线升级速度都是一样的,如果是同构的数据格局,分钟级就能够达成整个升级过程;而如果是异构的数据格局,集群能够在短时间内主动将数据格局晶莹收敛到最新版。
  这些自研平台为腾讯对象存储的发展奠基了根本。基于存储SET容量模型,腾讯云建立起尺度可控的运营体系,支持起了QQ空间、微云、QQ等产物的海量存储需求。
  同时,行业下游的根本设备,如大型数据核心、新机型、新硬件、各类存储介质、网络环境的不竭发展演进。比拟十几年前,单个IDC机房从数千台,到腾讯目前超百万装机量超大规模机房;网络从千M网卡,发展到百G网卡,整个根本设备发生了天翻地覆的变化。
  所以,Yotta——有他既是腾讯存储同学们对这个系统海量数据存储能力的深厚期望,也是对办事质量和可靠性的巨大许诺。为了实现上述期望和许诺,YottaStore实现了很多业界并世无双的技术冲破。
  存储平台在做数据分布搬家的过程中,本身也在同步迭代演进。好比TFS从3份存储演进为同时支撑1/2/3份数据的多副本存储;CTFS从2份存储演进为同时支撑2/3份数据存储。TSSD平台也从仅支撑单机独享的Uin-Value定制存储演进为支撑多租户的通用Key-Value存储。
https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F1105%2F565649d6j00qjaub7000jd000fp0077p.jpg&thumbnail=660x2147483647&quality=80&type=jpg
  郭振宇举了两个例子来说明当时团队面临的挑战,一个是微信取海外同类产物,如在东南亚人气很高的Line和WhatsApp。为了在合作中获得优势,微信做了很多工作,好比东南亚用户取国内进行数据沟通时链路很长,团队就基于存储做了加速通道,从而加速了国表里数据传输,速度超过Line和WhatsApp。
  除了这些,团队还针对业务场景进行用户体验优化,例如优化了索引。原先的文件系统索引有很多层,拓展性强,但是每次硬盘要进行多次拜候。当文件较大,硬盘多次拜候会形成延时。为此,TFS设想之初就力争硬盘只拜候一次,把chunkID(段表示)和FID索引放在一起,用户读取索引时就能晓得图片在哪块盘上,只需拜候一次硬盘就能读取图片,减少磁盘IO次数提升了用户体验。
  此外,从腾讯云本身现状来说,数据量的不竭增大,随之带来软硬件成本、运维成本优化的收益日趋增大。
  从2010年起,腾讯就开始做开放平台云。2013年,腾讯云正式面向B端用户全面开放。
  腾讯云副总裁 、云架构平台部总经理谢明,以及腾讯云架构平台部系统研发核心总监郭振宇,都是腾讯云在2005-2006年开始做统一存储架构时期的主要亲历者。
https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F1105%2F4d6b47ccp00qjaufz010ud000s500l4p.png&thumbnail=660x2147483647&quality=80&type=jpg
  在这期间,腾讯也有两件大事发生。一是微信开始风行,2014年大年节的微信红包,连带着伴侣圈的图片分享让微信火爆起来。本来在 PC 时代春节期间不怎样值班的腾讯工程师们发觉,春节期间不得不放置更多人值班了,以应对大年节和除夕凌晨12点到12点10分这十分钟内,抢红包和图片发布剧增的数据。腾讯的存储系统面临着史无前例的压力。
  高密硬件适配:跟着磁盘容量扩大,单机磁盘数变多密度增高,成本也随之降低;此外,CPU、网卡等新硬件的变化城市导致成本降低。
  在计算云迅猛发展的大布景下,行业合作日益激烈,客户可选择面较大,对功能、性能、质量、价格等方面的需求不竭加强。
https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2020%2F1105%2F62209cd0j00qjaupi000pd000e0008cp.jpg&thumbnail=660x2147483647&quality=80&type=jpg
  此外,对于一套承载着用户业务数据的存储系统来说,数据一个都不能丢、安全可靠是最主要的许诺。在数据可靠性方面,YottaStore在数据冗余、数据巡检、数据修复、数据校验等方面做了很多工做,保障了数据的可靠性。
  2011~2013年,QQ相册等大体量业务的拜候量、存储量迅速增加,对深圳的三通机房在机架、带宽方面产生了较大压力。为应对底层机房,带宽等方面的瓶颈,存储平台启动了相册一通点等项目,海量业务数据开始从深圳向西安、杭州、广州、上海等地分布,拜候带宽同时安排到天津、南京、东莞等成本更低的一通机房。
  为此,谢明团队取微信团队沟通,对大型缓存系统、延时通知等技术进行改良。水来土掩,兵来将挡,到2015年腾讯存储已经能够应对大年节夜突发性问题。
  在这一阶段,腾讯从头审视了机房,机型等方面的技术演进趋势,沉构了公有云对象存储引擎(详解见下文)。新架构采用大容量高密度存储机型,针对存储SET导致的闲置资源分离和隔离等多个主要矛盾,进行了全面应对和优化。
  灵活性:YottaStore单集群能够零研发成本同时支撑各类不一样的冗余模式,像两副本、三副本、四副本、五副本,任意的EC编码,任意的M、加任意的N、任意的算法;单AZ、双AZ、多AZ也都能够灵活支撑;别的,整个集群能够自顺应各类各样不一样的机型,涵盖JBOD;各类硬盘介质,如磁带、HDD、SSD等,存储的拓扑布局、混合摆设也都能够任意指定。这样的灵活性在业界首屈一指。
  另一个例子是游戏,QQ农场相信对于每个90后都不陌生,但不必然有人了解,全民偷菜的热情曾让腾讯的办事器数度崩溃。当时,农场拜候量巨大,但腾讯还没有全存储系统,TDB是基于SAS盘存储的,在每秒数万的并发拜候下,底层存储系统的延时和请求吞吐挑战很是大。
页: [1]
查看完整版本: 腾讯存储技术发展史