一 LVS 簡介
1 介紹
LVS 是Linux virtual server的簡寫,是linux 虛拟伺服器,是一個虛拟伺服器叢集系統,可以在Unix/Linux平台下實作負載均衡叢集功能,該項目在1998年由章文嵩博士組織建立
2 LVS 發展史。
早在2.2核心版本開始,IPVS 就已經以核心更新檔的形式出現
從2.4.23版本開始IPVS如那件就是合并到Linux核心的常用版本的核心更新檔的集合
從2.4.24 以後IPVS已經成為Linux官方标準核心的一部分。
3 LVS組成
1 IPVS 工作在核心層面
2 管理LVS的工具,ipvsadm 管理LVS的工具,工作在外圍。

4 LVS 叢集名詞介紹
DR LVS 負載排程器
CL 用戶端
RS 後端web 伺服器
5 LVS 工作的四種模式
1 NAT (network address translation)模式
工作原理概述:
資料包通過VIP找到LVS,其中攜帶者用戶端的CIP和VIP,當到達LVS後,LVS通過DNAT目标的位址轉換技術将VIP轉換成RIP使其可以找到後端的服務,當資料包到達RS後,其不知道CIP的位址,一般不在統一網段,通過在RS上配置LVS的内部網關來找到LVS,通過LVS的源位址轉換技術轉換為将RIP轉換為VIP發送給用戶端
對LVS要求:
LVS必須有雙網卡,且需要開啟核心轉發功能
RS 要求,RS 需要指定指向LVS内部網卡的網關,及資料包可以通過網關從RS順利到達LVS。
優點:支援VIP和RIP不在同一網段
缺點:來去都經過LVS ,轉發效率不高
2 TUN 模式:
資料包在用戶端是CIP:VIP ,當到達LVS之後,通過在其外面封裝資料標頭來達到其可以到達RS的目的,當到達RS後,RS需要解封裝資料標頭,提取出VIP和CIP,此時RS上需要有VIP,且開啟ARP抑制,如此才能使得用戶端的資料包在不經過LVS的情況下順利傳回用戶端,
對LVS 要求:
可以支援IPIP隧道技術,實作資料包的封裝,
RS 要求,實作對資料包的解封裝和ARP抑制功能,
優點:适用于LAN/WAN網絡,及LVS和RS不再同一個實體範圍内的場景
缺點:配置複雜,需要支援一定的技術
3 DR 模式 (重點)
用戶端通過VIP進行通路LVS,到達LVS的是CIP和VIP 的資料包,LVS通過在該區域内通過ARP廣播擷取到後端RS的MAC位址,是以LVS必須和RS在同一網段,并通過排程算法将某個RS對應的MAC位址封裝到CIP和VIP的資料包上,進而實作将資料包送達RS的目标,當資料包到達RS後,因為RS端配置了VIP 并啟用了ARP抑制,是以資料包可以用過VIP和CIP 在資料包出去時直接和用戶端進行對話,而不去要經過LVS排程器
一般的裝置都可以
對RS要求:
需要配置VIP和ARP抑制功能
優點:支援高并發,多大數萬
缺點:LVS必須和RS在同一網段,否則不成立
4 FULLNAT 模式
源IP位址和目标IP位址在進和出網絡時都進行轉換
優點:跨VLAN通信(LIP決定)用于溝通底層VLAN的。
功能多,有抗攻擊子產品,多VLAN。支援的主機量更大。
缺點:需要需要編譯核心,
6 LVS 的排程算法
二 實作驗環境
1 裝置概述:
裝置名稱 | 裝置功能 | 裝置IP |
---|---|---|
server1 | LVS排程器 | 192.168.122.232 |
server2 | web伺服器,提供web頁面 | 192.168.122.4 |
server3 | 192.168.122.109 |
2 軟體包及yum源相關配置:
1 軟體包:
連結:https://pan.baidu.com/s/1ITkJkLuuz9YnGd-poQ5R4A
密碼:bdr4
2 配置yum 源:
檢視yum源:
三 實驗(DR模式):
1 LVS 操作
1 安裝ipvsadm
2 設定VIP(排程器)用于與用戶端之間的通信
3 設定排程政策
1 檢視後端RS位址
設定VS 排程政策
-A 表示添加VIP
-a 表示添加站點
-t 表示指定為tcp
-s 指定排程機制為輪循(RR)
-r 指定後端位址
-g 表示模式為DR模式
檢視排程政策
2 RS配置
1 安裝arptables_jf 軟體
1 server2 上安裝
用與接收ARP請求但不傳回,其作用是将使用VIP位址直接與用戶端通信
2 server3 安裝
配置VIP
1 server2 端
2 server3 端配置VIP
3 設定配置政策并儲存
1 設定server2ARP抑制政策并儲存
-A 表示添加
-d 表示 目标位址
-j 為動作
-s 為源位址
2 設定server3ARP抑制政策并儲存
4 啟動其web服務
3 檢視政策
4 進行在實體機端測試
證明輪循機制成立
其缺點是對後端服務不會進行健康檢查,當後端服務出現故障時,前端将會出現通路故障,不能很好的解決健康檢查問題。
四 實驗 (LVS+ldirectord)
1 安裝ldirectord 檔案
1 作用:
ldirectord來管理lvs,可以定時檢查後端realserver,發現故障後自動清除,恢複後自動加入lvs表,
2 安裝服務
2 配置
1 拷貝其配置檔案
2 檢視内容
3 修改配置檔案内容
使其可以直接對IPVS控制
參數說明
前四行是全局配置,他們可以應用到多個虛拟主機。
checktimeout: 等待健康檢查執行完畢的等待時間,機關是s。
checkinterveal:指定健康檢查的時間間隔
autoreload :如果啟用,使用ldirectord 按時計算這個配置檔案的md5校驗和,看其是否改動,如果配置檔案發生變動,其将自己通過調用指令,将其添加到池中
也可以向ldirectoed 守護程序發送HUP(使用kill指令)強制重載
quiescent=:一個節點在 checktimeout 設定的時間周期内沒有響應是它是“靜止的”(它的權重為
0),當你設定了這個選項後,ldirectord将 會從 IPVS 表中移除真實伺服器而不是“停
止”它,從 IPVS 表移除節點将中斷現有的用戶端連接配接,并使 LVS 丢掉所有的連接配接跟蹤記
錄和持續連接配接模闆,如果 你不将這個選項設定為 no,當某個節點崩潰時,對某些用戶端
計算機而言可能會顯示為叢集關閉了,因為在這個節點崩潰前這些用戶端計算機被配置設定
給它了,而連 接跟蹤記錄和程式連接配接模闆仍然保留在 Director上。
virtual=192.168.122.10 虛拟IP位址
real=172.25.254.122:80 gate 設定 RS IP 位址
real=172.25.254.121:80 gate 設定 RS IP 位址
fallback=127.0.0.1:80 gate # 此處的表示所有的節點down掉後VS上
request="index.html" 後端健康檢查檢查的東西
\ #receive="Test Page" 此處的含義是其必須其後端的網頁内容為"Test Page"
#virtualhost=\ww.x.y.z
關閉之前的配置
啟動服務:
3 RS 端配置
1 配置VIP
RS端設定VIP
RS 端設定VIP
2 配置ARP 政策
ARP 政策必須存在
4 檢視LVS情況
當關閉ipvsadm 并重新加載ld 時,其配置情況依然存在