分布式系統中可用性及容錯性的區別


可用性及容錯性是分布式系統中很重要的兩個屬性。之前我對一致性關注得更多一些,但對兩者的區別還是很模糊。
首先是msdn上的一篇介紹兩者區別的文章:http://blogs.msdn.com/b/clustering/archive/2010/10/06/10072013.aspx
"High availability solutions traditionally consist of a set of loosely coupled servers which have failover capabilities."
"Fault tolerant solutions traditionally consist of a pair of tightly coupled systems which provide redundancy."
看了之后發現文章介紹的是HA/FT solution,並不是研究領域中的概念,不過這也體現了工業界對HA,FT這兩個概念的看法。
文章認為HA解決方案中沒有副本機制,故一個節點失效后,必須要等這個節點恢復或用新的節點替代舊的節點后,系統才會變得可用,所以會存在宕機時間;然而在有多副本機制的分布式系統中,尤其是提供弱一致性支持的系統中,一個節點失效並不會導致宕機。
對於FT解決方案,文章用了強一致的主從副本機制:當主節點失效后,從節點可以繼續提供服務,使宕機時間為0.
我認為,文中對HA/FT的理解並不是通用的理解,起碼在我的研究范圍內不是;或者退一步說,文中對HA的理解就不適用於我的研究范疇。
對這兩個概念的理解,不同人有不同的看法,例如下面一篇:
http://www.quora.com/What-is-the-difference-between-a-highly-fault-tolerant-and-a-highly-available-system
故在此提出我對這兩者的看法。
--------------------------------------------------------------------------
這兩個概念其實都是針對同一問題:系統出現異常了怎么辦?
首先說明一下,我討論的系統是分布式環境下有多數據副本的系統。另一類,異常如何定義?在我看的文獻中,異常主要有兩大類:omission failures及unreliable networks,下面也將沿用這一異常分類。
omission failure:
定義1:Omission failures either due to process crash either due to communication link failures are detected via timeouts
  參考:http://stackoverflow.com/questions/12229099/understanding-omission-failure-in-distributed-systems
定義2:Process omission failures + Communication omission failures
  參考:http://www.inf.ed.ac.uk/teaching/courses/ds/handouts/handout12.pdf
unreliable network: messages may be delayed for an arbitrary but finite duration, reordered, or dropped.

對 於fault的理解,網上常常用可檢測的硬件(包括服務器及網絡設備)故障來理解,其實是不全面的。首先檢測機制本身也會出現故障,另外,硬件故障可能是 短期的,且使得檢測機制來不及檢測到硬件故障又自行恢復了(如網口暫時接觸不良),最后,數據包可能會亂序,或者由於網絡擁塞導致丟包等等。故障檢測到現 在都沒有100%正確的方法,且仍是學術界研究的一個重要方向。

回到HA及FT的區別。HA是指系統在出現某些特定故障之前,都能繼續提 供服務,如non-strict quorum系統中的W=R=1的配置下,只要有一個副本可訪問,系統就能持續提供服務。對於FT,我的理解還不是很透徹,感覺大家理解更多的是一出現單 點故障,系統會迅速尋找到一個點替代故障點;另外,還有一點是替代節點完全可以替代故障節點,使得客戶端感覺不到數據不一致的問題,而可用性則允許數據不 一致,因為可用性與一致性是兩個不同的屬性。


參考:《Consistency, Availability, and Convergence》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM