1、負載均衡介紹html
一、簡單說就是讓多臺服務器均衡的去承載壓力。實現負載均衡的開源軟件有LVS,keepalived,haproxy,Nginx等,商業的有F5,NetScaler.nginx
2、LVS介紹算法
一、LVS是一款四層的負載均衡軟件,是針對TCP/IP作的轉發和路由,因此穩定性和效率至關高。核心角色是調度器,用來分發用戶的請求,還有處理用戶服務的服務器vim
二、LVS根據實現方式不一樣:有NAT模式,IP Tunnel 模式 ,DR模式。後端
三、NAT模式:調度器把用戶的請求經過預設的iptables規則轉發給後端真實服務器。調度器會有一個公網IP,一個內網IP,真實服務器只有內網IP,用戶訪問的時候請求的是調度器的公網IP,會把用戶的請求轉到真實服務器的內網IP上,該模式節省公網IP,可是調度會成爲一個瓶頸。bash
四、IP Tunnel 模式:須要一個公共的IP配置在分發器和全部realserver上,稱之爲vip.,客戶請求數據包,目標地址VIP發送到LB上。LB接收到客戶請求包,進行IP Tunnel封裝。即在原有的包頭加上IP Tunnel的包頭。而後發送出去。RS節點服務器根據IP Tunnel包頭信息(此時就又一種邏輯上的隱形隧道,只有LB和RS之間懂)收到請求包,而後解開IP Tunnel包頭信息,獲得客戶的請求包並進行響應處理。響應處理完畢以後,RS服務器使用本身的出公網的線路,將這個響應數據包發送給客戶端。源IP地址仍是VIP地址.服務器
五、DR模式:和IP Tunnel 模式方法相同,用戶的請求被調度器動態的分配到真實服務器上,真實服務器響應請求把結果直接返回給用戶,在這種模式下不會封裝IP,而是將數據幀的MAC地址改成真實服務器的MAC地址。負載均衡
3、LVS的調度算法測試
一、輪詢調度(Round Robin)ui
二、帶權重的輪詢調度(Weighted Round Robin)
三、最小鏈接調度(Least Connections)
四、帶權重最小鏈接(Weighted Least Connections)
五、基於局部性的最小連接(Locality-Based Least Connections)
六、帶複製的基於局部性最小連接(Locality-Based Least Connections with Replication)
七、目標地址散列調度(Destination Hashing)
八、源地址散列調度(Source Hashing)
4、LVS NAT 模式搭建
一、設置調度器(dir) 192.168.134.130(內網IP) 192.168.150.128(公網IP),須要設置爲僅主機模式。
RS1:192.168.134.150 RS2:192.168.134.131
二、三臺機器上都關閉防火牆 首先安裝 iptables-service
systemctl stop firewalld
systemctl disable firewalld
iptables -F
service iptables save
三、設置RS1 和RS2 的網關 192.168.134.130 編輯 vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改 :GATEWAY=192.168.134.130
而後: service network restart
四、在dir上安裝 ipvsadm
yum install -y ipvsadm
五、在dir編寫配置腳本 vim /usr/local/sbin/lvs_nat.sh
$IPVSADM -A -t 192.168.150.128:80 -s wlc -p 300 修改成 $IPVSADM -A -t 192.168.150.128:80 -s wlc
能夠發如今rs1 和 rs2 之間來回訪問,作到了負載均衡。