地震数据处理系统和方法与流程

文档序号:11947299阅读:494来源:国知局
地震数据处理系统和方法与流程

本发明涉及地震勘探领域,特别涉及一种地震数据处理系统和方法。



背景技术:

在实际地震数据处理中,往往需要运行不同种类不同版本的地震数据处理软件,其中每个地震数据处理软件的运行又分别依赖于与各自兼容的操作系统和运行所需要的其他环境条件。

然而,在实际操作中往往不同的服务器运行不同的操作系统,从而使得软件在运行有其兼容的操作系统的服务器上可以运行,但是在运行其不兼容的操作系统的服务器上无法运行,这样势必会导致软件在某些服务器上无法直接运行,造成了使用不便和资源浪费。

为了解决上述问题,目前通常是采用虚拟机技术,即,通过生成新的虚拟镜像,在这个独立虚拟系统里面安装软件、运行软件、以及保存运行所得的数据。然而,虚拟机技术所虚拟出的系统是整个操作系统,对于轻量应用并不十分适用。

例如,在地震数据研究领域,多数的地震数据处理软件属轻量应用,对于这种应用仅需要一个完整可用的运行环境,而非整个操作系统,如果使用虚拟机技术必然造成资源的浪费。进一步的,由于虚拟机技术应用时所依赖的物理CPU、内存和硬盘一般都是硬件级别的,其资源分配是固定的,一般无法进行资源流动,这样势必会造成资源的闲置和浪费;另外,虚拟机的部署、运行通常都需要较长的时间,部署过程耗时长。

针对目前通过虚拟机技术对地震数据进行处理所存在的占用资源多、部署耗时长、使用不方便的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种地震数据处理系统和方法,以实现软硬件资源的分离,从而解决通过虚拟机技术进行地震数据处理所存在的占用资源多、部署耗时、使用不方便的技术问题。

本发明实施例提供了一种地震数据处理的系统,包括:软件资源池,用于通过应用Docker容器化技术提供地震数据处理软件和所述地震数据处理软件运行所需要的环境;硬件资源池,用于提供所述地震数据处理软件运行所需要的硬件资源;操作系统层,用于为所述的软件资源池提供应用Docker容器化技术所需要的操作系统;资源调度管理层,用于为所述的地震数据处理软件分配运行所需的硬件资源。

在一个实施例中,所述地震数据处理软件运行所需要的环境,包括以下至少之一:与所述地震数据处理软件兼容的操作系统,所述地震数据处理软件运行所需要的数据包,和所述地震数据处理软件运行所需要的环境参数配置。

在一个实施例中,所述软件资源池包括:镜像模块,用于将所述地震数据处理软件和所述软件运行所需要的环境资源打包生成地震数据处理软件镜像文件,并保存为镜像文件,保存在软件资源池中;实例化模块,用于对所述镜像文件进行实例化生成容器,其中,地震数据处理软件运行在所述容器中。

在一个实施例中,所述硬件资源池包括多个服务器。

在一个实施例中,资源管理调度层包括:服务器状态监控模块、服务器分配模块和存储模块,其中:所述服务器状态监控模块,用于监测所述多个服务器中各个服务器的资源耗用情况;所述服务器分配模块,用于根据所述多个服务器中各个服务器的资源耗用情况,通过算法分析为所述地震数据处理软件镜像文件分配服务器;所述存储模块,用于以时间戳的方式保存所述服务器的资源耗用情况和为所述地震数据处理软件镜像文件分配服务器的分配信息。

在一个实施例中,所述资源管理调度层还包括告警模块,用于从所述服务器状态监控模块获取每个服务器的资源耗用情况,并根据所述多个服务器中各个服务器的资源耗用情况对所述多个服务器进行判断,对判断为负载超出预设负载阈值或出现故障的一个或多个服务器发出告警。

在一个实施例中,所述Docker容器化技术所需要的操作系统包括以下至少之一:RedHat系统、Ubuntu系统和Centos系统。

在一个实施例中,所述的服务器状态监控模块,具体用于在所述多个服务器中的各个服务器上配置名为Agent的常驻进程,通过所述常驻进程获取每个服务器上的资源耗用情况。

在一个实施例中,所述服务器分配模块,用于根据所述服务器的资源耗用情况和所述地震数据处理软件镜像文件实例化所需要的硬件资源,通过大数据分析算法为所述地震数据处理软件镜像文件分配进行实例化所需要的服务器。

