LVS+Keepalived 高可用集群

keepalived+lvs KeepalivedLVS是两个常用于构建高可用、高性能服务器集群的开源工具,通常结合使用以实现负载均衡和故障转移。Keepalived通过VRRP协议实现主备节点冗余,并管理虚拟IP(VIP)和健康检查,确保高可用性。LVS作为内核级负载均衡器,支持多种调度算法,将客户端请求分发到后端服务器集群,提供高性能的负载均衡。两者协同工作时,Keepalived管理VIP和健康检查,LVS负责流量分发,实现无缝故障转移。典型应用场景包括Web服务器集群、数据库高可用、微服务架构和金融/电商系统。 阅读详情

一.Keepalived工具介绍

1.支持故障自动切换(Failover)

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

3.基于vrrp协议完成地址流动

4.为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)

5.为ipvs集群的各RS做健康状态检测

6.基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy等服务 

7.官方网站:https://keepalived.org/

8.用户空间核心组件:

  1. vrrp stack:VIP消息通告
  2. checkers:监测real server(简单来说 就是监控后端真实服务器的服务)
  3. system call:实现 vrrp 协议状态转换时调用脚本的功能
  4. SMTP:邮件组件(报警邮件)
  5. IPVS wrapper:生成IPVS规则(直接生成ipvsadm)
  6. Netlink Reflector:网络接口(将虚拟地址ip(vip)地址飘动)

9.WatchDog:监控进程(整个架构是否有问题)

控制组件:提供keepalived.conf 的解析器,完成Keepalived配置

IO复用器:针对网络目的而优化的自己的线程抽象

内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限

二.vrrp协议(虚拟路由冗余协议)

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

1.vrrrp是什么

是针对路由器的一种备份解决方案

由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务

每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态

若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

2.vrrp工作过程

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

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

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

3.Keeplived、VRRP及其工作原理

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

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

4.Keepalived体系主要模块

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

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

vrrp模块:是来实现VRRP协议的。

check模块:负责健康检查,常见的方式有端口检查及URL检查。

三.实验:搭建LVS+Keepalived 高可用集群

实验环境:

主keepalived服务器:172.16.23.10
备keepalived服务器:172.16.23.11
web1服务器:172.16.23.12
web2服务器:172.16.23.13
vip:172.16.23.100
客户机:172.16.23.200

配置负载调度器(主keepalived服务器:172.16.23.10

############################ 配置Keepalived master服务器 #################################
 
1. #关闭防火墙
systemctl stop firewalld.service
setenforce 0
 
2. #安装服务
yum install ipvsadm keepalived -y 
 
3. #修改配置文件keeplived.conf
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,备为90
    priority 100
    advert_int 1					#通告间隔秒数(心跳频率)
    authentication {				#定义认证信息,每个热备组保持一致
		auth_type PASS				#认证类型
--27行--修改,指定验证密码,主备服务器保持一致
        auth_pass 123456
    }
    virtual_ipaddress {				#指定群集vip地址
        172.16.23.100
    }
}
--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 172.16.23.100 80 {
    delay_loop 6					#健康检查的间隔时间(秒)
    lb_algo rr						#指定调度算法,轮询(rr)
--39行--修改,指定群集工作模式,直接路由(DR)
    lb_kind DR
    persistence_timeout 50			#连接保持时间(秒)
    protocol TCP					#应用服务采用的是 TCP协议
--43行--修改,指定第一个Web节点的地址、端口
    real_server 172.16.23.12 80 {
        weight 1					#节点的权重
--45行--删除,添加以下健康检查方式		
        TCP_CHECK {
			connect_port 80			#添加检查的目标端口
			connect_timeout 3		#添加连接超时(秒)
			nb_get_retry 3			#添加重试次数
			delay_before_retry 3	#添加重试间隔
		}
	}
 
	real_server 172.16.23.13 80 {		#添加第二个 Web节点的地址、端口
        weight 1
        TCP_CHECK {
			connect_port 80
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
		}
	}
}
##删除后面多余的配置##
 
