金 弟,莊錫進,王啟迪,曹曉初,王宗仁
(中國石油杭州地質研究院 計算機應用研究所,杭州 310023)
在油氣勘探過程中,利用人工地震波激發采集的地震資料是一種海量數據[1].利用高性能計算集群系統與超大規模并行處理應用軟件對地震資料數據進行疊前偏移成像處理過程中,負責地震資料大數據讀寫等操作的存儲子系統成為性能瓶頸的核心環節.
在存儲子系統中,當地震資料處理系統中的計算節點客戶端大規模I/O并行請求地震數據寫所形成的高聚合I/O帶寬時,存儲主機集群技術[2]能避免存儲主機節點端出現擁堵與單點故障;動態存儲多路徑技術[2]能有效解決在存儲主機與存儲控制器之間的數據鏈路通道出現擁堵與單點故障;并行文件系統減少在Linux操作系統環境下的文件系統層出現大量文件讀寫的I/O排隊等待時間[2].但是這些技術解決的是存儲子系統體系結構中單個文件系統層及以下底層的I/O性能提升.而對于文件系統池中各個文件系統的層面上,存在各個文件系統的地震數據寫吞吐量、寫頻率、寫負載以及寫容量等差別較大;各個文件系統的存儲剩余容量、存儲剩余容量百分比值等存在較大差異;地震數據文件容量、數量等在各個文件系統上的存儲不均衡.因此無法實現文件系統池中各個文件系統之間的地震數據寫負載均衡與數據分布優化.本文首先闡述地震資料處理流程,接著分析不同常規地震數據寫策略的優缺點,最后提出基于概率的地震數據寫策略的優越性并進行實驗驗證.
地震資料處理是典型的數據密集型應用,其特點是對陸地、海洋采集的原始海量地震數據進行常規處理、偏移成像處理等形成準確的地下構造圖像,以便發現油氣藏.目前主流的地震資料處理環境中,普遍采用基于集群的高性能并行計算機系統[3],實現其計算與存儲分離、存儲共享的方式,典型的系統結構如圖1.由圖1知,海量地震數據存儲在文件系統池中,計算節點通過高速網絡向I/O節點請求I/O讀寫,多個I/O節點并行對文件系統池讀寫地震數據.文件系統池由多個文件系統構成,通常采用高性能磁盤陣列、并行文件系統構建,各個節點像訪問多個本地文件系統一樣來讀寫地震數據.地震資料處理系統的軟件體系結構采用分層模式,如圖2所示.應用功能層部署在多個計算節點上,完成常規處理、并行偏移處理等.服務控制層是其核心服務器,執行整個軟件系統的控制與管理等功能.數據服務層部署在I/O節點上,進行地震數據與非地震數據的讀寫與管理,直接與數據存儲層的文件系統池與關系數據庫進行數據交互.

圖1 地震資料處理系統典型結構

圖2 地震資料處理系統的軟件體系結構
作者所在單位從2010年開始采用并行文件系統StorNext[4]部署文件系統池,目前的文件系統池由21個文件系統組成,規模達到PB級存儲容量.采用StorNext部署的文件系統池能很好的實現單個文件系統內地震數據的均衡物理分布與多I/O節點并行高效讀寫.但在一個地震資料處理作業過程中,對請求寫的地震數據必須預先靜態的指定向哪個文件系統寫,無法根據多個文件系統的地震數據分布信息變化動態的進行修改調整.所以要滿足多個文件系統之間的地震數據負載均衡寫,數據服務層與數據存儲層不能感知,需要依靠地震資料處理人員的主觀判斷與手工操作干預.
地震資料處理的主要流程如圖3所示.檢波器產生的原始地震數據存儲在文件系統池中;地震資料處理軟件通過解編生成特定私有格式地震數據;讀取解編后的地震數據,經過常規處理與偏移處理產生若干份中間成果地震數據;讀取中間成果地震數據,進行交互分析,產生最終處理后的成果地震數據.

