Linux系统LVS+Keepalived群集

目录

一、概述

(一)群集特性

1.负载均衡

2.健康检查(探针)

3.故障转移  

(二)Keepalived

1.作用      

(1)支持故障自动转移

(2)支持节点健康状态检查

2.工作原理

3.Keepalived体系主要模块及其作用

(1)core模块

(2)check模块

(3)vrrp模块

4.健康检查(探针)的方式

(1)发送心跳消息

(2)TCP端口检查

(3)HTTP URL检查

(三)脑裂故障

1.现象

2.原因

3.解决

4.预防方法

(四)keepalived的抢占与非抢占模式

1.抢占模式

2.非抢占模式

3.注意点

二、部署LVS+Keepalived

(一)部署负载调度服务器

1.部署主keepalived服务器

(1)关闭防火墙和安全机制

(2)安装服务

(3)修改配置文件

(4)启动服务、查看虚拟网卡vip

(5)调整proc响应参数

(6)刷新

2.部署备keepalived服务器

(二)部署节点服务器

1.部署web服务器1

(1)关闭防火墙和安全机制

(2)安装并开启服务

(3)配置站点文件

(4)配置虚拟vip

(5)重启网络服务,开启虚拟网卡

(6)设置路由

(7)调整 proc 响应参数

(8)刷新

2.部署web服务器2

(三)客户机测试

2.主keepalived服务器

3.备keepalived服务器

3.断开主keepalived服务器


一、概述

(一)群集特性

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

1.负载均衡

        LVS   Nginx   HAProxy  F5等

2.健康检查(探针)

        for调度器/节点服务器     Keepalived    Heartbeat

3.故障转移  

        通过VIP漂移实现主备切换

(二)Keepalived

专为LVS和HA设计的健康检测工具

1.作用      

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

(1)支持故障自动转移
(2)支持节点健康状态检查

2.工作原理

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

3.Keepalived体系主要模块及其作用

       keepalived体系架构中主要有三个模块,分别是core、check和vrrp

(1)core模块

       为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。

(2)check模块

       负责健康检查,常见的方式有端口检查及URL检查。(节点服务器的健康检查)

(3)vrrp模块

       是来实现VRRP协议的。(调度器之间的健康检查和主备切换)

4.健康检查(探针)的方式

(1)发送心跳消息
(2)TCP端口检查

       向目标主机的 IP:PORT 发起TCP连接请求,如果TCP连接三次握手成功则认为健康检查探测成功,否则认为健康检查探测失败

(3)HTTP URL检查

       向目标主机的 http://IP:PORT/URL路径 发送 HTTP GET 请求方法,如果响应消息是2XX 3XX状态码则认为健康检查探测成功

(三)脑裂故障

1.现象

       主服务器和备服务器同时拥有VIP

2.原因

        因为主服务器和备服务器之间的通信链路中断,导致备服务器无法收到主服务器发送的VRRP通告消息,备服务器误认为主服务器故障了并通过IP命令生成VIP

3.解决

       关闭主服务器或备服务器其中一个的keepalived服务

4.预防方法

(1)主服务器和备服务器之间添加双链路通信

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

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

(四)keepalived的抢占与非抢占模式

1.抢占模式

        MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来。

2.非抢占模式

       MASTER恢复后不抢占BACKUP升级为MASTER后的VIP。

3.注意点

       非抢占式俩节点state必须为bakcup,且必须配置nopreempt。这样配置后,我们要注意启动服务的顺序,优先启动的获取master权限,与优先级没有关系了。

二、部署LVS+Keepalived

(一)部署负载调度服务器

1.部署主keepalived服务器

(1)关闭防火墙和安全机制
systemctl stop firewalld
#关闭防火墙
setenforce 0
#关闭安全机制

(2)安装服务
yum install ipvsadm keepalived -y

(3)修改配置文件
cd /etc/keepalived/
#切换目录
cp keepalived.conf keepalived.conf.bak
#备份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
}
 
