实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。

在已有的IP负载均衡技术中:

1)有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。

2)在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling)

3)通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing)。

  它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术

第一种模式

VS/NAT技术(Virtual Server via Network Address Translation)

下面的这种nat模式的数据包传输模式不是很常用,因为存在两个弊端:
1、数据包大小传输有限制
2、网络服务的非对称性,具体的是用户的下载文件的速度的传输速度和上传的速度相差很大
3、数据包无论是从哪到哪都会走负载均衡服务器,导致了无用资源的浪费

 第二个模式:

VS/DR(Virtual Server via Direct Routing)

这个client-server-client数据包的传输模型才是用的最多的模型(弊端:由负载均衡服务器和realserver必须是在同一网段)
 

注意这个最为常用的通信的方式:其中的三个vip都是一样的,
 
在全中国的应用的实例:全国在杭州、北京等地有很多个数据中心(可以理解为我们所说的负载均衡服务器,)之后这个负载均衡服务器,他们的后面连接着很多的realserver(真实的服务器),具体的数据包的过程:见第二个图
图一:
 

图二:

 
 
a、b。。。代表的是数据中心(均衡服务器),里面的点代表的是客户端,周围的客户端都是向他们发出请求的,之后负载均衡服务器的做法是:见图三
 
 
 
图三:
其中右侧的那个长方形就是具体的负载均衡服务器,里面的横线代表的是一个个的realserver
具体realserver中的做法:见图四以及上面的解释

图四

client向负载均衡服务器发送一个CIP_VIP形式的数据包,之后发到一个负载均衡服务器,被负载均衡服务器查看自己的VIP和发过来的封装成的数据包CIP_VIP去判断是否接收,。之后被具体的负载均衡服务器接收之后,就会均衡服务器中的DIP中记录的realserver中的所有的mac地址(具体的这些mac地址是之前负载均衡服务器和realserver相互交互的时候记录保存下来的mac地址)之后均衡服务器会将CIP_VIP这个从客户端收到的数据包包装一个含有realserver的mac地址的层,之后就会将这个再次的包装一层的数据包发给相应的mac地址的realserver服务器,之后的过程,之后realserver端直接根据收到的CIP_VIP   在内存中建立一个realserver里面存在的socket(这个可以在linux中使用netstat -natp)去查看现阶段的这台服务器建立的所有的scoket连接,其中由于从客户端收到了CIP_VIP 的请求,所以会建立一个CIP:PORT     VIP:PORT的socket连接,之后这个服务器端包装好想要返回给客户端的数据包之后,就会直接的去根据以前建立的CIP:PORT     VIP:PORT的socket连接,直接走自己身上有的PIP(public ip)直接的发送数据包到之前发送请求给这个realserver的客户端,这样的话就会避免了比如客户端下载东西对应的服务器上传东西,上传的速度就会大大的提升

具体的图中三个VIP是完全的一样的,只是realserver中的vip是不会暴露在公共下的,只是自己知道,用于到时候realserver收到的包装有mac层的数据包拆开之后,见到里面的CIP_VIP中的vip是自己内部的vip,这时这个realserver才会真正的一次收到客户端发过来的CIP_VIP数据包,----------终于完成了一次数据包的client---->server的传输,之后

返回的数据包一般直接是之前建立的CIP:PORT     VIP:PORT的socket连接,直接走自己身上有的PIP(public ip)直接的发送数据包到之前发送请求给这个realserver的客户端,这样的话数据包中的很多的IO限制就会解除掉了。

realserver要建立一个对外隐藏的vip,这样的话,整个网络中对外暴露的只有负载均衡服务器上的VIP,而 RealServer上的存在的VIP只有自己知道,不会去暴露给外界,这样的话,realserver端也就有VIP了。之后等待客户端发数据包给负载均衡服务器的时候,直接不用D_NAT转换了,直接可以发给相应的Realserver(真实服务器),
 
 
 

第三模式:

VS/TUN (Virtual Server via IP Tunneling)

又称隧道模式

也就是由负载均衡服务器到realserver之间的传输变成了:

    负载均衡服务器将CIP_VIP这个包在外包一层DIP_RIP(这个是由负载均衡服务器到realserver的一个数据包)用这个去包装之前的那个CIP_VIP,直接走隧道到realserver

    之后realserver返回客户端可以走隧道返回或者走pip---->一个运营商----->client

具体的负载均衡的实现见下节----LVS

原创文章:转载请注明作者及出处!

最新文章

  1. Atitit.报名模块的管理
  2. PADS_AD_Cadence转换
  3. valgind使用错误——检测不同位目标程序
  4. AP_总体业务及方案
  5. 百度翻译API
  6. OC 实现的几个排序算法
  7. C#下的 Emgu CV
  8. 查看Ubuntu操作系统位数
  9. java基础练习 2
  10. 安卓中webview读取html,同时嵌入Flex的SWF,交互
  11. 原生http请求封装
  12. 最大流 USTC1280
  13. python_format格式化输出、while else、逻辑运算符、编码初识
  14. Java笔记(十)堆与优先级队列
  15. 格式化输出&初始编码&运算符
  16. springboot 升级到2.0后 context-path 配置 不起作用,不生效 不管用 皆是因为版本改动导致的在这里记录一下
  17. kepware http接口 swift
  18. react native中如何往服务器上传网络图片
  19. linux下指定源下载
  20. mysql 官方集群

热门文章

  1. 【转载】Hive vs HBase
  2. 将Tomcat集成到idea中
  3. fpga vga 显示
  4. 1.6 SQL (根据时间取值)
  5. Apache Kafka(六)- High Throughput Producer
  6. Laravel 部署到阿里云 / 腾讯云
  7. 378. 有序矩阵中第K小的元素
  8. JavaScript arguments对象浅析
  9. 【网易官方】极客战记(codecombat)攻略-地牢-轰轰
  10. shell脚本编程学习笔记(四)shell操作数据库