tun方式的負(fù)載均衡集群設(shè)置舉例
前面我們學(xué)習(xí)了nat的負(fù)載均衡集群的配置過程,接下來(lái)就是另一種配置方式了——lvs/tun的設(shè)置過程。同樣,我們通過對(duì)TUN的理解和架構(gòu)的介紹,來(lái)完成腳本的設(shè)置。還望大家可以做一個(gè)對(duì)比學(xué)習(xí),之后還有一種設(shè)置方式,敬請(qǐng)期待。
設(shè)定LVS/TUN方式的負(fù)載均衡集群
TUN是指IP Tunneling,它的轉(zhuǎn)發(fā)流程是:Director機(jī)器收到外界請(qǐng)求,按相應(yīng)的調(diào)度算法將其通過IP隧道發(fā)送到相應(yīng)Real Server,Real Server處理完該請(qǐng)求后,將結(jié)果數(shù)據(jù)包直接返回給客戶。至此完成一次負(fù)載調(diào)度。
最簡(jiǎn)單的LVS/TUN方式的負(fù)載均衡集群架構(gòu)下圖所示。
LVS/TUN使用IP Tunneling技術(shù),在Director機(jī)器和Real Server機(jī)器之間架設(shè)一個(gè)IP Tunnel,通過IP Tunnel將負(fù)載分配到Real Server機(jī)器上。Director和Real Server之間的關(guān)系比較松散,可以是在同一個(gè)網(wǎng)絡(luò)中,也可以是在不同的網(wǎng)絡(luò)中,只要兩者能夠通過IP Tunnel相連就行。收到負(fù)載分配的Real Server機(jī)器處理完后會(huì)直接將反饋數(shù)據(jù)送回給客戶,而不必通過Director機(jī)器。實(shí)際應(yīng)用中,服務(wù)器必須擁有正式的IP地址用于與客戶機(jī)直接通信,并且所有服務(wù)器必須支持IP隧道協(xié)議。
LVS/TUN方式的集群簡(jiǎn)圖
這里將所有LVS的配置命令寫到一個(gè)可執(zhí)行腳本,腳本內(nèi)容如下:
- #!/bin/bash
- # Close IP Forwarding
- echo 0 > /proc/sys/net/ipv4/ip_forward
- ifconfig eth0 down
- ifconfig eth0 192.168.0.253 netmask 255.255.255.0 broadcast 192.168.0.255 up
- ifconfig eth0:0 192.168.0.254 netmask 255.255.255.255 broadcast 192.168.0.254 up
- ipvsadm -C
- ipvsadm -A -t 192.168.0.254:80 -s wlc
- ipvsadm -a -t 192.168.0.254:80 -r 192.168.0.1 -i -w 3
- ipvsadm -a -t 192.168.0.254:80 -r 192.168.1.201 -i -w 1
- ipvsadm
#p#將上面的腳本保存為/root/lvs_tun.sh。然后加上可執(zhí)行屬性,執(zhí)行它:
- # chmod a+x /root/lvs_tun.sh
- # /root/lvs_tun.sh
運(yùn)行此腳本之后應(yīng)該出現(xiàn)如下信息:
- # ./lvs-tun.sh
- IP Virtual Server version 1.0.9 (size=4096)
- Prot LocalAddress:Port Scheduler Flags
- -> RemoteAddress:Port Forward Weight ActiveConn InActConn
- TCP 192.168.0.254:http wlc
- -> 192.168.1.201:http Tunnel 1 0 0
- -> 192.168.0.1:http Tunnel 1 0 0
另外在每臺(tái)Real Server上還要執(zhí)行如下的命令:
- ifconfig tunl0 192.168.0.254 netmask 255.255.255.255 broadcast 192.168.0.254 up
- route add -host 192.168.0.254 dev tunl0
- echo 1 > /proc/sys/net/ipv4/conf/all/hidden
- echo 1 > /proc/sys/net/ipv4/conf/tunl0/hidden
注意Real Server的內(nèi)核必須打上修正ARP問題的內(nèi)核補(bǔ)丁,如Linux2.4.20的內(nèi)核是hidden-2.4.20pre10-1.diff,編譯內(nèi)核的方法參見Director機(jī)器。
通過本例來(lái)簡(jiǎn)單評(píng)價(jià)一下LVS/TUN負(fù)載均衡集群方式。該方式中Director將客戶請(qǐng)求分配到不同的Real Server,Real Server處理請(qǐng)求后直接回應(yīng)給用戶,這樣Director就只處理客戶機(jī)與服務(wù)器的一半連接,極大地提高了Director的調(diào)度處理能力,使集群系統(tǒng)能容納更多的節(jié)點(diǎn)數(shù)。另外TUN方式中的Real Server可以在任何LAN或WAN上運(yùn)行,這樣可以構(gòu)筑跨地域的集群,其應(yīng)對(duì)災(zāi)難的能力也更強(qiáng),但是服務(wù)器需要為IP封裝付出一定的資源開銷,而且后端的Real Server必須是支持IP Tunneling的操作系統(tǒng)。