腾讯刘金明:腾讯云 EB 级对象存储架构深度剖析及实践
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
演讲者:刘金明 腾讯云存储业务中心副总监
背景:5月23-24日,以“焕启”为主题的腾讯“云+未来”峰会在广州召开,广东省各级政府机构领导、海内外业内学术专家、行业大咖及技术大牛等在现场共议云计算与数字化产业创新发展。
腾讯云存储业务中心副总监-刘金明,在云+未来峰会上做了主题为《腾讯云 EB 级对象存储架构深度剖析及实践》的分享,以下内容整理自演讲。
刘金明:大家好。我是来自腾讯云存储业务中心的副总裁刘金明。
说到对象存储,我们不得不提一下腾讯存储平台PFS,早在2016年我还在学校的时候,对分布式存储还没有任何概念的时候,我的前辈就推出第一款腾讯存储平台PFS,几年间也为微信、QQ、相册,包括腾讯视频,腾讯内部所有的资源业务来负责他们的存储服务,到了2013年,我们整个腾讯云把我们的存储能力包装之后对外开放,到了2014年,整个腾讯存储已经突破了500PB,整个数据已经到了万亿级别。到了2015年的时候,我们把整个接口标准化,并且在整个数据层面已经到了EB级别。时间来到2016年的时候,我们不管是索引还是数据,对整个存储引擎做了架构的优化,无论是性能还是架构方面都得到了更好的提升。同时我们对基于存储之上智能数据的方面,包括相关的应用也应运而生。
我们不得不提一下整个cos的产品状态,大概可以分为三层,比如我们cos最底层属于基础平台,也提供了很多SDK、API等等,能够提供给各大客户基本的上存、下载的基本服务。在应用接入层,我们有一些图片的、裁剪、视频的转买,包括文档的预览等等数据处理和识别的服务,同时也推出了日记服务、基因、企业网盘等等很多解决方案。如果像一些数据比较热或者是流量比较大的客户也可以直接用我们的CDM进行全球的加速。
目前整个cos在全球13个园区开放了,包括美洲、欧洲等等,很多地方都有我们的cos产品,包括世界杯快来临,包括俄罗斯和日本也马上推出。
下面我们重点讲一下整个cos的基础架构,和我们cos面对的一些问题,以及一些应用案例。cos的架构,我们其实简单可以分为三层,最上层是网络接入层。整个网络这一层是多机的BPG介入,而且可以对于一些攻击流量进行很智能的清洗,我们的腾讯资源网关可以对整个接入这一块做到智能的附带均衡。在应用层整个是完全无状态服务的一层,整个集群可以完全无限扩展,到数据层,他们通过部署,比如说我们可以做到跨机房,跨交换机的部署,我们整个集群都是数据化处理,冷热智能也是很自然的调度。
很多客户一旦用了我们的对象存储,因为存的很多核心数据,大家比较关心的问题是什么?无外乎以下5点,就是我用了你的服务,你一定要保证我的服务足够稳定,并且我存的数据不能丢失,足够的可靠,而且我的数据能足够的安全,性能足够好,并且用的钱最低。我们下面就每个逐一的来详细讲解一下。
腾讯云的cos对外提供的可用性是99.95%,其实也就是通过我们一些常规的架构层面,一些故障自动剔除,自动重置的服务等等,我们可以做到平台足够的可用性。我们上了云以后,很多客户一起用我们的平台,还有一些突发的大事件,我们怎么来保障我们平台足够稳定?比如像春节或者除夕的时候,类似于微信一样,可能有很大的突发,比如说电商服务,一年突发都是数十倍,这样一个程度的增长。当出现突发的时候,我们平台怎么保证稳定,并且一个业务的突发不会影响其他的业务?其实我们提供了很多手段,比如说我们对于这些突发的事件,如果我们有遇见的话,我们可以提前将它的热点数据,我们提前分发到大数据的流量平台,比如你加一层其他的服务,我们保证我们整个存储流量,尽量保证不是特别大。另外我们可以通过计算平台把我们需要的资源尽快的上架。
不管怎么做,我们都不可能保证你的平台突发无限制的,能让你一直这样用,我们可以通过什么方法?如果是一个视频服务,我们可以通过柔性策略,假如我们平台资源不够,对于客户来说,我们自己应用的时候可以做一些降级的服务,用更低的马力服务客户。或者如果对我们产品功能有一个很详细的了解,是不是我们可以保证一些核心的功能的访问,比如视频更重要,是不是可以保证视频的服务,其他周边的一些服务,我们就把它擦掉,类似于这样的,基于功能和质量的降级服务,保证我们平台的稳定。如果某一个客户突发已经影响了我们整个平台的时候,我们整个腾讯云cos也可以做到按照用户层面的自动隔离,对于单个用户进行防过载、流控或者屏控的手段,能够保证整个平台不受影响,稳定性达到99.5%。
安全可靠层面,我们怎么保证11个9的可靠性?前面也讲到了,我们整个的腾讯云cos,不管是索引还是数据,我们都是集群化管理的。如果数据一块盘坏了或者一个机器坏了,或者大到一个机房坏了,我们怎么调度,怎么处理?最简单一点,我们多数存储都是多复本的,坏了一份或者坏了N份我们可以从其他的方面来补充数据。首先我们可以从其他复本来保证用户的数据,没有任何问题的来读取,如果出现故障短期恢复不了,将其转移到其他的集群,保证这个数据快速的恢复,如果我们出现故障的时候,我们怎么发现?比如我们磁盘坏了,我们大家存的是冷数据,怎么能发现这个磁盘坏了或者整个节点坏了?其实我们有很多方式,除了用户正常访问级别的发现以外,我们增加了很多日常的巡检,包括心跳勘测等等很多手段来尽快的发现,并且迁移掉我们有坏盘或者是坏节点的数据,保证我们整个集群足够的可靠。
大家上云,包括很多传统行业都非常看重整个数据的安全性,我们整个腾讯云的cos对象存储提供了全链度的安全,从最上层用户到SDK这一层,可以从这一层来加密,包括整个传输层、协议层的加密,包括到了我们底层的用户如果有受到攻击的时候,我们怎么做清洗,到下面,我们每个请求,刚才好像其他团队也讲了,我们每个用户,他什么情况下在什么时间内,有什么权限可以访问自己的资源,这些都是有一些权量的工作。包括后端整个服务端的加密和销毁性,大家看这上面,这就是服务加密的三套加密。
说到我们的数据安全,我想提一个例子,我们前一段正在跟腾讯影业合作的案例,腾讯影业最近推出了两款陆川导演《两万公里计划》和一个电影《拓金者》,你看一下,虽然说它这一个影片只是两个小时,差不多这样的一个时长,其实它前期的素材大概可能有几百PB,而且拍摄点是全球各地,跟我们合作以前,大家传统营业广电传媒公司是大家背着硬盘全球跑,非常费时、费力、费心,安全性很难保证,对于整个影片没有对外推广的时候,整个知识产权,包括很多东西,对安全性要求非常高。跟我们腾讯的cos深密结合以后,只要在异地把他的影片拍完以后,在当地上传以后,我们通过全球的加速或者跨区复制等等很多手段同步到其他各地,我们就可以把它整个很完美的将影片提供给他的后期制作团队,保证它的数据安全。
其实大家如果用到了存储,必然少不了对性能的要求,怎么样更快速的,或者是延时更低的把我的数据从云端上传上来,视频、图片等等,各种各样的种类,而且文件大小也不同,我们基于小文件,我们做了一些整个链路的缩短,对于大文件做一些分块或者分片的并发,而且我们整个平台基于这个协议层面,基于内核层面等等很多手段,保证整个数据,基本用户在使用的情况下下载到我们的腾讯云cos,并且很快的下载下来。还有刚刚说的这些种类,比如视频的客户,我们的转码,你想让你的速度更快,你在播放的时候,在不同的终端可以选择不同的码率,我们现在有基于263的转码,很多很多种的格式,它可以在保证你的人眼感官程度没有任何变化的情况下,你的整个内容,就是你看不出任何区别来,但是你这个对象大小减少很多,这样我们的性能,因为文件小,传的速度肯定快,用的带宽也小,整个成本也降低了。
除了这些用科技手段,把我们视频跟图片做一些交换、转码来达到我们的成本优化,我们还有很多手段,类似于日记,我们可以对数据进行压缩,类似于网盘这样的服务,我们在上传之前进行去重。比如我们数据存到云端了,我们还可以提供一些存储的分析功能,让我们整个存储数据在我们整个多级存储里面调度,比如说像我们的微信,我们的朋友圈,比如我们现在可以设置3天或者是更长的时间,半年,半年的数据肯定非常老了,我们可以按照这个时间来把整个数据再不同的存储级别调度。然后我们在最底层的硬件层面,我们逐年一直在硬件存储密度上做文章,包括我们的功耗等等,一直在节省整个存储成本。其实我们做的这些也进一步的降低我们整个产品的价格,也是节省了用户的价格,把这个红利让户给用户。
除了刚才说的这几个基本功能以外,我们腾讯云cos也在持续针对更上一层的层面持续推出一些高级功能,比如我们的生命周期,刚才我们说的这个,比如说我们的数据沉降,包括删除等等,很多层面,如果我们的客户有这样的需求,你只要在cos的管理控制台上配一个规则,我们就可以定时将你的数据,在各层之间移动,并且在规定的时间内,这样子的数据做一个删除。
还有一些在可靠性方面的加强,我们也有多版本、跨区域复制的高级功能。跨区域复制,影业方面就用到这个跨区域复制,之前有一个英文的培训机构,他们的讲师都是在国外的,它的受众,听课者都是在国内,怎么让上传和下载的两方速度足够好?就用到了跨园区复制,当这个讲师上传以后,通过跨园区复制传回到国内。这也是国内和其他的厂商没有的功能,保证数据并发的时候,数据出错的可能性尽量的降低。
刚才我介绍了整个存储平台的时候场景的时候,我们也说了加速,数据分析的场景。在数据分析的场景,其实我们推出了两款,一个是清单,一个是标签。清单是什么?清单就是你需要访问某一个规则下规定的列表,如果通过我们基本的功能,肯定很慢,我们通过清单就把你需要的列表投递到你需要的地方,然后你能很快的做你自己想做的大数据分析场景。包括后面的标签,这个应用场景更多了,现在很多识别场景打着各种标签,比如我们的直播里面,我们对场景,包括人物,包括风景等等,各种的标签,其实这些我们都可以对整个的用户,就是基于存储之上的智能分析应用做很好的服务。
最后我也给大家讲我们现在的两个案例,一个是智能安防的场景。其实目前有很多,比如我们现在的大会里面周围也可能有一些摄象头,这个摄象头每天拍的数据非常多,正常来说,我们如果有网络摄象头,用户直接就买一个网络摄象头,然后用到我们整个的腾讯云相关的产品,比如说用到了直播,然后把整个流路注下来,直接传到cos,用户需要审核或者需要播放的时候,再从cos读出来。如果这个时间比较久了,价值不大了,或者对访问延时没有这么高的情况下,我们可以把它降到更低存储的,尽量的节省用户的成本。其实整个里面用到了很多整个腾讯云生态里面的东西,包括刚才说了智能AI,比如说应用到监控,肯定有一些识别的场景都需要。
另外一个场景,介绍一下我们的大数据的场景,其实我刚刚提到了清单,这个清单就是在大数据场景里面一个很好的应用,大数据场景里面还有一点,比如我们很多之前大数据用户都存到本地的DFS,我们腾讯云的cos也提供了很多便捷的工具,便捷式的,跟原来的DFS接口一样,提供了DFS cos的工具,用我们的大数据套件,对你整个存到cos的数据进行实时的分析跟离线的分析。这里要说一点,对于离线分析的场景,比如我们有很多客户,他可能需要一个任务的时候,提到了这个任务以后,那个保证流量非常高,相应的成本也非常高,你可以用到我们腾讯云cos限流服务,对这个要求没有这么高的情况下,可以用到小点来节省我们整个用户的成本。
其实刚刚最前文已经讲到了,除了包括智能安防和大数据以外,还有基因、医疗、网盘等等很多很多的场景,我相信大家用到存储不可能只用这几款,几种使用场景,可能未来我们腾讯云也会推出更多的应用类的解决方案给广大客户。
问答
云存储Redis的实例怎么备份?
相关阅读
冯宇彦:基于大数据与人工智能的智慧交通云
毛华:智能交互,AI助力下的新生态
王磊:AI 在传统产业的最佳实践
此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/dev...
欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~