陳明俊,李 靖,翟中霞,祖國峰
(河南油田,河南 鄭州 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,多道統計寬帶子波反褶積等),構建為可獨立運行的容器,使得這些軟件能夠不受物理環境和操作系統環境的束縛,從而達到延長軟件生命周期,保護在用軟件資產的目的。
基于開源容器云技術,初步在地震資料處理中實現了專業軟件容器云的生產化部署,較好地解決了計算資源共享與專業軟件隔離、系統性能提升與軟件兼容等的矛盾,提高了系統的可靠性和資源的利用率,降低了系統運維成本。