LVS负载均衡集群之HA高可用模式

Keepalived工具介绍

专为LVS和HA设计的一款健康检查工具

一个合格的集群应该具备的特性:

1.负载均衡 LVS Nginx HAProxy F5

2.健康检查(探针) for调度器/节点服务器 Keeplived Hearbeat

3.故障转移 通过VIP飘逸实现主备切换

健康检查(探针)的方式

1.发送心跳消息:ping/pong

2.TCP端口检查:向目标主机的ip:端口发起TCP连接请求,如果TCP连接成功(三次握手成功)则认为健康检查探测成功,反之认为健康检查失败

3.HTTP URL检查:向目标主机的http://ip:端口/URL路径 发送HTTP GET请求方法

如果响应返回2xx,3xx状态码则认为健康检查成功

如果响应返回4xx,5xx状态码,则认为健康检查失败

LVS+keepalived群集

Keepalived工作原理:

  • keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现单点故障问题。

  • Keepalived采用VRRP热备份协议,实现Linux服务器的多机热备

  • 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性

Keepalived体系主要模块及其作用:

keepalived体系架构中主要有三个模块,分别是core、check和vrrp。 ●core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。 ●vrrp模块:是来实现VRRP协议的。(调度器之间的健康检查和主备切换) ●check模块:负责健康检查,常见的方式有端口检查及URL检查。(节点服务器的健康检查)

脑裂故障(现象、原因、解决、预防)

现象:主服务器和备服务器同时拥有VIP

原因:因为主服务器和备服务器之间的通信链路中断,导致备服务器无法收到主服务器发送的VRRP心跳通告消息

解决:关闭主服务器或者备份服务器其中一个的keepalived服务

预防:1.主服务器和备服务器之间添加双链路通信

2.在主服务器上添加脚本进行判断与备服务器通信链路是否终端,如果确实是链路中断则自行关闭 keepalived服务

3.利用第三方应用或监控系统检测是否发生脑裂故障,如果发生脑裂故障则通过第三方应用或监控系统来关闭主服务器或备服务器上的keepalived服务

部署LVS+Keepalived 高可用群集

主DR 服务器: 192.168.237.10
备DR 服务器: 192.168.237.40
Web 服务器1: 192.168.116.20
Web 服务器2: 192.168.116.30
vip:192.168.116.200

 配置负载调度器(主、备相同)

systemctl stop firewalld.service

setenforce 0

配置本地yum仓库

yum -y install keepalived

cd /etc/keepalived

vim keepalived.conf

  1 ! Configuration File for keepalived
  2 
  3 global_defs {
  4    notification_email {
  5      acassen@firewall.loc
  6      failover@firewall.loc
  7      sysadmin@firewall.loc
  8    }
  9    notification_email_from Alexandre.Cassen@firewall.loc
 10    smtp_server 127.0.0.1
 11    smtp_connect_timeout 30
 12    router_id LVS_01
 13 }  
 14   
 15 vrrp_instance VI_1 {
 16     state MASTER
 17     interface ens33
 18     virtual_router_id 51
 19     priority 100
 20     advert_int 1
 21     authentication {
 22         auth_type PASS
 23         auth_pass 1111
 24     }
 25     virtual_ipaddress {
 26         192.168.116.200
 27     }
 28 }
~            

 主:

添加真实服务器的配置:

     30 virtual_server 192.168.116.200 80 {
     31     delay_loop 6
     32     lb_algo rr
     33     lb_kind DR
     34     persistence_timeout 0
     35     protocol TCP
     36 
     37     real_server 192.168.116.20 80 {
     38         weight 1
     39         TCP_CHECK {
     40             connect_port 80
     41             connect_timeout 3
     42             nb_get_retry 3
     43             delay_before_retry 3
     44         }
     45     }
     46     real_server 192.168.116.30 80 {
     47         weight 1
     48         TCP_CHECK {
     49             connect_port 80
     50             connect_timeout 3
     51             nb_get_retry 3
     52             delay_before_retry 3
     53         }
     54     }
     55 }
     56 

将主的配置文件发送去备的当前位置,文件取名为pwd

scp keepalived.conf 192.168.116.40:'pwd'

 备:

systemctl start keepalived     #开启

ip add            #查看虚拟网卡vip

主:

备:

安装ipvsadm工具(两台都要安装)

yum install -y ipvsadm

ipvsadm-save > /etc/sysconfig/ipvsadm systemctl start ipvsadm

ipvsadm -ln 检查是否有策略

配置节点服务器

准备页面   

cd /usr/share/nginx/html

