隨著各行各業信息化的要求越來越高,需要存儲的數據量越來越龐大,然而,已經存儲的數據中有相當一部分是重復的,這樣既浪費存儲空間又增加了存儲的工作量。為了緩解存儲系統的空間增長問題,重復數據刪除技術已成為一個熱門的研究課題。
云存儲技術以提供數據存儲服務來解決存儲設備管理維護、安全穩定和成本問題,實現存儲設備向存儲服務的轉變。重復數據刪除技術旨在消除數據大量冗余,縮減存儲空間。兩種技術的結合,充分將兩種技術的優勢發揮得淋漓盡致,既能將海量數據存儲在云端,又能充分利用云端的存儲資源。兩者結合有很大的應用價值。
本文通過研究重復數據刪除和云存儲,提出了一個基于云存儲的重復數據刪除架構, 使得海量數據能夠存儲在云中并且擁有重復數據刪除的能力。它采用In-line方式對文件進行數據塊級與字節級相結合的重復數據刪除,使用MD5算法計算數據塊的哈希值并與已存在的數據哈希值對比來判斷上傳的數據是否存在于云中。
1.云存儲簡介
云存儲是在云計算(cloud computing)概念上延伸和發展出來的一個新的概念,是指通過集群應用、網格技術和分布式文件系統等功能將網絡中大量各種不同類型的存儲設備通過應用軟件集合起來協同工作,共同對外提供數據存儲和業務訪問功能的一個系統。
1.1 云存儲結構模型
云存儲是一個網絡設備、存儲設備、服務器、應用軟件、公用訪問接口、接入網、和客戶端程序等多個部分組成的復雜系統。各部分以存儲設備為核心,通過應用軟件來對外提供數據存儲和業務訪問服務。現有的云存儲結構模型如圖1所示。
圖1 云存儲結構模型圖
1.2 云存儲與重復數據刪除
云存儲是將使用了彈性配置和按需付費的因特網技術的可擴展、彈性的存儲能力作為一種服務在服務提供商和用戶之間傳輸。因為云存儲提供了完整和安全的訪問控制機制, 所以大部分用戶都愿意將數據存儲任務交予云存儲。
重復數據刪除是高性能和高效存儲的一種有效途徑,尤其是在云計算環境下使用。這是因為服務的存儲空間可能成為成本負擔,利用存儲效率技術(如重復數據刪除)的能力逐漸成為判斷服務是否合格的一個關鍵指標。
2.重復數據刪除技術分析
2.1 重復數據刪除策略分析
目前重復數據策略主要分為三種: 文件級的重復數據刪除,數據塊級的重復數據刪除和字節級的重復數據刪除。它們根據檢測刪除重復數據的單位不同而不同。通過研究和比較發現,文件級刪除策略雖然計算速度快,但粒度太粗無法精確識別重復數據。數據塊級刪除策略較精確,但因為以數據塊為單位故需計算的哈希值較多,且可能產生哈希沖突。字節級刪除策略以字節為單位進行對比不涉及哈希算法,所以可以避免碰撞,能夠實現更高的精度,但是花費的時間太多。
為了保證重復數據刪除的精確性和計算時間相對平衡,本架構選擇了數據塊級與字節級策略相結合的重復數據刪除策略。先將文件分割成數據塊,以數據塊為單位計算其哈希值。如果新數據塊的哈希值與設備散列索引中的某個散列匹配時,將新數據塊與已有的與它哈希值相同的數據塊進行字節級的對比,若完全相同時僅存入指針并指向存儲相同數據塊的原始位置,否則,如果數據塊是唯一的,就被寫入磁盤,其哈希值也存入索引中。這種方法的優點是有效的使用數據塊級策略的優勢又能利用字節級策略避免哈希沖突時帶來的數據丟失。
2.2 重復數據刪除算法分析
現有的重復數據刪除算法大致分為兩類,分別是hash 算法和基于內容識別的算法,與其對應的是文件級或數據塊級的刪除策略和字節級策略。
Hash 算法的數學表述為: CA=Hc(content)。其中content表示任意長度字符串,CA 表示經過哈希變化之后得到的哈希值。Hash 算法在信息安全領域中廣泛應用,現在最常用的哈希算法是MD5和SHA-1 算法。本架構采用的是MD5 算法。
2.3 重復數據刪除實現方式分析
重復數據刪除主要有兩種實現方式—前臺處理方式和后臺處理方式。前臺采用純軟件的方式進行,而后臺采用軟硬件相結合的方式,其中又分為In-lineDeduplication 、Post-Processing Deduplication 以及Adaptative Data Deduplication 三種。
通過研究比較發現In-line 方式更適合云存儲系統。數據傳輸之前,裝有重復數據刪除應用程序的客戶端先對其進行操作之后再傳給數據節點存儲處理。它在數據塊寫入前檢測是否已有相似數據塊存在,這樣可以避免磁盤數據寫入,提高云存儲系統的空間存儲效率并減少網絡傳輸。
2.4 小結
本架構采用了數據塊級與字節級相結合的刪除策略,運用MD5 算法對要存儲在云中的文件進行In-line方式的刪除操作,是本文研究的一個創新點。較之現有的在云存儲中使用文件級或數據塊級策略的操作,精確性上有所提高;較之使用Post-processing 方式的刪除有時間和空間上的優勢。另外,在云存儲上使用該方法,結合云的虛擬化和分布式計算存儲的特性很好的解決了In-line 方式使主機I/O 負載過大的問題。
3.基于云存儲的重復數據刪除架構
基于云存儲的重復數據刪除架構由兩部分組成,由于使用的是In-line 方式進行重復數據刪除,則第一部分是安裝了重復數據刪除應用程序的客戶端;另一部分是Hadoop Distribute File System 分布式文件系統和HBase數據庫系統。客戶端可分別與HDFS、HBase相互通信。
3.1 數據存儲
在基于云存儲的重復數據刪除架構中進行文件存儲時需要存儲兩類數據: 海量的原始數據和指針索引信息。
3.1.1 海量數據存儲
原始數據包括源數據塊和數據塊鏈接文件。源數據塊是指首次上傳并存儲在系統中的數據塊,數據塊鏈接文件是系統中已存在的數據塊再次上傳時,不再進行存儲操作轉而使用鏈接文件的形式來存儲。每個鏈接文件都記錄了它對應源數據塊的哈希值和邏輯路徑。
3.1.2 索引信息存儲
HBase 中有一張數據表來存儲索引信息。此表有四列,分別是hash_value,count, path 和source_file,記錄每個數據塊的哈希值,被索引值、源數據塊邏輯路徑和它隸屬的文件名。其中hash_value 是主鍵。
3.2 文件存儲
在基于云存儲的重復數據刪除架構中存儲文件主要分為四步:
① 在重復數據刪除客戶端上用戶選擇要上傳的文件,客戶端上的重復數據刪除應用程序先將文件分割成數據塊,運用MD5算法來計算每個數據塊的哈希值。隨之傳給HBase 進行記錄。
② Hbase 某個數據塊的hash 值,若該值不存在則將其記錄,轉向第3步;否則,HDFS 檢查此數據塊被索引值是否為0,若不為0 則count 值加1,HDFS告知客戶端此數據塊已經存在;若為0 則轉向第3 步。count的值隨被索引的次數變動而變動。
③ HDFS 存儲該數據塊并且將其與鏈接文件關聯起來,同時存儲它的哈希值和邏輯地址。
④ 重復2,3步的操作直至上傳文件的所有數據塊都存儲完畢。其UML活動圖如圖2所示。
圖2 云存儲重復數據刪除架構中文件存儲的Active圖
3.3 文件訪問
當客戶端發起訪問請求時,HDFS 會找到該文件各個數據塊的鏈接文件,鏈接文件將邏輯地址傳遞給HDFS。之后HDFS 詢問主節點數據塊的位置,客戶端得到塊地址,最后從數據節點中取回源數據塊。依次訪問所有數據塊完畢后訪問文件成功。訪問文件的UML活動圖如圖3所示。
圖3 云存儲重復數據刪除架構中文件訪問的Active 圖
3.4 文件刪除
一個源數據塊可以被多個鏈接文件索引,刪除鏈接文件對數據塊毫無影響。當刪除指向的最后一個鏈接文件后,即count 值為0,源數據塊的存在也沒有了意義,所以在此時該源文件也會被刪除。系統中不同用戶有權利訪問相同的文件,但是不允許某個用戶刪除另一用戶分享的源文件。鏈接文件可以很好的起到保護源文件不被其他用戶刪除的作用。刪除文件主要分為三步:
① HDFS命令刪除數據塊的鏈接文件。
② HBase中count值減1。檢查count 若為0 則刪除該源數據塊。
③ 重復1,2 直至要被刪除的文件所有數據塊完成刪除操作。刪除文件的UML 活動圖如圖4所示。
圖4 云存儲重復數據刪除架構中文件刪除的Active圖
4.測試與分析
在Vmware7.10workstation 上搭建起了的云存儲平臺。平臺中有1 臺主機和4臺虛擬機使用的主機的配置如下:CPU 為3.0GHZ,內存4G,硬盤320G。四臺虛擬機的配置一樣,CPU2.8GHz,內存512Mb,內存120G。實驗上傳了1000 個文件,共占19.8Gb。在一個普通的存儲系統中,這1000 個文件肯定會占19.8Gb 的容量;在本架構中,存儲在云中的文件只占6.93Gb。在容量上確實有節省空間的效果。
5.結語
本文通過利用數據塊的hash值作為索引存儲在HBase來獲取高性能的查詢同時在HDFS 中使用link文件來管理海量數據來實現云環境下的重復數據刪除。通過數據塊級與字節級相結合的重復數據刪除策略提高了數據重復刪除粒度,減少了數據存儲空間,并用實驗證明了其刪除的能力。
另外,基于云存儲的重復數據刪除比普通重復數據更有優勢。1.重復數據刪除的關鍵技是數據分塊與數據指紋計算。雖然MD5算法的計算復雜性非常高以至于占用很多的CPU 資源,且數據指紋需要保存和檢索使得索引表越來越大。但是將重復數據刪除應用在云存儲上即可以發揮云存儲虛擬化和云計算分布式計算的優勢,構建集群的重復數據刪除架構,為用戶提供多倍的吞吐及處理能力。2.單點故障時其他設備可自動接管其工作以保證處理的連續性。由于集群仍然保留的是單個Hash表所以它不僅提高了系統性能而且不會影響到重復數據刪除比率。3.云存儲融合云災備技術可以解決軟硬件損壞造成的數據損壞和丟失問題。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.lukmueng.com/
本文標題:基于云存儲的重復數據刪除架構的研究與設計