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]