陈明俊,李 靖,翟中霞,祖国峰
(河南油田,河南 郑州 450000)
云计算做为一种优秀的IT服务新模式,能够将计算、存储、服务、应用等按需提供给用户。其快速的资源供应和释放,不仅提高了资源利用率,而且极大地降低了企业运维成本。Docker容器技术在一些大型企业的数据库、大数据等云计算应用方面已经得到了应用。
地震资料处理作为油田企业勘探的重要中间环节,为油田勘探和滚动开发提供基础数据资料。在地震资料处理中软硬件资源的分配使用和运维方面,目前基本采用传统方式:一是根据专业软件使用需求,不同软件和版本要求的操作系统及系统设置不同,以资源独占的方式在计算机集群中安装使用,使得计算资源的利用率较低;二是为满足专业软件对特定操作系统发行版本的要求,在新的硬件资源上安装较低的系统内核,影响了硬件性能的发挥。通过对docker容器云技术的研究,构建地震资料处理专业软件容器云环境,不仅可以提高计算机集群硬件资源的利用率,实现处理软件的云化应用及软件部署的自动编排,而且能显著提升软件运行性能。
地震资料处理专业软硬件的传统应用中,由于专业软件对计算机的硬件结构、操作系统有明确的限制,比如geovation2013处理软件对操作系统的要求是:redhat linux5 or 6 (install all packages),同时在系统参数设置上有特定要求,因此在实际应用中,一般一套计算机集群安装一套处理软件开展应用,多套软件配置多套计算机集群硬件系统,常常运用不同软件的技术优势来解决科研生产中的实际问题。这样就存在两个问题,不同软件的使用频率不同会造成计算机系统忙闲不均,使得计算机集群硬件整体使用效率不高;一些新的计算机硬件安装较低版本的系统内核,影响了硬件性能的发挥。
Docker容器技术经历近几年的高速发展已经成为云计算的一种重要模式,与传统虚拟机相比,容器性能更好,资源利用率更高。因此,能否通过构建地震资料处理专业软件容器云环境,隔离软件运行对物理机的直接依赖,来实现计算机集群硬件资源池的共享利用和软件部署的自动编排,同时在宿主机上安装较高版本的系统内核来提升对计算机硬件性能的应用。
图1 传统软件应用模式移植到容器云平台应用模式思路图
基于Docker、Kubernetes及相关的容器生态技术,分别在Intel架构和AMD架构集群上,构建高可用容器云平台,为计算资源的共享和专业软件的自动编排奠定基础。之后,根据地震资料处理专业软件的具体需求,构建具有特定发行版操作系统的专业软件镜像,编写专业软件多进程启动和集群自动化编排的执行程序。实现地震资料处理专业软件在容器云环境中的高效运行。
1)搭建Cobbler集群装机平台,支持以网络启动(PXE)的方式快速建立集群Linux系统环境,本实验针对生产环境以centos7.7mininal轻量级操作系统部署到所有宿主机(计算机集群)上。
2)部署Docker容器运行环境,支持软件以容器的方式运行,为计算机集群硬件资源的共享利用和软件运行环境的完全隔离奠定基础。
3)编写Ansible自动化部署程序,搭建Kubernetes开源容器自动化运维平台,消除容器化应用程序在部署、伸缩时涉及到的手动操作;构建纯三层的Calico数据中心网络,为Docker容器和裸机之间提供高效可控的通信。
4)针对不同专业软件对操作系统的要求和依赖库进行配置、封装,分别构建RedHat Enterprise Linux 4.x、5.x及6.x容器镜像,在此基础上进一步构建支持多进程启动的专业软件容器镜像。容器与虚拟机相比它们被设计成运行单进程,为较好地在容器中模拟一个完整的多进程运行环境,针对不同的专业软件编写具体的启动进程,满足专业软件对特定操作系统发行版的要求。
5)编写专业软件容器自动化部署程序,实现专业软件容器的自动编排。
通过容器化部署,将多套计算机集群资源做成计算资源池,我们可以做到在同一物理主机上同时运行多套专业软件,应用k8s负载均衡技术,显著提升计算资源的利用率。
图2 软件容器云化应用模拟图
基于容器在操作系统层面的虚拟化能力,将低版本操作系统下安装的专业软件做成容器移植到高版本操作系统内核中运行,提高了计算机集群硬件的运行性能。以某区块三维数据分别在硬件配置相同的原有集群和容器集群上利用14个计算节点,每节点16个核进行tikim时间偏移测试。原有集群用时36446秒,容器集群用时28682秒,软件运行效率提升21.3%。
图3 效果测试图
通过将配置好的专业软件及运行环境构建成标准容器,脱离了物理计算机的限制,实现了专业软件在Kubernetes下的统一管理和快速部署,专业软件的启动时间缩短到分钟级,极大地减少了勘探开发专业软件安装、配置和部署的时间,同时可以做到不同专业软件容器应用数量的动态缩放。这与之前动辄需要数十小时才能重新部署一套专业软件而言,大幅度地降低了集群系统运维费用,提高了系统运维效率。
图4 专业软件容器快速部署模拟图
基于Docker的层叠镜像模型,利用Dockerfile机制将在用的一些有特色的老软件(如:focus5.4,cgg4100,多道统计宽带子波反褶积等),构建为可独立运行的容器,使得这些软件能够不受物理环境和操作系统环境的束缚,从而达到延长软件生命周期,保护在用软件资产的目的。
基于开源容器云技术,初步在地震资料处理中实现了专业软件容器云的生产化部署,较好地解决了计算资源共享与专业软件隔离、系统性能提升与软件兼容等的矛盾,提高了系统的可靠性和资源的利用率,降低了系统运维成本。