搭建LVS负载均衡集群
一,简介:
1,LVS(Linux Virtual Server),即Linux虚拟服务器。它用于多服务器的负载均衡,工作在网络四层,可以实现高性能,高可用的服务器集群技术,它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。是基于TCP/IP做的路由和转发。稳定性和效率很高。
目前,LVS项目已提供了一个实现可伸缩网络服务的Linux Virtual Server框架,如下图所示。
IPVS:提供了含有三种IP负载均衡技术的IP虚拟服务器软件
KTCPVS:基于内容请求分发的内核Layer-7交换机
Cluster Management:集群管理软件。
2,一个LVS集群往往包含以下角色:
①DS:Director Server。指的是前端负载均衡器节点。
②RS:Real Server。后端真实的工作服务器。
③VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址
④DIP:Director Server IP,主要用于和内部主机通讯的IP地址
⑤RIP:Real Server IP,后端服务器的IP地址
⑥CIP:Client IP,访问客户端的IP地址
二,IP虚拟服务器软件IPVS的三种模式简介:
(一),LVS NAT 模式(通过更改IP实现)
用户的请求到分发器后,通过预设的iptables规则,把请求的数据包转发到后端的RS上去。RS需要设定网关为分发器的内网IP。用户请求的数据包和返回给用户的数据包全部经过分发器,所以分发器称为瓶颈。在NAT模式中,只需要分发器有公网IP即可,所以比较节省公网IP资源。
(二),IP Tunnel模式(通过封装报文实现)
这种模式需要有一个公共的IP配置在分发器和所有的RS上,我们把它叫做VIP。客户端请求的目标IP为VIP,分发器接收到请求数据包后,会对数据包做一个加工,会把目标IP改为RS的IP,这样数据包就到了RS上。RS接收数据包后,会还原原始数据包,这样目标IP为VIP,因为所有RS上配置了这个VIP,所以他会认为是它自己。
(三),DR模式(通过更改MAC地址实现的)
和IP Tunnel较为相似,不同的是,它会把数据包的MAC地址修改为RS的MAC地址。真实服务器将响应直接返回给客户。
这种方式没有IP隧道的开销,对集群中的真实服务期也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连在同一物理网段上。
三,LVS调度算法:
四,内核Layer-7交换机KTCPVS
五,实战:LVS集群搭建
一,环境准备:
- 虚拟机:Oracle VM VirtualBox 5.2.22
- 虚拟主机:
Host1-vbox:Ubuntu 18.04,192.168.3.101
Host2-vbox:Ubuntu 18.04,192.168.3.102
Host3-vbox:Ubuntu 18.04,192.168.3.103
Host4-vbox:Ubuntu 18.04,192.168.3.104
- 系统服务:LVS(负载均衡),Keepalived(高可用)
- Web服务:Nginx
- 集群搭建:LVS DR模式