杨叔叔 发表于 2018-12-31 10:12:15

keepalived工作原理和配置文件解析

  keepalived是什么
  keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障,它可以自动检测集群中服务器的健康状况,比如主从模式时,当主服务器发生故障时,Keepalived会根据服务器的VRRP优先级来选举一个从服务器成为主服务器,实现主从的无缝切换,保证持续的提供服务,并且Keepalived也会及时的通过邮件通知到相关负责人进行维护出现问题的服务器。
  keepalived工作原理
  keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
  虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
  keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。
  keepalived的配置文件
  和Nginx类似,keepalived也只有一个核心的配置文件keepalived.conf,使用Keepalived的各种功能,我们只需要对这个文件进行相关的配置即可。keepalived.conf里面主要包括以下几个配置区域,分别是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。
  下面是配置文件的一张结构图,每个节点都有相应的解析。
http://img.blog.csdn.net/20160127211257118  global_defs区域
  主要是配置故障发生时的通知对象以及机器标识
global_defs {  notification_email {
  aaa@163.com
  bbb@163.com      ...
  }
  notification_email_from alert@163.com
  smtp_serversmtp.163.com
  smtp_connect_timeout 30
  enable_traps
  router_id host163
  }123456789101112123456789101112
  解析:
notification_email 故障发生时给谁发邮件通知。  notification_email_from 通知邮件从哪个地址发出。
  smpt_server 通知邮件的smtp地址。
  smtp_connect_timeout 连接smtp服务器的超时时间。
  enable_traps 开启SNMP陷阱(Simple Network Management Protocol)。
  router_id 标识本节点的字条串,通常为hostname,但不一定非得是hostname。故障发生时,邮件通知会用到。
  vrrp_script区域
  用来做健康检查的,当检查失败时会将vrrp_instance的priority减少相应的值。
vrrp_script chk_http_port {    script "
页: [1]
查看完整版本: keepalived工作原理和配置文件解析