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