LVS解决高并发,大数据量

本文介绍了LVS(Linux Virtual Server)的工作原理、核心组件及三种模型:LVS-NAT、LVS-DR和LVS-TUN。LVS作为负载均衡器,通过调度算法实现客户端请求的分发,确保高并发和大数据量环境下的服务稳定。文中详细阐述了每种模型的工作机制、特点和配置方法,并提供了实验环境和配置示例,以帮助读者理解并实践LVS在集群环境中的应用。
摘要由CSDN通过智能技术生成

LVS的全称Linux vitual system,是由目前阿里巴巴的著名工程师章文嵩博士开发的一款开源软件。LVS工作在一台server上提供Directory(负载均衡器)的功能,本身并不提供服务,只是把特定的请求转发给对应的realserver(真正提供服务的主机),从而实现集群环境中的负载均衡。

LVS的核心组件ipvs工作在kernel中,是真正的用于实现根据定义的集群转发规则把客户端的请求转发到特定的realserver。而另一个组件ipvsadm是工作在用户空间的一个让用户定义ipvs规则的工具。故我们只要在server上装了ipvsadm软件包就可以定义ipvs规则,而在linux kernel的2.6版本之后kernel是直接支持ipvs的。

注:由于ipvs是接受netfilter五个钩子函数的中的local_in函数控制的。故ipvs不能和netfilter的一些控制规则同时使用。

好了,进入正题,以下是今天所分享的主要内容:

LVS三种模型LVS-NAT2,LVS-DR,LVS-TUN的工作原理及环境搭建。

实验环境:redhat enterprise 5.4+ipvsadm+httpd(用于提供web服务)

这些为LVS环境搭建中的一些专业名词:

RIP:realserver的ip地址

DIP:director的ip地址

CIP:用户客户端的ip地址

VIP:虚拟ip地址(这个ip地址是用户请求的提供服务的ip地址)

一,LVS-NAT

工作原理图:

工作原理:

图3.1:VS/NAT的体系结构

客户通过Virtual IP Address(虚拟服务的IP地址)访问网络服务时,请求报文到达调度器,调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址Virtual IP Address改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将修改后的报文发送给选出的服务器。同时,调度器在连接Hash表中记录这个连接,当这个连接的下一个报文到达时,从连接Hash表中可以得到原选定服务器的地址和端口,进行同样的改写操作,并将报文传给原选定的服务器。当来自真实服务器的响应报文经过调度器时,调度器将报文的源地址和源端口改为Virtual IP Address和相应的端口,再把报文发给用户。我们在连接上引入一个状态机,不同的报文会使得连接处于不同的状态,不同的状态有不同的超时值。在TCP连接中,根据标准的TCP有限状态机进行状态迁移;在UDP中,我们只设置一个UDP状态。不同状态的超时值是可以设置的,在缺省情况下,SYN状态的超时为1分钟,ESTABLISHED状态的超时为15分钟,FIN状态的超时为1分钟;UDP状态的超时为5分钟。当连接终止或超时,调度器将这个连接从连接Hash表中***。

这样,客户所看到的只是在Virtual IP Address上提供的服务,而服务器集群的结构对用户是透明的。对改写后的报文,应用增量调整Checksum的算法调整TCP Checksum的值,避免了扫描整个报文来计算Checksum的开销。

特点:

1,所有的realserver和director要在同一个网段内

2,VIP生产环境为公网ip,而DIP用于和rs通信

3,director同时处理请求和应答数据包

4,realserver的网关要指向DIP

5,可以实现端口映射

6,realserver可以是任意操作系统

7,director很可能成为系统性能瓶颈

实验拓扑:

Director这台server为双网卡eth0用于客户端的请求,而eth1用于和realserver通信。

客户端通过请求172.16.30.1提供web服务。请根据拓扑配置好网络。

1,rs1上的配置:

配置好rs1上的yum源,可以指向我们的系统安装光盘。

rs1是作为一台realserver使用,故需要安装httpd提供web服务:

# yum -y install httpd

添加测试页:

# cd /var/www/html

# vim index.html

添加如下内容:

jia's server1

启动httpd服务:

# service httpd start

测试rs1上的web服务:

路由的配置:

# route add default gw 192.168.1.1

2,rs2上的配置:

配置好rs2上的yum源,可以指向我们的系统安装光盘。

rs2是作为一台realserver使用,故需要安装httpd提供web服务:

# yum -y install httpd

添加测试页:

# cd /var/www/html

# vim index.html

添加如下内容:

jia's server2

启动httpd服务:

# service httpd start

测试rs2上的web服务:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值