一提到对象存储,大家多半会联想到“存储海量文件”。但随着近几年大数据、云计算等应用场景的广泛部署,客户对业务的敏捷性要求越来越高,尽可能地精简业务处理流程、提高业务处理效率变得更加重要。面对这些需求变化,身处幕后的存储设备已经不能仅仅局限于“存储”这个基本要求。一些领先的对象存储厂商已经开始思考,如何将原本外置的业务处理能力集成到存储上来,让存储做“更多事情”,结合业务需求来赋能应用,帮助客户实现更大价值。
为了满足部分客户在海量图片处理场景下对业务敏捷性和处理效率的要求,SandStone MOS在V5.4版本中新增图片处理功能,使图片处理的全业务流程均在对象存储内部完成,让流程处理从“繁琐低效”走向“简洁高效”。本文即对该特性进行专题解读。
一、图片处理业务导致海量数据高吞吐
随着各类企业文档、图片和音视频等非结构化文件的数量逐步从千万级快速增长至数亿级别,并呈现持续的指数级爆炸式增长,分布式对象存储已逐步替代传统NAS存储,成为当今企业内非结构化数据存储的标配。非结构化数据(尤其是图片文件),通常与企业的业务流程紧密相关。比如银行的购房贷款审批业务,购房者提交的申请材料通常包含身份证、户口本、个人收入证明及购房合同等各类文件的扫描件,并以图片的形式长期存档。整个审批流程包含了对图片的各种处理需求,比如通过缩略图来提高浏览效率、通过打水印以便于追溯图片来源,以及通过调整图片尺寸来适配不同客户端显示规格等。若要满足客户对图片存储、提取、处理这一系列需求,目前普通的对象存储系统是如何实现的呢?
图1.基于普通对象存储的图片处理业务架构
如图1所示,普通的对象存储系统仅提供图片文件的存储服务,当业务系统需要获取处理后的图片(如缩略图)时,大致需要经历以下4个步骤:
1. 业务应用向对象存储发送读取原始图片的请求
2. 业务应用下载原始图片到业务服务器
3. 业务应用上传原始图片到图片处理系统以请求缩略图
4. 业务应用获取图片处理系统返回的原始图片的缩略图
显而易见,整个过程中存储系统和图片处理系统要进行频繁交互。当业务实际上线运行后,由于原始图片一般为高分辨率、高清晰度的大文件,上述步骤2和步骤3通常会给业务网络带来巨大的流量压力,占用大量的网络带宽;另外因为流程步骤较多,这也会增加系统响应时间,导致客户访问体验很差。
如上所述,对象存储系统与图片处理系统各自独立,前者只负责“存”,后者只负责“处理”,而且中间的“提取”过程效率低下。对用户而言,这显然不是最佳的解决方案。
杉岩基于多年行业实践,准确地捕捉到了这一长期存在的痛点,并提出了针对性的解决方法。
图2.基于SandStone MOS的图片处理业务架构
如图2所示,SandStone MOS通过在对象存储系统内部集成图片处理功能,省去了图片处理过程中将原始图片在业务网络上来回拷贝的过程。这样做的好处是:既免除了对业务网络的带宽压力、提升了系统响应速度和交互体验;还能够充分发挥存储节点富余的CPU资源的计算能力,确保存储性能的高效利用。
二、集成图片处理能力,提升存储智能化
既然了解了SandStone MOS在图像处理方面的独到之处,那么,它是如何实现的呢?
图3.SandStone MOS图片处理业务架构的实现方式
如图3所示,SandStone MOS存储系统最底层为通用的服务器硬件,OSD负责管理服务器上的每个存储硬盘,对象存储网关负责S3对象存储接口的逻辑封装以及与OSD的数据进行读写交互,负载均衡器负责实现业务读写请求在多个对象存储网关间的负载均衡路由及高可用。
当业务应用经过S3 SDK发送读写请求到负载均衡器时,负载均衡器根据指定的路由算法(如轮询)将请求分配到对应的对象存储网关,对象存储网关再与OSD交互完成数据的读写。
此外,SandStone MOS的对象存储网关模块除了提供S3对象访问协议,还支持常用的图片处理功能,主要包括图片转码、图片压缩、缩略图及图片文字水印,具体规格如下。
1. 图片转码接口支持将图片转换成JPG、PNG、BMP、WEBP、GIF、TIFF等格式
2. 图片压缩接口支持 JPEG、PNG 格式。瘦身后画质不变,分辨率不变,格式不变,文件体积大幅缩小
3. 缩略图接口支持图片格式转换、缩略、剪裁功能。只需要填写几个参数,即可对图片进行缩略操作,生成各种缩略图,接口可支持处理的原图片格式包括:PSD、JPG、PNG、BMP、WEBP、GIF、TIFF
4. 文字水印接口支持图片类型包括:JPEG、PNG、PSD、GIF、TIFF、BMP
当对象存储系统集成了图片处理功能后,业务应用通过标准的S3访问入口,即可完成图片的存储和处理过程,业务应用只需要在原有的S3读取接口增加相应的图片处理参数,就能获取处理后的图片。
三、媒体处理能力提升50%,帮助客户提升效益
简化业务架构,降低硬件成本
在普通对象存储的业务架构中,因为对象存储自身不支持图片处理功能,图片的存储和处理分别需要访问对象存储服务地址和图片服务地址,这导致业务逻辑需要针对两套系统做复杂的逻辑处理,业务处理的效率低下。通过使用SandStone MOS分布式对象存储系统,业务应用只需要维护一个访问地址和SDK就可以,整体架构得到了极大的简化,有效精简了IT设备,降低硬件成本。
释放网络带宽压力,保障性能稳定
SandStone MOS通过在对象存储系统内部集成图片处理功能,省去了图片处理过程中需要将原始图片在业务网络上来回拷贝的过程,减少了业务网络的带宽压力,避免了由于带宽挤占导致其他业务系统访问卡顿甚至瘫痪的风险,有效保障性能的持续稳定。
极大缩短图片处理请求时间,让业务更敏捷
由于避免了跨业务网络访问,即省去了原始图片在存储系统和图片处理系统间的交互过程,图片在SandStone MOS内部可就近完成处理任务。对比普通对象存储的方案,在相同算力的前提下,SandStone MOS的图片处理整体效率可以提升高达50%以上,极大的保障了业务敏捷性,帮助客户从容应对海量图片场景下的快速处理需求。
充分发挥富余CPU算力,提高硬件利用率
一般在业务压力比较低的场景下,或是出于对存储系统扩展性规划的考虑,服务器硬件的CPU资源利用率通常只有20%-30%左右,SandStone MOS的图片处理业务架构不仅可以减少跨网络的数据拷贝,提升图片处理效率,还能够充分发挥存储节点上富余CPU资源的计算能力,确保多业务场景下有充足的算力保障。
SandStone MOS通过集成图片处理功能,在便捷存储海量文件的同时,让图片处理的全业务流程在对象存储内部完成,避免了传统方案中存储与图片处理系统的频繁交互,不仅能很好地完成“存储”这一基本要求,还能结合场景需求,在存储内部高效完成图片处理过程,帮助用户实现更大价值。