简述Keepalived LVS 原理以及两者的优缺点对比分析

article/2023/6/4 14:35:38

前言

本文章主要围绕Keepalived,lvs的工作原理以及两者的优缺点进行对比分析。My BLOG:https://blog.itwk.cc

什么是Keepalived?

Keepalived是基于VRRP协议(Virtual Router Redundancy Protocol)是Linux下一个轻量级高可用解决方案(HA),其实两种不同的含义,广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管,可以实现服务或者网络的高可用,Keepalived主要是通过虚拟路由冗余来实现高可用功能,Keepalived部署和使用非常的简单,所有配置只需要一个配置文件即可完成。

什么是LVS?

LVS,全称 Linux Virtual Server,即Linux虚拟服务器,是一个虚拟的服务器集群系统,LVS是基于IP和基于请求内容分发的负载平衡调度方法,将一组服务器构成一个可以实现高可伸缩、高可用的虚拟服务器。一组服务器通过高速局域网或者地理分布的广域网连接,在它们的前端有一个负载调度器(Load Balancer,简称LB)。LB能无缝地将客户端发来的请求调度到提供真实服务的服务器上,此外可以通过在集群中添加节点的方式来提高系统的可伸缩性,通过对服务器状态的检测,及时重置系统,提高系统的高可用性。

Keepalived工作原理

Keepalived 通过将多个服务器组成一个虚拟服务地址,解决单点故障风险,并确保该服务地址总是可用的,从而提供高可用性的服务,实现原理主要包括以下几个方面:

VRRP(虚拟路由冗余协议)

Keepalived 使用 VRRP 协议来实现虚拟 IP 地址的高可用性,该协议允许多个路由器共同管理同一个虚拟IP地址,当其中一台路由器出现故障时,其他路由器可以接管该虚拟 IP 地址,以确保网络的连通性。

守护进程

在 Keepalived 中,每个服务器都运行一个守护进程,该进程负责与其他服务器通信,协调虚拟IP地址的分配和接管,并监控本地服务器的状态。

状态检测

为了保证虚拟IP地址的可用性,Keepalived 会定期检测各个服务器的状态,包括网络连接,CPU使用率,负载等指标,当某个服务器出现故障时,它将自动将虚拟 IP 地址转移到其他可用的服务器上。

角色切换

在 Keepalived 中,每个服务器都有一个角色,包括主服务器和备份服务器,主服务器负责处理客户端请求,备份服务器则处于待命状态。当主服务器出现故障时,备份服务器会接管主服务器的角色,并继续处理客户端请求,从而保证虚拟 IP 地址的可用性。

LVS

LVS(Linux Virtual Server)是一种基于 Linux 内核实现的负载均衡解决方案,它可以将客户端请求分配到多个后端服务器上,以提高服务的可用性和性能,其原理包括以下几个方面

调度算法

LVS 通过调度算法来决定将客户端请求转发到哪些后端服务器上,以实现负载均衡和高可用性。常见的调度算法包括轮询、最小连接数、源地址哈希等。

虚拟IP地址

LVS 提供了一个虚拟 IP 地址,客户端可以将请求发送到该 IP 地址,而不需要知道后端服务器的具体 IP 地址。

NAT(网络地址转换)

LVS 采用 NAT 技术对客户端请求进行转换,以隐藏后端服务器的真实 IP 地址。在 LVS 中,负载均衡器作为 NAT 网关,将客户端请求的目标 IP 地址修改为后端服务器的真实 IP 地址,并将请求转发给后端服务器。

状态检测

为了保证后端服务器的可用性,LVS 会定期检测后端服务器的连接状态,当后端服务器出现故障时,它将自动将请求转移到其他可用的服务器上。

优缺点

Keepalived优点

  1. 可以支持多种负载均衡协议,如 VRRP、IPVS 等,可以根据实际需求进行配置。
  2. 支持基于权重的负载均衡,可以根据服务器的处理能力分配请求。
  3. 配置简单,使用方便,可通过配置文件进行管理。
  4. 支持快速切换,当主服务器出现故障时,备份服务器可以快速接管其角色。

Keepalived缺点

  1. 性能较低,相比于 LVS,Keepalived 的性能较差。
  2. 不支持直接转发,需要通过TCP代理实现转发。
  3. 不支持SSL加密。

LVS的优点

  1. 高性能,可以支持数百万并发连接。
  2. 支持多种调度算法,可以根据实际需求进行配置。
  3. 支持直接转发,可以直接将请求转发到后端服务器。
  4. 支持SSL加密。

