LVS的工作原理

LB Load Balancing:解决方案

硬件:

F5 BIG-IP

思杰 Citrix Netscaler

A10 A10

Array 

Redware

软件:lvs

 linux Virtual Server 作者章文嵩博士

ipvs相当于netfilter,工作在内核中,将用户转发

   框架,需要依赖以规则完成转发

   ipvs集群服务

     定义一个或多个后端的服务器

ipvsadm

LVS:四层交换、四层路由(据说并发400w,F5 600w)

VIP:

keepalived

CIP   client IP

Director:负载均衡器

real server

DIP:跟real server交互

RIP

CIP<–>VIP–DIP<–>RIP

LVS类型:

NAT:–>(DNAT)

DR

TUN

FULLNAT

LVS的工作原理

blob.png

LVS NAT的模型

blob.png

LVS NAT的特性

1.RS的应该使用私有地址

2.RS的网关必须指向DIP

3.RIP和DIP必须在同一网段内

4.请求和响应的报文都得经过Director,在高负载场景中,Director很可能成为性能瓶颈

5.支持端口映射

6.RS可以使用任意支持集群服务的OS

blob.png

LVS DR类型

1.让前段路由将请求发往VIP时,只能是Dirctor上的VIP

解决方案

1.静态地址绑定

未必有路由器的配置权限

Director调用时静态地址绑定将难以使用

    2.arptables

    3.修改linux内核参数,将RS上的VIP配置在lo接口的别名上,限制linux仅对对应接口的ARP请求做相应

LVS DR类型的特性

1.RS可以使用私有地址,还可以使用公网地址,此时可以直接通过互联网连入RS,以实现配置、监控等

2.RS的网关一定不能指向DIP

3.RS跟Dirctory要在同一物理网络内(不能有路由器分隔)

4.请求报文经过Director,但响应报文一定不经过Director

5.不支持端口映射

6.RS可以使用大多数的操作系统

blob.png

LVS TUN类型:IP隧道

  1.RIP,DIP,VIP都得是公网地址

  2.RS的网关不会指向也不可能指向DIP

  3.请求报文经过Director,但响应报文一定不经过Director

  4.不支持端口映射

  5.RS的OS必须得支持隧道功能

总结:最常用的还是LVS的DR模式,在线上已经部署过很多次了

原创文章,作者:令狐冲,如若转载,请注明出处:http://www.178linux.com/62847

(0)
令狐冲令狐冲
上一篇 2016-12-07 11:58
下一篇 2016-12-07 16:38

相关推荐

  • VIM命令 总结

    VIM命令总结

    2017-11-25
  • Linux的程序包管理,RPM,yum及编译安装简介

    Linux的程序包管理,RPM,yum及编译安装简介   Linux的程序包,指的是ELF格式的二进制应用程序文件所组成的软件包。它一般由二进制文件、库文件、软件配置文件及帮助文件等组成。而对这些包进行管理的工具,主流分为两种,在debian上,用的是apt-get管理deb包;在redhat上,主要用rpm作为软件包管理工具。在这里,我简单的介绍…

    Linux干货 2016-05-29
  • CentOS 6系统启动流程

    Linux系统的组成 内核+根文件系统 内核功能:     进程管理、内存管理、文件系统管理、网络管理、安全功能、驱动程序 运行中的系统环境可分为两层:内核空间、用户空间     用户空间:应用程序(进程或线程)     内核空间:内核代码…

    Linux干货 2016-09-15
  • 马哥教育网络班22期+第6周课程练习 忍者乱太郎喻成

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#cp /etc/rc.d/rc.sysinit /tmp方法一 vim法在vim下用 : 进入命令行模式     %s/^&nbs…

    Linux干货 2016-10-24
  • 内部命令与外部命令

    内部命令与外部命令 内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。 外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。 1.type type COMMAND 判断一个命令的类型即判断一个命令是否为内置命令。   2.enable(内部命令) enable既可以查看内部命令,同时也可以判断是否为内部命令 enable 显示所有…

    2017-07-15