LVS集群基础知识

LVS集群基础知识

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

优点

1、开源,免费

2、在网上能找到一些相关技术资源

3、具有软件负载均衡的一些优点

缺点

1、最核心的就是没有可靠的支持服务,没有人对其结果负责;

2、功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等;

3、开启隧道方式需重编译内核;

4、配置复杂;

5、主要应用于LINUX,目前没有专门用于WINDOWS的版本,不过可以通过配置,使windows成为LVS集群中的real server(win2003、win2008中)。

从以上大家可以大概了解下LVS集群,那么我可以先从什么是集群说起。

一般我们的集群都是建立在单个服务器不能单独完成任务的时候,会将服务器配置升级或者添加同样的服务功能的服务器。

因此这两种方法我们一般称为向上扩展和向下扩展

Scale up : 向上扩展或垂直扩展

使用性能更好的主机来代替现在性能较差的主机

向上扩展是相当不划算的扩展

Scale out : 向外扩展或横向扩展

将一台服务器扩展到多台服务器

director :调度器

dispatcher :分发器

load balancer :负载均衡器

而今天我们讲的就是向外扩展,但是不一定向外扩展就一定是最佳的方法,具体要视现场来确定。

架设集群之前要先来衡量下系统的指标:

1、可扩展性

表明了需要增加资源以完成更多的工作任务时,能够获得的划算地等同提升

2、可用性

在单位时间内,大多数或绝大多数的时间内都是可用的

0-1, 百分比, 99% --> 99.9% --> 99.99% --> 99.999%

可用性一般用几个9来衡量其可用性,99.999%五个9现在已经是很高了

3、性能

性能指的是响应时间

4、容量

在一定时间内系统能完成的工作量,容量必须是可有效利用的

解释2,在保证可接受性能的情况下能够达到的吞吐量

只有当我们衡量过后的指标是提升比较明显的才好进行架设集群,否则不建议架设集群,因为没有明显的提升对于集群架设就没有意义了。

Linux的集群类型:

LB、HA、HP

LB:负载均衡集群

LB集群调度器的实现:

工作在协议层次来划分:

tcp层的调度器

根据请求报文中的目标地址和端口进行调度

应用层的调度器

根据请求的内容进行调度,而且此种调度为"代理"方式

软件的实现方法:

tcp: lvs (Linux Virtual Server),haproxy, nginx

应用层:

http: haproxy, nginx, apache(proxy module, balancer module), ats(apache traffic server), squid, varnish

mysql: mysql-proxy

硬件的实现方法:

硬件不一定是代表硬件,也可能是有人有卖此种设备,而且此种设备是经过优化的

公司:产品

F5: Big-IP

Citrix: NetScaler

A10: A10

Array: Array

RedWare

我们的LVS是通过传输层来完成的。

LVS组成部分:

两段

1、ipvs

工作在内核中的主体,真正的组件,被称为LVS的东西

ipvs工作在iptables的INPUT链上

2、ipvsadm

工作在用户空间为工作在内核中的ipvs服务的

LVS的工作与iptables类似,由ipvs工作在内核接受ipvsadm的编写配置文本来工作。

ipvs工作与netfilter的INPUT链

ipvsadm用于在ipvs上定义集群服务,同时也得定义此集群服务对应于有哪个后端主机可用

根据所指定的调度方法(算法)做出调度决策

支持的协议:TCP, UDP, SCTP, AH, ESP, AH_ESP

lvs中的常用术语约定:

Host:

Director : 调度器

Real Server : RS, 后端提供服务的主机

IP:

Client IP : CIP

客户端的IP地址

Directory Virtual IP : VIP

调度器对外的IP地址

Directory : DIP

调度器自己的IP地址

Real IP : RIP

后端提供服务的主机IP地址

lvs的类型:这次只说明负载均衡的集群

第一种类型 lvs-nat:

masquerade

第二种类型 lvs-dr:

direct routing

第三种类型 lvs-tun:

tuneling

第四种类型 lvs-fullnat:

fullnat

lvs-nat模型:类似于DNAT,但支持多目标转发, 就是多目标的DNAT

它通过修改请求报文的目标地址为根据调度算法所挑选出的某RS的RIP来进行转发

架构特性:

(1) RS应该使用私有地址,即RIP应该为私有地址,各RS的网关必须指向DIP

(2) 请求报文和响应报文都经由Director转发;高负载场景中,Director易于成为系统瓶颈

(3) 支持端口映射

(4) RS可以使用任意类型的OS

(5) RS的RIP必须与Director的DIP在同一网络

