高可用和災(zāi)備方案
基礎(chǔ)知識
高可用 (High Availability,簡稱 HA
高可用性是指提供在本地系統(tǒng)單個組件故障情況下瞧预,能繼續(xù)訪問應(yīng)用的能力
有兩個維度的成本:RTO (Recovery Time Objective)和 RPO(Recovery Point Objective)
- RTO 是服務(wù)恢復(fù)的時間彬向,最佳的情況是 0肛度,這意味著服務(wù)立即恢復(fù);最壞是無窮大意味著服務(wù)永遠恢復(fù)不了
- RPO 是切換時向前恢復(fù)的數(shù)據(jù)的時間長度湃崩,0 意味著使用同步的數(shù)據(jù),大于 0 意味著有數(shù)據(jù)丟失
HA 的計算公式是[ 1 - (宕機時間)/(宕機時間 + 運行時間)]接箫,我們常常用幾個 9 表示可用性:
2 個9:99% = 1% * 365 = 3.65 * 24 小時/年 = 87.6 小時/年的宕機時間
4 個9: 99.99% = 0.01% * 365 * 24 * 60 = 52.56 分鐘/年
5 個9:99.999% = 0.001% * 365 = 5.265 分鐘/年的宕機時間攒读,也就意味著每次停機時間在一到兩分鐘。
11 個 9:幾乎就是幾年才宕機幾分鐘辛友。 據(jù)說 AWS S3 的設(shè)計高可用性就是 11 個 9
服務(wù)的分類
- 有狀態(tài)服務(wù):后續(xù)對服務(wù)的請求依賴于之前對服務(wù)的請求
- 無狀態(tài)服務(wù):對服務(wù)的請求之間沒有依賴關(guān)系薄扁,是完全獨立的
HA 的種類
HA 需要使用冗余的服務(wù)器組成集群來運行負載,包括應(yīng)用和服務(wù)
- Active/Passive HA:集群只包括兩個節(jié)點簡稱主備
- Active/Active HA:集群只包括兩個節(jié)點時簡稱雙活废累,包括多節(jié)點時成為多主(Multi-master)
云環(huán)境的 HA
云環(huán)境包括一個廣泛的系統(tǒng)邓梅,包括硬件基礎(chǔ)設(shè)施、IaaS層邑滨、虛機和應(yīng)用
云環(huán)境的 HA 將包括:
- 應(yīng)用的 HA
- 虛機的 HA
- 云控制服務(wù)的 HA
- 物理IT層:包括網(wǎng)絡(luò)設(shè)備比如交換機和路由器日缨,存儲設(shè)備等
- 基礎(chǔ)設(shè)施,比如電力驼修、空調(diào)和防火設(shè)施等
災(zāi)難恢復(fù) (Disaster Recovery)
數(shù)據(jù)級
指通過建立異地容災(zāi)中心殿遂,做數(shù)據(jù)的遠程備份,在災(zāi)難發(fā)生之后要確保原有的數(shù)據(jù)不會丟失或者遭到破壞
在數(shù)據(jù)級容災(zāi)這個級別乙各,發(fā)生災(zāi)難時應(yīng)用是會中斷的
在數(shù)據(jù)級容災(zāi)方式下墨礁,所建立的異地容災(zāi)中心可以簡單地把它理解成一個遠程的數(shù)據(jù)備份中心
數(shù)據(jù)級容災(zāi)的恢復(fù)時間比較長,但是相比其他容災(zāi)級別來講它的費用比較低耳峦,而且構(gòu)建實施也相對簡單恩静。
但是,“數(shù)據(jù)源是一切關(guān)鍵性業(yè)務(wù)系統(tǒng)的生命源泉”,因此數(shù)據(jù)級容災(zāi)必不可少應(yīng)用級
在數(shù)據(jù)級容災(zāi)的基礎(chǔ)之上驶乾,在備份站點同樣構(gòu)建一套相同的應(yīng)用系統(tǒng)邑飒,通過同步或異步復(fù)制技術(shù),這樣可以保證關(guān)鍵應(yīng)用在允許的時間范圍內(nèi)恢復(fù)運行级乐,盡可能減少災(zāi)難帶來的損失疙咸,讓用戶基本感受不到災(zāi)難的發(fā)生,這樣就使系統(tǒng)所提供的服務(wù)是完整的风科、可靠的和安全的業(yè)務(wù)級
全業(yè)務(wù)的災(zāi)備撒轮,除了必要的 IT 相關(guān)技術(shù),還要求具備全部的基礎(chǔ)設(shè)施
其大部分內(nèi)容是非IT系統(tǒng)(如電話贼穆、辦公地點等)题山,當大災(zāi)難發(fā)生后,原有的辦公場所都會受到破壞故痊,除了數(shù)據(jù)和應(yīng)用的恢復(fù)顶瞳,更需要一個備份的工作場所能夠正常的開展業(yè)務(wù)
HA 和 DR 的關(guān)系
HA 往往指本地的高可用系統(tǒng),表示在多個服務(wù)器運行一個或多種應(yīng)用的情況下愕秫,應(yīng)確保任意服務(wù)器出現(xiàn)任何故障時慨菱,其運行的應(yīng)用不能中斷,應(yīng)用程序和系統(tǒng)應(yīng)能迅速切換到其它服務(wù)器上運行戴甩,即本地系統(tǒng)集群和熱備份抡柿。HA 往往是用共享存儲,因此往往不會有數(shù)據(jù)丟失(RPO = 0)等恐,更多的是切換時間長度考慮即 RTO
DR 是指異地(同城或者異地)的高可用系統(tǒng),表示在災(zāi)害發(fā)生時备蚓,數(shù)據(jù)、應(yīng)用以及業(yè)務(wù)的恢復(fù)能力二跋。異地災(zāi)備的數(shù)據(jù)災(zāi)備部分是使用數(shù)據(jù)復(fù)制,根據(jù)使用的不同數(shù)據(jù)復(fù)制技術(shù)(同步、異步闷营、Strectched Cluster 等)速蕊,數(shù)據(jù)往往有損失導(dǎo)致 RPO >0规哲;而異地的應(yīng)用切換往往需要更長的時間唉锌,這樣 RT0 >0
從故障角度议双,HA 主要處理單組件的故障導(dǎo)致負載在集群內(nèi)的服務(wù)器之間的切換汞舱,DR 則是應(yīng)對大規(guī)模的故障導(dǎo)致負載在數(shù)據(jù)中心之間做切換
從網(wǎng)絡(luò)角度,LAN 尺度的任務(wù)是 HA 的范疇泌神,WAN 尺度的任務(wù)是 DR 的范圍矾兜。
從云的角度看浑槽,HA 是一個云環(huán)境內(nèi)保障業(yè)務(wù)持續(xù)性的機制桐玻,DR 是多個云環(huán)境間保障業(yè)務(wù)持續(xù)性的機制
從目標角度,HA 主要是保證業(yè)務(wù)高可用算行,DR 是保證數(shù)據(jù)可靠的基礎(chǔ)上的業(yè)務(wù)可用
OpenStack HA
OpenStack 部署環(huán)境中,各節(jié)點可以分為幾類:
- Cloud Controller Node (云控制節(jié)點):安裝各種 API 服務(wù)和內(nèi)部工作組件(worker process)
同時褪子,往往將共享的 DB 和 MQ 安裝在該節(jié)點上 - Neutron Controller Node (網(wǎng)絡(luò)控制節(jié)點):安裝 Neutron L3 Agent量淌,L2 Agent,LBaas嫌褪,VPNaas呀枢,F(xiàn)Waas,Metadata Agent 等 Neutron 組件
- Storage Controller Node (存儲控制節(jié)點):安裝 Cinder volume 以及 Swift 組件
- Compute node (計算節(jié)點):安裝 Nova-compute 和 Neutron L2 Agent笼痛,在該節(jié)點上創(chuàng)建虛機
構(gòu)建準則: - 能 A/A 盡量 A/A裙秋,不能的話則 A/P (RedHat 認為 A/P HA 是 No HA)
- 有原生(內(nèi)在實現(xiàn)的)HA方案盡量選用原生方案,沒有的話則使用額外的HA 軟件比如 Pacemaker 等
- 需要考慮負載均衡
- 方案盡可能簡單缨伊,不要太復(fù)雜
云控制節(jié)點 HA
云控制節(jié)點的 A/A HA 方案
云控制節(jié)點的 A/P HA方案
可以使用 Pacemaker + Corosync 搭建兩節(jié)點集群實現(xiàn) A/P HA 方案