Linux高可用之Keepalived
发布时间:2022-08-09 10:12:59 所属栏目:Linux 来源:互联网
导读:Keepalived是基于vrrp协议的一款高可用软件。Keepailived有一台主服务器和多台备份服务器,在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。 VRRP(Virtual Route
Keepalived是基于vrrp协议的一款高可用软件。Keepailived有一台主服务器和多台备份服务器,在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议),VRRP是为了解决静态路由的高可用。VRRP的基本架构 虚拟路由器由多个路由器组成,每个路由器都有各自的IP和共同的VRID(0-255),其中一个VRRP路由器通过竞选成为MASTER,占有VIP,对外提供路由服务,其他成为BACKUP,MASTER以IP组播(组播地址:224.0.0.18)形式发送VRRP协议包,与BACKUP保持心跳连接,若MASTER不可用(或BACKUP接收不到VRRP协议包),则BACKUP通过竞选产生新的MASTER并继续对外提供路由服务,从而实现高可用。 vrrp协议的相关术语: 虚拟路由器:Virtual Router 虚拟路由器标识:VRID(0-255) 物理路由器: master :主设备 backup :备用设备 priority:优先级 VIP:Virtual IP VMAC:Virutal MAC (00-00-5e-00-01-VRID) GraciousARP 安全认证: 简单字符认证、HMAC机制,只对信息做认证 MD5(leepalived不支持) 工作模式: 主/备:单虚拟路径器; 主/主:主/备(虚拟路径器),备/主(虚拟路径器) 工作类型: 抢占式:当出现比现有主服务器优先级高的服务器时,会发送通告抢占角色成为主服务器 非抢占式: keepalived 核心组件: vrrp stack:vrrp协议的实现 ipvs wrapper:为集群内的所有节点生成IPVS规则 checkers:对IPVS集群的各RS做健康状态检测 控制组件:配置文件分析器,用来实现配置文件的分析和加载 IO复用器 内存管理组件,用来管理keepalived高可用是的内存管理 注意: 各节点时间必须同步 确保各节点的用于集群服务的接口支持MULTICAST通信(组播); 安装 从CentOS 6.4开始keepalived随系统base仓库提供,可以使用yun -y install keepalived安装。 配置文件: 主配置文件:/etc/keepalived/keepalived.conf 主程序文件:/usr/sbin/keepalived 提供校验码:/usr/bin/genhash Unit File:keepalived.service Unit File的环境配置文件:/etc/sysconfig/keepalived 配置 主配置文件详解 ! Configuration File for keepalived global_defs { notification_email { #发送报警邮件收件地址 acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc #指明报警邮件的发送地址 smtp_server 192.168.200.1 #邮件服务器地址 smtp_connect_timeout 30 #smtp的超时时间 router_id LVS_DEVEL #物理服务器的主机名 vrrp_mcast_group4 #定义一个组播地址 static_ipaddress { 192.168.1.1/24 dev eth0 scope global } static_routes { 192.168.2.0/24 via 192.168.1.100 dev eth0 } } vrrp_sync_group VG_1 { #定义一个故障组,组内有一个虚拟路由出现故障另一个也会一起跟着转移,适用于LVS的NAT模型。 group { VI1 # name of vrrp_instance (below) VI2 # One for each moveable IP } } vrrp_instance VI_1 { #定义一个虚拟路由 state MASTER|BACKUP #当前节点在此虚拟路由器上的初始状态;只能有一个是MASTER,余下的都应该为BACKUP; interface eth0 #绑定为当前虚拟路由器使用的物理接口; virtual_router_id 51 #当前虚拟路由器的惟一标识,范围是0-255; priority 100 #当前主机在此虚拟路径器中的优先级;范围1-254; advert_int 1 #通告发送间隔,包含主机优先级、心跳等。 authentication { #认证配置 auth_type PASS #认证类型,PASS表示简单字符串认证 auth_pass 1111 #密码,PASS密码最长为8位 virtual_ipaddress { 192.168.200.16 #虚拟路由IP地址,以辅助地址方式设置 192.168.200.18/24 dev eth2 label eth2:1 #以别名的方式设置 } track_interface { eth0 eth1 } #配置要监控的网络接口,一旦接口出现故障,则转为FAULT状态; nopreempt #定义工作模式为非抢占模式; preempt_delay 300 #抢占式模式下,节点上线后触发新选举操作的延迟时长; virtual_routes { #配置路由信息,可选项 # src <IPADDR> [to] <IPADDR>/<MASK> via|gw <IPADDR> [or <IPADDR>] dev <STRING> scope <SCOPE> tab src 192.168.100.1 to 192.168.109.0/24 via 192.168.200.254 dev eth1 192.168.112.0/24 via 192.168.100.254 192.168.113.0/24 via 192.168.200.254 or 192.168.100.254 dev eth1 blackhole 192.168.114.0/24 } notify_master <STRING>|<QUOTED-STRING> #当前节点成为主节点时触发的脚本。 notify_backup <STRING>|<QUOTED-STRING> #当前节点转为备节点时触发的脚本。 notify_fault <STRING>|<QUOTED-STRING> #当前节点转为“失败”状态时触发的脚本。 notify <STRING>|<QUOTED-STRING> #通用格式的通知触发机制,一个脚本可完成以上三种状态的转换时的通知。 smtp_alert #如果加入这个选项,将调用前面设置的邮件设置,并自动根据状态发送信息 } virtual_server 192.168.200.100 443 { #LVS配置段 ,设置LVS的VIP地址和端口 delay_loop #服务轮询的时间间隔;检测RS服务器的状态。 lb_algo rr #调度算法,可选rr|wrr|lc|wlc|lblc|sh|dh。 lb_kind NAT #集群类型。 nat_mask 255.255.255.0 #子网掩码,可选项。 persistence_timeout 50 #是否启用持久连接,连接保存时长 protocol TCP #协议,只支持TCP sorry_server <IPADDR> <PORT> #备用服务器地址,可选项。 (编辑:鞍山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |