滕州市 网站建设公司,wordpress 关闭多站点,wordpress 媒体库缩略图生成,网站域名和服务器到期本章结构 Keepalived概述 keepalived 概述
1.服务功能
故障自动切换
健康检查
节点服务器高可用 HA keepalived工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案#xff0c;可以解决静态路由出现的单点故障问题 在一个LVS服务集群中通常有主服务器 (MAST…本章结构 Keepalived概述 keepalived 概述
1.服务功能
故障自动切换
健康检查
节点服务器高可用 HA keepalived工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案可以解决静态路由出现的单点故障问题 在一个LVS服务集群中通常有主服务器 (MASTER)和备份服务器(BACKUP)两种角色的服务器但是对外表现为一个虚拟:1主服务器会发送VRRP通告信息给备份服务器当备份服务器收不到VRRP消息的时候即主服务器异常的时候备份服务器就会接管虚拟IP继续提供服务从而保证了高可用性。 VRRP 通信原理 VRRP就是虚拟路由几余协议它的出现就是为了解决静态路由的单点故障 VRRP 是通过一种竞选一种协议机制来将路由交个某台VRRP路由器 VRRP 用IP多播的方式(多播地址224.0.0.18) 实现高可用之间的通信工作时主节点发包备节点接包当备节点接受不到主节点发的数据包的时候就启动接管主节点的资源备节点可以有多个通过优先级来进行竞选但一般keepalived系统运维工作时对 VRRP使用加密协议加密数据但keepalived官方目前还是推荐用明文的方式认证类型和密码 先了解VRRP 通信原理 再去了解keepalived 工作原理 keepalived主要模块及其作用 Keepalived体系主要模块及其作用:
keepalived体系架构中主要有三个模块分别是core、check和vrrp。
core模块:为keepalived的核心负责主进程的启动、维护及全局配置文件的加载和解析。
vrrp模块: 是来实现VRRP协议的。
check模块:负责健康检查常见的方式有端口检查及URI检查。 部署keepalived高可用集群
原理图 主DR 服务器ens33(192.168.10.14) ipvsadm 、keepalived(热备) 虚拟IP192.168.10.180 网卡 ens33:0 备DR 服务器ens33(192.168.10.15) ipvsadm 、keepalived 虚拟IP192.168.10.180 网卡 ens33:0 Web 服务器1ens33 192.168.10.16 lo:0(VIP)192.168.10.180 Web 服务器2ens33 192.168.10.17 lo:0(VIP)192.168.10.180 vip192.168.10.188 客户端192.168.10.100 ---------------------LVS 部署------------------------- 1.配置负载调度器主、备相同 (192.168.10.14、192.168.10.15 systemctl stop firewalld.service setenforce 0
yum -y install ipvsadm keepalived modprobe ip_vs cat /proc/net/ip_vs
1配置keeplived主、备DR 服务器上都要设置 cd /etc/keepalived/ cp keepalived.conf keepalived.conf.bak vim keepalived.conf ...... global_defs { #定义全局参数 --10行--修改邮件服务指向本地 smtp_server 127.0.0.1 --12行--修改指定服务器路由器的名称主备服务器名称须不同主为LVS_01备为LVS_02 router_id LVS_01 --14行--注释掉取消严格遵守VRRP协议功能否则VIP无法被连接 #vrrp_strict }
vrrp_instance VI_1 { #定义VRRP热备实例参数 --20行--修改指定热备状态主为MASTER备为BACKUP state MASTER --21行--修改指定承载vip地址的物理接口 interface ens33 --22行--修改指定虚拟路由器的ID号每个热备组保持一致 virtual_router_id 10 #nopreempt #如果设置非抢占模式两个节点state必须为bakcup并加上配置 nopreempt --23行--修改指定优先级数值越大优先级越高这里设置主为100备为90 priority 100 advert_int 1 #通告间隔秒数(心跳频率) authentication { #定义认证信息,每个热备组保持一致 auth_type PASS #认证类型 --27行--修改指定验证密码主备服务器保持一致 auth_pass abc123 } virtual_ipaddress { #指定群集vip地址 192.168.10.180 } } --36行--修改指定虚拟服务器地址(VIP)、端口定义虚拟服务器和Web服务器池参数 virtual_server 192.168.10.188 80 { delay_loop 6 #健康检查的间隔时间(秒) lb_algo rr #指定调度算法轮询(rr) --39行--修改指定群集工作模式直接路由(DR) lb_kind DR persistence_timeout 50 #连接保持时间(秒) protocol TCP #应用服务采用的是 TCP协议 --43行--修改指定第一个Web节点的地址、端口 real_server 192.168.10.16 80 { weight 1 #节点的权重 --45行--删除添加以下健康检查方式 TCP_CHECK { connect_port 80 #添加检查的目标端口 connect_timeout 3 #添加连接超时(秒) nb_get_retry 3 #添加重试次数 delay_before_retry 3 #添加重试间隔 } } real_server 192.168.10.17 80 { #添加第二个 Web节点的地址、端口 weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } ##删除后面多余的配置## } 192.168.10.14和15都需要配置vip(虚拟IP)vim /etc/sysconfig/network-scripts/ifcfg-ens33:0 DEVICEens33:0 ONBOOTyes IPADDR192.168.10.180 NETMASK255.255.255.255
重启网卡 systemctl restart network ifup ens33:0 systemctl start keepalived ip addr #查看虚拟网卡vip 2启动 ipvsadm 服务 --192.168.10.14---
ipvsadm-save /etc/sysconfig/ipvsadm systemctl start ipvsadm
ipvsadm -C ##清空规则 ipvsadm -A -t 192.168.10.188:80 -s rr ipvsadm -a -t 192.168.10.188:80 -r 192.168.10.16:80 -g ipvsadm -a -t 192.168.10.188:80 -r 192.168.10.17:80 -g ipvsadm -ln #如没有VIP 的分发策略则重启 keepalived 服务systemctl restart keepalived
--192.168.10.15--- ipvsadm-save /etc/sysconfig/ipvsadm systemctl start ipvsadm
ipvsadm -ln
3调整 proc 响应参数关闭Linux 内核的重定向参数响应 vim /etc/sysctl.conf net.ipv4.conf.all.send_redirects 0 net.ipv4.conf.default.send_redirects 0 net.ipv4.conf.ens33.send_redirects 0
sysctl -p 主192.168.10.14 配置虚拟网卡 启动 ipvsadm 服务 备服务器192.168.10.15 为了区分主备这里需要把备的优先级改的比主服务器小 配置网卡 配置ipvsdm 调整 proc 响应参数关闭Linux 内核的重定向参数响应 vim /etc/sysctl.conf 这一步主备的配置一样 查看一下有没有虚拟ip地址 启动keepalived 2.配置节点服务器 systemctl stop firewalld setenforce 0 yum -y install httpd systemctl start httpd
--192.168.10.16--- echo this is kgc web! /var/www/html/index.html
--192.168.10.17--- echo this is benet web! /var/www/html/index.html
vim /etc/sysconfig/network-scripts/ifcfg-lo:0 DEVICElo:0 ONBOOTyes IPADDR192.168.10.180 NETMASK255.255.255.255
service network restart 或 systemctl restart network ifup lo:0 ifconfig lo:0 route add -host 192.168.10.180 dev lo:0
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore 1 net.ipv4.conf.lo.arp_announce 2 net.ipv4.conf.all.arp_ignore 1 net.ipv4.conf.all.arp_announce 2
sysctl -p web1 192.168.10.16 web2192.168.10.17 3.测试验证
在客户端访问 http://192.168.10.180/ 再在主服务器关闭 keepalived 服务后再测试 systemctl stop keepalived 访问 访问结果如上证明可以正常轮询可以访问页面 关闭主再看一下备那边的情况 虚拟ipvip地址到了web2这边完成了抢占代理主的功能 继续访问发现依旧可以正常访问网页 重启web1web1进行抢占重新恢复成主 web2的虚拟ip(vip)地址就没有了 可以正常访问 注vip地址只有在哪个服务器做主的时候vip地址才会跳到哪边
也就是一旦主挂了备顶上数据流向就往备走了备代理主的功能作为主服务器 内容汇总 补充脑裂问题如何解决掌握工作中用得到
问题点
1、ping不通 中间链路断掉
2、服务器宕机了 挂掉了 解决方法
方法1、加中继线路
方法2、用shell脚本判断
方法3、直接重启服务器