[發明專利]一種云存儲自動同步方法有效
| 申請號: | 201310344426.4 | 申請日: | 2013-08-08 |
| 公開(公告)號: | CN104348884B | 公開(公告)日: | 2018-05-01 |
| 發明(設計)人: | 楊超;馬迪;田野;毛偉 | 申請(專利權)人: | 中國科學院計算機網絡信息中心 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;G06F3/06;G06F17/30 |
| 代理公司: | 北京君尚知識產權代理事務所(普通合伙)11200 | 代理人: | 余長江 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 存儲 自動 同步 方法 | ||
技術領域
本發明涉及一種云存儲自動同步方法,屬于計算機網絡技術領域。
背景技術
在目前的文件同步技術中最為代表性和得到廣泛應用的是rsync技術。該技術是最基本的遠程文件同步技術,主要用來在兩臺主機之間進行文件同步。rsync算法是由澳大利亞的Andrew Tridgell提出的一種遠程文件同步算法,最初的設計目的是使兩臺機器通過低速網絡保持文件保持同步。rsync能夠計算保存在不同機器上的兩個文件中不同的部分并只傳輸這些不同的部分。這可以顯著的降低所需要傳輸的數據量,從而使得在低速網絡鏈路上可以相對快的達到同步狀態。為了實現只傳輸不同的部分,rsync算法將文件分成等長度不重合的片段。如果新文件中存在舊文件中的片段,這些片段就不需要傳輸,只需要傳輸新文件中的那些舊文件沒有的片段。
為了加快文件比較速度,在進行區塊匹配的時候,rsync使用一對校驗和:弱校驗和和強校驗和。弱校驗和可以被連續的快速計算,因此又被稱為滾動校驗和。rsync會首先比較弱校驗和(滾動校驗和),只有在弱校驗和相同的情況下才有必要對強校驗和進行比對。
rsync的同步步驟如下(假設比較舊的文件為A,較新的文件為A’):
1. 擁有舊文件的一方首先將文件A按照長度S分成不重合的片段,對每個分片計算一個強校驗和和弱校驗和。
2. 擁有舊文件的一方將所有A的校驗和發送給另一方。
3. 擁有新文件的另外一方收到后,開始從A’文件頭開始計算滾動校驗和,并在A的校驗和中查找,如果沒有命中則說明A’中沒有對應的文件片段,那么指針向后移動一個字節重新進行步驟3的運算;如果命中,則計算該片段對應的強校驗和,和A中對應片段的強校驗和比較,如果相同,則說明這兩個片段是相同的,記錄這個片段的引用,將指針移動到該片段末尾;否則說明這兩個片段不同,指針向后移動一個字節,將該字節添加到A中不存在部分的集合中,重新進行步驟3的運算。在遍歷完文件A’之后,被請求方就可以構建一份指令清單,包含對A中可用片段的引用和A中不存在的部分。
4. 擁有新文件的一方將這個清單發給請求方。
5. 擁有舊文件的一方根據這個清單和已有的文件A,生成一個和A’完全一樣的文件。
目前的應用情況:
rsync最初被用來數據備份,和鏡像網站之間的同步。現在被云服務提供商廣泛的用于數據同步服務中。另外,rsync也用在分發性質的單向數據同步服務中。例如,在旨在提高BGP路由安全的RPKI體系中,使用了rsync進行證書文件的分發和同步。
該技術的缺點(局限性):
1, rsync在下載同步和上傳同步時云端的計算開銷不同。使用rsync在用戶進行下載同步的時候會給服務器的cpu帶來較大的負載,尤其是在云存儲的場景中,大量的用戶請求同步會給服務器節點帶來巨大的計算開銷。這種開銷主要是由于在下載同步過程中,服務器要進行大量的校驗和的計算。而在上傳同步的時候又會給客戶端帶來較大的負擔。
2, rsync算法在應用到云存儲中時會產生大量的重復運算,主要是重復計算未變動文件的校驗和。
3, rsync不能自動的監測文件的變動,使得同步具有滯后性,這使得不同機器上的文件在較長時間內處于不同步的狀態,造成數據的不一致。
發明內容
針對現有技術存在的技術問題,本發明的目的在于提供一種云存儲自動同步方法;本發明主要包含以下幾個部分:服務器友好的同步算法、傳輸方式選擇機制、運算量轉移決策機制、文件特征緩存機制。
本發明的技術方案為:
一種云存儲自動同步方法,其中同步為客戶端文件下載同步,其步驟為:
1)云端將保存在本地的文件劃分成若干區塊,對每一個區塊,計算一個強校驗和和弱檢驗和并保存在緩存中;
2)當云端文件系統的文件A發生變化,云端通知客戶端與云端同步:首先確定客戶端是否有該文件A,如果沒有,則云端將該文件A發送給客戶端;如果客戶端有該文件A,則云端更新該文件A的強校驗和和弱檢驗和發送給客戶端;然后客戶端對本地文件A進行計算,并與收到的該強校驗和和弱檢驗和進行比較,得到所需區塊編號的清單;
3)客戶端將該清單發送給云端,云端將所需區塊發送給客戶端;
4)客戶端將所需區塊與本地文件A的區塊合并更新本地文件A。
進一步的,所述云端將文件A及其強校驗和和弱檢驗和發送給客戶端,客戶端將該強校驗和和弱檢驗和存儲到內存中的一個hash表中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算機網絡信息中心,未經中國科學院計算機網絡信息中心許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310344426.4/2.html,轉載請聲明來源鉆瓜專利網。





