cover_image

金融对象存储的应用及架构实践

星图金融-王原军 苏项荟
2024年12月17日 09:50


1

 OSS对象存储的特点

图片
OSS(Object Storage Service)是对象存储服务的缩写,是一种通过网络提供的数据存储服务,通过网络存储和调用,包括文本、图片、音频和视频等在内的各种非结构化数据文件

关于OSS的一些概念先简单介绍如下。

1、对象的概念

对象(Object)是对象存储中的基本数据单元,每个对象由数据本身、元数据和唯一标识符(Object ID)组成。元数据包含了关于数据的信息,如创建时间、数据类型等。

2、存储空间(Bucket)

存储空间是用于存储对象的容器,所有的对象都必须隶属于某个存储空间。设置和修改存储空间属性用来控制地域、访问权限、生命周期等。

3、 OSS协议

通过RESTfulAPI、SDK或Web界面进行OSS管理和访问。用户可以通过编程接口上传、下载、管理和查询存储的对象。

4、S3协议

Amazon Simple Storage Service(Amazon S3,简便存储服务)是亚马逊公司最早推出的云服务之一,经过多年的发展,S3 协议在对象存储行业事实上已经成为标准。S3 提供一个 RESTful API以编程方式实现与该服务的交互。

2

金融使用OSS系统情况介绍

图片

星图金融从2016年开始,各业务线的系统,陆续开始使用集团统一提供的OSS存储服务。截至2024年初,金融在集团OSS系统上的数据超300 TB,文件对象数超33亿个,使用的业务系统超150个,OSS帐号数超300个。

在使用场景上,包括各种类型的业务文件,如会员核身照片、业务协议/合同文件、图片文件、电话录音文件、网页静态文件等。

金融由于降本增效的需求,于2024年启动了金融机房独立区域建设的项目群,综合考虑经济性与稳定性,在金融机房独立区域搭建金融OSS独立服务,不与集团原OSS系统共享存储、域名等。

金融OSS系统,支持海量数据/多协议访问/混合负载/混合云场景的应用,由集团完全自主研发,兼容适配国产服务器和操作系统。系统对高性能硬件(如SSD)暂不支持,不能发挥硬件性能,目前主要用于苏宁体系的运用场景,主要是大容量、小文件、性能要求不高的场景(延时在10ms级别)。

另外,本次搭建金融OSS独立服务,在系统功能上也做了一些升级,主要有以下几方面:

1、多协议互通,支持OSS、S3、NFS、CIFS、FTP、SFTP等协议访问。

2、完善的生命周期管理,支持自动分层,可以纳管第三方对象存储,NAS,蓝光、公有云存储等。

3、支持EC,大比例EC与副本性能相当,得盘率更高。

4、支持多版本、写保护、压缩、自定义元数据等高级特性。

5、账号和bucket,以及对应的权限管理更灵活。

6、独立的迁移平台,迁移效率更高。

7、管理平台告警、监控等手段更完善。

3

 金融OSS系统产品架构情况介绍

图片

金融OSS系统的产品架构情况如下:

图片

图:总体架构

  • 接入层,包括对象网关、NFS网关、FTP/SFTP网关、Samba网关。

  • 主控模块,主要提供卷管理和全局配置管理,并提供Leader选举和服务发现功能。

  • 元数据模块,主要提供对象和文件协议互通的元数据的存储和管理

  • 数据存储引擎,主要提供数据面的存储和管理。

以下简单介绍几个核心模块:

1、接入层

图片

图:接入层网关架构

网关实现了具体协议。不同的协议配置不同的网关,但将数据操作层面抽象成统一的库,用于和实际元数据和数据交互。


2、主控模块

图片

图:主控架构

主控包括两大核心的管理:一个是master提供资源、池、配置的全局统一管理;另一个是volume server(vm)提供卷的管理。


3、 元数据模块

图片
元数据整体架构分为三个部分:元数据客户端、元数据服务端、元数据存储引擎。

元数据客户端:

MDS客户端以package的方式给文件和对象网关提供元数据操作接口。

元数据服务端:

MDS服务端包括grpc server、文件/对象元数据操作语义、缓存层、切换模块、同步模块、监控模块和配额管理模块

元数据存储引擎:

元数据存储引擎使用分布式KV存储-Tikv作为底座,负责元数据的存储持久化。


4、数据存储引擎

图片

图:数据角色架构

数据存储引擎是VolumeServer(VS),其主要任务是将业务数据持久化到磁盘,是整个系统架构的最终落地。围绕卷管理思路,VS实现了物理卷(PV)的基本管理。

4

金融OSS系统迁移实践

图片

金融OSS迁移项目,在各方面人员的努力下,经过两个多月的项目实施工作,基本上完成了业务系统切换和历史数据迁移工作。在实施过程中,也发现了一些问题,主要分为:新版本对老版本兼容性不足、业务系统改造不完全、人工配置错误等问题。总结下来,可以在以下方面做些改进:

1、加强测试验证工作。应将业务系统的核心业务场景,全部做功能回归测试,且要模拟新老集群并行使用场景,并且要使用历史数据进行测试,这样可避免之前遇到的大部分兼容性问题。虽然之前项目管理上也是这样要求的,但由于团队人员变更、项目工期等原因,没有完全的贯彻执行。另外,应充分调研和收集业务系统使用OSS的特殊场景,再对OSS系统提出更细化的功能性需求,减少迁移问题的发生。

2、提高OSS系统的产品质量。在试运行的过程中,OSS系统监控告警功能,在特殊场景下,导致OSS服务中断,影响了业务使用。另外应对OSS系统进行全面的压力测试(OSS系统只测试了标准化功能,新开发的SFTP功能没做),也可避免迁移过程中出现的产品质量问题。

3、加强运维管理。除依赖集团技术人员之外,金融内部技术人员需要参与到OSS运维服务中,对系统的配置参数、变更内容、操作手册、验证方案、回滚策略进行详细评审和复核,也可避免或减少迁移过程出现的人为操作失误问题。

5

未来发展方向

图片

金融OSS系统目前已基本平稳运行,但随着业务的使用,集群上的文件数量也在不断增加,占用了较多服务器资源。系统上有很多历史文件访问频率低,或者有些文件业务上不需要再保留,所以存储空间治理是未来重点工作方向,需要开发相关的工具,并制订相关的管理制度和流程,确保存储资源合理使用。

另外,金融OSS系统做为金融基础服务,使用场景非常广泛,其重要性不言而喻,当前是节点级高可用方案(即单台服务器故障不会影响业务使用),但如果发生机架级或者机房级故障时,则会对业务有严重影响。因此,结合业务的使用场景,以及投入成本等多方面因素,规划和实施合理的灾备方案,也是未来主要的发展方向。

往期推荐:

逆势环境下,多元化激励引爆组织活力
极简构建研发项目价值定义及准入模型
IT降本增效,如何助力企业经营低迷下的内部突围
本期编辑|小萝卜
特别敬告|欢迎转载,转载请注明出处

继续滑动看下一个
苏项荟
向上滑动看下一个