负载均衡LVS基础入门

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 一、集群概念二、LVS介绍

负载均衡LVS基础入门

 

 

目录:

前言:LVS技术的重要性

一、集群概念

二、LVS介绍

 

 

前言:LVS技术的重要性

LVS在实际应用开发中应用广泛,掌握该项技术可以提高个人竞争力,提高薪资水平。

 

LVS技术应用背景:

LVS虚拟服务器技术是国人开发的一项专利技术,从技术层面来讲,应用开发的功能十分的强大,从情感角度来讲,这是国人自主开发的一项技术,对于我们程序员来讲意义十分的重大。简言之,掌握好LVS技术都是程序员在学习Linux操作系统时的不二之选。

 

 

一、集群概念

Cluster概念

系统扩展方式︰

Scale UP:向上扩展,增强(优化物理设备)

/**业务场景是当公司的访问量不断增大,公司业绩不断攀升,*但问题是服务器无法承担起这么大的访问量。解决办法是提升*服务器的性能,两种方案,一种是向上扩展(买好机器,优化物理*设备),一种是向外扩展。

**/

Scale Out :向外扩展,增加设备,调度分配问题,Cluster

 

Cluster辅助理解示意图:

image.png

/**

*应用场景是:当三台web机器同时对外提供服务,这时用户发*来了访问请求,存在的问题便是该由哪台服务器对其提供服务呢?

 

*解决方案是按装台lvs调度器就可以解决了。

Lvs会自动收集用*户的请求,但问题是用户访问时使用的是关键

字,而不是具体*ip地址,这个时候又该如何将其请求转接到对应

的后端接口上*呢?dns的出现解决了这个问题,dns可以将其翻

译成对应的ip*这里vip不是日常生活中的vip(非常重要的人)而是虚拟地址。

 

*地址;vip虚拟ip地址,web1web2这些才是真正的ip*被称为rip(真实的ip地址)。

**/

//dns意为域名解析器

//lvs是调度器

//vip是虚拟的ip地址

//rip为真实的后端ip地址

 

Cluster:集群为解决某个特定问题将多台计算机组合起来形成的单个系统

/**

*将多台机器(图中的web1web2web3)联合起来形成的单个系*统对外进行服务的模式便被称之为集群。

**/

 

Linux Cluster类型:

1LB : Load Balancing,负载均衡

/**

*LB意为均衡负载集群(将用户的请求按照一定的比例分配给不同的*主机,以此来提高性能),典型的例子就是mysql的主从复制(存在

*一个单点失败的问题),当主机宕机时,便失去了写的功能,只能从*从服务器上进行读取数据的操作,因此,mysql的主从复制机制是*一个负载均衡的体现,而不是高可用性的体现。

**/

 

2HA : High Availiablity,高可用(如MHA),SPOF ( single Point Of failure )

/**

 

*高可用的主要目的并不是为了实现性能的提升的,而是为了实现*集群的高可用性的;

例如:MHA的高可用性,当主机出现的宕*机的情况时,MHA可以自动提升一个从服务器为主服务器。

**/

 

//HA意为高可用集群

MTBF:Mean Time Between Failure平均无故障时间

MTTR:Mean Time To Restoration ( repair )平均恢复前时间

 

A=MTBF/ (MTBF+MTTR)(0,1): 99%,99.5%99.9%,99.99%,99.999%

//此处的指标越高,高可用性便越强。

 

辅助理解示意图:

image.png

/**

*该模式存在一个缺陷,当lvs调度器出现问题时易导致整个

*集群环境的瘫痪,举例:前段时间阿里云公司出现的服务器*宕机事件。

**/

 

3HPC : High-performance computing,高性能

 

4、参考网址:www.top500.org

 

//HPC意为高性能集群

 

/**

*HPC可以解决HC存在的缺陷,搭建多个lvs调度器,当一台失败*出现故障时,另一台机器仍可以负责器整个系统的正常运行。

**/

 

分布式系统︰

1、分布式存储︰云盘

分布式式存储系统存储方式辅助理解示意图:

image.png

/**

*例如云盘的存储方式便是将文件切分成很多个小块,分放在*很多台服务器上,如此,便可以实现高可用性,当其中一台*服务器出现宕机的情况时,还可以从其他服务器上调取数据。

 

*常见的分布式文件系统有fast,fs.

**/

 

 

2、分布式计算:hadoop ,Spark

 

集群和分布式的区别

 

单机结构:全栈工程师(非常辛苦)

 

集群结构:全栈工程师+全栈工程师(比较辛苦,但也还过得去)

 

分布式:前端工程师+后端工程师(相比之下较为轻松)

 

Cluster分类

1LB Cluster的实现


2、硬件

F5 Big-IP

Citrix NetscalerA10 A10


3、软件

lvs : Linux Virtual Server

nginx:支持七层调度

haproxy:支持七层调度

ats : apache traffic server , yahoo捐助

perlbal : Perl 编写

 

4、基于工作的协议层次划分∶


5、传输层(通用) :DPORT(只可以实现传输层以下的协议,如DNAT)

LVS :

nginx : stream

haproxy : mode tcp

 

6、应用层(专用)︰针对特定协议,自定义的请求模型分类

proxy server :

http : nginx, httpd, haproxy(mode http),...fastcgi : nginx, httpd, ...

