lvs + keepalive的安装配置
centos6.7的系统
有问题请关注这里 https://bbs.csdn.net/topics/392084765
http://blog.163.com/qiantu1986@126/blog/static/35922669201165112147800/ =
http://zh.linuxvirtualserver.org/node/2585
http://zh.linuxvirtualserver.org/node/2619
http://zh.linuxvirtualserver.org/node/28?destination=node/28
参数解读 https://www.cnblogs.com/wangxiaoqiangs/p/5736210.html
[lvs1+keepalive1 ~]# yum install kernel-devel -y
[lvs1+keepalive1 ~]# yum -y install popt popt-devel libnl libnl-devel
[lvs1+keepalive1 ~]# wget http://mirror.centos.org/centos/6/os/x86_64/Packages/popt-static-1.13-7.el6.x86_64.rpm
[lvs1+keepalive1 ~]# rpm -ivh popt-static-1.13-7.el6.x86_64.rpm
[lvs1+keepalive1 ~]# yum -y install zlib zlib-devel gcc gcc-c++ openssl openssl-devel
[lvs1+keepalive1 ~]# wget https://www.kernel.org/pub/linux/utils/kernel/ipvsadm/ipvsadm-1.26.tar.gz
[lvs1+keepalive1 ~]# tar -xf ipvsadm-1.26.tar.gz
[lvs1+keepalive1 ~]# cd ipvsadm-1.26
[lvs1+keepalive1 ~]# make && make install
[lvs1+keepalive1 ~]# wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
[lvs1+keepalive1 ~]# tar -xf keepalived-1.2.17.tar.gz
[lvs1+keepalive1 ~]# ./configure --prefix=/usr/keepalived-1.2.17; make ; make install
[lvs1+keepalive1 ~]# cp /usr/keepalived-1.2.17/etc/sysconfig/keepalived /etc/sysconfig/keepalived
[lvs1+keepalive1 ~]# cp /usr/keepalived-1.2.17/sbin/keepalived /usr/sbin/keepalived
[lvs1+keepalive1 ~]# cp /usr/keepalived-1.2.17/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[lvs1+keepalive1 ~]# mkdir /etc/keepalived
[lvs1+keepalive1 ~]# cp /usr/keepalived-1.2.17/etc/keepalived/keepalived.conf /etc/keepalived
配置内容如下(master),slave也是一样的内容只是改变一下优先级跟真实ip[lvs1+keepalive1 ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivglobal_defs {# notification_email {# acassen@firewall.loc
! Configuration File for keepalived
global_defs {
#notification_email {
# acassen@firewall.loc
# failover@firewall.loc
# sysadmin@firewall.loc
# }
# notification_email_from Alexandre.Cassen@firewall.loc
# smtp_server 192.168.200.1
# smtp_connect_timeout 30
router_id LVS_master
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 120
mcast_src_ip=192.168.0.10
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.250
}
}
virtual_server 192.168.0.250 90{
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 1
protocol TCP
real_server 192.168.0.20 90{
weight 1
TCP_CHECK {
connect_timeout 1
nb_get_retry 3
delay_before_retry 3
connect_port 90 #有了这个字段就可以随便定义端口了,另外重启keepalive之后要用ipvsadm看看有没有包括virtual server的ip在里面
}
}
real_server 192.168.0.21 90{
weight 1
TCP_CHECK {
connect_timeout 1
nb_get_retry 3
delay_before_retry 3
connect_port 90
}
}
}
[lvs1+keepalive1 ~]# cat add_vir_ser
ifconfig lo:0 192.168.1.111(vip) broadcast 192.168.1.111(vip) netmask 255.255.255.255 up
route add -host 192.168.1.111 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
echo "1">/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/eth0/arp_announce
realserver 绑定vip的脚本
#!/bin/bash VIP='192.168.0.250' #这里需要改成自己的vip . /etc/init.d/functions case "$1" in start) /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up 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 echo " LVS Real-Server Start Success" ;; stop) /sbin/ifconfig lo:0 down 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 " LVS Real-Server Stop Success" ;; *) echo "Usage: $0 ( start | stop )" exit 1 esac
chmod a+x /etc/init.d/realserver.sh
/etc/init.d/realserver.sh start
echo "/etc/init.d/realserver.sh start" >> /etc/rc.local
[root@realserver1 ~] ifconfig lo:0 192.168.1.111(vip) broadcast 192.168.1.111(vip) netmask 255.255.255.255 up
[root@realserver1 ~] route add -host 192.168.1.111(vip) dev lo:0
[root@realserver2 ~] ifconfig lo:0 192.168.1.111(vip) broadcast 192.168.1.111(vip) netmask 255.255.255.255 up
[root@realserver2 ~] route add -host 192.168.1.111(vip) dev lo:0