LVS基础

LVS的一些相关术语

LVS的模型中有两个角色:
调度器: Director,又称为Dispatcher,Balancer
调度器主要用于接受用户请求。

真实主机: Real Server,简称为RS。
用于真正处理用户的请求。

而为了更好地理解,我们将所在角色的IP地址分为以下三种:
Director虚拟IP:调度器用于与客户端通信的IP地址,简称为VIP
Director IP:调度器用于与RealServer通信的IP地址,简称为DIP.Real
Server:后端主机的用于与调度器通信的IP地址,简称为RIP。

LVS目前实现了10种调度算法

常用的调度算法有4种

  • 轮询 rr

这种算法是最简单的,就是按依次循环的方式将请求调度到不同的服务器上,该算法最大的特点就是简单。轮询算法假设所有的服务器处理请求的能力都是一样的,调度器会将所有的请求平均分配给每个真实服务器,不管后端 RS 配置和处理能力,非常均衡地分发下去。

  • 加权轮询 wrr

加权,手动让能者多劳。
调度器通过“加权轮叫“调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器能处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

  • 最少连接 lc

连接最少,也就是Overhead最小就调度给谁。
假如都一样,就根据配置的RS自上而下调度。

  • 加权最少连接 wlc

这个算法比 lc 多了一个权重的概念。

不常用的6种

  • 基于局部的最少连接 lblc

正向代理缓存机制。访问缓存服务器,调高缓存的命中率。
和传统DH算法比较,考虑缓存服务器负载。可以看做是DH + LC
如果有两个缓存服务器
1.只要调度到其中的一个缓存服务器,那缓存服务器内就会记录下来。下一次访问同一个资源的时候也就是这个服务器了。(DH)
2。有一个用户从来没有访问过这两个缓存服务器,那就分配到负载较小的服务器。LC

  • 带复制的基于局部的最少连接 lblcr

缓存服务器中的缓存可以互相复制。
因为即使没有,也能立即从另外一个服务器内复制一份,并且均衡负载

  • 源地址散列 sh

来自同一个IP地址的请求都将调度到同一个RealServer

  • 目标地址散列 dh

不管IP,请求特定的东西,都定义到同一个RS上。

  • 期望最少的延迟 sed

WLC算法的改进。
最短的期望的延迟”是基于WLC算法的,只是其计算方法不同具体算法如下:
(活性+ 1)* 256 /重量

最少队列 nq

SED算法的改进。
无需队列。如果有台realserver的连接数= 0就直接分配过去,不需要在进行SED运算。如果没有服务器连接数为空闲,则使用SED算法。

LVS调度模式
三种工作模式
LVS-NAT (Network Address Transform)

拓扑
lvs-nat

原理:

  • 通过网络地址转换实现的虚拟服务器
  • 所以请求和响应都经由调度器。

LVS-NAT的优点与缺点

优点:

  • 支持端口映射
  • RS可以使用任意操作系统
    节省公有IP地址。
  • RIP和DIP都应该使用同一网段私有地址,而且RS的网关要指向DIP。
  • 使用nat另外一个好处就是后端的主机相对比较安全。

缺点:

  • 请求和响应报文都要经过导演转发;大并发访问时,调度器的性能可能成为系统瓶颈。

LVS-TUN (IP Tuneling)

原理:

  • 基于隧道封装技术。在IP报文的外面再包一层IP报文。
  • 当调度器接收到请求的时候,选举出调度的RealServer
  • 当接受到从调度而来的请求时,RealServer则会使用LO接口上的VIP直接响应CIP。这样CIP请求VIP的资源,收到的也是VIP响应。

优点:

  • RIP,VIP,DIP都应该使用公网地址,且RS网关不指向DIP;
  • 只接受进站请求,解决了LVS-NAT时的问题,减少负载。
  • 请求报文经由Director调度,但是响应报文不需经由Director。

缺点:

  • 不指向调度器所以不支持端口映射。
  • RS的操作系统必须支持隧道功能。
  • 隧道技术会额外花费性能,增大系统开销。

LVS-DR (Direct Routing)

拓扑
lvs-dr
说明:VIP是对客户端提供服务的IP地址,RIP是后端服务器的真实IP地址,DIP是调度器与后端服务器通信的IP地址(DIP必须配置在虚拟接口)。

proxy# cp /etc/sysconfig/network-script/ifcfg-eth0{,:0}
vim /etc/sysconfig/network-script/ifcfg-eth0:0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=eth0:0
DEVICE=eth0:0
ONBOOT=yes
IPADDR=192.168.4.5
PREFIX=24

RealServer# cp /etc/sysconfig/network-script/ifcfg-lo{,:0}
vim /etc/sysconfig/network-script/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.5
NETMASK=255.255.255.255
NETWORK=192.168.4.5
BROADCAST=192.168.4.5
ONBOOT=yes
NAME=lo:0

原理

  • 当Director接收到请求之后,通过调度方法选举出RealServer。
  • 讲目标地址的MAC地址改为RealServer的MAC地址
  • RealServer接受到转发而来的请求,发现目标地址是VIP。RealServer配置在lo接口上。
  • 处理请求之后则使用lo接口上的VIP响应CIP。

优点:

  • RIP可以使用私有地址,也可以使用公网地址。
  • 只要求DIP和RIP的地址在同一个网段内。
  • 请求报文经由调度器,但是响应报文不经由调度器。
  • RS可以使用大多数OS

缺点:

  • 不支持端口映射。
  • 不能跨局域网。

总结:
三种模型虽然各有利弊,但是由于追求性能和便捷,DR是目前用得最多的LVS模型。

LVS使用

安装

yum install -y ipvsadm

ipvsadm用法

  • -A 添加虚拟服务器(调度器)
  • -t 添加群集地址(VIP,Virtual IP)
  • -s 制定负载调度算法

ipvsadm -A -t 201.1.1.1:80 -s rr

添加、删除realserver节点

  • -a 添加RealServer
  • -d 删除RealServer
  • -r 制定RealServer地址
  • -m 使用NAT模式;-g、-i分别对应DR、TUN模式
  • -w 为节点服务器设置权重,默认为1

ipvsadm -a -t 201.1.1.1:80 -r 192.168.1.10:80 -m
ipvsadm -a -t 201.1.1.1:80 -d -r 192.168.1.10:80 -t 201.1.1.1:80

查看IPVS、保存规则并设置开机自启

ipvsadm -Ln
ipvsadm-save -n > /etc/sysconfig/ipvsadm
systemctl enable ipvsadm

清空规则

ipvsadm -C

注意:

1、配置lvs-nat模式时需开启调度服务器的路由转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward
echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf
sysctl -p

2、配置lvs-dr模式时需调整如下内核参数,目的是当客户请求VIP时,只让调度器响应,其他主机不做任何响应

vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2

当有arp广播问谁是调度器时,其他主机忽略该ARP广播,不做任何回应
本机不要向外宣告自己的lo回环地址是VIP地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值