摘要:
近年来,银行等金融行业的业务类型逐步从传统信息金融向互联网金融、智能金融转型,业务线上化、移动化和场景化的业务占比越来越高,非结构化数据在进行快速增长。结合实际业务场景和技术调研,最终全行影像平台场景采用了分布式对象存储。本文主要对现有全行影像平台系统所存在的问题进行了分析,简述了分布式存储的技术选型原则、现场POC测试情况分析,以及生产环境架构方案设计和运维经验分享。
一、背景介绍
近年来,金融科技从传统信息金融向互联网金融转型,到逐步向智能金融进行转型,5G、云计算、大数据、AI等新技术、新应用的蓬勃发展,各金融单位业务线上化、移动化和场景化的业务占比越来越高,银行等金融行业内部的非结构化数据在进行快速增长,如视频、语音、图片、文件等。
在2020年之前,我行的存储架构还是以集中式存储为主,承载的业务类型主要为虚拟化平台、集中式数据库、非结构化数据存放、共享文件等场景。针对我行某些业务场景,集中式存储由于存储架构的局限性,其不具备灵活扩展能力、不适用保存海量数据、数据接口类型单一等问题逐渐凸显了出来。经过对业务类型的分析,我行业务需求主要集中在对现有影像平台系统改造。
在全行影像平台系统改造方面。以往大部分银行以往会将业务数据保存在一台或多台集中式的NAS存储上。随着业务量和历史数据的增涨,集中式NAS存储上的短板就会逐渐显露,例如在读写效率和容量上限方面。在2020年时,我行全行影像平台系统存放的非机构化文件数量已经超过十二亿,逐渐形成了海量非结构化数据。我行使用的集中式存储保存文件上限为20亿,在应对这种海量非结构化数据时,已经接近了性能及使用瓶颈。同时,业务文件的检索效率也会随着文件数量的增加而降低。
二、设备选型
经过对上述场景业务需求的分析,这两类系统对存储的需求均为IO读写稳定,并发流量大,可靠性高,易于扩展,适用于保存海量非结构化数据。结合实际业务场景,全行影像平台场景我们计划采用分布式对象存储。
为了验证方案可行性,我行于2020年对7家业内主流分布式存储厂商进行了现场POC测试,测试内容主要包括存储设备的功能性、稳定性、性能、S3接口兼容性、大数据接口兼容性、技术能力等测试场景。具体的测试场景详见详见如下示意图。
在POC测试正式开始之前,我们提前做了如下几个准备:
1、由于分布式存储的架构特点及数据写入逻辑,为真实模拟验证存储在正常承载业务后的性能及稳定性表现,进行稳定性及性能测试前,我们根据不硬件厂商提供POC设备的容量,提前对其导入了测试数据,数据量在4亿至6.5亿个文件,使测试使用bucket使用率均在65%以上,即处在了一个较高的使用水位上。文件大小为共有9类,在4KB至10MB之间。
2、为真实模拟验证存储在正常承载业务后的扩展能力,在进行稳定性测试、性能测试、存储节点在线增加或移除测试时,各个硬件厂商均需要对测试使用的bucket打开双中心同步复制,并施加高IO压力。
3、为真实模拟验证存储在正常承载业务后对存储在硬件故障发生时稳定性和可靠性,在进行稳定性测试、存储节点在线增加或移除测试时,各个硬件厂商均需要对测试的存储施加高IO压力,要求存储整体压力负载压力不低于60%。
经过对7家存储设备厂商的现场POC测试,结合业务实际需求,经过对测试结果的分析,分布式存储设备在我们测试中比较关注的几个测试项中,测试结果较为理想,主要为如下几个方面。
1、S3接口兼容性测试。在S3对象存储接口测试中,存储可通过原生S3 API接口或提供的对象存储接口示例完成与现有业务测试场景的对接。
2、大数据组件支持能力测试。在HDFS接口测试中,存储在大数据组件spark、hive、yarn、hudi等的测试场景中各测试项均测试通过。
3、存储集群性能测试。在性能测试中,存储整体的性能结果为最优。尤其是在小文件混合(64KB及以下场景)读写测试中,存储的优势尤为明显。
4、集群可靠性测试。高可用性测试中,在硬盘故障、存储节点故障、交换机故障、单条网络链路等故障场景中,存储整体的测试结果为最优。尤其是在存储集群进行存储节点扩容时,单个存储节点发生故障的场景,在故障发生时,存储集群的IO读写虽短时间内出现了抖动,但并未中断,随即恢复正常,后续并未出现性能下降的情况。
5、集群设备芯片兼容性。分布式存储同一集群可支持不同型号和类型的芯片混合部署,方便后续进行的设备扩容升级及国产化改造。
三、 方案规划及经验分享
基于POC测试结果及实际业务需求,我们最终选定了使用OceanStor Pacific分布式存储来搭建我行全行影像平台及数据技术中台的数据底座。在进行方案设计及配置选型时,整体的设计方案和思路如下:
针对全行影像平台,由于其为我行重要应用系统,在进行方案设计时,我们采用了双中心冗余架构,即在生产中心及同城中心分别搭建了一套8节点的X86架构分布式存储集群,EC纠删码等级为6+2,启用存储协议为S3对象。其中生产中心存储集群做为服务端对外提供业务,同城中心存储集群做为备份端使用。
近年来,我们对全行影像平台使用的生产及同城2套分布式存储集群进行了扩容,2套存储集群各扩容了2个和原有存储节点不同型号的X86芯片存储节点。在整个扩容操作中,业务层无感知。
这三套存储集群自2021年下半年投产至今,运行稳定,性能表现情况良好。经过这2年来对存储设备的规划及日常的维护操作,我有如下几点经验总结如下,仅供大家参考。
1、存储节点配置选型
首先是数据保护方式的选择。经过实际性能测试发现,在分布式式对象和HDFS场景下,存储使用的副本及EC纠删码两种数据保护方式,在性能上的表现整体误差在10%以内。结合硬件设备实际的得盘使用率,建议在分布式式对象和HDFS场景下优先选择EC纠删码数据保护方式,这样在可兼顾到性能的同时设备也能得到充分利用,性价比相对高一些。
其次是存储规格选型。存储的硬盘故障在我们日常存储故障统计中,占比超过90%,所以存储硬盘的选择也是需要考虑到的。从数据盘大小角度来说,分布式存储绝大部分选择的HDD盘都比较大,大小从6TB,8TB至16TB,18TB等。从数据保护方式来说,虽然无论是副本或者EC纠删码均可容忍多块硬盘同时发生故障,但从新换硬盘数据重构时间来说,实际情况是更换使用率达到60%的单块6TB HDD盘时,数据重构大概需要24个小时,这其实也一定程度上增加了存储集群运行的风险。因此我个人建议是用于重要业务系统场景的尽量选择小容量HDD盘,用于备份归档场景业务系统场景的则可选择大容量HDD盘。而且从性能的角度来说,在总容量需求相同的情况下,HDD盘的大小越小,配置硬盘的数量也越多,可提供的整体集群性能也就更好一些。
2、存储实施规划
分布式存储从设备实施的角度来看,多台多硬盘服务器所构建成的一个软件定义存储资源池。与服务器不同的是,分布式存储集群需要的功能性网段会更复杂一些。例如我们在实际的实施中,分别要使用到BMC网络、管理网络、业务网络、存储集群网络以及双中心复制网络。建议在实施时,提前对网络进行规划,并为未来可能进行扩展的存储集群,预留足够的地址数量,存储集群内部交换机端口,以及设备摆放的机柜位置。在实施时,要提前确认业务数据的具体流向及负载大小。
3、存储集群的异构兼容性
在进行技术选型时,个人建议要考虑到同一个存储集群内硬件设备的异构兼容性,要确认后续扩容、新老设备替换、硬件架构更迭等方案的可操作性。
由于2020年,搭配国产芯片的分布式存储并未在金融行业大规模使用,我们在选型时还是优先选择的X86架构。但我们在当初选型时,考虑到了国产分布式存储产品是否支持一池多芯部署,是否能实现业务系统底层数据在不同存储池之间进行数据迁移迁移。我行在进行存储集群规划设计时,也已经提前为未来硬件架构的更迭及新老替换做了准备,即业务数据由非信创存储节点向信创存储节点逐步实现数据迁移做了准备。今年,针对我行的大数据分布式集群场景,我们通过在线扩容信创存储节点的方式,已经实现了分布式存储“一池多芯”架构,即26个X86节点+21个信创节点。
四、总结
我行采用分布式存储OceanStor Pacific作为数据底座,对全行影像平台系统的底层存储进行了替换。分布式存储用灵活的弹性扩展能力和优异的性能,为我行能够持续为用户提供优质体验奠定了坚实的基础。
1、应用更高效
针对影像平台业务场景,相比以往,我行影像平台系统底层存储升级后,网络带宽、数据处理效率、文件存取速度较以往提升了数倍,可有效地保证多个上层应用(如贴原数据、数据打标签等)同时并行处理,处理影像小文件的时间由数十毫秒降低至数毫秒,客户体验大幅提升。
2、部署更可靠
通过部署生产主站点和同城备份站点的容灾方案,存储系统可以提供全天候7*24小时的连续稳定服务。配合上每个站点的弹性EC保障,在满足6个9(99.9999%)可靠性的同时,实现不低于75%的资源利用率。
3、数据更稳定
在海量多样性的数据下,倘若下层存储底座无法提供稳定的高性能,上层应用会因性能波动造成客户使用的“卡顿”,比如柜面办理业务时的凭证采集。分布式存储在单桶100亿对象的数据量下,在影像平台典型业务场景中,系统始终能保持稳定不低于3.6GBps的业务带宽及22000Tps的处理效率,保障高质量的用户体验。