1. 程式人生 > >負載均衡集群LVS-NAT

負載均衡集群LVS-NAT

IE 部分 ear asq 入口 啟動 16.1.25 瓶頸 per


1、LVS 概述
LVS是Linux內核的一部分,因此性能較高。
Linux虛擬服務器(即分發器或調度器): 它不真正提供服務,但它接受客戶的訪問,為整個集群提供一個唯一的入口。
虛擬服務器和真實服務器(Real Server)通信。
真實服務器(Real Server): 它真正提供服務,集群中每個Real Server可以是一臺物理主機,也可以是虛擬機。

2、LVS三種模式
VS/NAT: 網絡地址轉換模式, 進站/出站的數據流量經過分發器
VS/DR: 直接路由模式,只有進站的數據流量經過分發器
VS/TUN: 隧道模式,只有進站的數據流量經過分發器

3、LVS-NAT的結構圖

++++++++++++
+ Client + eth0 192.168.1.1/24
++++++++++++

|
++++++++++++ up eth0:192.168.1.254/24
+ GW +
++++++++++++ down eth1:1.1.1.254/24

|
++++++++++++ VIP eth0:1.1.1.1/24
+ Director +
++++++++++++ DIP eth1:172.16.1.254/24
|
___________|____________
| |
| |
++++++++++++ ++++++++++++
+ Real Server A + + Real Server B +
++++++++++++ ++++++++++++
eth0:172.16.1.1/24 eth0:172.16.1.2/24

4、配置LVS VS/NAT模式

Client:
[root@localhost ~]# route add default gw 192.168.1.254 dev eth0

GW:
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

Real Server A & Real Server B:
[root@localhost ~]# yum install httpd
[root@localhost ~]# route add default gw 172.16.1.254 dev eth0


Director:
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@localhost ~]# route add default gw 1.1.1.254 dev eth0
[root@localhost ~]# yum install ipvsadm
[root@localhost ~]# ipvsadm -A -t 1.1.1.1:80 -s rr
[root@localhost ~]# ipvsadm -a -t 1.1.1.1:80 -r 172.16.1.1:80 -m
[root@localhost ~]# ipvsadm -a -t 1.1.1.1:80 -r 172.16.1.2:80 -m
[root@localhost ~]# ipvsadm -Ln
[root@localhost ~]# ipvsadm -Ln --stats

5、IPVS命令選項解釋:
有兩種命令選項格式,長的和短的,具有相同的意思。在實際使用時,兩種都可以。
-A --add-service 在內核的虛擬服務器表中添加一條新的虛擬服務器記錄。也就是增加一臺新的虛擬服務器。
-E --edit-service 編輯內核虛擬服務器表中的一條虛擬服務器記錄。
-D --delete-service 刪除內核虛擬服務器表中的一條虛擬服務器記錄。
-C --clear 清除內核虛擬服務器表中的所有記錄。
-R --restore 恢復虛擬服務器規則
-S --save 保存虛擬服務器規則,輸出為-R 選項可讀的格式
-a --add-server 在內核虛擬服務器表的一條記錄裏添加一條新的真實服務器記錄。也就是在一個虛擬服務器中增加一臺新的真實服務器
-e --edit-server 編輯一條虛擬服務器記錄中的某條真實服務器記錄
-d --delete-server 刪除一條虛擬服務器記錄中的某條真實服務器記錄
-L|-l --list 顯示內核虛擬服務器表
-Z --zero 虛擬服務表計數器清零(清空當前的連接數量等)
--set tcp tcpfin udp 設置連接超時值
--start-daemon 啟動同步守護進程。他後面可以是master 或backup,用來說明LVS Router 是master 或是backup。在這個功能上也可以采用keepalived 的VRRP 功能。
--stop-daemon 停止同步守護進程
-h --help 顯示幫助信息

其他的選項:
-t --tcp-service service-address 說明虛擬服務器提供的是tcp 的服務[vip:port] or [real-server-ip:port]
-u --udp-service service-address 說明虛擬服務器提供的是udp 的服務[vip:port] or [real-server-ip:port]
-f --fwmark-service fwmark 說明是經過iptables 標記過的服務類型。
-s --scheduler scheduler 使用的調度算法,有這樣幾個選項 rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默認的調度算法是: wlc.
-p --persistent [timeout] 持久穩固的服務。這個選項的意思是來自同一個客戶的多次請求,將被同一臺真實的服務器處理。timeout 的默認值為300 秒。
-M --netmask netmask persistent granularity mask
-r --real-server server-address 真實的服務器[Real-Server:port]
-g --gatewaying 指定LVS 的工作模式為直接路由模式(也是LVS 默認的模式)
-i --ipip 指定LVS 的工作模式為隧道模式
-m --masquerading 指定LVS 的工作模式為NAT 模式
-w --weight weight 真實服務器的權值
--mcast-interface interface 指定組播的同步接口
-c --connection 顯示LVS 目前的連接 如:ipvsadm -L -c
--timeout 顯示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
--daemon 顯示同步守護進程狀態
--stats 顯示統計信息
--rate 顯示速率信息
--sort 對虛擬服務器和真實服務器排序輸出
--numeric -n 輸出IP 地址和端口的數字形式



6、LVS-NAT數據包走向
====================================
1.Client---------->GW
sip: CIP dip: VIP
smac: Client_mac dmac: GW_up_mac

2.GW-------------->Director
sip: CIP dip: VIP
smac: GW_down_mac dmac: VIP_mac

3.Director-------->Real Server (DNAT)
sip: CIP dip: RIP
smac: DIP_mac dmac: RealServer_mac

4.Real Server----->Director
sip: RIP dip: CIP
smac: RealServer_mac dmac: DIP_mac

5.Director-------->GW
sip: VIP dip: CIP
smac: VIP_mac dmac: GW_down_mac

6.GW-------------->Client
sip: VIP dip: CIP
smac: GW_up_mac dmac: Client_mac

小結
VS/NAT模式的原理是:當收到Client請求時,Director將數據包的目標IP由VIP轉換為選中的Real Server的RIP來
實現分發,要求RS將網關指向Director的DIP。
特點是:配置簡單,所有的入站、出站數據包都經過分發器。當數據量比較大時,分發器可能會出現網絡瓶頸!因
而支持的RS數量少。

負載均衡集群LVS-NAT