京东公有云张斯聪:京东云对象存储产品的成长之路

原创
云计算
在万物互联和数字化转型蓬勃发展的时代,企业乃至整个产业的入云需求日渐迫切。随着云计算产业配套政策的落地,云计算逐步从互联网企业向传统行业渗透。

【51CTO.com原创稿件】由中国电子技术标准化研究院主办、51CTO承办的"第七届中国云计算标准和应用大会"于2018年1月4日至1月5日在北京成功召开。本次大会全面展示我国云计算国家标准研制工作的成果,解读国内云计算产业政策,报告云计算标准化工作的重要进展。同时,大会还重磅发布了国家开源领域的标准化产物,分享了云计算***的技术趋势和应用创新成效,并颁发了云计算产品及解决方案第五批测评证书。此外,第二届中国优秀云计算开源案例评选结果也在大会现场公布。

在万物互联和数字化转型蓬勃发展的时代,企业乃至整个产业的入云需求日渐迫切。随着云计算产业配套政策的落地,云计算逐步从互联网企业向传统行业渗透。产业转型与创新分论坛直击产业转型痛点,探讨云计算服务能力如何加速传统产业转型升级。
 

[[216507]]
京东公有云存储研发总监 张斯聪


在1月5日的云网安全与存储分论坛上,京东公有云存储研发总监张斯聪先生为我们讲解了京东云存储的开放之路。他在演讲中谈到,大家在京东平时购物看到的图片,用到的一些信息,网页的资源还有晒单的信息都是存在我们京东本身的私有云存储上的。现在京东云存储对内部集团已经有物流、商城、金融、搜索、广告、大数据还有我们京东云这方面支撑了大概1200多个业务部数据存储的需求,现在公有云的业务逐渐发展,我们基于私有云面向公有云来逐渐的拓展我们自己京东的对象存储的产品。

以下是演讲实录:

大家好,我是在京东公有云负责云存储主要是对象存储还有视频云两个产品线的,今天主要介绍一下京东云对象存储这个产品,首先先简单介绍一下我们对象存储这个产品的成长之路,大家都知道京东其实本身自有的非结构化数据和结构化数据都是海量的,大家在京东平时购物看到的图片,用到的一些信息,网页的资源还有晒单的信息都是存在我们京东本身的私有云存储上的,因此我们现在京东云存储对内部集团已经有物流、商城、金融、搜索、广告、大数据还有我们京东云这方面支撑了大概1200多个业务部数据存储的需求,现在公有云的业务逐渐发展,我们基于私有云面向公有云来逐渐的拓展我们自己京东的对象存储的产品。

整个成长之路,大概在2015年底,我们京东公有云产品是从私有云产品上诞生出来的,在2016年4月1号我们***次正式上线运营,到今年位置从我们产品出身到现在基本上是一个高速发展的时间,大概到2018年我们系统会加速发展,来成为我们整个集团重点推进的项目,在2018年底满足客户的各种需求。

京东云面向国内四个地域/六个可用区

到现在为止我们京东云主要在国内四个地域六个可用区提供对外公有云服务,北方是在北京,华东是在上海和宿迁两个地,华南是在广州,作为一个存储产品,我们公有云的存储其实是来自于私有云这边,产品性能上来说最重要的还是考虑两个方面,一个是可靠可用性,另外一个就是易用性。首先咱们谈一下可靠和可用性这方面,在我们公有云产品里面如何做到高可靠和高可用这方面呢,首先我们分成三个方向,首先说一下服务的部署,从服务部署上来说,京东的公有云体系分成三个层级,***大级是最左边的区域这一档,中间是可用区,最右边是数据中心,一个可用区可以由多个在满足一定条件的数据中心组成,一个区域可以由多个可用区来组成,整个公有云的产品也就在这三级上实现物理和软件的容灾。

京东云的分级部署

