專利名稱:一種具有預恢復功能的文件級連續(xù)數據保護方法
技術領域:
本發(fā)明屬于數據存儲領域,具體涉及一種具有預恢復功能的文件級連續(xù)數據保護方法。該方法能夠實現(xiàn)在時間和空間兩個維度上的預恢復功能,減少用戶的恢復時間。
背景技術:
目前,連續(xù)數據保護(Continuous Data Protection,CDP)是最熱門的數據保護方式。連續(xù)數據保護能夠持續(xù)捕獲和保存數據變化,并將變化后的數據獨立于初始數據進行保存。利用連續(xù)數據保護,用戶可以將數據恢復到過去任意一個時間點,從時間上極大地保護了用戶數據。在業(yè)界,有兩個重要指標用來衡量一個數據保護系統(tǒng)RTO(Recovery Time Object,恢復時間目標)^P RPO(Recovery Point Object,恢復點目標)。RTO表示在發(fā)現(xiàn)故障后,多長時間可以恢復數據和系統(tǒng)的正常運行,簡單的理解就是恢復數據時的時間開銷。 RTO越小越好,理論上立即恢復(RTO = O)是最佳。RPO表示在發(fā)現(xiàn)故障后,數據和業(yè)務能夠恢復到出現(xiàn)故障時的多長時間以前,簡單的理解就是恢復數據后所丟失的數據量。例如 用戶早上8點備份了數據,而中午12點時數據丟失損壞。此時,如果用戶用早上8點的數據進行恢復,那么RPO就是4小時。同樣RPO也是越小越好,理論上一點數據都不丟(RP0 =0)是最好。連續(xù)數據保護方法根據保護粒度的不同分為塊級、文件級和應用級。塊級連續(xù)數據保護實現(xiàn)簡單,但是靈活性不好,且不能提供語義。在用戶需要將某一文件恢復到過去某一個時刻時,首先要將這個文件所在的卷恢復到過去的那個時刻,然后才能得到此文件。同時由于塊級連續(xù)數據保護不能提供語義,所以不能保證已經恢復了的文件是完整可用的版本,這大大增加了 RT0。文件級連續(xù)數據保護是以文件為基本粒度進行的,能夠攔截用戶對文件的1/0請求,并對文件改變進行保護。文件級連續(xù)數據保護維護了同一個文件在時間上的不同版本,每一個版本都是完整可用的。文件級連續(xù)數據保護具有語義,并有很好的靈活性。目前,文件級連續(xù)數據保護是企業(yè)界和計算機科學家們共同的關注熱點。在理論上和實際中文件級連續(xù)數據保護的RPO都為0,但是RTO往往比較大,成為了文件級連續(xù)數據保護發(fā)展的一個瓶頸。主要的原因在于大多數情況下用戶并不知道故障的確切發(fā)生時間,即用戶并不知道需要將數據恢復到哪一個時間點。所以在實際中經常發(fā)生這樣的情況用戶先將部分文件恢復到過去的某一個時間點,查看這些恢復后的文件,確定故障是在這個時間點之前還是之后發(fā)生的;然后再將部分文件恢復到在此之前或者之后的某一個時間點,往復幾次后,確定了真正需要恢復的時間點,之后才將所需要的全體數據進行恢復。事實上用戶會多次恢復多個文件到過去的多個時間點來確定真正需要恢復的時間點。因此在實際應用中的RTO是以下三部分操作的時間之和為了確定真正需要的恢復時間點所進行的對多個文件的多次恢復操作的時間消耗(簡稱為恢復測試文件時間)、用戶閱讀判斷測試文件的時間消耗(簡稱為用戶判斷時間)和恢復所需全部數據的恢復時間消耗(簡稱為恢復時間)。其中,恢復測試時間和用戶判斷時間是不可測因素,成為RTO 居高不下的一個重要原因。
頻繁模式挖掘算法是數據挖掘中很重要的一個方向,目前已有一些經典算法,例如Apriori算法等,具體參見《數據挖掘原理與算法》毛國君著清華大學出版社,ISBN: 7302106312 ;《數據挖掘導論》[美]Pang-Ning TanMichael Steinbach Vipin Kumar 著人民郵電出版社ISBN :71151414440
發(fā)明內容
本發(fā)明的目的在于提供一種具有預恢復功能的文件級連續(xù)數據保護方法,該方法能夠有效的減少RTO。本發(fā)明提供的一種具有預恢復功能的文件級連續(xù)數據保護方法,包括保護過程和恢復過程,其特征在于,該方法還包括挖掘過程,挖掘過程利用頻繁模式挖掘算法,通過挖掘保護過程中收集到的I/O序列,得到I/O請求之間的關聯(lián)關系,以此對恢復過程中用戶的輸入進行預測,并根據預測得到的結果提前進行恢復,以減少RTO。所述恢復過程按照步驟Rl至R14進行Rl初始化建立目標文件隊列NF,預恢復文件隊列PF,已恢復文件庫ND,并初始化 NF、PF和ND為空;其中,NF,PF和ND中的每一個元素均是一個二元組,擁有兩個屬性文件路徑和目標時間;R2接收來自用戶的恢復請求,得到目標文件F和目標恢復時間點T ;R3在已恢復文件庫ND中查找F和T,如果找到,將F和T加入目標文件隊列NF,然后進入步驟R6 ;如果沒有在ND中找到F和T,進入步驟R4 ;R4恢復目標文件F到T時刻;R5將F和T分別加入已恢復文件庫ND和目標文件隊列NF ;R6更新預恢復文件隊列PF ;R7判斷預恢復文件隊列PF是否為空,如果為空,進入步驟R8 ;如果不為空,進入步驟R9 ;R8等待用戶請求,如果用戶請求來到,進入R13 ;R9取預恢復文件隊列PF頭部的第一個元素(P1, T1),在已恢復文件庫ND中查找 (P1, T1),如果不存在,進入步驟RlO ;如果存在,進入步驟Rll ;RlO恢復P1到T1時刻,將(P1, T1)加入到已恢復文件庫ND ;Rll從預恢復文件隊列PF中刪除(P1, T1);R12判斷是否有請求達到,如果沒有,進入步驟R7 ;如果有請求達到,進入步驟 R13 ;R13判斷請求類型,如果是結束請求,進入R步驟14;如果是恢復請求,進入步驟 R2 ;R14 結束。本發(fā)明利用用戶判斷時間進行時間和空間兩個維度上的預恢復,也就是利用系統(tǒng)空閑時間恢復部分用戶可能會需要的文件,將恢復測試文件時間與用戶判斷時間盡可能的重合,以減少RT0。本發(fā)明借鑒計算機存儲系統(tǒng)中的預取概念,應用在連續(xù)數據保護領域,利用系統(tǒng)空閑時間提前進行部分文件的恢復,能夠有效減少RT0,提高文件級連續(xù)數據保護系統(tǒng)的性能。
圖1是整體關系圖;圖2是恢復過程的流程圖;圖3是恢復過程的狀態(tài)轉換圖;圖4是預恢復文件隊列更新過程的流程圖。
具體實施例方式本發(fā)明能夠將RTO減少到什么程度,取決于用戶需要的文件有多少已經被預恢復了。災難發(fā)生后,如果用戶除了第一個以外的需要恢復的文件,都已經被預恢復了,實現(xiàn)了恢復測試文件時間與用戶判斷時間的幾乎重合,那么本發(fā)明將達到最好的效果。于是分析用戶行為模式,提出有效的預恢復算法成為核心問題。當災難發(fā)生后,用戶在不知道確切的故障發(fā)生時間時,會先恢復部分文件來確定故障發(fā)生時間。一般情況下,用戶會恢復他比較熟悉的、經常操作的文件。在計算機系統(tǒng)來說,也就是最近最頻繁操作的文件。很可能,用戶將一個文件恢復到過去某一個時間點后, 發(fā)現(xiàn)并不能通過此文件判斷出這個時間點距離故障時間點的遠近,還需要再恢復其他的文件進行輔助判斷。在平時的業(yè)務處理中,這些文件往往一起進行操作,具有內容相關性。舉個例子,在數據庫中,表之間經常有共同的列,一般情況下會將相關的幾個表一起進行處理。在I/O序列中,我們也會常看到某些文件項集(幾個文件排成的序列,順序不一定)出現(xiàn)的頻率很高。由此,有效的預恢復算法要能夠找到使用頻繁的文件和出現(xiàn)頻繁的文件項集(簡稱為頻繁項集)。使用頻繁的單個文件就是文件個數是1的頻繁項集。另外,在用戶確定確切的故障發(fā)生時間時,會需要將部分文件恢復到多個時間點進行判斷。基于以上分析,我們的預恢復算法要找到包含用戶目前輸入文件的頻繁項集和這個文件在時間上之前和之后的版本。找到同一個文件在時間軸上的不同版本是連續(xù)數據保護技術中比較基礎的功能。怎樣找到頻繁項集是我們目前需要解決的問題。在本發(fā)明中我們對頻繁項集的定義是在一個I/O序列中,頻繁出現(xiàn)的文件集合。 舉個例子,I/O序列是a,t,e, i,q,ο, t,a, k,i。這個I/O長度為10,長度為2的文件集合一共有 9 個,有{a, t},{e,t},{e,i},{i,q},{q,ο},{ο, t},{a, t},{a, k},{i,k}。在文件集合中,文件之間的順序是可以任意的。其中{a,t}出現(xiàn)的頻率是2/9,設最小支持度是20%,那么{a,t}就是一個頻繁項集。m維頻繁項集表示元素個數為m的頻繁項集。本發(fā)明的挖掘過程可以利用頻繁模式挖掘中的挖掘頻繁項集的算法,得到I/O序列中的關聯(lián)關系,以期對恢復過程中用戶的輸入做出預測。由于頻繁模式挖掘已經有很多研究成果,所以在這里我們對這個算法的細節(jié)不做詳細介紹。本發(fā)明是對原有的文件級連續(xù)數據保護方法的一個擴充和改進。原有的文件級連續(xù)數據保護方法主要有兩個過程保護過程和恢復過程。保護過程是伴隨著被保護文件系統(tǒng)的I/O操作進行的,將被保護文件系統(tǒng)的改變以一定的形式進行存儲。當被保護系統(tǒng)發(fā)生故障或者災難時,用戶啟動恢復過程?;謴瓦^程需要用戶輸入需要恢復的文件(可以是卷,也可以是文件夾,或者是單個文件)和需要恢復到的時間點?;謴瓦^程利用保護過程存儲的信息進行恢復操作。本發(fā)明在原有文件級連續(xù)數據保護方法的基礎之上新增加了一個過程挖掘過程,并重點擴充了恢復過程的處理流程,已達到減少RTO的目的。利用本發(fā)明的思想和實現(xiàn)能夠改進所有已有的文件級連續(xù)數據保護方法,因為本發(fā)明并不涉及保護過程和恢復過程的具體實現(xiàn),而是增加了挖掘過程,擴充了保護過程和恢復過程的處理流程。 在形式和實現(xiàn)上,本發(fā)明只是對原有文件級連續(xù)數據保護方法的一個擴充,因此適用于改進目前所有的文件級連續(xù)數據保護方法。本發(fā)明主要有三個過程保護過程、挖掘過程和恢復過程。圖1表明了這三個過程的觸發(fā)方式和運行的時間關系。保護過程、挖掘過程和恢復過程這三個過程是異步進行的, 在時間上沒有必然依賴關系,只是有一些數據交互。本發(fā)明在保護過程中將用戶的I/O序列保存下來,提供給挖掘過程輸入,其他的與一般的文件級連續(xù)數據保護的保護過程相同,文件操作序列即I/O序列。保護過程是伴隨著用戶的平時業(yè)務流程一起進行的,見圖1。根據應用環(huán)境的需要設置挖掘頻率,建議是在3周到10周啟動一次挖掘過程。挖掘頻率的設置與被保護文件系統(tǒng)的文件更新頻率有關,如果被保護文件系統(tǒng)的文件更新頻率比較快,則需要較高的挖掘頻率。如果是應用在公司企業(yè)的正常辦公系統(tǒng)中,文件更新頻率比較慢,則不需要很高的挖掘頻率,8-10周一次就可以了。啟動一次挖掘過程,對這段時間內保護過程產生的I/O序列(局部I/O序列)進行挖掘,產生對應于這段時間的一個局部頻繁項集庫。局部頻繁項集庫擁有時間屬性,有一個起始時間和終止時間,如圖1。圖1 表示了本發(fā)明的三個過程的啟動時間和數據交互。橫向表示時間,T1, T2, T3、T4、T5表示等距的時間點,均相差M時間長度。保護過程是伴隨著用戶I/O請求一直進行的,挖掘過程是定期進行的,在圖中可看出,挖掘過程間隔M時間長度進行一次,M即挖掘頻率?;謴瓦^程由用戶啟動。在恢復過程中,需要用到相應時間的局部頻繁項集庫,例如在T4-T5時間內的恢復請求,需要用到T3-T4時間段產生的局部頻繁項集庫。挖掘過程的核心是挖掘頻繁項集的算法,此算法在90年代已經提出,并得到很大的改善,對本發(fā)明對此算法沒有特殊的要求,在此就不對算法過程進行詳細描述。在這里, 我們將挖掘頻繁項集的算法當作一個黑盒子,輸入是局部I/O序列(即被挖掘對象)和最小支持度,輸出是挖掘出的局部頻繁項集庫。局部頻繁項集庫中都是頻率超過最小支持度的頻繁項集。最小支持度的數值是在O到1之間,建議在0. 3以上。圖2闡述了恢復過程。在恢復過程中重點是利用兩次恢復請求之間的等待時間 (即用戶判斷時間),進行預恢復操作,以達到減少RTO的目的。圖3表示了在恢復過程中存在的若干狀態(tài),以及這些狀態(tài)之間的轉換。更新預恢復文件隊列PF的過程是恢復過程中非常重要的一步,同時,不局限于預恢復的方式和算法,任何不脫離本發(fā)明所公開的精神下完成的等效或修改,都落入本發(fā)明保護的范圍,用Gl-Gll和圖4進行闡述說明。本發(fā)明的恢復過程(圖2所示),按照(R1-R14)進行。Rl 初始化建立目標文件隊列NF,預恢復文件隊列PF,已恢復文件庫ND,并初始化NF、PF和ND為空。其中,NF, PF和ND中的每一個元素均是一個二元組,擁有兩個屬性 文件路徑和目標時間。R2 接收來自用戶的恢復請求,得到目標文件F和目標恢復時間點Τ。R3 在已恢復文件庫ND中查找(F,Τ),如果找到,將(F,Τ)加入目標文件隊列NF, 然后進入R6 ;如果沒有在ND中找到(F,Τ),進入R4。
R4 恢復目標文件F到T時刻。R5 將(F,T)分別加入已恢復文件庫ND和目標文件隊列NF。R6 更新預恢復文件隊列PF。R7 判斷預恢復文件隊列PF是否為空,如果為空,進入R8 ;如果不為空,進入R9。R8 等待用戶請求,如果用戶請求來到,進入R13。R9:取預恢復文件隊列PF頭部的第一個元素(P1, T1),在ND中查找(P1, T1),如果不存在,進入RlO ;如果存在,進入R11。RlO 恢復P1到T1時刻,將(P1, T1)加入到ND。Rll 從預恢復文件隊列PF中刪除(P1, T1)。R12 判斷是否有請求達到,如果沒有,進入R7 ;如果有請求達到,進入R13。R13 判斷請求類型,如果是結束請求,進入R14 ;如果是恢復請求,進入R2。R14:結束。在恢復過程中,在不執(zhí)行用戶的恢復請求時,就一直進行預恢復操作,一直到預恢復隊列為空。這樣的流程設計可以保證充分利用系統(tǒng)空閑時間進行預恢復操作,以達到減少RTO的目的。圖4闡述了預恢復文件隊列的更新過程。這個過程是由恢復過程(圖2所示)啟動,有兩個輸入參數目標文件隊列NF和預恢復文件隊列PF。這兩個參數都是由恢復過程提供的。執(zhí)行結果是生成了預恢復文件,并添加到預恢復文件隊列。更新預恢復文件隊列的過程按照(Gl-Gll)進行Gl 獲取NF(目標文件隊列)和PF(預恢復文件隊列)。G2 獲取NF中首部的第一個元素(P1, T1)。G3 將(P1, T1)基于時間T1的前一個版本(P1, T0)和后一個版本(P1, T2)添加到 PF。G4 根據T1找到從挖掘過程中得到的相應的局部頻繁項集庫S,即T1要大于此頻繁項集庫的起始時間,小于等于其終止時間。G5 取得S中包含元素最多的頻繁項集的元素個數K,賦值η = K_l。G6 判斷η是否大于0,如果η大于0,進入G7 ;如果η小于等于0,進入Gll。G7 取NF中首部的的η個元素的文件路徑,組成集合Νη。
G8 取S中所有的m維頻繁項集,要求m大于n,組成集合F_m。G9 將集合F-m中的每一個頻繁項集與Nn做差運算(集合運算中的一種),得到的差集中的元素與T1組成二元組后,加入到PF。GlO 將η減1后賦給n,進入G6。Gll 結束。以上所述為本發(fā)明的較佳實施例而已,但本發(fā)明不應該局限于該實施例和附圖所公開的內容。所以凡是不脫離本發(fā)明所公開的精神下完成的等效或修改,都落入本發(fā)明保護的范圍。
權利要求
1.一種具有預恢復功能的文件級連續(xù)數據保護方法,其特征在于,該方法包括保護過程、恢復過程和挖掘過程,挖掘過程以預先設定的最小支持度和保護過程獲取的局部I/ 0序列作為輸入,通過挖掘得到局部頻繁項集庫,并將局部頻繁項集庫提供給恢復過程使用;所述恢復過程按照步驟Rl至R14進行Rl初始化建立目標文件隊列NF,預恢復文件隊列PF,已恢復文件庫ND,并初始化NF、 PF和ND為空;其中,NF, PF和ND中的每一個元素均是一個二元組,擁有兩個屬性文件路徑和目標時間;R2接收來自用戶的恢復請求,得到目標文件F和目標恢復時間點T ; R3在已恢復文件庫ND中查找F和T,如果找到,將F和T加入目標文件隊列NF,然后進入步驟R6 ;如果沒有在ND中找到F和T,進入步驟R4 ; R4恢復目標文件F到T時刻;R5將F和T分別加入已恢復文件庫ND和目標文件隊列NF ; R6更新預恢復文件隊列PF ;R7判斷預恢復文件隊列PF是否為空,如果為空,進入步驟R8 ;如果不為空,進入步驟R9 ;R8等待用戶請求,如果用戶請求來到,進入R13 ;R9取預恢復文件隊列PF頭部的第一個元素(P1, T1),在已恢復文件庫ND中查找(P1, T1),如果不存在,進入步驟RlO ;如果存在,進入步驟Rll ;RlO恢復P1到T1時刻,將(P1, T1)加入到已恢復文件庫ND ; Rll從預恢復文件隊列PF中刪除(P1, T1);R12判斷是否有請求達到,如果沒有,進入步驟R7 ;如果有請求達到,進入步驟R13 ; R13判斷請求類型,如果是結束請求,進入R步驟14 ;如果是恢復請求,進入步驟R2 ; R14結束。
2.根據權利要求1所述的文件級連續(xù)數據保護方法,其特征在于,步驟R6中,按照Gl 至Gll的過程更新預恢復文件隊列Gl獲取目標文件隊列NF和預恢復文件隊列PF ; G2獲取目標文件隊列NF中首部的第一個元素(P1, T1);G3將(P1, T1)基于時間T1的前一個版本(P1, T0)和后一個版本(P1, T2)添加到PF ; G4根據T1找到從挖掘過程中得到的相應的局部頻繁項集庫; G5取得局部頻繁項集庫中包含元素最多的頻繁項集的元素個數K,賦值η = K-I ; G6判斷η是否大于0,如果η大于0,進入步驟G7 ;如果η小于等于0,進入步驟Gll ; G7取目標文件隊列NF中首部的的η個元素的文件路徑,組成集合Nn ; G8取局部頻繁項集庫中所有的m維頻繁項集,要求m大于n,組成集合F_m ; G9將集合F-m中的每一個頻繁項集與Nn做差運算,得到的差集中的元素與T1組成二元組后,加入到預恢復文件隊列PF ;GlO將η減1后賦給η,進入步驟G6 ; Gll結束。
全文摘要
本發(fā)明公開了一種具有預恢復功能的文件級連續(xù)數據保護方法,包括保護過程、恢復過程和挖掘過程,挖掘過程以預先設定的最小支持度和保護過程獲取的局部I/O序列作為輸入,通過挖掘得到局部頻繁項集庫,并將局部頻繁項集庫提供給恢復過程使用;在恢復過程中重點是利用兩次恢復請求之間的等待時間進行預恢復操作,以達到減少RTO的目的。本發(fā)明利用用戶判斷時間進行時間和空間兩個維度上的預恢復,也就是利用系統(tǒng)空閑時間恢復部分用戶可能會需要的文件,將恢復測試文件時間與用戶判斷時間盡可能的重合,以減少RTO。本發(fā)明借鑒計算機存儲系統(tǒng)中的預取概念,應用在連續(xù)數據保護領域,利用系統(tǒng)空閑時間提前進行部分文件的恢復,能夠有效減少RTO,提高文件級連續(xù)數據保護系統(tǒng)的性能。
文檔編號G06F11/14GK102279778SQ20111025095
公開日2011年12月14日 申請日期2011年8月29日 優(yōu)先權日2011年8月29日
發(fā)明者葉松, 曹強, 李欣, 謝長生, 黃建忠 申請人:華中科技大學