web1:echo '<h1>this is web01 test page</h1>' > test.html

web2:echo '<h1>this is web01 test page</h2>' > test.html

配置内核

 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

 

 添加路由

route add -host  192.168.116.200   dev  lo:0

 开启nginx服务

 检测验证

 将主调度器关闭keepalived,VIP地址消失

 备调度器自动顶上:

 再次浏览器验证:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/288915.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python数据加密:保障信息安全的最佳实践

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 随着信息技术的发展&#xff0c;数据安全成为越来越重要的议题。在Python中&#xff0c;有多种方法可以用于数据加密&#xff0c;以确保敏感信息在传输和存储过程中不被泄露或篡改。本文将详细介绍Python中数据加…

数据可视化---直方图

内容导航 类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统…

基于SpringBoot+Vue的小区物业管理系统

基于SpringBootVue的小区物业管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 房屋类型 论坛 登录界面 管理员界面 员工界面 摘要 小区物业管理系统是一个…

202349读书笔记|《陈年喜的诗》——杏花岁岁结出青杏 岁月是永恒的 善变的是人类的命运

《陈年喜的诗》作者矿工诗人陈年喜&#xff0c;今年还读了一本外卖诗人的《赶时间的人》&#xff0c;也很惊喜。脚下是泥泞的土地&#xff0c;心中是灿烂的繁星。我喜欢生活与生命的厚重烙刻在他们心灵的痕迹&#xff0c;有心酸艰苦&#xff0c;但更多的是对生活的热爱&#xf…

智能优化算法应用:基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于非洲秃鹫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.非洲秃鹫算法4.实验参数设定5.算法结果6.…

内外联动——记建行江门鹤山支行营业部成功堵截诈骗

“谢谢&#xff0c;太谢谢你们了&#xff01;真没想到&#xff0c;现在骗子手段这么高了&#xff0c;冒充我孙儿太像了。要不是你们一直拦着我&#xff0c;差点就把养老钱汇出去了&#xff01;”近日&#xff0c;在建行江门鹤山支行营业部大厅里&#xff0c;一位老人家肖婆婆对…

第二百一十七回 修改页面导航中遇到的问题

文章目录 1. 问题介绍2. 使用方法3. 代码与分析3.1 示例代码3.2 代码分析4. 内容总结我们在上一章回中介绍了"分享一种更新页面数据的方法"相关的内容,本章回中将介绍修改页面导航中遇到的问题.闲话休提,让我们一起Talk Flutter吧。 1. 问题介绍 我们在页面之间导…

Jackson 注解及配置大全

Jackson JSON 框架中包含了大量的注解来让我们可以干预 Jackson 的 JSON 处理过程&#xff0c; 例如我们可以通过注解指定 java pojo 的某些属性在生成 json 时被忽略。。本文主要介绍如何使用 Jackson 提供的注解。 Jackson注解主要分成三类&#xff0c;一是只在序列化时生效的…

远程多窗口和Screen用法

Termius 远程链接服务器终端时&#xff0c;经常遇到需要开多个窗口&#xff0c;另外还可能涉及到正在运行的程序一旦和服务器链接断开&#xff0c;那么程序也就停止执行了。对于单单只需要多个窗口的问题&#xff0c;建议下载一个Termius这样软件&#xff0c;比多次打开…

RK3568 android11 调试mipi摄像头 gc2093

一&#xff0c;摄像头简介 GC2093是一个高质量的1080P CMOS图像传感器&#xff0c;用于安全相机产品、数码相机产品和手机相机应用程序。包含了一个1920H x 1080V像素阵列、片上10位ADC和图像信号处理器。高性能和低功耗功能的全面集成使GC2093最适合设计&#xff0c;减少了实…

SQL学习笔记+MySQL+SQLyog工具教程

文章目录 1、前言2、SQL基本语言及其操作2.1、CREATE TABLE – 创建表2.2、DROP TABLE – 删除表2.3、INSERT – 插入数据2.4、SELECT – 查询数据2.5、SELECTDISTINCT – 去除重复值后查询数据2.6、SELECTWHERE – 条件过滤2.7、AND & OR – 运算符2.8、ORDER BY – 排序2…

为你自己学laravel - 15 - model的更新和删除

为你自己学laravel。 model的部分。 这一次讲解的是model当中怎么从数据库当中更新数据和删除数据。 先从数据库当中抓出来资料。 当然我们是使用php artisan tinker进入到终端机。 我们的做法是想要将available这个栏位修改成为true。 第一种更新方法 上面我们就是修改了对…