导语
今年参加了 2019 全球闪存峰会(Flash Memory World),分享了“基于云存储的智能数据分析处理架构”,重点介绍在对象存储 OSS 之上的数据处理功能,现整理相关内容和大家探讨。
一、通过存储技术分析,探讨为什么对象存储适合做数据分析处理
1.1 存储技术分析
纵观存储技术的发展历史,从 1957 年发明硬盘,1970 年代发明 SAN(Storage Area Network),1980 年代发明 NAS(Network Attached Storage),再到 2006 年发明 Object Storage。从中可以看出,存储技术是不断向上和应用结合的过程,但是这些技术并不是代次的替换,而是场景的扩展。其中有个规律,大约每隔 10 年就会有新技术的出现。现在是2019年,距离对象存储出现已经13年过去了,下一个存储未来技术会是什么呢?(后面会抛出一些思考)。
通过上图对比存储技术的差异,加强理解:
- 存储的部署和服务场景不同。SAN(块存储) 和 NAS(文件存储)都是面向数据中心内访问的设备,而对象存储产生的目的根本就不是在数据中心内使用,而是面向互联网、移动互联网(3G、4G、5G)而产生的,为大量使用的网页、视频、图片、音频、文档访问而设计。
- 存储的使用者不同。块存储的使用者是机器,它映射 LUN(Logical Unit Number) 给机器,被机器识别为盘,然后创建文件系统、数据库。NAS 的使用者是办公账号,如 AD(Active Directory) 和 LDAP(Lightweight Directory Access Protocol) 账号,该账号登陆 NAS 设备的 IP(Internet Protocol) 地址就可以访问共享文件夹,用于办公场景。对象存储的使用者是云账号或者社交账号,通过该账号成功登陆云服务后就可以存储数据了。
- 访问协议/接口不同。SAN(块存储) 和 NAS(文件存储) 是基于数据中心内的技术,采用 FC、iSCSI、NFS、CIFS、SMB 协议。而对象存储是基互联网访问的技术,采用基于 HTTP/HTTPS 的 S3(Simple Storage Service)/OSS(Object Storage Service) 访问接口。
综上可以看出,存储技术的不同,关键是 交互模式的差别。SAN 是典型的机机交互模式,NAS 是人机交互模式,对象存储是移动互联网交互模式。SAN 的机机交互最简单,就是要求盘时延低、带宽大;NAS 的人机交互需求多,就像人管理图书那样会分门别类(目录)和书名(文件名)、重命名、移动,还有复杂的权限、配额管理等;对象存储的移动互联网交互模式,上面会通过互联网应用对外服务,可以做的比人机交互更简单,如采用平坦的名字空间来管理对象,从而降低了 NAS 场景下大目录、海量小文件的管理难题。不同的交互模式,大大影响了存储背后的设计哲学,它也是系统设计的源头和根本。
1.2 存储技术的应用场景
从本质上来看:
- SAN 存储(块),本质是一块盘,就是一个线性地址空间,在它之上装文件系统、数据库、虚拟机等后,才能让应用更好的使用。
- NAS 存储,本质是 企业员工+IP地址+共享文件夹,围绕目录、文件等特性设计,应用于企业办公、媒体编辑、高性能计算等场景。
- 对象存储,本质是 云账号通过互联网(或移动互联网)访问网络内容,广泛使用的互联网短视频、图片、音乐等应用,它为应用提供了全局、全网共享的数据大池子,非常适合做为互联网内容的底层平台。
对象存储拥有面向互联网的海量数据存储、访问能力,在它之上构建数据分析平台,可以关联数据挖掘的价值;在对象存储上构建分析平台,让存储更智能,这将是存储未来的发展之道。
二、当前基于对象存储构建数据分析的典型设计范式
当前,大量的计算应用构建在对象存储上,因为对象存储是面向互联网、面向未来5G的存储服务,它的数据量非常巨大,从而形成了海量的数据池,计算应用基于它去分析,更容易找出数据之间的关联性、挖掘数据价值。所以,基于对象存储来构建数据分析体系,是公有云上常见的使用模式。
如上图所示:
- 阿里云的全球文娱互动直播解决方案,就是使用对象存储系统 OSS 为底座,通过 ECS 部署截图、窄带高清转码、拉流直播、录制等软件,形成文娱互动的能力;该方案提供全球多 Region 容灾部署、千万级高并发能力。
- 阿里云的在线教育解决方案,基于阿里云对象存储 OSS,构建媒体转码、媒体点播、视频直播,来管理服务大量的视频数据。该方案提供海量、安全、低成本、高可靠的云存储,不限文件数量,基于 RESTful API 的互联网任何位置存储和访问。
上述应用方案设计范式的典型特征,就是在对象存储 OSS 之上自主搭建计算、分析集群的能力,实现业务需求。但这样的方案,对带宽的消耗也很明显,做好将计算功能 Offloading(卸载) 到存储,将是很有价值的工作。
三、对象存储计算卸载的智能数据分析处理框架
上述章节的方案解决了对应场景的使用问题,但也存在优化点。
- 带宽优化,对于图片、音视频等多媒体文件,都是较大的对象,不管通过公网还是 VPC 内网,都会带来较大的带宽需求,会存在性能瓶颈。
- 时延问题,将大量的数据下载到手机、服务器处理,传输距离长、时延大,用户体验较差。
- 部署要求,需要购买机器、软件,在进行安装、配置、运维等,这都需要不少的投入。
这些优化点都存在成本开销,因此将合适的数据分析处理算子卸载到存储、实现数据就近访问,并采用 Serverless 的对外提供服务,将会降低带宽开销、减少时延、更易运维使用。
因此,对象存储计算卸载的智能数据分析处理框架核心是构建计算框架、并将它和存储关联,为此在对象存储最近的数据中心,部署计算引擎实现就近访问。然后,在对象存储的数据路径上和计算框架打通,从而实现关联。
为了支持种类丰富的数据分析处理,设计了智能的调度框架:
- 该框架在底层支持 CPU、GPU、FPGA 芯片。
- 将机器抽象为物理机、虚拟机、容器屏蔽硬件差异。
- 在此之上运行 Linux、Windows 运行环境,并部署各类卸载的算子。
- 通过集群调度系统提供离线请求、实时请求的灵活调度。
通过该框架,只要卸载的算子通过验证并部署过来,就可以提供集群化的服务,并实现云服务的 SLA 能力。
四、典型场景
通过对象存储计算卸载的智能数据分析处理框架,支持如下的场景。
4.1 图片处理
通过卸载图片转换算法的算子到调度框架,实现了图片水印、缩放、裁剪、旋转、格式转换、效果共 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 倍。
4.2 视频推流
OSS 是业界第一个实现支持多媒体推流的公共云对象存储服务,通过卸载视频流处理算子,可以在对象存储 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"
通过此方法,无需搭建多媒体流服务,就可以让视频处理卸载到对象存储,并切还能支持音频流,在时延要求不高时还可做直播。
4.3 视频处理
通过卸载视频截帧算子,可实现零流量的截帧处理,直接使用 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 的图片。
4.4 文档预览
通过该卸载算子,可以直接预览存储在对象存储 OSS 上的文档。对于文档预览功能,只需提交请求预览文档,OSS 将会返回经过转码的签名 URL,然后基于该 URL 就可以在浏览器中进行文档查看,目前支持近 50 种文档格式的预览。由于和 OSS 天然结合,从而也完全复用了 OSS 的 SLA 能力(大于 99.9%),并享受 OSS 的安全设计。
4.5 图片 AI
通过卸载图片 AI 算子,实现人脸识别和图像内容识别。
人脸识别 功能,使用时直接在人脸图片的 URL 后加上参数就能直接返回识别的人脸结果,例如:
http://image-demo.oss-cn-hangzhou.aliyuncs.com/person.jpg?x-oss-process=imm/detecface
内容识别 功能,使用时直接在图片的 URL 后加上参数就能直接返回识别结果,例如:
http://image-demo.oss-cn-hangzhou.aliyuncs.com/image.jpg?x-oss-process=imm/tagimage
4.5 SQL 卸载(Select Object)
在对象存储 OSS 中,也叫 Select Object 功能,它将 SQL 的条件、Projection 算子下推,实现基本的过滤并且只返回有用的数据,从而实现高效的数据查询。
Select Object 的卸载方式,和外部大数据平台实现 SQL 方式(OSS 未卸载)相比,时延可减少到原来的1/12,带宽最多可以减少99%。
五、总结
- 交互模式决定存储系统的设计哲学。SAN 块存储是机机交互,NAS 文件存储是人机交互,对象存储是移动互联网交互(3G/4G/5G),不同的交互模式决定后端的架构和功能。
- 基于对象存储计算卸载的智能数据分析处理框架,可以灵活支持不同硬件、平台、操作系统、运行环境、卸载算子,并提供实时、离线请求,满足不同场景的数据分析处理需求。
-存储卸载的遵循原则。寻找合适的数据分析处理算子,实现数据就近访问,提供 Serverless 的模式。
通过整体的介绍,可以相信,基于对象存储海量数据的数据分析处理,挖掘数据价值,是未来技术的重要发展趋势。