LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集羣系統。本項目在1998年5月由章文嵩博士成立,是中國國內最先出現的自由軟件項目之一。html
相關術語算法
CIP:客戶端IP瀏覽器
Director:負責調度集羣的主機;也簡稱調度器、分發器服務器
VIP:一般此IP綁定域名,對外公佈的IP,即客戶請求進來的IP地址網絡
DIP:調度器和RealServer的RIP通訊的IP負載均衡
RealServer:也稱爲真實內部服務器,是真正在提供WEB服務的,簡稱RScurl
RIP:內部真正提供服務的主機IPide
負載均衡LVS_NAT(地址轉換模型)原理:測試
RS1的RIP1、RS2的RIP2在私網內,不能與外界通訊,可是能夠和Director的DIP通訊,而Director的VIP是與外界連通的,因此RS1、RS2與外界的通訊必須通過Director轉發。url
客戶端請求WEB資源,發送請求到director的VIP,Director經過負載均衡算法選擇RS1,經過修改數據幀的目標地址,經過DIP轉發給RS1的RIP1;RS1將請求的WEB資源封裝響應給CIP,不過要先發送到Director進行轉發給客戶端CIP
模擬過程:
當客戶端CIP請求WEB資源時,將請求數據幀發往VIP,此時
源IP |
目標IP |
CIP |
VIP:172.16.58.1 |
Director經過負載均衡算法選定出RS1,並將客戶端CIP請求WEB資源的數據幀的目標IP改成RS1的RIP1,此時
源IP |
目標IP |
CIP |
RIP1:192.168.10.8 |
RS1接收數據幀後,將請求的WEB資源從新封裝響應給CIP,可是必需要通過Director的轉發才能夠響應給CIP,此時
源IP |
目標IP |
RIP1:192.168.10.8 |
CIP |
Director接收到來自RS1響應的數據幀後,要修改源IP爲VIP來響應客戶端的請求,此時
源IP |
目標IP |
VIP:172.16.58.1 |
CIP |
這樣就完成了一次客戶端訪問WEB資源的過程
實驗環境準備:
配置一個lvs_nat模型集羣,咱們這裏須要三個虛擬機,一個爲Director,一個RIP1,一個RIP2.
Director:負載均衡調度器 VIP:172.16.58.1 DIP:192.168.10.7 |
RS1:真實WEB服務器1 RIP1:192.168.10.8 |
RS2:真實WEB服務器2 RIP1:192.168.10.9 |
做爲Director的虛擬機先關機添加一塊網卡,設備爲eth1
DIP、 RIP1 、RIP2在同一私網內,這三臺虛擬機網卡都選擇同一網絡鏈接方式
實戰配置:
如下均爲臨時設置,想要永久有效須要修改配置文件/etc/sysconfig/network-scripts/INTERFACE
RS1的配置:
#設置RIP1
ifconfig eth0 192.168.10.8up
#查看
ifconfig
#啓動httpd
service httpd start
#查看httpd啓動是否成功,80端口是否啓用
ss –tnl | grep :80
#添加index.html首頁用於測試
echo 「RS1」 > /var/www/html/index.html
#查看測試頁
curl http://192.168.10.8
#從服務器上同步時間
ntpdate 172.16.0.1
RS2的配置:
#設置RIP2
ifconfig eth0 192.168.10.9up
#查看
ifconfig
#啓動httpd
service httpd start
#查看httpd啓動是否成功,80端口是否啓用
ss –tnl | grep :80
#添加index.html首頁用於測試
echo 「RS1」 > /var/www/html/index.html
#查看測試頁
curl http://192.168.10.8
#從服務器上同步時間
ntpdate 172.16.0.1
Director的配置:
#設置VIP
ifconfig eth0 172.16.58.1 up
#設置DIP
#查看
ifconfig
#清除iptables規則
iptales -F
service iptales save
#開啓轉發功能
echo 1> /proc/sys/net/ipv4/ip_forward
或者修改配置文件/etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl–p 使配置生效
#添加集羣服務
ipvsadm –A –t 172.16.58.1:80 –s rr
#添加真實服務器RS1、RS2
ipvsadm –a –t 172.16.58.1:80–r 192.168.10.8 –m
ipvsadm –a –t 172.16.58.1:80–r 192.168.10.9 –m
#從服務器上同步時間
ntpdate 172.16.0.1
#訪問測試效果
瀏覽器訪問172.16.58.1,不斷刷新