4. #启动服务、查看虚拟网卡vip
systemctl start keepalived
ip addr show dev ens33	
 
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
 
6. #刷新一下
sysctl -p
 
############################# 配置ipvsadm #################################
 
7. #配置负载分配策略,并启动服务
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
 
8. 
#清空ipvsadm,并做策略
ipvsadm -C
ipvsadm -A -t 172.16.23.100:80 -s rr
ipvsadm -a -t 172.16.23.100:80 -r 172.16.23.12:80 -g
ipvsadm -a -t 172.16.23.100:80 -r 172.16.23.13:80 -g
 
9. #保存设置
ipvsadm
ipvsadm -ln
ipvsadm-save >/etc/sysconfig/ipvsadm

配置负载调度器(备keepalived服务器:172.16.23.11)

 配置与主服务器相似,不再进行解释

############################ 配置Keepalived master服务器 #################################
 
1. #关闭防火墙
systemctl stop firewalld
setenforce 0
 
2. #安装服务
yum -y install ipvsadm keepalived
 
3. #修改配置文件keeplived.conf
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_02
}
 
vrrp_instance VI_1 {				#定义VRRP热备实例参数
--20行--修改,指定热备状态,主为MASTER,备为BACKUP
    state BACKUP
--21行--修改,指定承载vip地址的物理接口
    interface ens33
--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	
    virtual_router_id 10
--23行--修改,指定优先级,数值越大优先级越高,主为100,备为90
    priority 90
    advert_int 1					#通告间隔秒数(心跳频率)
    authentication {				#定义认证信息,每个热备组保持一致
		auth_type PASS				#认证类型
--27行--修改,指定验证密码,主备服务器保持一致
        auth_pass 123456
    }
    virtual_ipaddress {				#指定群集vip地址
        172.16.23.100
    }
}
--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 172.16.23.100 80 {
    delay_loop 6					#健康检查的间隔时间(秒)
    lb_algo rr						#指定调度算法,轮询(rr)
--39行--修改,指定群集工作模式,直接路由(DR)
    lb_kind DR
    persistence_timeout 50			#连接保持时间(秒)
    protocol TCP					#应用服务采用的是 TCP协议
--43行--修改,指定第一个Web节点的地址、端口
    real_server 172.16.23.12 80 {
        weight 1					#节点的权重
--45行--删除,添加以下健康检查方式		
        TCP_CHECK {
			connect_port 80			#添加检查的目标端口
			connect_timeout 3		#添加连接超时(秒)
			nb_get_retry 3			#添加重试次数
			delay_before_retry 3	#添加重试间隔
		}
	}
 
	real_server 172.16.23.13 80 {		#添加第二个 Web节点的地址、端口
        weight 1
        TCP_CHECK {
			connect_port 80
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
		}
	}
}
##删除后面多余的配置##
 
4. #启动服务、查看虚拟网卡vip
systemctl start keepalived
ip addr show dev ens33	
 
5. #调整proce响应参数,关闭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
 
6. #刷新一下
sysctl -p
 
############################# 配置ipvsadm #################################
 
7. #配置负载分配策略,并启动服务
ipvsadm-save >/etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
 
8. #清空ipvsadm,并做策略
ipvsadm -C
ipvsadm -A -t 172.16.23.100:80 -s rr
ipvsadm -a -t 172.16.23.100:80 -r 172.16.23.12:80 -g
ipvsadm -a -t 172.16.23.100:80 -r 172.16.23.13:80 -g
 
9. #保存设置
ipvsadm
ipvsadm -ln
ipvsadm-save >/etc/sysconfig/ipvsadm

配置节点服务器(web1服务器:172.16.23.12)

1. #关闭防火墙
systemctl stop firewalld
setenforce 0
 
2. #安装并开启httpd服务
yum -y install httpd
systemctl start httpd
 
3. #配置站点文件
vim /var/www/html/index.html
this is web1
 
4. #配置虚拟vip
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=172.16.23.100
NETMASK=255.255.255.255
 
5. #重启网络服务,开启虚拟网卡
systemctl restart network
ifup lo:0
ifconfig lo:0
 
