阿里云
为了无法计算的价值
打开APP
阿里云APP内打开
学习中心> LVS负载均衡实战> 正文

LVS负载均衡实战

5课时 |
12711人已学 |
免费
课程介绍

LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统,在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。它易用,配置非常简单,且有多种负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。另外可扩展性也非常好。

本课程由马哥教育提供,马哥教育是国内泛Linux运维技术领域高薪IT职业学院,是国内泛Linux运维技术领域的高端互联网IT职业教育品牌,旗下拥有Linux运维、Python开发、云计算等多个高端学科的培育能力。

负载均衡LVS基础入门

 

 

目录:

前言:LVS技术的重要性

一、集群概念

二、LVS介绍

 

 

前言:LVS技术的重要性

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

 

LVS技术应用背景:

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

 

 

  • 集群概念

Cluster概念

系统扩展方式︰

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

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

**/

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

 

Cluster辅助理解示意图:

/**

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

 

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

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

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

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

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

 

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

**/

//dns意为域名解析器

//lvs是调度器

//vip是虚拟的ip地址

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

 

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

/**

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

**/

 

Linux Cluster类型:

1、LB : Load Balancing,负载均衡

/**

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

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

**/

 

2、HA : 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%

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

 

辅助理解示意图:

/**

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

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

**/

 

3、HPC : High-performance computing,高性能

 

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

 

//HPC意为高性能集群

 

/**

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

**/

 

分布式系统︰

1、分布式存储︰云盘

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

/**

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

 

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

**/

 

 

2、分布式计算:hadoop ,Spark

 

集群和分布式的区别

 

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

 

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

 

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

 

Cluster分类

1、LB 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辅助理解示意图

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

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

 

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

**/

 

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

session multicast cluster

 

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

Memcached . Redicl

 

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

 

 

2、HA集群实现方案

keepalived:vrrp协议

 

ais:应用接口规范

heartbeat

cman+rgmanager(RHCS)

coresync_pacemaker            

 

 

  • LVS介绍

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

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

**/

 

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

vs: Virtual Server,负责调度'

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

L4∶四层路由器或交换机

 

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

 

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

 

3、iptables/netfilter :

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

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

 

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

 

/**

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

 

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

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

 

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

 

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

 

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

**/

 

**/

 

 

我的学习进度
请登录后查看您的学习进度!
立即登录
本课程相关云产品