圖3 地震資料數據處理流程
由圖3知,地震資料處理流程主要包括原始地震數據解編、常規處理、偏移處理以及交互分析4個主要階段.原始地震數據解編消耗CPU較少,對I/O需求較大.常規處理包括靜校正、反褶積、噪音壓制等方法,需要多次讀入、計算、刪除和寫大量中間地震數據,對I/O和CPU需求都比較大.偏移處理包括時間偏移、深度偏移、逆時偏移等復雜方法,需要多次并行讀入、計算、刪除和寫大量中間地震數據,對存儲子系統的并行I/O與計算子系統的并行計算要求非常高.交互分析是讀取常規處理和偏移處理后的相關地震數據,做分析修正.對I/O和CPU消耗不多.因此除交互分析外,其它三個階段都有大規模的讀、寫及刪除大量地震數據文件.這種頻繁的大規模地震數據寫、刪除等操作導致文件系統池中各個文件系統之間的地震數據寫不平衡與地震數據分布不平衡.
針對文件系統池中各個文件系統之間的地震數據寫與分布不平衡,結合地震資料處理的4個重要階段及其特點,常規地震數據寫策略主要有三種.
對于文件系統池中所有可用的文件系統,根據文件系統寫操作的時間戳,最近一次被選中寫操作以后的時間間隔值作為選擇某個文件系統進行寫的依據[5],最長時間間隔值的文件系統優先被選中,確保各個文件系統之間地震數據寫負載均衡、地震數據分布優化.
這種寫策略的優點是實現方法簡單.缺點是由于沒有考慮文件系統的總容量與可用剩余容量等因素.在文件系統池中,當大容量文件系統與小容量文件系統混合、各個文件系統之間的剩余容量差值較大的情況下,大量的地震數據寫操作會存在小容量文件系統優先寫滿,導致可用文件系統快速減少.同時對于成批大容量地震數據文件寫操作時,小容量文件系統容易出現重負載,大容量文件系統容易出現輕負載.因此該策略在地震數據寫操作容量規模不大的情況下效果比較好.數據解編是將野外采集的地震數據正確加載到地震資料處理軟件系統中,進行觀測系統定義,并對地震數據進行編輯和校正的過程;交互分析主要對地震剖面、地震速度譜等進行分析調整.這二個階段的地震數據寫規模比較小,并且是串行寫操作,比較適合使用該地震數據寫策略.而常規處理、偏移處理會產生大規模地震數據寫現象,不宜使用該地震數據寫策略.
針對最長時間間隔寫策略的缺陷,在可用的文件系統池中,選取可用剩余容量最大百分比的文件系統進行地震數據寫操作.單個文件系統剩余容量百分比=((單個文件系統總容量-單個文件系統已被使用容量)/單個文件系統總容量)*100.與最長時間間隔寫策略相比,該策略考慮了各個文件系統的使用狀態,即可用剩余容量的信息,能確保文件系統池中,各個文件系統的可用剩余容量的百分比保持均衡.避免小容量文件系統優先寫滿,達到地震數據寫平衡與優化分布.
該策略也存在缺點,當文件系統池中一個文件系統的可用剩余容量百分比明顯高于文件系統池中其它所有的文件系統的時候,會產生單個文件系統寫熱點瓶頸問題.例如當前文件系統池中有3個文件系統d1、d2、d3,其可用剩余容量的百分比為50%、40%、40%.由于文件系統池擴容,新增一個新的文件系統d4,其可用剩余容量的百分比為99%.在這種情況下,以后所有的數據寫操作都選擇文件系統d4,其它的文件系統d1、d2、d3均處于空閑狀態,直到文件系統d4的可用剩余容量的百分比為50%以下.因此該策略比較適合在文件系統池中,各個文件系統的剩余容量最大百分比值在初始狀態時就比較接近的情況.在地震資料處理環境中,只要文件系統池的狀態滿足這個條件,地震資料處理的4個主要階段都可以使用該地震數據寫策略.但在實際地震資料處理流程中,由于常規處理、偏移處理這二個階段存在反復多次大規模中間結果的地震數據輸出,而且這二個階段也會存在自身多次執行,要滿足該數據寫策略的條件比較困難.因此該地震數據寫策略對于地震數據寫規模較小的數據解編、交互分析可以使用,而對地震數據寫規模比較大的常規處理、偏移處理不適合.
2.1 節的寫策略僅考慮時間因素,存在小容量文件系統優先寫滿、文件系統寫操作負載不均衡的缺點,2.2節的寫策略僅考慮容量因素,存在單個文件系統寫熱點瓶頸問題.基于時間與容量因素的寫策略同時考慮各個文件系統的地震數據寫操作最近一次被選中以后的時間間隔值這個時間因素和各個文件系統可用剩余容量值這個容量因素,結合加權可調參數計算出最終值作為選擇文件系統進行地震數據寫操作的判別依據.
在文件系統池中,假設文件系統的數量為n,四個可調參數為a,b,c,d.文件系統池容量集合Sn={s1,s2,···,sn};文件系統池可用剩余容量的百分比集合Bn={b1,b2,···,bn};文件系統池可用剩余容量集合Vn={v1,v2,···,vn},其中vi=bi×si;文件系統池最近一次被選中以后的時間間隔集合Tn={t1,t2,···,tn};基于時間與容量因素的文件系統池寫策略最終值集合Wn={w1,w2,···,wn},其 中wi={a+b×ti}×(c+d×vi).參數a,b調整的是時間因素的權重,參數c,d調整的是容量因素的權重.通過參數值調整,其適應性比較強,例如增大參數c及d的值,同時減少參數a及b的值,此時該寫策略趨向于基于最長時間間隔寫策略[6].
該寫策略同時考慮了時間因素與容量因素,且通過加權可調參數,避免了2.1節與2.2節策略的缺點,理論上能適合應用于地震資料處理的4個主要階段.但該策略也存在缺陷,由于引入了4個可調參數,存在需要手工干預而且調整起來相對較復雜,在實現過程中,4個參數的優化組合存在一定的難度與需要有一定的經驗,可操作性差.同時該策略在參數的調整過程中,時間因素與容量因素的權值都不高的這些文件系統容易出現饑餓現象,即在這些文件系統上的寫地震數據量很小或沒有寫地震數據.因此在地震資料處理流程中,交互分析階段地震數據量寫較小,該策略的4個參數的選擇相對較易,可以適用.而數據解編、常規處理以及偏移處理這三個階段的地震數據量寫逐漸變大,尤其是偏移處理都是并行地震資料處理作業,涉及到多次并行地震數據寫操作,該策略的參數調整組合優化比較困難,不太適合.
該策略運用基于概率的思想、方法,通過計算概率值作為優先級別值來判別優先選擇哪個文件系統.根據文件系統的寫頻繁程度、文件系統寫操作的動態容量狀態信息進行統籌優化考慮.采用最長時間間隔、絕對剩余容量及相對剩余容量三個關鍵變量因素分別計算概率值,然后根據地震資料處理環境中4個主要階段的實際需求,通過權重因子參數進行調整這三個變量概率值的權重,來滿足文件系統池的地震數據寫平衡與優化分布.該策略實現方法過程如下.
文件系統池中,假設文件系統的數量為n;文件系統池可用文件系統集合Dn={d1,d2,···,dn};文件系統池最近一次被選中以后的時間間隔集合Tn={t1,t2,···,tn};文件系統池基于最近一次被選中以后的時間間隔概率集合PTn={pt1,pt2,···,ptn};在文件系統池中,基于最長時間間隔的第i個文件系統概率計算公式為:

