LVS负载均衡模型及算法概述

集群类型

  • LB: Load Balancing,负载均衡
  • HA:High Availability, 高可用
  • HP:High Performance, 高性能

 

负载均衡

负载均衡设备

Hardware:

F5,BIG IP

Citrix,Netscaler

A10 最便宜

Software:

四层 性能高,支持的特性少

LVS 中国

七层:反向代理,性能略次于四层,支持高级特性

nginx 俄罗斯

http、smtp、pop3、imap

haproxy

主要应用场景http、其他tcp(mysql,smtp)

LVS

Linux Virtual Server

组成部分:

ipvsadm:管理集群服务的命令行工具,工作在用户空间

ipvs:工作在内核,监控在input

LVS工作在INPUT链,所以iptables和LVS不能同时使用

模型前端叫调度器director,后端叫real_server

CIP:client IP

VIP:vrtual IP

DIP:director IP

RIP:real server IP

类型

LVS-NAT 地址转换

LVS-DR 直接路由(使用最多)

LVS-TUN 隧道

LVS-NAT遵循法则:

工作模式:

  • 集群节点跟director必须在同一个IP网络中;
  • RIP通常是私有地址,仅用于各集群节点间的通信;
  • director位于client和real server之间,并负责处理进出的所有通信;
  • realserver必须将网关指向DIP;
  • 支持端口映射;
  • realserver可以使用任意OS;
  • 较大规模场景中,director易成为系统瓶颈;

LVS-DR遵循法则:

工作模式:

  • 集群节点跟director必须在同一个物理网络中;
  • RIP可以使用公网地址;
  • director仅负责处理入站请求,响应报文由realserver直接发往客户端;
  • realserver不能将网关指向DIP;
  • 不支持端口映射;
  • 支持大多数的OS(要求VIP可以隐藏)

LVS-TUN遵循法则:

工作模式:

  • 通过一个IP报文封装另外一个报文
  • 集群节点可以跨越互联网;
  • RIP必须是可路由地址;
  • director仅负责处理入站请求,响应报文由realserver直接发往客户端;
  • realserver不能将网关指向DIP;
  • 只有支持隧道功能的OS才能用于realserver;
  • 不支持端口映射;

LVS10种调度方法:

固定调度:静态算法,不考虑连接数

rr:轮调,轮询

wrr:Weight,加权

sh:source hash,源地址hash绑定,比如session绑定

dh:destination hash,目的地址绑定,把同一类请求发往同一个服务器,比如后端有多台缓存服务器,把同一类请求发往已缓存服务器。

动态调度:动态算法,考虑连接数

lc:least connection 最少连接

active*256+inactive,谁小挑谁

wlc:加权最少连接,LVS默认算法

(active*256+inactive)/weight,谁小挑谁

sed:最短期望延迟,对wlc的改进

(active+1)*256/weight

nq:never queue,对sed的改进

LBLC:基于本地的最少连接,主要实现目标和dh一样,实际上并不考虑连接数,最常使用于缓冲服务器当中。

LBLCR:基于本地的带复制功能的连接

查看内核是否支持IPVS:

cat /boot/config-2.6.32-358.el6.x86_64 | grep -i "vs"
CONFIG_IP_VS=m
CONFIG_IP_VS_IPV6=y
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12
# IPVS transport protocol load balancing support
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_AH_ESP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
CONFIG_IP_VS_PROTO_SCTP=y
# IPVS scheduler
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
# IPVS application helper
CONFIG_IP_VS_FTP=m
CONFIG_OPENVSWITCH=m
CONFIG_MTD_BLKDEVS=m
CONFIG_SCSI_MVSAS=m
安装yum install ipvsadm
ipvsadm用法:
	管理集群服务
		添加:-A -t|u|f service-address [-s scheduler]
			-t: TCP协议的集群
			-u: UDP协议的集群
				service-address:     IP:PORT
			-f: FWM(firewallMark): 防火墙标记
				service-address: Mark Number
		修改:-E
		删除:-D -t|u|f service-address

		# ipvsadm -A -t 172.16.100.1:80 -s rr

	管理集群服务中的RS
		添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
			-t|u|f service-address:事先定义好的某集群服务
			-r server-address: 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射;
			[-g|i|m]: LVS类型
				-g: DR getway
				-i: TUN Internet
				-m: NAT 地址伪装Masquerading
			[-w weight]: 定义服务器权重
		修改:-e
		删除:-d -t|u|f service-address -r server-address

		# ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -m
		# ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -m
	查看
		-L|l
			-n: 数字格式显示主机地址和端口
			--stats:统计数据
			--rate: 速率
			--timeout: 显示tcp、tcpfin和udp的会话超时时长
			-c: 显示当前的ipvs连接状况
			--daemon:显示进程
			--sort:排序,默认升序

	删除所有集群服务
		-C:清空ipvs规则
	保存规则
		-S
		# ipvsadm -S > /path/to/somefile
	载入此前的规则:
		-R
		# ipvsadm -R < /path/form/somefile
时间: 2024-10-28 09:49:07

LVS负载均衡模型及算法概述的相关文章

LVS负载均衡模型与工作原理

1.LVS项目简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.章文嵩博士目前工作于阿里集团,主要从事集群技术.操作系统.对象存储与数据库的研究. 2.LVS是如何工作的 Linux Virtual Server的主要是在负载均衡器上实现的,负载均衡器是一台加了LVS Patch的内核的Linux系统.LVS Patch可以通过重新编译内核的方法加入内核

(转)详解LVS负载均衡之三种工作模型原理和10种调度算法

前言:最近在为我们的产品在做高可用,一边搭环境,一边了解相关知识,搜到这篇博客,质量不错,表述清晰,于是转载过来学习. 标签:详解LVS负载均衡之三种工作模型原理和10种调度算法 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linuxnx.blog.51cto.com/6676498/1195379 LVS负载均衡原理和算法详解    Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大

LVS负载均衡的三种模式和八种算法总结

三种LVS负载均衡模式 调度器的实现技术中,IP负载均衡技术是效率最高的,IP虚拟服务器软件(IPVS)是在linux内核中实现的? LVS负载均衡模式---1.NAT模式 NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(原地址NAT)?如果把NAT的过程稍微变化,就可以成为负载均衡的一种方式?原理其实就是把从客户端发来的IP包的IP头目的地址在DR上换成其中一台REALSERVER的IP地址并发至此REALSERVER,而REALSERVER则在处

LVS NAT和DR的负载均衡,及算法

LVS负载均衡集群介绍负载均衡集群的作用:提供一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载带宽.增加吞吐量,加强网络数据处理能力.提高网络的灵活性和可用性.1)把单台计算机无法承受的大规模的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间,提升用户体验.2)单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高.3)7*24小时的服务保证,任意一个或多个设备节点设备宕机,不能影响到业务.在负载均

构建高可用的LVS负载均衡集群 入门篇

一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能. LVS 集群采用IP负载和基于内容请求分

使用LVS负载均衡搭建web群集的原理及安装配置详解

一.负载均衡LVS基本介绍 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器.这是一个由章文嵩博士发起的一个开源项目,它的官方网站是 http://www.linuxvirtualserver.org. LVS是Linux内核标准的一部分.LVS是一个实现负载均衡集群的开源软件项目,通过 LVS 的负载均衡技术和 Linux操作系统可以实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性.可扩展性和可操作性.LVS架构从逻辑上可分为调度层.Se

LVS负载均衡群集之构建NAT模式,可跟做!!!

有关于LVS负载均衡群集的相关概念可以参考博文:LVS负载均衡群集详解 一.案例概述 LVS负载均衡模式-NAT模式:NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(源地址NAT).如果把NAT的过程稍微变化,就可以 成为负载均衡的一种方式.原理其实就是把从客户端发来的IP包的IP头目的地址在DIR上换成其中一台Web节点服务器的IP地址并发至此Web节点服务器,而Web节点服务器则在处理完成后把数据经过DIR主机发回给客户端,DIR在这个时候再把数

LVS负载均衡群集之构建DR模式,可跟做!!!

有关于LVS负载均衡群集的相关概念可以参考博文:LVS负载均衡群集详解 一.案例概述 LVS负载均衡模式-DR模式:lvs负载调度器作为群集的访问入口,但不作为网关使用,服务器池中的所有节点都各自接入internet,发送给客户机(互联网)的web响应数据包不需要经过lvs负载调度器. LVS负载均衡模式-DR模式:优点:负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户.所以,负载均衡器能处理很巨大的请求量,这种方式,一台负载均衡能为 超过100台的物理服务器服务,负载

LVS负载均衡-基础知识梳理

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