一、Lvs技術主要3種方式
1、nat(地址轉換技術)
通過網絡地址轉換,lvs調度器重寫請求報文的目標地址,根據設定的調度算法,將請求分派給後端的真實web服務器。真實服務器的相應報文通過調度器時源地址再次被重寫,返回給客戶端,完成負載調度過程。
這種方式,lvs需要2個網卡,左邊為公網端口地址,右邊為內網段,請求和相應都必須經過lvs的地址轉換,所以有可能lvs會產生瓶頸。
#lvs nat服務配置 #開啟路由管道 echo 1>/proc/sys/net/ipv4/ip_forward #清除以前調度策略 ipvsadm -C #增加一個算法為rr的調度算法 ipvasdm -At 8.8.8.8:80 -s rr #輪詢規則 -m為nat技術 ipvsadm -at 8.8.8.8:80 -r 192.168.10.2:80 -m ipvsadm -at 8.8.8.8:80 -r 192.168.10.3:80 -m
2、ip-tun(ip隧道技術)
為了解決nat技術中lvs產生瓶頸的問題,lvs把請求報文通過IP隧道轉發給真實web服務器,而真實服務器將響應直接返回給客戶端,所以lvs只處理請求報文。而恰恰網絡中的響應比請求報文大很多,所以隧道模式可以大大提高集群系統吞吐量。
這個要求web真是服務器的IP地址不能在是內網地址,而是公網IP。同時這個要求lvs服務器和web服務器都有一個支持隧道協議的網卡,才能工作,但不是多有服務器都有這個網卡的,這是一個很大的局限性。
#配置lvs隧道網卡 ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up #添加路由 route add -host 200.168.10.10 ipvsadm -C ipvsadm -A -t 200.168.10.10:80 -s rr ipvsadm -a -t 200.168.10.10:80 -r 200.168.10.2 -i ipvsadm -a -t 200.168.10.10:80 -r 200.168.10.3 -i
#配置web服務器 ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up #添加路由 route add -host 200.168.10.10 dev tunl0 #添加廣播忽略 echo 1>/proc/sys/net/ipv4/conf/tunl0/arp_ignore echo 2>/proc/sys/net/ipv4/conf/tunl0/arp_announce echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore echo 2>/proc/sys/net/ipv4/conf/all/arp_announce
3、dr技術(直接路由技術)
直接路由技術和隧道模式很像,但是他不用服務器必須有支持隧道協議的網卡,而是通過LOOPBACK接口即回環接口設置,來實現的。
#配置lvs ifconfig eth0:0 200.168.10.10 netmask 255.255.255.255 up #添加路由 route add -host 200.168.10.10 eth0:0 ipvsadm -C ipvsadm -A -t 200.168.10.10:80 -s rr ipvsadm -a -t 200.168.10.10:80 -r 200.168.10.2 -g ipvsadm -a -t 200.168.10.10:80 -r 200.168.10.3 -g
#配置web服務器 ifconfig lo:0 200.168.10.10 netmask 255.255.255.255 up #添加路由 route add -host 200.168.10.10 dev lo:0 #添加廣播忽略 echo 1>/proc/sys/net/ipv4/conf/lo/arp_ignore echo 2>/proc/sys/net/ipv4/conf/lo/arp_announce echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore echo 2>/proc/sys/net/ipv4/conf/all/arp_announce