朱崇軍++杜振南
摘 要 云存儲系統被認為是一個具有獨立存儲服務器的大型存儲系統。云存儲提供的服務是,可以通過網絡和其他經過身份驗證的用戶存儲用戶數據,可以輕松訪問數據,Hadoop分布式文件系統用于存儲大文件,并以非常高的帶寬將這些文件檢索到用戶應用程序,Hadoop將文件分割成大塊,并將它們分布在集群中的節點之間。當我們從云中檢索數據時,減少計算和通信開銷是非常重要的。為了減少通信開銷,當用戶要求數據文件時,服務器只能根據關鍵字發送最新的文件。由于所有者不需要維護文件的副本,所以只需要檢查可用的文件。在HDFS中,并行完成計算,從而大大減少了執行時間。在提出的用于檢索top-n文件的系統中,我們使用Hadoop分布式文件系統,從而大大減少了搜索時間和通信開銷。
【關鍵詞】云存儲 HDFS 集群 關鍵字搜索
1 引言
云計算可以將客戶端的數據存儲在遠程存儲介質中,并在任何時候可以由用戶檢索數據。通過存儲在云中,數據擁有者可以免費在自己的系統中維護數據的副本。但是存儲所有者數據的服務器不一定被信任,為了提供保護,數據在外包到云端之前被加密。由于頻繁的數據共享,這種方法在云環境中很難實現,可搜索的重新加密系統已經實現。在這種方法中,索引存儲在主服務器中,數據分布到許多服務器。因此,這個系統在云存儲環境中很難應用。為了在云存儲中提供安全的數據,服務器提供了安全的存儲空間,被稱為云存儲服務。為了利用這種安全的存儲設備,使用的基本技術是分布式文件系統。
1.1 GFS
Google使用這種分布式文件系統提供安全的云存儲。GFS包含三個組件,即客戶端,主服務器和塊服務器。
客戶:代表應用程序與主服務器和塊服務器通信。
主服務器:維護和管理文件系統原數據,如訪問控制信息,名稱空間,文件和塊之間的映射信息以及塊位置信息。 這些信息存儲在主服務器的存儲器中。它們幾乎控制所有的系統功能,如創建塊拷貝,返回可用的未使用的存儲空間以及調整份數。
塊服務器:塊服務器管理存儲的數據單元,并按照客戶端的要求提供輸入/輸出數據。通過使用校驗來識別數據錯誤。如果客戶端想要存儲文件,則客戶端將文件詳細信息發送到主服務器,主服務器又提供塊服務器的位置。此外,如果客戶端想要讀取,則主服務器向客戶端提供其中存儲數據的塊服務器位置。客戶端然后與組塊服務器進行通信并獲取原始消息。
1.2 HDFS
Hadoop分布式文件系統(HDFS)的基本功能是可靠地存儲大量數據,并以高帶寬將這些數據發送給用戶應用程序。在一個大集群中,數以千計的服務器處理直接連接的存儲,并執行用戶應用程序任務。Hadoop使用Map Reduce方法啟用分布式系統,并為非常大的數據塊分析和轉換提供了基礎。Hadoop的一個重要功能是將數據和分析分成數以千計的主機,并且并行執行所有應用程序計算,并且靠近其數據。Hadoop集群通過僅包括商品服務器來平衡計算和存儲容量。
HDFS分別保存文件系統元數據和應用程序數據。為了存儲元數據,使用稱為名稱節點的專用服務器,而使用稱為數據節點的其他服務器來存儲應用程序數據。基于TCP協議,所有服務器都完全連接。文件信息在多個數據節點上重復,可靠性如GFS。
HDFS的組件簡介如下:
1.2.1 名稱節點
HDFS命名空間包括目錄和文件的層次結構。該文件分為大塊。許多數據節點都可以獨立地復制每個文件塊。NameNode維護塊到數據節點和命名空間樹的映射。一個名稱節點可用于每個集群。另一方面,每個群集可以擁有數千個數據節點和數萬個HDFS用戶,因為每個數據節點可能同時執行多個應用程序任務。
1.2.2 數據節點
數據節點上塊的每個副本由本地文件系統中的兩個文件表示。當第一個文件存儲數據時,第二個文件存儲包含數據的校驗和的塊的元數據。數據文件大小將等于塊的原始大小,因此不需要增強的存儲來匹配塊大小。
1.2.3 HDFS客戶端
在HDFS客戶機中,一個端用于由用戶應用程序訪問文件系統。要訪問數據,它提供文件系統界面。HDFS有讀取,寫入和刪除文件等功能,也可以創建和刪除目錄。用戶應用程序不需要知道文件系統元數據,因為存儲位于不同的服務器上,或者該塊具有多個副本。
2 存在問題
加密的云數據外包服務包括以下數據,即數據所有者,用戶和云服務器。數據所有者擁有他與其他用戶共享的各種數據的集合。由于他無法維護和處理用戶每個請求的文件,他更愿意將這些文件外包給云服務器。但是這里的優先事項是信息不應該泄漏給任何人,也不應該泄漏給云服務器。因此,根據用戶的要求,只能發送top-n個相關文件。為了確保數據的機密性,所有者在將它們外包到云服務器之前對其進行加密。由于計算在前n個文件中的文件的排名需要很多時間,在用戶的每個請求上,服務器不會計算任何特定關鍵字的文件的排名。因此,在托管之前,數據所有者將首先創建一個可搜索的索引,該索引將由該特定關鍵字的每個文件的關鍵字文件ID和相關性分數組成。
3 實驗設置
實驗是在具有2個群集,cluster1和cluster2的云堆棧的Linux2,6x內核中實現的。所有者將數據存儲在2個集群服務器中。Hadoop的性能主要取決于配置良好的軟件層和精心設計的硬件資源,可以有效利用其CPU,內存,硬盤驅動器和網絡帶寬。
4 安全分析
我們提出的系統滿足以下要求:
搜索速度:由于我們使用HDFS和B-tree數據結構在索引中存儲和搜索關鍵字,搜索速度大大提高。
保密性:由于文件被加密,索引中的關鍵字被映射,所以沒有信息泄漏。
通信效率:僅為用戶請求檢索前n個文件。因此,通信開銷降低。
計算效率:由于文件被分組到集群中,創建索引的時間和文件排序的時間也減少了。
5 結論
本文列舉了檢索top-n文件的問題和滿足所需要求的有效解決方案。所提出的模型是使用Hadoop分布式文件系統實現和測試的。通過使用我們的系統,搜索速度和通信開銷大大降低。
參考文獻
[1]嚴文中.分層結構CDN的負載均衡[J]. Modern Business Trade Industry,2009.
[2]王娟,趙問道.CDN內容路丨ll的負載均衡及網絡分劉算法的研究[J].江南大學學報(自然科亇版),2008.
[3]張淼.CDN系統中基于層次策略的負載均衡算法的研究與性能仿真[D].沈陽:東北大學,2010.
[4]趙問道.基于網絡拓撲的CDN內容路由技術研究.浙江大學學報,2004,Vol.38:414-419.
[5]嚴文中.CDN負載均衡和內容路由研究.杭州:浙江大學(碩士學位論文),2005.
作者單位
國防科學技術大學計算機學院 湖南省長沙市 410000