我国地震监测领域历经“中国数字地震观测系统的建设项目”、“数字地震观测网络项目”和“国家地震烈度速报与预警工程”(以下简称预警工程)等重大项目建设,形成了“国家中心-省中心-台站”的三级地震观测业务体系,实现了从模拟观测到数字化、网络化观测的巨大变革。各类观测仪器数量及观测数据量海量增长。以实时观测数据为例,预警工程在全国建设了15899个站点 ①,其中1928个基准站配备了6通道数采,3202个基本站和10769个一般站配备了3通道数采,按照采样频率100Hz、24位计算,每通道每天的数据采集量为100次/秒×24bite/次×(24×60×60)秒/(8×1024)=25.3125MB,经压缩处理后,每个Miniseed数据文件约10MB,日产出文件约1926×6+(3202+10769)×3=53469个,故日增数据量约10MB/个×53469个/1024=522.16GB。前期建设的1066个测震站点,日产出文件3000余个,日增数据量约30GB。地球物理场现有站点972个,在网运行2966套仪器 ②,按照秒采样、5通道计算,日增数据文件14830个,数据量约28GB。因此,在现有网络规模下,我国日新增数据文件为53469+3000+14830=71299个,日新增量为522.16GB+30GB+28GB=580.16GB,年增量为580.16GB×365天≈210TB。上述数据整体呈现单个数据文件MB级、文件及数据增量庞大的特点。
① 中国地震局. 2018. 国家地震烈度速报与预警工程初步设计方案和投资概算报告.
② 国地震局监测预报司. 2023. 地震监测数据质量分析报告.
中国地震台网中心(以下简称台网中心)作为国家中心,全局全量汇聚存储管理上述海量观测数据,目前已建成一套集中式存储(曾薇等,2011)和一套分布式存储系统,可用总容量约7PB,承载了全国测震(含预警)及地球物理场自2008年以来的大部分原始观测数据和产品数据。同时,基于大数据等信息技术建设了地震数据管理系统,实现了地震观测数据实时或准实时汇聚存储管理,面向全国提供地震数据服务,并开展了一系列应用探索(陈通等,2022)。
1 分布式存储系统建设模式研究 1.1 分布式存储系统关键技术分布式存储和集中式存储、蓝光存储、磁带库等均属于目前主流的数据共享存储方式。分布式存储是将大存储容量的机架式服务器作为存储介质,通过网络实现数据传输与交换,具有服务多元、统一管理、易于扩容等优势。目前市场上的分布式存储系统多是基于Ceph技术(陆华成,2023)实现的。Ceph技术是一种开源分布式底层存储技术,具有良好的可扩展性,支持PB级数据存储,同时与OpenStack、Kubernets等技术有较好的兼容适配能力,在资源弹性扩容、数据自动容错、自动负载均衡等方面均有出色表现。Ceph技术的去中心化架构有效避免了其他共享存储存在的管理节点单点故障问题。
分布式存储支持块、文件和对象存储等多种服务协议和方式。块存储(谭文贵等,2017)主要面向主机提供本地磁盘存储服务,支持SCSI、iSCSI(吴怡之等,2015)等协议,还可以通过RBD协议直接对接虚拟机服务(洪亮,2017)。文件存储主要面向用户提供共享文件服务,具备完善的目录树结构,可读性强,用户可便捷地在不同主机访问同一存储空间,便于数据共享,目前较常用的协议有NFS(蔡康宇,2022)、CIFS、SMB和FTP(郑韵等,2023)等。对象存储基于S3协议(李敏达,2022),面向应用提供存储接口服务,既方便共享又可快速访问,弥补块和文件存储的不足,适合于海量数据(杨力等,2023)和非结构化数据(田峰,2021)存储,同时可通过S3接口对接蓝光存储,实现从温热数据到冷数据的无缝衔接。
1.2 分布式存储系统架构设计分布式存储系统主要依靠网络进行数据传输以及系统内部数据调度、同步等,网络性能直接决定了存储系统的服务性能,通过规划不同IP地址段进行网络隔离和识别,有效保证存储系统稳定可靠。服务器分为管理节点和存储节点,管理节点负责系统整体资源的协调统筹;存储节点需配置尽可能多的大容量数据存储盘存储数据,并按需配置一定数量的固态硬盘,用于缓存加速、元数据管理、索引数据管理等。通过在服务器上部署分布式存储软件,搭建分布式存储系统,实现块、文件、对象等多种存储资源池及存储服务,通过选择恰当的存储协议,对接上层地震业务应用,实现存储资源的最大化使用。分布式存储系统整体架构如图 1所示。
为提供更好的服务体验,提高资源的使用效率,应考虑数据的分级分类存储,合理划分存储资源。热数据可选用机械硬盘或固态硬盘(如SATA SSD或Nvme SSD),提升硬盘读写性能。温数据可选用机械硬盘,提升存储介质性价比,通过S3协议将其存储至蓝光存储介质中,以冷数据永久归档保存,降低机房能耗。同时,还需利用高性能固态硬盘搭建缓存加速池,用于存储元数据信息(块和文件存储)、索引信息和小文件缓存(对象存储),提高数据读写速率。
硬盘需在存储系统中做冗余配置,确保数据安全可靠。三副本方式在读写性能、可靠性、故障域范围等方面优于EC纠删码方式,但实际业务中还需综合考虑空间利用率、硬件成本等因素。缓存加速池和块存储对访问性能要求较高,采用三副本方式为宜;文件存储和对象存储对存储空间的需求更大,可采用EC纠删码方式。
台网中心须将实时汇聚的数据进行缓存、转发和在线快速处理,需要存储系统7×24h“零”时延运转,一旦出现拥塞将会导致当前及往后一段时间的数据丢失,按照数据7天高速缓存、三副本存储计算,对于数据实时处理需求,所需热数据缓存空间约580GB×7天×3副本=12TB;按照数据在线3个月计算,所需温数据存储空间约580GB×92天×3副本=1.6PB。此外还须将原始数据以“台网. 台站. 仪器. 测项. 日历天”的文件方式进行存储管理,能够进行按需快速准确检索,该部分数据可通过EC纠删码方式分别存储到文件存储和对象存储中,满足不同业务应用,按照冗余25%存储空间计算,年须存储量约210TB/0.75=280TB。
1.4 分布式存储系统网络连接每台服务器配置3块双端口万兆光纤网卡。交叉选用不同网卡上的两个网口,采用lacp链路聚合模式绑定为3组Bond(mode=4),并将网络划分为对外服务网络(网关网)、管理网络和内部网络(公共网和集群网),实现网络链路的冗余设计,扩大网络带宽,分担网络流量,避免单链路故障,提升系统稳定性。服务器上的端口使用情况、绑定情况和与交换机连接情况如图 2、表 1所示。
台网中心分布式存储系统基于上述核心要点设计建设,共25台机架式服务器,每台机器配为2颗intel 4214 CPU,192GB内存,6个万兆光口,2块480GB SATA SSD配置raid1模式,安装Centos 7.8操作系统,6块960GB SATA SSD以raid直通模式做加速缓存,28块16TB SATA HDD以raid直通模式做数据盘。其中3台服务器以三副本形式搭建块存储集群,各11台服务器以EC8+2的方式分别搭建文件和对象存储集群。同时,6台万兆接入交换机通过两两堆叠实现数据链路冗余设计,通过SDN技术实现网关网、管理网、公共网和集群网的逻辑隔离。每台服务器上的6个万兆网口分别连接到一台接入交换机中,每台接入交换机再通过40GE端口上联至核心交换机,实现与局域网的互联互通。此外还有一套带外管理网络环境用于管理服务器硬件。详细的组网拓扑如图 3所示。
通过分析各存储方式在高并发环境下的吞吐、延时及带宽等性能指标,验证分布式存储系统设计的合理性。同时,利用真实地震数据,模拟历史数据迁移的业务场景,测试不同存储方式服务效能的差异。
2.2 实验环境及工具实验所用的分布式存储为前文所述系统,集中式存储(NAS)采用磁盘阵列+8GB FC光纤网络部署,分布式存储和集中式存储资源充足。
利用1台机架式服务器存放地震历史数据,该机器配为2颗intel 6248R CPU,512GB内存,2块480GB SATA SSD做raid1,安装Centos 7.8操作系统,10块16TB SATA HDD以raid 5模式做数据盘存放地震数据。该服务器通过万兆网络与两套共享存储系统相连。
压测客户端为6台与数据服务器配置相同的机架式服务器,安装vdbench5.04.07软件压测块存储和文件存储,安装cosbench软件压测对象存储。
2.3 实验结果 2.3.1 分布式存储系统压力测试(1) 块存储:利用3台压测客户端,每台设置128个进程,共并发384个进程。在块存储集群上创建块存储卷、客户端组、访问路径,并挂载到客户端上,选取每秒读写次数(iops)、网络带宽(BW)、网络延时(Lat)为测试指标,分别测试4KB小文件的随机读写性能和1MB大文件的顺序读写性能。测试结果见表 2。
通过存储平台自带的监控插件,查看各网络的带宽峰值数据,记录见表 3。
(2) 文件存储:利用5台压测客户端,每台起128个进程,共并发640个进程。在文件存储集群上创建100TB的NFS协议文件存储并挂载到客户端上,选取每秒读写次数(iops)、网络带宽(BW)、网络延时(Lat)为测试指标,分别测试4KB小文件的随机读写性能和1MB大文件的顺序读写性能。测试结果见表 4。
通过存储平台自带的监控插件,查看各网络的带宽峰值数据,记录见表 5。
(3) 对象存储:利用6台压测客户端,选取每秒钟能操作的对象数量(ops)、网络带宽(BW)、网络延时(Lat)为测试指标,分别测试100万4KB小文件和100万4MB大文件的上传、下载性能。测试结果见表 6。
通过存储平台自带的监控插件,查看各网络的带宽峰值数据,记录见表 7。
选取两天历史地震数据,数据总量1.1TB,共计114500个Miniseed文件,单个文件大小从5MB到18MB不等,平均每个文件约9.6MB。将集中式存储(NAS)和分布式存储系统的文件存储分别挂载至数据服务器,通过复制命令将历史数据由服务器本地拷贝至共享存储。通过系统层iftop网络流量监控服务查看网络带宽情况,记录见表 8。
选取相同的数据,利用java编制基于S3对象存储协议的多线程历史数据迁移程序,实现数据从服务器本地迁移到共享存储中。通过iftop服务和存储系统监控软件查看相关性能指标,记录见表 9。
当线程数为40时,改变阻塞队列大小,记录实验数据见表 10。
本次对块、文件、对象三种存储方式开展压力测试,结果表明:三种存储方式下,网络延时均在150ms以内,处于网络延时的合理范围内。网络延时越大,吞吐能力相对越弱,但吞吐能力与网络带宽间总体满足正相关关系,符合实际业务逻辑。
每个网络的理论网络带宽均为20000Mbps(即2500MB/s)。测试结果中,文件存储网关网的带宽峰值最大,为2250.3MB/s,接近理论带宽上限的90%。测试结果表明存储系统在不同存储方式、文件大小、并发数量等场景中,网络带宽均在理论值的合理范围内,未出现网络拥塞瓶颈。
网关网的带宽峰值普遍高于公共网和集群网,这是由于存储系统缓存池的加速作用,部分数据读写发生在缓存池,当缓存池写入容量超过75%或当系统空闲时,数据才会通过公共网和集群网进行持久化存储,分散了公共网和集群网的网络流量。管理网流量基本维持在较低且平稳的水平,说明存储系统调度管理所需流量较小,且受业务变化影响小。
因此,分布式存储系统的设计较为科学合理。
2.4.2 历史数据迁移归档业务应用本文将历史数据分别拷贝至集中式存储和分布式存储(NFS和S3协议),模拟了地震历史数据迁移归档业务场景。结果表明,集中式存储和分布式存储系统的文件存储带宽使用基本相同,这是因为两者本质上都基于NFS协议。S3对象存储的整体性能表现更优,这是由于S3对象存储简化了文件存储目录树、文件锁等功能,结构更加扁平,适宜存储无需修改的非结构化数据,适合于地震历史数据迁移归档业务。当线程数在40以下时,线程数与网络带宽呈正相关,线程数的增加有效激发了CPU处理能力;当线程数超过40时,网络带宽随线程数的增加而降低,这与数据服务器的CPU性能有关,过多线程导致上下文切换频繁,影响高并发执行速度。内存大小影响了阻塞队列大小的设定,阻塞队列为线程数的2倍左右为佳。由于本次实验仅使用了一台物理机,下一步还可采用不同类型CPU、不同内存大小的数据服务器,来判定CPU和内存对迁移性能的影响。
3 结语台网中心作为国家数据中心,面临着数万台站实时数据的汇聚、存储和管理需求,具有海量数据文件且数据密集增长的特点。分布式存储系统利用低成本的存储服务器搭建,具备高效、集约、一体化、弹性扩展等优势。本文通过实验证明了分布式存储系统的合理性,同时以数据归档业务为例,验证了S3对象存储技术能够在地震业务中发挥优势。地震监测、预警、预报等业务对共享存储的需求各有不同,在实际建设过程中需根据业务合理规划资源使用,充分发挥不同存储协议、存储介质的作用。
蔡康宇, 2022, 基于NFS协议的计算机信息加密存储技术研究, 软件, 43(1): 148-150. |
陈通、韩雪君、马延路, 2022, 时序数据库在海量地震波形数据分布式存储与处理中的应用初探, 中国地震, 38(4): 799-809. |
洪亮. 2017. 开源分布式存储系统Ceph测试及在桌面虚拟化平台中的应用. 硕士学位论文. 广州: 华南理工大学.
|
李敏达. 2022. 基于Amazon S3 API的分布式对象存储系统设计与实现. 硕士学位论文. 武汉: 华中科技大学.
|
陆华成. 2023. 基于Ceph的混合存储性能优化研究. 硕士学位论文. 桂林: 桂林电子科技大学.
|
谭文贵、黄英港、王琨, 2017, 一种基于Ceph提供弹性块存储的研究及实现, 信息通信, (10): 216-217. |
田峰. 2021. 基于HDFS的海量小文件存储系统的研究与实现. 硕士学位论文. 西安: 西安电子科技大学.
|
吴怡之、田双杰、周宇艳, 2015, 基于iSCSI的软件定义存储局域网研究, 计算机科学, 42(增刊Ⅰ): 253~255, 259. |
杨力、陈建廷、向阳, 2023, 基于HBase的工业时序大数据分布式存储性能优化策略, 计算机应用, 43(3): 759-766. |
曾薇、杨乐、谭颖, 2011, 网络存储技术在地震数据存储中的应用, 震灾防御技术, 6(3): 335-342. |
郑韵、王青平、郑超等, 2023, 基于FTP协议的地震应急产品共享系统的设计与实现, 华南地震, 43(2): 77-82. |