負載均衡集群介紹 LVS介紹 LVS調度算法 LVS NAT模式搭建
二、LVS介紹
LVS NAT模式
使用NAT模式訪問量不能太大,一般就是十幾臺或者十臺以下
在NAT模式中,只有分發器需要配置一個公網IP,然後分發器和rs之前只需要設定內網IP即可
LVS IP Tunnel模式
在Load Balancer 和 Real Server之間建立一個虛擬隧道叫做IP Tunnel,實現原理實際上是更改了數據包的目的IP,客戶端請求分發器,分發器收到請求數據包後,會對數據包做一個加工,會把目標IP改為rs的IP,這樣數據包就到了rs上,rs接收數據包後,會還原原始數據包,這樣目標IP為vip,因為所有rs上配置的這個vip,所以它會認為是它自己,Real Server有自己的公網IP,它把數據包直接反饋給客戶端,這樣就沒有了分發器的瓶頸
和IP Tunnel不同的是它會把數據包的MAC地址修改為rs的MAC地址,分發器和rs之間有一個內網,MAC地址涉及到一個ARP的通信,這種模式也是rs收到數據包後處理完直接反饋給客戶端,這樣分發器也沒有瓶頸,這樣也需要在所有的機器上配置一個vip
三、LVS調度算法
1、輪詢:輪詢是分發器均衡的把數據包分發給各個rs機器,沒有優劣之分
2、加權輪詢:帶權重的輪詢
3、最小連接:分發器把數據包分發到請求數最小的或者最閑的rs上
4、加權最小連接:帶權重的最小連接
上面四種是我們平時使用比較多的四種調度算法
下面的這四種使用的不多,可以作為了解
5、基於局部性的最小連接
6、帶復制的基於 局部性的最小連接
8、源地址散列調度
四、NAT模式搭建
準備三臺機器,一臺作為分發器,也叫作調度器,簡稱dir,另外兩臺分別作為rs1和rs2,分發器需要兩塊網卡,一塊作內網IP,一塊作外網IP,外網網卡選擇僅主機模式
1、分別給三臺機器配置IP地址,修改好hostname
2、為了試驗成功,三臺機器的防火墻/selinux都需要關閉
#systemctl stop firewalld
#systemctl disable firewalld
#iptables -nvL
#yum install -y iptables-services //使用centos6之前的iptables
#systemctl enable iptables
#iptables -F
#service iptables save
#setenforce 0
rs1和rs2的網關分別設置為分發器的內網IP
#vi /etc/sysconfig/network-scripts/ifcfg-ens33
#systemctl restart network
#route -n //檢測網關
在分發器上安裝ipvsadm工具來實現LVS NAT功能,這個工具跟iptables有點像
#yum install -y ipvsdam
在分發器dir上編寫腳本,寫入如下內容
#vim /usr/local/sbin/lvs_nat.sh
#! /bin/bash
#director 服務器上開啟路由轉發功能
echo 1 > /proc/sys/net/ipv4/ip_forward
#關閉icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
#註意區分網卡名字,阿銘的兩個網卡分別為ens33和ens37
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
#director 設置nat防火墻
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.133.0/24 -j MASQUERADE
#director設置ipvsadm
IPVSADM=‘/usr/sbin/ipvsadm‘
$IPVSADM -C
$IPVSADM -A -t 192.168.142.147:80 -s wlc -p 3
$IPVSADM -a -t 192.168.142.147:80 -r 192.168.133.132:80 -m -w 1
$IPVSADM -a -t 192.168.142.147:80 -r 192.168.133.133:80 -m -w 1
//腳本解釋:
echo 1 > /proc/sys/net/ipv4/ip_forward 重定向一個數字1,對內核作了一個調整,實現路由轉發;iptables -t nat -A POSTROUTING -s 192.168.133.0/24 -j MASQUERADE 這個規則可以實現讓同網段的內網去上網;
director設置ipvsadm 下面的規則,LVS功能全靠這些規則實現的,IPVSADM=‘/usr/sbin/ipvsadm‘設置了一個變量,下面的規則去引用這個變量;
$IPVSADM -C是清空規則;
$IPVSADM -A -t 192.168.142.147:80 -s wlc -p 3 這個是大規則-t設定使用LVS的哪個規則,192.168.142.147:80是外網IP,-s wlc是它的算法,-p 3是超時時間是3秒;
$IPVSADM -a -t 192.168.142.147:80 -r 192.168.133.132:80 -m -w 1 這個是具體的規則,-r 192.168.133.132:80 是rs是哪個機器,-m是NAT的模式,-w 1設置它的權重
#sh /usr/local/sbin/lvs_nat.sh //執行腳本
#yum install -y epel-release
#yum install -y nginx
在rs1機器上啟動nginx
#systemctl start nginx
設置兩臺rs的主頁,做一下區分
#vi /usr/share/nginx/html/index.html //修改rs1的主頁
aming02
#curl localhost
aming02
#vi /usr/share/nginx/html/index.html //修改rs2的主頁
aming03
#curl localhost
aming03
在分發器上使用curl命令訪問公網IP
#curl 1192.168.142.147
aming02
#curl 1192.168.142.147
aming03
#curl 1192.168.142.147
aming02
#curl 1192.168.142.147
aming03
證明試驗成功
#ipvsadm -ln 命令可以查看ipvsadm分發數據的情況
負載均衡集群介紹 LVS介紹 LVS調度算法 LVS NAT模式搭建