HA


HA的英文全稱是High Availability,中文翻譯爲高可用性。什麼是HA?HA與我們平時常說的高可靠性又有什麼關係,下面我們一起來看下HA的定義。

        HA的定義爲系統對外正常提供服務時間的百分比。具體來說,HDFS的可靠性可用平均無故障時間(MTTF[ ])來度量,即HDFS正常服務的平均運行時間,HDFS的可維護性用平均維修時間(MTTR[2])來度量,即HDFS從不能正常服務到重新正常服務所需要的平均維修時間。因此HDFS的HA可精確定義爲:MTTF/(MTTF+MTTR) * 100%

    由上面的定義我們可以很清楚地將HA與高可靠性區分開來,高可靠性更多的是對於系統自身而言,它是系統可靠程度的一個指標。而HA則更多地是從系統對外的角度來說的,除了包含系統正常工作的能力,它還強調系統中止服務後迅速恢復的能力:一個可靠性很高的系統,如果其中止服務後,修復時間很長,那麼它的可用性也不會很高,而一個可靠性不是特別高的系統,如果發生中止服務後,可迅速恢復,那麼其可用性也可能會很高。因此只有HA才能準確度量系統對外正常服務的能力。HDFS HA的應用場景有很多,我們可以從正常和異常兩種情況來分析HDFS對外無法正常服務的情景:

    首先是正常使用情況,最常見的應用場景就是NameNode節點軟、硬件的升級與維護,由於NameNode只有一個,當NameNode節點軟、硬件的升級與維護操作需要NameNode進行重啓時,HDFS將無法服務。其次是異常情況,常見的場景有:用戶的誤操作導致NameNode系統崩潰或HDFS發生故障、或者是硬件故障等。在實際使用過程中,軟硬件維護、軟件故障、錯誤操作等因素是造成HDFS無法提供正常服務的主要原因,而大家普遍關注的硬件故障並不是主要原因。

    此外,由於HDFS處於Hadoop的底層,上層的其他分佈式處理框架如Mapreduce、HBase、Hive、Pig等都依賴於HDFS提供的基礎服務,因此HDFS的HA將對這些分佈式處理框架的HA構成直接影響,並最終影響到最上層分佈式應用的HA。因此對於一個實用的系統來說,在大多數情況下都需要考慮HDFS的HA問題。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章