本发明还提供了一种地震数据处理的方法,包括:布置多个服务器以组成硬件资源池,并在所述多个服务器中各个服务器上配置常驻进程,其中,所述常驻进程用于获取所述多个服务器中各个服务器的资源耗用情况;通过Docker容器化技术对待运行的地震数据处理软配置所述地震数据处理软件运行所需要的环境,并打包生成地震数据处理软件镜像文件,并将所述镜像文件保存在软件资源池;为所述镜像文件分配硬件资源池中的服务器;根据所述服务器资源耗用情况和所述地震数据处理软件镜像文件实例化所需要的硬件资源,通过大数据分析算法分配服务器;在所述服务器上将所述的地震数据处理软件镜像文件进行实例化以生成容器,在所述容器中运行所述的地震数据处理软件以对地震数据进行处理。

在一个实施例中,所述地震数据处理软件运行所需要的环境包括以下至少之一:与所述地震数据处理软件兼容的操作系统,所述地震数据处理软件运行所需要的数据包和所述地震数据处理软件运行所需要的环境参数配置。

在一个实施例中,所述通过大数据分析算法确定分配服务器,包括:通过运行服务器健康状态公式,得到所述多个服务器中各个服务器的运行健康度;根据所述服多个服务器中各个务器的运行健康度,确定符合要求可分配的服务器。

在一个实施例中,所述服务器健康状态公式为:

Hi=(X1*F1+X2*F2+X3*F3...+Xt*Ft...+Xn*Fn)/n,

其中,Hi为第i个服务器的运行健康度,Xt为所述第i个服务器中的第t类运行资源的运行状态转换数值,Ft为所述第i个服务器中的第t类运行资源的占比,n为所述第i个服务器中的运行资源种类数,t为从1到n间的任意整数。

在上述实施例中:应用Docker容器化技术,通过软件资源池,配合硬件资源池、操作系统层将待运行的地震数据处理软件和其运行所需要的环境资源打包生成镜像文件并保存在软件资源池,实现了软硬件资源的分离;由于采用了Docker容器化技术,相比于现有的虚拟机技术,只将软件和软件运行的环境打包生成镜像保存,不需要虚拟整个系统,工作运行时占用的资源减少,运行的速度得到提高,部署所需时间更短。通过上述系统和方法解决了现有的虚拟机技术使用时占用资源多、部署耗时、使用不方便,不适用于地震数据处理软件的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1是本发明实施例的地震数据处理系统的结构示意图;

图2是本发明实施例的地震数据处理系统中的资源调度管理层的结构示意图;

图3是本发明实施例中具有告警功能的地震数据处理系统的资源调度管理层的结构示意图;

图4是本发明实施例的地震数据处理方法的处理流程图;

图5是本发明实施例的通过加入新服务器更新扩展硬件资源的处理流程图;

图6是本发明实施例的通过部署新软件更新扩展软件资源的处理流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

本发明实施例提供了一种地震数据处理系统,以下所使用的术语“模块”可以是实现预定功能的软件和/或硬件的组合。图1是本发明实施例的地震数据处理系统的结构示意图,如图1所示,可以包括:软件资源池101、硬件资源池102、操作系统层103和资源调度管理层104,下面对该结构进行说明。

软件资源池101,用于通过应用Docker容器化技术提供地震数据处理软件和所述地震数据处理软件运行所需要的环境;

硬件资源池102,用于提供所述地震数据处理软件运行所需要的硬件资源;

操作系统层103,用于为所述的软件资源池提供应用Docker容器化技术所需要的操作系统;

资源调度管理层104,用于为所述的地震数据处理软件分配运行所需要的硬件资源。

在上述实施例中,主要是考虑到现有的采用虚拟机技术进行地震数据处理时候,由于虚拟机技术自身的局限和问题,往往会存在占用资源多、部署耗时、使用不方便等问题,为此,在本例中提出了一种基于Docker容器化技术的地震数据处理方法,Docker是一个应用容器引擎,Docker容器化技术可以包括:镜像容器管理、资源配额与度量、进程隔离与安全和硬件兼容,该技术允许开发者将应用软件以及该软件运行所需的环境资源打包到一个可移植的容器中,然后发布到某个符合要求可分配的服务器上,实现该软件的虚拟化运行。

