負載均衡叢集

俗人�發表於2020-10-14

1.叢集技術

  • 1.叢集(cluster)技術是一種較新的技術,通過叢集技術,可以在付出較低成本的情況下獲得在效能、可靠性、靈活性方面的項對較高的收益,其任務排程則是叢集系統中的核心技術。
  • 2.叢集組成後,可以利用多個計算機和組合進行海量請求處理(負載均衡),從而獲得很高的處理效率,也可以用多個計算機做備份(高可用HA),使得任何一個機器壞了整個系統還是能正常執行。

2.負載均衡叢集技術

  • ①.負載均衡(Load Balance):負載均衡叢集為企業需求提供了可解決容量問題的有效方案。負載均衡叢集使負載可以在計算機叢集中儘可能平均地分攤處理。
  • ②.負載通常包括應用程式負載和網路流量負載,每個節點都可以承擔一定的處理負載,並且可以實現處理負載在節點之間的動態分配,以實現負載均衡。

3.負載均衡叢集技術的實現

負載均衡(Load Balance)
負載均衡技術型別: 基於4層(傳輸層,一般基於TCP協議)負載均衡技術和基於7層(應用層,一般基於HTTP協議)負載均衡技術。
負載均衡實現方式: 硬體負載均衡裝置或者軟體負載均衡裝置
硬體負載均衡產品: F5、深信服、Radware
軟體負載均衡產品: LVS(Linux Virtual Server(4層))、Haproxy、Nginx(4/7層,一般用作7層)、Ats(Apache traffic server)

4.實現效果圖

在這裡插入圖片描述

5.負載均衡分類

負載均衡根據所採用的裝置物件(軟/硬體負載均衡),應用的OSI網路層次(網路層次上的負載均衡),及應用的地理結構(本地/全域性負載均衡)等來分類。下面為根據應用的OSI網路層次來分類的負載均衡型別。

負載均衡可以大概分為以下幾類:

  • 二層負載均衡(mac)
    一般是用虛擬mac地址方式,外部對虛擬MAC地址請求,負載均衡接收後分配後端實際的MAC地址響應。
  • 三層負載均衡(ip)
    一般採用虛擬IP地址定位方式,外部對虛擬的IP地址請求,負載均衡接收後分配後端實際的IP地址響應。
  • 四層負載均衡(tcp)
    在三層負載均衡的基礎上,用ip+port接收請求,再轉發到對應的機器。
  • 七層負載均衡(http)
    根據虛擬的url或ip,主機名接收請求,再轉向相應的處理伺服器。

在實際應用中,比較常見的就是四層負載及七層負載。

6.四層負載均衡(基於IP+埠的負載均衡)

所謂四層負載均衡,也就是主要通過報文中的目標地址和埠,再加上負載均衡裝置設定的伺服器選擇方式,決定最終選擇的內部伺服器。

  • 1.在三層負載均衡的基礎上,通過釋出三層的IP地址(VIP),然後加四層的埠號,來決定哪些流量需要做負載均衡,對需要處理的流量進行NAT處理,轉發至後臺伺服器,並記錄下這個TCP或者UDP的流量是由哪臺伺服器處理的,後續這個連線的所有流量都同樣轉發到同一臺伺服器處理。
  • 2.以常見的TCP為例,負載均衡裝置在接收到第一個來自客戶端的SYN請求時,即通過上述方式選擇一個最佳的伺服器,並對報文中目標IP地址進行修改(改為後端伺服器IP),直接轉發給該伺服器。==TCP的連線建立,即三次握手是客戶端和伺服器直接建立的,負載均衡裝置只是起到一個轉發動作。==在某些部署情況下,為保證伺服器回包可以正確返回給負載均衡裝置,在轉發報文的同時可能還會對報文原來的源地址進行修改。
  • 3.對應的負載均衡器要處理的流量進行NAT處理,轉發至後臺伺服器,並記錄下這個TCP或者UDP的流量是由哪臺伺服器處理的,後續這個連線的所有流量都同樣轉發到同一臺伺服器處理。
  • 4.實現四層負載均衡的有:
    F5: 硬體負載均衡器,功能很好,但成本很高。
    LVS: 重量級的四層負載均衡軟體
    Haproxy: 模擬四/七層轉發,較靈活。

7.七層的負載均衡(基於虛擬的URL或主機IP的負載均衡)

所謂七層負載均衡,也稱為“內容交換”,也就是主要通過報文中的真正有意義的應用層內容(即URL),再加上負載均衡裝置的伺服器選擇方式(即分發策略),決定最終選擇的內部伺服器。

  • 1.在四層負載均衡的基礎上(沒有四層是絕對不可能有七層的),再考慮應用層的特徵,比如同一個web伺服器的負載均衡,除了根據IP+80埠辨別是否需要處理的流量,還可根據七層的URL、瀏覽器類別、語言來決定是否需要進行負載均衡。
  • 2.負載均衡裝置如果要根據真正的應用層內容再選擇伺服器,只能先代理最終的伺服器和客戶端建立連線(三次握手)後,才可能接受到客戶端傳送的真正應用層內容的報文,然後再根據該報文中的特定欄位,再加上負載均衡裝置設定的伺服器選擇方式,決定最終選擇的內部伺服器。負載均衡裝置在這種情況下,更類似於一個代理伺服器。負載均衡和前端的客戶端以及後端的伺服器分別建立TCP連線。所以從技術原理上來看,七層負載均衡明顯的對負載均衡裝置的要求更高,處理七層的能力也必然會低於四層模式的部署方式。
  • 3.對應的負載伺服器除了支援四層負載均衡以外,還有分析應用層的資訊,如HTTP協議URI等資訊,實現七層負載均衡。
  • 4.實現七層負載均衡的軟體有:
    haproxy: 天生負載均衡技能,全面支援七層代理,會話保持,標記,路徑轉移;
    nginx: 只在http協議和mail協議上功能比較好,效能與haproxy差不多;
    apache: 功能較差;
    Mysql proxy: 功能尚可;

8.四層負載與七層負載的區別

四層負載均衡七層負載均衡
基於基於IP+Port的基於URL或主機IP等
類似於路由器反向代理伺服器
複雜度
效能高;無需解析內容中;需要演算法識別 URL和 HTTP head 等資訊
安全性
額外功能會話保持,圖片壓縮,等

9.LVS實現負載均衡專案實戰

9.1LVS介紹

Ⅰ.LVS是Linux Virtual Server的簡稱,也就是Linux虛擬伺服器,是一個由章文嵩博士發起的自由軟體專案,官方站點是www.linuxvirtualserver.org。現在LVS已經是linux標準核心的一部分,因此效能較高。
Ⅱ.==LVS軟體作用:==通過LVS提供的負載均衡技術實現一個高效能、高可用的伺服器叢集,它具有良好可靠性、可擴充套件性和可操作性。從而以低廉的成本實現最優的服務效能。

9.2LVS優勢與不足

  • 1.優勢

高併發連線: LVS基於核心工作,由超清的承載能力和併發處理能力。單臺LVS負載均衡器,可支援上萬併發連線。
穩定性強: 是工作在網路4層之上僅作分發之用,這個特點也決定了它在負載均衡軟體裡的效能最強,穩定性最好,對CPU和記憶體資源消耗極低。
成本低廉: 硬體負載均衡器少則十幾萬,多則幾十萬上百萬,LVS只需一臺伺服器就能免費部署使用,價效比極高。
配置簡單: LVS配置非常簡單,僅需幾行命令即可完成配置,也可以寫成指令碼進行管理。
支援多種演算法: 支援多種論調演算法,可根據業務場景靈活調配進行使用。
**支援多種工作模型:**可根據業務場景,使用不同的工作模式來解決生產環境請求處理問題。
應用範圍廣: 因為LVS工作在4層,所以它幾乎可以對所有應用做負載均衡,包括http、資料庫、DNS、ftp服務等。

  • 2.不足

工作在4層,不支援7層規則修改,機制過於龐大。

9.3核心元件和專業術語

  • 1.核心元件

LVS的管理工具和核心模組ipvsadm/ipvs
ipvsadm: 使用者空間的命令列工具,用於管理叢集服務及叢集服務上的RS等;
ipvs: 工作於核心上的程式,可根據使用者定義的叢集實現請求轉發;

  • 2.專業術語

VS: Virtual Server 虛擬服務
Director,Balancer 負載均衡器,分發器
RS Real Server 後端請求處理伺服器
CIP Client IP 使用者端IP
VIP Director Virtual IP負載均衡器虛擬IP
DIP Director IP 負載均衡器真實IP
RIP Real Server IP 後端請求伺服器真實IP

  • 3.具體圖解

在這裡插入圖片描述
LVS工作核心模型及工作模式
①當客戶端的請求到達負載均衡器的核心空間時,首先會到達PREROUTING鏈。
②當核心發現請求資料包的目的地址是本機時,將資料包送往 INPUT 鏈。
③ LVS由使用者空間的ipvsadm和核心空間的IPVS組成,ipvsadm用來定義規則,IPVS利用ipvsadm定義的規則工作,IPVS工作在INPUT鏈上,當資料包到達INPUT鏈時,首先會被IPVS檢查,如果資料包裡面的目的地址及埠沒有在規則裡面,那麼這條資料包將被放行至使用者空間。
④ 如果資料包裡面的目的地址及埠在規則裡面,那麼這條資料包文將被修改目的地址為事先定義好的後端伺服器,並送往POSTROUTING鏈。
⑤ 最後經由POSTROUTING鏈發往後端伺服器。

9.4LVS負載均衡四種工作模式

①②較常用及熟悉區別
LVS/NAT: 網路地址轉換模式,進站/出站的資料流量經過分發器(即負載均衡器)(IP負載均衡,他修改的是IP地址) -----利用三層功能
LVS/DR : 直接路由模式,只有進站的資料流量經過分發器(即負載均衡器)(資料鏈路層負載均衡,因為他修改的是目的mac地址) -----利用二層功能mac地址
LVS/TUN: 隧道模式,只有進站的資料流量經過分發器
LVS/full-nat: 雙向轉換:通過請求報文的源地址為DIP,目標為RIP來實現轉發:對於響應報文而言,修改源地址為VIP,目標地址為CIP來實現轉發

9.5LVS四種工作模式原理以及優缺點比較

1、NAT模式(LVS-NAT)
原理: 就是把客戶端發來的資料包的IP頭的目的地址,在負載均衡器上換成其中一臺RS的IP地址,轉發至此RS來處理,RS處理完成後把資料交給經過負載均衡器,負載均衡器再把資料包的源IP地址改為自己的VIP,將目的地址改為客戶端IP地址即可。期間,無論是進來的流量,還是出去的流量,都必須經過負載均衡器。
優點: 叢集中的物理伺服器可以使用任何支援TCP/IP作業系統,只有負載均衡器需要一個合法的IP地址(公網IP)。
缺點: 擴充套件性有限。當伺服器節點(普通PC伺服器)增長過多時,負載均衡器將成為整個系統的瓶頸,因為所有的請求包和應答包的流向都經過負載均衡器。當伺服器節點過多時,大量的資料包都交匯在負載均衡器那,速度就會變慢!
在這裡插入圖片描述

2、直接路由(Direct Routing)模式(LVS-DR)
原理: 負載均衡器和RS都使用同一個IP對外服務。但只有DB對ARP請求進行響應,所有RS對本身這個IP的ARP請求保持靜默。也就是說,閘道器會把對這個服務IP的請求全部定向給DB,而DB收到資料包後根據排程演算法,找出對應的RS,把目的MAC地址改為RS的MAC(因為IP一致)並將請求分發給這臺RS。這時RS收到這個資料包,處理完成之後,由於IP一致,可以直接將資料返給客戶,則等於直接從客戶端收到這個資料包無異,處理後直接返回給客戶端。
優點: 和TUN(隧道模式)一樣,負載均衡器也只是分發請求,應答包通過單獨的路由方法返回給客戶端。與VS-TUN相比,VS-DR這種實現方式不需要隧道結構,因此可以使用大多數作業系統做為物理伺服器。
缺點: (不能說缺點,只能說是不足)要求負載均衡器的網路卡必須與物理網路卡在一個物理段上。
在這裡插入圖片描述

3、IP隧道(Tunnel)模式(VS-TUN)
原理: 網際網路上的大多Internet服務的請求包很短小,而應答包通常很大。那麼隧道模式就是,把客戶端發來的資料包,封裝一個新的IP頭標記(僅目的IP)發給RS,RS收到後,先把資料包的頭解開,還原資料包,處理後,直接返回給客戶端,不需要再經過負載均衡器。注意,由於RS需要對負載均衡器發過來的資料包進行還原,所以說必須支援IPTUNNEL協議。所以,在RS的核心中,必須編譯支援IPTUNNEL這個選項
優點: 負載均衡器只負責將請求包分發給後端節點伺服器,而RS將應答包直接發給使用者。所以,減少了負載均衡器的大量資料流動,負載均衡器不再是系統的瓶頸,就能處理很巨大的請求量,這種方式,一臺負載均衡器能夠為很多RS進行分發。而且跑在公網上就能進行不同地域的分發。
缺點: 隧道模式的RS節點需要合法IP,這種方式需要所有的伺服器支援”IP Tunneling”(IP Encapsulation)協議,伺服器可能只侷限在部分Linux系統上。
在這裡插入圖片描述

