阿里云罗庆超:基于云存储的智能数据与分析处理架构

8月22日-8月23日,2019全球闪存峰会(Flash Memory World)在杭州召开。阿里巴巴资深技术专家,阿里云智能对象存储研发总监罗庆超发表题为《基于云存储的智能数据与分析处理架构》的演讲。

以下内容根据录音整理,未经本人审定。

阿里巴巴资深技术专家,阿里云智能对象存储研发总监 罗庆超

罗庆超:各位嘉宾,各位朋友大家好,我是来自阿里巴巴的罗庆超。

今天我分享的议题是《基于云存储的智能数据分析和处理架构》,分为如下四部分来介绍。

存储技术发展趋势分析

纵观存储技术的发展,从1957年开始发明硬盘,1970年代发明 SAN(Storage Area Network),1980年代发明 NAS(Network Attached Storage),再到2006年发明 Object Storage。从中可以看出,存储技术是不断向上和应用结合的过程,但是这些技术并不是代次的替换,而是场景的扩展,因此即使到现在硬盘、SAN、NAS 技术依然广泛部署在对应场景中。技术发展的过程中,关注技术出现的时间线,可以发现,大约每隔10年就会有新技术的出现。现在是2019年,距离对象存储技术产生已经13年过去了,下一个在存储发展趋势的技术会是什么呢?这也是本次交流想和大家一起探讨的关键点。

接下来分析不同存储技术的差异:

第一,存储的部署和服务场景不同。SAN(块存储) 和 NAS(文件存储)都是面向数据中心内访问的设备,而对象存储产生的目的根本就不是在数据中心内使用,而是面向互联网、移动互联网(3G、4G、5G)而产生的,为大量使用的网页、视频、图片、音频、文档访问而设计。但在它产生后,为做前向兼容,特别是公共云上被同 Region 内的 ECS(Elastic Compute Service) 访问的场景,也提供了内网 VPC(Virtual Private Cloud) 访问能力。

-第二,存储的使用者不同。块存储的使用者是机器,它映射 LUN(Logical Unit Number) 给机器,被机器识别为盘,然后创建文件系统、数据库。NAS 的使用者是办公账号,如 AD(Active Directory) 和 LDAP(Lightweight Directory Access Protocol) 账号,该账号登陆 NAS 设备的 IP(Internet Protocol) 地址就可以访问共享文件夹,用于办公场景;同时,为了兼容机器的访问,也可以让 AD 中的机器访问 NAS。对象存储的使用者是云账号或者社交账号,通过该账号成功登陆云服务后就可以存储数据了,为了兼容历史应用,对象存储也兼容 AD 账号接入,以及支持 ECS 关联 RAM(Resource Access Management) 角色的机器访问。

第三,访问协议不同。SAN(块存储) 和 NAS(文件存储) 是基于数据中心内的协议,如 FC、iSCSI、NFS、CIFS、SMB 协议。而对象存储是基互联网访问协议,如基于 HTTP/HTTPS 的 S3(Simple Stoage Service)/OSS(Object Storage Service) 访问接口。

总结下各存储的特点,关键在交互模式上的差别。SAN 是典型的机机交互模式,NAS 是人机交互模式,对象存储是移动互联网交互模式。SAN 的机机交互最简单,就是要求盘时延低、带宽大;NAS 的人机交互需求多,就像人管理图书那样会分门别类(目录)和书名(文件名)、重命名、移动,还有复杂的权限、配额管理等;对象存储的移动互联网交互模式,上面会通过互联网应用对外服务,可以做的比人机交互更简单,因此可采用平坦的名字空间来管理对象,从而没有 NAS 场景下大目录、海量小文件的管理难题。不同的交互模式,大大影响了存储背后的设计哲学,它也是系统设计的源头和根本。

因此,可以从这些纬度,再来看相关存储技术的未来发展趋势。

SAN 存储,本质是一块盘。机器使用快存储,就是一个盘、线性地址空间,在它之上装文件系统、数据库、虚拟机等后,才能让应用更好的使用。它的基础功能特点,就是基本读写访问的稳定性,然后是数据保护的高级特性,之上就是性价比设计。在未来发展趋势上,全闪存化是稳定、低时延的明显公共需求,而专有云会因性价比需求特别关注重删、压缩技术,公共云则因弹性伸缩的特质会更关注按需获取、可承诺的SLA能力。

NAS 存储,本质是 企业员工+IP地址+共享文件夹。其典型场景就是企业办公、媒体编辑、高性能计算等,在AI训练中也广泛使用 NAS。它的功能特点主要是围绕目录、文件等基础特性设计,然后是数据保护的高级特性,以及性价比设计。这和 SAN 存储很相像,所以在企业存储领域会把 SAN 和 NAS 融合设计,叫做统一存储。未来,专有云会基于性价比考虑,把硬盘和 Flash 做混合介质设计,支持压缩,支持更高的带宽能力;而公共云上,稳定、低时延的SLA,弹性、伸缩始终是关键趋势。