文件系統池容量集合Sn={s1,s2,···,sn};文件系統池可用剩余容量百分比集合Bn={b1,b2,···,bn};文件系統池絕對剩余容量概率集合PSn={ps1,ps2,···,psn};在文件系統池中,第i個文件系統絕對剩余容量概率計算公式為:

文件系統池可用剩余容量最小百分比Bmin=MIN{b1,b2,···,bn};文件系統池可用剩余容量最大百分比Bmax=MAX{b1,b2,···,bn};文件系統池可用剩余容量的百分比和如下:

文件系統池可用相對剩余容量概率集合PBn={pb1,pb2,···,pbn};在文件系統池中,第i個文件系統可用相對剩余容量概率計算公式為:

定義概率權重因子WF,0<=WF<=1;文件系統池內選擇文件系統進行地震數據寫的概率集合Pn={p1,p2,···,pn};根據式(1)、(2)、(3),在文件系統池中,第i個文件系統進行地震數據寫的概率計算公式如下:

公式(4)由三項構成,第一項用時間比例方法計算基于最長時間間隔的文件系統概率值pti,所占的權重是(1-WF)/2;第二項用剩余容量比例方法計算文件系統絕對剩余容量概率值psi,所占的權重是(1-WF)/2;第三項用最值差方法計算文件系統可用相對剩余容量概率值pbi,所占的權重是WF.第i個文件系統進行地震數據寫的最終概率值由這三項各自的概率值加權再相加得到.對于WF取任何0至1之間的值,三項的權重和為1,各項所占的權重比值由WF控制與調整.
該策略考慮文件系統池的最長時間間隔、絕對剩余容量及相對剩余容量分別作為概率變量的分布值,其值為在文件系統池中選擇哪個文件系統進行地震數據寫的主要判別依據.在此基礎上,運用調整概率權重因子WF這個參數的值大小,權衡這三個主控因素的概率變量值權重,最終達到文件系統池內各個文件系統之間地震數據寫平衡與優化分布.而且該策略僅引進一個概率權重因子參數WF,參數優化調整相對簡單.該策略實現算法流程如圖4.
為了驗證本文提出的基于概率寫策略的效果,對該寫策略進行實驗測試分析.實驗環境如下,16個IBM HS22刀片計算節點,4個IBM x3650 I/O節點,StorNext4.0并行文件系統構建的文件系統池,采用地震資料處理軟件GeoVation2015[6]的并行地震數據寫軟件子模塊模擬用戶頻繁的大規模地震數據寫操作.選擇國內某盆地采集的實際地震數據作為實驗數據,其信息如表1所示.為方便測試,采用4個文件系統fs1、fs2、fs3及fs4組成的文件系統池,4個文件系統的初始狀態信息如表2;抽取所測試的地震數據文件樣本如表3,60個地震數據文件共計約1 TB地震數據容量.