4、FULL-NAT模式
原理: 客戶端對VIP發起請求,Director接過請求發現是請求後端服務。Direcrot對請求報文做full-nat,把源ip改為Dip,把目標ip轉換為任意後端RS的rip,然後發往後端,rs接到請求後,進行響應,相應源ip為Rip目標ip還是DIP,又內部路由路由到Director,Director接到響應報文,進行full-nat。
將源地址為VIP,目標地址改為CIP
請求使用DNAT,響應使用SNAT
lvs-fullnat(雙向轉換)
通過請求報文的源地址為DIP,目標為RIP來實現轉發:對於響應報文而言,修改源地址為VIP,目標地址為CIP來實現轉發:
​CIP --> DIP VIP --> RIP
RIP --> VIP DIP–>CIP

5、四者的區別
lvs-nat與lvs-fullnat:請求和響應報文都經由Director
lvs-nat:RIP的閘道器要指向DIP
lvs-fullnat:雙向轉換
lvs-dr與lvs-tun:請求報文要經由Director,但響應報文由RS直接發往Client
lvs-dr:通過封裝新的MAC首部實現,通過MAC網路轉發
lvs-tun:通過在原IP報文外封裝新IP頭實現轉發,支援遠距離通訊

9.6LVS ipvsadm 命令的使用

  • 1.LVS-Server安裝lvs管理工具
yum -y install ipvsadm

程式包:ipvsadm(LVS管理工具)
主程式:/usr/sbin/ipvsadm
規則儲存工具:/usr/sbin/ipvsadm-save > /path/to/file
配置檔案:/etc/sysconfig/ipvsadm-config

  • 2.命令選項
-A --add-service 
#在伺服器列表中新新增一條新的虛擬伺服器記錄
-t 
#表示為tcp服務
-u 
#表示為udp服務
-s --scheduler 
#使用的排程演算法,rr | wrr | lc | wlc | lblb | lblcr | dh | sh | sed | nq 預設排程演算法是 wlc
#例:ipvsadm -A -t 192.168.1.2:80 -s wrr

-a --add-server  
#在伺服器表中新增一條新的真實主機記錄
-t --tcp-service 
#說明虛擬伺服器提供tcp服務
-u --udp-service 
#說明虛擬伺服器提供udp服務
-r --real-server 
#真實伺服器地址
-m --masquerading 
#指定LVS工作模式為NAT模式
-w --weight 
#真實伺服器的權值
-g --gatewaying 
#指定LVS工作模式為直接路由器模式(也是LVS預設的模式)
-i --ip 
#指定LVS的工作模式為隧道模式
-p 
#會話保持時間,定義流量唄轉到同一個realserver的會話存留時間
#例:ipvsadm -a -t 192.168.1.2:80 -r 192.168.2.10:80 -m -w 1

-E -edit-service 
#編輯核心虛擬伺服器表中的一條虛擬伺服器記錄。
-D -delete-service 
#刪除核心虛擬伺服器表中的一條虛擬伺服器記錄。
-C -clear 
#清除核心虛擬伺服器表中的所有記錄。
-R -restore 
#恢復虛擬伺服器規則
-S -save 
#儲存虛擬伺服器規則到標準輸出,輸出為-R 選項可讀的格式
-e -edit-server 
#編輯一條虛擬伺服器記錄中的某條真實伺服器記錄
-d -delete-server 
#刪除一條虛擬伺服器記錄中的某條真實伺服器記錄
-L|-l –list 
#顯示核心虛擬伺服器表

--numeric, -n
#以數字形式輸出地址和埠號
--exact: 
#擴充套件資訊,精確值 
--connection -c
#當前IPVS連線輸出
--stats
#統計資訊
--rate 
#輸出速率資訊

引數也可以從/proc/net/ip_vs*對映檔案中檢視
-Z --zero 
#虛擬服務表計數器清零(清空當前的連線數量等)

9.7LVS負載均衡叢集企業級應用實戰

環境準備

  • 1.準備虛擬機器

準備 3 臺純淨的虛擬機器,兩臺 web 伺服器

  • 2.LVS-Server安裝lvs管理軟體