在分级部署这方面,整个对象服务在可用区内对外提供完整的服务单位,在区域里面分成左右两块,比如说两个可用区,分成左右两块的可用区进行部署,在一个可用区挂掉不可提供服务的时候,我们还有剩下一个可用区可以对外提供的服务,同时在一个可用区内部我们会同时部署多套子集群来保证在一个可用区内部部分不可用的时候,整个服务还是可用的,同时在一个子集群内部,因为他肯定有中心做决策的,以及数据存储的,我们弱化了中心节点对整个服务的关键性的位置,我们把数据节点对主节点的依赖性做了弱化,保证中心节点,中心节点毕竟相对于整个数据的节点是少的,我们保证在中心节点不可靠的时候整个服务还是可用的。

第二档就说在服务部署之外,我们在数据的分布上也是做了高可靠高可用比较完备的考虑的。首先整个对象存储的服务还是在可用区以及数据机房这几档上分布,整个数据我们每一份数据,像刚才李旭介绍的一样,我们至少保证三副本,最多按客户的需求我们可以支持到几十上百个副本的个数需求,满足它不同的性能要求。在三个副本方面,***三个副本的时候,我们保证所有的副本是强一致的,所有的副本我们会跨多个故障域去分布,因为我们服务是对可用区提供统一的服务,可用区底下有不同的对区域提供服务的,一个区域底下有多个可用区,我们会尽量把数据打散在不同的机房里面来给客户做多级别的故障率的容灾。在读取这方面,他有内网的网端也有外面公网的访端,在内网方面我们保证内网的企业,请求方的读和多数读是一样的,让它在读的时候效率更高一点。在公网企业这棉,因为不知道用户更倾向于哪个方面,我会保障他均匀分布在所有的可用数据中心内。在内网读这方面,我们为了让客户得到更好的读取和响应的时间,我们保证读在优先读公网的数据。

数据损害的自愈

***,从数据部署的资源,因为你服务不管再怎么可靠,再怎么分区域,分故障区部署,总会发生硬盘损坏,一些逻辑数字的反转这方面的区域导致持久化的存是不可用的,怎么做数据损害的自愈,基本上从两方面,首先我们要发现这个数据有问题,怎么发现呢?从持久化存储的数据这方面,我们金融云这边在整个底层的存储上分成了两块,一块是存在校验的数据,另外一部分是用户实际的数据,我们在数据破损的发现上分成两个方式,一个方式是在同步的发现,我们会有异步的数据破损发现服务,来定期的扫全量的数据,不断的把持续持久化的数据和我们存下来的校验码做比较,来发现用户持久下来的数据是不是有破损有损坏或者有丢失。***在发现破损之后,我们必须要开始修复数据,因为对用户的数据我们提供了至少11个可靠性和至少四个可用性的保证,在破损之后,首先我们要把副本进行修复,比如说我们二号副本发现了他数据持久化的有问题,首先我们要把整个这三个副本标记的图标成只读状态,让他不可以对用户修改,如果用户修改我们会新建另外一个副本让用户做修改操作,同时我们上报中心结点,告诉中心结点这一份数据有问题,在用户读的时候也会跳过用户数据图,同时在破损的数据,比如说这个时候用户希望我们给他扩容副本提高更高的访问要求,我们这时候因为已经发现这个数据库了,我们这时候不会把破损的数据作为数据源来使用,或者说去做迁移的这些处理,同时我们开始触发一个异步修复的策略,修复策略我们首先把本机房的数据源优先,本机房的一份副本坏了,我们在修复的时候首先从好的副本做溯源,同时复制组我们必须保证多份副本是一致的我们才认为这次修复是一致的,如果多份副本全都破损我们这时候的修复结构也不可靠,这时候我们会触发另外一种更复杂的修复方式。

在硬件损坏的时候我们会迁移到其他物理机器上,同时在可靠性和可用性保证之后,我们希望用户就像之前李旭介绍的一样,我们希望用户更方便,更易用的来用我们的存储服务。在易用性这方面,因为本来公有云的服务就是从京东商城私有云的业务上产生出来的,在私有云业务我们研发的时候,它其实更倾向于内部系统的一些需求,它主要区别一些功能方面的,另外一些是在成本上面的考虑,我们首先要保证可靠性,所以在存储的时候是基本上不太计成本的,优先保证数据的安全。在整个系统上,京东内部是分两套存储系统,一套是针对图片高访问的存储系统,另外是针对对象存储系统。

