LVS+Keepalived群集

目录

一、keepalived介绍

二、Keepalived及其工作原理

三、Keepalived原理剖析

四、Keepalived体系主要模块及其作用

实例:

NFS服务器:192.168.80.200

主DR 服务器:192.168.30.200

备DR 服务器:192.168.30.203

Web 服务器1:192.168.30.104

Web 服务器2:192.168.30.105

验证


一、keepalived介绍

专为LVS和HA设计的一款健康检查工具

  • 支持故障自动切换(Failover)
  • 支持节点健康状态检查(Health Checking)
  • 判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到backup 节点保证业务正常,当master故障主机恢复后将其重新加入群集并且业务重新切换回master节点。
     

二、Keepalived及其工作原理

Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。

在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP(VIP),主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

三、Keepalived原理剖析

VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案

由多台路由器组 成一个热备组,通过共用的虚拟IP地址对外提供服务
每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态
若当前在线的路由器 失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务
VRRP工作过程

选举Master,比较优先级,高的为Master,若优先级相同无Master时,比较接口IP地址,大的为Master,Master设备发送ARP报文,承担报文转发工作;

状态维持,Master设备周期发送通告报文,公布配置信息和工作状态;

Backup设备根据收到的通告报文判断Master设备是否工作正常,如果Master设备主动放弃Master地位时,会发送优先级为0的通告报文,Backup设备收到后会快速切换成Master设备或者定时器超时后Backup设备认为Master设备无法正常工作,会切换状态为Master。
 

四、Keepalived体系主要模块及其作用

keepalived体系架构中主要有三个模块,分别是core、check和vrrp。

  • core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
  • vrrp模块:是来实现VRRP协议的。(调度器之间的健康检查和主备切换)
  • check模块:负责健康检查,常见的方式有端口检查及URL检查。(节点服务器的健康检查)

实例:

NFS服务器:192.168.30.100
主DR 服务器:192.168.30.200
备DR 服务器:192.168.30.203
Web 服务器1:192.168.30.104
Web 服务器2:192.168.30.105
vip:192.168.30.188

NFS服务器:192.168.80.200

主DR 服务器:192.168.30.200

LVS+Keepalived群集_第1张图片

LVS+Keepalived群集_第2张图片

global_defs {                        #定义全局参数
--10行--修改,邮件服务指向本地
    smtp_server 127.0.0.1
--12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
    router_id LVS_01
--14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接
    #vrrp_strict
}

vrrp_instance VI_1 {                #定义VRRP热备实例参数
--20行--修改,指定热备状态,主为MASTER,备为BACKUP
    state MASTER
--21行--修改,指定承载vip地址的物理接口
    interface ens33
--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致    
    virtual_router_id 10
    #nopreempt        #如果设置非抢占模式,两个节点state必须为BACKUP,并加上配置 nopreempt
--23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90
    priority 100
    advert_int 1                    #通告间隔秒数(心跳频率)
    authentication {                #定义认证信息,每个热备组保持一致
        auth_type PASS                #认证类型
--27行--修改,指定验证密码,主备服务器保持一致
        auth_pass abc123
    }
    virtual_ipaddress {                #指定群集vip地址
        192.168.30.188
    }
}
--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 192.168.30.188 80 {
    delay_loop 6                    #健康检查的间隔时间(秒)
    lb_algo rr                        #指定调度算法,轮询(rr)
--39行--修改,指定群集工作模式,直接路由(DR)
    lb_kind DR
    persistence_timeout 0            #连接保持时间(秒)
    protocol TCP                    #应用服务采用的是 TCP协议
--43行--修改,指定第一个Web节点的地址、端口
    real_server 192.168.30.104 80 {
        weight 1                    #节点的权重
--45行--删除,添加以下健康检查方式        
        TCP_CHECK {
            connect_port 80            #添加检查的目标端口
            connect_timeout 3        #添加连接超时(秒)
            nb_get_retry 3            #添加重试次数
            delay_before_retry 3    #添加重试间隔
        }
    }

    real_server 192.168.30.105 80 {        #添加第二个 Web节点的地址、端口
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
##删除后面多余的配置##
}

LVS+Keepalived群集_第3张图片

LVS+Keepalived群集_第4张图片

LVS+Keepalived群集_第5张图片

LVS+Keepalived群集_第6张图片

LVS+Keepalived群集_第7张图片

备DR 服务器:192.168.30.203

LVS+Keepalived群集_第8张图片

LVS+Keepalived群集_第9张图片

LVS+Keepalived群集_第10张图片

LVS+Keepalived群集_第11张图片

LVS+Keepalived群集_第12张图片

Web 服务器1:192.168.30.104

LVS+Keepalived群集_第13张图片

LVS+Keepalived群集_第14张图片

LVS+Keepalived群集_第15张图片

LVS+Keepalived群集_第16张图片

LVS+Keepalived群集_第17张图片

LVS+Keepalived群集_第18张图片

Web 服务器2:192.168.30.105

LVS+Keepalived群集_第19张图片

LVS+Keepalived群集_第20张图片

LVS+Keepalived群集_第21张图片

LVS+Keepalived群集_第22张图片

LVS+Keepalived群集_第23张图片

LVS+Keepalived群集_第24张图片

LVS+Keepalived群集_第25张图片

验证

LVS+Keepalived群集_第26张图片

LVS+Keepalived群集_第27张图片

你可能感兴趣的:(lvs)