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

[经验分享] linux cluster LB集群之LVS

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-25 08:50:30 | 显示全部楼层 |阅读模式
                      Linux Cluster 类型分类:

   负载均衡集群:Load balancing 高可用集群:High Avaiability 高性能集群:High Performance
及分布式系统

LB:LB的实现是在提供相同服务的多台服务器之前添加调度器即负载均衡集群
工作协议层来划分;
tcp:根据请求报文中的目标地址和端口进行调度;
应用层:根据请求的内容进行调度,而且此种调度为“代理”方式;

lvs: Linux Virtual Server,虚拟服务, 由章文嵩研发工作于layer4 上的协议根据目标地址和端口作出转发与否的决策,根据调度方法作出转发至哪一个后端的决策;
组成部分:ipvs,ipvsadm
Ipvs框架,工作于内核空间netfilter的input链上,通过规则把匹配到的报文改写送至FORWARD链通过POSTROUTING,经由Director IP送达指定的Real server
ipvsadm:工作于用户空间为ipvs提供参数规则同于iptables netfilter;
ipvsadm用于在ipvs上定义集群服务:同时也得定义此集群服务对应于有哪个后端主机可用;
根据所指定的调度方法(算法)作出调度决策;
工作原理:ipvs工作于netfilter的input链上;通过ipvsadm定义集群服务器及指定的调度方法作出调度决策
lvs4大模型: wKiom1VhwI_RlkZ2AAGqDsxGl1Q599.jpg


一、lvs-nat(masquerade):地址伪装
类似于DNAT,但支持多目标转发;
wKiom1VhwibyJyCVAAFmFS8IQuc171.jpg


(1)RS ,RIP,必须为私有地址
(2)RS网关必须指定为RIP,请求响应报文经由Director,高负载场景中 Director易成为瓶颈
(3)支持端口映射
(4)RS可以使用任意类型的OS;
(5) RS与RIP必须与Director 的DIP必须在同一网络中
lvs-nat Director与Real server ,RIP的网关必须指向Director
适用场景:
      适用于少量Real server的(因报文请求与回应必须经由Director, Director易成为瓶颈)可以隐藏内部RIP和DIP

二、lvs-dr(lvs-direct routing):直接路由
   Director在实现转发时不修改请求的IP首部,而是通过直接封装MAC首部完成转发;目标MAC是Director根据调度方法挑选出某RS的MAC地址;拓扑结构有别有NAT类型;
wKiom1VhwsfCqzfOAAJtLkBwKcY307.jpg









wKiom1Vhwv2ybVlYAAJ778Dpi1Y066.jpg 架构特性:
(1) 保证前端路由器将目标地址为VIP的请求报文通过ARP地址解析后送往Director
解决方案:
静态绑定:在前端路由直接将VIP对应的目标MAC静态配置为Director的MAC地址;
arptables:在各RS上,通过arptables规则拒绝其响应对VIP的ARP广播请求;
内核参数:在RS上修改内核参数,并结合地址的配置方式实现拒绝响应对VIP的ARP广播请求;
(2) RS的RIP可以使用私有地址;但也可以使用公网地址,此时可通过互联网上的主机直接对此RS发起管理操作;
(3) 请求报文必须经由Director调度,但响应报文必须不能经由Director;
(4) 各RIP必须与DIP在同一个物理网络中;如果不在同一个物理网络中源MAC和目的MAC就会被修改(不能通过路由转发,switch可以)
(5) 不支持端口映射;
(6) RS可以使用大多数的OS;
(7) RS的网关一定不能指向Director;
适用场景:因响应报文不经过Director极大减轻了Director压力适用于大多数场景;
                             
三、lvs-tuneling 隧道

wKioL1VhxP7in7sGAAKmBY2fjhY850.jpg




lvs-tun: 不修改请求报文IP首部,而是通过IP隧道机制在原有的IP报文之外再封装IP首部,经由互联网把请求报文交给选定的RS;
CIP;VIP DIP;RIP
架构特性:
(1) RIP, DIP, VIP都是公网地址;
(2) RS的网关不能,也不可能指向DIP;
(3) 请求报文由Director分发,但响应报文直接由RS响应给Client;
(4) 不支持端口映射;
(5) RS的OS必须得支持IP隧道;

四、lvs-fullnat: 全地址转换
lvs-fullnat:通过请求报文的源地址为DIP,目标为RIP来实现转发;对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发;
wKiom1VhxGyjwy2lAAIYmaXuT08885.jpg
架构特性:
(1) RIP,DIP可以使用私有地址;
(2) RIP和DIP可以不在同一个网络中,且RIP的网关未必需要指向DIP;
(3) 支持端口映射;
(4) RS的OS可以使用任意类型;
(5) 请求报文经由Director,响应报文经由Director;

LVS算法分类:


静态方法:仅根据算法本身实现调度;
RR:round-robin, 轮询;轮叫、轮调、轮流;
WRR:weighted round-robin, 加权轮询;数值越大承载能力越强 例如权重RS1 1,RS2 2 则表示RS1承受1/3 RS2 承受2/3负载。
   Overhear=conn(已分配的连接数)/weight(权重)
SH:Sourceip Hashing,主要功能会话绑源地址哈希;把来自同一个地址请求,统统定向至此前选定的RS;
DH:Destinationip Hashing, 目标地址哈希;把访问同一个目标地址的请求,统统定向至此前选定的某RS;

动态方法:根据算法及后端RS当前的负载状况实现调度;
           ACtive 正在建立连接或者传输数据的, inactive 保持连接状态尚未断开的连接
LC: least connection 最少连接算法
Overhead=Active(活动连接)*256+Inactive(非活动连接)
WLC: weighted least connection 权重最少连接算法 第一次分配不均 第一次按序列
Overhead=(Active*256+Inactive)/weight
SED:Shorted Expection Delay  最短期望延迟   缺点权重大的负载较大,权重小的负载小
Overhead=(Active+1)*256/weight
NQ:Never Queue 永不排队 首先根据权重扫描 然后才根据算法排序
LBLC:Local-Based Least Connection,基于本地的最少连接 动态方式的DH算法;
LBLCR:Replicated LBLC 带复制的LBLC

案列1、lvs-nat类型的web服务器集群
   1、拓扑图

wKioL1Vhzn6TNE_BAATXPXUORgk219.jpg



















wKioL1Vh0qSzKWCyAADwsLAJ37w232.jpg
准备工作:
  1、确保Director 主机 ip_forward 开启
1
cat /proc/sys/net/ipv4/ip_forward #查看ip_forward 是否开启



2、 Real server 1 Real server 2 主机网关全部设置指向 DIP

1
2
3
4
5
6
7
8
9
route add default gw 192.168.1.10  #实验环境使用了临时配置方法

Director ipvs设置:

ipvsadm -A -t 172.16.10.10:80 -s wcl  # 创建集群服务 172.16.10.10 tcp 80 端口,并使用wcl权重最少算法

ipvsadm -a -t 172.16.10.10:80 -r 192.168.1.11:80 -m  -w 3 #添加Real server1 -m 指定为lvs-nat模型 权重设置3

ipvsadm -a -t 172.16.10.10:80 -r 192.168.1.12:80 -m  -w 5 #添加Real server1 -m 指定为lvs-nat模型 权重设置5



wKioL1Vh0qSzKWCyAADwsLAJ37w232.jpg

wKiom1Vh0VyD45ckAABExTwM7XI443.jpg


使用 ipvsadm -L -n --stats 列出统计数据
wKiom1Vh0cGzwbZtAAERthLEdvE826.jpg

使用 ipvsadm -L -n --rate 列出速率信息
wKiom1Vh0iHDtBcEAAESzY34AmA709.jpg

案列2、lvs-nat类型的telnet 服务


拓扑图同上
wKioL1Vhzn6TNE_BAATXPXUORgk219.jpg




















1
2
3
4
5
6
Director ipvs设置:

ipvsadm -A -t 172.16.10.10:23 -s rr  # 创建集群服务 172.16.10.10 tcp 23 端口,并使用rr轮询算法

ipvsadm -a -t 172.16.10.10:23 -r 192.168.1.11:23 -m   #添加Real server1 -m 指定为lvs-nat模型 因为使用轮询算法权重无需设置
ipvsadm -a -t 172.16.10.10:23 -r 192.168.1.12:23 -m   #添加Real server1 -m 指定为lvs-nat模型 因为使用轮询算法权重无需设置




登录测试:

wKioL1Vh1a2AEJMIAALRYd3kgVs845.jpg

wKioL1Vh1gnRqLp0AAKv4v5wmcE470.jpg
                   


运维网声明 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.yunweiku.com/thread-70286-1-1.html 上篇帖子: LVS-NAT模型实践 下篇帖子: LVS四种实现模式详解 linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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