vrrp_instance VI_1 {				#定义VRRP热备实例参数
--20行--修改,指定热备状态,主为MASTER,备为BACKUP
    state MASTER
--21行--修改,指定承载vip地址的物理接口
    interface ens33
--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	
    virtual_router_id 51
--23行--修改,指定优先级,数值越大优先级越高,主为100,备为99
    priority 100
    advert_int 1					#通告间隔秒数(心跳频率)
    authentication {				#定义认证信息,每个热备组保持一致
		auth_type PASS				#认证类型
--27行--修改,指定验证密码,主备服务器保持一致
        auth_pass 1111
    }
    virtual_ipaddress {				#指定群集vip地址
        192.168.233.200

(4)启动服务、查看虚拟网卡vip
systemctl start keepalived
#开启服务

(5)调整proc响应参数

   关闭Linux内核的重定向参数响应

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
#关闭Linux内核的重定向参数响应

(6)刷新
sysctl -p
#刷新

2.部署备keepalived服务器

备keepalived服务器与主keepalived服务器部署一致不再赘述

(二)部署节点服务器

1.部署web服务器1

(1)关闭防火墙和安全机制
systemctl stop firewalld
#关闭防火墙
setenforce 0
#关闭安全机制

(2)安装并开启服务
yum -y install httpd
systemctl start httpd

(3)配置站点文件
echo 'this is web01 page!' > /var/www/html/index.html
#web1节点服务器的站点文件
echo 'this is web02 page!' > /var/www/html/index.html
#web2节点服务器的站点文件

(4)配置虚拟vip
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
   DEVICE=lo:0
   ONBOOT=yes
   IPADDR=192.168.233.200
   NETMASK=255.255.255.255

(5)重启网络服务,开启虚拟网卡
systemctl restart network
#重启网络
ifup lo:0
ifconfig lo:0
#开启虚拟网卡

(6)设置路由
route add -host 192.168.80.188 dev lo:0

(7)调整 proc 响应参数
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
    #添加系统只响应目的IP为本地IP的ARP请求
    #系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP

(8)刷新
sysctl -p

2.部署web服务器2

web服务器2的部署与web服务器1一致,不再赘述

(三)客户机测试

1.客户机访问测试

2.主keepalived服务器

此时VIP在主服务器上

3.备keepalived服务器

此时VIP不在备服务器上

3.断开主keepalived服务器

此时VIP不在主服务器上

systemctl stop keepalived.service
#关闭主服务器

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WebGL开发三维解剖学应用

开发基于 WebGL 的三维解剖学应用通常涉及以下步骤。这些步骤包括创建三维模型、整合交互性、优化性能等,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.三维模型创建: 首先&#xff0…

Pytorch项目,肺癌检测项目之二

diameter_dict{} with open(/xunlian/annotations.csv ,‘r’) as f: for row in list(csv.reader(f)[1:]): series_uid row[0] annotationCenter_xyz tuple([float(x) for x in row[1:4]]) annotationDiameter_mm float(row[4]) diameter_dict.setdefault(seri…

【GIS前言技术】甘肃积石山6.2级地震烈度图

12月18日23时59分,甘肃临夏州积石山县发生6.2级地震。地震发生后,应急管理部组织中国地震局派出地震现场工作队,依照《地震现场工作:调查规范》(GB/T 18208.3-2011)、《中国地震烈度表》(GB/T 17742-2020)&…

josef约瑟 电流继电器 RL-D1 电压AC220V 整定范围0-9.99AAC

系列型号 RL-D1型电流继电器; RL-D2型电流继电器; 基本参数 RL-D系列电流继电器用于发电机、变压器和输电线的过负荷和短路保护装置中作为启动元件。本继电器为集成电路型继电器,精度高、功耗小、动作时间快, 返回系数高、整定…

0.618算法和基于Armijo准则的线搜索回退法

0.618代码如下: import math # 定义函数h(t) t^3 - 2t 1 def h(t): return t**3 - 2*t 1 # 0.618算法 def golden_section_search(a, b, epsilon): ratio 0.618 while (b - a) > epsilon: x1 b - ratio * (b - a) x2 a ratio * (b - a) h_…

九:爬虫-MongoDB基础

MongoDB介绍 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其…

Java设计模式-原型模式

目录 一、克隆羊问题 二、传统方式解决 三、基本介绍 四、浅拷贝和深拷贝 (一)浅拷贝介绍 (二)深拷贝 五、原型模式深拷贝 (一)重写clone方法 (二)对象序列化 六、注意事项…

法线贴图实现地形模型皱褶、凹凸不平的纹理效果

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 法线贴图在3D建模中扮演着重要的角色,它通过模拟表面的微…

es倒排索引以及分词

单词词典(Term Dictionary)是倒排索引的重要组成记录所有文档的单词,一般都比较大 记录单词到倒排排列表的关联信息 倒排列表(Posting List)记录了单词对应的文档集合,由倒排索项( Posting )组成倒排索项( Posting)主要包含如下信息: 文档Id&#xff0c…

前端基础location的使用

概念 获取当前页面的地址信息,还可以修改某些属性,实现页面跳转和刷新等。 样例展示 window.location 含义.originURL 基础地址,包括协议名、域名和端口号.protocol协议 (http: 或 https:).host域名端口号.hostname域名.port端口号.pathname路…

postMessage——不同源的网页直接通过localStorage/sessionStorage/Cookies——技能提升

最近遇到一个问题,就是不同源的两个网页之间进行localstorage或者cookie的共享。 上周其实遇到过一次,觉得麻烦就让后端换了种方式处理了,昨天又遇到了同样的问题。 使用场景 比如从网页A通过iframe跳转到网页B,而且这两个网页…

[C语言]程序练习(一)

你好,这里是争做图书馆扫地僧的小白。 个人主页:争做图书馆扫地僧的小白_-CSDN博客 目标:希望通过学习技术,期待着改变世界。 目录 前言 一、常量练习 (一)整型常量 (二)浮点型常…

H266/VVC帧内预测编码

预测编码技术 预测编码(Prediction Coding)是指利用已编码的一个或多个样本值,根据某种模型或方法,对当前的样本值进行预测,并对样本真实值和预测值之间的差值进行编码。 视频中的每个像素看成一个信源符号&#xff…

点击筛选框动态增加 多条可输入Table列 以及通过操作数组改造数据

点击筛选框动态增加 多条可输入Table列 以及通过操作数组改造数据 <el-col :span"8" class"tab_group"><el-form-item label"动态筛选"><el-select v-model.trim"ruleForm.flowType" placeholder"请选择" …

什么是Vue的生命周期 ?

使用最多的&#xff1a; created&#xff1a;进行axiosmounted&#xff1a;挂载元素内dom节点的获取&#xff1b; 新老版本生命周期对比 区别: Componsition API中,生命周期是从vue中导出的,需要用到的要进行导入,setup除外 除setup外,其他的生命周期都是写在setup中 setu…

【XML】TinyXML 详解

1、简介 优点&#xff1a; TinyXML 是一个简单、小型的 C XML 解析器&#xff0c;可以轻松集成到项目中。 TinyXML 解析 XML 文档&#xff0c;并根据该文档构建可读取、修改和保存的文档对象模型 (DOM) TinyXML 是在 ZLib 许可下发布的&#xff0c;因此可以在开源或商业代码中…

非阻塞 IO(NIO)

文章目录 非阻塞 IO(NIO)模型驱动程序应用程序模块使用 非阻塞 IO(NIO) 上一节中 https://blog.csdn.net/tyustli/article/details/135140523&#xff0c;使用等待队列头实现了阻塞 IO 程序使用时&#xff0c;阻塞 IO 和非阻塞 IO 的区别在于文件打开的时候是否使用了 O_NONB…

使用宝塔面板部署前端项目到服务器

目录 文章目录 前言 一、第一步&#xff1a;创建文件夹 二、第二步&#xff1a;部署前端项目 三、第三步&#xff1a;打开防火墙 文章目录 前言第一步&#xff1a;创建文件夹第二步&#xff1a;部署前端项目第三步&#xff1a;打开防火墙总结 前言 在此之前&#xff0c;我…

Ubuntu 常用命令之 exit 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 exit命令在Ubuntu系统下用于结束一个终端会话。它可以用于退出当前的shell&#xff0c;结束当前的脚本执行&#xff0c;或者结束一个ssh会话。 exit命令的参数是一个可选的整数&#xff0c;用于指定退出状态。如果没有指定&#…

如何将阿里通义千问大模型AI接入自己的项目里

如何将阿里通义千问大模型AI接入自己的项目里 一、阿里通义千问大模型API二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、阿里通义千问大模型API 基于阿里通义千问大模型AI的智能…