LVS+Keepalived群集

news2025/7/6 18:07:11

目录

一.keeepalived工具介绍

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

1.2 Keepalived实现原理剖析

1.3 VRRP工作过程

1.4 Keepalived,VRRP及其工作原理

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

二、LVS+Keepalived 高可用群集的搭建步骤

1、配置负载调度器(主、备相同;192.168.160.30;192.168.160.31)

1.1 配置keeplived(主、备DR 服务器上都要设置)

1.2 配置分发策略(keepalived配置好后,可以不用再配ipvsadm 分发策略)

1.3 调整内核 proc 响应参数,关闭linux内核的重定向参数响应

2、部署共享存储(NFS服务器:192.168.160.70)

3、配置节点服务器(192.168.160.50;192.168.160.60)

4、测试验证

三、实例操作:LVS+Keepalived 高可用群集

1、配置负载调度器(主、备相同;192.168.160.30;192.168.160.40)

1.1 关闭防火墙并安装ipvsadm和keepalived工具

1.2 配置keeplived(主、备DR 服务器上都要设置)

1.3 调整内核 proc 响应参数,关闭linux内核的重定向参数响应

2、部署共享存储(NFS服务器:192.168.160.70)

3、配置节点服务器(192.168.160.50;192.168.160.60)

4、测试验证


一.keeepalived工具介绍

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

1. 支持故障自动切换(Failover)
2. 支持节点健康状态检查(Health Checking)

判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到backup 节点保证业务正常,当master故障主机恢复后将其重新加入群集并且业务重新切换回master节点。

1.2 Keepalived实现原理剖析

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

VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案

1. 由多台路由器组 成一个热备组,通过共用的虚拟IP地址对外提供服务
2. 每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态
3. 若当前在线的路由器 失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供       服务

1.3 VRRP工作过程

1.  选举Master,比较优先级,高的为Master,若优先级相同无Master时,比较接口IP地址,大的      为Master,Master设备发送ARP报文,承担报文转发工作;

2.  状态维持,Master设备周期发送通告报文,公布配置信息和工作状态;

3.  Backup设备根据收到的通告报文判断Master设备是否工作正常,如果Master设备主动放弃             Master地位时,会发送优先级为0的通告报文,Backup设备收到后会快速切换成Master设备或       者定时器超时后Backup设备认为Master设备无法正常工作,会切换状态为Master。

1.4 Keepalived,VRRP及其工作原理

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

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

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

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

core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
vrrp模块:是来实现VRRP协议的。
check模块:负责健康检查,常见的方式有端口检查及URL检查

二、LVS+Keepalived 高可用群集的搭建步骤

环境准备

主DR 服务器: 192.168.160.30
备DR 服务器: 192.168.160.40
Web 服务器1: 192.168.160.50
Web 服务器2: 192.168.160.60
nfs 服务器: 192.168.160.70
客户端:192.168.160.1
vip:192.168.160.31

1、配置负载调度器(主、备相同;192.168.160.30;192.168.160.31)

systemctl stop firewalld.service
setenforce 0
 
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs

1.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
}
 
vrrp_instance VI_1 {                #定义VRRP热备实例参数
--20行--修改,指定热备状态,主为MASTER,备为BACKUP
    state MASTER
--21行--修改,指定承载vip地址的物理接口
    interface ens33
--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致
    virtual_router_id 10
--23行--修改,指定优先级,数值越大优先级越高,主为100,备为99
    priority 100
    advert_int 1                    #通告间隔秒数(心跳频率)
    authentication {                #定义认证信息,每个热备组保持一致
        auth_type PASS              #认证类型
--27行--修改,指定验证密码,主备服务器保持一致
        auth_pass abc123
    }
    virtual_ipaddress {             #指定群集vip地址
        192.168.160.31
    }
}
--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 192.168.160.31 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.160.50 80 {
        weight 1                    #节点的权重
--45行--删除,添加以下健康检查方式       
        TCP_CHECK {
            connect_port 80         #添加检查的目标端口
            connect_timeout 3       #添加连接超时(秒)
            nb_get_retry 3          #添加重试次数
            delay_before_retry 4    #添加重试间隔
        }
    }
 
    real_server 192.168.160.60 80 {     #添加第二个 Web节点的地址、端口
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
        }
    }
##删除后面多余的配置##
}
 
systemctl start keepalived
ip addr show dev ens33              #查看虚拟网卡vip

1.2 配置分发策略(keepalived配置好后,可以不用再配ipvsadm 分发策略)

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
 
ipvsadm -C
ipvsadm -A -t 192.168.160.31:80 -s rr
ipvsadm -a -t 192.168.160.31:80 -r 192.168.160.50:80 -g
ipvsadm -a -t 192.168.160.31:80 -r 192.168.160.60:80 -g
ipvsadm
 