在实际的地震数据处理中,相较于虚拟机技术,使用Docker容器化技术的优势主要在于,多数用于地震数据处理的软件大多属轻量应用,仅需要一个完整可用的运行环境,而非整个操作系统,虚拟机技术虚拟出来的整个系统,而且要求软件运行所需的资源环境都是固定的不可以流动的,从而容易造成资源的浪费,然而,Docker容器化技术基于自身的技术特点只需要将应用软件和软件运行所需的环境资源打包到一个可移植的容器中,就实现软硬件分离,运行时按需要将容器分配到某个符合要求的服务器上,实现软件的虚拟化运行即可,这样就达到了占用资源少、部署简单便捷的效果。进一步的,Docker容器技术可以解决虚拟机技术所解决的兼容性问题。在部署应用软件时,仅需配置一次软件运行所需的环境,并将所需要的环境和软件一起保存为镜像,就可以在后期运行不同操作系统的服务器上以容器的方式运行该软件,使用起来较为方便,且运行速度快。在软件运行的时候,一个容器就是一个单独的运行环境,与其他容器完全独立,互不干扰,从而可以解决资源争用的问题,同时,通过资源调度管理层的分配和管理,保证了资源可以按照需要进行合理和有效的分配。

在上述实施例中,为了保证地震软件的正常运行,提供的所述地震数据处理软件运行所需要的环境,可以包括以下至少之一:与所述地震数据处理软件兼容的操作系统,所述地震数据处理软件运行所需要的数据包,和所述地震数据处理软件运行所需要的环境参数配置。然而,值得注意的是,上述所列举的运行所需要的环境仅是一种示意性描述,是为了更好地说明本发明,然而,在实际执行的过程中,还可以包括软件运行所需的其它环境,本申请对此不作限定。

上述实施例中,与地震数据处理软件相兼容的操作系统可以是在地震数据处理中能运行Docker容器的操作系统,这些系统可以是由操作系统层103提供的不同版本不同类型的操作系统,例如,可以包括:RedHat系统、Centos系统和Ubuntu系统。其中,RedHat系统是用Linux核心构架的一种操作系统,由于它具备相对较好的图形界面,无论是安装、配置还是使用都十分方便,而且运行稳定。Centos系统和RedHat系统都是基于同样的源代码编译出来的。然而,值得注意的是,上述所列举的系统仅是一种示意性描述,是为了更好地说明本发明,然而,在实际执行的过程中,还可以包括其它类型的系统,可以根据实际需要选取,本申请对此不作限定。

上述实施例中,地震数据处理软件运行所需要的数据包可以是本地服务器中有的数据包和本地服务器中没有的数据包,其中,本地服务器中没有的数据包可以从公有仓库获得,其中,公有仓库可以是互联网上的公有资源库。

上述实施例中,地震数据处理软件运行所需要的环境参数配置可以是手动设置或自动生成的软件运行所需的环境参数配置。

考虑到在本发明实施例需要将软件和硬件资源是分隔离来,因此地震数据处理软件可以通过镜像和实例化的方式生成和存储,为此,上述软件资源池101可以包括:镜像模块,用于将地震数据处理软件和该软件运行所需的资源环境打包生成地震数据处理软件镜像文件,并保存在软件资源池中;实例化模块,用于对所述的镜像文件进行实例化以生成容器,其中,地震数据处理软件运行在所述的容器中。即,将地震数据处理软件和地震数据处理软件运行所需要的环境打包生成镜像文件,并在需要运行软件的时候,将镜像文件中的软件进行实例化,以便在容器中运行该软件对地震数据进行处理。

上述实施例:应用Docker容器化技术,通过软件资源池101配合硬件资源池102、操作系统层103将待运行的地震数据处理软件和其运行所需要的环境资源打包生成镜像文件并保存在软件资源池101中,从而实现了软硬件资源的分离。相比于现有的虚拟机技术,本实施例采用Docker容器化技术只需要将待运行软件和软件运行所需要的环境打包生成镜像保存,而不需要重建整个系统,使得地震数据处理所需占用的资源减少,且有效提高了地震数据处理软件的运行速度。

具体实施时,为了使得多个软件可以同时运行,以提高数据处理的效率,在本实施例中,上述硬件资源池102可以包括多个服务器,从而达到对多个软件的并行处理,进一步的,多个服务器的处理能力也可以是不同的,在实际执行的时候,就可以根据每个软件所需的硬件资源条件选择合适的服务器运行,当然也可以根据服务器处理能力的不同,在不同的服务器分配不同数量的待处理数据或者待运行软件。

考虑到系统中设置了多个服务器,在执行的过程中,就会涉及到服务器的分配问题,为了使得服务器的分配更为合理,以提高资源的利用率,在一个实施例中,如图2所示,资源调度管理层104可以包括:服务器状态监控模块201、服务器分配模块202和存储模块203,其中:

服务器状态监控模块201,可以用于监测多个服务器中各个服务器的资源耗用情况;

