安装keepalived
#先创建内核连接(6.4和5.8内核不一样仅供参考)
ln -s /usr/src/kernels/2.6.18-348.18.1.el5-x86_64/usr/src/linux
#查看连接
ll -d /usr/src/linux
#进入软件上传目录
cd /home/maomao
#进行安装
tar xzfkeepalived-1.1.17.tar.gz
cdkeepalived-1.1.17
yuminstall popt*
./configure
make&& make install
注:在./configure安装的之后需要出现三个YES才行如果没有出现可能是因为没有安装依赖
#创建启动连接
cp/usr/local/etc/rc.d/init.d/keepalived /etc/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/
cd/etc/keepalived/
#对配置文件进行备份
mvkeepalived.conf keepalived.conf.$(date +%F)
#查看是否启动成功
/etc/init.d/keepalivedstart
ps-ef|grep keepalive
/etc/init.d/keepalived stop
#把启动项加入rc.local
echo"/etc/init.d/keepalived restart" >>/etc/rc.local
至此keepalived安装完成
安装lvs
cd/home/rfjer/tools
tar xzfipvsadm-1.24.tar.gz
cdipvsadm-1.24
make
makeinstall
lsmod|grep ip_vs
ipvsadm
lsmod|grep ip_vs
[root@JQ-LB~]# ipvsadm
IPVirtual Server version 1.2.1 (size=4096)
ProtLocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.99.100:http wlc persistent 60
-> 192.168.99.203:http Route 100 0 0
->192.168.99.202:http Route 100 0 0
[root@JQ-LB~]# lsmod |grep ip_vs
ip_vs_wlc 34881 1
ip_vs 122113 3 ip_vs_wlc
下面进行配置文件修改
cd /etc/keepalived/
!Configuration File for keepalived global_defs{ notification_email { 326029212@qq.com # email通知。作用:有故障,发邮件报警。这是可选项目,建议不用,用nagios全面监控代替之。不过这里可以修改成自己的邮箱地址 } notification_email_from king_326029212@qq.com smtp_server smtp.qq.com # smtp_connect_timeout 30 router_id LVS_DEVEL } # VIP1 vrrp_instanceVI_1 { state MASTER #备份服务器上将MASTER改为BACKUP interface eth0 #这里是HA监测网络接口.虚拟机的情况下一定要改到相应的网卡上.我这里推荐eth0 lvs_sync_daemon_inteface eth0 #负载均衡器之间的监控接口,类似于HA HeartBeat的心跳线。但它的机制优于Heartbeat,因为它没有“裂脑”这个问题,它是以优先级这个机制来规避这个麻烦的。在DR模式中,lvs_sync_daemon_inteface 与服务接口interface 使用同一个网络接口。 virtual_router_id 51 #主、备机的virtual_router_id必须相同 priority 100 #主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高 advert_int 5 #VRRP Multicast广播周期秒数(虚拟机大点无所谓.高并发可以小店) authentication { auth_type PASS auth_pass 1111 } #包含验证类型和验证密码。类型主要有PASS、AH两种,通常使用的类型为PASS,据说AH使用时有问题。验证密码为明文,同一vrrp实例MASTER与BACKUP 使用相同的密码才能正常通信。 virtual_ipaddress { 192.168.99.100 #虚拟ip地址virtual_ipaddress . 可以有多个地址,每个地址占一行,不需要指定子网掩码。注意:这个ip必须与我们在lvs客户端设定的vip相一致! } } virtual_server192.168.99.100 80 { delay_loop 6 #(每隔10秒查询realserver状态) lb_algo wlc #(lvs算法) lb_kind DR #(负载均衡转发规则。一般包括DR,NAT,TUN3种) persistence_timeout 60 #(会话保持时间,单位是秒。这个选项对动态网站很有用处:当用户从远程用帐号进行登陆网站时,有了这个会话保持功能,就能把用户的请求转发给同一个应用服务器。在这里,我们来做一个假设,假定现在有一个lvs 环境,使用DR转发模式,真实服务器有3个,负载均衡器不启用会话保持功能。当用户第一次访问的时候,他的访问请求被负载均衡器转给某个真实服务器,这样他看到一个登陆页面,第一次访问完毕;接着他在登陆框填写用户名和密码,然后提交;这时候,问题就可能出现了—登陆不能成功。因为没有会话保持,负载均衡器可能会把第2次的请求转发到其他的服务器。) protocol TCP #(用TCP协议检查realserver状态) #(真实服务器real_server.也即服务器池。Real_server的值包括ip地址和端口号) real_server 192.168.99.202 80 { weight 100 #(权重weight.权重值是一个数字,数值越大,权重越高。使用不同的权重值的目的在于为不同性能的机器分配不同的负载,性能较好的机器,负载分担大些;反之,性能差的机器,则分担较少的负载,这样就可以合理的利用不同性能的机器资源。) TCP_CHECK { connect_timeout 3 #(3秒无响应超时) nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.99.203 80 { weight 90 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
下面是自动绑定脚本
#!/bin/bash #Written by : http://maomaolinux.blog.51cto.com SNS_VIP=192.168.99.100 #(这里是配置虚拟的IP地址) #(下面是加载一些基础的配置) /etc/rc.d/init.d/functions case "$1" in start) /sbin/ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP /sbin/route add -host $SNS_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 >/dev/null 2>&1 echo "RealServer Start OK" ;; stop) /sbin/ifconfig lo:0 down /sbin/route del $SNS_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