ipvsadm -ln
ipvsadm-save > /etc/sysconfig/ipvsadm
 
#如果没有vip的分发策略。则重启keepalived 服务

1.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

2、部署共享存储(NFS服务器:192.168.160.70)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 
yum install nfs-utils rpcbind -y
systemctl start nfs.service
systemctl start rpcbind.service
systemctl enable nfs.service
systemctl enable rpcbind.service
 
mkdir /opt/mcl /opt/long
chmod 777 /opt/mcl /opt/long
 
vim /etc/exports
/usr/share *(ro,sync)
/opt/mcl 192.168.160.0/24(rw,sync)
/opt/long 192.168.160.0/24(rw,sync)
 
--发布共享---
exportfs -rv

3、配置节点服务器(192.168.160.50;192.168.160.60)

systemctl stop firewalld
setenforce 0
 
yum -y install httpd
systemctl start httpd
 
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.160.31
NETMASK=255.255.255.255
 
service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0
route add -host 192.168.160.31 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
--192.168.160.50---
mount.nfs 192.168.160.70:/opt/mcl /var/www/html
 
--192.168.2.105---
mount.nfs 192.168.160.70:/opt/long /var/www/html

4、测试验证

在客户端访问http://190.368.160.31

再在主服务器关闭 keepalived 服务后在测试(systemctl stop keepalived)

三、实例操作:LVS+Keepalived 高可用群集

1、配置负载调度器(主、备相同;192.168.160.30;192.168.160.40)

1.1 关闭防火墙并安装ipvsadm和keepalived工具

主DR 服务器: 192.168.160.30

备DR 服务器: 192.168.160.40

1.2 配置keeplived(主、备DR 服务器上都要设置)

主DR 服务器: 192.168.160.30

备DR 服务器: 192.168.160.40

1.3 调整内核 proc 响应参数,关闭linux内核的重定向参数响应

主DR 服务器: 192.168.160.30

备DR 服务器: 192.168.160.40

2、部署共享存储(NFS服务器:192.168.160.70)

3、配置节点服务器(192.168.160.50;192.168.160.60)

Web 服务器1: 192.168.160.50

Web 服务器2: 192.168.160.60

4、测试验证

在客户端访问 http://192.168.160.31

要等一会再刷新

再在主服务器关闭 keepalived 服务后在测试(systemctl stop keepalived)


 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目管理(PMO的作用)

项目管理办公室 (PMO) 是对与项目相关的治理过程进行标准化,并促进资源、方法论、工具和技 术共享的一个组织结构。PMO 的职责范围可大可小,从提供项目管理支持服务,到直接管理一个 或多个项目。 PMO的三种类型: PMO的作用&#…

ppt背景图片怎么设置?6步教你快速搞定!

在制作 ppt的过程中,需要将一些内容进行设置,来保证整体美观,也就是将背景图片设置好。背景图片设置的好,可以很好地体现页面上的内容,提高页面上的内容展示效果。所以大家在制作 ppt时,需要将一些背景图片…

进程和线程详解

目录 前言: 操作系统定位 并发 并行 并发 进程 描述 PCB 管理 内存管理 进程间通信 线程 小结: 前言: 当一个程序运行起来时,操作系统要为之分配一些资源,这样的运行起来的程序称之为一个进程。为了有效解…

huffman编译码

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 利用哈夫曼编码进行信息通信可以较大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码;在接收端将传来的数据进行译码(复原)。对…

Python期末复习题:文件

Python期末复习题:文件 文章目录Python期末复习题:文件一、二手房数据统计二、学生成绩统计一、二手房数据统计 附件文件house.csv 中存储一些二手房数据,中文编码为GBK,对文件中的数据进行统计分析。 文件中数据格式如下所示&…

理解Attention机制的query key value

背景 在Attention机制引入前,自然语言处理里的深度学习模型有以下缺点: 长序列的推理存在信息损失/梯度消失:输入序列越长,模型越难保存初始输入信息。运算量大并且不能并行:RNN的每一步推理都是基于上一个步的结果。…

Python小游戏自己动手编写,你能写出几个(分享版)

今天分享一个有趣的Python游戏库freegames,它里面包含经典小游戏,像贪吃蛇、吃豆人、等等。可以通过1行代码重温这些童年小游戏,后面还会分享源码,可以自己学习游戏编写,相信你会超有成就感! Paint 涂鸦 在…

Springboot Websocket一般封装方法

此方法不是唯一&#xff0c;只是自己对于Springboot中关于Websocket处理思路比较清晰的一种&#xff0c;在此记录下来。总共不过就四个文件而已。 一、创建Springboot项目&#xff0c;添加不可或缺的pom <dependency><groupId>org.springframework.boot</grou…

内存模块 --- 基础扫盲

