Keepalived的工作原理
在一個虛擬路由器中,只有作為MASTER的VRRP路由器會一直發送VRRP通告信息,BACKUP不會搶占MASTER,除非它的優先級更高。當MASTER不可用時(BACKUP收不到通告信息)多臺BACKUP中優先級最高的這臺會被搶占為MASTER。這種搶占是非常快速的(<1s),以保證服務的連續性由于安全性考慮,VRRP包使用了加密協議進行加密。BACKUP不會發送通告信息,只會接收通告信息
簡單了解VRRP協議
- 虛擬路由冗余協議,解決動態路由的單點故障問題
- 它的工作機制是競選機制,選擇一個路由來完成工作
- VRRP協議是通過發送多播數據包實現競選的(Multicat)
- 競選出來的主節點會一直發送廣播包,backup節點一直監聽這些廣播包(處于監聽狀態)
- 當備用節點無法接收到廣播包的是時候,就會重新進行競選,選出一個新的節點作為主節點
LVS四種模式的工作過程
LVS 有四種負載均衡的模式,分別是
VS/NAT(nat 模式)
FULLNAT 模式
VS/DR(路由模式)
VS/TUN(隧道模式)
NAT模式(VS-NAT)
原理:就是把客戶端發來的數據包的IP頭的目的地址,在負載均衡器上換成其中一臺RS的IP地址并發至給RS處理,RS處理完后把數據交給負載均衡器,負載均衡器再把數據包原IP地址改為自己的IP將目的地址改為客戶端IP地址即可期間,無論是進來的流量,還是出去的流量,都必須經過負載均衡器
優點:
集群中的物理服務器可以使用任何支持TCP/IP操作系統,只有負載均衡器需要一個合法的IP地址
缺點:
擴展性有限。當服務器節點(普通PC服務器)增長過多時,負載均衡器將成為整個系統的瓶頸。因為所有的請求包和應答包的流向都需要經過負載均衡器。當服務器節點過多時大量的數據包都交匯于負載均衡器,速度就會變慢!
FULLNAT 模式
原理:FULLNAT模式和NAT相似,只是數據包在過lvs時,不只修改目的ip,源ip也一塊修改了
特點
- FULLNAT模式也不需要DIP(Director Server IP,主要用于和內部主機通訊的IP地址,即lvs物理機內網ip)和RIP(后端服務器IP)在同一網段
- FULLNAT和NAT相比的話:會保證RS的回包一定可到達LVS
- FULLNAT需要更新源IP,所以性能正常比NAT模式下降10%
IP隧道模式(VS-TUN)
原理:首先要知道,互聯網上的大多Internet服務的請求包很短小,而應答包通常很大那么隧道模式就是,把客戶端發來的數據包,封裝一個新的IP頭標記(僅目的IP)發給RS,RS收到后,先把數據包的包頭解開,還原數據包,處理后,直接返回給客戶端,不需要再經過負載均衡器。
注意:由于RS需要對負載均衡器發過來的數據包進行還原,所以說必須支持IPTUNNEL協議,所以,在RS的內核中,必須編譯支持IPTUNNEL這個選項
優點:
負載均衡器只負責將請求包分發給后端節點服務器,而RS將應答包直接發給用戶所以,減少了負載均衡器的大量數據流動,負載均衡器不再是系統的瓶頸,就能處理很巨大的請求量。這種方式,一臺負載均衡器能夠為很多RS進行分發。而且跑在公網上就能進行不同地域的分發。
缺點:
隧道模式的RS節點需要合法IP,這種方式需要所有的服務器持IPTunneling(IP Encapsulation)協議,服務器可能只局限在部分Linux系統上
直接路由模式(VS-DR)
原理:負載均衡器和RS都使用同一個IP(VIP)對外服務,但只有DR對ARP請求進行響應,所有RS對本身這個VIP的ARP請求保持靜默,也就是說網關會把對這個服務IP的請求全部定向給DR,而DR收到數據包后根據調度算法,找出對應的RS,把目的MAC地址改為RS的MAC(因為IP一致)并將請求分發給這臺RS,這時RS收到這個數據包,處理完成之后,由于IP一致,可以直接將數據返給客戶,則等于直接從客戶端收到這個數據包無異,RS處理用戶請求后直接返回給客戶端,由于負載均衡器要對二層包頭進行改換,所以負載均衡器和RS之間必須在一個廣播域也可以簡單的理解為在同一臺交換機上
優點:
和TUN(隧道模式)一樣,負載均衡器也只是分發請求,應答包通過單獨的路由方法返回給客戶端,與VS-TUN相比,VS-DR這種實現方式不需要隧道結構,因此可以使用大多數操作系統做為物理服務器。
缺點:(不能說缺點,只能說是不足)要求負載均衡器的網卡必須與物理網卡在一個物理段上。