最近在做一個容災方案,了解到AWS有一個容災的白皮書。
于是,今天粗略把 AWS 的容災白皮書讀了一遍,白皮書中介紹了基于 AWS 的幾種容災方案。這些方案不僅僅適用于基于 AWS 的系統,也適用于通用系統。現將其關鍵點摘要下來,感興趣的同學可以讀一遍原文。
容災兩個術語
白皮書中提到了兩個關于容災的術語( industry terms)
Recovery Time Objective
Recovery Point Objective
恕我孤陋寡聞,之前也參與過容災的設計,但是關于這兩個術語還是第一次知道。這兩個術語在維基百科有定義,不確定是 AWS 開發者添加的詞條還是很早就存在。話說我司每個產品也都有容災方案,但是還沒有人能總結出這么精準的 industry terms。所以說亞馬遜作為這個領域的leader還是有道理的。
1. RTO 恢復耗時
主站點故障后,備站點恢復到達到OLA(operational level agreement )所耗費的時間。
用另外一句話就是主站點故障后,備站點恢復到正常提供服務狀態所需要的時間。
站在用戶視角,RTO是系統服務中斷時間。
舉個例子,如果主站點在12:00 故障了,系統容災的RTO時8小時,那么系統必須在20:00前恢復并正常提供服務。
2. RPO 恢復時間點
主站點故障后,備站點能夠恢復到過去哪個時間點的數據。
換句話說,備站點恢復后,與主站點相比,有多少數據丟失。
站在用戶視角,RPO時數據丟失的量。
舉個例子,如果主站點在12:00故障了,系統容災的RPO是1小時,那么系統恢復后,其數據必須是到11:00的。也就是說允許丟失12:00~11:00 之間的數據。
所以以后在評判或設計一個容災方案時候,先問這兩個問題:
RTO 值是多少
RPO 值是多少
如果回答不上來,那么這個方案肯定是沒想明白的。
容災方案
白皮書中將容災方案按照RTO以及成本排序,稱為容災方案圖譜。
Backup and Restore
備份恢復是最常見的一種容災手段,將主站點數據備份到與主站點隔離的存儲設備。當生產環境故障后,能夠在備站點將數據恢復。
AWS提供了一系列的高可靠存儲服務:
Amazon S3,簡單對象存儲,11個9可靠性
Amazon Glacier,如果覺得S3太貴的話
Amazon VTS,虛擬磁帶存儲,如果要保存巨大且時間長的數據的話
使用Amazon的這些存儲服務,加上備份恢復工具,就可以實現一個容災系統。
備份示意圖
恢復示意圖
Pilot Light
Pilot Light 是一個裝置,這個是一個類似點火器的裝置,如煤氣灶的點火器,通過點火器可以把煤氣灶點燃,然后就可以做飯了:)
Pilot Light用到容災系統中,要表達的意思是,在備站點部署一個服務,通過這個服務可以將整個系統運行起來。
準備
備站點安裝數據庫服務,并建立與主站點之間的數據復制關系
主站點的操作系統或文件做成 AMI ,在備站點恢復時候直接加載為EC2
定期測試備站點的恢復[5]
恢復
使用 AMI 創建 EC2
根據情況加大數據服務器的配置
增加額外的數據服務器(如果有需要)
配置系統(一些配置不是通過 AMI 導入就可以生效的)
將 DNS 映射為備站點IP地址
Warm Standby
Warm Standby 是在備站點復制了主站點,但是它們還是有差別的:
備站點服務運行但是不對外提供服務
備站點的服務器配置是最小配置(These servers can be running on a minimum-sized fleet of Amazon EC2 instances on the smallest sizes possible) ( fleet of Amazon EC2 好霸氣~~)
準備
備站點安裝數據庫服務并同步數據
備站點申請最小配置的EC2安裝并app
定時執行app的升級和補丁,保持與主站點一致
恢復
增加EC2數量(橫向擴展)(擴成與主站點一致)
增加EC2配置(縱向擴展)(擴成與主站點一致)
增加數據庫實例數(擴成與主站點一致)
切換 DNS 映射到備站點
最近在做一個容災方案,了解到AWS有一個容災的白皮書。于是,今天粗略把 AWS 的容災白皮書讀了一遍,白皮書中介紹了基于 AWS 的幾種容災方案。這些方案不僅僅適用于基于 AWS 的系統,也適用于通用系統?,F將其關鍵點摘要下來,感興趣的同學可以讀一遍原文。
Multi Site
Multi Site 指的是 active-active 的容災方案。主備站點同時對外提供服務,由DNS根據負載決定將請求轉發到哪個站點。
準備
將主站點系統復制到備站點,服務器和配置都相同
在DNS上配置路由策略
恢復
手動切換(DNS上切換)
或者配置DNS failover
Fail Back
當主站點故障修復后,我們還需要將服務切換到主站點,這個過程稱為 fail back 。
不同的容災方案,fail back的方法不一樣。
Backup and Restore
凍結備站點的修改操作
備份數據
恢復到主站點
切換DNS指向主站點
解凍
Pilot light, warm standby, and multi-site
凍結備站點的修改操作
將數據復制方向改為從主向備
切換DNS指向主站點
解凍