对象存储,本质是 云账号通过互联网(或移动互联网)访问网络内容。目前,广泛使用的短视频、图片、音乐等,后面支撑的就是对象存储技术,它为应用提供了全局、全网共享的数据大池子,非常适合做为互联网内容的底层平台。它的功能特点和 SAN/NAS 不同,强调底层 HTTP 稳定性,以及数据的持久度、高可用性,之上更关注数据生命周期管理,因为对象存储会保存10年甚至更多的历史数据,如何用**生命周期**策略来管理众多历史数据是关键。未来,在专有云领域,更多是面向二级存储、非结构化数据管理,而公共云上,则会面向5G,千亿、万亿海量对象的访问能力,数据生命周期的自动管理能力,以及在对象存储上构建数据湖分析平台,去挖掘数据的价值。

基于存储技术和趋势的分析,阿里云存储采用了融合架构实现,也是 SDS(Software Define Storage软件定义存储) 架构实现。最底层是基础设施团队提供的通用服务器、网络构建的高性能集群。

在此之上是飞天软件底座,包括夸父(远程过程调用)、钟馗(安全管理)、女娲(分布式协同)、伏羲(资源管理),和盘古(分布式文件系统)。基于此分布式存储软件平台,可以在上面构建各种存储服务,如块存储、文件存储、对象存储、表格存储,以及HDFS存储等,这是数据平面的设计;同时,控制平面基于神龙(分布式监控)、天基(数据中心管理和分布式部署)构建,管理平面则设计了赤骥(云存储管控、运维平台)系统支撑 devops 敏捷开发。对象存储层要支持万亿级海量数据的管理,其核心是有巢(分布式KV)的海量元数据系统,它提供了极致的性能和扩展能力;基于这些基础产品,就可以构建更上层的数据处理服务。

基于对象存储的应用设计范式

当前,大量的计算应用构建在对象存储上,背后的原因是什么呢?正如前面提到的,对象存储是面向互联网、面向未来5G的存储服务,它的数据量非常巨大,从而形成了海量的数据池,计算应用基于它去分析,更容易找出数据之间的关联性、挖掘数据价值。所以,基于对象存储来构建数据分析体系,是公有云上常见的使用模式。

例如,阿里云的全球文娱互动直播解决方案,就是使用对象存储系统 OSS 为底座,通过 ECS 部署截图、窄带高清转码、拉流直播、录制等软件,形成文娱互动的能力;该方案提供全球多 Region 容灾部署、千万级高并发能力。

再比如,阿里云的在线教育解决方案,基于阿里云对象存储 OSS,构建媒体转码、媒体点播、视频直播,来管理服务大量的视频数据。该方案提供海量、安全、低成本、高可靠的云存储,不限文件数量,基于 RESTful API 的互联网任何位置存储和访问。

上述应用方案设计范式的典型特征,就是在**对象存储 OSS 之上自主搭建计算、分析集群的能力**,实现业务需求。但当前的方案,对带宽的消耗也是很明显的,做好将计算功能 Offloading(卸载) 到存储将是很有价值的工作。

对象存储计算卸载的智能数据分析处理框架

前面介绍的方案解决了对应场景的使用问题,但也存在优化点。首先是带宽优化,对于图片、音视频等多媒体文件,都是较大的对象,不管通过公网还是 VPC 内网,都会带来较大的带宽需求,会存在性能瓶颈;其次是时延问题,将大量的数据下载到手机、服务器处理,传输距离长、时延大,用户体验较差;然后是部署要求,需要购买机器、软件,在进行安装、配置、运维等,这都需要不少的投入。上述这些点都存在成本开销,因此将合适的数据分析处理算子卸载到存储、实现数据就近访问,并采用 Serverless 的对外提供服务,将会降低带宽开销、减少时延、更易运维使用。

为了更好理解存储卸载的架构,先介绍阿里云存储产品族周边的协作全景图。不同数据类型的数据,通过数据通道(使用日志服务)、数据直写、数据上传(使用迁移工具),将数据存放到云存储产品(典型如对象存储),然后通过对象存储的事件触发推送到轻计算(如函数计算),然后由各类典型的计算框架(MaxCompute, Batch Compute)分析处理,再将处理结果进行分发(利用 CDN 内容分发网络),最后提供给最终用户读写。从中可以看出**数据导入、存储、分析处理**可以全链路打通,关键是把数据和计算框架关联起来。

因此,对象存储计算卸载的智能数据分析处理框架核心是**构建计算框架、并将它和存储关联,为此在对象存储最近的数据中心,部署计算引擎实现就近访问。然后,在对象存储的数据路径上和计算框架打通,从而实现关联。最后,为了支持种类丰富的数据分析处理,设计了智能的调度框架;该框架在底层支持 CPU、GPU、FPGA 硬件,然后将其抽象为物理机、虚拟机、容器从而屏蔽硬件差异,在此之上运行Linux、Windows运行环境并部署各类卸载的算子,最后通过集群调度系统提供离线请求、实时请求的灵活调度。通过该框架,只要卸载的算子通过验证并部署过来,就可以提供集群化的服务,并实现云服务的 SLA 能力。

典型场景

通过对象存储计算卸载的智能数据分析处理框架,支持如下的场景。

