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_02router_id LVS_01
}vrrp_instance VI_1 {				#定义VRRP热备实例参数
--20行--修改,指定热备状态,主为MASTER,备为BACKUPstate MASTER
--21行--修改,指定承载vip地址的物理接口interface ens33
--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	virtual_router_id 51
--23行--修改,指定优先级,数值越大优先级越高,主为100,备为99priority 100advert_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:0DEVICE=lo:0ONBOOT=yesIPADDR=192.168.233.200NETMASK=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.confnet.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.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
#关闭主服务器

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

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

相关文章

听GPT 讲Rust源代码--src/tools(21)

File: rust/src/tools/miri/src/shims/x86/mod.rs 在Rust的源代码中,rust/src/tools/miri/src/shims/x86/mod.rs文件的作用是为对x86平台的处理提供支持。它包含一些用于模拟硬件操作的shim函数和相关的类型定义。 具体来说,该文件中的函数是通过使用一组…

linux系统和网络(二):进程和系统时间

本文主要探讨linux系统进程和系统相关知识,本博客其他博文对该文章的部分内容有详细介绍 main函数 int main(int argc,char *argv[],char *envp[]); 操作系统下main执行前先执行引导代码,编译连接引导代码和程序连接在一起构成可执行程序,加载器将程序加载到内存中…

docker搭建mysql8.0.32,实现主从复制(一主两从)

安装docker的步骤、使用命令就不写了,本文章是基于会使用docker、linux基本命令的基础上来写的。 开始步骤: 1. 拉取 mysql 镜像 docker pull mysql:8.0.32 2. 启动容器并运行mysql a. 准备mysql的配置文件(该配置文件是:mysq…

【flink】状态清理策略(TTL)

flink的keyed state是有有效期(TTL)的,使用和说明在官网描述的篇幅也比较多,对于三种清理策略没有进行横向对比得很清晰。 全量快照清理(FULL_STATE_SCAN_SNAPSHOT)增量清理(INCREMENTAL_CLEANUP)rocksdb压缩清理(ROCKSDB_COMPACTION_FILTER) 注意&…

​ SK Ecoplant借助亚马逊云科技,海外服务器为环保事业注入新活力

在当今全球面临着资源紧缺和环境挑战的大背景下,数字技术所依赖的海外服务器正成为加速循环经济转型的关键利器。然而,很多企业在整合数字技术到运营中仍然面临着一系列挑战,依然存在低效流程导致的不必要浪费。针对这一问题,SK E…

flink使用sql-client-defaults.yml无效

希望在flink sql脚本启动时自动选择catalog,减少麻烦。于是乎配置sql-client-defaults.yaml: catalogs:- name: hive_catalogtype: icebergcatalog-type: hiveproperty-version: 1cache-enabled: trueuri: thrift://localhost:9083client: 5warehouse: …

Ubuntu 22.04 禁用(彻底移除)Snap

什么是Snaps Snaps 是 Ubuntu 的母公司 Canonical 于 2016 年 4 月发布 Ubuntu 16.04 LTS(Long Term Support,长期支持版)时引入的一种容器化的软件包格式。自 Ubuntu 16.04 LTS 起,Ubuntu 操作系统可以同时支持 Snap 及 Debian …

解决xcode 运行不老iPhone 15 iOS 17.1 设备的问题

问题 最近要查看一下ios 17.1的设备的性能,但是当前版本的Xcode运行不了 解决方法 1、更新Xcode版本到15.1以上 2、更新完成后,大概率出现这个情况 原因:在app Store中更新到Xcode15后,运行不了模拟器和真机.需要下载iOS 17对应的模拟器.&…

最新ChatGPT网站系统源码+AI绘画系统+支持GPT语音对话+详细图文搭建教程/支持GPT4.0/H5端系统/文档知识库

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

【数据结构之顺序表】

数据结构学习笔记---002 数据结构之顺序表1、介绍线性表1.1、什么是线性表? 2、什么是顺序表?2.1、概念及结构2.2、顺序表的分类 3、顺序表接口的实现3.1、顺序表动态存储结构的Seqlist.h3.1.1、定义顺序表的动态存储结构3.1.2、声明顺序表各个接口的函数 3.2、顺序表动态存储…

VM进行TCP/IP通信

OK就变成这样 vm充当服务端的话也是差不多的操作 点击连接 这里我把端口号换掉了因为可能被占用报错了,如果有报错可以尝试尝试换个端口号 注: 还有一个点在工作中要是充当服务器,要去网络这边看下他的ip地址 拉到最后面

vllm 加速推理通义千问Qwen经验总结

1. 简介 1.1. 功能说明 vLLM is a fast and easy-to-use library for LLM inference and serving. vLLM is fast with: State-of-the-art serving throughputEfficient management of attention key and value memory with PagedAttentionContinuous batching of incoming r…

TCP/IP:从数据包到网络的演变

引言 TCP/IP协议的起源可以追溯到20世纪60年代末和70年代初,美国国防部高级研究计划局(ARPA)研究开发一种可靠的通信协议,用于连接分散在不同地点的计算机和资源。 在当时,计算机之间的连接并不像现在这样普遍和便捷…

uniapp中使用封装步骤条组件

针对步骤条封装完终于清清楚楚啦 先看效果&#xff1a; 附上代码&#xff1a;使用可直接复用&#xff1a;数据是写在了当前组件中&#xff0c;如有必须&#xff0c;可以使用其中的props传值stepInfos传递相应的数据&#xff0c;根据steps步数就可以控制走到哪一步啦 <temp…

在Jetpack Compose中使用ExoPlayer进行直播流和音频均衡器

在Jetpack Compose中使用ExoPlayer进行直播流和音频均衡器 背景 ExoPlayer与Media3的能力结合&#xff0c;为Android应用程序播放多媒体内容提供了强大的解决方案。在本教程中&#xff0c;我们将介绍如何设置带有Media3的ExoPlayer来支持使用M3U8 URL进行直播流。此外&#x…

深度剖析:Golang中结构体方法的高级应用

深度剖析&#xff1a;Golang中结构体方法的高级应用 引言结构体方法的基础回顾结构体的定义和用法方法的定义和绑定基本语法和用法 高级特性与应用封装、继承和多态方法集与接口的关系结构体方法的匿名字段和嵌入结构体 性能优化与最佳实践接收器类型的选择&#xff1a;指针还是…

2016年第五届数学建模国际赛小美赛C题对超级细菌的战争解题全过程文档及程序

2016年第五届数学建模国际赛小美赛 C题 对超级细菌的战争 原题再现&#xff1a; 最近有很多关于我们抗生素耐药性危机的讨论。进化出的能够抵抗抗生素的细菌每年杀死70万人&#xff0c;越来越强大的细菌正在世界各地传播。研究人员担心&#xff0c;我们将进入一个后抗生素时代…

MACBOOK 通过iterm2连接堡垒机跳转服务器

本公司是通过齐治堡垒机连接远程服务器的环境&#xff0c;因为连接过程中需要自动输入密码和选择主机&#xff0c;所以要使用expect工具&#xff0c;编写expect脚本remote.exp #!/usr/bin/expectif { $argc ! 7 } {send_user "usage: expect $argv0 \[JUMP_HOST\] \[JUM…

【贪心算法】之 摆动序列(中等题)

实际操作上&#xff0c;其实连删除的操作都不用做&#xff0c;因为题目要求的是最长摆动子序列的长度&#xff0c;所以只需要统计数组的峰值数量就可以了&#xff08;相当于是删除单一坡度上的节点&#xff0c;然后统计长度&#xff09; 这就是贪心所贪的地方&#xff0c;让峰…

Sentinel 流量治理组件教程

前言 官网首页&#xff1a;home | Sentinel (sentinelguard.io) 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形…