设为首页 收藏本站
查看: 1228|回复: 0

[经验分享] lvs的学习

[复制链接]

尚未签到

发表于 2019-1-2 14:19:03 | 显示全部楼层 |阅读模式
  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首部(cipvip)之外,在封装一个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=Active
256+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:输出速率数据
[root@www /]# 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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-658717-1-1.html 上篇帖子: lvs集群简介 下篇帖子: lvs随记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表