mysql : mysql-proxy(读写分离),..

pound              

 

 

Cluster相关

1、会话保持:负载均衡

(1) session sticky :同一用户调度固定服务器

Source IP : LVS sh算法(对某一特定服务而言)

Cookie

附:Cookic辅助理解示意图

image.png

注:一个Cooke对应一个主机,一对一相应

/***A机器调度到1上时,1上面会存储一个session*息,可当用户第二次访问的时候如果被调度到2机器上去*时,又该如何解决呢?

 

解决方案是1,2,3三台集群互相复*session信息。这样做的缺陷是易造成数据冗余,消耗*服务器性能,且不适用于用户量过大时的应用场景。

**/

 

(2) session replication:每台服务器拥有全部session

session multicast cluster

 

(3) session server : 专门的session服务器

Memcached . Redicl

 

//第三种解决方案是建立主从服务器,搭建Redis缓存。

 

 

2HA集群实现方案

keepalived:vrrp协议

 

ais:应用接口规范

heartbeat

cman+rgmanager(RHCS)

coresync_pacemaker            

 

 

二、LVS介绍

1LVS : Linux Virtual Server,负载调度器,集成内核

/**LVS作为调度器时,性能十分的优异,但缺陷也十分显著,相对来*讲,它的功能较差。Idirectored的出现弥补了LVS功能上的缺陷,*由此可见Idirected的重要性。

**/

 

官网: http://www.linuxvirtualserver.org/

vs: Virtual Server,负责调度'

RS: Real Server,负责真正提供服务

L4∶四层路由器或交换机

 

2、工作原理:VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS

 

注意:工作原理需要重点关注,要求是掌握,LVS的工作原理是公司面试时的常问点。

 

3iptables/netfilter :

iptables:用户空间的管理工具netfilter :内核空间上的框架

流入:PREROUTING --> INPUT流出:OUTPUT --> POSTROUTING

 

转发:PREROUTING -->FORWARD --> POSTROUTINGDNAT︰目标地址转换;PREROUTING

 

/**

*DNAT可以实现将目标地址进行转换,适用场景是*互联网发出的请求去访问企业内部,在访问内部是,访问的*先后顺序是先去访问连接公网的地址,然后再将其请求转换*到内网的私有地址,以此来对外提供服务。

 

鉴于DNAT本身*的一对一的特性,无法将请求分配到多台服务器上,只能实*一对一转换。

vs则可以实现根据请求的报文的目标ip*目标协议及端口将其调度转发至某RS,根据调度算法来挑选*RS

 

/***DNAT可以实现将目标地址进行转换,适用场景是*互联网发出的请求去访问企业内部,在访问内部是,访问的*先后顺序是先去访问连接公网的地址,然后再将其请求转换*到内网的私有地址,以此来对外提供服务。

 

鉴于DNAT本身*的一对一的特性,无法将请求分配到多台服务器上,只能实*一对一转换。

 

vs则可以实现根据请求的报文的目标ip*目标协议及端口将其调度转发至某RS,根据调度算法来挑选*RS

**/

 

**/ 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
11月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
435 11
|
负载均衡 网络协议 Linux
LVS,软负载均衡
LVS(Linux Virtual Server)是一项广泛应用的负载均衡技术,由章文嵩博士于1998年发起,自Linux 2.4.24版本起成为官方内核的一部分。LVS通过四层负载均衡技术实现高性能、高可用的服务器集群,支持多种调度算法和工作模式(如D-NAT、full-NAT、IP隧道、DR),适用于HTTP、数据库等应用。相比7层负载均衡器(如Nginx、HAProxy),LVS具有更高的并发处理能力和更低的资源消耗,适合大规模流量分发。本期文章详细介绍了LVS的工作原理、优势与不足,并对比了常见的负载均衡产品,帮助读者根据具体需求选择合适的解决方案。
2183 6
LVS,软负载均衡
|
负载均衡 算法 Linux
LVS+Keepalived:实现高效软负载均衡的利器
本文介绍了如何使用LVS(Linux Virtual Server)和Keepalived搭建高可用负载均衡集群。LVS通过不同调度算法将请求转发给后端服务器,而Keepalived基于VRRP协议实现服务高可用,避免IP单点故障。具体步骤包括环境准备、安装配置ipvsadm和Keepalived、启动服务及测试。文中还详细解释了配置文件中的关键参数,并提供了故障转移测试方法。最后,文章简要对比了软件、硬件和云负载均衡方案的特点,帮助读者选择合适的负载均衡策略。
1988 4
|
域名解析 运维 负载均衡
LVS+Keepalived 负载均衡(二)28-1
【8月更文挑战第28天】LVS+Keepalived 负载均衡 配置 LVS VIP
329 6
|
运维 负载均衡 网络协议
LVS+Keepalived 负载均衡
LVS+Keepalived 负载均衡
471 8
LVS+Keepalived 负载均衡
|
缓存 负载均衡 算法
在Linux中, LVS负载均衡有哪些策略?
在Linux中, LVS负载均衡有哪些策略?
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
291 5
|
存储 负载均衡 算法
使用LVS搭建集群实现负载均衡(一)
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡
765 5
|
负载均衡 网络协议 算法
使用IPVSADM配置LVS负载均衡
使用IPVSADM配置LVS负载均衡
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤

热门文章

最新文章

下一篇
开通oss服务