一种提高地震数据存储IO性能的方法及装置制造方法及图纸

技术编号:17541314 阅读:72 留言:0更新日期:2018-03-24 18:00
本发明专利技术提供了一种提高地震数据存储IO性能的方法及装置。所述方法通过在地震数据处理计算机集群的各计算节点内存中构建虚拟磁盘用于存储地震数据,并对多个计算节点的内存虚拟磁盘进行分组,建立数据对象‑虚拟磁盘映射链表,实现地震数据存储IO性能的提高。所述装置包括虚拟磁盘划分模块、虚拟磁盘分组模块、映射关系构建模块、目标数据查询模块以及虚拟磁盘管理模块。根据本发明专利技术的方法和装置能够有效的增大存储服务器端缓存空间,减少存储服务器的带宽负载,提高地震数据存储IO性能。

A method and device for improving the performance of IO in seismic data storage

The present invention provides a method and device for improving the performance of the seismic data storage IO. The method adopted in each computing node memory seismic data processing computer cluster virtual disks for storage of seismic data, and virtual memory disk on multiple computing nodes are grouped, establish data object virtual disk mapping list, seismic data storage performance of IO. The device includes virtual disk partition module, virtual disk packet module, mapping relationship building module, target data query module and virtual disk management module. The method and device according to the invention can effectively increase storage server side cache space, reduce the bandwidth load of the storage server, and improve the performance of seismic data storage IO.

【技术实现步骤摘要】
一种提高地震数据存储IO性能的方法及装置
本专利技术涉及石油地震勘探资料数据存储领域,更具体地讲,涉及一种提高地震数据存储IO性能的方法及装置。
技术介绍
当前的石油天然气地震勘探工作中,由于可控震源高效采集技术的推广应用和高密度三维地震勘探的迅速发展,地震观测采样精度越来越高,采集的数据越来越大,采集获得的数据量呈几何指数增长,从50TB到上百TB甚至更大。多业务的并发应用规模对于地震数据存储的访问频率越来越高,大量的并发应用和海量的数据读写访问所产生的I/O(输入/输出,Input/Output)负载成为数据存储的短板。目前,虽然在地震数据处理存储领域引入的面向对象的并行文件系统在一定的程度上提高了存储的性能,但是还存在如下的缺陷:(1)在地震数据处理计算机集群中,所有I/O节点都要为多个计算节点提供I/O服务,在同一时刻,每个I/O节点需要响应来自多个进程的I/O请求。一方面,I/O节点通常将数据存放在磁盘中,定位时间是磁盘访问时间中的重要部分,多个进程对磁盘的竞争读写导致对同一磁盘的访问请求是无序的、随机的,因而各个请求的定位时间可能会很长,磁头在各个请求之间作转换时移动范围很大,频繁的寻道降低了磁盘的输出带宽。另一方面,针对同一I/O节点的多个并发写请求会导致对写缓存资源的竞争,当缓存没有空间时,请求写的进程必须等待,只有当缓存有空间的时候,写操作才能继续进行。因此,当多个应用的并发I/O请求数量急剧增多、各个计算节点同时向存储服务器发出数据读写请求时,多个I/O请求会累积在存储服务器端,造成I/O请求冲突严重,存储服务器超负荷工作,磁盘组的读写聚合带宽不足。(2)地震数据处理所采用计算机集群节点数量多,计算任务量大,重复读写的数据多,计算节点与存储服务器间的通信频繁,计算节点在任务结束后往往会等待I/O数据,限制了计算性能的发挥。
技术实现思路
针对现有技术中存在的不足,本专利技术的目的之一在于解决上述现有技术中存在的一个或多个问题。为了实现上述目的,本专利技术的一方面提供了一种提高地震数据存储IO性能的方法,所述方法通过在地震数据处理计算机集群的各计算节点内存中构建虚拟磁盘用于存储地震数据,并对多个计算节点的内存虚拟磁盘进行分组,建立数据对象-虚拟磁盘映射链表,所述方法还包括以下步骤:在某个计算节点请求访问地震数据时,查询当前计算节点虚拟磁盘是否包含被请求地震数据,如果有,则响应当前请求,如果没有,则向存储服务器发送数据请求;存储服务器接收到数据请求后,查询存储服务器端的数据缓存,如果有,则响应当前请求,如果没有,则根据所述建立的数据对象-虚拟磁盘映射链表查询各组虚拟磁盘,如果有,则将数据请求转发给存储请求数据的虚拟磁盘组并响应当前请求,如果没有,则从存储磁盘中读取数据,节点将请求数据缓存至虚拟磁盘响应当前请求。本专利技术的另一方面提供了一种提高地震数据存储IO性能装置,所述装置包括:虚拟磁盘划分模块,用于在地震数据处理计算机集群的各计算节点内存中划分虚拟磁盘;虚拟磁盘分组模块,用于对所划分的虚拟磁盘进行分组;映射关系构建模块,用于在存储服务器中构建数据对象-虚拟磁盘映射链表;目标数据查询模块,用于获取请求的地震数据;虚拟磁盘管理模块,用于执行存储服务器端发送的地震数据的缓存和回收的命令,申请和释放虚拟磁盘空间占用内存。在本专利技术的提高地震数据存储IO性能装置的一个示例性实施例中,所述获取请求的地震数据的方法可以包括:当某个计算节点请求访问地震数据时,查询当前计算节点虚拟磁盘是否包含被请求地震数据,如果有,则响应当前请求,如果没有,则向存储服务器发送数据请求,查询存储服务器端的数据缓存,如果有,则响应当前请求,如果没有,则根据所述建立的数据对象-虚拟磁盘映射链表,查询各组虚拟磁盘,如果有,则将数据请求转发给存储请求数据的虚拟磁盘组并响应当前请求,如果没有,则从存储磁盘中读取数据,节点将请求数据缓存至虚拟磁盘响应当前请求。与现有技术相比,本专利技术采用在地震数据处理计算机集群的计算节点的大容量内存上构建虚拟磁盘组合,将存储服务器的地震数据存取定向为对计算节点内存的存取,可有效的增大存储服务器端缓存空间,减少存储服务器的带宽负载,提高了地震数据存储IO性能。附图说明通过下面结合附图进行的描述,本专利技术的上述和其他目的和特点将会变得更加清楚,其中:图1示出了根据本专利技术示例性实施例的提高地震数据存储IO性能的方法流程示意图。具体实施方式在下文中,将结合附图和示例性实施例详细地描述根据本专利技术的一种提高地震数据存储IO性能的方法。具体来讲,本专利技术根据地震数据处理计算机集群计算节点数量多,内存读写速度快、容量大的特点,充分利用内存空间容量剩余较多的优势,采用从地震数据处理计算机集群的计算节点内存划分一部分空间作为虚拟磁盘,然后将多个虚拟磁盘组合,作为存储服务器端的I/O缓存扩展。将部分地震数据(例如,常用地震数据)存储在计算节点的内存虚拟磁盘中,当计算节点请求地震数据时,由数据对象-虚拟磁盘映射链表定位获取所请求的地震数据缓存位置。使用计算节点的内存空间存储地震数据,将存储服务器的数据存取定向为对计算节点内存的存取,所请求的地震数据对象就能够直接从一个计算节点的内存虚拟磁盘中传输到另外一个计算节点进行存取操作,从而避免了从存储服务器的磁盘阵列中读写数据,将计算节点与数据对象存储服务器之间的通信转化为计算节点与计算节点端之间的通信,减轻了存储服务器端的IO负载和通信带宽压力。本专利技术的一方面提供了一种提高地震数据存储IO性能的方法。如图1所示,在本专利技术的一个示例性实施例中,所述方法包括:步骤S01,在地震数据处理集群各计算节点的内存中划分出一部分内存空间作为虚拟磁盘。以上,程序代码可以采用静态固定的分配方式在计算节点的内存中划分出一部分内存空间作为虚拟磁盘。地震数据处理集群中对应多个计算节点,每个计算节点的内存中均划分出一个或多个虚拟磁盘,优选的,一个计算节点的内存中划分一个虚拟磁盘。划分的虚拟磁盘空间大小可以自由选择,优选的,虚拟磁盘空间大小不超过对应计算节点内存容量的1/2。步骤S02,将所有计算节点的内存虚拟磁盘进行分组,以固定分组的方式将分组映射到存储服务器上,将该组内的所有内存虚拟存储磁盘空间作为该存储服务器的一种IO缓存扩展方法,由存储服务器统一管理空间分配。以上,构建的内存虚拟磁盘可以存储一部分地震数据,例如,可以将常用的地震数据存储在虚拟磁盘中。对磁盘以固定分组的方式进行划分,例如,可以采用2的n次方(n为整数)划分。步骤S03,在存储服务器中设置数据对象-虚拟磁盘映射链表,该链表中保存了存储服务器上的数据块与每一组计算节点的虚拟磁盘的映射关系。当新的数据对象建立后,在被访问的存储服务器端的数据对象-虚拟磁盘映射链表中会加入新创建的映射关系表项以可以查询定位新的数据对象。数据存取的一致性可以通过分布式文件系统的分布式锁机制来实现。以上,需要说明的是由于地震数据是非结构化数据,存储服务器中的数据是按条带化的形式存放,因此将存储服务器上的数据可以理解为分块数据。数据对象-虚拟磁盘映射链表的建立属于本领域常规技术。步骤S04,当计算节点访问存储的地震数据时候,首先就会查询当前组(本地)节点虚拟磁盘的缓存目录表本文档来自技高网
...
一种提高地震数据存储IO性能的方法及装置

【技术保护点】
一种提高地震数据存储IO性能的方法,其特征在于,所述方法通过在地震数据处理计算机集群的各计算节点内存中构建虚拟磁盘用于存储地震数据,并对多个计算节点的内存虚拟磁盘进行分组,建立数据对象‑虚拟磁盘映射链表,实现地震数据存储IO性能的提高,具体地,所述方法包括以下步骤:在某个计算节点请求访问地震数据时,查询当前组计算节点虚拟磁盘是否包含被请求地震数据,如果有,则响应当前请求,如果没有,则向存储服务器发送数据请求;存储服务器接收到数据请求后,查询存储服务器端的数据缓存,如果有,则响应当前请求,如果没有,则根据所述建立的数据对象‑虚拟磁盘映射链表查询其它组虚拟磁盘,如果有,则将数据请求转发给存储请求数据的虚拟磁盘组并响应当前请求,如果没有,则从存储磁盘中读取数据,节点将请求数据缓存至虚拟磁盘响应当前请求。

【技术特征摘要】
1.一种提高地震数据存储IO性能的方法,其特征在于,所述方法通过在地震数据处理计算机集群的各计算节点内存中构建虚拟磁盘用于存储地震数据,并对多个计算节点的内存虚拟磁盘进行分组,建立数据对象-虚拟磁盘映射链表,实现地震数据存储IO性能的提高,具体地,所述方法包括以下步骤:在某个计算节点请求访问地震数据时,查询当前组计算节点虚拟磁盘是否包含被请求地震数据,如果有,则响应当前请求,如果没有,则向存储服务器发送数据请求;存储服务器接收到数据请求后,查询存储服务器端的数据缓存,如果有,则响应当前请求,如果没有,则根据所述建立的数据对象-虚拟磁盘映射链表查询其它组虚拟磁盘,如果有,则将数据请求转发给存储请求数据的虚拟磁盘组并响应当前请求,如果没有,则从存储磁盘中读取数据,节点将请求数据缓存至虚拟磁盘响应当前请求。2.根据权利要求1所述的提高地震数据存储IO性能的方法,其特征在于,对多个计算节点的内存虚拟磁盘进行分组的方法包括以2的n次方进行固定分组,所述n为整数。3.根据权利要求1所述的提高地震数据存储IO性能的方法,其特征在于,所述构建的虚拟磁盘空间大小不超过所在计算节点内存大小的1/2。4.根据权利要求1所述的提高地震数据存储IO性能的方法,其特征在于,所述方法还包括申请或回收虚拟磁盘空间大小的步骤。5.一种提高地震数据存储IO性能装置,其特征在于,所述装置包...

【专利技术属性】
技术研发人员:李振何光明巫芙蓉杨晓金德刚赵辉王博涛周跃宗
申请(专利权)人:中国石油集团川庆钻探工程有限公司地球物理勘探公司中国石油天然气集团公司中国石油集团川庆钻探工程有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1