劉小斌 于由美 江明 張超環(huán) 宮臣
[摘? ? 要] 遼河油田勘探開(kāi)發(fā)研究院應(yīng)用計(jì)算資源虛擬化、存儲(chǔ)資源整合及網(wǎng)絡(luò)重構(gòu)等技術(shù)搭建了油田地質(zhì)綜合研究云平臺(tái),該平臺(tái)具備服務(wù)器資源、數(shù)據(jù)資源及軟件資源統(tǒng)一管理,專(zhuān)業(yè)應(yīng)用遠(yuǎn)端隨需即取,跨平臺(tái)等技術(shù)特色,改變了軟件本地安裝維護(hù)不及時(shí)、多操作系統(tǒng)軟件部署受限、資料成果本地磁盤(pán)存儲(chǔ)易丟失的傳統(tǒng)工作模式,能夠隨時(shí)應(yīng)用平臺(tái)中的應(yīng)用軟件,大幅提升硬件資源的使用效率,同時(shí)也提升了一體化協(xié)同研究的技術(shù)能力,并形成了多項(xiàng)技術(shù)成果。
[關(guān)鍵詞] 圖像雙緩沖技術(shù);平臺(tái)資源動(dòng)態(tài)擴(kuò)容技術(shù);運(yùn)維管理;油田地質(zhì)綜合研究;云平臺(tái)
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2020. 15. 042
[中圖分類(lèi)號(hào)] F270.7;TP315? ? [文獻(xiàn)標(biāo)識(shí)碼]? A? ? ? [文章編號(hào)]? 1673 - 0194(2020)15- 0097- 03
0? ? ? 前? ? 言
遼河油田勘探開(kāi)發(fā)研究院通過(guò)多年的技術(shù)攻關(guān),應(yīng)用計(jì)算資源虛擬化、存儲(chǔ)資源整合及網(wǎng)絡(luò)重構(gòu)等技術(shù)建立了油田地質(zhì)綜合研究云平臺(tái)。該平臺(tái)最大特色是靜態(tài)基礎(chǔ)資料庫(kù)、研究項(xiàng)目庫(kù)、圖形庫(kù)的一體化設(shè)計(jì),為遼河油田勘探開(kāi)發(fā)研究領(lǐng)域之首創(chuàng),創(chuàng)新技術(shù)達(dá)到了國(guó)內(nèi)同行業(yè)領(lǐng)先水平。目前,在遼河油田公司相關(guān)部門(mén)的大力支持下,勘探開(kāi)發(fā)云平臺(tái)在研究院、錦州采油廠和金海采油廠等12家單位進(jìn)行應(yīng)用推廣,云平臺(tái)的研究成果在推廣單位的勘探開(kāi)發(fā)研究工作中得到了應(yīng)用,結(jié)束了資料靠下載、成果靠拷貝的低效工作模式,能夠隨時(shí)應(yīng)用平臺(tái)中的應(yīng)用軟件,提升了一體化協(xié)同研究的技術(shù)能力,效果明顯;同時(shí),在推廣過(guò)程中發(fā)現(xiàn),如何在復(fù)雜的網(wǎng)絡(luò)環(huán)境中提供穩(wěn)定的云平臺(tái)服務(wù),如何在線擴(kuò)充和動(dòng)態(tài)調(diào)整軟硬件資源,如何完善現(xiàn)有運(yùn)維技術(shù),提升信息服務(wù)技術(shù)能力,縮短故障處理時(shí)間,是云平臺(tái)推廣過(guò)程中面臨的主要問(wèn)題。
針對(duì)上述問(wèn)題,我們進(jìn)行了大量的技術(shù)攻關(guān)工作。
1? ? ? 圖像雙緩沖技術(shù)
針對(duì)平臺(tái)應(yīng)用軟件,將地質(zhì)基礎(chǔ)資料數(shù)據(jù)庫(kù)和地質(zhì)專(zhuān)業(yè)應(yīng)用圖形庫(kù)數(shù)據(jù)結(jié)構(gòu)優(yōu)化調(diào)整,重寫(xiě)或者改寫(xiě)應(yīng)用軟件系統(tǒng)需要訪問(wèn)存儲(chǔ)在地質(zhì)基礎(chǔ)資料數(shù)據(jù)庫(kù)、地質(zhì)專(zhuān)業(yè)應(yīng)用圖形數(shù)據(jù)庫(kù)和云平臺(tái)資源信息數(shù)據(jù)庫(kù)中應(yīng)用到的存儲(chǔ)過(guò)程、數(shù)據(jù)處理等函數(shù),開(kāi)發(fā)了數(shù)據(jù)字典、應(yīng)用視圖、數(shù)據(jù)讀寫(xiě)存儲(chǔ)過(guò)程、數(shù)據(jù)預(yù)處理函數(shù)和應(yīng)用程序數(shù)據(jù)共5個(gè)數(shù)據(jù)接口。實(shí)現(xiàn)平面構(gòu)造圖、儲(chǔ)層分布圖、物性分布圖、沉積相平面圖、儲(chǔ)層連通圖、地層對(duì)比剖面、構(gòu)造剖面、油藏剖面、沉積相剖面、綜合柱狀圖等10類(lèi)圖件繪制的雙緩沖功能[1]。
在圖形圖像處理編程過(guò)程中,雙緩沖是一種大數(shù)據(jù)圖像快速繪制技術(shù),如果窗體在響應(yīng)WM_PAINT消息的時(shí)候要進(jìn)行復(fù)雜的圖形處理,那么窗體在重繪時(shí),由于頻繁的刷新而引起了閃爍現(xiàn)象,解決這一問(wèn)題的有效方法之一就是雙緩沖技術(shù)。因?yàn)榇绑w在刷新時(shí),總要有一個(gè)擦除原來(lái)圖像的過(guò)程O(píng)nEraseBkgnd,它利用背景色填充窗體繪圖區(qū),然后調(diào)用新的繪圖代碼進(jìn)行重繪,這樣一擦一寫(xiě)造成了圖像顏色的反差。當(dāng)WM_PAINT的響應(yīng)很頻繁的時(shí)候,這種反差也就越發(fā)明顯,于是我們就看到了閃爍現(xiàn)象?;谏鲜鲈?,我們會(huì)很自然地想到,避免背景色的填充是消除閃爍的最直接的辦法。但是那樣的話,窗體會(huì)變得很糟。因?yàn)槊看卫L制圖像的時(shí)候都沒(méi)有將原來(lái)的圖像清除,造成了圖像的殘留,于是在窗體重繪時(shí),畫(huà)面往往會(huì)變得雜亂,所以單純地禁止背景圖像重繪不能解決問(wèn)題。我們還要進(jìn)行重新繪圖,但要求速度很快,所以必須進(jìn)行圖形塊的復(fù)制。我們可以先在內(nèi)存中繪制圖像,然后將此內(nèi)存中的圖像復(fù)制到前臺(tái),同時(shí)禁止背景刷新,這樣就消除了閃爍。這就是雙緩沖繪圖的基本思路。
雙緩沖繪圖涉及大圖像的無(wú)效區(qū)域和有效區(qū)域判斷。Windows內(nèi)部為每個(gè)窗口保存一個(gè)繪圖信息結(jié)構(gòu),這個(gè)結(jié)構(gòu)包含了包圍無(wú)效區(qū)域的最小矩形的坐標(biāo)以及其他信息,這個(gè)矩形就叫無(wú)效矩形,有時(shí)也被稱(chēng)為無(wú)效區(qū)域。如果在窗口消息處理程序處理WM_PAINT消息之前顯示區(qū)域中的另一個(gè)區(qū)域變?yōu)闊o(wú)效,則Windows計(jì)算出一個(gè)包圍兩個(gè)區(qū)域的新的無(wú)效區(qū)域(即一個(gè)新的無(wú)效矩形),并將這種變化后的信息放在繪制信息結(jié)構(gòu)中。Windows不會(huì)將多個(gè)WM_PAINT消息都放在消息隊(duì)列中。WM_PAINT只會(huì)更新無(wú)效區(qū)域內(nèi)信息。在首次處理WM_PAINT消息后,整個(gè)程序界面都變?yōu)橛行^(qū)域,如果不對(duì)程序進(jìn)行任何操作,它是不會(huì)產(chǎn)生無(wú)效區(qū)域的。只有移動(dòng)窗口這類(lèi)的操作才會(huì)產(chǎn)生無(wú)效區(qū)域,觸發(fā)WM_PAINT消息重繪窗口。窗口消息處理程序可以通過(guò)呼叫InvaladataRECT顯示區(qū)域無(wú)效。在處理WM_PAINT消息處理期間,窗口消息處理程序在呼叫了BeginPaint之后,整個(gè)顯示區(qū)域即變?yōu)橛行?。程序也可以通過(guò)呼叫ValidateRect函數(shù)使顯示區(qū)域內(nèi)的任意矩形區(qū)域變?yōu)橛行?。如果呼叫具有令整個(gè)無(wú)效區(qū)域變?yōu)橛行У男Ч瑒t目前隊(duì)列中的任何WM_PAINT消息都將被刪除。InvalidateRect只是增加重繪區(qū)域,在下次WM_PAINT的時(shí)候才生效。InvalidateRect函數(shù)中的參數(shù)TRUE表示系統(tǒng)會(huì)在你畫(huà)之前用背景色,將所選區(qū)域覆蓋一次,默認(rèn)背景色為白色,可以通過(guò)設(shè)置BRUSH來(lái)改變背景色。InvalidateRect(hWnd,&rect,TRUE);向hWnd窗體發(fā)出WM_PAINT的消息,強(qiáng)制客戶(hù)區(qū)域重繪制,rect是你指定要刷新的區(qū)域,此區(qū)域外的客戶(hù)區(qū)域不被重繪,這樣防止客戶(hù)區(qū)域的一個(gè)局部的改動(dòng),而導(dǎo)致整個(gè)客戶(hù)區(qū)域重繪而導(dǎo)致閃爍,如果最后的參數(shù)為T(mén)RUE,則還向窗體發(fā)送WM_ERASEBKGND消息,使背景重繪。當(dāng)然,在客戶(hù)區(qū)域重繪之前,UpdateWindow只向窗體發(fā)送WM_PAINT消息,在發(fā)送之前判斷GetUpdateRect(hWnd,NULL,TRUE),看有無(wú)可繪制的客戶(hù)區(qū)域,如果沒(méi)有,則不發(fā)送WM_PAINT;如果希望立即刷新無(wú)效區(qū)域,可以在調(diào)用InvalidateRect之后調(diào)用UpdateWindow,如果客戶(hù)區(qū)的任一部分無(wú)效,則UpdateWindow將導(dǎo)致Windows用WM_PAINT消息調(diào)用窗口過(guò)程(如果整個(gè)客戶(hù)區(qū)有效,則不調(diào)用窗口過(guò)程)。這一WM_PAINT消息不進(jìn)入消息隊(duì)列,直接由Windows調(diào)用窗口過(guò)程。窗口過(guò)程完成刷新以后立刻退出,Windows將控制返回給程序中UpdateWindow調(diào)用之后的語(yǔ)句。
目前,我們使用云平臺(tái)提供的如地質(zhì)綜合研究軟件在繪制平面構(gòu)造圖等圖件時(shí),需從基礎(chǔ)資料庫(kù)中調(diào)取井位、井斜、層位、井位符號(hào)等數(shù)據(jù)資料,從地質(zhì)圖形庫(kù)中調(diào)取等深線、等深著色區(qū)域、地層邊界、圖例、邊框等圖形資料,在內(nèi)存中根據(jù)數(shù)據(jù)和圖素的類(lèi)別組合成圖件可視化對(duì)象,可視化對(duì)象繪制時(shí)綜合運(yùn)用圖像雙緩沖技術(shù),保證圖件繪制延遲不超過(guò)0.5s。
2? ? ? 平臺(tái)資源動(dòng)態(tài)擴(kuò)容技術(shù)
改變?cè)破脚_(tái)服務(wù)器部署模式,通過(guò)部署集群建立平臺(tái)資源池,快速完成平臺(tái)資源到服務(wù)的動(dòng)態(tài)映射,服務(wù)到用戶(hù)的動(dòng)態(tài)綁定,實(shí)現(xiàn)新引進(jìn)的軟硬件在平臺(tái)的快速部署應(yīng)用,并運(yùn)用動(dòng)態(tài)資源調(diào)度技術(shù)實(shí)現(xiàn)云平臺(tái)資源池的負(fù)載均衡。對(duì)于新進(jìn)的硬件設(shè)備,通過(guò)資源到服務(wù)的動(dòng)態(tài)映射技術(shù),將服務(wù)器動(dòng)態(tài)擴(kuò)充到平臺(tái)服務(wù)器集群中,然后創(chuàng)建新的計(jì)算節(jié)點(diǎn),隨后為應(yīng)用軟件分配計(jì)算資源,從而完成在云平臺(tái)現(xiàn)有資源池中快速擴(kuò)充硬件資源。對(duì)于新進(jìn)的軟件設(shè)備,從服務(wù)器集群中劃分資源創(chuàng)建該軟件資源池,并在計(jì)算節(jié)點(diǎn)中部署新進(jìn)軟件,完成云平臺(tái)現(xiàn)有資源池中快速擴(kuò)充應(yīng)用軟件(參見(jiàn)圖1)。
動(dòng)態(tài)擴(kuò)充云平臺(tái)資源池后,運(yùn)用動(dòng)態(tài)資源調(diào)度技術(shù),根據(jù)輪詢(xún)服務(wù)器的資源使用率,調(diào)整云平臺(tái)計(jì)算節(jié)點(diǎn)的分布來(lái)負(fù)載均衡云平臺(tái)資源池。通過(guò)計(jì)算資源負(fù)載均衡技術(shù)研究,將計(jì)算節(jié)點(diǎn)的連接數(shù)、CPU使用率、內(nèi)存使用率、圖卡使用率列為關(guān)鍵性能指標(biāo),并按影響程度打出分值,通過(guò)分值構(gòu)建性能指標(biāo)矩陣,計(jì)算服務(wù)器的KPI權(quán)重值,編寫(xiě)程序?qū)崿F(xiàn)計(jì)算節(jié)點(diǎn)四個(gè)關(guān)鍵性能指標(biāo)在矩陣中的輪詢(xún),使服務(wù)器按權(quán)值順序接受來(lái)自平臺(tái)用戶(hù)的服務(wù)請(qǐng)求,實(shí)現(xiàn)應(yīng)用的負(fù)載均衡[2],充分利用了云平臺(tái)服務(wù)器硬件資源,優(yōu)化應(yīng)用體驗(yàn)(參見(jiàn)圖2)。
3? ? ? 自主研發(fā)運(yùn)維管理平臺(tái)
自主研發(fā)運(yùn)維管理平臺(tái),針對(duì)云平臺(tái)資源層,編寫(xiě)了管理模塊和監(jiān)控模塊?;跒g覽器實(shí)現(xiàn)對(duì)云平臺(tái)硬件資源、軟件資源、許可資源等多方面全方位的監(jiān)控及管理,運(yùn)用高可用性技術(shù)、VMware快照技術(shù)和克隆技術(shù),實(shí)現(xiàn)平臺(tái)故障服務(wù)器、節(jié)點(diǎn)業(yè)務(wù)的快速恢復(fù),制定多重安全驗(yàn)證機(jī)制,通過(guò)防火墻配置、本地驗(yàn)證證書(shū)、云平臺(tái)用戶(hù)與異構(gòu)環(huán)境的軟件用戶(hù)建立映射關(guān)系,建立完整、安全、高效的安全認(rèn)證機(jī)制。
運(yùn)維管理平臺(tái)運(yùn)用高可用性技術(shù),通過(guò)心跳機(jī)制發(fā)現(xiàn)未響應(yīng)服務(wù)器,尋找空閑服務(wù)器通過(guò)在線遷移來(lái)接管節(jié)點(diǎn),保證在不間斷業(yè)務(wù)的情況下完成故障處理。當(dāng)虛擬節(jié)點(diǎn)所在服務(wù)器產(chǎn)生故障或停機(jī)時(shí),通過(guò)虛擬機(jī)遷移技術(shù)可以迅速地將故障服務(wù)器上的計(jì)算節(jié)點(diǎn)遷移到集群內(nèi)或集群外正常運(yùn)行的物理機(jī)上,繼續(xù)對(duì)云平臺(tái)用戶(hù)業(yè)務(wù)訪問(wèn)進(jìn)行響應(yīng)。當(dāng)單個(gè)計(jì)算節(jié)點(diǎn)發(fā)生故障時(shí),通過(guò)克隆技術(shù),將故障節(jié)點(diǎn)進(jìn)行替換,隨后使用快照技術(shù)對(duì)節(jié)點(diǎn)進(jìn)行故障修復(fù),實(shí)現(xiàn)平臺(tái)資源池快速運(yùn)維。
4? ? ? 總? ? 結(jié)
油田地質(zhì)綜合研究云平臺(tái)已推廣部署于遼河油田12家單位的地質(zhì)部門(mén),該平臺(tái)是遼河油田勘探開(kāi)發(fā)研究信息化新一代架構(gòu),實(shí)現(xiàn)了專(zhuān)業(yè)應(yīng)用軟件及數(shù)據(jù)庫(kù)系統(tǒng)云服務(wù)模式,最大程度發(fā)揮了軟硬件應(yīng)用效能,為遼河油田增儲(chǔ)穩(wěn)產(chǎn)、降本增效提供有力的技術(shù)支持,填補(bǔ)了遼河油田地質(zhì)信息應(yīng)用領(lǐng)域的空白。
主要參考文獻(xiàn)
[1]鄒金津.提高二、三維圖像低網(wǎng)絡(luò)帶寬條件下遠(yuǎn)程傳輸效率[J].電腦知識(shí)與技術(shù),2019,15(11).
[2]于由美,劉小斌,江明,等.地質(zhì)綜合研究云平臺(tái)運(yùn)維管理[J].中國(guó)管理信息化,2019,22(7).