Keepalived与LVS

Keepalived与LVS

########################Keepalived的工作原理####################
说明:
1、keepalived是lvs的扩展项目,因此它们之间具备良好的兼容性。这点应该是keepalived部署比其他类似工具能更简洁的原因吧!
2、通过对服务器池对象的健康检查,实现对失效机器/服务的故障隔离。
3、负载均衡器之间的失败切换failover,是通过VRRPv2(Virtual Router Redundancy Protocol)stack实现的。
##VRRP工作原理
1. VRRP即,虚拟路由冗余协议(Virtual Router Redundancy Protocol)
   两台(或多台)设备组成一个组,所有的组成员设备都运行VRRP协议。彼此发送vrrp报文,并根据设置的优先级和IP地址来竟选出一台设备作为MASTER,并在其上面虚拟出一台路由器来作为提供数据转发,提供相应arp请求的设备。而所有的其他设备都处于BACKUP状态,并通过发送VRRP报文来监听MASTER设备是否出现问题,以在MASTER出现问题时及时接管虚拟路由器。

##keepalived工作原理
keepalived是模块化设计,不同的模块负责不同的功能,其模块有:
1. core:是keepalived的核心,负责主进程的启动和维护,全局配置文件的加载解析等。
2. checkers:负责真实服务器的健康检查healthchecking,是keepalived最主要的功能。换句话说,可以没有VRRPStack,但健康检查healthchecking是一定要有的。
3. VRRPStack 负责负载均衡器之间的失败切换FailOver。如果只用一个负载均衡器,则VRRP不是必须的。
4. IPVS wrapper 用来发送设定的规则到内核ipvs代码。
5. Netlink Reflector 用来设定vrrp的vip地址等。
6.WatchDog:负责监控checkers和VRRP进程的状况。
keepalived正常运行时,共有3个进程:
1.父进程:负责监控其子进程。
2.vrrp子进程
3.checkers子进程

##keepalived.conf的配置
配置文件分三部分:
1.全局定义部分
2.VRRP实例定义部分
3.虚拟服务定义部分
##################Global Defined###################
global_defs {      
        router_id LVS_MASTER     #定义标识主机的字符,可以不必是主机名
}

vrrp_sync_group VGM {         #定义一同进行故障转移的IP组的名称
        group {
                http      #定义vrrp实例的名称,也就是后面定义实例的名称。
        }
}

#####################Vrrp Instance###################
vrrp_instance http {
        state MASTER      #定义初始化状态,MASTER或BACKUP
        interface eth0      #定义运行vrrp协议的网口
        lvs_sync_daemon_interface eth0  #定义lvs syncd的接口
        virtual_router_id 51    #定义虚拟路由组id,属于同一组的组成员的id必须是一样的
        priority 100       #定义组成员的优先级,数值愈大,优先级越高。
        advert_int 1      #定义MASTER 与BACKUP 负载均衡器之间同步检查的时间间隔,单位为秒
        authentication {     
                auth_type PASS
                auth_pass 1111
        }
        virtual_ipaddress {     #定义外界访问的VIP
                192.168.1.100
        }
}
####################Virtual Service Defined###############
virtual_server 192.168.1.100 80 {   #定义为哪个服务提供虚拟IP服务
        delay_loop 6      #对RealServer进行健康检查的时间间隔
        lb_algo rr       #调度算法
        lb_kind DR       #LVS三种模式DR,TUN,NAT之一
#       persistence_timeout 20    #会话保持时间,对于动态网页非常有用。
        protocol TCP      #指定转发协议的类型,有TCP和UDP两种

        real_server 192.168.1.106 80 {
                weight 100     #配置服务节点权值,数字越大权值越高。
                TCP_CHECK {     #对realserver状态的TCP监测
                        connect_timeout 3 #链接超时时间
                        nb_get_retry 3  #超时后的重试次数
                        delay_before_retry 3 #每次重试的间隔时间
                        connect_port 80  
                }
        }

        real_server 192.168.1.107 80 {
                weight 100
                TCP_CHECK {
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                        connect_port 80
                }
        }
}                                                                 
注:以上配置属于处于MASTER状态的配置文件
若要配置BACKUP状态的组成员机器只需修改如下几项即可:
1.router_id LVS_SLAVE
2.priority 80
3. state BACKUP 


你可能感兴趣的:(keepalived,LVS)