LVS的缺点

  1. 配置相对复杂,需要深入了解网络知识和调度算法。
  2. 可靠性较差,需要配合Keepalived等工具实现高可用性。
  3. 不支持UDP协议。

对比分析

性能方面

LVS的性能较高,可以支持数百万并发连接,而Keepalived的性能相对较差。

功能

LVS支持直接转发和SSL加密等功能,而Keepalived不支持直接转发,且不支持SSL加密。

可靠性

LVS的可靠性较差,需要配合Keepalived等工具实现高可用性,而Keepalived的可靠性较好,支持快速切换。

配置

LVS的配置相对复杂,需要深入了解网络知识和调度算法,而Keepalived的配置相对简单,使用方便,可通过配置文件进行管理。

支持协议

LVS支持TCP和 UDP协议而 Keepalived仅支持TCP。

总结

LVS和Keepalived各自具有一些优点和缺点,可以根据实际需求进行选择和配置,如果对性能要求较高,可以选择使用LVS

如果对配置和使用的便捷性要求较高,可以选择Keepalived,也可以将两者配合使用,以实现更高的可靠性和性能。

http://www.ngui.cc/article/show-1020568.html

相关文章

0.96OLED 4针IIC STM32-标准库版本(附源码)

0.96OLED 4针IIC STM32标准库版本 在前面已经介绍过,这里就不多说了,详情请见: 0.96OLED 4针IIC STM32HAL库版本 另外,本人在代码中封装了一个OLED显示的接口,方便开发者对字符显示位置的快速定位,以及像C…

2.27-3.29总结

三天都在搞项目中的两种分片上传 交流和学习过程主要都是和队长口头或网络交流 代码上一直在修改,测试

QT 下共享库(静态库和动态库)的使用

1.共享库介绍 1. 1静态函数库 1.1.1 库名称 window下格式为: *.a linux下格式为: *.a 1.1.2 特点 链接时被整合入目标代码。 1.1.3 优点 软件运行不再依赖外部库的支持,可以独立运行。 1.1.4 缺点 编译后生成的exe包含了整个库&…

如何注册Shopify商店

Shopify Shopify 是一个流行的电子商务平台,旨在帮助用户创建、运营和增长自己的在线商店。通过 Shopify,用户可以轻松地创建一个美观、易于使用的在线商店,展示和销售自己的商品或服务,并管理订单、运输、支付和营销活动等业务。…

Linux 网络驱动实验(有线)

目录嵌入式网络简介嵌入式下的网络硬件接口MII/RMII 接口MDIO 接口RJ45 接口网络驱动是linux 里面驱动三巨头之一,linux 下的网络功能非常强大,嵌入式linux 中也常 常用到网络功能。前面我们已经讲过了字符设备驱动和块设备驱动,本章我们就来…

基于SSM+JSP实现的流浪猫狗救助系统(分为用户端和管理员端,领养动物、流浪动物知识学习、用户管理、评论管理、领养记录查询、流浪猫狗管理等)

博客目录基于SSMJSP实现的流浪猫狗救助系统实现功能截图系统功能使用技术完整源码基于SSMJSP实现的流浪猫狗救助系统 本系统是一个流浪猫狗救助系统,分为用户端和管理员端,用户端可以完成登陆注册、流浪猫狗知识学习、领养动物,管理员端可以…

Synchronized和锁升级

文章目录1、Synchronized关键字2、无锁3、偏向锁3.1、是什么3.2、核心原理3.3、加载过程3.4、偏向锁的膨胀和撤销4、轻量级锁4.1、是什么4.2、核心原理4.3、轻量级锁的膨胀5、重量级锁5.1、是什么5.2、核心原理锁升级发生后,hashcode去哪啦锁指向6、锁消除7、锁粗化…

3.29面试题

文章目录内存内存管理执行过程要点面试题内存 内存管理 由JVM管理 堆:new出来的对象(包括成员变量、数组元素、方法的地址)栈:局部变量(包括方法的参数)方法区:.class字节码文件(…

c# 第一次作业

一. 单选题(共49题,93.1分) 1. (单选题)下面属于合法变量名的是_____________。 A. P_qrB. 123mnpC. BooleanD. X-Y 我的答案: A正确答案: A 1.9分 2. (单选题)用所有.NET支持的编程语言编写的源代码经过一次编译后被编译成_____________…

ESP8266WiFi模块与Android APP实现数据传输(三)---AT/MQTT固件下载

目录 (1)打开后选择ESP8266 DowmloadTool (2)在弹出的界面进行下面操作: (3)进入等待上电同步: (4)状态显示完成,表示下载结束 (5&…