【软件工程】容错、高可用、灾备の辨析
容錯、高可用、災(zāi)備
標題里面的三個術(shù)語,很容易混淆,專業(yè)人員有時也會用錯。
本文就用圖片解釋它們有何區(qū)別。
容錯
容錯(fault tolerance)指的是, 發(fā)生故障時,系統(tǒng)還能繼續(xù)運行。
飛機有四個引擎,如果一個引擎壞了,剩下三個引擎,還能繼續(xù)飛,這就是"容錯"。同樣的,汽車的一個輪子扎破了,剩下三個輪子,也還是勉強能行駛。
容錯的目的是,發(fā)生故障時,系統(tǒng)的運行水平可能有所下降,但是依然可用,不會完全失敗。
高可用
高可用(high availability)指的是, 系統(tǒng)能夠比正常時間更久地保持一定的運行水平。
汽車的備胎就是一個高可用的例子。如果沒有備胎,輪胎壞了,車就開不久了。備胎延長了汽車行駛的可用時間。
注意,高可用不是指系統(tǒng)不中斷(那是容錯能力),而是指一旦中斷能夠快速恢復(fù),即中斷必須是短暫的。如果需要很長時間才能恢復(fù)可用性,就不叫高可用了。上面例子中,更換備胎就必須停車,但只要裝上去,就能回到行駛狀態(tài)。
災(zāi)備
災(zāi)備(又稱災(zāi)難恢復(fù),disaster recovery)指的是, 發(fā)生災(zāi)難時恢復(fù)業(yè)務(wù)的能力。
上圖中,飛機是你的 IT 基礎(chǔ)設(shè)施,飛行員是你的業(yè)務(wù),飛行員彈射裝置就是災(zāi)備措施。一旦飛機即將墜毀,你的基礎(chǔ)設(shè)施就要沒了,災(zāi)備可以讓你的業(yè)務(wù)幸存下來。
災(zāi)備的目的就是,保存系統(tǒng)的核心部分。一個好的災(zāi)備方案,就是從失敗的基礎(chǔ)設(shè)施中獲取企業(yè)最寶貴的數(shù)據(jù),然后在新的基礎(chǔ)設(shè)施上恢復(fù)它們。注意,災(zāi)備不是為了挽救基礎(chǔ)設(shè)置,而是為了挽救業(yè)務(wù)。
總結(jié)
上面三個方面可以結(jié)合起來,設(shè)計一個可靠的系統(tǒng)。
- 容錯:發(fā)生故障時,如何讓系統(tǒng)繼續(xù)運行。
- 高可用:系統(tǒng)中斷時,如何盡快恢復(fù)。
- 災(zāi)備:系統(tǒng)毀滅時,如何搶救數(shù)據(jù)。
轉(zhuǎn)載來源
阮一峰的博客
對上述內(nèi)容的解讀
V1
容錯: 降頻
高可用: 重啟
災(zāi)備: 重裝系統(tǒng)
V2
容錯:異常控制
高可用:模塊化、版本控制
容災(zāi):備份、鏡像
V3
容錯:必須要“可用”,允許“低可用”
高可用:必須“高可用”
容災(zāi):“災(zāi)難發(fā)生,依然可用”
知乎回答
高可用是目標,容災(zāi)是實現(xiàn)這一目標的手段
可用性是什么?
可用性是一種安全屬性,是信息安全三要素CIA中的A:
- 保密性(Confidentiality)
- 完整性(Intergrity)
- 可用性(Availablility)
高可用是系統(tǒng)的重要目標,但往往不是最重要的。例如軍用系統(tǒng)中保密性最重要(寧可毀掉系統(tǒng)也不愿機密落入敵手)
商業(yè)系統(tǒng)中完整性最重要(寧愿服務(wù)終止,賬本泄露也不容許篡改)
只不過保密性與完整性不好衡量,非常不適合拿出來吹逼。
而可用性有一個簡單粗暴的衡量指標:系統(tǒng)能正常運行的時間占總時間的百分比。比如99%的可用性就表示系統(tǒng)保證在99%的時間內(nèi)正常服務(wù)。
通常99.99%四個九可以稱為高可用,載人航天中,這一標準是99.9999%。
容錯是什么?
容錯是一種提高可靠性的手段。造成錯誤的原因叫做故障(fault),能預(yù)料并應(yīng)對故障的系統(tǒng)特性可稱為容錯(fault-tolerant)或韌性(resilient)。
通常一些“小錯“,硬件錯誤,軟件錯誤,人為錯誤,忍一忍也就過去了。給出問題的用戶報個錯,系統(tǒng)還是“可用”的。畢竟好死不如賴活著。
但某些錯誤 —— 災(zāi)難,是茍不了的,整個機房被水淹沒,光纜挖斷之類的事情。通常會直接使服務(wù)不可用。要容這種錯,有必要用些諸如x地x中心復(fù)制,自動故障遷移的容災(zāi)技術(shù)。
容災(zāi)通常就是奔著系統(tǒng)高可用去的。換句話說,不支持“容災(zāi)”,哪好意思管自己叫“高可用”。不過容災(zāi)總是有限度的,假設(shè)整個地球被黑洞吞沒,那要容災(zāi)除非把主機托管到太空中去。而且并不是所有的情況下,容災(zāi)都是好東西的。
面對疾病,我們有兩種策略:預(yù)防與治療。預(yù)防太費錢費事,人們通常會選擇有病再治。類似的道理,比起阻止錯誤,我們通常更傾向于容忍錯誤。但也有預(yù)防勝于治療的情況(比如不存在治療方法時)。安全問題就屬于這種情況。
如果攻擊者要希望獲取軍用系統(tǒng)中的保密數(shù)據(jù),或者程序Bug即將破壞商業(yè)系統(tǒng)中的數(shù)據(jù)完整性。很多時候我們都是希望寧為玉碎不為瓦全,不要容這種錯的。這種與容錯背道而馳的哲學(xué)稱為速死(Fail-Fast)
因此當服務(wù)商吹噓高可用時。不要忘了看一看,這些服務(wù)的保密性怎么樣?
轉(zhuǎn)載說明
用途:分享、學(xué)習(xí)
作者:馮若航
鏈接:https://www.zhihu.com/question/278172049/answer/398357428
來源:知乎
知乎回答
在信息安全領(lǐng)域,高可用指的是通過各種技術(shù)手段、架構(gòu)設(shè)計、軟硬件實現(xiàn)方法,提高信息系統(tǒng)及系統(tǒng)的各個組成部分、支持組件的可用性。常見手段有:冗余的網(wǎng)絡(luò)鏈路、服務(wù)器的集群等等。
舉個例子,重要網(wǎng)絡(luò)節(jié)點的硬件防火墻設(shè)備,可能會因為流量過大,造成設(shè)備處理性能急劇下降,進而顯著影響整個網(wǎng)絡(luò)的可用性。解決的思路一般是兩臺設(shè)備配置高可用模式。常見的高可用模式分兩種,一種是主主模式,兩臺設(shè)備同時在線共同處理。另一種是主備模式,通過設(shè)備間的心跳機制做故障切換。
而容災(zāi),一般特指面對自然災(zāi)害時的處理與恢復(fù)能力。在ISO27002種有專門一個Domain講業(yè)務(wù)連續(xù)性,而ISO22301是一份專門講業(yè)務(wù)連續(xù)性的國際標準。感興趣可以Google標準全文仔細研究。概括來說,容災(zāi)設(shè)計一般是通過多個機房提高企業(yè)容災(zāi)能力,遇到災(zāi)害時,即使一個機房無法服務(wù),可通過技術(shù)手段近乎無縫的將流量切換到其他機房。
有其他答案中提到了兩地三中心的概念,這在前幾年的金融業(yè)是非常主流的一種說法。在有關(guān)業(yè)務(wù)連續(xù)性的指南中也有要求,災(zāi)備機房應(yīng)距離主機房XX千米以外。同城災(zāi)備、異地災(zāi)備應(yīng)該如何設(shè)計,都是有要求的。不過最近國內(nèi)的大型互聯(lián)網(wǎng)企業(yè)已經(jīng)逐漸淡化兩地三中心的概念,并非是拋棄災(zāi)備設(shè)計,而是轉(zhuǎn)而將以前的災(zāi)備機房的地位逐步提高,通過復(fù)雜的網(wǎng)絡(luò)設(shè)計實現(xiàn)了多機房并行處理業(yè)務(wù)。
無論技術(shù)如何發(fā)展,企業(yè)面對地震、火災(zāi)等自然災(zāi)害時的應(yīng)對能力、連續(xù)服務(wù)保障能力,都是業(yè)務(wù)連續(xù)性管理的重中之重。
總結(jié)
以上是生活随笔為你收集整理的【软件工程】容错、高可用、灾备の辨析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【离散数学】集合的特征函数
- 下一篇: 【CHM】.chm文件无法正常显示的解决