[root@lvs-server ~]# yum -y install ipvsadm

程式包:ipvsadm(LVS管理工具)
主程式:/usr/sbin/ipvsadm
規則儲存工具:/usr/sbin/ipvsadm-save > /path/to/file
配置檔案:/etc/sysconfig/ipvsadm-config

  • 3.LVS/DR模式

實驗說明:
1.網路使用NAT模式
2.DR模式要求Director DIP 和 所有RealServer RIP必須在同一個網段及廣播域
3.所有節點閘道器均指定真實閘道器
在這裡插入圖片描述

  • 4.LVS/DR模式實施(部署)
1、準備工作(叢集中所有主機)關閉防火牆和selinux

[root@lvs-server ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.246.166 lvs-server
192.168.246.161 real-server1
192.168.246.162 real-server2
2、Director分發器配置
配置VIP

[root@lvs-server ~]# ip addr add dev ens33 192.168.246.160/32 
#設定VIP
[root@lvs-server ~]# yum install -y ipvsadm   
#RHEL確保LoadBalancer倉庫可用
[root@lvs-server ~]# service ipvsadm start  
#啟動
#注意:啟動如果報錯: /bin/bash: /etc/sysconfig/ipvsadm: 沒有那個檔案或目錄
#需要手動生成檔案
[root@lvs-server ~]# ipvsadm --save > /etc/sysconfig/ipvsadm
定義LVS分發策略

-A:新增VIP
-t:用的是tcp協議
-a:新增的是lo的vip地址
-r:轉發到realserverip
-s:演算法
-L|-l –list:顯示核心虛擬伺服器表
--numeric, -n:以數字形式輸出地址和埠號
-g --gatewaying:指定LVS工作模式為直接路由器模式DR(也是LVS預設的模式)
-S -save:儲存虛擬伺服器規則到標準輸出,輸出為-R 選項可讀的格式
rr:輪循

如果新增ip錯了,刪除命令如下:
[root@lvs-server ~]# ip addr del 192.168.246.193 dev ens33
[root@lvs-server ~]# ipvsadm -C  
#清除核心虛擬伺服器表中的所有記錄。
[root@lvs-server ~]# ipvsadm -A -t 192.168.246.160:80 -s rr 
[root@lvs-server ~]# ipvsadm -a -t 192.168.246.160:80 -r 192.168.246.161 -g 
[root@lvs-server ~]# ipvsadm -a -t 192.168.246.160:80 -r 192.168.246.162 -g
  
[root@lvs-server ~]# service ipvsadm save 
#儲存方式一,使用下面的儲存方式,版本7已經不支援了
[root@lvs-server ~]# ipvsadm -S > /etc/sysconfig/ipvsadm  
#儲存方式二,儲存到一個檔案中

[root@lvs-server ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.246.160:80 rr
  -> 192.168.246.161:80           Route   1      0          0         
  -> 192.168.246.162:80           Route   1      0          0 
          
[root@lvs-server ~]# ipvsadm -L -n       
[root@lvs-server ~]# ipvsadm -L -n --stats    
#顯示統計資訊
1. Conns    (connections scheduled)  已經轉發過的連線數
2. InPkts   (incoming packets)       入包個數
3. OutPkts  (outgoing packets)       出包個數
4. InBytes  (incoming bytes)         入流量(位元組)  
5. OutBytes (outgoing bytes)         出流量(位元組)

[root@lvs-server ~]# ipvsadm -L -n --rate	
#看速率
6. CPS      (current connection rate)   每秒連線數
7. InPPS    (current in packet rate)    每秒的入包個數
8. OutPPS   (current out packet rate)   每秒的出包個數
9. InBPS    (current in byte rate)      每秒入流量(位元組)
10. OutBPS   (current out byte rate)      每秒出流量(位元組)

[root@lvs-server ~]# systemctl start ipvsadm
3.所有RS配置
配置好網站伺服器,測試所有RS	
為了測試效果,提供不同的頁面(以下兩臺real-server都操作)

[root@real-server1 ~]# yum install -y nginx
[root@real-server1 ~]# echo "real-server1" >> /usr/share/nginx/html/index.html
#兩臺機器都安裝,按順序新增不同的主機名以示區分
[root@real-server1 ~]# ip addr add dev lo 192.168.246.160/32   #在lo介面上繫結VIP
[root@real-server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore  #忽略arp廣播
[root@real-server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce #匹配精確ip地址回包
[root@real-server1 ~]# systemctl start nginx 
[root@real-server1 ~]# systemctl enable nginx
因為:
realServer的vip有了,接著就是同一個網段中擁有兩個vip, 客戶端在閘道器傳送arp廣播需找vip時需要讓realServer不接受響應.
解決:
[root@real-server1 ~]# echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore
#arp_ignore 設定為1,意味著當別人的arp請求過來的時候,如果接收的裝置沒有這個ip,就不做出響應(這個ip在lo上,lo不是接收裝置的進口)
[root@real-server1 ~]# echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce
#使用最好的ip來回應,什麼是最好的ip?同一個網段內子網掩碼最長的
  • 5.測試(瀏覽器訪問虛擬IP)

9.8LVS-NAT模式

檢視Linux已載入的核心模組

[root@lvs-server ~]# lsmod

載入與解除安裝核心模組

[root@lvs-server ~]# modprobe ip_vs      
#動態載入ip_vs 模組,這個命令只是臨時生效,需要新增到開機啟動專案裡面
[root@lvs-server ~]# lsmod | grep ip_vs     
#過濾模組是否載入成功!
[root@lvs-server ~]# modprobe -r ip_vs      
#動態解除安裝ip_vs模組

檢視核心模組資訊

[root@lvs-server ~]# modinfo ip_vs

設定開機啟動項

[root@lvs-server ~]# echo "modprobe ip_vs" >> /etc/rc.local
[root@lvs-server ~]# chmod +x /etc/rc.local     
#切記新增執行許可權
#新增到開機啟動項裡面如果不需要這個模組的時候只需要將etc/rc.local裡面對應的命令刪除
#但是這樣需要重新啟動伺服器。 
#可以通過下面的命令立即生效。
[root@lvs-server ~]# modprobe -r ip_vs      
#動態解除安裝ip_vs模組
  • 1.LVS-NAT模式
    在這裡插入圖片描述
建議:先在Real Server安裝如nginx(兩臺機器real-server)

[root@real-server1 ~]# yum install -y nginx
[root@real-server1 ~]# echo "real-server1" >> /usr/share/nginx/html/index.html
#兩臺機器都安裝,按順序新增不同的主機名以示區分

所有機器

[root@real-server1 ~]# systemctl stop firewalld && setenforce 0
  • 2.LVS/NAT模式實施
1、準備工作(叢集中所有主機)[可選]

[root@lvs-server ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.246.166 lvs-server
192.168.246.161 real-server1
192.168.246.162 real-server2
2、RS配置
real-server所有伺服器---預設閘道器均指向Directory的DIP

[root@real-server1 ~]# route add default gw 192.168.246.166  dev ens33
3、Director分發器配置
先給LVS伺服器新新增一塊網路卡網路模式設定為橋接模式。會自動生成一個ip,做為VIP。
如果沒有手動新增

[root@lvs-server ~]# ip addr add dev ens37 192.168.50.128/24   
#手動設定VIP
[root@lvs-server ~]# vim /etc/sysctl.conf 
#開啟路由轉發
net.ipv4.ip_forward = 1
[root@lvs-server ~]#sysctl -p 
#開啟轉發功能

定義LVS分發策略

[root@lvs-server ~]# yum install -y ipvsadm  
#RHEL確保LoadBalancer倉庫可用
[root@lvs-server ~]# ipvsadm -S > /etc/sysconfig/ipvsadm
[root@lvs-server ~]# service ipvsadm start  
#啟動
[root@lvs-server ~]# ipvsadm -A -t 192.168.50.128:80 -s rr 
[root@lvs-server ~]# ipvsadm -a -t 192.168.50.128:80 -r 192.168.246.161 -m  
[root@lvs-server ~]# ipvsadm -a -t 192.168.50.128:80 -r 192.168.246.162 -m  
[root@lvs-server ~]# ipvsadm -S > /etc/sysconfig/ipvsadm  
#儲存方式一
[root@lvs-server ~]# service ipvsadm save 
#儲存方式二,使用上面你的儲存方式,7版本以後不能用。
[root@lvs-server ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.50.128:80 rr
  -> 192.168.246.161:80           Masq    1      1          3         
  -> 192.168.246.162:80           Masq    1      1          3         
[root@lvs-server ~]# ipvsadm -L -n --stats			      
#顯示統計資訊
[root@lvs-server ~]# ipvsadm -L -n --rate				
#看速率
  • 3.測試(瀏覽器訪問VIP)

相關文章