lvs-dr模型 : 直接路由

Director在实现转发时不修改请求报文的IP首部,而是通过直接封装MAC首部来完成转发,目标MAC是Director根据调度方法挑选出的某RS的MAC地址

拓扑结构有别于NAT类型

架构特性:

(1) 保证前端路由器将目标地址为VIP的请求报文通过ARP地址解析后送往Director

解决方案:

1、静态绑定:在前端路由直接将VIP对应的目标MAC静态配置为Director的MAC地址,不靠谱也不常用

2、arptables:在各RS上,通过arptables规则拒绝其响应对VIP的ARP广播请求

3、内核参数:在RS上修改内核参数,并结合地址的配置方式实现拒绝响应VIP对ARP的响应请求

(2) RS的RIP可以使用私有地址,但也可以使用公网地址,此时可通过互联网上的主机直接对此RS发起管理操作

(3) 请求报文必须经由Director调度,但响应报文必须不能经由Director

(4) 各RIP必须与DIP在同一物理网络中,就是不能通过路由器转发否则会被修改MAC地址,可以通过交换机交换

(5) 不支持端口映射

(6) RS可以使用大多数的OS

(7) RS的网关一定不能指向Director

lvs-tun模型: 不修改请求报文的IP首部,而是通过IP隧道机制在原有的IP报文之外再封装IP首部,经由互联网把请求报文交给选定的RS

内层ip: CIP-VIP

外层封装的IP:DIP-RIP

架构特性:

(1) RIP, DIP, VIP 都是公网地址

(2) RS的网关不能,也不可能指向DIP

(3) 请求报文由Director分发,但响应报文直接由RS响应给Client

(4) 不支持端口映射

(5) RS的OS必须得支持IP隧道

tun模型的集群一般很少用到,应为架设麻烦,并且安全性比较低。

lvs-fullnat模型:通过修改请求报文的源地址为DIP,目标地址为RIP来实现转发,对于响应报文而言,是通过修改源地址为VIP,目标地址为CIP来实现转发

架构特性:

(1) RIP, DIP可以使用私有地址

(2) RIP和DIP可以不在同一网络中,且RIP的网关未必需要指向DIP

(3) 支持端口映射

(4) RS的OS可以使用任意类型

(5) 请求报文经由Director,响应报文经由Director

fullnat模型lvs并不能直接实现,fullnat模型与nat模型类似不过更高级更安全,是比较理想的模型。

lvs scheduler:lvs的调度方法

grep -i ‘IPVS‘ /boot/config-*-*.x86.64

查看ipvs支持哪些类型与调度器

grep -i ‘IPVS SCHEDULER‘ -A 12 /boot/config-*-*.x86.64

查看ipvs支持哪些调度方法

静态方法:仅根据算法本身实现调度

RR: round-robin, 轮流、轮询、轮叫、轮调

WRR: weighted round-robin, 加权轮询,权重越大分配到的请求越多

承载能力大的主机会承载更多的请求,通过Overhead=conn/weight来计算承载能力

SH: Source ip Hashing, 源地址哈希,把来自同一个地址的请求统统定向至此前选定的RS;有一个哈希表记录源地址与RIP,之后从哈希表查询记录,然后通过表来确定是否有过访问,如果没有就通过算法配置一个RS,然后添加到哈希表中,下次再过来直接查询哈希表来确定RS

DH: Destination ip Hashing, 目标地址哈希,把访问同一个目标地址的请求,统统定向至此前选定的某RS

动态方法:根据算法及后端RS当前的负载状况实现调度

LC: least connection, 时刻关注后台RS的活动连接数与非活动连接数,看哪个活动数值低就分配给哪个RS

Overhead=Active*256+Inactive

Overhead: 活动数值,越低越优先

Active: 活动连接

Inactive: 非活动连接

WLC: weighted least connection, 加权最少连接数

Overhead=(Active*256+Inactive)/weight

SED: Shorted Expection Delay, 最短期望延迟

Overhead=(Active+1)*256/weight

NQ: Never Queue, 永不排队,刚开始先每个RS分一个连接,然后接下来的根据算法来分配

LBLC: Local-Based Least Connection, 基于本地的最少连接, 动态方式的DH算法

LBLCR: Replicated LBLC, 带复制的LBLC

时间: 2024-12-15 01:58:04

LVS集群基础知识的相关文章

lvs集群基础及lvs-nat、dr、fwm实践

集群基础知识点: 集群类型:LB.HA.HP.DS LB:load balance,负载均衡集群,director:负载均衡器或者调度器,上游服务(upstream server),后端服务器称为real server: HA:high avalilability,高可用集群,评估高可用性能Availability = 平均无故障时间/(平均无故障时间+平均修复时间) HP:high performance 超级计算机类型 LB集群的实现:硬件.软件(lvs: Linux Virtual Ser

漫漫运维路——集群基础知识

集群的基本概念 随着计算机科学的发展,对计算机的性能要求越来越高,比如在很多流量比较大的门户网站以及科学实验环境中需要海量计算的环境,这时候就迫切需要后端的服务器性能有提升.而对于提升后端服务器性能所采用的方式有两种,其一为提升服务器本身的性能,即向上扩展,通过增加服务器的内存,CPU核心数等来实现:其二就是向外扩展,一台服务器不能完成的任务就使用两台.三台甚至更多.在此,以不同的方式把许多服务器组合起来的服务器组就是集群. 集群的分类 按照集群功能的不同,可以把集群分为以下三类: LB集群 L

集群-基础知识1

背景 随着互联网访问量的急剧增加,单台服务器的能力已严重不能满足需求.则需要从两个方面考虑提高服务能力:1.向上扩展,2.向外扩展 向上扩展的缺点: 1.造价高 2.随着性能的提高,会在某个临界点遇到瓶颈,导致性能随后降低. 向外扩展的优点: 1.造价低 2.提供高并发能力和高可用性 3.可扩展性好. 分类 负载均衡集群(Load Balance) 高可用集群(High Availability Cluster) 高性能集群(High performance computing) 负载均衡集群:

集群-基础知识2

负载均衡集群实现方法: 1.硬件方式 F5,CITRX,NETSCALER,A10(价格逐渐降低,由于为了防止调度器成为单点故障,所以要配置一台备用设备,所以造价更高了) 2.软件方式 四层:LVS(根据请求的ip和端口来分发),性能好,但对高级特性支持不好. 七层(反向代理):Nginx(http,smtp,pop3,imap),Haproxy(主要是http,tcp(mysql,smtp)),能够精确解码请求的协议,并能做适当修改后向后转发,操作能力强,性能略差于LVS,更适应生产环境. L

集群-基础知识3

纠正:报文进入内核空间后,当到达input链时发现是一个集群服务时,则直接发送到postrouting链,不经过forward链. 调度算法: 1.静态方法: rr:轮询,即依照次序从所有RS中进行挑选 wrr:加权轮询,按照权重在RS中进行轮询 sh:source hashing,源地址哈希,即对来自相同客户端的请求发送至同一RS,这样会破坏负载均衡效果.可以基于cookie实现session绑定. dh:destination hash,目标地址哈希,将同样的请求发给同一个RS.可以提高缓存

集群基础之LVS的基础概念

一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式.集群计算机通常用来改进单个计算机的计算速度和/或可靠性.一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多. 集群就是一组独立的计算机,通过网络连接组合成一个组合来共同完一个任务 LVS在企业架构中的位置: 以上的

LVS集群中的IP负载均衡技术

章文嵩 ([email protected]) 转自LVS官方参考资料 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR)的工作原理,以及它们的优缺点. 1.前言在 前面文章中,讲述了可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份).我们先分析实现虚拟网络服务的主要技术,指出 IP负载均衡技术是在负载调度器的实现技术中效率最高的.在已有的IP负载均衡技术

LVS集群之工作原理

  首先我们要了解LVS的工作机制: LVS里Director本身不响应请求,只是接受转发请求到后方,Realservers才是后台真正响应请求. LVS 工作原理基本类似DNAT,又不完全相像,它是一种四层交换,默认情况下通过用户请求的地址和端口来判断用户的请求,从而转发到后台真正提供服务的主机,而判断这种请求的是通过套接字来实现,所以四层就可以实现. 而且这个转发的过程对用户而言是透明的(简单的讲,就是用户访问DR的IP,而DR转发给RSS,而用户不知道这个过程) LVS的工作模式: 1.D

LVS集群:ipvsadm使用及VS/NAT实现

一.ipvs与ipvsadm ipvs称之为IP虚拟服务器(IP Virtual Server,简写为IPVS).是运行在LVS下的提供负载平衡功能的一种技术. ipvs是LVS的关键,因为LVS的IP负载平衡技术就是通过ipvs模块(已经整合进kernel)来实现的,ipvs是LVS集群系统的核心软件,它的主要作用是:安装在Director Server上,同时在Director Server上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务.这个虚拟IP一般称为LVS的VIP,即V