2020/01/05 02-LVS工作实现

在这里插入图片描述
DR模型优势,请求报文和响应报文不都经过LVS,缺点是LVS和RS是需要在一个网段的,这样就容易产生安全隐患

所以有了tun模式,隧道模式

**tun(隧道),在转发数据的时候,把数据报文拿过来,然后在数据报文的ip的地方(ip报文头部,网络层源地址本是CIP)
(应用层报文头部如http,里面是传输层头部,如tcp,再往里ip报文头部
**在这里插入图片描述
tun模式会在里面继续封装一个报文头部,这个头部是新的报文头部,会加源地址CIP,目标是RIP
成为了一个新的ip报文头部了,就经过层层转发,到达了rs服务器,rs服务器收到后,接收数据报文,然后把报文拆开,拆开以后发现有一个新的IP报文,新的报文发现是CIP发送过来的,vip是目标,就需要在RS上配置VIP,不然就抛弃了,这一点和DR模式类似

在这里插入图片描述
在里面增加新的报文头部,新的报文头部是源地址是LVS服务器T-ip,目标地址是被调度的RIP,lvs和rs可以跨路由,RS收到后,会把报文拆开,得到源地址和目标地址,目标地址VIP,所以需要RS也要绑定VIP,这样RS就可以直接响应客户端,这样回应请求也不会经过负载均衡LVS服务器,实现的好处是,可以跨路由,
甚至可以隔一个互联网,dip在北京,vip在深圳都是可以做到的
跨机房的调度

tun模型封装了新的报文头部,要求你的服务器要识别加报文头部的方式

在这里插入图片描述
fullnat模式和nat模式很像,nat模式,替换的是请求报文的目标地址,源地址不替换,
fullnat是把源地址也替换了

fullnat模式就有些变化了,DIP是源地址,RIP是目标地址,cip被替换成DIP ,VIP替换成RIP的某一个
这样LVS和Rs中间可以隔网段,可以加路由

fullnat默认不支持,需要重新编译
在这里插入图片描述
**nat模式和DR模式用的比较多
相同:请求报文和响应报文都需要经过LVS服务器
fullnat和nat的区别:
nat 只替换目标地址, (中间也可以隔路由器)
fullnat 源地址和目标地址都进行替换
**
在这里插入图片描述
dr和tun模型请求报文都经过LVS,但是响应报文都直接响应给看客户端

**server用什么服务器,对于nat用什么主机都可以,对于tun模型需要支持隧道功能,dr模型需要把arp禁用
server-network服务器网络,nat私有ip,
server-number 服务器数量,nat和fullat请求和响应都经过lvs,所以数量不用太多10-20.
**
在这里插入图片描述在这里插入图片描述
如何把用户请求调度到哪个RS上
调度的问题,静态调度算法和动态调度算法,无非就是考虑不考虑后端RS的压力,动态考虑后面的RS压力
在这里插入图片描述
静态的就是设定了固定的算法调度,不管后面的RS的负载情况如何
静态4种算法,动态6种算法,总共10种算法,面试

RR就是一个轮一个
在这里插入图片描述
2.WRR加权调度,相对来讲要考虑后端服务器的性能,定义一个权重,按比例分配,测试的时候测的量大一些就能显示了
在这里插入图片描述
在这里插入图片描述
3.源哈希,就是实行的session sticky(绑定),调度掉第一台机器,那么会话信息就是保存在第一台机器上的(下次如果调度到第2台机器,那么会话信息就丢了,比如一些购物车信息,之前的解决方案是根据IP地址和调度到哪个RS的地址,记录在调度器上)

http协议本身无状态,即时同一台电脑来了,理论上也是记不住的,如何记住,两种方法,
(cookie,用户访问的时候,服务器随机分配cookie,客户端记录cookie信息,同时在服务器记录xx对应cookie,会在请求报文的首部字段行放入cookie信息,这样服务器就知道是谁来访问,但是有时候cookie太大,比如要把购物车信息塞进去,网络带宽消耗严重)

在这里插入图片描述
就有第二种解决方案,比如购物车放在session里,在内存里分配空间,每个用户登录会分配一个ID号,cookie只放ID,下次访问把ID传给服务器,对应sessio是有这个ID的购物车信息的,就可以进行访问
在这里插入图片描述
IE浏览器可以看到cookie
在这里插入图片描述在这里插入图片描述
这样就可以查到cookie
在这里插入图片描述
就是个文本文件,也是个键值对,通过cookie才能确定用户身份
在这里插入图片描述
如果禁用cookie,好多应用网站都会受到影响

调度掉第一台机器,那么会话信息就是保存在第一台机器上的(下次如果调度到第2台机器,那么会话信息就丢了,如何解决,有两种,Session复制,只要调度了,其他RS就自动同步session信息,但是这样消耗服务器内存比较大。
第二种,可以对调度器做工作,SH,源地址hash,根据客户端IP地址来进行调度,就意味着要把源地址做一个哈希运算,得出一个摘要,MD5对于任何数据算出来都是128位的二进制,只要ip地址一样哈希值就一样

第三种,session不放在RS,放在一个专门的后端服务器上,比如redis集群
在这里插入图片描述在这里插入图片描述
目标地址哈希,看的是,上次往哪里调度,这次还是往哪里调度,是把目标地址做了一个调度,一般宽带运用商用的比较多
在这里插入图片描述
1.LC最少连接调度,看后台哪台服务器负载比较小,就优先往哪里调度
活动链接数acticeconns*256+inactiveconns不活动的链接数(握手了没有数据交换,什么事情也不敢,叫非活动连接)
谁的值越小就往谁上面调度,但是存在服务器性能有好有坏的问题,就需要加权重

在这里插入图片描述
WLC,但是这样,如果首次访问,哪台机器在前面(LVS命令加在第一个就是第一了,权重是2,但是性能不好)就先调度到哪台机器上,但是如果这台机器性能差的话,就不合理

所以有了sed
shortest 最短 expection期望 delay延迟 ,解决的就是初始的时候让连接权重高的优先
只要活动链接+1,那就是没有链接数也不会算出等于0了,这样权重为5的主机,得出的数就小,就优先调度。
但是如果权重差距太大,也会导致,其他机器不干活,n能干的累死

在这里插入图片描述
**never queue 第一次不按照什么权重的算法。第一次均匀分配,后续第二次的时候才按照SED按权重 **
在这里插入图片描述
LC最短链接,动态的DH算法
当第一个缓存服务器负载过大的时候,可以将请求进行调度,调度到第二台机器上去,即使访问优酷也往这里调度,这样优酷视频在两个缓存服务器上调度了,这样就实现了一个负载均衡,而不会导致一个机器累死的情况

在这里插入图片描述
LBLCR witch replication带复制功能 ,之前的根据负载来调度的话,终究不是很严谨
现在发现youku访问量很大,就把缓存每个缓存服务器上都去复制一份,这样都有缓存,用户的请求转发到每个机器上都可以进行访问,这样就可以实现更加均衡的负载
在这里插入图片描述在这里插入图片描述
lvs是内核就具有的功能,这里记录了所有内核启用的功能列表 ,/boot/config-VERSION-RELEASE.x86_64
在这里插入图片描述
not_set表示功能没启用
在这里插入图片描述
y表示编译到内核里去了
在这里插入图片描述
y和m都表示编译到内核里去了,y表示把功能加载到了内核的文件中,m就是没有放到内核文件里
在这里插入图片描述
这就是内核文件
在这里插入图片描述
m的功能放在了/lib/modules/
在这里插入图片描述
这是文件系统的驱动
在这里插入图片描述
模块方式提供的功能,表现为一个个ko文件,这样的好处就是想起用就加载到内存里,不想启用就不加载
在这里插入图片描述
m,是以模块方式加载的
在这里插入图片描述
10种调度算法在这里插入图片描述
规划一下并且实现

在这里插入图片描述在这里插入图片描述
路由器两块网卡,桥接和仅主机
在这里插入图片描述
客户端只有桥接的在这里插入图片描述
lvs和rs都是仅主机
在这里插入图片描述
配置客户端网卡
在这里插入图片描述
地址生效
在这里插入图片描述
配置路由器
在这里插入图片描述
修改另外的仅主机网卡
在这里插入图片描述
在这里插入图片描述
另外配置三个主机,lvs,rs
在这里插入图片描述
失效是因为没有eth1网卡了,加载不了,可以删除在这里插入图片描述
网关生效了
在这里插入图片描述
修改路由让它启用转发功能在这里插入图片描述在这里插入图片描述
执行sysctl -p就存住了在这里插入图片描述在这里插入图片描述
配置rs1
在这里插入图片描述
把原来的网卡配置删除
在这里插入图片描述在这里插入图片描述
配置rs2
在这里插入图片描述
删除原来的配置文件在这里插入图片描述在这里插入图片描述
先确保能否ping通,vip等会再设置在这里插入图片描述
现在开始搭建LVS服务器,使用ipvsadm
在这里插入图片描述
在lvs服务器安装ipvsadm
在这里插入图片描述在这里插入图片描述
现在还没有定义ipvs规则
在这里插入图片描述
有一个脚本
在这里插入图片描述
修改下后端服务器地址

在这里插入图片描述在这里插入图片描述
g代表dr模型在这里插入图片描述在这里插入图片描述
上面是VIP,下面是两个RIP、权重都是1
在这里插入图片描述
配置后端两个RS,也是用脚本跑在这里插入图片描述
VIP绑定在lo:1回环网卡,非常稳定,因为是虚拟网卡,不会down
在这里插入图片描述在这里插入图片描述
配置RS2
在这里插入图片描述
两个页面不一样
在这里插入图片描述
现在就成功了
在这里插入图片描述
现在把27宕机
在这里插入图片描述
但是还是会调度,LVS没有后端健康检查功能,nginx就有健康性检查在这里插入图片描述
脚本停了策略就没了
在这里插入图片描述
修改下脚本调整权重
在这里插入图片描述在这里插入图片描述在这里插入图片描述
把原来RS2的http服务恢复
在这里插入图片描述
这样就有权重了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值