lvs依賴openssl-devel和popt-devel,所以要先安裝這個兩個資源包:
# yum -y install openssl-devel popt-devel
安裝完後,在安裝lvs,我們這樣採用雲安裝:
# yum -y install ipvsadm
keepalived的下載地址:http://www.keepalived.org/download.html
在192.168.0.205(MASTER)上安裝配置如下:
# tar zxvf keepalived-1.2.7.tar.gz
# cd keepalived-1.2.7
# ./configure
# make && make install
# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
# mkdir /etc/keepalived
# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
# cp /usr/local/sbin/keepalived /usr/sbin/
# chkconfig keepalived on
# vi /etc/keepalived/keepalived.conf
配置Keepalived,#vim /etc/keepalived/keepalived.conf,內容如下:
! Configuration File for keepalived
global_defs {
notification_email {
[email protected] #接收Real Server 失效通知信息
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL_1 #Backup服務器將此項改爲LVS_DEVEL_2
}
vrrp_instance VI_1 {
state MASTER#Backup服務器將此項改爲BACKUP
interface eth0
virtual_router_id 51
priority 150#Backup服務器將此項改爲100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.139#VIP,可以是多個,每個ip佔一行
}
}
virtual_server 192.168.0.139 80 {
delay_loop 6#(每隔10秒查詢realserver狀態)
lb_algo rr#(lvs 算法)
lb_kind DR#(Direct Route)
persistence_timeout 0#(同一IP的連接60秒內被分配到同一臺realserver)
protocol TCP#(用TCP協議檢查realserver狀態)
real_server 192.168.0.207 80 {#Real Server 1
weight 100#(權重)
TCP_CHECK {
connect_timeout 10#(10秒無響應超時)
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.0.208 80 {#Real Server 2
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
virtual_server 192.168.0.139 3005 {
delay_loop 6#(每隔10秒查詢realserver狀態)
lb_algo rr#(lvs 算法)
lb_kind DR#(Direct Route)
persistence_timeout 0#(同一IP的連接60秒內被分配到同一臺realserver)
protocol TCP#(用TCP協議檢查realserver狀態)
real_server 192.168.0.150 3005 {#Real Server 1
weight 100#(權重)
TCP_CHECK {
connect_timeout 10#(10秒無響應超時)
nb_get_retry 3
delay_before_retry 3
connect_port 3005
}
}
real_server 192.168.0.151 3005 {#Real Server 2
weight 100
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 3005
}
}
}
192.168.0.206(BACKUP)的配置和MASTER類似,只是會變更其中某個參數,這個已經在上面的配置文件中標出,這裏不再贅述。
# service keepalived start
在192.168.0.207、192.168.0.208、192.168.0.150和192.168.0.151上面分別執行如下配置:
保存一個文件,取名隨意,這裏以dr.sh爲例,內容如下:
#!/bin/sh
VIP=192.168.0.139#Virtual Server IP
/etc/rc.d/init.d/functions
case "$1" in
start)
echo "Start LVS of RS"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up#注意子網掩碼
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 -arp
/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
;;
stop)
/sbin/ifconfig lo:0 down
echo "Close LVS of RS"
echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
;;
*)
echo "Usage:$0{start|stop}"
exit 1
esac
給文件配置可執行權限,並執行即可。