云存儲系統(tǒng)的數(shù)據備份加速方法
【專利摘要】本發(fā)明公開了一種云存儲系統(tǒng)的數(shù)據備份加速方法,用于解決現(xiàn)有云存儲系統(tǒng)的數(shù)據備份方法效率低的技術問題。技術方案是在數(shù)據中心利用網絡爬蟲程序定期從其他網絡節(jié)點上下載數(shù)據并按塊計算數(shù)據的哈希值,在數(shù)據備份之前,根據哈希值對客戶端數(shù)據進行重復數(shù)據刪除處理;在備份過程中,通過哈希值的比較,在數(shù)據中心已有數(shù)據和云端數(shù)據中查找與客戶端重復的數(shù)據,進一步壓縮需要從客戶端復制到數(shù)據中心的數(shù)據量,利用數(shù)據中心的高帶寬和云端數(shù)據的共享性,在客戶端向數(shù)據中心備份數(shù)據的同時,從云端的網絡節(jié)點向數(shù)據中心進行數(shù)據備份,使指定用戶同數(shù)據中心之間通過網絡傳輸?shù)臄?shù)據量降到最低,進而加速數(shù)據備份并有效地提高了數(shù)據中心的存儲利用率。
【專利說明】云存儲系統(tǒng)的數(shù)據備份加速方法
【技術領域】
[0001]本發(fā)明涉及一種云存儲系統(tǒng)的數(shù)據備份方法,特別是涉及一種云存儲系統(tǒng)的數(shù)據備份加速方法。
【背景技術】
[0002]隨著個人數(shù)據量的增長,數(shù)據的容災備份日益重要。日常生活中,災難可能隨時發(fā)生,斷電,火災、水災,甚至是硬盤驅動器故障,都會使本地存儲的所有數(shù)據遭受滅頂之災。因此,用戶需要選擇遠程備份或者將文件副本存在云存儲中,使他們的數(shù)據免受災難。在線備份服務基于互聯(lián)網,可以對選定的文件自動備份。這些文件存儲在云中,可以在任意時亥IJ,任意地點,任意終端進行訪問。用戶的工作環(huán)境呈現(xiàn)出混合多樣、跨平臺甚至跨地域的特點。例如,某些用戶有在不同的時間段在不同的地點采用不同的方式(包括手機,筆記本和平板電腦等)收發(fā)同一個賬戶的郵件,或是訪問、編輯同一個文件等等。
[0003]針對這一需求,為用戶提供“云備份”服務的產品有不少,其中有針對特定數(shù)據類型的,如用于手機通訊錄同步的,又如針對文本文件和圖像文件(照片)備份和同步的;也有不限定備份對象,直接提供存儲空間的類型的,例如dropbox,百度網盤等。但是,這些產品基本都是直接將用戶數(shù)據打包上傳至服務器,受限于客戶端的接入帶寬,備份性能較差。本發(fā)明提出一種方法,針對數(shù)據中心帶寬遠高于客戶端接入帶寬的情況,充分利用數(shù)據中心的高帶寬,從Internet上其他位置獲取數(shù)據加快備份速度。
[0004]在用戶進行數(shù)據備份時,傳統(tǒng)的數(shù)據備份技術會將所有需要備份的數(shù)據依次通過網絡傳輸至數(shù)據中心。在備份的過程中,用戶端的接入帶寬是主要的瓶頸,以備份30GB的數(shù)據為例,在4Mbps的接入速度且不考慮其他因素影響的情況下,數(shù)據備份需要近18小時。如果在此期間用戶還有其他使用網絡的應用,備份時間會進一步加長。另外,由于帶寬被備份應用占用,工作的效率將受到明顯的影響。由于云數(shù)據中心服務對象多為個人用戶,不同用戶所備份的數(shù)據間存在一定的重復率,但是傳統(tǒng)的備份方式并未針對這種情況進行優(yōu)化處理,因此造成了傳輸帶寬和存儲空間的浪費。
[0005]事實上,仔細分析云存儲環(huán)境下的備份方式以及終端用戶的數(shù)據,會發(fā)現(xiàn)在這類應用場景中有如下的特點:1)用戶備份的數(shù)據來源比較多樣,相當一部分是來自互聯(lián)網的公共資源,如音樂,視頻,圖片等。而且這類數(shù)據往往是只讀的,用戶很少會對這些數(shù)據進行編輯,即使編輯也是極少量的改動;2)用戶數(shù)據改動范圍具有局部性的特點,在一段時間內被改動的數(shù)據相對集中,分布的范圍較??;3)數(shù)據中心具有較高的網絡帶寬,可以保證充分利用用戶端帶寬的基礎上從其他站點獲取數(shù)據。
[0006]現(xiàn)有的備份方式并不能適應當前應用環(huán)境的特點,在復制管理的質量和效率上都有改善的空間。
【發(fā)明內容】
[0007]為了解決云存儲系統(tǒng)的數(shù)據備份方法效率低的技術問題,本發(fā)明提供一種云存儲系統(tǒng)的數(shù)據備份加速方法。該方法在數(shù)據中心利用網絡爬蟲程序定期從其他網絡節(jié)點上下載數(shù)據并按塊計算數(shù)據的哈希值,通過對客戶端和數(shù)據中心各個數(shù)據塊以相同的方法計算哈希值;在進行數(shù)據備份之前根據這些哈希值對客戶端數(shù)據進行重復數(shù)據刪除處理;在備份過程中,通過哈希值的比較,在數(shù)據中心已有數(shù)據和云端數(shù)據中查找與客戶端重復的數(shù)據,進一步壓縮需要從客戶端復制到數(shù)據中心的數(shù)據量,同時根據對比的結果,利用數(shù)據中心的高帶寬和云端數(shù)據的共享性,在客戶端向數(shù)據中心備份數(shù)據的同時,從云端的網絡節(jié)點向數(shù)據中心進行數(shù)據備份,使指定用戶同數(shù)據中心之間通過網絡傳輸?shù)臄?shù)據量降到最低,進而加速數(shù)據備份并有效地提高數(shù)據中心的存儲利用率。
[0008]本發(fā)明解決其技術問題所采用的技術方案是:一種云存儲系統(tǒng)的數(shù)據備份加速方法,其特點是采用以下步驟:
[0009]步驟一、確定系統(tǒng)中各個節(jié)點和子系統(tǒng)所承擔的角色,并根據角色的不同,安裝相應的功能組件,以配合角色完成備份過程中的對應處理。
[0010]步驟二、在源端首次發(fā)出備份請求之前,進行特征碼預處理。
[0011](I)源端處理。首先,特征碼管理組件對源端的數(shù)據分塊進行哈希值的計算并生成哈希表,根據該表與自身的匹配查找,對源端的數(shù)據進行重刪處理,即將重復出現(xiàn)的哈希值用指向第一次出現(xiàn)該哈希值的數(shù)據塊的位置信息進行替換,同時對數(shù)據本身存儲和對應的元數(shù)據也做相應的處理。然后,將完成重刪處理的哈希表傳送到目標端的特征碼管理組件,該表即為源端哈希表。
[0012](2)目標端處理。目標端對本數(shù)據中心內部的數(shù)據進行哈希值計算,生成目標端的全局哈希表,表中保存做重刪處理后的最終結果。將該全局哈希表同源端哈希表進行比較,把哈希值匹配的項目集中起來,生成本地哈希表,并在源端、目標端的數(shù)據發(fā)生修改、刪除等變化時加以維護。
[0013](3)云端處理。目標端在完成系統(tǒng)初始化后,利用空閑的計算資源和帶寬,定期由備份服務中的數(shù)據獲取功能組件采用網絡爬蟲的方法根據一定的規(guī)則在云端獲取數(shù)據信息并計算相應的哈希值,將相應的云端位置、源端和云端哈希值的映射關系等數(shù)據備份所必需的基本信息收集后傳回目標端。爬蟲程序獲取的各個數(shù)據塊的哈希值信息記錄,若系統(tǒng)中的忽略列表不為空,則先在該表中查找,若找到匹配的項目,則停止當前數(shù)據塊信息記錄的處理,取下一條記錄進行處理;否則與目標端的全局哈希表中的項目進行比較,當一個數(shù)據塊的哈希值找到匹配的項目時,將相應的信息存入一個忽略列表,否則存入網絡哈希表。若網絡爬蟲程序在不同的網絡站點上獲得了相同的數(shù)據哈希值信息,則根據優(yōu)先原則選擇2-3個最優(yōu)的結果保存到網絡哈希表中。
[0014]步驟三、當源端發(fā)出備份請求時,源端組件先根據所有需要備份的數(shù)據塊的各條哈希值信息記錄生成源端的原始備份計劃表,并發(fā)送到目標端;目標端的特征碼管理組件將原始備份計劃表中的記錄逐條在對應的網絡哈希表和本地哈希表中進行查找,根據查找結果進行相應的處理并生成實際備份計劃表。實際備份計劃表中有三個級別的子表,在未進行查找前,所有數(shù)據塊的哈希值信息記錄都存入第一級表中,其余兩個子表均為空。在匹配查找的過程中,如果數(shù)據塊A的哈希值記錄在網絡哈希表中找到匹配的記錄,則將A對應的哈希值記錄從第一級子表中刪除,同時從網絡哈希表中將相應的哈希值記錄復制到第二級子表中,并將此條記錄從網絡哈希表中刪除;類似的若A的哈希值信息記錄在本地哈希表中找到匹配的項目,則將該數(shù)據塊的哈希值記錄從第一級子表中刪除,將本地哈希表中對應的哈希值記錄復制到第三級子表中,并刪除本地哈希表中對應的信息記錄。查找過程結束后,實際備份計劃表的第一級子表中的內容全部來自原始備份計劃表,第二級子表中的內容來自網絡哈希表,第三級子表的內容來自本地哈希表。
[0015]步驟四、數(shù)據復制處理。目標端備份管理服務將根據備份計劃表實施具體的數(shù)據復制處理。第一步,處理第一級子表。根據表中記錄將每個數(shù)據塊從源端復制到目標端,當完成一塊數(shù)據的復制時,將實際備份計劃表中對應的哈希值信息記錄刪除,并將該數(shù)據塊復制后的相應信息存入第三級子表,同時更新目標端的全局哈希表。第二步,處理第二級子表。根據表中記錄將每個數(shù)據塊從云端的網站復制到目標端,每當完成一塊數(shù)據的復制時,將對應的信息記錄從備份計劃表中刪除并在忽略列表加以保存,然后將該數(shù)據塊復制后的相應信息存入第三級子表并同時更新全局哈希表。在第三級子表中的哈希值信息記錄表明對應的數(shù)據塊已經在目標端,不需要再做數(shù)據復制處理。
[0016]步驟五、差分備份處理。在完成初次處理的全備份后,系統(tǒng)將按照一定的時間間隔進行定期的差分備份。差分備份的備份計劃表是在兩次備份處理的間隔中由每一次的源端數(shù)據更新觸發(fā)的哈希表更新直接更新至實際備份計劃表積累產生的。
[0017]本發(fā)明的有益效果是:該方法在數(shù)據中心利用網絡爬蟲程序定期從其他網絡節(jié)點上下載數(shù)據并按塊計算數(shù)據的哈希值,通過對客戶端和數(shù)據中心各個數(shù)據塊以相同的方法計算哈希值;在進行數(shù)據備份之前根據這些哈希值對客戶端數(shù)據進行重復數(shù)據刪除處理;在備份過程中,通過哈希值的比較,在數(shù)據中心已有數(shù)據和云端數(shù)據中查找與客戶端重復的數(shù)據,進一步壓縮需要從客戶端復制到數(shù)據中心的數(shù)據量,同時根據對比的結果,利用數(shù)據中心的高帶寬和云端數(shù)據的共享性,在客戶端向數(shù)據中心備份數(shù)據的同時,從云端的網絡節(jié)點向數(shù)據中心進行數(shù)據備份,使指定用戶同數(shù)據中心之間通過網絡傳輸?shù)臄?shù)據量降到最低,進而加速數(shù)據備份并有效地提高了數(shù)據中心的存儲利用率。
[0018]下面結合附圖和【具體實施方式】對本發(fā)明作詳細說明。
【專利附圖】
【附圖說明】
[0019]圖1是本發(fā)明方法備份系統(tǒng)的應用環(huán)境示意圖。
[0020]圖2是本發(fā)明方法的哈希表結構示意圖。
[0021]圖3是本發(fā)明方法特征碼管理模塊所涉及的全部哈希表集合示意圖。
[0022]圖4是本發(fā)明方法備份處理過程中的哈希表維護示意圖。
【具體實施方式】
[0023]參照圖1-4。
[0024]在本發(fā)明中,將備份系統(tǒng)中的對象根據分工的不同分為不同的角色,提供特征碼管理、備份管理和數(shù)據獲取等幾部分組件,在備份處理過程中,這些組件針對不同的角色進行相應的處理,按分工部署在各個角色中的不同的組件相互協(xié)調配合,共同完成備份處理的整個過程。
[0025]系統(tǒng)中的對象所承擔的角色有源端、目標端和云端三類。
[0026]源端:有數(shù)據備份需求的終端用戶,是數(shù)據的實際使用者,多數(shù)情況下可能是個人用戶。與目標端直接建立網絡通信通路。
[0027]目標端:為源端提供備份服務的數(shù)據中心,一般在為源端提供備份服務所需要的存儲資源的同時,一般還為源端以及其他終端用戶提供計算服務。
[0028]云端:數(shù)據中心的擴展部分,一般為可以對外提供數(shù)據下載或者數(shù)據共享服務的網絡站點。一般情況下,在備份過程中不需要同源端進行直接的數(shù)據交互。
[0029]系統(tǒng)中的備份服務包括特征碼管理,備份管理和數(shù)據獲取等。
[0030]特征碼管理:特征碼是用于唯一標識每個數(shù)據塊的指紋信息。本發(fā)明中是根據常用的哈希算法計算各個數(shù)據塊的哈希值,特征碼管理在三源端和目標端中都要用到,但是根據備份處理的需要,在不同角色中所實現(xiàn)的處理內容存在一定的差異。主要包括哈希值生成,同一角色自身的哈希表匹配和不同角色之間的哈希表匹配,哈希表的創(chuàng)建,哈希表的修改、拆分、合并以及刪除等維護處理。
[0031]備份管理:負責源端與目標端、目標端和云端之間備份過程的控制和管理。包括備份計劃的生成、備份過程的控制以及數(shù)據傳輸過程的控制等。
[0032]數(shù)據獲取管理:在目標端進行數(shù)據備份前,由目標端利用網絡爬蟲程序根據滿足終端用戶的應用習慣、使用偏好等預定義的選擇條件從云端獲取數(shù)據類型和范圍等符合條件數(shù)據的哈希值信息,并反饋給目標端,然后與特征碼管理組件配合完成在云端查找可以替代源端進行數(shù)據備份的數(shù)據源的處理。
[0033]本發(fā)明云存儲系統(tǒng)的數(shù)據備份加速方法具體步驟如下:
[0034]步驟一、初始化備份系統(tǒng)的環(huán)境。確定系統(tǒng)中各個節(jié)點和子系統(tǒng)所承擔的角色,并根據角色的不同,安裝相應的功能組件,以配合角色完成備份過程中的對應處理。
[0035]步驟二、在源端首次發(fā)出備份請求之前,進行特征碼預處理。
[0036](I)源端處理。首先,特征碼管理組件對源端的數(shù)據分塊進行哈希值的計算并生成哈希表,根據該表與自身的匹配查找,對源端的數(shù)據進行重刪處理,即將重復出現(xiàn)的哈希值用指向第一次出現(xiàn)該哈希值的數(shù)據塊的位置信息進行替換,同時對數(shù)據本身存儲和對應的元數(shù)據也做相應的處理。然后,將完成重刪處理的哈希表傳送到目標端的特征碼管理組件,該表即為源端哈希表。
[0037](2)目標端處理。目標端對本數(shù)據中心內部的數(shù)據進行哈希值計算,生成目標端的全局哈希表,表中保存做重刪處理后的最終結果。將該全局哈希表同源端哈希表進行比較,把哈希值匹配的項目集中起來,生成本地哈希表,并在源端、目標端的數(shù)據發(fā)生修改、刪除等變化時加以維護。
[0038](3)云端處理。目標端在完成系統(tǒng)初始化后,利用空閑的計算資源和帶寬,定期由備份服務中的數(shù)據獲取功能組件采用網絡爬蟲的方法根據一定的規(guī)則在云端獲取數(shù)據信息并計算相應的哈希值,將相應的云端位置、源端和云端哈希值的映射關系等數(shù)據備份所必需的基本信息收集后傳回目標端。爬蟲程序獲取的各個數(shù)據塊的哈希值信息記錄,若系統(tǒng)中的忽略列表不為空,則先在該表中查找,若找到匹配的項目,則停止當前數(shù)據塊信息記錄的處理,取下一條記錄進行處理;否則與目標端的全局哈希表中的項目進行比較,當一個數(shù)據塊的哈希值找到匹配的項目時,將相應的信息存入一個忽略列表,否則存入網絡哈希表。若網絡爬蟲程序在不同的網絡站點上獲得了相同的數(shù)據哈希值信息,則根據優(yōu)先原則選擇2-3個最優(yōu)的結果保存到網絡哈希表中。[0039]步驟三、當源端發(fā)出備份請求時,源端組件先根據所有需要備份的數(shù)據塊的各條哈希值信息記錄生成源端的原始備份計劃表,并發(fā)送到目標端;目標端的特征碼管理組件將原始備份計劃表中的記錄逐條在對應的網絡哈希表和本地哈希表中進行查找,根據查找結果進行相應的處理并生成實際備份計劃表。實際備份計劃表中有三個級別的子表,在未進行查找前,所有數(shù)據塊的哈希值信息記錄都存入第一級表中,其余兩個子表均為空。在匹配查找的過程中,如果數(shù)據塊A的哈希值記錄在網絡哈希表中找到匹配的記錄,則將A對應的哈希值記錄從第一級子表中刪除,同時從網絡哈希表中將相應的哈希值記錄復制到第二級子表中,并將此條記錄從網絡哈希表中刪除;類似的若A的哈希值信息記錄在本地哈希表中找到匹配的項目,則將該數(shù)據塊的哈希值記錄從第一級子表中刪除,將本地哈希表中對應的哈希值記錄復制到第三級子表中,并刪除本地哈希表中對應的信息記錄。查找過程結束后,實際備份計劃表的第一級子表中的內容全部來自原始備份計劃表,第二級子表中的內容來自網絡哈希表,第三級子表的內容來自本地哈希表。
[0040]步驟四、數(shù)據復制處理。目標端備份管理服務將根據備份計劃表實施具體的數(shù)據復制處理。第一步,處理第一級子表。根據表中記錄將每個數(shù)據塊從源端復制到目標端,當完成一塊數(shù)據的復制時,將實際備份計劃表中對應的哈希值信息記錄刪除,并將該數(shù)據塊復制后的相應信息存入第三級子表,同時更新目標端的全局哈希表。第二步,處理第二級子表。根據表中記錄將每個數(shù)據塊從云端的網站復制到目標端,每當完成一塊數(shù)據的復制時,將對應的信息記錄從備份計劃表中刪除并在忽略列表加以保存,然后將該數(shù)據塊復制后的相應信息存入第三級子表并同時更新全局哈希表。在第三級子表中的哈希值信息記錄表明對應的數(shù)據塊已經在目標端,不需要再做數(shù)據復制處理。
[0041]步驟五、差分備份處理。在完成初次處理的全備份后,系統(tǒng)將按照一定的時間間隔進行定期的差分備份。差分備份的備份計劃表是在兩次備份處理的間隔中由每一次的源端數(shù)據更新觸發(fā)的哈希表更新直接更新至實際備份計劃表積累產生的。
[0042]在本部分,將對本發(fā)明的實施方案中一些關鍵細節(jié)的具體方法進行說明。
[0043]1.備份服務中的并發(fā)處理。
[0044]一般,在實際的備份系統(tǒng)中,源端對象很可能存在多個,目標端會面臨同時處理多個終端用戶的備份請求的情況。因此,在本發(fā)明的備份管理中,目標端將針對每一個源端對象創(chuàng)建一個專門的進程,處理對應的特征碼管理和備份請求等。同時,對應不同的源端對象的源數(shù)據有各自獨立的一組哈希表,但全局哈希表、忽略列表和網絡哈希表僅在目標端保存一份,分別由各自對應的進程負責管理和維護。
[0045]2.哈希表的計算和維護。具體內容和步驟如下:
[0046]①在系統(tǒng)初始化處理時,先對源端設置標志位BackFlag,并置值為0,表示對應的源端未進行過數(shù)據備份;在源端、目標端和云端這三類對象計算哈希值時,規(guī)定統(tǒng)一的分塊長度,采用相同的哈希值算法,分別計算哈希值,生成對應的哈希表,在哈希表中所有項目的“引用次數(shù)”字段統(tǒng)一置為I。
[0047]②源端在哈希表初始化生成完畢后進行重刪處理,當在哈希表中數(shù)據塊A和數(shù)據塊B對應的哈希值信息記錄中的哈希值相同時,數(shù)據塊B對應哈希值信息記錄的“起始地址”字段,將記錄數(shù)據塊A在哈希表中對應的哈希值記錄的“塊號”字段的值。同時,數(shù)據塊B的“引用次數(shù)”字段置值為0,數(shù)據塊A的“引用次數(shù)”字段的值要+1。[0048]③目標端獲取到云端數(shù)據塊的哈希值信息記錄時,先在忽略列表中查找是否有匹配的記錄,如果找到則停止對當前記錄的處理,進入下一條哈希值信息記錄的處理,否則便繼續(xù)到全局哈希表中查找,如果找到匹配的哈希值記錄,則將對應的信息存入忽略列表,若未找到匹配的記錄則將當前的哈希值信息存入網絡哈希表。
[0049]④在源端數(shù)據發(fā)生更新時,根據BackFlag值的不同分三種情況處理。
[0050]當BackFlag=O時,說明系統(tǒng)尚未進行過首次備份,首先更新源端哈希表,然后在網絡哈希表和本地哈希表中查找對應數(shù)據塊的哈希值記錄,如果找到則將找到的哈希值記錄從所在的表中刪除;
[0051]當BackFlag=I時,則說明系統(tǒng)正在實施備份處理,將對應數(shù)據塊的哈希值記錄的信息更新到實際備份計劃表的第一級子表中。當該數(shù)據塊信息在更新處理前并不在第一級子表中,則需要繼續(xù)在第二級子表中查找匹配的數(shù)據塊的哈希值信息記錄,若找到則將該表和網絡哈希表中對應的哈希值記錄刪除,否則需到第三級子表中繼續(xù)查找,如果找到,將該表和本地哈希表中對應的哈希值記錄刪除。
[0052]當BackFlag=2時,說明系統(tǒng)至少完成了首次備份,先將對應數(shù)據塊的哈希值在網絡哈希表中查找,如果找到對應的哈希值信息記錄,則將網絡哈希表中對應的哈希值信息記錄復制到實際備份計劃表的第二級子表中并刪除網絡哈希表中對應的那條記錄,否則將哈希值信息記錄直接更新到實際備份計劃表的第一級子表中。
[0053]⑤當源端發(fā)出備份請求時,將BackFlag的值置為I。
[0054]⑥根據實際備份計劃表,實施數(shù)據復制。
[0055]備份計劃表中的三級子表,對應著數(shù)據復制的不同優(yōu)先級。哈希值信息存儲在第一級子表中的數(shù)據塊處于最高的備份優(yōu)先級,因為這些數(shù)據僅在源端存在,必須從源端復制到目標端。當源端的一個數(shù)據塊A的復制處理完成時,將A對應的哈希值信息記錄在第一級子表中刪除,同時將數(shù)據塊A在目標端的位置、哈希值等信息更新到第三級子表中,并同時更新全局哈希表。
[0056]當?shù)谝患壸颖碇袑臄?shù)據塊全部復制完成時,開始處理第二級子表中對應的數(shù)據塊。若第二級子表不為空時,對表中每條記錄逐次進行如下處理:
[0057]第一步,在開始復制前,根據數(shù)據塊的哈希值記錄中的云端位置信息,重新計算該云端數(shù)據源的哈希值,如果結果與更新計劃表中記錄的哈希值一致,說明云端數(shù)據與源端數(shù)據一致,直接從該云端節(jié)點復制對應的數(shù)據塊,復制成功后轉入第三步。如果不一致且該哈希值記錄中還有另一云端位置信息,則針對下一個云端數(shù)據重復本步處理,否則進入第
~.I K——少;
[0058]第二步,返回原始備份計劃表,根據相應的信息記錄,從源端復制對應的數(shù)據塊并在數(shù)據復制完成后,進入第三步;
[0059]第三步,將對應的哈希值信息記錄在第二級子表中刪除,同時將該數(shù)據塊在目標端的位置、哈希值等相關信息更新到第三級子表中,并將該數(shù)據塊的哈希值信息備份到忽略列表中,同時更新全局哈希表。當?shù)诙壸颖碇兴械挠涗浱幚硗瓿蓵r,將BackFlag值置為2,備份處理結束。
【權利要求】
1.一種云存儲系統(tǒng)的數(shù)據備份加速方法,其特征在于包括以下步驟: 步驟一、確定系統(tǒng)中各個節(jié)點和子系統(tǒng)所承擔的角色,并根據角色的不同,安裝相應的功能組件,以配合角色完成備份過程中的對應處理; 步驟二、在源端首次發(fā)出備份請求之前,進行特征碼預處理; (1)源端處理;首先,特征碼管理組件對源端的數(shù)據分塊進行哈希值的計算并生成哈希表,根據該表與自身的匹配查找,對源端的數(shù)據進行重刪處理,即將重復出現(xiàn)的哈希值用指向第一次出現(xiàn)該哈希值的數(shù)據塊的位置信息進行替換,同時對數(shù)據本身存儲和對應的元數(shù)據也做相應的處理;然后,將完成重刪處理的哈希表傳送到目標端的特征碼管理組件,該表即為源端哈希表; (2)目標端處理;目標端對本數(shù)據中心內部的數(shù)據進行哈希值計算,生成目標端的全局哈希表,表中保存做重刪處理后的最終結果;將該全局哈希表同源端哈希表進行比較,把哈希值匹配的項目集中起來,生成本地哈希表,并在源端、目標端的數(shù)據發(fā)生修改、刪除等變化時加以維護; (3)云端處理;目標端在完成系統(tǒng)初始化后,利用空閑的計算資源和帶寬,定期由備份服務中的數(shù)據獲取功能組件采用網絡爬蟲的方法根據一定的規(guī)則在云端獲取數(shù)據信息并計算相應的哈希值,將相應的云端位置、源端和云端哈希值的映射關系等數(shù)據備份所必需的基本信息收集后傳回目標端;爬蟲程序獲取的各個數(shù)據塊的哈希值信息記錄,若系統(tǒng)中的忽略列表不為空,則先在該表中查找,若找到匹配的項目,則停止當前數(shù)據塊信息記錄的處理,取下一條記錄進行處理;否則與目標端的全局哈希表中的項目進行比較,當一個數(shù)據塊的哈希值找到匹配的項目時,將相應的信息存入一個忽略列表,否則存入網絡哈希表;若網絡爬蟲程序在不同的 網絡站點上獲得了相同的數(shù)據哈希值信息,則根據優(yōu)先原則選擇2-3個最優(yōu)的結果保存到網絡哈希表中; 步驟三、當源端發(fā)出備份請求時,源端組件先根據所有需要備份的數(shù)據塊的各條哈希值信息記錄生成源端的原始備份計劃表,并發(fā)送到目標端;目標端的特征碼管理組件將原始備份計劃表中的記錄逐條在對應的網絡哈希表和本地哈希表中進行查找,根據查找結果進行相應的處理并生成實際備份計劃表;實際備份計劃表中有三個級別的子表,在未進行查找前,所有數(shù)據塊的哈希值信息記錄都存入第一級表中,其余兩個子表均為空;在匹配查找的過程中,如果數(shù)據塊A的哈希值記錄在網絡哈希表中找到匹配的記錄,則將A對應的哈希值記錄從第一級子表中刪除,同時從網絡哈希表中將相應的哈希值記錄復制到第二級子表中,并將此條記錄從網絡哈希表中刪除;類似的若A的哈希值信息記錄在本地哈希表中找到匹配的項目,則將該數(shù)據塊的哈希值記錄從第一級子表中刪除,將本地哈希表中對應的哈希值記錄復制到第三級子表中,并刪除本地哈希表中對應的信息記錄;查找過程結束后,實際備份計劃表的第一級子表中的內容全部來自原始備份計劃表,第二級子表中的內容來自網絡哈希表,第三級子表的內容來自本地哈希表; 步驟四、數(shù)據復制處理;目標端備份管理服務將根據備份計劃表實施具體的數(shù)據復制處理;第一步,處理第一級子表;根據表中記錄將每個數(shù)據塊從源端復制到目標端,當完成一塊數(shù)據的復制時,將實際備份計劃表中對應的哈希值信息記錄刪除,并將該數(shù)據塊復制后的相應信息存入第三級子表,同時更新目標端的全局哈希表;第二步,處理第二級子表;根據表中記錄將每個數(shù)據塊從云端的網站復制到目標端,每當完成一塊數(shù)據的復制時,將對應的信息記錄從備份計劃表中刪除并在忽略列表加以保存,然后將該數(shù)據塊復制后的相應信息存入第三級子表并同時更新全局哈希表;在第三級子表中的哈希值信息記錄表明對應的數(shù)據塊已經在目標端,不需要再做數(shù)據復制處理; 步驟五、差分備份處理;在完成初次處理的全備份后,系統(tǒng)將按照一定的時間間隔進行定期的差分備份;差分備份的備份計劃表是在兩次備份處理的間隔中由每一次的源端數(shù)據更新觸發(fā)的哈希 表更新直接更新至實際備份計劃表積累產生的。
【文檔編號】H04L29/08GK103902410SQ201410124427
【公開日】2014年7月2日 申請日期:2014年3月28日 優(yōu)先權日:2014年3月28日
【發(fā)明者】趙曉南, 張曉 , 李戰(zhàn)懷, 曾雷杰 申請人:西北工業(yè)大學