国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于數據單元的地震數據的災難恢復方法

      文檔序號:6433670閱讀:124來源:國知局
      專利名稱:一種基于數據單元的地震數據的災難恢復方法
      技術領域
      本發(fā)明屬于網絡安全技術領域,特別涉及一種地震數據的災難恢復方法。
      背景技術
      石油勘探行業(yè)的地震數據處理具有數據量大、計算密集、業(yè)務流程復雜等特點。面對地震數據這類的海量數據,并行處理是更優(yōu)的選擇,畢竟由于數據量大,處理流程復雜, 如果采用串行處理一般情況下都需要幾個月的時間,這顯然是無法接受的。另一方面,如果采用超級計算機進行并行處理,盡管能夠有效地提高并行處理的速度,但費用昂貴,而且針對不同的處理模塊都必須事先編寫好各自并行算法,甚至針對不同的機器,或者不同的版本都必須對函數進行重新編寫,這同樣是難以接受的。在地震數據處理平臺上采用基于集群系統(tǒng)的并行處理框架,無論是性價比、系統(tǒng)魯棒性、還是可擴展性方面,都具備無可比擬的優(yōu)勢。在集群系統(tǒng)中,災難恢復是很重要的一個內容,隨著集群規(guī)模的不斷擴大和計算節(jié)點數量的不斷增加,在計算過程中出現故障的幾率也呈指數增長,這就為集群系統(tǒng)的災難恢復提出了更高的要求。在基于集群系統(tǒng)的地震數據處理平臺中,服務器和各個地震作業(yè)運行于不同的計算節(jié)點上。由于地震數據量大,處理流程復雜,一旦某個計算節(jié)點出現故障導致作業(yè)執(zhí)行失敗,都會導致系統(tǒng)效率的下降和時間的浪費,特別是當系統(tǒng)中存在運行時間很長的大作業(yè)時,更是會給用戶帶來較大的損失,而且由于絕大多數地震作業(yè)的數據量都比較大,執(zhí)行時間都比較長,在發(fā)生計算節(jié)點故障導致系統(tǒng)運行失敗后,如果總是從頭開始重新執(zhí)行該作業(yè),無疑將造成大量的時間上和計算上的浪費,甚至可能無法完成該作業(yè)?;诩合到y(tǒng)的地震數據處理平臺中的災難恢復策略,目前主要以檢查點回卷恢復技術為主。檢查點回卷恢復技術是一種基于時間冗余的后向恢復容錯技術,廣泛應用于并行系統(tǒng)。容錯技術按恢復取向可分為兩類前向恢復技術和后向恢復技術。前向恢復技術是在系統(tǒng)故障后,根據故障系統(tǒng)的某些故障特征,來推導出系統(tǒng)未來可能出現的某一正確狀態(tài),然后將系統(tǒng)的狀態(tài)恢復為這一狀態(tài)。這種技術適合恢復系統(tǒng)外設的故障,但實現復雜。而后向恢復技術則是保存系統(tǒng)過去某一時刻的正確狀態(tài),然后在系統(tǒng)故障時,將系統(tǒng)狀態(tài)卷回到這一狀態(tài)。該方法恢復率高,但不適合外設故障,因為外設是不可卷回的。檢查點回卷恢復技術正是一種典型的后向恢復技術,具體可分為如下兩個步驟1、檢查點設置在系統(tǒng)正常運行的過程中,由程序員或操作系統(tǒng)指定,每隔一定的時間間隔設置檢查點,保存系統(tǒng)當前的一致性狀態(tài),并對各進程間的消息進行記錄。2、卷回恢復當系統(tǒng)發(fā)生故障之后,將系統(tǒng)狀態(tài)卷回到最后一次保存的檢查點的一致性狀態(tài),并從這一狀態(tài)繼續(xù)運行,而不是從程序開始處重新執(zhí)行。檢查點回卷恢復技術可分為兩大類基于檢查點的和基于消息記錄的。前者是單獨依賴檢查點,而后者不僅依賴檢查點,也依賴消息記錄。其中,基于檢查點的回卷恢復協(xié)議分為三類獨立檢查點協(xié)議,協(xié)同檢查點協(xié)議,通信-誘導檢查點協(xié)議;基于消息記錄的回卷恢復協(xié)議分為三類悲觀記錄協(xié)議,樂觀記錄協(xié)議,因果記錄協(xié)議。作為并行系統(tǒng)中有效的一種容錯方式,檢查點回卷恢復技術是集群系統(tǒng)中容錯的一種有效手段,能極大的提高集群系統(tǒng)的可用性和可靠性。但針對地震數據處理平臺來說, 現有的檢查點回卷恢復技術還存在著以下的不足現有的檢查點回卷恢復技術沒有針對地震數據本身的特點,來進行狀態(tài)的保存與恢復。具體來說,在地震數據處理平臺中,若采用現有的檢查點回卷恢復技術,地震作業(yè)將會以處理模塊為單位來進行回卷恢復,因此可在處理模塊這個層面上實現地震作業(yè)的恢復。然而,對于處理模塊內部來說,由于尚未有針對地震數據的狀態(tài)保存方法,檢查點中將無法包含處理模塊本身的狀態(tài)信息,從而無法實現處理模塊內部的回卷恢復,因此,故障發(fā)生后尚未處理完的各個處理模塊都需要從頭開始執(zhí)行。這樣無疑將造成大量的時間上和計算上的浪費,與檢查點回卷恢復技術的初衷是相違背的。

      發(fā)明內容
      本發(fā)明的目的是為了解決在地震數據處理平臺中現有的檢查點回卷恢復技術存在的問題,提出了一種基于數據單元的地震數據的災難恢復方法。本發(fā)明的技術方案是一種基于數據單元的地震數據的災難恢復方法,包括如下步驟Si.在每一個計算節(jié)點上進行檢查點的保存,檢查點保存計算節(jié)點上的所有作業(yè)運行信息,作業(yè)運行信息以數據單元為基本單位進行記錄;S2.服務器對每一個計算節(jié)點進行故障檢測;S3.服務器檢測出發(fā)生故障的計算節(jié)點后,從共享存儲中讀取該計算節(jié)點的檢查點,將故障計算節(jié)點上的作業(yè)卷回恢復到重新分配的空閑節(jié)點上,再結合作業(yè)的配置信息決定作業(yè)的恢復策略以繼續(xù)進行該作業(yè)的處理,所述的恢復策略具體為該作業(yè)是從頭開始執(zhí)行還是從檢查點開始執(zhí)行。進一步的,所述數據單元具體為道、道集、坡面、或者三維數據體本身。進一步的,所述的從檢查點開始執(zhí)行具體為所述的重新分配的空閑節(jié)點按照檢查點與作業(yè)的配置信息計算出下一個待處理的數據單元的位置,從該位置開始繼續(xù)進行作業(yè)的處理。更進一步的,所述的計算出下一個待處理的數據單元的位置的具體過程為若配置信息記錄的作業(yè)每次執(zhí)行時所需要的數據單元的個數是N,檢查點記錄的下一個待處理的數據單元的位置是M,則該作業(yè)被重新調度后將會從kN+Ι個數據單元處進行作業(yè)的處理,其中,kN< (M-I) ( (k+l)N,k 為整數。本發(fā)明的有益效果本發(fā)明的方法在檢查點回卷恢復技術的基礎上,針對地震數據自身的特點,結合數據單元的概念,通過對作業(yè)處理過程中的數據單元信息進行記錄,并保存在檢查點中,實現了基于數據單元的地震數據的災難恢復。如果某個計算節(jié)點突然失效,導致該計算節(jié)點上的作業(yè)執(zhí)行失敗,本發(fā)明的方法通過檢查點中記錄的作業(yè)處理的數據單元信息,從檢查點將故障前狀態(tài)快速恢復到另一節(jié)點上,并且精確到每一個數據單元。采用本發(fā)明的方法,使得地震數據處理平臺無需每次都從頭執(zhí)行故障節(jié)點上的作業(yè),只需要根據記錄,在上次運行的基礎上,從下一個待處理的數據單元開始,繼續(xù)進行下面的處
      4理。


      圖1是地震數據處理平臺的集群系統(tǒng)示意圖。圖2是數據可分割作業(yè)的處理模塊流程示意圖。圖3是計算節(jié)點上地震作業(yè)的處理流程示意圖。圖4是數據可分割作業(yè)的執(zhí)行流程示意圖。圖5是采用本發(fā)明方法的地震數據處理平臺的服務器流程示意圖。圖6是采用本發(fā)明方法的地震數據處理平臺的計算節(jié)點流程示意圖。圖7是采用本發(fā)明方法的地震數據處理平臺的災難恢復整體流程示意圖。
      具體實施例方式下面結合附圖和具體的實施例對本發(fā)明的方法作進一步的闡述。為了便于對本發(fā)明的理解,首先對數據單元、地震數據處理平臺、地震作業(yè)處理流程進行說明地震數據有一個重要的特點,即其數據本身是非耦合的,數據之間的獨立性很強, 可將其細化為由各類相似的數據單元作為基本單元的非耦合數據。對于不同的地震數據來說,數據單元是存在差異的,可以是道,也可以是道集,或者坡面,甚至三維數據體本身。這里先對道及道集的概念進行一點說明道是地震數據的基本單位,一道地震數據的大小與采樣時間長度及采樣間隔有關,其容量一般從幾KB到幾十KB不等;而道集是指具有某一共同屬性的道的集合,這些屬性包括共炮點、共中心點、共接收點等,通常情況下,一個道集包含了幾十道到幾千道數據不等。數據單元地震數據的基本數據單元。對于各類地震數據來說,數據單元是存在差異的,可以是道,也可以是道集,或者坡面,甚至三維數據體本身。子作業(yè)具體特指數據可分割作業(yè)的一個處理模塊。一個數據可分割作業(yè)可看作由多個子作業(yè)組合而成的。一個作業(yè)是否需要劃分為若干個子作業(yè),具體如何進行劃分,應由用戶事先確定聲明,并在用戶創(chuàng)建作業(yè)的過程中賦予相關參數信息。這里,地震數據處理平臺采用基于集群系統(tǒng)的并行處理框架,具體采用了客戶端-服務器模型,該處理平臺的系統(tǒng)總體框架圖如圖1所示,包括客戶端、服務器、計算節(jié)點與共享存儲,各部分實現的功能如下1.客戶端(Client Node)與用戶的交互;地震作業(yè)的創(chuàng)建、編輯與提交;監(jiān)控作業(yè)運行狀態(tài),計算節(jié)點狀態(tài)等。2.服務器(Server Node)統(tǒng)一組織與管理集群中的各類對象實體,例如作業(yè)、隊列、節(jié)點、用戶信息等;接收并處理客戶端發(fā)送的請求;收集并統(tǒng)計各計算節(jié)點的可用資源信息;根據用戶選擇的作業(yè)調度策略,進行作業(yè)調度。3.計算節(jié)點(Compute Node)接收并執(zhí)行服務器調度至當前節(jié)點的作業(yè);收集計算節(jié)點當前可用資源狀態(tài)信息,如CPU利用率、內存信息、可用磁盤空間等,供服務器和客戶端查看;定時備份計算節(jié)點的執(zhí)行信息;定時向服務器發(fā)送心跳包。4.共享存儲(Siared Storage)共享文件系統(tǒng),存儲服務器與計算節(jié)點的數據和
      5執(zhí)行信息。本集群系統(tǒng)的硬件設備采用了基于NFS協(xié)議的磁盤陣列文件系統(tǒng),所有計算節(jié)點均可透明高速地對磁盤陣列上的數據文件進行訪問。地震作業(yè)處理流程用戶通過客戶端向地震數據處理平臺提交作業(yè),請求服務。這里,在基于集群系統(tǒng)的地震數據處理平臺中,用戶提交的地震作業(yè)可分為兩大類,普通作業(yè)和數據可分割作業(yè)。在作業(yè)提交前,用戶將對這兩類作業(yè)提交方式進行選擇。數據可分割作業(yè)是由一組存在依賴關系的功能模塊組成的,各模塊共同來完成一個特定的處理任務,其中每個功能模塊中都包含著完成該模塊功能所需要的參數信息。用戶在創(chuàng)建數據可分割作業(yè)的過程中,給出作業(yè)內部各處理模塊的拓撲關系,也就是業(yè)務處理流程邏輯,并賦予相關參數信息。圖2是數據可分割作業(yè)的處理模塊流程圖的一個示例,說明數據可分割作業(yè)的業(yè)務處理流程邏輯。各處理模塊之間的數據依賴關系可分為三種情況線性、分支并發(fā)、分支聚合。線性連接的模塊根據數據流線性驅動,如模塊1、模塊3與模塊8之間的線性連接。分支并發(fā)連接的模塊并發(fā)驅動分支關聯的模塊(這些關聯模塊所需的輸入數據相同,彼此不相關, 可進行并行處理),如模塊1的輸出可并發(fā)驅動模塊2-4,模塊2-4具有相同的輸入,并行處理,當模塊1尚未執(zhí)行完畢時,模塊2-4都處于等待狀態(tài),無法進一步執(zhí)行后面的流程。而分支聚合連接的模塊只有等到分支的數據流都完成時才會驅動聚合的模塊進行處理,如只有當模塊5-7都執(zhí)行完畢后,模塊8才會進行后面的處理。服務器接受到來自客戶端的作業(yè),加入作業(yè)隊列,等待作業(yè)調度進程的調度。作業(yè)調度進程把作業(yè)分配到計算節(jié)點,節(jié)點首先對這些作業(yè)進行語義解析。圖3是計算節(jié)點上作業(yè)的處理流程圖。對于普通作業(yè),計算節(jié)點對數據進行分析,按普通作業(yè)類型調用執(zhí)行函數啟動作業(yè)執(zhí)行進程。對于數據可分割作業(yè),先進行消息解析,根據該作業(yè)的參數信息,構建數據工作流,建立業(yè)務處理流程邏輯。節(jié)點將作業(yè)的每一個處理模塊都看作是一個普通作業(yè),或者說子作業(yè),整個作業(yè)的處理流程可看作由這些子作業(yè)組合而成的。對于分配到各子計算節(jié)點的子作業(yè),將按普通作業(yè)類型調用執(zhí)行函數啟動作業(yè)執(zhí)行進程。在基于集群系統(tǒng)的地震數據處理平臺中,數據可分割作業(yè)將以主從節(jié)點的形式進行處理。如圖4所示,計算節(jié)點上數據可分割作業(yè)的執(zhí)行流程大致如下1.作業(yè)調度進程把數據可分割作業(yè)發(fā)送給主計算節(jié)點,同時也把所有空閑的計算節(jié)點IP都發(fā)送給主計算節(jié)點。2.主計算節(jié)點啟動主執(zhí)行控制進程,對數據進行分析,按照作業(yè)中描述的分割策略,計算子作業(yè)數和每個子作業(yè)計算的數據范圍,并對作業(yè)文件進行分割。3.主計算節(jié)點從作業(yè)調度進程發(fā)送的空閑節(jié)點中選擇一些節(jié)點用于運行子執(zhí)行控制系統(tǒng),并把選中的節(jié)點發(fā)送給作業(yè)調度服務器。4.子計算節(jié)點接收請求后,啟動子執(zhí)行控制進程,從主計算節(jié)點讀取數據,并把計算結果發(fā)回主計算節(jié)點。5.主計算節(jié)點把收到的子計算節(jié)點的數據進行合并,并向服務器反饋任務運行完成狀態(tài)。本發(fā)明的基于數據單元的地震數據的災難恢復方法,具體包括如下步驟Si.在每一個計算節(jié)點上進行檢查點的保存,檢查點保存計算節(jié)點上的所有作業(yè)運行信息,作業(yè)運行信息以數據單元為基本單位進行記錄;S2.服務器對每一個計算節(jié)點進行故障檢測;S3.服務器檢測出發(fā)生故障的計算節(jié)點后,從共享存儲中讀取該計算節(jié)點的檢查點,將故障計算節(jié)點上的作業(yè)卷回恢復到重新分配的空閑節(jié)點上,再結合作業(yè)的配置信息決定作業(yè)的恢復策略以繼續(xù)進行該作業(yè)的處理,所述的恢復策略具體為該作業(yè)是從頭開始執(zhí)行還是從檢查點開始執(zhí)行。這里的計算節(jié)點可以是主計算節(jié)點,也可以是子計算節(jié)點。主計算節(jié)點對應的是作業(yè),而子計算節(jié)點對應的是子作業(yè)。如上述所述,這里數據單元具體為道、道集、坡面、或者三維數據體本身。這里的從檢查點開始執(zhí)行具體為所述的重新分配的空閑節(jié)點按照檢查點與作業(yè)的配置信息計算出下一個待處理的數據單元的位置,從該位置開始繼續(xù)進行作業(yè)的處理。更進一步的,所述的計算的具體過程為若配置信息記錄的作業(yè)每次執(zhí)行時所需要的數據單元的個數是N,檢查點記錄的下一個待處理的數據單元的位置是M,則該作業(yè)被重新調度后將會從kN+Ι個數據單元處進行作業(yè)的處理,其中,kN< (M-I) ^ (k+l)N, k為整數。下面進行具體闡述。對于地震作業(yè)來說,系統(tǒng)的容錯機制是非常重要的,是作業(yè)能否有效地成功執(zhí)行的關鍵。當某個計算節(jié)點發(fā)生故障,節(jié)點上的作業(yè)運行失敗時,不僅需對當前失效節(jié)點上的任務進行恢復,而且還需要在上次運行的基礎上,繼續(xù)執(zhí)行后面的工作,而不是從頭開始執(zhí)行。為了實現這個目的,設置檢查點,保存與恢復進程的狀態(tài)顯得尤其重要。圖5與圖6給出了采用本發(fā)明方法的地震數據處理平臺的服務器與計算節(jié)點的處理流程圖。圖7為采用本發(fā)明方法的地震數據處理平臺的災難恢復整體流程示意圖。本發(fā)明的方法為地震作業(yè)保存自身狀態(tài)以防止計算節(jié)點故障提供了便利,如果一個計算節(jié)點突然失效,它可以從檢查點將故障前狀態(tài)快速恢復到另一節(jié)點上,并且精確到每一個數據單元,從而有效提高了系統(tǒng)的魯棒性與可用性,提高系統(tǒng)的效率,減少了不必要的時間和資源上的浪費。在地震數據處理平臺的災備策略中引入了數據單元的概念,在檢查點的保存與卷回恢復過程中以數據單元為核心進行災難恢復。以主從節(jié)點的形式對地震作業(yè)進行處理,并根據不同的策略對地震作業(yè)進行分割,將分割后的功能模塊作為子作業(yè)進行處理。即對主計算節(jié)點上的可分割作業(yè)進行分割, 使得一個作業(yè)變成若干個子作業(yè),并將各個子作業(yè)分配到各個子計算節(jié)點。通過設置不同的作業(yè)災備策略,靈活適應不同的災備需求,實現了一般災難恢復與基于數據單元的災難恢復間的并存?;诰砘鼗謴偷男枰?,檢查點中記錄了如下參數作業(yè)災備策略、運算數據的數據單元類型、下一個待處理的數據單元序號等。在故障恢復的過程中,當作業(yè)或子作業(yè)被重新調度到某新的節(jié)點上開始執(zhí)行時,通過事先寫好的一個函數接口,生成配置信息,該配置信息中維護的信息包括了該作業(yè)或子作業(yè)是否需要從頭開始執(zhí)行,運算數據的數據單元類型,每次執(zhí)行時所需的數據單元的個數等。在步驟Sl中,每一個計算節(jié)點,周期性地提取當前節(jié)點的運行進程映像,并將其保存到共享存儲中形成檢查點文件。共享存儲對各個計算節(jié)點的檢查點文件進行維護。一旦某個計算節(jié)點發(fā)生故障,服務器將從共享存儲中讀取檢查點,并將之卷回恢復到另一節(jié)
      ;卜.ο檢查點保存的進程狀態(tài)信息中主要包含有以下參數執(zhí)行進程名、作業(yè)ID、作業(yè)文件名、作業(yè)文件路徑、作業(yè)類型、分割策略、分割后的數據單元起止序號列表、子作業(yè)節(jié)點個數、子作業(yè)節(jié)點IP、Port列表、數據分割參數(子作業(yè)序號、運算數據的數據單元起止序號、主計算節(jié)點IP、主計算節(jié)點Port)、讀模塊的輸入數據文件路徑、寫模塊的輸出數據文件路徑等。另外,基于數據單元的災難恢復,還需要記錄如下參數作業(yè)災備策略、運算數據的數據單元類型、下一個待處理的數據單元序號等。地震數據的一個重要特點就是非耦合性,數據之間的獨立性很強。地震數據以數據單元作為基本單元,對于災難恢復來說,記錄當前處理的作業(yè)中已經處理的數據單元的序號具有重要的意義。一旦某個地震作業(yè)或者子作業(yè)運行失敗,無需從頭執(zhí)行該作業(yè),只需要根據記錄,在上次運行的基礎上,從下一個待處理的數據單元開始,繼續(xù)進行下面的處理。這就避免了工作時間的浪費,提升了大規(guī)模地震作業(yè)處理的效率。對于不同的地震作業(yè),數據單元是不一樣的。絕大多數地震作業(yè)都是以道,或者道集作為基本單位的,節(jié)點處理完每一道或道集后,在將計算結果寫入輸出文件和與主計算節(jié)點進行通信的同時,還將保存新的檢查點,以便保證節(jié)點狀態(tài)與災備信息的同步。對于以坡面為基本單位的地震作業(yè),也采取類似的處理。但對于以三維數據體本身為單位的地震作業(yè),由于粒度很大,若采用基于數據單元的檢查點策略,將帶來極大的資源的浪費。在實際應用中,這類作業(yè)發(fā)生故障后從頭開始執(zhí)行的效率其實也是差不多的,故對于這種情況將單獨進行處理。對于不同的處理模塊來說,由于其對地震數據進行的處理各不相同,故各模塊中的數據單元的大小可能會有差異。但在同一個處理模塊之中,數據單元的大小是一致的。在步驟S2中,具體采用心跳機制來進行計算節(jié)點的故障檢測。系統(tǒng)通過計算節(jié)點周期性地向服務器發(fā)送心跳包,來檢測計算節(jié)點的工作狀態(tài)。服務器維護著一個節(jié)點列表,該列表中主要包含了以下信息計算節(jié)點ID、計算節(jié)點IP、計算節(jié)點端口號、計算節(jié)點狀態(tài)、計算節(jié)點最后心跳包時間等。其中,計算節(jié)點狀態(tài)為可用或不可用,計算節(jié)點最后心跳包時間為服務器最后一次收到來自該計算節(jié)點的心跳包的時間。服務器中有一個心跳監(jiān)控進程,負責接收來自各個計算節(jié)點的心跳包。服務器啟動后,心跳監(jiān)控進程開始運行,同時,服務器讀取共享存儲上的計算節(jié)點配置文件進行節(jié)點列表的初始化,其中,節(jié)點狀態(tài)設置為不可用,節(jié)點最后心跳包時間設置為空。計算節(jié)點啟動后,將向服務器發(fā)送心跳包,以在服務器上進行節(jié)點注冊。服務器收到來自節(jié)點的心跳包后,對節(jié)點列表中的相應表項進行更新。同時,向未注冊節(jié)點發(fā)送注冊確認消息。計算節(jié)點上設置有心跳時間間隔,節(jié)點初始化之后,將每隔一個心跳間隔向服務器發(fā)送心跳包。服務器收到心跳包后,更新該節(jié)點的節(jié)點最后心跳包時間。此處為了減少服務器的負荷,采用了節(jié)點主動發(fā)送心跳包,而不是服務器主動發(fā)送的形式。服務器上設置有心跳超時值。服務器會定時對節(jié)點列表進行檢測,若檢測到某個節(jié)點的最后心跳包時間已超過心跳超時值,則報告心跳超時,服務器將主動向該節(jié)點發(fā)送請求,并等待回復,以便確認節(jié)點是否已經真的死掉。若超過事先設定的最大等待時間,服務器仍未收到來自該節(jié)點的消息,則認為該節(jié)點已經死掉。服務器更新節(jié)點列表,將節(jié)點列表中的該節(jié)點狀態(tài)設置為不可用,節(jié)點最后心跳包時間設置為空。在步驟S3中,服務器檢測出發(fā)生故障的節(jié)點后,將從共享存儲中快速讀取該節(jié)點的檢查點,將故障節(jié)點狀態(tài)卷回恢復到重新分配的空閑節(jié)點上。本發(fā)明的方法還對不同的地震作業(yè)設置了不同的作業(yè)災備策略。在實際的處理中,并非所有的作業(yè)都支持基于數據單元的災難恢復,部分作業(yè)在執(zhí)行失敗后,需要從頭開始執(zhí)行,而無法在上次運行的基礎上繼續(xù)后面的處理,比如以三維數據體為單位的地震作業(yè)。為了對各類不同的情況進行分別的處理,當作業(yè)被分配到某一計算節(jié)點上執(zhí)行時,這里可以通過事先寫好的函數接口,首先生成一個配置文件,即配置信息,包含有作業(yè)災備策略、運算數據的數據單元類型等基本信息,計算節(jié)點將結合配置信息中的信息進行相應的處理?;诰砘鼗謴偷男枰瑱z查點中記錄了如下參數作業(yè)災備策略、運算數據的數據單元類型、下一個待處理的數據單元序號等。配置信息與檢查點中記錄的節(jié)點運行狀態(tài)信息共同決定了災難恢復的策略。假如配置信息中維護的信息顯示該作業(yè)或子作業(yè)需要從頭開始執(zhí)行,則不管之前這個作業(yè)或子作業(yè)已經執(zhí)行了多少數據,在重新調度到新的節(jié)點上后都將會從頭開始執(zhí)行,而不會在上次運行的基礎上繼續(xù)進行下面的處理。否則,新節(jié)點都將按照檢查點,嚴格的卷回恢復故障節(jié)點的狀態(tài),從而保證在新的節(jié)點上,這些作業(yè)或子作業(yè)依然會在上次運行的基礎上,從下一個待處理的數據單元開始,繼續(xù)進行下面的處理。配置信息還包括了該作業(yè)或子作業(yè)每次執(zhí)行時所需的數據單元的個數。若配置信息記錄的作業(yè)每次執(zhí)行時所需要的數據單元的個數是N,檢查點記錄的下一個待處理的數據單元的位置是M,則該作業(yè)被重新調度后將會從kN+Ι個數據單元處進行作業(yè)的處理,其中,kN< (M-I)彡(k+l)N, k為整數。而對于kN與M之間的那些數據,即使上次運行的時候已經執(zhí)行過了,仍將會重新執(zhí)行。通過配置信息可以適應不同的情況的需要,避免出現無論什么情況都重新執(zhí)行整個作業(yè)或子作業(yè)的情形,可以盡可能高效地利用之前的節(jié)點的工作成果,提高資源的利用率和作業(yè)的整體執(zhí)行效率??梢钥闯?,本發(fā)明的方法針對地震數據自身的特點,結合數據單元的概念,通過對作業(yè)處理中的數據單元信息進行記錄,并保存在檢查點中,在檢查點回卷恢復技術的基礎上,實現了基于數據單元的地震數據的災難恢復。在檢查點中對作業(yè)處理的數據單元信息進行記錄,那么一旦某個計算節(jié)點發(fā)生故障,導致該計算節(jié)點上的作業(yè)執(zhí)行失敗后,無需每次都從頭執(zhí)行該作業(yè),只需要根據記錄,在上次運行的基礎上,從下一個待處理的數據單元開始,繼續(xù)進行下面的處理。如果一個計算節(jié)點突然失效,本發(fā)明的方法可以從檢查點將故障前狀態(tài)快速恢復到另一節(jié)點上,并且精確到每一個數據單元,從而有效提高了系統(tǒng)的魯棒性與可用性,極大地提高了系統(tǒng)的效率,減少了不必要的時間和資源上的浪費,具有良好的可用性和可擴展性。
      權利要求
      1.一種基于數據單元的地震數據的災難恢復方法,其特征在于,包括如下步驟51.在每一個計算節(jié)點上進行檢查點的保存,檢查點保存計算節(jié)點上的所有作業(yè)運行信息,作業(yè)運行信息以數據單元為基本單位進行記錄;52.服務器對每一個計算節(jié)點進行故障檢測;53.服務器檢測出發(fā)生故障的計算節(jié)點后,從共享存儲中讀取該計算節(jié)點的檢查點,將故障計算節(jié)點上的作業(yè)卷回恢復到重新分配的空閑節(jié)點上,再結合作業(yè)的配置信息決定作業(yè)的恢復策略以繼續(xù)進行該作業(yè)的處理,所述的恢復策略具體為該作業(yè)是從頭開始執(zhí)行還是從檢查點開始執(zhí)行。
      2.根據權利要求1所述的災難恢復方法,其特征在于,步驟Sl所述的數據單元具體為道、道集、坡面、或者三維數據體本身。
      3.根據權利要求1所述的災難恢復方法,其特征在于,步驟S3所述的從檢查點開始執(zhí)行具體為所述的重新分配的空閑節(jié)點按照檢查點與作業(yè)的配置信息計算出下一個待處理的數據單元的位置,從該位置開始繼續(xù)進行作業(yè)的處理。
      4.根據權利要求3所述的災難恢復方法,其特征在于,所述的計算出下一個待處理的數據單元的位置的具體過程為若配置信息記錄的作業(yè)每次執(zhí)行時所需要的數據單元的個數是N,檢查點記錄的下一個待處理的數據單元的位置是M,則該作業(yè)被重新調度后將會從 kN+Ι個數據單元處進行作業(yè)的處理,其中,kN< (M-I)<(k+l)N,k為整數。
      全文摘要
      本發(fā)明公開了一種基于數據單元的地震數據的災難恢復方法。本發(fā)明的方法在檢查點回卷恢復技術的基礎上,針對地震數據的特點,結合數據單元的概念,通過對作業(yè)處理過程中的數據單元信息進行記錄,并保存在檢查點中,如果某個計算節(jié)點突然失效,導致該計算節(jié)點上的作業(yè)執(zhí)行失敗,本發(fā)明的方法通過檢查點中記錄的作業(yè)處理的數據單元信息,從檢查點將故障前狀態(tài)快速恢復到另一節(jié)點上,并且精確到每一個數據單元。采用本發(fā)明的方法,使得地震數據處理平臺無需每次都從頭執(zhí)行故障節(jié)點上的作業(yè),只需要根據記錄,在上次運行的基礎上,從下一個待處理的數據單元開始,繼續(xù)進行下面的處理。
      文檔編號G06F11/14GK102411520SQ20111028151
      公開日2012年4月11日 申請日期2011年9月21日 優(yōu)先權日2011年9月21日
      發(fā)明者胡光岷, 趙太銀, 高驥翔 申請人:電子科技大學
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1