LVS详解

LVS
一、集群
•一组相互独立的、通过高速网络互联的计算机构成一个组,并以单一系统的模式加以管理
•将很多服务器集中起来一起进行同一种服务,在客户端看来就象是只有一个服务器
•可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益
•任务调度则是集群系统中的核心技术
二、集群分类
•高性能计算集群HPC
–通过以集群开发的并行应用程序,解决复杂的科学问题
•负载均衡(LB)集群
–客户端访问负载可以在计算机集群中尽可能平均地分摊处理
•高可用(HA)集群
–当集群中的一个系统发生故障时,集群软件迅速做出反应,将该系统的任务分配到集群中其它正在工作的系统上执行

三、LVS集群组成
•前端:负载均衡层
–由一台或多台负载调度器构成
•中间:服务器群组层
–由一组实际运行应用服务的服务器组成
•底端:数据共享存储层
–提供共享存储空间的存储区域
在这里插入图片描述

三、LVS术语
•Director Server:调度服务器,将负载分发到Real Server的服务器
•Real Server:真实服务器,真正提供应用服务的服务器
•VIP:虚拟IP地址,公布给用户访问的IP地址
•RIP:真实IP地址,集群节点上使用的IP地址
•DIP:Director连到Real Server的IP地址
四、LVS负载均衡方式
•VS/NAT:通过网络地址转换实现的虚拟服务器
–Director将用户请求报文的目的地址改成选定的Real Server地址后,转发给Real Server
–大并发访问时,调度器的性能成为瓶颈
•VS/DR:直接使用路由技术实现虚拟服务器
–通过改写请求报文的MAC地址,将请求发至Real Server,Real Server直接响应客户端
•VS/TUN:通过隧道方式实现虚拟服务器
–Director采用隧道技术将请求发至Real Server后,Real Server直接响应客户端
在这里插入图片描述

五、负载均衡调度算法
•Director Server根据各台服务器的负载情况,通过高度算法动态选择一台Real Server
•LVS目前实现了10种调度算法
•常用调度算法有4种
–轮询(Round Robin)
–加权轮询(Weighted Round Robin)
–最少连接(Least Connections)
–加权最少连接( Weighted Least Connections )
•轮询(Round Robin)
–将客户端请求平均分发到Real Server
•加权轮询(Weighted Round Robin)
–根据Real Server的性能设置权重,再进行轮询调度
–最少连接(Least Connections)
–动态地将网络请求调度到已建立的连接数最少的服务器上
–加权最少连接( Weighted Least Connections )
–根据Real Server的性能设置权重,再将网络请求调度到已建立的连接数最少的服务器上
•基于局部性的最少链接(Locality-Based Least Connections)
–根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接” 的原则选出一个可用的服务器,将请求发送到该服务器
•带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
–维护从一个目标IP地址到一台服务器的映射
–根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器
–当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
•目标地址散列(Destination Hashing)
–根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空
•源地址散列(Source Hashing)
–根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空
•最短的期望的延迟(Shortest Expected Delay Scheduling SED)
–基于WLC算法
–A、B、C三台机器分别权重1、2、3 ,连接数也分别是1、2、3。如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个
–使用sed算法后会进行这样一个运算:A(1+1)/1,B(1+2)/2,C(1+3)/3
–根据运算结果,把连接交给C
•最少队列调度(Never Queue Scheduling NQ)
–如果有台Real Server的连接数为0就直接分配过去,无需SED运算

六、LVS-NAT的实现方式
1、拓扑
在这里插入图片描述

2、配置
在这里插入图片描述
在这里插入图片描述
(1)director

cd /media/Packages

rpm -ihv ipvsadm-xxxxx.rpm

ipvsadm -A -t 201.1.1.1:80 -s rr

ipvsadm -a -t 201.1.1.1:80 -r 202.1.1.10 -m -w 1

ipvsadm -a -t 201.1.1.1:80 -r 202.1.1.20 -m -w 2

ipvsadm -Ln

(2)real server
配置IP地址、HTTPD服务、在防火墙上打开80端口
(3) director的防火墙

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

iptables -I FORWARD -d 202.1.1.0/24 -p tcp --dport 80 -j ACCEPT

iptables -I FORWARD -s 202.1.1.0/24 -p tcp --sport 80 -j ACCEPT

(4)开启director的ip_forward功能
(5)客户端在浏览器中访问201.1.1.1就可以访问到两台real server。

(6)修改算法

ipvsadm -E -t 201.1.1.1:80 -s wrr

(7)保存配置

service ipvsadm save

七、LVS-DR
1、拓扑
在这里插入图片描述

2、real 1配置

vim /etc/sysctl.conf

net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1

cd 网卡配置文件目录

vim ifcfg-lo:0

DEVICE=lo:0
IPADDR=202.1.1.200
NETMASK=255.255.255.255
BROADCAST=202.1.1.200
ONBOOT=yes

3、real 2的配置与real1完全一样
内核参数说明
•arp_announce
–0 (默认):在任意网络接口上的任何本地地址
–1:尽量避免不在该网络接口子网段的本地地址做出arp回应。当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用。此时会检查来访IP是否为所有接口上的子网段内ip之一。如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理
–2:对查询目标使用最适当的本地地址。在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址。首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址。如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送
•arp_ignore
–0(默认值):回应任何网络接口上对任何本地IP地址的arp查询请求
–1:只回答目标IP地址是来访网络接口本地地址的ARP查询请求
–2:只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
–3:不回应该网络接口的arp请求,而只对设置的唯一和连接地址做出回应
–4-7:保留未使用
–8:不回应所有(本地地址)的arp查询
4、director配置

cd 网卡配置文件目录

vim ifcfg-eth0:0

DEVICE=eth0:0
HWADDR=00:0C:29:B6:5E:A4
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=202.1.1.200
PREFIX=24

ipvsadm -A -t 202.1.1.200:80 -s wlc

ipvsadm -a -t 202.1.1.200:80 -r 202.1.1.10 -g -w 1

ipvsadm -a -t 202.1.1.200:80 -r 202.1.1.20 -g -w 2

5、客户端访问
http://202.1.1.200

ab -c 5 -n 1000 http://202.1.1.200/index.html

6、director的防火墙配置

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值