6. #设置路由
route add -host 172.16.23.100 dev lo:0
route -n
 
7. #调整 proc 响应参数
#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
 
8. #刷新proc参数
sysctl -p

配置节点服务器(web2服务器:172.16.23.13)

配置与web1相似,不再进行解释 

1. #关闭防火墙
systemctl stop firewalld
setenforce 0
 
2. #安装并开启httpd服务
yum -y install httpd
systemctl start httpd
 
3. #配置站点文件
vim /var/www/html/index.html
this is web2
 
4. #配置虚拟vip
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=172.16.23.100
NETMASK=255.255.255.255
 
5. #重启网络服务,开启虚拟网卡
systemctl restart network
ifup lo:0
ifconfig lo:0
 
6. #设置路由
route add -host 172.16.23.100 dev lo:0
route -n
 
7. #调整 proc 响应参数
#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
 
8. #刷新proc参数
sysctl -p

测试验证:

在客户机上测试(客户机:172.16.23.200)

Keepalived+LVS+nginx搭建nginx高可用集群 nginx接收到的请求可以通过负载均衡策略分发到其下一级的应用服务器,这些服务器 一般是以集群方式部署的,因而在性能不足的情况下,应用服务器可以通过加机器的方式扩 展流量。此时,对于一些特大型的网站,性能的瓶颈就来自于nginx了,因为单机的nginx的 并发能力是有上限的,而nginx本身是不支持集群模式的,因而此时对nginx的横向扩展就显 得尤为重要。lvs是一款用于四层负载均衡的工具。 阅读详情

相关推荐

华为OD机考双机位A卷 - 流浪地球(Java & Python& JS & C/C++ & GO )