圖4 基于概率地震數據寫策略算法流程

表2 文件系統池初始條件狀態

表3 地震數據文件樣本信息
圖5給出了在不同概率權重因子值條件下,1 TB地震數據寫操作完成后,4個文件系統被寫地震數據的容量分布.文件系統池初始狀態fs4剩余容量180 GB,fs1與fs2的剩余容量480 GB,fs4與fs1(fs2)剩余容量差值比較大,2倍多.由圖5可知,對于不同的概率權重因子值,向fs1寫地震數據容量分布范圍379.8 GB至390.6 GB;向fs2寫地震數據容量分布范圍372.6 GB至386.4 GB;向fs3寫地震數據容量分布范圍142.2 GB至156.6 GB;向fs4寫地震數據容量分布范圍81.4 GB至128.8 GB.

圖5 寫地震數據容量分布
根據不同文件系統的寫地震數據容量分布范圍,可知該策略避免2.1節所描述的在各個文件系統之間剩余容量差值較大的條件下,小容量文件系統優先寫滿情況.也沒有出現小容量文件系統容易出現重負載,而大容量文件系統容易出現輕負載的現象.同時在不同權重因子值條件下,寫地震數據容量最小的文件系統也有81.4 GB數據寫入,避免2.3節所描述某些文件系統可能出現寫地震數據容量很小或沒有寫地震數據這種饑餓現象.
文件系統池初始狀態中,剩余容量百分比最小的fs3值為40%,剩余容量百分比最大的fs4值為90%,其差值較大.圖6顯示1 TB地震數據寫操作完成后,4個文件系統的剩余容量百分比分布.
由圖6可知當概率權重因子值小于等于0.6時,fs1、fs2、fs3及fs4的剩余容量百分比區間分別為14.9%至16.6%、15.6%至17.5%、13.9%至14.4%及37.9%至48.1%.當概率權重因子值大于0.6時,fs1、fs2、fs3及fs4的剩余容量百分比區間分別為18.2%至18.8%、17.9%至18.1%、16.3%至17.9%及18.4%至25.6%.可以看出當概率權重因子值小于等于0.6時,fs3和fs4的剩余容量百分比值與其初始狀態一樣仍然保持其較大的差值;當概率權重因子值大于0.6時,fs3和fs4的剩余容量百分比值比較接近,向fs4寫地震數據比較頻繁.因此為了解決2.2節所描述產生單個文件系統熱點寫瓶頸問題,建議調整概率權重因子值小于等于0.6.

