lvs的学习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lvs的学习相关的知识,希望对你有一定的参考价值。
Cluster系统扩展的方式
scale up:向上扩展
scale out:向外扩展
集群类型
LB:负载均衡
HA
HP
总结:
分层
分割
分布式
分布式应用
分布式静态资源
分布式数据和存储
分布式计算
LB集群的实现
硬件:
F5 BIG-IP
Citrix NetScaler
A10 A10
Array
Redware
软件:
lvs
haproxy
nginx
ats (apache traffic server)
perlbal
基于工作的协议层次划分
传输层:
lvs,haproxy(mode tcp)==>模拟成tcp,因为tcp在内核工作
应用层:
haproxy,nginx,ats,perlbal
lvs:
章文嵩
lvs:linux virtual server
l4:四层交换,四层路由
根据请求报文的目标ip和port将其转发至后端主机集群中的某一台主机(根据挑选算法)
netfilter:
PREROUTING ==> INPUT
PREROUTING ==> FORWARD ==> POSTROUTING
OUTPUT ==>POSTROUTING
lvs:
ipvsadm/ipvs
ipvsadm:用户空间的命令行工具,用于管理集群服务
ipvs:工作于内核中的netfilter INPUT钩子上
查看是否开启ipvs:
grep -i -A 10 "IPVS" /boot/config-3.10.0-693.el7.x86_64
出现
# 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
支持TCP,UDP,AH,EST,AH_EST,SCTP等诸多协议
Lvs-Type:
lvs-nat:MASQUERADE
lvs-dr:GATEWAY
lvs-tun:IPIP
lvs-fullnat
lvs arch:
调度器:director,dispatcher,balancer
RS:Real Server
lvs-type(即架构类型)
lvs-nat
lvs-d(direct routing)
lvs-tun(ip tunneling)
lvs-fullnat
lvs-nat:
多目标的DNAT(iptables):它通过修改请求报文的目标ip地址(同时可能修改目标端口)至挑选出的某
RS的RIP地址来实现转发
(1)RS和DIP应该使用私有地址,且RS的网关要指向DIP.
(2)请求和响应报文都要经由director转发,极高负载场景中,director可能会成为系统瓶颈
(3)支持端口映射
(4)RS可以使用任意OS
(5)RS的RIP和Director的DIP必须在同一个ip网络中
lvs-dr:direct routing
它通过修改请求报文的目标MAC地址进行转发
(1)保证前端路由器将目标ip为vip的请求报文发送给director
解决方案:
1.静态绑定
2.arptables
3.修改RS主机内核的参数
(2)RS的RIP可以使用私有地址,但也可以使用公网地址
(3)RS跟director必须在同一物理网络中
(4)请求报文经由director调度,但响应报文一定不能经由director
(5)不支持端口映射
(6)RS可以是大多数的OS
(7)RS的网关不能指向director的DIP
lvs-tun:
不修改请求报文的ip首部,而是通过在原有的ip首部(cip<--->vip)之外,在封装一个ip首部
(1)RIP,DIP,VIP全得是公网地址
(2)RS的网关不能指向DIP
(3)请求报文必须经由director调度,但响应报文必须不能经由director
(4)不支持端口映射
(5)RS的OS必须支持隧道功能
lvs-fullnat:
director通过同时修改请求报文的目标地址和源地址进行转发
(1)VIP是公网地址,RIP和DIP是私网地址,二者无须在同一个网络中
(2)RS接收到的请求报文的源地址为DIP,因此响应给DIP
(3)请求报文和响应报文都经由director
(4)支持端口映射机制
(5)RS的OS可以使用任意OS
linux内核有个基本法则,响应报文从哪个网卡出去,源地址就是哪个地址
http:stateless
session保持
session绑定
source ip hash
cookie
session集群
session服务器
lvs scheduler
涉及到起点公平和结果公平
静态方法:仅根据算法本身进行调度
RR:round robin,轮询
WRR:weighted rr,加权轮询
SH:source bash,实现session保持,将来自同一个ip的请求始终调度至同一RS
DH:destination hash,将对同一个目标的请求始终发往同一个RS
动态方法:根据算法及各RS的当前负载状态进行调度
Overhead=
LC:least connection,
Overhead=active256+inactive
WLC:weighted LC
Overhead=Active256+Inactive/weight
SED:Shortest Expection Delay
Overhead=(Active+1)*256/weight
NQ:Never Queue
SED算法的改进,永不排队
LBLC:Locality-Based LC,即为动态的DH算法
正向代理情形下的cache server调度
LBLCR:Locality-Based Least Connections with Replication
带复制功能的LBLC算法
ipvs的及其服务:
tcp,udp,ah,esp,ah_esp,sctp
(1)一个ipvs主机可以同时定义多个cluster service
tcp,udp
(2)一个cluster service上至少应该一个real server
定义时要指明lvs-type,以及lvs scheduler
ipvsadm的用法
管理集群服务
ipvsadm -A|E -t|u|f service-address [-s scheduler]
ipvsadm -D -t|u|f service-address
service-address:
tcp:-t ip:port
udp:-u ip:port
fwm: -f mark(标记):是一个数字
-s scheduler:
默认是wrc
管理集群服务中的RS
ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -C
server-address:
ip[:port]
lvs-type:(默认是dr模型)
-g:gateway,dr
-i:ipip,tun
-m:masquerade,nat
清空和查看
ipvsadm -C
ipvsadm -L|l [options]
-n:numbers,基于数字格式显示地址和端口
-c:显示ipvs连接
--stats:输出统计数据
--rate:输出速率数据
[[email protected] /]# ipvsadm -L -n --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS
-> RemoteAddress:Port
TCP 192.168.137.143:80 0 1 1 90 79
-> 192.168.20.10:8080 0 0 0 6 10
-> 192.168.20.20:8080 0 0 0 83 69
PPS:每秒的包个数
BPS:每秒字节数
--excat:精确值
保存和重载
ipvsadm -R
ipvsadm -S [-n]
置零计数器
ipvsadm -Z [-t|u|f service-address]
配置lvs-nat
拓扑:三台主机
两台做web服务器,即real server,一台做负载调度器
1.在调度器上做ipvs规则
ipvsadm -A -t 192.168.137.143:80 -s rr
2.在real server的配置
ipvsadm -a -t 192.168.137.143:80 -r 192.168.20.10 -m
ipvsadm -a -t 192.168.137.143:80 -r 192.168.20.20 -m
改变调度器:
ipvsadm -E -t 192.168.137.143:80 -s sh
删除一个集群服务器:
ipvsadm -d -t 192.168.137.143:80 -r 192.168.20.10:8080
删除集群服务:
ipvsadm -D -t 192.168.137.143:80
以上是关于lvs的学习的主要内容,如果未能解决你的问题,请参考以下文章