本發明專利技術公開了一種分布式文件系統上基于硬件加速卡的壓縮解壓縮方法,屬于分布式文件系統技術領域。該技術包括:客戶端向數據節點寫數據時,先將文件塊進行分片,再經硬件加速卡對分片進行壓縮,將壓縮后的分片發送至數據節點;客戶端從數據節點讀取數據時,先從數據節點取回包含讀取數據的各分片,調用硬件加速卡對各分片解壓縮并組合,將組合后的數據發送至上層應用。上層應用可獨立使用硬件加速卡以數據流的形式對數據進行壓縮或解壓縮。本發明專利技術提出的技術在分布式文件系統和上層應用中使用硬件加速卡,只需要很小的緩存就能實現數據壓縮或解壓縮,可以卸載傳統壓縮方法所消耗的大量CPU資源,并且對系統的用戶而言完全透明。
【技術實現步驟摘要】
本專利技術涉及分布式文件系統
,尤其涉及ー種分布式文件系統上基于硬件加速卡的壓縮解壓縮方法。
技術介紹
隨著數據時代的到來,互聯網所要處理的數據量日益増大,為了保證數據的高可靠性,當前的分布式文件系統一般采用多副本策略。但是,在大規模機群中這將會帶來不可忽略的巨額存儲開銷,同時對于分布式文件系統之上的系統或應用,如分布式數據庫、分布式數據倉庫、MapReduce框架或其它應用,也有可能會產生冗余數據,使得數據的膨脹率更高,I/O性能成為系統的瓶頸日益明顯,現有的分布式文件系統難以同時滿足高性能、高可靠性和低存儲開銷的需求。通過對分布式文件系統之上應用的類型進行分析可以得知,這些應用使用或產生的大部分數據是文本信息,特別是離線或在線分析系統中的數據基本都是文本,而文本本身是ー種高度可壓縮的數據,因此通過引入ー種快速的數據壓縮方法,可以有效降低數據的存儲開銷,提高磁盤和網絡I/O的有效帶寬,從而提高應用的呑吐量。對于傳統的采用軟件方式實現數據壓縮或解壓縮方法,如GZip,該方式雖然能使系統的存儲開銷減小,但是在壓縮或解壓縮過程中會占用大量的CPU資源,有可能導致系統的處理能力下降。
技術實現思路
本專利技術的目的在于提出ー種分布式文件系統上基于硬件加速卡的壓縮解壓縮方法,能夠使得在占用少量系統資源的情況下,完成對用戶透明的壓縮和解壓縮過程,降低系統的存儲開銷,并且具有良好的容錯機制。為達此目的,本專利技術采用以下技術方案—種分布式文件系統上基于硬件加速卡的壓縮解壓縮方法,所述方法包括分布式文件系統中的客戶端向數據節點寫入數據時所述客戶端將文件塊分成多個分片,調用硬件加速卡對各分片進行壓縮,再將壓縮后的各分片發送至所述數據節點;所述數據節點將所述壓縮后的各分片存儲至壓縮塊文件中,并更新所述數據節點中的索引文件;分布式文件系統中的客戶端從數據節點讀取數據時所述數據節點找到保存讀取數據的壓縮塊文件;所述客戶端取回包含所述讀取數據的各分片,調用所述硬件加速卡對所述各分片進行解壓縮,并組合解壓縮后的各分片,將組合后的解壓縮數據發送至上層應用。優選地,所述各分片為64KB大小的數據。 進ー步地,所述硬件加速卡采用PCI接ロ;所述硬件加速卡利用一個壓縮方法庫,實現對特定內存緩沖區中的數據進行壓縮或解壓縮的功能;所述硬件加速卡上配備有多個處理芯片,每個芯片可單獨進行壓縮或解壓縮操作,所述芯片由可編程邏輯器件構成;其中,所述壓縮方法庫包括各種壓縮解壓縮算法和驅動程序,具有壓縮和解壓縮兩個接ロ,兩個接ロ的參數均包括輸入緩沖區和輸出緩沖區;進ー步地,所述硬件加速卡利用一個壓縮方法庫,實現對特定內存緩沖區中的數據進行壓縮或解壓縮的功能包括所述壓縮方法庫將壓縮或解壓縮算法經所述用戶層編程接ロ接入;調用驅動程序,經所述用戶層編程接ロ驅動硬件加速卡,完成對特定內存緩沖區中的數據壓縮或解壓縮功能。進ー步地,所述調用所述硬件加速卡對各分片進行壓縮包括所述客戶端將所述各分片送入所述壓縮方法庫壓縮接ロ的輸入緩沖區,所述壓縮方法庫驅動所述硬件加速卡,所述硬件加速卡完成對所述各分片的壓縮過程,并將壓縮后的所述各分片送入所述壓縮方法庫壓縮接ロ的輸出緩沖區。進ー步地,所述調用所述硬件加速卡對所述各分片進行解壓縮包括所述客戶端將所述各分片送入所述壓縮方法庫解壓縮接ロ的輸入緩沖區,所述壓縮方法庫驅動所述硬件加速卡,所述硬件加速卡完成對所述各分片的解壓縮過程,并將解壓縮后的所述各分片送入所述壓縮方法庫解壓縮接ロ的輸出緩沖區。進ー步地,所述壓縮方法庫在對數據進行壓縮或解壓縮時,如果發現所述硬件加速卡出現故障,將采用軟件方式對數據進行壓縮或解壓縮。進ー步地,所述壓縮后的分片信息包括頭部信息和壓縮數據,所述頭部信息包括原始數據大小、壓縮數據大小、壓縮算法類型。進ー步地,所述數據節點將所述壓縮后的各分片存儲至壓縮塊文件中,并更新所述數據節點的索引文件包括所述數據節點按順序將所述壓縮后的各分片寫到壓縮塊文件中,并另外維護ー個索引文件;其中所述索引文件按所述各分片在文件塊原始文件中的順序,記錄所述各分片在壓縮塊文件中的位置偏移量和長度。進ー步地,所述數據節點找到保存讀取數據的壓縮塊文件包括所述數據節點根據所述讀取數據在文件塊原始文件中的偏移位置和長度,在所述索引文件中找到所述讀取數據在壓縮塊文件中的位置。進ー步地,所述分布式文件系統的上層應用可獨立使用所述硬件加速卡以數據流的形式對數據進行壓縮或解壓縮。進ー步地,所述上層應用使用所述硬件加速卡向數據流中寫入數據的過程包括所述上層應用先對需要寫入的數據進行緩存,如果緩存數據的大小超過預設值,將所述預設值大小的數據作為ー個壓縮塊,調用所述硬件加速卡對所述壓縮塊進行壓縮,并將壓縮后的數據寫到數據流中。優選地,所述預設值取64KB。進ー步地,所述上層應用使用所述硬件加速卡從數據流中讀取數據的過程包括所述數據流內部有一個緩沖區,用于緩存已解壓縮數據,如果所述緩沖區不為空,將所述已解壓縮數據發送至所述上層應用,如果所述緩沖區為空,則從所述數據流中讀取ー個壓縮數據塊,調用所述硬件加速卡對所述壓縮數據塊進行解壓縮,并將解壓縮后的數據存至所述緩沖區中。本專利技術技術方案的優勢在于在大型分布式文件系統上采用PCI接ロ的硬件加速卡來完成數據壓縮或解壓縮,過程中只消耗少量系統資源,可以卸載傳統壓縮方法所消耗的大量CPU資源;數據的壓縮或解壓縮對于用戶是完全透明的,上層應用無需做任何改動,并且無論是寫入或讀取數據,都可以提高磁盤和網絡I/o的有效帶寬;采用分片式壓縮格式,將文件分成大小為64KB的分片,能達到較好的壓縮效果,而且對于硬件加速卡只需要很小的緩存就能實現壓縮;在硬件加速卡出現故障時,壓縮方法庫能夠切換到軟件方式進行壓縮或解壓縮, 具有良好的容錯機制;分布式文件系統的上層應用可獨立使用硬件加速卡創建輸入流或輸出流,用以封裝原有的輸入流或輸出流,能方便地對數據進行壓縮或解壓縮。附圖說明圖1是本專利技術具體實施例一提供的ー種分布式文件系統上基于硬件加速卡的壓縮解壓縮方法的系統結構示意圖;圖2是本專利技術具體實施例一提供的分布式文件系統上基于硬件加速卡的壓縮解壓縮方法的數據寫入流程示意圖;圖3是本專利技術具體實施例一提供的客戶端調用硬件加速卡壓縮數據流程示意圖;圖4是本專利技術具體實施例一提供的分布式文件系統上基于硬件加速卡的壓縮解壓縮方法的文件塊格式示意圖;圖5是本專利技術具體實施例一提供的分布式文件系統上基于硬件加速卡的壓縮解壓縮方法的數據讀取流程示意圖;圖6是本專利技術具體實施例ニ提供的另ー種分布式文件系統上基于硬件加速卡的壓縮解壓縮方法的系統結構示意圖;圖7是本專利技術具體實施例ニ提供的上層應用壓縮數據流程示意圖;圖8是本專利技術具體實施例ニ提供的上層應用解壓縮數據流程示意圖。具體實施例方式下面結合附圖并通過具體實施方式來進ー步說明本專利技術的技術方案。實施例一本實施例基于Apache HDFSCHadoop DistributedFile System,分布式文件系統)實現基于硬件加速卡的壓縮原型,HDFS為Google GFS的開源實現,是Hadoop生態圈各項目的基礎。HDFS上層應用使用客戶端來寫入或讀取文件。HDFS中一個文件會被分成多個大小相同的文件,本文檔來自技高網...
【技術保護點】
一種分布式文件系統上基于硬件加速卡的壓縮解壓縮方法,其特征在于,所述方法包括:?分布式文件系統中的客戶端向數據節點寫入數據時:所述客戶端將文件塊分成多個分片,調用硬件加速卡對各分片進行壓縮,再將壓縮后的各分片發送至所述數據節點;所述數據節點將所述壓縮后的各分片存儲至壓縮塊文件中,并更新所述數據節點中的索引文件;?分布式文件系統中的客戶端從數據節點讀取數據時:所述數據節點找到保存讀取數據的壓縮塊文件;所述客戶端取回包含所述讀取數據的各分片,調用所述硬件加速卡對所述各分片進行解壓縮,并組合解壓縮后的各分片,將組合后的解壓縮數據發送至上層應用。
【技術特征摘要】
1.一種分布式文件系統上基于硬件加速卡的壓縮解壓縮方法,其特征在于,所述方法包括 分布式文件系統中的客戶端向數據節點寫入數據時所述客戶端將文件塊分成多個分片,調用硬件加速卡對各分片進行壓縮,再將壓縮后的各分片發送至所述數據節點;所述數據節點將所述壓縮后的各分片存儲至壓縮塊文件中,并更新所述數據節點中的索引文件; 分布式文件系統中的客戶端從數據節點讀取數據時所述數據節點找到保存讀取數據的壓縮塊文件;所述客戶端取回包含所述讀取數據的各分片,調用所述硬件加速卡對所述各分片進行解壓縮,并組合解壓縮后的各分片,將組合后的解壓縮數據發送至上層應用。2.根據權利要求1所述的分布式文件系統上基于硬件加速卡的壓縮解壓縮方法,其特征在于,所述各分片為64KB大小的數據。3.根據權利要求1所述的分布式文件系統上基于硬件加速卡的壓縮解壓縮方法,其特征在于,所述硬件加速卡采用PCI接口; 所述硬件加速卡利用一個壓縮方法庫,實現對特定內存緩沖區中的數據進行壓縮或解壓縮的功能; 所述硬件加速卡上配備有多個處理芯片,每個芯片可單獨進行壓縮或解壓縮操作,所述芯片由可編程邏輯器件構成; 其中,所述壓縮方法庫包括各種壓縮解壓縮算法和驅動程序,具有壓縮和解壓縮兩個接口,兩個接口的參數均包括輸入緩沖區和輸出緩沖區。4.根據權利要求3所述的分布式文件系統上基于硬件加速卡的壓縮解壓縮方法,其特征在于,所述硬件加速卡利用一個壓縮方法庫,實現對特定內存緩沖區中的數據進行壓縮或解壓縮的功能包括所述壓縮方法庫將壓縮或解壓縮算法經所述用戶層編程接口接入;調用驅動程序,經所述用戶層編程接口驅動硬件加速卡,完成對特定內存緩沖區中的數據壓縮或解壓縮功能。5.根據權利要求4所述的分布式文件系統上基于硬件加速卡的壓縮解壓縮方法,其特征在于,所述調用所述硬件加速卡對各分片進行壓縮包括所述客戶端將所述各分片送入所述壓縮方法庫壓縮接口的輸入緩沖區,所述壓縮方法庫驅動所述硬件加速卡,所述硬件加速卡完成對所述各分片的壓縮過程,并將壓縮后的所述各分片送入所述壓縮方法庫壓縮接口的輸出緩沖區。6.根據權利要求4所述的分布式文件系統上基于硬件加速卡的壓縮解壓縮方法,其特征在于,所述調用所述硬件加速卡對所述各分片進行解壓縮包括所述客戶端將所述各分片送入所述壓縮方法庫解壓縮接口的輸入緩沖區,所述壓縮方法庫驅動所述硬件加速卡,所述硬件加速卡完成對所述各分片的解壓縮過程,并將解壓縮后的所述...
【專利技術屬性】
技術研發人員:劉佳,胡肖,查禮,
申請(專利權)人:北京普澤天璣數據技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。