圖6 文件系統池剩余容量百分比分布
文件系統池初始狀態中,最大剩余容量為fs1與fs2,都是480 GB,最小剩余容量fs4為180 GB.圖7顯示1 TB地震數據寫操作完成后,4個文件系統在不同概率權重因子值下的剩余容量分布.在不同概率權重因子值條件下,fs1與fs2的剩余容量都基本相同,寫數據非常均衡.
由圖7可知,當概率權重因子值小于等于0.4時,fs1的剩余容量區間89.4 GB至98.4 GB,fs4的剩余容量區間81.5 GB至99.8 GB.當概率權重因子值大于0.4時,fs1的剩余容量區間99.6 GB至112.8 GB,fs4的剩余容量區間36.8 GB至75.8 GB.可見當概率權重因子值大于0.4時,fs1與fs4的剩余容量值與初始狀態一樣仍然保持較大的差值;當概率權重因子值小于等于0.4時,fs1和fs4的剩余容量值比較接近.
因此在文件系統池的初始狀態為各個文件系統的剩余容量相差很大的情況下,如果需要保持各個文件系統的剩余容量均衡,建議調整概率權重因子值小于等于0.4;如果需要保持各個文件系統的寫地震數據量均衡,建議調整概率權重因子值大于0.4.

圖7 文件系統池剩余容量分布
通過上述實驗結果數據分析,根據實際需要,通過調整概率權重因子,基于概率寫策略能很好的確保文件系統池中各個文件系統之間地震數據寫平衡與優化分布,滿足地震資料處理流程中的4個主要階段的地震數據寫需求.
本文提出基于概率思想的地震數據寫策略,設置不同的概率權重因子值,對地震數據寫平衡與優化分布有較大的影響.因此結合不同的文件系統池狀態、地震數據文件個數與容量以及地震數據寫順序,自動學習調整優化概率權重因子值是后續需要關注和研究的問題.
1趙滿.地震數據并行訪問策略的研究[碩士學位論文].大慶:東北石油大學,2013.
2金弟,莊錫進,王啟迪,等.存儲框架模型在地震資料大數據中的應用.計算機系統應用,2016,25(2):45-51.
3張軍華,臧勝濤,單聯瑜,等.高性能計算的發展現狀及趨勢.石油地球物理勘探,2010,45(6):918-925.
4Quantum.Stor NextFile System Users Guide.Seattle,USA:Quantum Press,2010.
5Schlumberger.Omega 2015.1 Administration Guide.Houston,TX,USA:Schlumberger,2015.
6CGG.Geovation 2015 Administration Guide.Cedex FRANCE:CGG,2015.