天天看點

高可用性的幾個級别

大家常說高可用,High Availablility,但是一般說到這個詞的時候,具體指的什麼方案呢?

級别一:FT (Fault Tolerance) 輕按兩下熱備

高可用性的幾個級别

通過建立與主執行個體保持虛拟同步的虛拟機,使應用在伺服器發生故障的情況下也能夠持續可用。

這種方法常通過使主虛拟機 和輔助虛拟機執行相同順序的 x86指令來完成此過程。主虛拟機捕獲所有輸入和事件,并在輔助虛拟機上進行重放。

輔助虛拟機執行與主虛拟機相同的指令序列,如果運作主虛拟機的主機或運作輔助虛拟機的主機發生故障,則會發生即時且透明的故障切換。

雖然FT功能很強大,但是在虛拟化中很少用到FT功能,一是對資源浪費比較嚴重,二是性能下降比較快,由于是指令級别的同步,因而兩台虛拟機之間的距離非常近,無法完全達到容災的目的,三是如果主虛拟機因為執行非法指令藍屏,則輔助虛拟機也馬上就會發生,根本無法保證業務延續性。

級别二:虛拟機HA

高可用性的幾個級别

虛拟機HA主要指在有一個共享存儲池的情況下,當一台實體機挂了,這台實體機上的虛拟機可以遷移到其他實體機的機制。

因為虛拟機是有狀态的,因而需要共享存儲池來保證狀态可以被另外一台實體機讀取到。

在HA狀态下,虛拟機的恢複時間一般在秒級别,也即當監控探測到實體機挂了之後,可以迅速在空閑的實體機上将虛拟機啟動起來。

啟動HA的實體機叢集可以比較大,可以跨機架,比FT更能起到容災的目标。

級别三:同城雙活

如果一個機架,或者整個機房,甚至整個資料中心着火了,則如何保證業務的連續性呢?

高可用性的幾個級别

一種常用的機制是同城雙活,就是在同一個城市,距離大概30km到100km的兩個資料中心之間,通過高速專線互聯的方式,讓兩個資料中心形成一個大二層網絡。

同城雙活最重要的是資料如何從一個資料中心同步到另一個資料中心,并且在一個資料中心故障的時候,可以實作儲存設備的切換,保證狀态能夠快速切換到另一個資料中心。主流的存儲廠商都提供在高速光纖互聯情況下,在一定距離之内的兩台儲存設備的近實時的同步,資料雙活是一切雙活的基礎。

基于雙資料中心的資料同步,對上看起來可以形成一個統一的存儲池,進而資料庫層在共享存儲池的情況下可以近實時的切換,例如Oracle RAC。

虛拟機在統一的存儲池的情況下,也可以實作跨機房的HA,在一個機房切換到另一個機房。

SLB負載均衡實作同一機房的各個虛拟機之間的負載均衡。

GSLB可以實作跨機房的負載均衡,實作外部通路的切換。

如果在兩個資料中心距離很近,并且大二層可通的情況下,也可以使用VRRP協定,通過VIP方式進行外部通路的切換。

同城雙活一般宣稱是實時切換,但是真正實施起來,一般在幾分鐘到十幾分鐘,對于資料量比較大的,還會幾十分鐘。

級别四:異地容災

高可用性的幾個級别

當你覺得一個地方兩個資料中心還是不保險,例如海嘯,地震,原子彈等,則可以在異地修建容災資料中心。

第一大問題還是資料的問題,也即生産資料中心的資料如何備份到容災資料中心,由于異地距離比較遠,不可能像雙活一樣采取近同步的方式,隻能通過異步的方式進行同步,也可以預見的是,容災切換的時候,資料會丢失一部分。

由于容災資料中心平時是不用的,不會講所有的業務都進行容災,否則成本太高。

對于資料的問題比較建議從業務層面進行容災,由于資料同步會比較慢,可以根據業務需求高優先級同步重要的資料,因而容災的層次越高越好。

例如有的使用者完全不想操心,則使用存儲層面的異步複制,對于儲存設備來講,是無法區分放在存儲上的虛拟機哪台是重要的,哪台是不重要的,完全根據塊進行複制,很可能先複制了不重要的虛拟機。

如果使用者想對虛拟機做區分,則可以使用虛拟機層面的異步複制,使用者知道哪些虛拟機更重要一些,哪些虛拟機不重要,則可以先同步重要的虛拟機。

如果使用者可以根據業務層情況,在更細的粒度上區分哪些對業務來講是重要的資料,例如交易資料,需要優先同步,哪些對于業務來講是不重要的資料,例如日志資料。

在有異地容災的情況下,可以平時進行容災演練,看容災資料中心是否能夠真正起作用,别容災了半天,真用上的時候掉鍊子。

由于是異地,容災切換的時間一般在小時級别,幾個小時不等。

級别五:異地備份

備份是比容災更加不靈活的一種方式,和容災的不同是,容災需要使得虛拟機的資源時刻準備着,等需要切換的時候,馬上就用,資料和虛拟機還是熱資料。而備份更多的是以冷資料的方式,将虛拟機鏡像,資料庫鏡像等變成檔案存放在價格比較便宜的存儲上面,成本比容災要低得多。

存儲可以是專門用于備份的儲存設備,也可以使用對象存儲等大容量而且成本低的存儲。

備份往往區分全量備份和差量備份,一般在重要的時間點儲存全量備份,然後以後的一段時間儲存差量備份,然後再全量備份,再差量備份。

備份恢複的過程也是從最近的全量備份開始,逐漸補足差量備份,進而達到最接近最終狀态的資料。

一旦用到備份,則說明環境已經全部不在,需要重新準備環境來運作虛拟機和存儲,是以恢複的時間在天級别。

原文釋出時間為:2018-07-10

本文作者:劉超

本文來自雲栖社群合作夥伴“

程式員小灰

”,了解相關資訊可以關注“