lvs一:lvs概述 LVS是linux內核的一部分,因此性能高 linux虛擬服務器(即分發器或調度器director); 他不是真正提供服務,但他接受客戶的訪問,爲整個集羣提供一個唯一的入口。虛擬服務器再和真實服務器通信(read server)。 它真正提供服務,集羣中每個real server可以是一臺物理主機,也可以是虛擬機。 lvs相關術語(必記): DS(或DR):Director server調度服務器。指的是前端負載均衡器節點。 RS:(real server)後端真實的工作服務器。 vip:virtual IP虛擬ip。是指向外部直接面用戶請求,作爲用戶請求的目標的ip地址(外網ip地址)。 dip: Director server ip調度服務器ip,主要用於和內部主機通訊的ip地址。(內網ip地址) Rip:(real server ip)後端服務器的ip地址。 Cip:client ip,客戶端的ip。 注意:LVS調度器需要有2塊網卡,一塊是對外(wan口)的網卡,一塊是對內(lan口)的網卡。 二、LVS三種模式 三、lvs基本工作原理 1.當用戶請求到達Director server,請求的數據報文會先到內核空間的PREROUTING鏈。此時報文的源ip爲cip,目標ip爲vip。 2.PREROUTING檢查發現數據包的目標ip是本機,將數據包送至input鏈 3.ipvs比對數據包請求的服務是否爲集羣服務,修改數據包的目標ip地址爲後端服務器ip,然後將數據吧發送至postrouting鏈。 4.postrouting鏈通過路由選路,將數據包發送給Real Server 5.Real Server對比發現目標爲自己的ip開始構建響應報文回給Director Server。此時報文的源ip爲RIP,目標ip爲cip 6.Director Server在響應客戶端前,此時會將源ip地址修改爲自己的ip地址,然後響應給客戶端。此時報文的源ip爲vip,目標ip爲cip。
1.LVS-NAT模型 特性 1).RS應該使用私有ip地址,RS的網關必須指向DIP 2)DIP和RIP必須在同一個網段內 3)請求和響應報文都需經過DIrector Server,高負載場景中,Director Server易成爲性能瓶頸 4)支持端口映射 5)RS可以使用任意操作系統 6)缺陷:對Director Server壓力會比較大,請求和響應都需經過director server
實驗 準備real server的http服務 在node12、node13上做: 要讓虛擬機上沒有安裝nginx yum -y install httpd curl systemctl restart httpd echo node12.com > /var/www/html/index.html 13就是echo node13.com > /var/www/html/index.html curl 127.0.0.1 做本地測試 route -n 或 netstat -r查看路由表信息 route del dafault gw 192.168.11.2 臨時刪除默認網關 route add default gw 192.168.11.11臨時設置默認網關 或vim /etc/syscomfig/network-scripts/ifcfg-ens33中修改網關 route -n LVS負載均衡器配置(node11) 在node11上做的 lsof -i:80 && nginx -s quit curl 192.168.11.12 &&curl 192.168.11.13 必須確保能訪問到此服務器的網站 添加一塊新的nat類型的虛擬網卡 將虛擬網卡ens37的ip設置爲192.168.10.11 在網絡適配器下添加一塊nat網卡 cd /etc/sysconfig/network-scripts/ cp -av ifcfg-ens33 ifcfg-ens37 刪除兩塊網卡的gateway網關 route -n route del default gw 192.168.11.2 route del default gw 192.168.10.2 配置lvs負載均衡集羣列表: ipvsadm -Ln ipvsadm -C 清空ipvs集羣配置信息 ipvsadm -A -t 192.168.10.11:80 -s rr ipvsadm -a -t 192.168.10.11:80 -r 192.168.11.12:80 -m ipvsadm -a -t 192.168.10.11:80 -r 192.168.11.13:80 -m ipvsadm -Ln 查看並臨時開啓路由轉發功能 cat /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_forward ------------------------------------------------------------------ 開啓永久路由轉發 vim /etc/syscrl.conf net.ipv4.ip_forward=1 立即生效: sysctl -p cat /proc/sys/net/ipv4/ip_forward
在vmware虛擬機網絡編輯器上 將子網ip改爲192.168.10.1 筆記本物理機的vmnat8虛擬網卡ip和網關信息必須跟此處相同 在網卡中加入網關192.168.10.11 然後做測試 命令選項解釋:[藍字爲常用選項]
LVS-DR數據鏈路層負載均衡 顧名思義,數據鏈路層負載均衡是指在通信協議的數據鏈路層修改mac地址進行負載均衡。
1.當用戶請求到達Director Server,請求的數據會先到內核空間的pereouting鏈。此時報文的源ip爲cip,目標ip爲vip。 2.Prerouting檢查發現數據包的目標ip是本機,將數據包發送至input鏈。 3.ipvs比對數據包請求的服務是否爲集羣服務,若是,將請求報文中的源mac地址修改爲dip的mac地址,將目標mac地址修改爲rip的mac地址,那麼此時數據包將會發送至real server。 4.由於DS和rs在同一個網絡中,所以是通過二層來傳輸。Postrouting鏈檢查目標mac地址爲rip的mac地址,那麼數據包將會發送至real server。 5.rs發現請求報文的mac地址是自己的mac地址,就接收此報文。處理完成之後,將響應報文通過eth0網卡然後向外發出。此時的源ip地址爲vip,目標ip爲cip。 6.響應報文最終送達至客戶端
1.Lvs-DR模型的特性 1.保證前端路由將目標地址爲vip報文發給director server,而不是rs 2.rs可以使用私有地址;也可以是公網地址,如果使用公網地址,此時可以通過互聯網對rip進行直接訪問 3.rs跟Director server必須在同一個物理網絡中 4.所有的請求報文經由Director Server,但響應報文必須不能進過Director Server 5.不支持地址轉換,也不支持端口映射,因爲DR模型是工作在二層的,二層只處理數據包中的mac地址 6.rs可以是大多數常見的操作系統 7.rs的網關覺不允許指向DIr(因爲我們不允許他經過director) 8.RS上的lo接口配置vip的ip地址
3. 過程及解決方案: vs/dr模式配置在rel server上做的 node12 yum -y install httpd systemclt restart httpd vim /aa/lo.sh 腳本如下 chmod -v +x lo.sh . /aa/lo.sh 然後再傳給13的ip
director調度器 在11上做的 給網卡臨時設置vip地址 yum -y install ipvsadm -w 權重 -g指定LVS 的工作模式爲DR直接路由模式(也是LVS 默認的模式) curl 192.168.11.12 curl 192.168.11.13 訪問測試(win7/win10上做): |
lvs+DR
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.