亚太内容分发大会暨CDN峰会一直致力于推动CDN产业深度融合发展和市场普及,现已成为亚太地区影响力最大的内容分发网络盛会。十年来,在以阿里云、网宿科技、腾讯云等亚太CDN产业联盟成员孜孜不辍的努力下,CDN产业已经成为基础性设施网络,以坚定的基石之姿,支撑起中国成为世界最大的互联网市场。
随着全球数字化、“一带一路”战略的推进,亚太内容分大会暨CDN峰会的影响力正在逐渐向全球延伸,同时也将中国智造CDN及产业链推广向全球每一个角落。
在6月10日下午举办的【对象存储论坛】上,中国电信集团有限公司云计算首席专家 江峰带来了以《一种面向数据上行的内容存储网络(Content Storage Network)和ToB典型应用》为题的主题演讲。
CDN是在终端和中心之间的缓存,在让终端更快获取数据的同时,减轻中心的压力,因此,CDN是一种为下而生的网络服务。中国电信集团云计算首席专家江峰表示,对于日益成熟的CDN而言,如何解决数据从四面八方上传的问题值得我们去思考。
以上述问题为引,江峰阐述了本次演讲的重点——内容存储网络。一个应用开发者要存数据,有多种方案可供选择,方案之一就是把数据存在某一个资源池,比如放到上海,靠近华东地区的体验是比较好的,离华东比较远的用户体验就相对较差,无法让全国范围内的用户都获得好的体验,这和CDN初衷是不同的,CDN希望任何地方的用户都能更快地获得数据。
方案之二是自行调度,选择几个资源池分布在全国范围内,东北地区放在长春,华北放在北京等。这种情况下,作为应用开发者,当终端发起请求时首先要找到平台,平台根据发起请求的位置,再将离终端最近的资源池返回给终端,最后终端才开始访问资源池,如此一来,终端和平台之间增加了延迟。同时要自己维护这种关系,当数据量很大的时候,维护的成本和难度是很高的。这对于研发能力很强的互联网公司来说不是问题,但如果是只关心业务驱动、市场驱动的公司,关心增收和用户量,这些问题解决起来就很复杂,对于研发能力不强的用户,需要一个能就近写入数据的解决方案。
提到“就近”这个词就容易联想到内容分发网络,中国电信天翼云的存储研发团队提出了一个新的概念叫做“内容存储网络”(Content Storage Network,简称CSN),用户就近写入的数据,可以即时在任何一个CSN的资源池读到数据,这就是CSN内容存储网络和其他的云存储的不同之处。
江峰介绍说,从2012年开始,中国电信天翼云就致力于云存储的自主研发工作,从底层的文件系统、分布式存储引擎,到上层协议,负载调度、管理监控平台,已经全部实现自主研发。其中最引以为傲的是中国电信已经实现了CSN存储网络,多个资源池可以写同一个对象,并且保证强一致性和低延迟。2015年,中国电信天翼云成为国内首个基于自研文件系统大规模商用SMR盘的云存储服务提供商,目前单容器实存容量超过EB。
2015年华为在上海举办的云计算大会上,江峰曾表示:网络就是存储,未来的应用大部分都是互联网应用,中国电信应该结合自身优势打造差异化产品及服务,把资源池连成一张网络,当时称其为“国家存储网络”。用户不需要关心数据写到哪里,只要在资源池中存入,在任何地方都能就近读出来,这就是当时江峰提出的概念,如今已经实现了。
江峰对CSN中的关键技术进行了介绍,从上述图示可以看到,从北京和呼和浩特所在的“环”,这个环是元数据环,如果元数据是集中式的,用户访问北京,北京还需要将请求发送至上海,再由上海告知数据就在北京本地。
中国电信自研了分布在广域网上的分布式元数据环服务,逻辑上单一的一张表在物理上分布存在于不同的机房,从而可以就近提供访问服务。至于元数据的元数据放在哪里,江峰解释说,元数据的元数据是最为核心的数据,目前存放在跨三个省的七个机内。以上便是实现CSN特性的基础,使所有的读写请求都会就近访问离用户最近的机房,数据在本地直接返还给用户,或者通过专网从其他地方拉过来给用户,比走互联网要快,因此可以获得最好的延迟,这就是中国电信打造的一张存储网络。
产品层面中国电信也有创新,左侧图是选择就近写入或指定位置写入,如果选择就近写入终端就会选择就近,对于使用者而言不需要知道它在哪里;有的政企类客户有强烈的属地要求,采用指定位置可以满足。右侧图是虚拟存储网络概念,借鉴了网络当中LAN和vLAN概念,江峰提出了物理资源池和虚拟资源池的概念。客户如果需要专属资源池,从蓝色或红色中选取,黑色部分为公用资源,将虚拟资源池在数据层面打通形成一张虚拟网络,中国电信也做到了在产品层面的创新。
内容存储网络有三大好处。对于普通用户而言,最大的好处就是能就近读写、池间互通,实现显著的低延迟,读的时候能很大概率从本地读,如果不能就从专线读取。对于开发者而言,不再需要关心数据的位置。对于云运营商而言,能够优化资源、节约成本,如果是冷数据,可以放在运营成本较低的资源池,如果是热数据,就选择北京、上海、广东这类热资源池。
随后,江峰对CSN存储网络进行了演示,核心内容是同一个IP的三个不同的资源池,A资源池写入的数据在B、C两个资源池得到是立即更新的结果。通过这样的产品和技术,中国电信为国内外众多类型业务客户提供着海量云存储服务。
介绍完为数据上行而生的内容存储网络CSN,江峰进一步分享了基于CSN的ToB应用-存储网关。一般的企业用户自行写代码能力不强,面向S3开放应用,IT系统基本上都是从合作伙伴获取的,此类企业用户一般IT人员不多,且需要维护很多套IT系统。因此,对于这些企业用户来说,需求主要体现为:
一是要把这些数据上云,需要用到块存储,因此块是底层的基础;
二是要做冷热分离,所有的数据都上云之后,做成块遵循热数据在本地、全量数据在云端的方式;
三是高可用,为企业提供的块存储必须是高可用的,否则会对在生产环境中使用的可靠性产生担忧。
企业要想得到高可用能够冷热分离的块存储服务,这正是中国电信研发了4年多的天翼云存储网关所能满足的,它的特性主要有以下几点:
小巧。软件的安装包只有140兆不到,从安装包解压到集群初始化完成,不超过3分钟,这是目前世界上唯一以一个zip安装包形式交付的存储底座的产品。
扩展性。像普通的分布式存储一样,天翼云存储网关支持磁盘、服务器级别的横向扩展,满足存储网关的本地集群从1台扩展到n台的需求。
数据自动上云。存储网关提供两种模式,第一种是缓存模式,本地只需要1T的硬盘空间,就可以提供100T的虚拟容量,只要存储网关通过网络能访问天翼云对象存储OOS(此前提到的CSN就是基于天翼云对象存储OOS这个中国电信完全自主研发的产品搭建的,以下简称OOS),这100T的数据都会被自动复制到OOS中,本地的1T空间存储仅用于存储最近读写过的热数据,这对于企业数据归档非常方便。
第二种模式是存储模式,即本地和云端是1:1的容量规模,存储网关的本地集群仍然持有全量数据,同时会把所有数据自动复制到OOS中,通过这个方法,企业可以方便的实现数据异地备份。因此,天翼云存储网关是实现数据异地灾备、数据归档、数据上云、数据异地搬家的好帮手。
高性能。对于使用普通 10G以太网互连和机械硬盘的集群,随机写入 4KiB 块的延迟可以低于 0.2毫秒。普通的以太网和机械盘能做到这个性能,并且是在保证任何单点故障都不丢数据、会话不中断的情况下做到这个性能,已经是非常优秀的了。
高可靠性。支持纠删码和多副本两种数据冗余保护机制以及多重数据校验和一致性检查。要知道,块存储能支持纠删码的并不多。
兼容性强。140MB的安装包里面包含了中国电信天翼云纯自研的(非基于任何开源)iSCSI协议栈、高可用存储引擎、管理平台等等全部模块,且全部运行于用户态,不依赖于任何Linux内核,支持主流国产处理器,不挑服务器的配置,2G内存即可安装,不要求所有的硬盘一样大,不要求每一个硬盘独占,只用一部分就可以,甚至可以用旧的服务器运行高可用可扩展低延迟高性能的存储网关。
高可用性。“秒级”故障切换速度。自动调整写入速度并进行资源回收。
其中分布式双控架构(distributed dual-controller architecture)又是中国电信天翼云的一个创新。垂直扩展(Scale-up)的双控存储虽然扩展性差,但它的延迟很低,企业应用广泛;分布式存储容量虽然大,吞吐量也大,但延迟很高,很少运行企业级应用,例如数据库就不可能运行在对象存储之上。而块存储既需要低延迟,弹性又需要横向扩展,因此江峰团队设计和实现了分布式双控的架构。从宏观上看,整个集群可以以服务器(或磁盘)为单位横向扩展,但从微观上看,每一个卷都以两台服务器作为它的控制器。这样一来,每个卷都可以双路径的方式提供低延迟和高可用,同时整个集群又可以横向扩展。这就是中国电信天翼云独创的分布式双控架构与其他开源分布式存储截然不同的地方,从提出概念到设计到最终实现都是自研的。
存储网关解决的另一个技术难题是一致性的保证。上云大家觉得很简单,不就是把本地的数据复制到云上吗?其实不然,文件存储可以这样,但是对于块存储则完全不同。块存储承载的业务很多都是非结构化数据,简单的将数据从本地复制到云端会导致数据不一致的情况出现。举个例子,即使把一个卷里面99.99%的数据都复制到云上了,但某个数据库事务操作没有顺序落盘,就会出现不一致的情况。因此,要确保云上的数据是一致的,就必须确保云上的数据是某个卷在过去某个时刻的快照,而不是简单的看有百分之多少的数据上云了。而中国电信天翼云存储网关就可以保证云端的数据一定是某个卷在过去某个时刻的快照,能充分保障业务数据的一致性。
有的朋友问,能不能把数据复制到天翼云以外的其他的云存储之上?很遗憾,不行。这不是中国电信不够开放,而是因为目前只有OOS支持对象级的原子操作。不支持原子操作,就无法实现上述的一致性。
当然,市场上也有其他的存储网关号称支持多家的云存储,那是因为它的元数据都存储在网关设备的本地磁盘上。但如果本地的网关设备坏了,元数据怎么恢复呢?如果从云上恢复的话,那怎么保证云上的元数据也是一致的(是本地元数据在过去某个时刻的快照)呢?归根结底,云存储还是要支持原子操作,否则,要么就不能保证一致性,要么就不能容忍网关的单点故障,而目前只有OOS搭配天翼云存储网关可以同时做到。