SDRAM synchronous dynamic random-access memory 同步动态随机存储器 同步&#xff1a;需要同步时钟支持工作&#xff0c;内部命令的发送与数据的传输都是以这个时钟为基准 动态&#xff1a;内部的存储阵列需要不断地刷新来保证数据不丢失 随机&#xff1a;可以自由地在指定地…

MyBatis进阶版

本文有点难 目录 1.一些区分 1.1参数占位符#{}和${} 1.1.1SQL注入 1.1.2like查询 1.2resultType和resultMap 2.映射查询 2.1一对一表映射 2.2一对多表映射 3.动态SQL 3.1标签 3.2标签 3.3标签 3.4标签 3.5标签 1.一些区分 1.1参数占位符#{}和${} ①什么是#{}&a…

【CSS】表布局,浮动布局

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录表布局表层表标题(caption)border-collapse边框隐藏表大小table-layout(表宽度)vertical-align例…

你安全吗?丨虎云系统“后门”

作者&#xff1a;黑蛋 在电视剧《你安全吗&#xff1f;》中&#xff0c;马平川这个人物已经慢慢浮出水面&#xff0c;算是此部电视剧幕后的最大反派&#xff0c;他明面上是虎迫集团的技术总监&#xff0c;是虎云系统的负责人&#xff0c;开发者。背后却在泰曼达有着诈骗基地&a…

2022年11月21日13:32:00——T5——JS对象与Date日期函数

1、JavaScrip对象的使用&#xff1a; /** * 1、对象的声明赋值使用的是{}花括号&#xff0c;大括号 * 2、对象中的值以key:value的格式进行赋值&#xff0c;多个值中间使用【,】区分 * 3、获取对象中的值的方法需要通过[]并给与key名的方式获取&…

电脑怎么设置开机密码?简单几步给你的电脑“上锁”

在我们日常生活中&#xff0c;最常见的就是开机密码了&#xff0c;而电脑作为我们使用频率最高也是最复杂的设备&#xff0c;其安全性也是非常重要的&#xff0c;那么电脑怎么设置开机密码&#xff1f;那么今天我们就来说一说开机密码的设置方法&#xff01;为了更安全&#xf…

Essay写作字数怎么正确进行删减?

对于留学生来说&#xff0c;Essay写作伴随着整个留学生活。正因为留学生大量的Essay作业&#xff0c;不少留学生为了规定的Essay字数而发愁&#xff0c;毕竟既不能写得太少&#xff0c;又不能写得太多&#xff0c;所以很纠结。那么如何根据老师规定的字数进行删减呢&#xff1f…

Talk | 微软亚洲研究院宋恺涛南大余博涛:面向文本/音乐序列任务的Transformer注意力机制设计

本期为TechBeat人工智能社区第456期线上Talk&#xff01; 北京时间11月22日(周二)20:00&#xff0c;微软亚洲研究院研究员——宋恺涛与南京大学硕士研究生——余博涛的Talk将准时在TechBeat人工智能社区开播&#xff01; 他们与大家分享的主题是: “面向文本/音乐序列任务的Tra…

String类_Java(一)

作者&#xff1a;爱塔居的博客_CSDN博客-JavaSE领域博主 专栏&#xff1a;JavaSE &#x1f33c;作者简介&#xff1a;大三学生&#xff0c;希望跟大家一起进步&#xff01; 文章目录 目录 文章目录 前言 一、构造字符串 二、Sring对象的比较 2.1 比较是否引用同一对象 2.2 比较…

跨平台编译工具--CMake上手教程

文章目录一、引入二、基本关键字1.PROJECT2.SET3.MESSAGE4.ADD_EXECUTABLE5.ADD_SUBDIRECTORY(1)使用(2)CMakeLists执行顺序(3)输出文件的位置6.INSTALL(1)安装文件(2)安装非目标文件可执行文件(3)安装目录(4)安装指令7.ADD_LIBRARY8.SET_TARGET_PROPERTIES三、语法的基本规则四…

知识引擎藏经阁天花板——高性能Java架构核心原理手册

开场 本书是按照程序设计与架构的顺序编写的&#xff0c;共13章。 第1章介绍学习高性能Java应了解的核心知识&#xff0c;为前置内容。 第2章和第3章讲解在编写代码之前&#xff0c;如何高效地为My SQL填充亿级数据&#xff0c;并对My SQL进行基准测试&#xff0c;以便在之后…

Linux-awk和printf

printf printf ‘输出类型输出格式’ 输内容 输出类型&#xff1a; %ns 输出字符串&#xff0c;n是数字指代输出几个字符 %ni 输出整数&#xff0c;n是数字&#xff0c;指代输出几个数字 %m.nf 输出浮点数&#xff0c;m和n是数字&#xff0c;指代输出总位数和小数位数&#xf…