1. 程式人生 > >負載均衡集群介紹 LVS介紹 LVS調度算法 LVS NAT模式搭建

負載均衡集群介紹 LVS介紹 LVS調度算法 LVS NAT模式搭建

技術分享 沒有 .com 機器 源地址 wall tin 負載均衡集群介紹 調度

一、負載均衡集群介紹
技術分享圖片
二、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,它把數據包直接反饋給客戶端,這樣就沒有了分發器的瓶頸
LVS DR模式
技術分享圖片
和IP Tunnel不同的是它會把數據包的MAC地址修改為rs的MAC地址,分發器和rs之間有一個內網,MAC地址涉及到一個ARP的通信,這種模式也是rs收到數據包後處理完直接反饋給客戶端,這樣分發器也沒有瓶頸,這樣也需要在所有的機器上配置一個vip
三、LVS調度算法
技術分享圖片
1、輪詢:輪詢是分發器均衡的把數據包分發給各個rs機器,沒有優劣之分
2、加權輪詢:帶權重的輪詢
3、最小連接:分發器把數據包分發到請求數最小的或者最閑的rs上
4、加權最小連接:帶權重的最小連接
上面四種是我們平時使用比較多的四種調度算法
下面的這四種使用的不多,可以作為了解
5、基於局部性的最小連接
6、帶復制的基於 局部性的最小連接
7、目標地址散列調度
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 stat 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模式搭建