服务器分配模块202,可以用于根据多个服务器中各服务器的资源耗用情况和待运行地震数据处理软件镜像文件实例化所需要的硬件资源,通过算法分析为地震数据处理软件的镜像文件分配符合要求的服务器;

存储模块203,可以用于以时间戳的方式保存服务器的资源耗用情况和为地震数据处理软件镜像文件分配服务器的分配信息。

即,通过各个服务器当前的耗用情况进行服务器的分配,例如:可以将当前资源耗用最小的服务器分配给当前待执行的地震数据处理软件,也可以将当前所剩资源大于当前待执行的地震数据处理软件中所剩资源最小的服务器分配给当前待执行的地震数据处理软件,具体地分配策略可以根据实际需要选取,本申请对此不作限定。

考虑到在具体实施过程中为了准确制定分配策略,需要时刻了解每个服务器的资源耗用情况,本实施例中的服务器状态监控模块201可以在每个服务器上都配置一个名为Agent的常驻进程,通过该常驻进程就可以实时获取各个服务器上资源的耗用情况。

上述服务器分配模块202具体地,可以通过大数据分析算法确定分配策略,然后,按照分配策略为地震数据处理软件镜像文件分配符合要求并可以运行的服务器。其中,上述的通过大数据分析算法确定分配策略可以包括:通过运行服务器健康状态公式,得到所述多个服务器中各个服务器的运行健康度;根据所述多个服务器中的各个服务器的运行健康度,确定符合要求可分配的服务器。

考虑到在具体实施过程中存储模块203主要是存储的实时的服务器资源耗用情况和实时的服务器分配信息,所存储的主要信息大都与时间有密切的联系,为了提高存储或读取的效率,存储模块203可以采用NoSQL(Not Only Structured Query Language,非关系型)数据库,并以时间戳的方式保存服务器各个时间段的资源耗情况、各镜像实例化需要的硬件资源、分配给每个容器的资源情况、镜像更新与容器启动关闭等事件记录。其中,时间戳方式是在所需记录存储的信息前冠以时间戳,以体现所记录存储的信息在每个时间段里的状态,方便后期分析使用。上述非关系型数据库存储数据的方式为列式存储,通过这种存储方式可以高效地存储或读取以时间戳方式保存的信息。

在一个实施例中,为了及时发现并对有问题或故障的服务器进行告警,如图3所示,资源管理调度层104还可以包括分析判断模块204和告警模块205,其中,分析判断模块204用于从服务器状态监控模块201获取服务器的资源耗用情况,并对获取的资源耗用情况进行分析,并判断服务器是否过载或故障;告警模块205用于对被判断为负载超出预设负载阈值或出现故障的一个或多个服务器发出告警。在本实施例中,通过在资源调度管理层中设置了分析判断模块204和告警模块205,从而可以对负载超出预设负载阈值或出现故障的服务器发出告警,以保证整个系统运行的稳定和安全。

基于同一发明构思,本发明实施例中还提供了一种地震数据处理方法,由于地震数据处理方法解决问题的原理与地震数据处理系统相似,因此涉及到一些相同的技术和原理在此不再赘述。如图4所示,该地震数据处理方法可以包括以下步骤:

步骤401:布置多个服务器以组成硬件资源池,并在所述多个服务器上配置常驻进程,其中,所述常驻进程用于获取所述多个服务器中各个服务器的资源耗用情况;

步骤402:通过Docker容器化技术将地震数据处理软件和所述地震数据处理软件运行所需要的环境打包生成地震数据处理软件镜像文件,并将所述镜像文件保存在软件资源池;

步骤403:为所述镜像文件分配硬件资源池中的服务器;

步骤404:在分配的服务器上将所述镜像文件进行实例化以生成容器,在所述容器中运行所述地震数据处理软件以对地震数据进行处理。

在上述实施例中,为了保证地震软件的正常运行,提供的所述地震数据处理软件运行所需要的环境,可以包括以下至少之一:与所述地震数据处理软件兼容的操作系统,所述地震数据处理软件运行所需要的数据包,和所述地震数据处理软件运行所需要的环境参数配置。然而,值得注意的是,上述所列举的运行所需要的环境仅是一种示意性描述,是为了更好地说明本发明,然而,在实际执行的过程中,还可以包括软件运行所需的其它环境,本申请对此不作限定。

