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

[经验分享] 负载均衡LVS集群详解

[复制链接]

尚未签到

发表于 2015-9-5 10:09:22 | 显示全部楼层 |阅读模式
   一、LB--负载均衡
  在负载均衡集群中需要一个分发器,我们将其称之为Director,它位于多台服务器的上面的中间层,根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来进行响应请求,而其分发的方式则是根据某个算法进行的。
  二、HA--高可用
  高可用顾名思义就是服务的可用性比较高,即当我们不会因为某台服务器的宕机,从而造成我们的服务不可用,其工作模式则是将一个具有故障的服务转交给一个正常工作的服务器,从而达到服务不会中断。
  三、LVS:
  LVS:Linux Virtual Server,可以实现LINUX平台下的简单负载均衡。
  一般来说,LVS采用三层结构:负载调度器、服务器池、共享存储。工作在TCP/IP协议的四层,其转发是依赖于四层协议的特征进行转发的,由于其转发要依赖于协议的特征进行转发,因此需要在内核的TCP/IP协议栈进行过滤筛选,可想而知,这就需要在内核的模块来完成,而这样的过滤转发规则又是由管理员进行定义的,所以,LVS就是两段式的架构设计,在内核空间中工作的是"ipvs",而在用户空间中工作的,用来定义集群服务规则的是"ipvsadm"。这就很容易想到iptables。
  LVS的三种转发模式:
  LVS-NAT:网络地址转换 Network address translation
  LVS-DR:直接路由 Direct routing
  LVS-TUN:IP隧道 IP tunneling
  VIP:Director用来向客户端提供服务的IP地址
  RIP:集群节点(后台真正提供服务的服务器)所使用的IP地址
  DIP:Director用来和D/RIP 进行联系的地址
  CIP:公网IP,客户端使用的IP。
  LVS-NAT:------扩展的DNAT
  1.所有的real server和Director要在同一网段
  2.通常情况下RIP是私有地址,仅用于集群节点之间进行通信
  3.Director同时处理入站和出站请求
  4.Real server的网关要指向DIP
  5.可以实现端口映射(请求端口和提供服务的端口可以不一致)
  6.Real server可以是任意的操作系统
  7.Director很容易成为系统性能的瓶颈

DSC0000.jpg   数据包地址转换过程:
  S:CIP D:VIP------->Director------>S:CIP D:RIP------>Real Server------>S:RIP D:CIP----->Director----->S:VIP D:CIP
  LVS-DR:用户的请求经过Director,然后real server直接响应给客户端任何real server网关不能执行Drector
  1.集群节点必须在同一个物理网络中,基于MAC转发
  2.RIP可以使用公网地址
  3.Director仅处理入站请求,响应的数据包不在经过Director
  4.Real server的网关不能指向Director
  5.不支持端口映射
  6.大多数的操作系统都可以用于real server(隔离ARP广播,同一块网卡上支持多个IP)
  7.Director的性能表现远远优于NAT

DSC0001.jpg   数据包地址转换过程:
  S:CIP D:VIP----->Director--->S:CIP D:RIP -----> Real Server---> S:VIP D:CIP
  LVS-TUN:用户的请求经过Director,然后real server直接响应给客户端
  1.Real server和Director不需要在一个物理网段中
  2.RIP一定不能是私有地址
  3.Director仅处理入站请求
  4.Real server的网关不能指向Director
  5.不支持端口映射
  6.仅有支持IP隧道的操作系统才能用于real server

DSC0002.jpg   与DR的网络结构一样,但Director和Real Server可以在不同的网络当中,DIP----->VIP 基于隧道来传输,在数据包外层额外封装了S:DIP D :RIP 的地址。
  四、LVS的调度算法:
  1.静态调度算法:
  RR:Round-robin:轮循
  WRR:Weighted round-robin:加权轮循-----按照性能分配,为其计算出权重
  DH:Destination hashing:目标地址hashing-----将某个固定IP的请求转发给一个相同的real server,用于具有缓存服务器的
  SH:Source hashing:源地址hashing
  2.动态调度算法:根据分发算法和real server的负载状态设置出调度决策,Director对每一个连接进行追踪监控是否处于活动状态(ESTABLESHED)
  LC:Least connection:最少连接-----监控每一个real server当前处于活动状态连接和非活动状态连接数,然后计算出其当前负载:active*256+inactive=overhead
  WLC:Weighted least connection:加权最少连接------overhead/weight,考虑到real serverd的性能,默认集群算法
  SED:Shortest Expected Delay:最短的期望的延迟----不考虑非活动状态的连接,算法:(active+1)*256/weight=overhead
  NQ:Never Queue:永不排队-----没有连接时,直接转发
  LBLC:Locality-Based Least-Connection:基于本地的最少连接,动态DH算法
  LBLCR:Locality-Based Least-Connection with replication Scheduling:带复制的基于本地最少连接,缓存是共享的
  五、ipvsadm
  ipvsadm:1.定义集群服务,指定VIP,协议,端口、 2.向集群服务添加RS
  用法:
  ipvsadm -A|E -t|u VIP:PORT [-s scheduler] [-p [timeout]] [-M netmask]]
  -A:定义新的集群服务
  -E:修改已有的集群服务
  -D:删除某集群服务
  -s:指定调度算法,可选项:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq ,默认的调度算法是: wlc.
  -C:清空
  -R:等同ipvsadm-restore 恢复虚拟服务器规则
  -S:等同ipvsadm-save 保存虚拟服务器规则,输出为-R 选项可读的格式
  -L|l:列出当前已定义的集群服务和real server
  --stats:显示统计信息 与-L同时使用
  --rate:显示入站响应速率 与-L同时使用
  -c:显示LVS 目前的连接 与-L同时使用
  -n:不进行反向解析 与-L同时使用
  -Z:清空计数器
  -t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务
  -u --udp-service service-address 说明虚拟服务器提供的是udp 的服务
  -f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。
  -p --persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。
  ipvsadm -a|e -t|u VIP:PORY -r RIP [-g|i|m] [-w weight]
  -a:添加real server
  -e:修改real server
  -g:指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)
  -i:指定LVS 的工作模式为隧道模式
  -m:指定LVS 的工作模式为NAT 模式
  -w:真实服务器的权值
  ipvsadm -d -t|u service-address -r server-address 删除一条虚拟服务器记录中的某条真实服务器记录

运维网声明 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-109633-1-1.html 上篇帖子: RedHat5实现负载均衡(LVS--DR方法实现) 下篇帖子: LVS 状态同步
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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