负载均衡LVS基础入门

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 一、集群概念二、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

**/

 

**/ 

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
10月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
832 0
|
2天前
|
运维 负载均衡 网络协议
LVS+Keepalived 负载均衡
LVS+Keepalived 负载均衡
22 1
LVS+Keepalived 负载均衡
|
4月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
1月前
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
42 4
|
1月前
|
存储 负载均衡 算法
使用LVS搭建集群实现负载均衡(一)
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡
61 4
|
1月前
|
缓存 负载均衡 算法
在Linux中, LVS负载均衡有哪些策略?
在Linux中, LVS负载均衡有哪些策略?
|
2月前
|
负载均衡 网络协议 算法
使用IPVSADM配置LVS负载均衡
使用IPVSADM配置LVS负载均衡
|
4月前
|
负载均衡 网络协议
NAT模式 LVS负载均衡部署
NAT模式 LVS负载均衡部署
|
4月前
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结
|
4月前
|
负载均衡 算法 安全
一文带你了解LVS负载均衡模式与F5负载均衡
一文带你了解LVS负载均衡模式与F5负载均衡
1353 0