• keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换,类似HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务。
  • 双机热备是就是利用了VRRP虚拟路由冗余协议,和HRSP一样都拥有一个虚拟的ip地址对外提供服务,而不是真正的服务器ip地址,也拥有一台主服务器和多台备份服务器,优先级高的做主路由器,备份服务器处于冗余状态,当主服务器发生故障的时候,从服务器会变成主服务器,当主服务器修好之后,会重新成为主路由器。这里和HSRP不同的是,HSRP需要配置占先权,而这里不用配置,默认都有占先权。

.

  • keepalived的热备方式 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议) 一主 + 多备,共用同一个IP地址,但优先级不同 .
  • 安装及服务控制 先安装支持软件: kernel-devel、openssl-devel、popt-devel、ipvsadm 再编译安装keepalived,需指定内核路径 --prefix、--with-kernel-dir= 使用Keepalived服务 .
  • 配置文件keepalived.conf 全局设置:global_defs { ... } 热备设置:vrrp_instance 实例名称 { ... } 样例文件位于:/etc/keepalived/samples/ .

.

  • 主服务器配置 state:设置本节点状态,MASTER、BACKUP priority:设置竞选优先级,数值越大优先级越高 virtual_ipaddress { ... }:设置漂移IP地址 ……
  • 备用服务器配置 router_id设为自有名称 state设为BACKUP priority值低于主服务器 —— 其余所有配置均与主服务器相同 .
  • 负载均衡+高可用群集 针对LVS调度器实现双机热备 能够管理服务器池,自动隔离失效节点 . LVS与keepalived的结合 .
  • 主、从调度器配置要点 DR模式必须调整 /proc参数(方法同第5章) 清除VIP地址、清除ipvsadm策略 配置keepalived双机热备,并添加服务器池设置
  • Web节点注意事项 DR模式必须调整/proc参数、添加VIP地址及路由 —— 具体方法见第5章 .
  • LVS+HA群集的测试 访问 http://172.16.16.172/,正常显示Web页面 主、从调度器其中一台失效,站点访问及负载仍然正常 只要保持至少一个Web节点有效,整个站点依然可用

. LVS+Keepalived高可用群集 . 配置LVS+Keepalived高可用群集,LVS具体操作可看上篇文章,除了lvs的虚拟地址不需要配和nat不用做其他都相同,所以本篇LVS不在详解 . 配置主调度器 . 安装支持软件

 [root@centos1 /]# yum -y install kernel-devel openssl-devel popt-devel  
 [root@centos1 /]#  umount /dev/cdrom /media/
 [root@centos1 /]#  mount /dev/cdrom /media/
 [root@centos1 /]#  cd /media/
 [root@centos1 /]# ls
 [root@centos1 /]#  tar zxf keepalived-1.2.13.tar.gz -C /usr/src/

. 编译安装Keepalived

 [root@centos1 /]# cd /usr/src/keepalived-1.2.13/
 [root@centos1 /]#  ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/ && make && make install

.

使用Keepalived服务

 [root@centos1 /]#  chkconfig --add keepalived
 [root@centos1 /]#  chkconfig leepalived on
 [root@centos1 /]#  chkconfig keepalived on

. 配置主调度器

 [root@centos1 /]#  vim /etc/keepalived/keepalived.conf 

! Configuration File for keepalived

global_defs {
   notification_email {		//接收邮件的地址,需要postfix,这里可不写
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1	//邮件服务器地址,这里填本机
   smtp_connect_timeout 30
   router_id R1			//主调度器名称,与从调度器名称不能相同
}

vrrp_instance VI_1 {
    state MASTER		//主服务器MASTER,从服务器填BACKUP
    interface eth0		//外网卡名称不一定是eth0
    virtual_router_id 1		//虚拟路由器ID主从要一致
    priority 100		//优先级100,主要比从大
    advert_int 1		//心跳频率1秒
    authentication {
        auth_type PASS
        auth_pass 1111		//主从密码要一致
    }
    virtual_ipaddress {
        172.16.16.172		//群及地址
    }
}

virtual_server 172.16.16.172 80 {	//虚拟服务器地址端口
    delay_loop 6		//健康检查时间6秒
    lb_algo rr			//轮训调度算法rr
    lb_kind DR			//路由模式DR
    persistence_timeout 50	//保持时间50秒
    protocol TCP		//协议tcp

    real_server 172.16.16.177 80 {	//web节点A的地址端口
	weight 1		//权重 1
	TCP_CHECK {
		connect_port 80
		connect_timeout 3	//连接超时3秒
		nb_get_retry 3		//重复3次
		delay_before_retry 3	//重复间隔3秒
	}
	}
	
    real_server 172.16.16.178 80 {
        weight 1
	TCP_CHECK {
		connect_port 80
		connect_timeout 3	
		nb_get_retry 3		
		delay_before_retry 3	
	}
	}
	}

. **重启keepalived服务 **

 [root@centos1 /]#  service keepalived start

 [root@centos1 /]#  ip addr show dev eth0\

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
qlen 1000
    link/ether 00:0c:29:7d:92:43 brd ff:ff:ff:ff:ff:ff
    inet 172.16.16.173/16 brd 172.16.255.255 scope global eth0
    inet 172.16.16.172/32 scope global eth0	//虚拟地址
    inet6 fe80::20c:29ff:fe7d:9243/64 scope link 
       valid_lft forever preferred_lft forever

. 从调度服务器的配置 首先安装keepalived,和主服务器一样,在配置的时候主要有三个地方不一样:优先级99,调度器名称R2,热备状态为BACKUP . 另一台lvs安装完可用[root@centos1 /]# scp root@(IP):/远程路径 /本地路径 . 在从调度器查看 [root@centos1 /]# ip addr show dev eth0 则不会出现虚拟地址

route_id R2 state BACKUP priority 99 . 测试访在客户端访问 . 断开一个lvs再次测试 .