«

Lvs 简介

指尖二进制 • 1 年前 • 762 次点击 • LB


[TOC]

一:集群概述

1:什么是集群
一组各自相互独立且又相互依赖的,通过高速网络互联的计算机组成的一个计算机组,以单一的系统模式加以管理,为用户提供服务,对用户来说,用户只会认为对方是一个服务。这个里面,一组计算机的一台计算机就是集群的一个节点。
作用:整合服务器资源,把多台服务器合并成一台使用,可以提高整个架构的抗压能力。

2:集群的特性
可伸缩性:根据业务的生产增加减少
可靠性:通过软件来实现
可管理性:通过软件来实现

3:集群的应用场景
例:什么是并发?
一台服务器:如果能够响应10000个并发,返回的状态码全部是200。如果现在有20000个并发,返回的状态码[ 200 304 301 500 404 ]
由以上例子说明,web服务已经达到瓶颈

解决这个问题的办法:
加配置: 加CPU:加内存:加带宽:加SSD:这种解决方法称为“向上扩展”,能够解决一时却不能持久一世[单台服务器上做动作]
加服务器: 一台==>两台:两台==>四台:四台==>8台:使用多台服务器同时为用户提供服务,而这一种解决方法则称为“横向扩展”或“向外扩展”
向外扩展: 就是集群

4:集群的种类:
集群系统主要分为
负载均衡(Load Balance)集群,简称LB
高可用(High Availability)集群,简称 HA 集群
高性能计算(High Perfermance Computing)集群,简称 HPC 集群。主要用于一些科学运算。

5:LB实现手段
硬件的实现:– F5 负载均衡器
软件的实现:– LVS(4层,传输层) – Nginx(7层,应用层)

二:LVS集群

1:LVS(Linux Virtual Server)
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一,是根据iptables的实现来开发的,所以使用时候会和iptables相当类似
官网:http://www.linuxvirtualserver.org/
中文站点: http://zh.linuxvirtualserver.org/
lvs是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。工作在网络层。

2:LVS 集群工作结构图

负载调度器:分发器(Load Balancer、Director): 整个集群对外的最前端机,负责接收用户请求,并且根据自己的调度算法, 将请求转发到后端真实服务器上的动作,而客户认为服务是来自一个IP地址(我们可称之为VIP虚拟IP地址)上的。
服务器池: Server Pool 真正为用户提供服务的服务器,每一台服务器就是一台RS[RealServer],执行的服务有WEB、MAIL、FTP和DNS等。
共享存储: Shared Storaged 为RS保持相同内容,提供数据的一致性,也就是说,它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

三:LVS模式及工作原理

1:LVS(4层)模式:
VS/NAT:LVS-VS/DR:VS/TUN

2:LVS负载均衡的三种包转发方式
LVS提供了三种包转发方式:NAT(网络地址映射):IP Tunneling(IP隧道):Direct Routing(直接路由)。不同的转发模式决定了不同的cluster的网络结构。

3:NAT(网络地址映射)
NAT: 网络地址转换
DNAT: 目标地址转换 改变的是目标地址
SNAT: 原地址转换 改变的是原地址
LVS-NAT:就是使用的SNAT和DNAT完成报的转发
NAT方式可支持任何的操作系统,以及私有网络,并且只需一个Internet IP地址,但是整个系统的性能受到限制。因为执行NAT每次需要重写包,有一定的延迟;另外,大部分应用有80%的数据是从服务器流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为了新的瓶颈。

4:IP Tunneling(IP隧道)
director(分发器)分配请求到不同的real server。real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接。IP Tunneling技术极大地提高了director的调度处理能力,同时也极大地提高了系统能容纳的最大节点数,可以超过100个节点。real server可以在任何LAN或WAN上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。服务器必须拥有正式的IP地址用于与客户机直接通信,并且所有服务器必须支持IP隧道协议。

5:Direct Routing(直接路由)
与IP Tunneling类似,负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性。Direct Routing与IP Tunneling相比,没有IP封装的开销,但由于采用物理层(修改MAC地址)技术,所有服务器都必须在一个物理网段。

四:调度模式

算法解释
rr轮询平均分配,你一个、我一个。适用于同一批次进场的设备硬件配置相同
wrr基于权重轮询谁处理的能力强,谁的权重就高。服务器硬件配置有差距时用WRR比较好(能者多劳)
lc最少连接两台RS连接数量少的,新的请求就给谁去处理,如果两条连接数量相同随机选择一个
wlc基于权重的最少连接只要涉及权重就考虑到你服务器硬件性能,两台服务器性能高的权重值设置设置高一些,性能低的设置低一些。如果按照最少连接的算法两台服务器连接数都一样,那么新来的请求将会给性能好的服务器处理
lblc基于局部的最少连接一般用在缓存服务器上cdn网络加速的时候常用,可以提高缓存并用
sh源地址散列根据访问的来源进行运算。保证同一个源过去的时候时同一台服务器应答
dh目标地址散列根据访问的目的地址进行运算。根据目的ip进行运算,取决于dns解析
sed最短预期延迟法
nq永不排队法
还没收到回复