安装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才行如果没有出现可能是因为没有安装依赖

LVS 简单配置和注释_LVS

#创建启动连接

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

LVS 简单配置和注释_LVS_02

/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