LVS負載均衡
- Linux Virtual Server
- 章文崇博士主導的開源負載均衡項目(原阿里架構)
- LVS(ipvs)已經集成到Linux內核
- 負載均衡調度器
- LVS基於四層,工作效率更高
網絡拓撲圖
這是Nginx的拓撲圖
這是LVS拓撲圖
主要是使用IPVS去實現
LVS三種模式
LVS-NAT
這是普通的模式,不適合併發特別大的情況
請求通過LVS服務器,導向不同的REAL Server去,響應結束還需要LVS服務器返回響應報文,是不高可用的一種方案
LVS-TUN
上行請求,通過LVS,但是響應各自返回給瀏覽器端
但是這樣的方案是通過隧道去實現的,這樣的每個節點都需要一個公網IP,也就是說你的真是服務器被暴露在公網
LVS-DR
通過這種DR模式,可以限制出口、入口,都走統一的路由出口,這樣我們的服務器可以不用暴露在公網
配置虛擬IP
cd /etc/sysconfig/network-scripts/
ls
cp ifcfg-ens33 ifcfg-ens33:1
vim ifcfg-ens33:1
#配置虛擬ip
ipaddr=xxx
service network restart
重新啓動網絡服務
下來安裝ipvsadm
yum install ipvsadm
ipvsadm -Ln
使用lo構建虛擬ip
還在當前目錄下,拷貝
cp ifcfg-lo ifcfg-lo:1
vim ifcfg-lo:1
進去修改一下
虛擬網絡IP已經構建好,再找一臺備機同樣操作,兩臺機器都使用150做虛擬IP
APR通告行爲
如何配置apr通告行爲
vim /etc/sysctl.conf
刷新生效
sysctl -p
添加報文路由,返回的報文都給150
route add -host 192.168.1.150 dev lo:1
route -n
這樣是重啓會失效的,需要配置到/etc/rc.local
開啓DR模式
[root@iZkpcpzbqiupj6Z ~]# ipvsadm -h
ipvsadm v1.26 2008/5/15 (compiled with popt and IPVS v1.2.1)
Usage:
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine]
ipvsadm -D -t|u|f service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address -r server-address [options]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]
ipvsadm --set tcp tcpfin udp
ipvsadm --start-daemon state [--mcast-interface interface] [--syncid sid]
ipvsadm --stop-daemon state
ipvsadm -h
Commands:
Either long or short options are allowed.
--add-service -A add virtual service with options
--edit-service -E edit virtual service with options
--delete-service -D delete virtual service
--clear -C clear the whole table
--restore -R restore rules from stdin
--save -S save rules to stdout
--add-server -a add real server with options
--edit-server -e edit real server with options
--delete-server -d delete real server
--list -L|-l list the table
--zero -Z zero counters in a service or all services
--set tcp tcpfin udp set connection timeout values
--start-daemon start connection sync daemon
--stop-daemon stop connection sync daemon
--help -h display this help message
先看看他的幫助文檔
重點用-A -t
首先創建一個集羣
ipvsadm -A -t 192.168.1.150:80 -s rr
添加集羣節點
如上圖中我們就可以看到已經創建好兩個節點了
持久化機制
LVS持久化會默認保存請求300s,300秒超過後纔會開啓一個輪訓,不然你一直訪問都是同一臺機子
有兩個地方可以設置
一般不要改懂這兩個值,官方默認的還是非常合理的一個配置
使用Keepalived+LVS高可用
可以使用keepalived配合LVS去實現LVS高可用方案
首先修改keepalived配置文件中VS配置,再添加響應的Nginx服務器
設置健康檢查
以上就是主節點的創建
下來整個從節點
修改router id與權重還有狀態爲備機