keepalived是vrrp协议的软件实现,原生设计目的是为了高可用ipvs服务。
vrrp:静态网关虚拟协议,在两个路由器之间虚拟出一个IP地址,当一个路由器损坏时,自动将虚拟出的IP地址移动到另一台路由器上linux
用户空间核心组件
vrrp stack 消息通告组件,用来广播虚拟的ip地址在本身这里
checkers 监测组件,监测后端服务器的存活状态
system call 标记realserver权重
SMTP 邮件组件,vip发生迁移时能够经过邮件进行通知。
ipvs wrapper 生成ipvs规则,在内核级别生成。
Netlink Reflector 网络接口
WatchDog 监控进程,并记录日志。后端
虚拟路由器: Virtual Router
虚拟路由器标识: VRID(0-255),用于惟一标识虚拟路由器
物理路由器:物理路由器分为master(主设备),backup(备用设备),其中主备之间还存在一个priority(优先级),当两台物理路由器设备都为备时,就看谁的优先级高,优先级高的则成为主
虚拟IP: VIP (Virtual IP)
虚拟MAC地址: VMC (Virtual MAC)
通告: 用来周期性的通告本身的优先级以及本身的心跳信息,证实本身存活
工做方式: 抢占式和非抢占式
当master设备发生故障时,vip将漂移值backup上,master修复后是否将vip进行夺回,若是夺回则为抢占式,不夺回则为非抢占式。
工做模式:有主备和主主模式
主备: 为单虚拟路由器,两台服务器只有一台工做,另外一台只有当主的故障时才启用
主主: 两台服务器互为主备,即一台为主备,另外一台为备主,让两台服务器并行运行。bash
使用yum安装服务器
[root@localhost ~]# yum install keepalived -y
keepalived安装的相关文件网络
[root@localhost ~]# rpm -ql keepalived /etc/keepalived/keepalived.conf #keepalived主配置文件 /etc/sysconfig/keepalived #unit file环境配置文件 /usr/lib/systemd/system/keepalived.service #unit file /usr/sbin/keepalived #主程序文件
notification_email { #邮件通知机制,当keepalived发生故障时,进行发邮件通知 root@mylinuxops.com #能够将其修改也能够将其改成本机 } notification_email_from root@mylinuxops.com #邮件从哪里发出去 smtp_server 127.0.0.1 #本机的smtp服务器地址 smtp_connect_timeout 30 #smtp的链接超时时长 router_id n1.mylinuxops.com #虚拟路由的表示符通常写本机,确保每一个节点都不相同 vrrp_skip_check_adv_addr #跳过检查数据报文,默认会检查。 vrrp_strict #严格遵循vrrp协议,没有vip,单播地址,ipv6地址将没法启动 vrrp_iptables #不生成iptables规则 vrrp_mcast_group4 224.0.0.18 #组播,默认状况下向224.0.0.18发送组播消息 vrrp_garp_interval 0 #arp报文发送延迟 vrrp_gna_interval 0 #消息发送延迟 } vrrp_instance VI_1 { #配置实例的名称 state BACKUP #服务器角色 nopreempt #关闭VIP的抢占,state都为BACKUP时生效。 interface ens33 #默认的接口 virtual_router_id 27 #虚拟路由ID priority 80 #优先级 advert_int 2 #探测时间 authentication { #认证方式 auth_type PASS auth_pass 1111 } virtual_ipaddress { #虚拟的IP地址,将地址绑定在哪一个网卡上,子接口是哪一个 172.20.27.100 dev ens33 label ens33:0 } }