热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LVS介绍与搭建

Nginx与LVS区别:Nginx7层反向代理LVS4层数据包的转发LVS介绍:LVS是linuxVirtualserver简写,虚拟服务器

Nginx与LVS区别:

  Nginx 7层  反向代理

  LVS  4层   数据包的转发

 

LVS介绍:

    LVS是linux Virtual server简写,虚拟服务器

 LVS负载均衡调度技术是在LINUX内核中实现的,使用该软件配置LVS时候,不能直接配置内核中的ipvs,而是使用ipvs的管理工具ipvsadm(命令行工具)进行管理,但是keepalived软件可以直接管理ipvs

 

  虚拟IP地址(Virtual  ip  address)    VIP     vip为Director用于向客户端计算提供服务的IP地址

  真实IP地址(Real Server IP address) RIP    在集群下面节点上使用的IP地址,物理IP地址

Director的IP地址(Director IP address) DIP   Director用于连接外网网络的IP地址,物理网卡上的ip地址

客户端主机ip地址(Client IP address)  CIP   客户端用户计算机请求集群服务器的IP地址

 

 

LVS 集群的4种工作模式介绍以及原理介绍

  1. NAT(Network Address Translation)
  2. TUN(Tunneling)
  3. DR (Direct Routing)最常用的
  4. FULLNAT(Full Network Address Translation)为阿里巴巴开发的

 

DR模式:

(仅供参考)

 

  特点

  1.    通过在调度器LB上修改数据包的目的mac地址实现转发,源IP地址仍然是CIP,目的IP地址仍然是VIP
  2.      请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT相比)
  3.     因DR模式是通过MAC地址的改写机制实现的转发,因此所有RS节点和调度器LB只能在一个局域网中
  4.    需要注意RS节点的VIP的绑定(lo:VIP/32,lo1:vip/32)和arp抑制问题
  5.      RS节点的默认网关不需要是调度器LB的DIP,而直接是IDC机房分配上级路由器的ip(这是RS带有外网ip地址情况),理论上来讲,RS可以出外网即可,不是必须配置外网ip
  6.       由于DR模式的调度器仅进行了目的MAC地址的改写,因此,调度器LB无法改变请求的报文的目的端口
  7.            当前调度器LB支持几乎所有unix/linux系统,但是目前不支持windows系统,真是服务器RS节点可以是windows
  8.           DR模式效率很高,配置比较麻烦,访问量不是特别大的时候,可以使用haproxy/nginx取代即可(参考1000-2000pv)
  9.        直接对外的访问业务,列如web服务做RS节点,RS最好用公网ip地址,如果不直接对外的业务,列如:mysql,存储系统RS节点最好用内部IP

 

NAT模式:

   特点

  1.      nat技术将请求的报文(通过DNAT方式改写)和响应的报文(通过SNAT方式改写),通过调度器地址重写然后在转发给内部的服务器,报文返回时在改写成原来的用户请求的地址
  2.    只需要在调度器LB上配置wan公网ip即可,调度器也要有私有lan ip和内部RS节点通信
  3.    每台内部RS节点的网关地址,必须要配成调度器LB的私有LNA内物理网卡地址(LDIP),才能确保数据报文返回时仍然经过调度器LB
  4.     由于请求与相应的数据报文都经过调度器LB,因此,网站访问量大的时候,LB有瓶颈,一般要求最多10-20台节点
  5.    NAT模式支持对IP及端口的转换,即用户请求10.0.0.1:80 可以通过调度器转换到RS节点的10.0.0.2:8080(DR和TUN模式不具备)
  6.  所有NAT内部RS节点只需要配置私有LAN IP即可
  7.    由于数据包来回都需要经过调度器,需要开启内核转发  net.ipv4.ip_forward = 1,也要包括iptables防火墙forward功能

 

 

TUNNEL模式

  特点

  (直接加ip头)

  1. 负载均衡器通过把请求的报文通过IP隧道的方式
  2. 由于真是服务器将相应处理后的报文直接返回给客户端用户,因此,最好RS有一个外网ip地址,这样效率会更高
  3. 由于调度器LB只处理入站请求的报文,,集群系统的吞吐量可以提高10倍以上,但是隧道模式也会带来系统开销,TUN模式适合LAN/WAN
  4. TUN模式的LAN环境转发不如DR模式效率高,而且还要考虑系统对IP隧道支持问题
  5. 所有的RS服务器都要绑定VIP,一直ARP,配置复杂
  6. LAN环境一般采用DR模式,wan环境可以用TUN模式,但是当前在WAN环境下,请求转发更多被haproxy/nginx/DNS调度等代理取代
  7. 直接对外的访问业务,列如web服务做RS节点,最好用公网ip地址,不直接对外的业务最好内部ip

 

 

 

LVS最常用的几种算法

rr   轮循调度,分配不同的RS节点

wrr   加权轮询调度,根据节点权值分配任务

wlc   加权最小连接数调度

dh  目的地址哈希调度

sh   源地址哈希调度

 


推荐阅读
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • LVS-DR数据包流向分析介绍
    下文给大家带来LVS-DR数据包流向分析介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍, ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • 在启用分层编译的情况下,即时编译器(JIT)的触发条件涉及多个因素,包括方法调用频率、代码复杂度和运行时性能数据。本文将详细解析这些条件,并探讨分层编译如何优化JVM的执行效率。 ... [详细]
  • 【Linux332】LVS的DR配置详解(ipvsadm+arptables)
    文章目录1.DR简 ... [详细]
  • java大数据量调优(超赞值得收藏)
    从总体上来看,对于大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节: ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
author-avatar
海带木耳求_529
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有