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