實現DR模式的LVS
實驗:實現DR模式的LVS:
環境:五臺主機,一臺客戶端,一臺充當路由器,一臺vs服務器,兩臺rs服務器;
網路拓撲圖:
客戶端:外網地址;172.18.77.66
路由器:兩個網卡,內網和外網都有
內網:192.168.77.74
外網:172.18.77.74
vs服務器: 僅主機模式,一個網卡綁定兩個ip,一個是vip一個是dip
vip:192.168.77.99
dip:192.168.77.77
rs服務器:rs1:192.168.77.7
rs2:192.168.77.6
配置:
在客戶端加上路由器的網關 route add default gw 172.18.77.74
在路由器上 echo 1 > /proc/sys/net/ipv4/ip_forward
在vs服務器上添加一條路由 route add default gw 192.168.77.74
添加一個vip ----> ip a a 192.168.77.99 dev eth1
添加rs服務器
[root@centos7 ~]#ipvsadm -A -t 172.18.77.99:80 -s wrr [root@centos7 ~]#ipvsadm -a -t 172.18.77.99:80 -r 192.168.77.7 [root@centos7 ~]#ipvsadm -a -t 172.18.77.99:80 -r 192.168.77.6
在rs服務器上配置vip 建議在回環網卡上配置 ip a a 192.168.77.99/32 dev lo:1 添加網關指向路由器的內網地址 route add default gw 192.168.77.74
修改文件:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
上述的服務器確定selinux和iptables的關閉和httpd服務的開啟
測試:
[root@centos6 ~]#for i in {1..10};do curl 192.168.77.99;done 這是rs2機器 這是rs-1機器 這是rs2機器 這是rs-1機器 這是rs2機器 這是rs-1機器 這是rs2機器 這是rs-1機器 這是rs2機器 這是rs-1機器
小提示:做測試時減少反應時間,報錯時可快速報錯 curl --connect-time 1 192.168.77.7
ldirectord 工具
包名ldirectord
[root@centos7 ~]#cp /usr/share/doc/ldirectord-3.9.6/ldirectord.cf /etc/ha.d/ldirectord.cf [root@centos7 ~]#systemctl start ldirectord ldirectord:監控和控制LVS守護進程,可管理LVS規則 包名:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm 文件: /etc/ha.d/ldirectord.cf 主配置文件 /usr/share/doc/ldirectord-3.9.6/ldirectord.cf 配置模版 /usr/lib/systemd/system/ldirectord.service 服務 /usr/sbin/ldirectord 主程序 /var/log/ldirectord.log 日誌 /var/run/ldirectord.ldirectord.pid pid文件
Ldirectord配置文件示例
checktimeout=3 監控後端rs的狀態 ,多長時間檢查一次,超時時間是多少 checkinterval=1 多長時間檢查一次 autoreload=yes 修改配置文件自動生效 logfile=“/var/log/ldirectord.log“ #日誌文件 quiescent=no #down時yes權重為0,no為刪除 virtual=192.168.77.77#指定VS的FWM或IP:port real=172.16.0.7:80 gate 2 real=172.16.0.8:80 gate 1 fallback=127.0.0.1:80 gate #sorry server service=http scheduler=wrr checktype=negotiate checkport=80 request="index.html" receive=“Test Ldirectord"
為了從主Director將LVS負載均衡資源故障轉移到備用Director,並從集群中自動移除節點,我們需要使用ldirectord程序,這個程序在啟動時自動建立IPVS表,然後監視集群節點的健康情況,在發現失效節點時將其自動從IPVS表中移除。
為了監視web集群內的真實服務器,ldirectord守護進程使用HTTP協議向每個真實服務器請求一個專用的web頁面,如果真實服務器是健康的,Director知道將從真實服務器接收到什麽內容,如果從真實服務器返回應答字串或web頁面的時間太長,或根本沒有返回任何內容,或返回的內容不是預期的,Director就知道該真實服務器出錯了,並從IPVS表中將這個真實服務器移除。
實現DR模式的LVS