场景一,图片处理。通过卸载图片转换算法的算子到调度框架,实现了图片水印、缩放、裁剪、旋转、格式转换、效果共 6 个场景,完完全全实现了云上的 PS。以前做图片处理是在本地机器上用 photoshop 完成,现在可以在云上实现,而且还不用安装软件,并且云上 PS 还可方便的实现多人协作处理。使用方式也非常简单,无需购买任何服务器、无需安装软件,直接使用 URL 请求完成,例如:

http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_200

它表示将图片缩放为宽度 200 像素的新图片,通过使用 FPGA 加速,和自主搭建 CPU 方式相比,单机的吞吐率可提升6倍,时延下降80%-90%,整体带宽优化可以达到5倍,更多信息参考 [图片处理](https://help.aliyun.com/document_detail/99372.html)。

场景二,视频推流。阿里是业界第一个实现支持多媒体推流的公共云对象存储服务,通过卸载视频流处理算子,可以在对象存储 OSS 的推流配置完成后,得到 RTMP 推流的 OSS 地址,然后就可在客户端推送视频流到 OSS,例如:

ffmpeg -i 1.flv -c copy -f flv “rtmp://your-bucket.oss-cn-hangzhou.aliyuncs.com/live/test-channel?OSSAccessKeyId=LGarxxxxxxHjKWg6&Expires=1472199095&Signature=%2FAvRo7FTss1InBKgwn7Gz%2FUlp9w%3D”

通过此方法,无需搭建多媒体流服务,就可以让视频处理卸载到对象存储,并切还能支持音频流,在时延要求不高时还可做直播,更多信息参考 [视频推流](https://help.aliyun.com/document_detail/44304.html)。

场景三,视频处理。通过卸载视频截帧算子,可实现零流量的截帧处理,直接使用 URL 请求完成,例如:

http://a-image-demo.oss-cn-qingdao.aliyuncs.com/demo.mp4?x-oss-process=video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast

它表示在7秒钟的时间,截1帧长宽800×600的图片,更多信息参考 [视频处理](https://help.aliyun.com/document_detail/64555.html)。

场景四,文档处理。通过该卸载算子,可以直接预览、转换存储在对象存储 OSS 上的文档。对于文档预览功能,只需提交请求预览文档,OSS 将会返回经过转码的签名 URL,然后基于该 URL 就可以在浏览器中进行文档查看。由于和 OSS 天然结合,从而也完全复用了 OSS 的 SLA 能力,并享受 OSS 的安全设计,更多信息参考 [文档处理](https://help.aliyun.com/document_detail/99373.html)。

场景五,图片 AI。通过卸载图片 AI 算子,实现人脸识别和图像内容识别。

人脸识别功能,使用时直接在人脸图片的 URL 后加上参数就能直接返回识别的人脸结果,例如:

http://image-demo.oss-cn-hangzhou.aliyuncs.com/person.jpg?x-oss-process=imm/detecface

详细信息参考 [人脸识别](https://help.aliyun.com/document_detail/99378.html)。

内容识别,使用时直接在图片的 URL 后加上参数就能直接返回识别结果,例如:

http://image-demo.oss-cn-hangzhou.aliyuncs.com/image.jpg?x-oss-process=imm/tagimage

详细信息参考 [内容识别](https://help.aliyun.com/document_detail/99383.html)。

场景六,SQL 卸载。在对象存储 OSS 中,也叫 Select Object 功能,它将 SQL 的条件、Projection 算子下推,实现基本的过滤并且只返回有用的数据,从而实现高效的数据查询。Select Object 的卸载方式,和外部大数据平台实现 SQL 方式(OSS 未卸载)相比,时延可减少到原来的1/12,带宽最多可以减少99%,详细信息参考 [Select Object](https://help.aliyun.com/document_detail/91745.html)。

总结

第一,交互模式决定存储系统的设计哲学。SAN 块存储是机机交互,NAS 文件存储是人机交互,对象存储是移动互联网交互(3G/4G/5G),不同的交互模式决定后端的架构和功能。

第二,基于对象存储计算卸载的智能数据分析处理框架,可以灵活支持不同硬件、平台、操作系统、运行环境、卸载算子,并提供实时、离线请求,满足不同场景的数据分析处理需求。

-第三,存储卸载的遵循原则。寻找合适的数据分析处理算子,实现数据就近访问,提供 Serverless 的模式。

通过整体的介绍,可以相信在未来存储发明13年后,新的技术将会出现;基于对象存储海量数据的数据分析处理,挖掘数据价值,是未来技术的重要发展趋势。

我今天下午的份上都到这里,谢谢大家。

主持人:大家是否有问题要提问?

提问者:对象存储里面,这个闪存是怎么用呢?是用在哪里呢?(整个架构设计里面)

罗庆超:对象存储是一个非常庞大的系统,存储了海量的数据。目前对象存储包括标准存储、冷存储、归档存储三种类型,它提供高可靠、高可用、高性能的对象存储服务,能够支持频繁的数据访问,因此在对象存储中也有热点数据,因此也会使用 SSD 来缓存数据。

主持人:谢谢罗先生的解答。接下来我们有请下一位。