Keepalived主从虚拟路由器虚拟服务器优先级调整
keepalived简介:
Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、
第4层和第7层交换机的功能。主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,
负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs),而高可用是通过VRRP协议实现多台机器之间的故障转移服务。
keepalived:
vrrp协议的软件实现,原生设计的目的为了高可用ipvs服务:
基于vrrp协议完成地址流动;
为vip地址所在的节点生成ipvs规则(在配置文件中预先定义);
为ipvs集群的各RS做健康状态检测;
基于脚本调用接口通过执行脚本完成脚本中定义的功能,进而影响集群事务;
组件:
核心组件:
vrrp stack
ipvs wrapper
checkers
控制组件:
配置文件分析器
IO复用器
内存管理组件
HA Cluster的配置前提:
(1) 各节点时间必须同步;
ntp, chrony
(2) 确保iptables及selinux不会成为阻碍;
(3) 各节点之间可通过主机名互相通信(对KA并非必须);
建议使用/etc/hosts文件实现;
(4) 确保各节点的用于集群服务的接口支持MULTICAST通信;
D类:224-239;
程序环境:
主配置文件:/etc/keepalived/keepalived.conf
主程序文件:/usr/sbin/keepalived
配置文件组件部分:
TOP HIERACHY
GLOBAL CONFIGURATION
Global definitions
Static routes/addresses
VRRPD CONFIGURATION
VRRP synchronization group(s):vrrp同步组;
VRRP instance(s):每个vrrp instance即一个vrrp路由器;
LVS CONFIGURATION
Virtual server group(s)
Virtual server(s):ipvs集群的vs和rs;用作定义虚拟服务器
准备:四台PC,其中两台作为实验的虚拟路由器的物理路由器(Director),两台用作RS。
1、主从虚拟路由器
两台虚拟路由器的物理主机安装keepalived软件后,将原有的/etc/keepalived/keepalived.conf重命名用作备份,
完成后新建keepalived.conf文件编写如下:
! Configuration File for keepalived #!起始行为注释行
global_defs { # 全局定义块
notification_email { #通告邮件用户,需要邮件服务,这里不做测试
root@localhost #接收邮件地址
}
notification_email_from keepalived@localhost #发送邮件用户
smtp_server 127.0.0.1 #邮件服务器
smtp_connect_timeout 30 #连接超时
router_id HA1 #当前路由设备ID,一般为主机名,可变
vrrp_mcast_group4 224.18.18.19 #组播地址,实现健康检查,心跳
}
vrrp_instance VI_1 { #实例化虚拟路由器参数
state MASTER #当前路由设备状态,MASTER或BACKUP,可一主一从或一主多从,
interface eth0 #实例的网络物理接口
virtual_router_id 51 #虚拟路由ID,两台主机需相同
priority 96 #当前物理网络节点的优先级,0-254
advert_int 1 #MASTER与BACKUP节点间健康检查时间间隔
authentication { #PASS或AH认证,一般使用PASS,长度为8,
auth_type PASS #认证类型
auth_pass a1b2c3d4 #认证密码
}
virtual_ipaddress { #虚拟路由器IP
192.168.1.201/24 dev eth0 label eth0:0 #绑定在eth0,标签为eth0:0
}
}
另一台主机设置如下: