引言
隨著Web2.0的發展.信息量呈爆炸性增長.數據存儲逐漸成為制約企業發展的關鍵問題。越來越多的企業開始將數據存儲分離出來作為獨立的項目進行管理。高可靠性、高通用性、高擴展性、大容量.云存儲以傳統數據中心無法比擬的優勢特性.正在成為企業實現提高效率、降低成本的重要選擇。HDFS是當前應用最廣泛的云存儲技術之一.本文詳細分析HDFS云存儲技術的可靠性
1、云計算技術系統結構
云計算是一種商業計算模型。它將計算任務分布在大量計算機構成的資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空問和信息服務。
圖1 云計算技術體系結構
云計算技術體系結構分為4層:物理資源層、資源池層、管理中間件層和SOA構建層,如圖1所示。物理資源層包括計算機、存儲器、網絡設施、數據庫和軟件等:資源池層是將大量相同類型的資源構成同構或接近同構的資源池,如計算資源池、數據資源池等。管理中間件負責對云計算的資源進行管理.并對眾多應用任務進行調度,使資源能夠高效、安全地為應用提供服務:S0A構建層將云計算能力封裝成標準的Web Services服務,并納入到SOA體系進行管理和使用.包括服務注冊、查找、訪問和構建服務工作流等。管理中間件和資源池層是云計算技術的最關鍵部分,SOA構建層的功能更多依靠外部設施提供。
云計算的管理中間件負責資源管理、任務管理、用戶管理和安全管理等工作 資源管理負責均衡地使用云資源節點.檢測節點的故障并試圖恢復或屏蔽之,并對資源的使用情況進行監視統計.對云計算的可靠性有至關重要的作用 下面結合HDFS介紹云存儲技術的可靠性。
2、HDFS體系結構
Hadoop是Apache基金會的一個開源項目.參考Google的GFS(Google File System)和Map/Reduce計算模型研發出HDFS(Hadoop Distributed File System)和自己的Map/Reduce框架。Hadoop主要由Yahoo開發 ,Facebook、Amazon和Last.fm公司也都在使用Hadoop。
圖2 HDFS體系結構
如圖2所示.Hadoop檔案系統(Hadoop DistributedFile Systern.HDFS)被設計成適合運行在通用硬件上的分布式文件系統.其具有高容錯性.能提供高吞吐量的數據訪問.非常適合于大規模數據集上的應用。
3、HDFS可靠性
為了保障HDFS的高可靠性。HDFS有如下5個特性。
(1)冷備機制
HDFS中Secondary NameNode對NameNode中元數據提供了冷備方案 Secondary NameNode將Na—meNode的fsimage與edit log從Namenode復制到臨時目錄,將fsitnage同edit log合并,并產生新的Fsimage并把產生的新的Isirnage上傳給NameNode ,最后清除NameNode中的edit log
(2)租約機制
NameNode在打開或創建一個文件,準備追加寫之前,會與此客戶端簽訂一份租約?蛻舳藭〞r輪詢續簽租約。NameNode始終在輪詢檢查所有租約,查看是否有到期未續的租約。如果一切正常,該客戶端完成寫操作,會關閉文件,停止租約,一旦有所意外,比如文件被刪除了,客戶端宕機了,當超過租約期限時,NameNode就會剝奪此租約,將這個文件的享用權,分配給他人。如此,來避免由于客戶端停機帶來的資源被長期霸占的問題。
(3)數據的正確性與一致性
在HDFS中,為了保證數據的正確性和同一份數據的一致性,做了大量的工作。首先,每一個數據塊,都有一個版本標識,一旦數據塊上的數據有所變化,此版本號將向前增加。在NameNode上,保存有此時每個數據塊的版本,一旦出現數據服務器上相關數據塊版本與其不一致,將會觸發相關的恢復流程。這樣的機制保證了各個數據服務器器上的數據塊,在基本大方向上都是一致的。但是,由于網絡的復雜性,簡單的版本信息無法保證具體內容的一致性。因此,為了保證數據內容上的一致,必須要依照內容,給出簽名。
當客戶端向數據服務器追加寫人數據包時,每一個數據包的數據,都會切分成512字節大小的段,作為簽名驗證的基本單位,在HDFS中,把這個數據段稱為Chunk,即傳輸塊。在每一個數據包中,都包含若干個傳輸塊以及每一個傳輸塊的簽名,一旦發現當前的傳輸塊簽名與在客戶端中的簽名不一致,整個數據包的寫人被視為無效。
(4)系統升級回滾
當升級某個集群的Hadoop的時候,正如任何軟件的升級一樣,可能會引人新的bug或者不兼容的修改導致現有的應用出現過去沒有發現的問題。在所有重要的HDFS安裝應用中,是不允許出現因丟失任何數據需要從零開始重啟HDFS的情況。HDFS允許管理員恢復到Hadoop的早期版本,并且將集群的狀態回滾到升級前。
圖3 系統升級回滾
如圖3所示,升級時,NameNode會將新的版本號,通過DataNode的登錄應答返回。DataNode收到以后,會將當前的數據塊文件目錄改名,從curren,改名為previous.tmp ,建立一個snapshot,然后重建current目錄。重建包括重建VERSION文件,重建對應的子目錄,然后建立數據塊文件和數據塊元數據文件到previous.tmp的硬連接。建立硬連接意味著在系統中只保留一份數據塊文件和數據塊元數據文件,current和previous.tmp中的相應文件,在存儲中,只保留一份。當所有的這些工作完成以后,會在current里寫人新的VER-SION文件,并將previous.tmp目錄改名為previous,完成升級。
回滾相對簡單,因為所有的舊版本信息都保存在previou、目錄里。回滾首先將current目錄改名為re-moved.tmp,然后將previous目錄改名為current,最后刪除removed.tmp目錄。
提交的過程,就是將上面的previous目錄改名為finalized.tmp,然后啟動一個線程,將該目錄刪除。
(5)安全模式
在啟動的時候,名字節點進入一個特殊的狀態叫做安全模式。安全模式是不發生文件塊的復制的。NN接受來自DN的心跳和塊報告。一個塊報告包括的是DN向NN報告數據塊的列表。
4、總結
本文首先簡介了云計算技術系統結構,針對當前主流的云存儲技術HDFS,詳細研究了HDFS的冷備機制、租約機制、數據的正確性與一致性、系統升級回滾、安全模式5個云存儲可靠性特性。在云存儲大規模應用的今天,HDFS必將得到越來越多推廣和使用。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:HDFS云存儲技術可靠性簡介
本文網址:http://www.guhuozai8.cn/html/consultation/1083973048.html