公有云我们主要是考虑把业务系统做了整合,希望用户只要用我们一个产品就能满足各方面对存储这方面的使用需求,在底层上我们也因为考虑到成本,我们同时研发了高可靠普通存储的系统,还有一套低成本的访问系统,同时在可靠性、可用性方面,因为我们希望用户来更安全、更可靠、更方便的使用我们的产品,我们相对于私有云京东商城内部提供了更高的可靠性和可用性,同时满足用户基本使用需求之上,我们做了更多的一些成本合理性的考量。

先简单介绍一下商城的存储系统,基本上就是左边的图片存储系统和右边的对象存储系统,在图象存储系统它是纯为图片处理优化的小文件存储系统,在对象存储系统上面他以存储为核心的简单对象存储系统。这个系统其实对内是可以满足京东商城内部基本的存储方面的需求,但是对外就不OK了,在对外这方面我们整个一个方面是整合了这两套系统为一个统一的对象存储系统,第二个我们横向扩大了基于存储的周边服务和丰富用户的使用和接入,在用户的接入方式上我们现在可以让用户从控制盘、SDK、API以及各种第三方工具上使用存储,就像XSKY一样我们也使用第三方的接入协议,同时我们也有自己的接入协议。

在网络传输上,我们京东云存储系统可以作为原站让用户直接使用,也可以让用户接到第三方任何一个节点上提供服务,同时我们京东也有自建的CPN,要的话可能会有打包的成本更低的考虑。

在业务这方面,提供完整的对象存储的产品形态,在产品内部我们会有一些基本的文件、权限、用户体系,这方面基本上以存储产品为中心的服务,同时附加的还有一些图片处理,视频处理,主要是视频点播为主的媒体这方面的处理,以及还有人脸检测识别这方面的大数据的处理,同时京东有自己的直播系统,我们对直播系统的录制、持久化也会有内部优化的接入方面的考虑。在底层持久化这方面,底层存储分为高可靠存储以及低频访问两套存储系统,低频访问存储系统是业界比较常见的,内部的我们会有一些,比如说源数据管理、帐单管理,图片的日志处理以及比如说域名解析,访问控制安全策略这方面的考虑,来做一些内部底层支撑的系统。

我们基于这些完备的业务体系和系统架构,我们京东云的对象存储可以比较方便的给用户提供整个数据上云备份的需求以及一些热点数据加速分发的数据,还有一些云端的多媒体数据处理的需求,以及***我们可以保证数据高可用性以及灾备的需求,基本上用户现在各种常见的和不常见的存储需求我们京东云都是可以满足的。

***欢迎大家来使用我们京东云的存储服务,谢谢!


【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

责任编辑:刘妮娜 来源: 51CTO
相关推荐

2013-10-09 14:26:27

京东云

2016-05-27 15:47:20

云计算京东

2017-01-10 16:18:26

分布式存储建设

2019-01-11 08:37:34

云计算京东云金山云

2017-02-13 14:35:46

京东云金蝶混合云

2013-09-22 10:03:05

京东云

2019-01-14 11:16:03

2018-07-31 16:29:57

京东云

2016-08-26 11:12:03

2015-11-10 18:18:01

京东云何刚

2013-09-22 13:48:22

云计算京东云

2016-04-06 11:07:34

京东京东云云计算

2013-11-07 11:22:06

云计算京东私有云平台

2017-12-01 11:34:44

京东京东云自动化运维

2013-11-07 11:15:39

京东云电商移动云平台

2016-05-31 10:18:14

京东云

2014-08-28 09:00:41

华为

2016-05-27 15:48:41

京东JMR

2012-09-11 09:57:46

私有云公有云云存储

2017-01-10 15:22:34

京东容器集群
点赞
收藏

51CTO技术栈公众号