Posted by admin on 测试环境:
LVS服务器 ip:200.168.10.1 VIP1:200.168.10.10 VIP2:200.168.10.11
备用LVS服务器 ip:200.168.10.8
两台真是服务器 RIP1:200.168.10.2(在 eth0:0上增加一个IP:200.168.10.5) RIP2:200.168.10.3 (在 eth0:0上增加一个IP:200.168.10.6)
配置两台真实服务器
?[Copy to clipboard] View Code PHP
#!/bin/bash
VIP_0=200.168.10.10
VIP_1=200.168.10.11
/etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $VIP_0 netmask 255.255.255.255 broadcast $VIP_0 up
ifconfig lo:1 $VIP_1 netmask 255.255.255.255 broadcast $VIP_1 up
/sbin/route add -host $VIP_0 dev lo:0
/sbin/route add -host $VIP_1 dev lo:1
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 >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
ifconfig lo:1 down
/sbin/route del $VIP >/dev/null 2>&1
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
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
|
给 /etc/rc.d/init.d/functions 执行权限
把上面这段shell保存为 lvs_mult.sh 并给予 执行权限
启动 lvs_mult.sh start
两台机子操作一样
在 lo 这个回环接口上出现 lo:0 lo:1 表示设置成功
配置下apache的配置文件 主要是配置虚拟主机
<VirtualHost 200.168.10.10:80>
ServerAdmin [email protected]
DocumentRoot “/web/www/”
ServerName www.abc.com
CustomLog “/web/www/access.log” common
<Directory “/web/www/”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost 200.168.10.11:80>
ServerAdmin [email protected]
DocumentRoot “/web/test/”
ServerName sell.abc.com
CustomLog “/web/test/access.log” common
<Directory “/web/test/”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
接下去就是在LVS主服务器上
安装 ipvsadm
yum -y install ipvsadm
安装 keepalived 我使用的版本是 1.2.4
./configure –prefix=/usr/local/keepalived
make && make install
如在 configure是出现错误 一般来说 没有安装gcc 编译器 或者 popt-devel 没有安装
如在 make 时出现错误 修改 源码所在目录 keepalived/libipvs-2.6/ip_vs.h 在 #include <sys/types.h> 下面 增加一行 #include <linux/types.h> 重新 make
配置 keepalived for LVS 主服务器
?[Copy to clipboard] View Code PHP
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir -p /etc/keepalived/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
chmod +x /etc/init.d/keepalived
|
vi /etc/keepalived/keepalived.conf
?[Copy to clipboard] View Code PHP
global_defs {
router_id lvs_1
}
vrrp_sync_group VGM {
group {
VI_WEB
}
}
vrrp_sync_group VGM1 {
group {
VI_WEB2
}
}
vrrp_instance VI_WEB {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 180
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
200.168.10.10
}
}
# setting port 80 forward
virtual_server 200.168.10.10 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#persistence_timeout 10
protocol TCP
real_server 200.168.10.2 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 200.168.10.3 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
vrrp_instance VI_WEB2 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 52
priority 180
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
200.168.10.11
}
}
# setting port 80 forward
virtual_server 200.168.10.11 80 {
delay_loop 6
lb_algo rr
lb_kind DR
#persistence_timeout 10
protocol TCP
real_server 200.168.10.5 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 200.168.10.6 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
|
启动 /etc/init.d/keepalived start
LVS 备用服务器 keepalived.conf 主要修改 把MASTER修改为 BACKUP priority 180 改为 150 即可 其他配置跟主服务器一样
OK,总结成功
参考 http://www.keepalived.org/pdf/sery-lvs-cluster.pdf
转载 http://www.wenlingnet.com/index.php/232/