AI智能
改变未来

高可用架构之keeplived

工作原理

keepalived高可用之间是通过VRRP通信的。VRRP中文名字虚拟路由冗余协议,VRRP的出现是为了解决静态的单点故障。VRRP是通过一种竞选协议机制来将路由任务交给某台VRRP路由器的 VRRP用IP多播的方式(默认多播地址224.0.0.18)实现高可用对之间的通信工作时主节点发包,备节点接包,当备节点接受不到主节点发的数据包的时候,就启动接管程序主节点的资源,备节点可以有多个,通过优先级竞选,但一般Keepalived就系统运维工作中是一对的VRRP使用了加密协议加密数据,但Keepalived 官方目前还是推荐用明文的方式配置认证类型和密码介绍完了VRRP,接下来在介绍一下Keepalived服务的工作原理Keepalived高可用对之间是通过VRRP进行通信的,VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此工作时主会优先获取所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供访问。在Keepalived服务对之间,只有作为住的服务会一直发s送VRRP广播包,告诉备它还活着,此时备不会抢占住,当主不可用时,即备监听不要发送的广播包时,就会启动相关服务接管资源,保证业务的连续性。接管速度最快可以小于1秒

组件介绍

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式,vrrp模块是来实现VRRP协议的

主配置文件

[root@lb--01 keepalived]# vim keepalived.conf  ! Configuration File for keepalived global_defs {   router_id lb01} vrrp_instance VI_1 {    state MASTER    interface eth0    virtual_router_id 666    priority 199    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        10.0.0.3    }}

备配置文件

[root@lb--02 keepalived]# vim keepalived.conf  ! Configuration File for keepalived global_defs {   router_id lb02} vrrp_instance VI_1 {    state BACKUP    interface eth0    virtual_router_id 666    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        10.0.0.3    }}

这种配置检测不太准确,因为只是根据服务器宕机,来判定主备切换的话是不严谨的。(仅限小白使用)

公司级别keepalived  + haproxy  

主要实现方式是:  keepalived 中实时的在执行一个检查脚本,脚本主要内容是通过socket文件给haproxy监听的url 端口,发送1024数据包,判断当收到数据的值,如果这个收到的值为为0 的话就会返回2 ,反之就返回0,  然后keepalived中设置了 weight 的值,并且weight配置的值大于0,则优先级相应的增加。 keepalived会定时执行脚本并对脚本执行的结果进行分析,动态调整vrrp_instance的优先级。如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少

cat /etc/keepalived/keepalived.conf global_defs {   notification_email {     keeplived@system.com   }   notification_email_from lcoalhost@system.com   smtp_server 127.0.0.1   smtp_connect_timeout 30   router_id test-10e150e71e180} vrrp_script chk_http_port {    script \"/etc/keepalived/check_haproxy.sh\"    interval 2    weight 2} vrrp_instance VI_1 {    interface eth0    virtual_router_id 75    priority 100    nopreempt    advert_int 1    authentication {        auth_type PASS        auth_pass 2376    }    virtual_ipaddress {        10.150.71.191/22 dev eth0    }    virtual_routes {        default via 192.168.247.1 dev eth0    }    unicast_src_ip 10.150.71.180    unicast_peer {         10.150.71.181                 }    track_script {         chk_http_port     }    notify_master \"/etc/keepalived/notify.sh 0\"    notify_backup \"/etc/keepalived/notify.sh 1\"    notify_fault \"/etc/keepalived/notify.sh 2\"}

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 高可用架构之keeplived