上述实施例中,与地震数据处理软件相兼容的操作系统可以是在地震数据处理中能运行Docker容器的操作系统,这些系统可以是由操作系统层103提供的不同版本不同类型的操作系统,例如,可以包括:RedHat系统、Centos系统和Ubuntu系统。然而,值得注意的是,上述所列举的系统仅是一种示意性描述,是为了更好地说明本发明,然而,在实际执行的过程中,还可以包括其它类型的系统,可以根据实际需要选取,本申请对此不作限定。

上述实施例中,地震数据处理软件运行所需要的数据包可以是本地服务器中有的数据包和本地服务器中没有的数据包,其中,本地服务器中没有的数据包可以从公有仓库获得,其中,公有仓库可以是互联网上的公有资源库。

上述实施例中,地震数据处理软件运行所需要的环境参数配置可以是手动设置或自动生成的软件运行所需的环境参数配置。

具体实施时,为了合理、有效地分配资源,本发明实施例通过大数据分析算法确定分配策略,可以包括:通过运行服务器健康状态公式,得到服务器运行该容器的健康度;根据服务器运行该容器的健康度,确定符合要求可分配的服务器。

上述施例中所使用服务器健康状态公式为:

Hi=(X1*F1+X2*F2+X3*F3...+Xt*Ft...+Xn*Fn)/n,

其中,Hi为第i个服务器的运行健康度,Xt为所述第i个服务器中的第t类运行资源的运行状态转换数值,Ft为所述第i个服务器中的第t类运行资源的占比,n为所述第i个服务器中的运行资源种类数,t为从1到n间的任意整数。

考虑到具体使用该公式时,上述的服务器中的运行资源主要可以是服务器的性能资源,例如可以包括:服务器的CPU、服务器的硬盘资源和服务器的网络资源等。不同实施情况下,可以根据具体情况调整其中第t类资源在该服务器健康度中的占比值Ft

在实际使用的过程中,考虑到软件类型的增多,或者是待处理地震数据的增多,可以设置对地震数据处理系统的扩展,这种扩展可以是硬件层面的扩展,也可以是软件层面的扩展,下面分别对这两种扩展进行说明:

1)通过加入新服务器对硬件资源进行更新扩展,如图5所示,可以包括:对新购置的服务器安装兼容的操作系统,并通过资源管理调度层在新购置的服务器上部署Docker组件及服务器状态监控模块的Agent监控进程,从而将该新购置的服务器加入到硬件资源池中;然后,对新加入硬件资源池的服务器的运行状况进行检查:对于经检查符合分配条件的服务器,将待运行地震数据处理软件的镜像文件分配到该服务器上进行实例化以生成容器,并监控其运行情况;对于不符合分配条件的服务器,判断其是否故障,如果无故障,则重新对该服务器的运行状况进行检查,如果有故障,则将新加入的服务器从硬件资源池中删除,并对该服务器进行修复,待故障被修复后,再重新将该服务器加入到硬件资源池中。

2)通过新部署软件对软件资源进行更新扩展,如图6所示,可以包括:根据新部署的软件对操作系统的要求,从操作系统层中找到与该新部署软件兼容的操作系统;然后,再根据新部署软件的运行所需要的其他环境资源,加入运行所需要的其他环境条件。基于分配的操作系统和运行所需的其他环境资源,检测软件的运行效果是否达到预设要求,如果未达到,则继续补充该软件运行所需要的环境资源直到软件的运行效果可以达到预设要求,如果可以达到,则将当前的运行环境和该软件打包生成镜像,同时将该镜像上传并保存在软件资源池中。

上述实施例:应用Docker容器化技术,通过软件资源池,配合硬件资源池、操作系统层将待运行的地震数据处理软件和其运行所需要的环境资源打包生成镜像文件并保存在软件资源池,实现了软硬件资源的分离;通过资源调度管理层,根据所述多个服务器中各个服务器上的资源耗用情况和所要运行的地震数据处理软件镜像文件实例化运行所需要的硬件资源,将地震数据处理软件的镜像文件分配到符合要求可运行的服务器上,进行实例化以生成容器,实现合理、有效地利用资源;由于采用了Docker容器化技术,相比于现有的虚拟机技术,本发明实施例只将待运行软件和软件运行所需的环境打包生成镜像并保存,不需要虚拟整个系统,工作时占用的资源减少,运行的速度得到提高;另外还通过在存储模块采用NoSQL数据库和时间戳保存方式提高了相关含时间信息的数据存储或读取的效率。通过上述系统或方法解决了现有的虚拟机技术使用时占用资源多、部署耗时、使用不方便,不适用于地震数据处理软件的技术问题,达到了在实现软硬件资源分离的同时,占用资源小,运行速度快,运行环境独立互不干扰,有效合理利用资源的技术效果。

显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1