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

1.6.1linux和高并发lvs集群和高并发lvs中3种模型推导

目录1.写在前面2.四层的负载均衡拓扑图3.VS-NAT(基于网络地址转换,networkaddresstranslation,NA

目录

1.写在前面

2.四层的负载均衡拓扑图

3.VS-NAT(基于网络地址转换,network address translation ,NAT)

3.1 SNAT(源地址转换)

3.2 DNAT(目标地址转换)

4.VS-DR(直接路由,direct routing,DR)

5.VS-Tun(隧道,tunnelling)



1.写在前面

        这部分我们开始看负载均衡中lvs技术,首先,我们先确定一些名词代表的含义,比如VIP、DIP等。无论我们使用什么负载均衡技术对于客户端是隐藏的,客户端只关心输入和输出过程。LVS负载均衡集群系统中的director控制种类,包括网络地址转换,直接路由和隧道三个方式。

2.四层的负载均衡拓扑图

  • (1)当所有客户端请求来到负载均衡服务器,我们使用lvs四层负载技术,负载均衡服务器仅仅转发并不做三次握手,向后转发握手的包,自己并不回握手信息。
  • (2)转发过程中,需要保证三次握手到四次分手之间是不可分割的过程。比如一个客户端a连接到了服务器b,a到b从连接、传输数据到分手之间是不可分割的。负载均衡服务器需要保证有这个能力保证这个过程不会被分割。
  • (3)负载均衡服务器并不知道客户端请求的是什么内容,所以每一台后端服务器应该做了镜像拷贝,部署了相同的内容。
  • (4)集群服务器承载数据有两种方式,一种是镜像,另一种是切片。镜像存储能力不会有扩充,切片对应的存储能力有扩充。

3.VS-NAT(基于网络地址转换,network address translation ,NAT)

3.1 SNAT(源地址转换)

        在网络中分为公网ip和私网ip地址,互联网上可见的都是公网ip地址,是唯一的。而我们家里面、教室里面都是用的私网ip地址,事实上公网ip全球分布是不公平的,美国每一个可以有好多公网ip,但是咱们国内好几个人才能分到一个公网ip,所以NAT技术的使用非常普遍。当所有私有ip转换为同一个公网ip时候,路由器会搞不清应该回复给哪一个客户端。所以路由器本身也会为每一个连接申请一个端口号,用来标记转发的连接。

3.2 DNAT(目标地址转换)

        DNAT和SNAT一样,只不过更改的是目标ip地址。在负载均衡服务器上应用如下:

        这种优势很明显,服务器越多越能承担更大的并发量。但是所有压力都放在了负载均衡服务器上面,如果可以通过后端服务器独立的返回给对应的客户端肯定是可以解决这个问题的。并且常识是我们通常上传大小远远小于下载大小,如果我们解决了回复的这个过程,将大大减小均衡服务器压力。

        VS-NAT是LVS最基本的方法,如果想要设置一个用于测试的LVS,这是一个最简单的方法。当客户发出请求,lvs负载均衡中的director会将接受到的包的目标地址重写为某个real-server,并将其转发到real-server。Real-server的回复会发到director,director将回复包的源地址改写为VIP。不像VS-DR和VS-TUN,real-server只需要一个功能tcp/ip栈。Real-server可以是任意操作系统,在real-server上也不必做什么配置修改(除了在路由表中,需要把real-server的默认网关设为lvs负载均衡中的director)。

4.VS-DR(直接路由,direct routing,DR)

        无论结构怎么改变,客户端都是一样的,cip-vip的一个过程,经过负载均衡器转发变成cip-rip。我们希望可以通过这个服务器独立回复给客户端,如果发送地址为rip-cip,客户端肯定不会接受,客户端仅认可vip-cip。所以我们必须要让该服务器中有vip地址,但是公网ip地址是唯一的,只需要在服务器上配置一个隐藏vip地址,这个ip地址是对外隐藏,对内透明可见的。这样就可以实现从cip-vip直接发送到服务器,然后服务器拿着这个vip封装数据包vip-cip,发送给客户端。

        但是直接拿着cip-vip是不会发给对应服务器的,需要继续封装成 cip-vip:rip-mac,这样数据包可以发送给服务器了。这个是改变了七层模型中链路层部分,是属于局域网,这就要求负载均衡服务器和提供服务的服务器在同一个网段。因为一旦属于互联网,会经过多次跳跃,跳跃过程中mac地址是不断被替代的。

        DR模型缺点就是负载均衡服务器和提供服务的服务器在同一个网段,物理位置受到限制。

        lvs负载均衡中的director接到来自client的请求包后,根据调度算法选择一个real-server,解析出此real-server的MAC地址,并且向此MAC发送包含一个IP datagram的链路层包。Real-server收到包后,恢复IP datagram,查找路由表后发现这个VIP就在本地(设备lo:0,non-arp),移交给端口监听器。因为Real-server收到从CIP->VIP的包,构造回复包时就是VIP->CIP。Real-server查找路由表,并通过到client的缺省gateway发送回复。回复不经过director。在real-server上所需做的工作就是配置一个non-arping的lo:0设备。并且服务需要监听VIP的相应端口。VS-DR方式吞吐量较大,支持的real-server数量较多。

5.VS-Tun(隧道,tunnelling)

        日常生活中隧道是从一端进入,必须从另一端出去,隧道的技术是:点对点、ip外包着ip。VPN可以帮助我们理解,VPN用到了代理,帮助我们访问我们不能访问的ip地址。这样就不用要求负载均衡服务器和提供服务的服务器在同一个网段。

        这种方式是基于VS-DR方式的,不同的只是lvs负载均衡中的director将包IP封装,然后转发到real-server。VS-TUN的real-servers相对于director可以远程;而且每个real-server都可以在单独的网络上,但需要在路由器上做工作,允许源地址为VIP的输出包。配置方法和要求与VS-DR方式类似。只是需要将lo:0设备换为tunl0设备,其对应模块为ipip。


推荐阅读
  • java大数据量调优(超赞值得收藏)
    从总体上来看,对于大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节: ... [详细]
  • LVS-DR数据包流向分析介绍
    下文给大家带来LVS-DR数据包流向分析介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍, ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 【Linux332】LVS的DR配置详解(ipvsadm+arptables)
    文章目录1.DR简 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
  • 如何在PHP中准确获取服务器IP地址?
    如何在PHP中准确获取服务器IP地址? ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
author-avatar
上帝认我做干爹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有