溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于VIP的Keepalived 高可用架構是怎么樣的

發(fā)布時間:2021-12-23 17:05:17 來源:億速云 閱讀:158 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細講解有關基于VIP的Keepalived 高可用架構是怎么樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

1. Keepalived 簡介


1. keepalived 的作用
  • Keepalived 的作用是檢測服務器的狀態(tài)。如果有一臺 web 服務器宕機,或工作出現(xiàn)故障,Keepalived 將檢測到,并將有故障的服務器從系統(tǒng)中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常后 Keepalived 自動將服務器加載到服務器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的服務器。

2. Keepalived 的特性
  • 配置文件簡單:配置文件比較簡單,可通過簡單配置實現(xiàn)高可用功能。

  • 穩(wěn)定性強:keepalived 是一個類似于 layer3/4/7 交換機機制的軟件,具備我們平時說的第 3 層、第 4 層和第 7 層交換機的功能,常用于前端負載均衡器的高可用服務,當主服務器出現(xiàn)故障時,可快速進行切換,監(jiān)測機制靈活,成功率高。

  • 成本低廉:開源軟件,可直接下載配置使用,沒有額外費用。

  • 應用范圍廣:因為 keepalived 可應用在多個層面,所以它幾乎可以對所有應用做高可用,包括 LVS、數(shù)據(jù)庫、http 服務、nginx 負載均衡等等。

  • 支持多種類型:支持主從模式、主主模式高可用,可根據(jù)業(yè)務場景靈活選擇。

2. Keepalived 工作原理


1. Keepalived 內(nèi)部工作分為以下幾個部分

基于VIP的Keepalived 高可用架構是怎么樣的

  • WatchDog 監(jiān)控 checkers 和 VRRP 進程的狀況。

  • Checkers 負責真實服務器的健康檢查 healthchecking。

  • VRRP Stack 負責負載均衡器之間的失敗切換。

  • IPVS wrapper 用來發(fā)送設定的規(guī)則到內(nèi)核 IPVS 代碼。

  • Netlink Reflector 用來設定 vrrp 的 vip 地址等。

2. VRRP 協(xié)議
  • Keepalived 是以 VRRP 協(xié)議為實現(xiàn)基礎的,VRRP 全稱 Virtual Router Redundancy Protocol,即虛擬路由冗余協(xié)議。

  • VRRP 根據(jù)優(yōu)先級來確定虛擬路由器中每臺路由器的角色(Master 路由器或 Backup 路由器)。VRRP 優(yōu)先級的取值范圍為 0 到 255(數(shù)值越大表明優(yōu)先級越高),可配置的范圍是 1 到 254,優(yōu)先級 0 為系統(tǒng)保留給路由器放棄 Master 位置時候使用,255 則是系統(tǒng)保留給 IP 地址擁有者使用。優(yōu)先級越高,則越有可能成為 Master 路由器。當兩臺優(yōu)先級相同的路由器同時競爭 Master 時,比較接口 IP 地址大小。接口地址大者當選為 Master。

3. 主要模塊
  • core 模塊:keepalived 的核心,負責主進程的啟動、維護以及全局配置文件的加載和解析。

  • check 模塊:負責健康檢查,包括各種常見的檢查方式。

  • vrrp 模塊:是來實現(xiàn) VRRP 協(xié)議的。

3. Keepalived 應用場景


1. 在網(wǎng)絡層、數(shù)據(jù)鏈路層,運行著 4 個重要的協(xié)議
  • IP:互聯(lián)網(wǎng)協(xié)議。

  • ICMP:互聯(lián)網(wǎng)控制報文協(xié)議。

  • ARP:地址轉(zhuǎn)換協(xié)議。

  • RARP:反向地址轉(zhuǎn)換協(xié)議。

2. 網(wǎng)絡層場景
  • Keepalived 在網(wǎng)絡層采用的最常見的工作方式是通過 ICMP 協(xié)議向服務器集群中的那個節(jié)點發(fā)送一個 ICMP 數(shù)據(jù)包(類似于 ping 實現(xiàn)的功能),如果某個節(jié)點沒有返回響應數(shù)據(jù)包,那么認為此節(jié)點發(fā)生了故障,Keepalived 將報告此節(jié)點失效,并從服務器集群中剔除故障節(jié)點。

3. 傳輸層場景
  • 在傳輸層,提供了兩個主要的協(xié)議:傳輸控制協(xié)議 TCP 和用戶數(shù)據(jù)協(xié)議 UDP。傳輸控制協(xié)議 TCP 可以提供可靠的數(shù)據(jù)傳輸服務、IP 地址和端口代表 TCP 的一個連接端。要獲得 TCP 服務,需要在發(fā)送機的一個端口上和接收機的一個端口上建立連接。

  • Keepalived 在傳輸層就是利用 TCP 協(xié)議的端口連接和掃描技術來判斷集群點是否是正常的。比如,對于常見的 WEB 服務默認的 80 端口、SSH 服務默認的 22 端口等,Keepalived 一旦在傳輸層探測到這些端口沒有響應數(shù)據(jù)返回,就認為這些端口發(fā)生異常,然后強制將此端口對應的節(jié)點從服務器集群組中移除。

