图1 2017年Gartner全球云存储魔力象限图
在去年首次进入Gartner魔力象限即取得了不错的位置之后,今年阿里云存储再次强势进入公共云存储魔力象限,紧跟Google成为公共云存储厂商中在利基象限中最接近领导者象限的公共云存储厂商,而领导者象限中目前只有AWS和Azure。
图2 2016年Gartner全球云存储魔力象限图
作为国内市场排名第一的云厂商的云存储产品系列,取得这样的成绩也并不是水涨船高的结果。首先从整体评估上来说,Gartner的评估方法并不依赖母体厂商的品牌和占有率,而是客观的从云存储类型(对象,块,文件)和冷热存储,全球数据中心的位置、技术成熟度、市场策略、市场份额、服务承诺和SLA等方面来综合考虑。
在这次评选中,分析师认为,阿里巴巴集团对云计算业务的持续投入,在国际市场上也积极布局,让其云服务的技术、产品和全球规模都有长足的进步,阿里云在中国,美国,新加坡,德国,香港,澳大利亚,日本,阿联酋等地都开放了云存储服务,并且不少地方拥有多个数据中心。阿里云云存储的应用场景丰富、在多个领域拥有行业领先的客户,在中国的数字商业领域已经发挥了重要作用。不仅如此,阿里云云存储还吸引了大量的独立软件开发商加入到阿里云云存储的生态圈中。
分析师认为,阿里云目前的存储产品系列展示了阿里云的潜力。随着时间的推移,已经成为全球超大规模云服务提供商的有力竞争者和替代者。阿里云云存储不仅拥有一系列不同的产品和功能,而且现在已经具备了相当的能力,在全球范围内提供广泛的服务。
目前,阿里云在海外的积极布点已经让海外九个国家和区域拥有了云存储的服务能力,覆盖了欧洲,美洲,大洋洲,亚洲等区域。
我们特别邀请到阿里云存储团队产品负责人承宗独家撰文,深度解读取得如此傲人成绩背后的技术思考。承宗2010年加入阿里云飞天团队,先后参与了飞天底层系统的研发以及阿里云所有云存储产品的产品设计工作,对于大规模分布式系统以及大规模互联网应用架构设计有着超过十年的经验,并对于云产品的设计有着深入的理解。
云计算厂商中最丰富的存储产品线
存储是云计算业务的基石,而阿里云有着所有云计算厂商中最齐全的存储产品线,对象存储OSS、块存储 Block Storage、共享文件存储NAS(支持NFS和SMB/CIFS协议)、共享块存储、表格存储、归档存储以及混合云存储系列,并且提供在线和离线数据搬迁服务。我们先来看一下阿里云存储的产品系列。
支撑海量互联网应用的对象存储OSS
阿里云对象存储OSS从商业化服务5年多以来,已经逐渐成为了中国互联网和移动互联网的存储基础设施。亲宝宝作为如今国内最大的亲子空间,帮助父母记录孩子的成长故事,也记录着OSS一路的发展。在OSS成立之初,亲宝宝这个APP就生长在云上,5年过去了,不仅亲宝宝这样的APP在阿里云OSS上发展壮大,新浪微博,映客,亿方云,华大基因,安诺优达,陌陌,努比亚手机等知名企业也纷纷采用阿里云OSS作为数据的存储。
OSS的全称是Object Storage Service, 提供简单的网络访问接口(RESTful API),可以随时从网络上的任何位置,任何时间,来读写任意数量的数据。同时OSS是一个全托管的服务,提供安全、容量和性能的扩展性,容灾等服务能力,使得用户可以聚焦在自己的应用逻辑上面。 OSS提供丰富和强大的安全访问机制,通过安全灵活的授权访问控制,提供安全稳定的互联网或者专有网络的访问能力。互联网上的设备,云上的服务器,Web浏览器以及分散在世界各地的CDN节点都可以通过OSS对外的HTTP/HTTPS的访问接口来写入,读取和操作自己的数据。凭借3+N的多线BGP接入能力和稳定出色的系统访问延迟,OSS受到了像新浪微博,映客,陌陌等大型移动互联网APP的青睐,作为源站向全世界提供服务。
阿里云对象存储OSS依托高性能的阿里云数据中心网络,以及丰富的与开源计算系统和阿里云自研的计算系统的集成,提供了方便,简单,和经济划算的数据分析和加工能力。OSS是中国第一家被官方Hadoop社区接纳为缺省的对象存储文件系统;意味着全球所有的Hadoop生态的离线、交互、数据仓库、深度学习等程序在不需要改代码的情况下,自由读写OSS的对象存储。开源的分布式内存文件系统Alluxio原生支持OSS,让存储在Alluxio内存文件系统中的数据可以使用OSS来作为持久化存储介质和数据交换平台。
阿里云的E-MapReduce产品中的Hadoop组件也直接使用OSS作为存储后端进行数据存取。阿里云的MaxCompute计算平台通过阿里云内部Tb量级的网络通道,对OSS的数据进行分析和加工。阿里云的机器学习平台PAI,并行处理数据仓库服务HybridDB等产品也都和OSS存储联通。阿里云不仅投入了大量的资源来建立高带宽低延迟的数据中心物理网络,软件栈方面,我们也进行了大量的优化:QoS的管理和支持,前后端流量的管理,最小化通信库的软件开销,数据中心网络传输拥塞技术优化等。 通过丰富的计算和分析能力,一流的数据中心网络,以及高性能的数据访问,OSS系统成为共享的数据湖,一份数据被多种计算系统共享,达到存储与计算解耦的效果,使得资源的利用率最大化。
阿里云对象存储OSS提供标准(Standard),低频(IA:Infrequent Access)和归档(Archive)三种存储类型,全面覆盖从热到冷的各种数据存储场景。作为OSS的特色,第一,提供了生命周期(Lifecycle)的自动管理,根据用户设置的策略在不同类型之间进行自动转化,节省用户的存储成本和管理成本。第二,统一的RESTful接口来访问不同类型的OSS存储,即使一个文件的存储类型通过Lifecycle自动进行了改变,应用程序不需要修改。其他存储厂商通常要求使用不同的接口来访问不同的存储类型。第三,归档存储的解冻时间小于60秒,不同于其他存储厂商需要若干小时。
不仅如此,在繁荣的多媒体行业的催生下,OSS在对象存储的基础上,发展了自己的特色API能力,通过提供一站式的图片处理功能,RTMP协议支持,APPEND追加写入等功能,形成了图片社交解决方案,直播推流解决方案,短视频解决方案,云相册解决方案,让移动互联网APP的开发周期大大缩短。
不断挑战性能和成本极限的块存储Block Storage
阿里云提供了多种形态的块存储产品,满足日益多样化的用户需求。首先,阿里云的块存储服务为云服务器ECS提供低时延,持久性和高可靠的数据块级随机存储。块存储支持在一个可用区内多副本的方式来提供高可用和高可靠的数据读写。根据不同应用场景的需求,阿里云提供了七种类型的块存储产品:SSD云盘/高效云盘/普通云盘,SSD共享块存储/高效共享块存储,本地SSD盘和本地HDD盘。针对传统政企/金融客户的核心业务数据库高可用架构上云场景,推出了共享块存储产品,提供支持多台云服务器并发读写访问的共享块设备,配合多网卡和部署集功能,实现Oracle RAC的轻松上云。
同时也提供快照,加密,弹性容量管理等高级数据服务功能。单个云服务器数据盘挂载数量也从4个提升到16个,提供更多单机容量和更高并发读写性能。
其次,阿里云提供本地盘存储,专为对存储 I/O 性能有极高要求的业务场景而设计的存储产品。譬如在大型数据库业务场景下,具备每秒数万至数十万次低延迟随机读写能力,在 Hadoop/大数据等业务场景下,具备高达数 GB 的顺序读写吞吐能力。阿里云存储团队针对NVMe接口的SSD开发了基于SPDK的高IOPS并发、低延时的本地SSD型实例i1,单机随机IOPS高达48万,延时为微秒(us)级别,使得在云上运行MySQL/Cassandra/HBase/MongoDB的用户获得超过自建物理机的IO性能。为了满足泛互联网行业、金融、电商、政企等行业等搭建大数据存储与计算分析平台的要求,阿里云在2017年还推出了ECS大数据型实例d1/d1ne,选用高性能企业级6TB SATA硬盘,单GB存储成本降低97%(相比于SSD云盘),单实例最大5GB/s存储吞吐能力,可有效缩短HDFS文件读取和写入时间。
基于阿里云第二代Apsara vSwitch技术技术,在25GE组网环境下,d1ne实例最大可提供35Gbps网络带宽,满足大数据分析节点间数据交互需求(譬如MapReduce计算框架下Shuffle过程),缩短分析任务整体运行时间。
向传统与新兴科技同时发起冲击的新一代文件存储NAS
相对于OSS在互联网存储上的流行,共享文件存储NAS在非互联网企业转型上云过程中发挥着巨大的作用。阿里云选择通过公共云NAS的方式来撬动新型行业数据上云,推动非互联网企业业务升级。与传统的NAS不同,阿里云NAS既具备了数据高可靠、完整性、完全托管服务,面向容错的设计和按量计费等云存储的特性;也具备线性扩展scaleout能力和丰富的安全控制和管理能力。 与微软Azure File仅支持CIFS/SMB协议和AWS EFS仅支持NFS协议不同,阿里云NAS同时支持CIFS/SMB和NFS协议,也是全球唯一一款云上同时支持CIFS/SMB和NFS协议的云上NAS系统,更好地满足Windows和Linux的云服务器对高效共享文件存储的需求。
阿里云NAS分为性能型和容量型两种。性能型NAS采用全SSD的介质,满足I/O密集型应用的需求。容量型NAS采用混合存储的方式,写路径通过SSD,读路径从HDD,在不降低写性能的前提下,提供经济实效的 PB级共享文件存储。然而,仅仅满足支持企业用户文件存储的需求,并不是阿里云做NAS的唯一目的。在Docker、HPC等全新应用的推动下,如何为计算节点提供高可靠,高弹性,高性能,多共享的文件系统已经成为NAS领域的一个新的挑战和趋势。
在2017年5月的成都云栖大会上,阿里云发布了行业性NAS Plus,首先向广电领域发起了冲击,NAS Plus是云上首个支持广电级别非编的NAS产品,针对广电收录系统并发路数多,顺序写性能要求高的特点,满足制作系统高带宽,低延迟,以及随机读性能要求高的要求,NAS Plus做了性能上的全链路优化,并且与合作厂商华栖云进行了深度合作,在防火墙技术、Hardlink跨卷共享、智能拼接以及帧级共享,快速检索等方面做了深度优化。在与企业中高端NAS的PK中,阿里云的NAS系统全面超出。
NAS Plus不仅仅是针对广电的定制化版本,而是开创了一种模式,与行业的深度整合能够给客户带来数量级上的体验改进。NAS Plus不仅仅可以用于广电,也可以用于基因、渲染、机器学习等领域,并且能够与行业的使用方法做深度的整合。
高可用的海量结构化/半结构化数据存储-表格存储TableStore
海量结构化和半结构化数据则可以使用表格存储。表格存储在2011年开始在阿里巴巴内部使用,为阿里云邮箱、大数据分析MaxCompute、云OS等提供了海量元信息的存储与实时访问,每天承接着数百亿次的API调用访问。
表格存储底层使用了分布式共享存储技术,通过自动分区Partitioning机制和特有的自动负载均衡Load Balance机制,在数据规模与访问并发上具有极好的扩展性。单表可以在无人工介入的情况下轻松扩展至PB级数据量与千万级QPS的访问能力,其高并发低延时的特点也使表格存储在2014年正式对外商业化之后迅速在社交、金融风控、电商交易、日志监控、物联网等行业获得了大量用户的青睐。
针对不同的应用需求特点,表格存储提供了高性能与容量型两种实例规格。对读写性能敏感的社交、游戏、金融风控等场景可以使用高性能实例,高性能实例采用全SSD介质,在保证3份数据强一致性的情况下,提供个位数毫秒级的访问延时。而容量型实例则采用特有的混合存储介质,在不降低写性能的情况下提供更具性价比的数据存储及访问成本,适用于日志监控、物联网时序数据存储等对读性能不敏感但对成本较为敏感的业务。
不仅如此,表格存储针对特定的行业应用也推出了一些特有的功能,例如针对社交IM场景推出了主键自增列功能,去掉了IM系统中对第三方自增ID生成器的依赖,简化IM系统的架构设计,大大提高了系统的响应并发。自有的增量Stream功能,配合阿里云的函数计算和阿里云流式计算,能够很好地同时满足海量结构化数据的存储与实时计算的需求。与MaxCompute、ADS以及Hive、Spark的数据打通,也真正兼顾了海量结构化数据的存储与分析的应用场景。
传统IDC数据上云的加速器-混合云存储
随着云存储的兴起,以及原有线下存储厂商开始向云靠拢,混合云架构已经被越来越多的客户接受。混合云把公共云和客户内部的IT环境整合为在性价比和安全性上更优的解决方案。而混合云存储的关键在于连接和传输,阿里云针对连接,易用性和传输在2017年连续推出了一系列混合云的产品组合,包括云存储网关,混合云存储阵列,备份服务,容灾恢复服务,和闪电立方数据搬迁服务。
云存储网关是一款可以在线下和云上部署的软网关,以阿里云上的OSS作为后端存储,可在企业的内部IT环境和基于云的存储基础设施之间提供无缝、安全的集成。云存储网关支持标准的NFS和CIFS协议,支持VMWare/KVM/HyperV环境部署,提供本地缓存模式,让本地存储与云的链接具有更好的互操作性和性能。
而混合云阵列则是阿里云混合云存储战略的重中之重。混合云阵列让您可以像本地存储一样使用和管理本地和云端的各种存储资源(块、文件和对象),本地存储通过云缓存、云同步、云分层、云备份等方式无缝连通云存储。混合云阵列不仅可以作为传统存储与云的连接器,而且因为混合云阵列的高稳定性和性能,支持双控机头的模式,在一些场景下也可以直接替代传统存储成为混合云中的一级存储。
备份和容灾恢复服务是大量企业需求的混合云存储服务。云存储网关和混合云阵列能够帮助数据上云,同时也能够让云上和云下形成灾备机制。用户本地的虚拟机镜像备份,数据库备份以及应用备份,通过运行混合云阵列上的灾备服务,能够灵活的配置在云上的备份策略和备份周期,并且通过在云上进行与弹性计算服务的结合,在用户本地IDC发生故障时可以自动或手动的进行切换。
当用户在本地机房有PB量级的数据,需要在短时间内进行迁移时,离线数据搬迁能力显得尤为重要,阿里云推出的闪电立方产品,单台一次支持480TB的迁移能力,且可横向拓展,利用多台设备可以同时迁移PB级别的数据,使得海量数据快速上云成为可能。除了加速数据迁移的速度,整体费用与专线方式对比,也降低60%以上。
世界先进的分布式存储技术-盘古
阿里云的云存储产品都拥有一个公共的底层存储平台,叫做盘古。阿里云在2009年成立之初就开始了盘古分布式文件系统的研发,经过多年的发展,盘古文件系统已经能够支持块存储云盘、对象存储、文件存储、大规模数据处理、数据库等各种复杂场景,并且针对离线和在线等不同场景做了精细的优化。
在机器规模达到上万台时,硬件故障的发生不仅无法避免,而且成为了每时每刻都会发生的常态,磁盘损坏,机器宕机,网络设备故障,网络隔离,机房断电,运维故障等频繁发生。在一个多租户环境下,资源也变成非常难以预估,网络阻塞,后台任务,请求的突变,多租户任务的争抢,在线离线的争抢,负载热点等也会频繁出现。盘古文件系统从第一天设计开始,就遵循下面两点设计目标:
• 基于不可靠的资源打造一个可靠的整体
• 基于无法预估的资源打造可以预测的整体
盘古具备下面的技术特色:
• 单机群达到万台规模
• 管理EB级别的存储空间
• 统一的全局名字空间管理
• 名字空间的管理和存储空间的管理分离
• 统一的不同存储介质的智能数据分布和迁移
• 支持离线和在线应用混跑
• 支持多种访问方式:顺序,随机,数据流,记录流
• 数据中心级别的可用性保障,地域级别的容灾
高可靠高可用可扩展的元数据管理- 盘古Master
盘古采用基于Paxos协议的盘古Master来管理元数据, 通常配置为5个实例,可以同时容忍两台机器出故障。采用Paxos一致性协议,保证了高可用和快速切换的能力,减少了外部的依赖,做到了独立自包含,在保障高稳定性和高性能前提下能够容忍复杂故障。 支持按照Namespace来分区, 支持EB级别容量和万亿级别文件数的线性扩展能力。
数据的可靠性和高效访问 – 盘古ChunkServer
ChunkServer负责管理存储空间和数据读写。首先,ChunkServer支持分级存储,针对不同的存储介质如NVMe SSD, SATA SDD, HDD等,根据相关配置的策略,把数据写入对应的存储介质,同时支持基于策略的迁移。比如说在混合存储云盘,数据先写入来自三台不同机器的SSD盘后就返回,后台异步地将数据迁移到HDD盘。
其次,ChunkServer采用了一系列技术来提供稳定的性能:1)服务分级,对请求队列和网络流量设定不同的优先级;2)管理好昂贵的后台活动;3)热点负载平衡;4)增加副本来应对重度使用的数据;5)缓冲来加速;6)备份请求(Backup Requests) 来规避慢盘等。这些技术的本质目标就是基于无法预估的资源来打造可以预测的整体,提供稳定的性能,通常用99.9%分位和99.99%分位的性能来表征。
第三,数据可靠性(Durability)和完整性(Integrity)是盘古的生命线。每一份数据成功地写入三台不同的机器(来自不同的可用区,或者不同的机架)后才返回。而且自动巡检系统不停地检测不可用的副本,一旦出现,自动地及时复制,使得每一份数据任何时刻至少有2个及以上的副本,提供至少10个9(11个9如果是多可用区)的可靠性。盘古系统也提供端到端的数据校验,上层的云存储产品提供数据的CRC,盘古在落盘的时候进行校验,并且把CRC和数据一起写入磁盘。后台任务也一直巡检,检查存储介质可能出现的位跳变(bit rot)错误,一旦发现和写入的CRC不符,找到正确的副本,重新复制一份新的副本。
第四,全自动的健康检查和主动规避低性能的机器和磁盘。在盘古所管理的成千上万的机器中,总是会有已经出现了健康问题的磁盘和机器,盘古文件系统根据线上历史上所有的运维操作和硬件故障做了机器学习,自动地将这些盘和机器过滤出来,进行慢盘规避,磁盘打分下线和机器调整,把隐患提前解决。
第五,支持多种访问方式并极致硬件的能力。在线访问追求低延迟,而离线访问追求高吞吐。盘古文件系统既要满足低延迟的在线访问,也要满足大并发大吞吐的离线访问,而传统的多线程系统在线程较多时,切换代价非常高。盘古文件系统从端到端采用协程的方式设计,使得在多任务的情况下,使用盘古文件系统的效率极高。内核态和用户态切换是另一个主要软件开销来源,盘古采用类似SPDK轻量级用户态文件系统来访问单机的磁盘,减少切换。高性能通信库和QoS是另一个重要的方面来提高存储的性能和资源的使用效率。
全球第二家云厂商支持跨多可用区的存储系统
盘古文件系统在生产系统中采用跨多可用区部署的方式,经典的模式是支持横跨三个可用区,每个可用区距离30公里到50公里。无论是三副本还是EC(纠删码)副本,都是均匀分布在三个可用区内。任何一次写入都在三个可用区数据落盘后才会返回客户成功。由于各可用区的数据中心有独立的供电,网络和冷却系统等,跨多可用区的存储提供了数据中心级别的容灾能力,在任一可用区完全不服务的情况下,整体服务无缝切换,数据无任何丢失。跨多可用区对阿里云内部核心骨干网络的要求非常极高,端到端的延迟要求在稳定1毫秒以内,并且有Tb级别带宽能力。阿里云投入了大量的资源来建设高容错能力和高性能的多可用区互访的内部核心骨干网络。
存储无法计算的价值
为亿万网民提供基础服务
2016年双十一,淘宝交易额高达1207亿,其实背后是大数据的支撑和阿里云计算的能力的体现。和最高峰值每秒17.5万笔交易相比,淘宝APP和网站经历的流量和访问次数就比这个数字要高百倍以上了。而淘宝APP和淘宝主站上的所有图片和视频都存储在阿里云OSS之上,这背后是OSS整个链路低延迟和高稳定性带来的流畅体验。
这就不难解释为什么新浪微博从2016年开始也把图片数据放在了阿里云OSS上。2015年,李晨与范冰冰在新浪微博上晒出合影并配文:“我们”,创造了两小时阅读量超过1000万次的记录,促成了新浪微博与阿里云史上最大规模的混合云合作,当流量激增导致的脉冲式访问,要保证系统的稳定性和服务的正常运转,除了实时扩容之外,就是保证后端系统在高压力下的延迟和稳定。2017年春节,新浪微博的Feed,广告,搜索,话题,视频,直播,手机微博,图片等多个核心业务系统部分迁移到阿里云平台,除夕期间的“红包飞”业务则100%架构在阿里云上。新浪微博核心业务之一图床系统就架设在阿里云OSS之上,并且根据用户使用终端的不同,所有的图片需要进行实时的缩放和质量调整,为新浪微博在不降低用户体验的情况下,大幅的降低了流量,节省了成本。
存储牵手计算造福社会
2016年10月,阿里云计算与中国科学院国家天文台达成了战略合作协议,并与2017年1月成立了天文大数据联合研究中心。中国虚拟天文台主节点成功迁移至阿里云,成为一个集成超过500TB科学数据、1.5PB存储能力、700多Tflops计算能力和100多种软件的天文数据库与综合服务部门,其中包括我国自主研发的郭守敬望远镜(LAMOST)巡天数据,从2009年开始做观测,到现在已经累计了800多万的天体光谱数据,是全世界最大的全体光谱数据库,而LAMOST的数据,经过天文台研究和技术人员评估论证,放在了阿里云OSS上。不仅因为OSS的高可靠性,高性价比和易用性,更多是考虑到阿里云计算节点与OSS之间的连通性和高可访问性。
我们经历的每一次地震,都在提醒自己预测和预警这种灾害的迫切性,但是,我们离这个目标还很远。为了更好的认识地震这一物理现象,需要极其详细的地壳结构影像,而为了绘制这张地下地图,需要有详尽的数据计算,中国地震局在长期的观测积累中,已经积累了PB量级的数据。中国地震局的研究员如果使用地震局的单机设备对这些数据进行一次相关性计算,大概需要七年的时间,而使用阿里云批量计算和云存储OSS,同时调度阿里云上万核的资源以及存储系统Tb量级的吞吐能力,将需要耗时七年的计算任务在48小时之内跑完了,这些计算的结果成为科学研究所依赖的重要数据。
解析一个人类基因组,包含100-1000GB的数据量,如何及时获取、快速分析、安全存储这些庞大的数据是亟需解决的问题。单独建设一套计算和存储的系统会带来昂贵的维护成本,也需要漫长的时间才能完成一次大规模的基因组学分析。2016年4月20日,基于华大基因开发的新一代基因云计算平台BGI Online,在21小时47分12秒内完成了1000例人类全外显子组数据的分析,即使使用传统的本地高性能计算中心也需要4-7天,而BGIOnline 正是基于阿里云的ECS和云存储OSS、NAS和块存储完成了这一壮举。