Linux負載均衡軟件LVS之三 (1) |
發(fā)布時間: 2012/8/2 18:12:10 |
LVS集群有DR、TUN、NAT三種配置模式,可以對www服務(wù)、FTP服務(wù)、MAIL服務(wù)等做負載均衡,下面通過搭建www服務(wù)的負載均衡實例,講述基于DR模式的LVS集群配置。 一、 Director Server的配置 在Director Server上配置LVS負載均衡集群,有兩種方法: ? 通過ipvsadm命令行進行配置 ? 通過Redhat提供的工具piranha來配置LVS 1、通過ipvsadm命令行方式配置LVS 安裝IPVS后,就可以配置LVS集群了,首先在Director Server上綁定一個虛擬IP(也叫VIP),此IP用于對外提供服務(wù),執(zhí)行如下命令: [root@localhost ~]#ifconfig eth0:0 192.168.60.200 broadcast 192.168.60.200 \ >netmask 255.255.255.255 up 此處在eth0設(shè)備上綁定了一個虛擬設(shè)備eth0:0,同時設(shè)置了一個虛擬IP是192.168.60.200,也就是上面我們規(guī)劃的IP地址,然后指定廣播地址也為192.168.60.200,需要特別注意的是,這里的子網(wǎng)掩碼為255.255.255.255。 然后給設(shè)備eth0:0指定一條路由,執(zhí)行如下指令: [root@localhost ~]#route add -host 192.168.60.200 dev eth0:0 接著啟用系統(tǒng)的包轉(zhuǎn)發(fā)功能,從而使系統(tǒng)充當路由器,執(zhí)行如下指令: [root@localhost ~]#echo "1" >/proc/sys/net/ipv4/ip_forward 指令中,參數(shù)值為1時啟用ip轉(zhuǎn)發(fā),為0時禁止ip轉(zhuǎn)發(fā)。其實在DR模式中,開啟系統(tǒng)的包轉(zhuǎn)發(fā)功能不是必須的,而在NAT模式下此操作是必須的。 然后開始配置ipvs,執(zhí)行如下操作: [root@localhost ~]#ipvsadm -C [root@localhost ~]#ipvsadm -A -t 192.168.60.200:80 -s rr -p 600 [root@localhost ~]#ipvsadm -a -t 192.168.60.200:80 -r 192.168.60.132:80 -g [root@localhost ~]#ipvsadm -a -t 192.168.60.200:80 -r 192.168.60.144:80 -g 上面操作中,第一行是清除內(nèi)核虛擬服務(wù)器列表中的所有記錄,第二行是添加一條新的虛擬IP記錄。這個新的IP是192.168.60.200,同時指定持續(xù)服務(wù)時間為600秒。第三、四行是在新加虛擬IP記錄中添加兩條新的Real Server記錄,并且指定LVS 的工作模式為直接路由模式。 最后,啟動LVS服務(wù),執(zhí)行如下操作: [root@localhost ~]#ipvsadm 這樣,LVS在Director Server上的配置就完成了。 為了管理和配置的方便,可以將上面的操作寫出一個腳本文件,腳本內(nèi)容如下: #!/bin/bash VIP=192.168.60.200 RIP1=192.168.60.132 RIP2=192.168.60.144 GW=192.168.60.1 # set the Virtual IP Address /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev eth0:0 echo "1" >/proc/sys/net/ipv4/ip_forward #Clear IPVS table /sbin/ipvsadm -C #set LVS /sbin/ipvsadm -A -t $VIP:80 -s rr -p 600 /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g #Run LVS /sbin/ipvsadm #end 也可以寫成可啟動與停止的服務(wù)腳本,腳本內(nèi)容如下: #!/bin/sh # description: Start LVS of Director server VIP=192.168.60.200 RIP1=192.168.60.132 RIP2=192.168.60.144 ./etc/rc.d/init.d/functions case "$1" in start) echo " start LVS of Director Server" # set the Virtual IP Address and sysctl parameter /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up echo "1" >/proc/sys/net/ipv4/ip_forward #Clear IPVS table /sbin/ipvsadm -C #set LVS /sbin/ipvsadm -A -t $VIP:80 -s rr -p 600 /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g #Run LVS /sbin/ipvsadm ;; stop) echo "close LVS Directorserver" echo "0" >/proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ifconfig eth0:0 down ;; *) echo "Usage: $0 {start|stop}" exit 1 esac 將此腳本命名為lvsDR文件,然后把文件放到/etc/init.d下,執(zhí)行: [root@localhost ~]#chomd 755 /etc/init.d/lvsDR 最后可以通過下面命令啟動或停止LVS服務(wù): service lvsDR {start|stop} 到此為止,命令行方式配置Director Server完畢。 2、通過Redhat提供的工具piranha來配置LVS Piranha是REDHAT提供的一個基于Web的LVS配置軟件,可以省去手工配置LVS的繁瑣工作,同時,也可單獨提供cluster功能,例如,可以通過Piranha激活Director Server的后備主機,也就是配置Director Server的雙機熱備功能。 Piranha工具的安裝非常簡單,下載Piranha的rpm包,進行安裝即可: [root@localhost ~]#rpm –ivh piranha-0.8.2-1.i386.rpm Piranha安裝完畢后,會產(chǎn)生/etc/sysconfig/ha/lvs.cf文件,默認此文件是空的,可以通過Piranha提供的web界面配置此文件,也可以直接手動編輯此文件,編輯好的lvs.cf文件內(nèi)容類似如下,注意,“#”號后面的內(nèi)容為注釋。 [root@localhost ~]# more /etc/sysconfig/ha/lvs.cf serial_no = 18 #序號。 primary = 192.168.60.56 #指定主Director Server的真實IP地址,是相對與有備用的Director Server而言的,也就是給Director Server做HA Cluster。 service = lvs #指定雙機的服務(wù)名。 backup_active = 0 #是否激活備用Director Server。“0”表示不激活,“1”表示激活。 backup = 0.0.0.0 #這里指定備用Director Server的真實IP地址,如果沒有備用Director Server,可以用“0.0.0.0”代替。 heartbeat = 0 #是否開啟心跳,1表示開啟,0表示不開啟。 heartbeat_port = 539 #指定心跳的UDP通信端口。 keepalive = 5 #心跳間隔時間,單位是秒。 deadtime = 10 #如果主Director Server在deadtime(秒)后沒有響應(yīng),那么備份Director Server就會接管主Director Server的服務(wù)。 network = direct #指定LVS的工作模式,direct表示DR模式,nat表示NAT模式,tunnel表示TUNL模式。 debug_level = NONE #定義debug調(diào)試信息級別。 virtual www.gaojf.com{ #指定虛擬服務(wù)的名稱。 active = 1 #是否激活此服務(wù)。 address = 192.168.60.200 eth0:0 #虛擬服務(wù)綁定的虛擬IP以及網(wǎng)絡(luò)設(shè)備名。 port = 80 #虛擬服務(wù)的端口。 send = "GET / HTTP/1.0 " #給real server發(fā)送的驗證字符串。 expect = "HTTP" #服務(wù)器正常運行時應(yīng)該返回的文本應(yīng)答信息,用來判斷real server是否工作正常。 use_regex = 0 # expect選項中是否使用正則表達式,0表示不使用,1表示使用。 load_monitor = none #LVS中的Director Server能夠使用 rup 或 ruptime 來監(jiān)視各個real server的負載狀態(tài)。該選項有3個可選值,rup、ruptime和none,如果選擇rup,每個real server就必須運行rstatd服務(wù)。如果選擇了ruptime,每個real server就必須運行 rwhod 服務(wù)。 scheduler = rr #指定LVS的調(diào)度算法。 protocol = tcp #虛擬服務(wù)使用的協(xié)議類型。 timeout = 6 #real server失效后從lvs路由列表中移除失效real server所必須經(jīng)過的時間,以秒為單位。 reentry = 15 #某個real server被移除后,重新加入lvs路由列表中所必須經(jīng)過的時間,以秒為單位。 quiesce_server = 0 #如果此選項為1.那么當某個新的節(jié)點加入集群時,最少連接數(shù)會被重設(shè) 為零,因此LVS會發(fā)送大量請求到此服務(wù)節(jié)點,造成新的節(jié)點服務(wù)阻塞, 建議設(shè)置為0。 server RS1 { #指定real server服務(wù)名。 address = 192.168.60.132 #指定real server的IP地址。 active = 1 #是否激活此real server服務(wù)。 weight = 1 #指定此real server的權(quán)值,是個整數(shù)值,權(quán)值是相對于所有real server節(jié)點而言的,權(quán)值高的real server處理負載的性能相對較強。 } server RS2 { address = 192.168.60.144 active = 1 weight = 1 } } 編輯完成,然后啟動pulse服務(wù),即啟動lvs服務(wù) [root@localhost ~]#service pulse start 同理,此種方式下也要啟用系統(tǒng)的包轉(zhuǎn)發(fā)功能: [root@localhost ~]#echo "1" >/proc/sys/net/ipv4/ip_forward 到此為止,Piranha工具方式配置Director Server完畢。 二、Real server 的配置 在lvs的DR和TUn模式下,用戶的訪問請求到達真實服務(wù)器后,是直接返回給用戶的,而不再經(jīng)過前端的Director Server,因此,就需要在每個Real server節(jié)點上增加虛擬的VIP地址,這樣數(shù)據(jù)才能直接返回給用戶,增加VIP地址的操作可以通過創(chuàng)建腳本的方式來實現(xiàn),創(chuàng)建文件/etc/init.d/lvsrs,腳本內(nèi)容如下: #!/bin/bash VIP=192.168.60.200 /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP 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 sysctl -p #end 此操作是在回環(huán)設(shè)備上綁定了一個虛擬IP地址,并設(shè)定其子網(wǎng)掩碼為255.255.255.255,與Director Server上的虛擬IP保持互通,然后禁止了本機的ARP請求。 上面腳本也可以寫成可啟動與停止的服務(wù)腳本,內(nèi)容如下: 億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888 聯(lián)系:億恩小凡 QQ:89317007 電話:0371-63322206 本文出自:億恩科技【www.allwellnessguide.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |