HDFS實現其高可靠性的策略及機制

分佈式文件系統(HDFS)的高可靠性主要是由多種策略及機制共同作用實現的。

主要有:

冗餘副本策略

可以指定數據文件的副本數量,默認是3;

保證所有的數據塊都有副本,不至於在一個datanode宕機後,數據的丟失。


機架策略

集羣一般放在不同機架上,機架間帶寬要比機架內帶寬要小;
HDFS具有“機架感知”能力,它能自動實現在本機架上存放一個副本,然後在其它機架再存放另一副本,這樣可以防止機架失效時數據丟失,也可以提高帶寬利用率。

心跳機制

Namenode週期性從datanode接收心跳信號和塊報告,Namenode根據塊報告驗證元數據;
Namenode對沒有按時發送心跳的datanode會被標記爲宕機,不會再給它任何I/O請求;
datanode失效造成副本數量下降,並且低於預先設置的閾值,namenode會檢測出這些數據塊,並在合適的時機迕行重新複製;
引發重新複製的原因還包括數據副本本身損壞、磁盤錯誤,複製因子被增大等。

安全模式

Namenode啓動時會先經過一個“安全模式”階段,安全模式階段不會產生數據寫;
在安全模式階段Namenode收集各個datanode的報告,當數據塊達到最小副本數以上時,會被認爲是“安全”的;
在一定比例(可設置)的數據塊被確定爲“安全”後,再過若干時間,安全模式結束;
當檢測到副本數不足的數據塊時,該塊會被複制直到達到最小副本數。


校驗和

在文件建立時,每個數據塊都產生校驗和,校驗和會保存在.meta文件內;
客戶端獲取數據時可以檢查校驗和是否相同,從而發現數據塊是否損壞;
如果正在讀取的數據塊損壞,則可以繼續讀取其它副本。


回收站

刪除文件時,其實是放入回收站/trash,回收站裏的文件可以快速恢復;
可以設置一個時間閾值,當回收站裏文件的存放時間超過這個閾值,就被徹底刪除,並且釋放佔用的數據塊。

元數據保護

映像文件和事務日誌是Namenode的核心數據,可以配置爲擁有多個副本;
副本會降低Namenode的處理速度,但增加安全性。


快照機制

支持存儲某個時間點的映像,需要時可以使數據重返這個時間點的狀態;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章