容錯,高可用和災備

阮一峰發表於2019-11-17

標題裡面的三個術語,很容易混淆,專業人員有時也會用錯。

本文就用圖片解釋它們有何區別。

容錯

容錯(fault tolerance)指的是, 發生故障時,系統還能繼續執行。

飛機有四個引擎,如果一個引擎壞了,剩下三個引擎,還能繼續飛,這就是"容錯"。同樣的,汽車的一個輪子扎破了,剩下三個輪子,也還是勉強能行駛。

容錯的目的是,發生故障時,系統的執行水平可能有所下降,但是依然可用,不會完全失敗。

高可用

高可用(high availability)指的是, 系統能夠比正常時間更久地保持一定的執行水平。

汽車的備胎就是一個高可用的例子。如果沒有備胎,輪胎壞了,車就開不久了。備胎延長了汽車行駛的可用時間。

注意,高可用不是指系統不中斷(那是容錯能力),而是指一旦中斷能夠快速恢復,即中斷必須是短暫的。如果需要很長時間才能恢復可用性,就不叫高可用了。上面例子中,更換備胎就必須停車,但只要裝上去,就能回到行駛狀態。

災備

災備(又稱災難恢復,disaster recovery)指的是, 發生災難時恢復業務的能力。

上圖中,飛機是你的 IT 基礎設施,飛行員是你的業務,飛行員彈射裝置就是災備措施。一旦飛機即將墜毀,你的基礎設施就要沒了,災備可以讓你的業務倖存下來。

災備的目的就是,儲存系統的核心部分。一個好的災備方案,就是從失敗的基礎設施中獲取企業最寶貴的資料,然後在新的基礎設施上恢復它們。注意,災備不是為了挽救基礎設定,而是為了挽救業務。

總結

上面三個方面可以結合起來,設計一個可靠的系統。

  • 容錯:發生故障時,如何讓系統繼續執行。
  • 高可用:系統中斷時,如何儘快恢復。
  • 災備:系統毀滅時,如何搶救資料。

參考文獻

(完)

相關文章