4. 應用層場景
  • 在應用層,可運行 FTP、TELNET、HTTP、DNS 等各種不同類型的高層協(xié)議。

  • Keepalived 在應用層的運行方式也更加全面化和復雜化,用戶可以通過自定義 Keepalived 的工作方式;例如:用戶可以通過編寫程序來運行 keepalived。而 keepalived 將根據(jù)用戶的設定檢測各種程序或服務是否運行正常,如果 Keepalived 的檢測結(jié)果與用戶設定不一致時,Keepalived 將把對應的服務從服務器中移除。

4. 集群


  • 集群是一組相互獨立的、通過高速網(wǎng)絡互連的計算機,它們構成了一個組,并以單一系統(tǒng)的模式加以管理。一個客戶與集群相互作用時,集群像是一個獨立的服務器。

  • 通過集群技術,可以在付出較低成本的情況下獲得在性能、可靠性、靈活性方面的相對較高的收益,其任務調(diào)度則是集群系統(tǒng)中的核心技術。

  • 集群組成后,可以利用多個計算機和組合進行海量請求處理(負載均衡),從而獲得很高的處理效率,也可以用多個計算機做備份(高可用),使得任何一個計算機壞了整個系統(tǒng)還是能正常運行。集群在目前互聯(lián)網(wǎng)公司是必備的技術,極大提高互聯(lián)網(wǎng)業(yè)務的可用性和可縮放性。

基于VIP的Keepalived 高可用架構是怎么樣的

5. 高可用


  • HA(High Available),高可用性集群是通過系統(tǒng)的可靠性(reliability)和維護性(maintainability)來度量的。

  • 工程上,通常用平均無故障時間(MTTF)來度量系統(tǒng)的可靠性,用平均維修時間(MTTR)來度量系統(tǒng)的可維護性。于是可用性被定義為:HA=MTTF/(MTTF+MTTR)*100%(平均無故障時間/總時間,總時間=平均無故障時間+平均維修時間)。

  • 具體 HA(可用性)衡量標準:

    • 99% 一年宕機時間不超過 4 天。

    • 99.9% 一年宕機時間不超過 10 小時。

    • 99.99% 一年宕機時間不超過 1 小時。

    • 99.999% 一年宕機時間不超過 6 分鐘。

6. 高可用集群實現(xiàn)


  • 高可用工作方式

    • 主從方式(非對稱方式)

    • 雙機雙工方式(互備互援)

    • 集群工作方式(多服務器互備方式)

  • 高可用的資源分類

    • 網(wǎng)絡高可用(用戶 -> 機房、機房內(nèi)網(wǎng))

    • 服務器高可用(CPU、內(nèi)存、磁盤)

    • 存儲高可用(關系型數(shù)據(jù)庫、分布式緩存、分布式存儲系統(tǒng))

    • 服務高可用等(Web 服務:Nginx、DNS、CDN 等)

  • 開源高可用解決方案

    • keepalived:通過實現(xiàn) vrrp 協(xié)議來實現(xiàn)地址漂移。

7. 高可用架構


1. 主從高可用架構
  • 在系統(tǒng)中,有一個 Master 節(jié)點和一個 Backup 節(jié)點,其中 Master 節(jié)點對線上業(yè)務提供服務,Backup 與 Master 節(jié)點之間保持心跳。

  • 當 Master 節(jié)點因宕機服務不可用時,系統(tǒng)會切換到 Backup 節(jié)點上線,提供服務。

  • 當宕機 Master 節(jié)點恢復后,系統(tǒng)將該 Master 節(jié)點作為 Backup 加入集群。

基于VIP的Keepalived 高可用架構是怎么樣的

2. 雙主高可用架構
  • 在系統(tǒng)中,有兩個 Master 節(jié)點,均對線上業(yè)務提供服務,兩個 Master 節(jié)點之間保持心跳。

  • 當某一臺 Master 節(jié)點因宕機服務不可用時,系統(tǒng)會將流量全部導向剩余的 Master 節(jié)點,繼續(xù)提供服務。

  • 當宕機的 Master 節(jié)點恢復后,系統(tǒng)將該 Master 加入集群,提供服務。

基于VIP的Keepalived 高可用架構是怎么樣的

8. Keepalived 高可用集群的解決方案


  • Keepalived 在一個節(jié)點上啟動之后,會生成一個 Master 主進程,這個主進程又會生成兩個子進程,分別是:

    • VRRP Stack:實現(xiàn) VRRP 協(xié)議。

    • Checkers:檢測 ipvs 后端 realserver 的健康狀況。

  • VRRP 雙方節(jié)點都啟動后,要實現(xiàn)狀態(tài)轉(zhuǎn)換的,剛開始啟動的時候,初始狀態(tài)都是 BACKUP,而后向其他節(jié)點發(fā)送通知,以及自己的優(yōu)先級信息,誰的優(yōu)先級高,就轉(zhuǎn)換為 MASTER,否則就還是 BACKUP。

  • 這時候服務就在狀態(tài)為 MASTER 的節(jié)點上啟動,為用戶提供服務,如果,該節(jié)點掛掉了,則轉(zhuǎn)換為 BACKUP,優(yōu)先級降低,另一個節(jié)點轉(zhuǎn)換為 MASTER,優(yōu)先級上升,服務就在此節(jié)點啟動,VIP、VMAC 都會被轉(zhuǎn)移到這個節(jié)點上,為用戶提供服務。

基于VIP的Keepalived 高可用架構是怎么樣的

關于基于VIP的Keepalived 高可用架構是怎么樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI