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
LVS负载均衡模型及算法概述的更多相关文章
- LVS负载均衡理论以及算法概要
一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.or ...
- (转)详解LVS负载均衡之三种工作模型原理和10种调度算法
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linuxnx.blog.51cto.com/6676498/1195379 LV ...
- LVS负载均衡IP隧道模式原理介绍以及配置实战
LVS 基本工作原理 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP,将数 ...
- LVS负载均衡的三种模式和八种算法总结
三种LVS负载均衡模式 调度器的实现技术中,IP负载均衡技术是效率最高的,IP虚拟服务器软件(IPVS)是在linux内核中实现的。 LVS负载均衡模式---1.NAT模式 NAT用法本来是因为网络I ...
- lvs负载均衡的搭建
lvs负载均衡的搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在部署环境前,我们需要了解一下一些协议 一.什么是arp 地址解析协议,即ARP(Addr ...
- 实现基于LVS负载均衡集群的电商网站架构
背景 上一期我们搭建了小米网站,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响应缓慢,面对此场景,单纯靠单台LNMP的架构已经无法 ...
- LVS负载均衡原理
一.LVS基本原理概述 LB集群的实现,LB即负载均衡集群 硬件:F5 BIG-IP,Citrix NetScaler,A10,Array,Redware 软件:Lvs,nginx,haproxy,a ...
- 项目详解2—LVS负载均衡详解
一.负载均衡集群介绍 1.集群 ① 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技 ...
- Linux中keepalived+LVS负载均衡的搭建测试
1.1 LVS简介 LVS(Linux Virtual Server),也就是Linux虚拟服务器, 是一个自由软件项目.使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Lin ...
随机推荐
- Http网络协议
目录结构: contents structure [-] 什么是HTTP协议 Http协议的发展历史 Http的报文结构 客户端请求 服务端响应消息 Content-Type application/ ...
- 用十条命令在一分钟内检查Linux服务器性能[转]
概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat - ...
- Postman 网络调试工具
1.Postman 简介 Postman 是一款功能强大的网页调试与发送网页 HTTP 请求的工具.我们可以用来很方便的模拟 get 或者 post 或者其他方式的请求来调试接口. 官网下载地址 Po ...
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...
- Android APK安装完成自动删除安装包
需要实现此功能,一般实际开发是在自动版本更新上,当更新完开始自动安装完毕后,删除内存卡里的安装包.实现方式很简单,监听应用广播,获取内存卡下的文件,删除! 1.监听广播 package com.exa ...
- Knockout: 实践CSS绑定和afterkeydown事件, 给未通过校验的输入框添加红色边框突出显示; 使用afterkeydown事件自动将输入转大写字母.
目的: 实践一下Knockout提供的CSS绑定功能和afterkeydown事件. 步骤: 先在htm中添加.error的css样式, 并在输入框中绑定css: { error: !firstNam ...
- UI测试后生成测试报告,利用shell脚本上传svn
ui测试后生成测试报告,把报告保存在某一个固定路径 shell脚本把这个报告上传 #!/bin/bash -ile #svn下载文件 #svn checkout http://svn.xxx.com/ ...
- BT5配置网络
root@bt:~# vi /etc/network/interfaces 编辑IP地址auto eth0#iface eth0 inet dhcpiface eth0 inet staticaddr ...
- 定时删除elasticsearch的index
#!/bin/bashfind /data/elasticsearch/data/kz-log/nodes/0/indices/ -type d -mtime +5 | awk -F"/& ...
- JavaScript DOM API初步(整理)
文档对象模型 文档对象模型(Doucment Object Model,DOM)是表示文档(如HTML文档.XML文档)和访问.操作构成文档的各种元素的应用程序接口.在DOM中,HTML文档的层次结构 ...