华为OD机考双机位A卷 - 流浪地球(OD上机考试双机位A卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 4005

LVS负载均衡之--Keepalived模式(超详细)

在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。--12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02。--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数。

weixin_42054864的博客 1408

【机器视觉】基于深度学习的托盘PCB识别与计数(有无、正反)

工业机器视觉是指在制造业和工业环境中使用计算机视觉技术来执行检测、测量、识别和控制任务。它结合了硬件(如相机、镜头、光源)与软件(图像处理算法)来自动完成传统上需要人工视觉的任务,从而提高生产效率、产品质量以及工作安全性。工业机器视觉系统通常具有高精度、高速度和高可靠性,能够适应恶劣的工作环境。

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 1万+

LVS+Keepalived详解

Keepalived首先做初始化先检查state状态,master为主服务器,backup为备服务器。然后再对比所有服务器的priority,谁的优先级高谁是最终的主服务器。优先级高的服务器会通过ip命令为自己的电脑配置一个提前定义好的浮动IP地址。

Guo_youyou的博客 2243

LVS+Keepalived

群集的含义 Cluster,集群、群集 由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机 问题 互联网应用中,随着站点对硬件性能、影响速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求 解决方法 使用价格昂贵的小型机、大型机 使用多台相对廉价的普通服务器构建集群通过整合多台服务器,使用lvs来达到服务器高可用和负载均衡,并以同一个IP地址对外提供相对的服务。企业群集分类 群集的三种类型负载均衡群集 高可用群集 高性能运

xiaol_csdn_xiaol的博客 3218

lvs+keepalived高可用集群

通过 LVSKeepalived 配置高可用集群,可以实现负载均衡和主备切换的高可用性架构。这种架构适用于需要高性能和高可用性的网站或应用场景。

linux 1845

LVS+Keepalived 高可用集群搭建

编写默认主页内容# 设置开机自启动# 进行测试。

2401_82745210的博客 1391

Keepalived+LVS高可用集群

如果主服务器发生故障,备用服务器(Backup)会根据 VRRP 协议接管 VIP,继续提供服务,从而实现无缝的故障转移,确保服务的持续性。通过持续监控后端服务器的状态,Keepalived 能及时发现故障服务器,并将其从负载均衡池中移除,避免向不可用的服务器发送请求,直到服务器恢复正常。它会修改数据包的源 IP 地址(SNAT)和目标 IP 地址(DNAT),使得后端真实服务器(Real Server)的网关需要设置为负载均衡器的 IP 地址。这种模式的优点是支持端口映射,配置相对简单,适合小规模集群

2403_86763298的博客 1827

LVS+Keepalived高可用集群

Keepalived 最初专为 LVS 负载均衡器设计,核心目标是解决单点故障问题,实现高可用性(HA)。

YUNYINGXIA的博客 1925

LVS+Keepalived 高可用集群搭建 (图文详解小白易懂)

高可用集群(High Availability Cluster)是以减少服务中断时间为目地的服务器集群技术它通过保护用户的业务程序对外不间断提供的服务,把因软件、硬件、人为造成的故障对业务的影响降低到最小程度。

weixin_66924350的博客 6255

Keepalived+LVS构建高可用集群

自定义位置#查看生成日志文件。

m0_75067030的博客 3145

LVS+Keepalived高可用集群搭建

本文详细介绍了基于LVS DR模式与Keepalived高可用负载均衡架构。核心原理包括VIP流量分发、ARP抑制机制和VRRP协议实现毫秒级故障转移。

2401_84202965的博客 1471

LVS + Keepalived 高可用集群

本文深入探讨了 LVS+Keepalived 高可用集群的构建与应用。LVS 作为内核级负载均衡器,通过 DR 模式实现高效的四层流量转发,结合 Keepalived 的 VRRP 协议与健康检查机制,保障服务的高可用性。实验通过绑定 VIP、配置 ARP 抑制、部署 Web 服务及主备节点配置,验证了集群的负载均衡、主备切换与故障恢复能力。实践表明,该方案在电商、数据库等场景中表现优异,相比 HAProxy/Nginx 具有更高吞吐量和更低资源消耗,适用于企业级高并发系统的流量调度与容灾需求。

a_2373179473的博客 1581

部署 LVS(nginx)+keepalived高可用负载均衡集群

本文详细介绍keepalived软件的用法,以及如何部署LVS+keepalived高可用集群、nginx+keepalived高可用集群、还有高可用集群的脑裂问题等等,希望对你有帮助!

十七拾的博客 5589

Keepalived+LVS实现高可用集群

KeepalivedLVSLinux Virtual Server)可以构建一个高度可靠且高性能的负载均衡,基于Keepalived实现故障自动检测与切换,一旦主 LVS 负载均衡器出现故障,Keepalived 会迅速检测到,确保服务的连续性,从而大大提高了整个系统的可用性。基于LVS强大的负载均衡能力实现在不同的业务场景和服务器性能,灵活选择合适的算法,将客户端请求均匀地分配到多个真实服务器上,充分利用服务器资源,提高系统的整体性能和吞吐量。

div3tengr的博客 1222

LVSKeepalived高可用集群

广义上高可用,狭义上是讲主机的冗余和管理,keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,他根据TCP/IP参考模型的第三、四、五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常或者工作出现故障,Keepalived将检测到并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成不需要人工干涉,需要人工完成的只是修复出现故障的服务节点,后来Keepalived又加入了VRRP功能。

EsDeath_99的博客 1249

LVS(DR模式)+ Keepalived 高可用集群

目录一. Keepalived的概述1.1 Keepalived的功能1.2 Keepalived 的热备方式二. LVS + Keepalived 高可用集群配置2.1 LVS + Keepalived 高可用集群的意义2.2 Keepalived + LVS 高可用集群实验规划2.3 配置主服务器2.31 调整/proc响应参数2.32 配置Keepalived 配置文件2.321 全局配置,热备配置2.322 WEB服务器池配置2.33 启动keepalived服务2.4 配置从调度器2.41 调整

weixin_48192495的博客 8391

辉凡刷刀体质【无需root】.zip

辉凡刷刀体质【无需root】.zip

上一篇: LVS-DR模式部署
下一篇: 数据库基本概念与安装MySQL数据库
Cloud034
博客等级 码龄3年 468粉丝 · 75原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值