张洁 赵玉梅 张红杰 史哲 张卫华 段文晓
DOI:10.16644/j.cnki.cn33-1094/tp.2021.11.004
摘 要: 随着GeoEast软件版本和计算机集群设备的不断更新换代,在地震勘探生产中经常面临着大规模的项目数据迁移,所涉及的数据量往往高达数百TB甚至PB级。而GeoEast传统的交互式迁移方法用时长、效率低、占用磁盘空间大,对项目生产的影响较大,已不能满足日趋频繁的项目迁移需求。文章针对以上现状,结合实际生产场景从GeoEast数据存放结构方式以及迁移手段改进等方面着手,实现不同应用场景下GeoEast项目安全、高效迁移。
关键词: GeoEast; Oracle数据库; 项目迁移; 备份策略
中图分类号:TP311.5 文献标识码:A 文章编号:1006-8228(2021)11-13-03
Research and application of efficient migration technology for GeoEast project
Zhang Jie, Zhao Yumei, Zhang Hongjie, Shi Zhe, Zhang Weihua, Duan Wenxiao
(BGP, CNPC, Zhuozhou, Hebei 072750, China)
Abstract: With the continuous update of GeoEast software version and computer cluster equipment, large-scale project data migration is often faced in seismic exploration and production, the amount of data involved is often as high as hundreds of terabytes or even petabytes. However, the traditional interactive migration of GeoEast takes a long time, has low efficiency and takes up a large amount of disk space, which has a greater impact on project production, and can no longer meet the needs of increasingly frequent project migration. In view of the above current situation, this article starts with the improvement of GeoEast data storage structure and migration methods in combination with actual production scenarios, and realizes the safe and efficient migration of GeoEast projects in different application scenarios.
Key words: GeoEast; Oracle database; project migration; backup strategy
0 引言
GeoEast系統作为国内首款由中国石油集团东方地球物理公司自主研发的大型地震资料处理解释一体化软件[1],从2004年v1.0版本对外发布以来,经过十七年的发展目前已经升级到v3.5版本。而在大规模地震资料处理实际生产使用过程中,常常会面临高性能集群设备的更新换代、操作系统及软件的不断升级与更新、单位设备的调整和调拨、项目更迭需要更换集群及存储等情况。而随着地震勘探精度不断提高、野外勘探数据量不断增大,GeoEast系统中单个处理项目的数据往往有几百TB,大型项目数据量甚至达到PB级。而传统的GeoEast迁移方式需要将整个项目数据打包迁移,单节点单任务交互式的迁移需要耗费大量的时间,一旦失败就要重新开始,对项目生产的影响很大。为了提高GeoEast项目的迁移效率,需要结合生产现状对GeoEast项目数据组成部分进行分析与研究,对数据迁移的方式进行优化与改进,以满足GeoEast海量项目数据高效迁移的需求。
1 存在的问题
目前GeoEast项目传统的迁移方式主要有三种:①使用交互迁移工具DBcontrol;②使用GeoEast主控界面上的Backup/Restore工具;③将原项目数据导出成外部格式(如segy等),再在目标项目中导入数据。这些方式的核心都是将整个项目数据在原机柜进行打包备份,并导出到中间磁盘上,再解压恢复到新机柜上(如图1)。以上方法操作简便、易于上手,有交互界面对用户较为友好,但还存在着以下问题。
⑴ 效率低:地震数据占用空间往往很大,大量数据的备份恢复以及导入导出所用的时间是系统级拷贝时间的数倍,并且传统的迁移方式只能在单节点上单进程操作,耗时长。
⑵ 失败率高:项目数据的备份恢复、导入导出只能通过交互界面进行操作,无法中断,否则迁移失败只能重新开始,且当项目数据量大时成功率很低。
⑶ 浪费空间:项目数据备份或者导出需要额外占用一份磁盘空间,除原有项目占用的磁盘空间外,还需要两倍以上的空间才能完成迁移。
2 高效迁移技术研究
2.1 GeoEast项目数据结构
在GeoEast系统中,用户的项目数据一部分存放在数据库中(一般为数据的信息部分),一部分存放在文件系统中(一般为数据实体文件)。数据的表现形式有两种,一种是主控的数据树,是以项目/工区/测线为结构的,反映了数据库数据的应用逻辑结构。另一种是数据目录结构(也以项目/工区/测线为结构),存储的是数据实体、动态数据。创建一个新项目时,在数据库中就记录了该项目的信息,包括项目的用户、创建时间、道数、采样间隔等信息,同时在磁盘上创建了整个项目的目录结构[2]。GeoEast主控界面上显示的数据信息即为卷头数据库表中的信息,地震数据的道头和数据体较大,分成若干二进制文件存储在磁盘中,道头和数据体的列表则是通过以“.header”和“.dat”为后缀的文本文件存放在项目主盘工区目录下(如图2)[3]。
由此可知,在GeoEast系统中,如果没有数据库中的数据标识信息,实体数据则不能被GeoEast系统所识别;如果没有磁盘部分的实体数据,那么这个项目仅仅在数据库里存在一个标识,无法进行实际使用。因此,如果要实现项目完整迁移,必须同时迁移数据库数据和磁盘数据。
2.2 迁移模式的改进
针对效率低、失败率高的传统迁移方法主要的痛点,我们对项目迁移的模式进行改进,创新了并行分层多任务的新方法(如图3),改进的迁移方法主要有以下几点思路:
⑴ 因项目数据库文件占用空间小,而磁盘文件占用空间大,可将整个项目拆分为数据库迁移和磁盘文件迁移两个部分;
⑵ 仅针对操作较为复杂的数据库部分进行交互式备份和恢复操作;
⑶ 占空间量很大的磁盘文件采用多节点多任务并行的方式进行迁移;
⑷ 编写程序对数据完整性进行检查,保证迁移数据正确、完整;
⑸ 编写程序自动修改与数据库相关的磁盘文件,确保数据库与项目数据内容一一对应。
该方法主要有以下优点。
● 效率高 只将数据量非常小的项目数据库信息做备份、恢复操作,数据量极大的磁盘数据采用多节点并行的方式迁移到目标机柜。
● 节省磁盘空间 由于磁盘数据直接迁移到目标机柜,节省了中间数据额外占用的一份磁盘空间。
● 成功率高 数据库的备份可以使用后台命令在集群上完成,磁盘数据迁移也是在集群上以命令行方式后台执行,一般不会被中断。
2.3 地震数据迁移优化
地震数据因占用磁盘空间大,迁移耗时长,单节点单任务串行的迁移方式会对迁移节点和存储造成很大的压力和负载。在迁移前应该对原磁盘的地震数据进行切分,再分成多节点多进程将切分后的数据同时进行迁移[4]。数据切分的并行迁移方式不仅缓解了单个节点迁移所导致的IO瓶颈,还有效地缩短了迁移时间,提高了迁移效率。在对大数据量地震数据迁移之前,要先对整个项目的地震数据总量进行估算,结合预计的迁移周期,根据真实迁移环境中的硬件情况:如节点数量、网络带宽、目标存储性能等进行合理配置。整个流程分为以下几步:
⑴ 迁移前估算并统计整个项目的地震数据量,并根据数据量分配迁移硬件环境;
⑵ 针对迁移地震数据量预估迁移所需时长,若超出预期值,则对地震数据进行切分;
⑶ 切分成功后多节点多线程并行迁移;
⑷ 迁移完成后自动校验合并后的数据是否完整,目录及文件的属性是否完整;
⑸ 在GeoEast中加载迁移后的地震数据,完成迁移。
多节点多进程并行迁移方法可有效地提高超大地震数据项目的迁移效率。在实际生产中多个项目迁移过程中,在满足性能和成本的双重条件下,还可以根据不同项目数据的访问热度设定规则,将访问频次和热度较高的项目数据迁移至高速硬盘中,保证系统对热点项目数据迁移的响应速度;将访问频次和热度较低的数据自动迁移至低速硬盘中,减少这部分数据在高速硬盘中占用的空间,从而提升整个系统的迁移性能[5],最大化存储的使用价值,高效、安全地完成大数据项目的迁移工作。
3 应用效果
并行分层多任务高效迁移技术,可以支持多种场景的项目迁移:①支持单个项目迁移场景;②支持整组机柜迁移至新机柜场景;③支持整组机柜迁移至已有项目机柜场景。对单个项目迁移情况进行测试,测试情况如表1,从对比结果可以看出,并行分层多任务迁移方式的用时几乎是原迁移方法所需时间的1/5。对整组机柜项目迁移至全新机柜的情况进行测试,将八个项目总数据量为210TB的一组机柜进行迁移,分别采用原有的迁移方式以及创新的高效迁移方式进行对比测试,情况如表2,从对比结果可以看出,使用新迁移方法的效率较原有方法提高了七倍。
4 结束语
随着地震资料采集野外原始数据量的不断增大,GeoEast系统中运行的项目数据量也越来越大,海量数据的项目迁移一直是GeoEast系统运维工作的一个痛点。我们对实际生产中大规模地震数据迁移进行多次测试,摸索出了不同迁移场景下GeoEast项目安全、高效的迁移方法。通过高效迁移技术的应用,目前已完成数百个项目的数据迁移,所迁移的项目软件版本从v2.6跨越到v3.5,涉及到的設备节点超过5000台,迁移数据量达PB级。每次项目迁移在保证项目数据完整、有效的情况下均能高效完成,大大缩短了项目迁移花费的时间,提高了地震处理项目生产效率。该技术适用于目前所有的GeoEast项目迁移场景,具有良好的推广应用前景。此外,针对未来GeoEast系统PostgreSQL数据库环境下的项目迁移方面还有待于我们结合实际生产进一步探索与研究。
参考文献(References):
[1] 徐少波,白雪莲,曾强,林茂春,黄燕,潘焕革.GeoEast地震数据处理解释一体化软件系统[J].石油工业计算机应用,2016.3(24):6-11
[2] 张恩莉.基于GeoEast的解释项目数据库研究与设计[J].信息系统工程,2020.1.
[3] 东方地球物理物探技术研究中心.GeoEast v3.5系统管理手册,2020.
[4] 刘宇.数据迁移部署系统设计与优化研究[D].华南理工大学,2019.
[5] 周阳.云存储中冷热数据的混合冗余方法研究[J].移动通信,2018.8.