LVS集群


集群采用三层结构
1:负载调度层:他是整个集群对外面的前端机。负责将客户的请求发送到一组服务器上执行。

2:服务器池:是一组真正执行客户请求的服务器

3:共享存储:他为服务器池提供一个共享的存储区,这样使服务器吃拥有相同的内容

组成

lPVS和ipvsadm

IPVS工作在内核空间,真正的调度由它完成。

我们借助工作在用户空间管理工具ipvsadm来管理IPVS。负责为ipvs内核框架编写规则,定义虚拟服务器,定义后端真实服务器。定义工作模式和调度算法。

ipvsadm

-C 清除表中所有的记录
-A --add-service在服务器列表中新添加一条新的虚拟服务器记录

-t 表示为tcp服务
-u 表示为udp服务ipvsadm基本命令参数如下:

-t 指定虚拟服务器的IP地址和端口

-s 指定调度算法,ss为轮询,wrr为加权轮询,dh为目标地址散列,sh为源地址散列,lc为最少链接等

-a 在对应的VIP下添加RS节点

-g 指定LVS的工作模式为DR模式

-l 指定LVS的工作模式为tunnel模式

-m 指定LVS的工作模式为NAT模式

术语

DS:Director Server。前端负载均衡器节点

RS:Real Server。 后端真实工作服务器

LB:Load Balancer 前端的负载均衡器

DIP: Director IP

VIP: Director Virtual IP

CIP: Client IP

RIP: Realserver IP

工作模式:

NAT 网络地址转换

通过修改请求报文的目标IP地址(同时可能修改目标端口)至挑选出某RS的RIP实现地址转发。

请求报文:

  • 用户对director发起请求, 这时在三层的首部中, 源地址是CIP, 目标地址是VIP;
  • 报文从director的配置了VIP这种网卡进入被PREROUTING链捕获, 本应该交由FORWARD链, 但此时IPVS强行修改路径将数据包从PREROUTING链转发至INPUT链上; 并且将目标地址改为RIP, 将报文交由POSTROUTING链;
  • 然后从配置了DIP这张网卡出去, 交给后端的RealServer(通过挑选算法.)
  • RealServer收到请求后, 将响应报文封装, 此时数据包的目标地址是CIP, 源地址是RIP;
  • 数据包被发送至Director, 从配置了DIP的网卡进入, 交由PREROUTING链, 然后转发至INPUT链, 这时数据包的目标地址不变, 仍然是CIP, 而源地址被修改为VIP;
  • 然后交由POSTROUTING链, 从配置了VIP的网卡出去, 通过路由器发送给互联网的Client.

配置lvs-nat的注意事项

  • RS和DIP应该使用私网地址, 且RS的网关要指向DIP.
  • 请求和响应报文都要经由director转发; 极高负载的场景中, director可能会成为系统瓶颈.
  • 支持端口映射.
  • RS可以使用任意OS.
  • RS的RIP和director的DIP必须在同一IP的网络

DR 直接路由

它通过修改报文的目标MAC地址进行转发.

原理:

请求报文流程图:
dr模型请求报问流程

  • Clint对director发起请求, 这时在三层的首部中, 源地址是CIP, 目标地址是VIP; 在二层的首部中源mac是CIP-MAC, 目标mac是VIP-MAC;
  • VIP配置在网卡ens33的别名上(ens33:0); 数据包从ens33:0进入, 在到达INPUT链后;
  • 此时源IP和目标IP均未修改, IPVS只是修改了源MAC为DIP-MAC, 目标MAC为RIP-MAC;
  • 由于DIP和RIP处于同一个网络中, 所以是通过二层传输; POSTROUTING链检查目标MAC为RIP-MAC, 便将数据包交由配置了DIP的网卡ens33发送至后端的RealServer上(通过挑选算法).
  • 数据包从RIP进入RealServer, 然后被交给绑定了VIP的lo:0(lo的别名), lo:0将数据包解包后将请求报文交给用户空间的应用获取Client请求的资源.

响应报文流程图:

dr模型响应报文流程

  • lo:0获取请求报文后, 此时目标地址为CIP, 源地址为VIP; 目标MAC被修改CIP-MAC, 源MAC被修改为VIP-MAC;
  • lo:0将数据包发送给配置了RIP的网卡(ens33), 此时数据包将被通过互联网路由发回给Client.

配置lvs-dr的注意事项

  • 保证前端路由器将目标IP为VIP的请求报文发送给director:
    • 静态绑定
    • arptables
    • 修改RS主机内核参数
  • RS的RIP可以使用私有地址, 也可以使用公网地址;
  • RS跟Director必须在同一物理网络中;
  • 请求报文经由Director调度, 但响应报文一定不能经由Director;
  • 不支持端口映射;
  • RS可以是大多数OS;
  • RS的网关不能指向DIP.

TUN 隧道模式

不修改请求报文的IP首部, 而是通过在原有IP首部(cip <–> vip)之外, 在封装一个首部(dip <–> rip).

请求报文流程图:
tun模型请求流向

  • 回环接口获取响应报文后, 将报文封装通过本机的物理网卡发送出去, 此时数据包首部的源IP为VIP, 目标IP为CIP;
  • 数据包经过重重路由后发送至Client.

lvs-tun模型的注意事项:

  • RIP, DIP, VIP全得是公网地址;
  • RS的网关不能指向DIP
  • 请求报文必须经由director调度, 但响应报文必须不能经由director;
  • 不支持端口映射;
  • RS的OS必须支持隧道功能.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值