LVS负载均衡------NAT模式

一、群集技术
在实际应用中,在 Web 服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为 web 服务器流量的入口,挑选最合适的一台web服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发。LVS、Nginx、HAProxy 是目前使用最广泛的三种软件负载均衡软件。
1.1、适用场景
对负载均衡的使用一般是随着网站规模的提升根据不同的阶段来使用不同的技术。如果是中小型的 Web 应用,比如日 PV 小于1000万,用 Nginx 就完全可以了。如果机器不少,可以用 DNS 轮询,LVS 所耗费的机器还是比较多的。大型网站或重要的服务,且服务器比较多时,可以考虑用 LVS。
目前关于网站架构一般比较合理流行的架构方案:Web 前端采用 Nginx/HAProxy+Keepalived 作负载均衡器;后端采用 MySQ L数据库一主多从和读写分离,采用 LVS+Keepalived 的架构。
1.2、群集的类型
根据群集所针对的目标差异,可分为三种类型
负载均衡群集高可用群集高性能运算群集
1.3、三种群集概述
1、负载均衡群集(Load Balance Cluster)
以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、负载(LB)的整体性能。LB的负载分配依赖于主节点的分流算法。
LVS负载均衡------NAT模式
2、高可用群集(High Availability Cluster)
以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果HA的工作方式包括双工和主从两种模式。
LVS负载均衡------NAT模式
3、高性能运算群集(High Performance Computer Cluster)
以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC) 能力。高性能运算群集的高性能依赖于“分布式运算"、 “并行计算”,通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。
LVS负载均衡------NAT模式
二、负载均衡群集
2.1、基于IP负载均衡的工作模式
负载均衡群集是目前企业用得最多的群集类型,群集的负载调度技术可以基于IP端口,内容等进行分发,其中 IP 负载均衡技术是效率最高的。基于IP的群集负载调度技术有三种工作模式:
1、地址转换2、IP隧道3、直接路由
2.2、工作模式的概述
1、地址转换:简称NAT模式
类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式
2、IP隧道:简称TUN模式。
采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器。服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信。
3、直接路由;简称DR模式
采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。
以上三种工作模式中,
1、NAT方式只需要一个公网IP地址,从而成为最易用的一种负载均衡模式,安全性也比较好,许多硬件负载均衡设备就是采用这种方式;2、DR模式和TUN模式的负载能力更加强大、适用范围更广,但节点的安全性要稍差一些。
2.3、分层结构
LVS负载均衡------NAT模式
1、负载调度器
只负责响应客户端的请求,并将请求通过负载调度算法分发给服务器池中的服务器,是访问整个群集的唯一入口,对外使用公有的vip (Virtual IP,虚拟IP) 地址,也称为群集IP地址。
2、服务器池
用于为客户端提供实际的应用服务,每个真实服务器(服务器池中的服务器称为真实服务器或节点服务器)具有独立的RIP (真实IP) ,只处理调度器分发过来的客户请求
3、共享存储
为服务器池中的所有节点提供稳定、一致的文件存取服务,用于保证群集文件的一致性(就是使即使访问的不是同一个节点服务器但看到的内容是一样的)
2.4、LVS 负载均衡机制
LVS 是四层负载均衡,即建立在 OSI 模型的第四层——传输层之上,传输层上有我们熟悉的 TCP/UDP,LVS 支持 TCP/UDP 的负载均衡。因为 LVS 是四层负载均衡,因此它相对于其它高层负载均衡的解决办法,比如 DNS 域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的。
2.5、LVS的负载调度算法
轮询(Round Robin)
将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器)均等地对待每一台服务器, 而不管服务器实际的连接数和系统负载。加权轮询(Weighted Round Robin)
根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重保证处理能力强的服务器承担更多的访问流量。 最少连接(Least Connections)
根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。加权最少连接(Weighted Least Connections)
在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重。权重较高的节点将承担更大比例的活动连接负载
三、案例:LVS-NAT部署
案例环境
LVS调度器作为web服务器池的网关,有两块网卡,分别连接内外网,使用轮询( rr ) 调度算法
LVS负载均衡------NAT模式
LVS负载均衡------NAT模式
准备了五台虚拟机 centos7,一台服务器作为LVS(两张网卡),两台web服务器做Apache,一台作为服务器的 NFS 存储;一台测试机(window系统)。所有主机设置成仅主机模式;除了LVS服务器外所有的服务器防火墙关闭。在 LVS服务器上设置两个网卡,一个作为私网地址,一个作为公网地址,并作NAT地址映射;
3.1、NFS共享服务
1、新建两个硬盘 /dev/sdb 和 /dev/sdc,分区和格式化。
2、关闭防火墙,查看nfs共享需要的两个包
LVS负载均衡------NAT模式
LVS负载均衡------NAT模式

LVS负载均衡------NAT模式
3、开启服务,查看nfs共享配置文件
LVS负载均衡------NAT模式
4、把网络改为主机模式,再修改配置文件
LVS负载均衡------NAT模式
LVS负载均衡------NAT模式
LVS负载均衡------NAT模式
3.2、Apache的服务器
1、给 两台web服务器安装 apache,并关闭防火墙
LVS负载均衡------NAT模式
2、改为仅主机模式,修改ip地址
web1服务器:
LVS负载均衡------NAT模式
web2 服务
LVS负载均衡------NAT模式
3、查看NFS提供的存储空间,并挂载到本地空间LVS负载均衡------NAT模式
LVS负载均衡------NAT模式
将存储服务器文件挂载到本地
LVS负载均衡------NAT模式
web1服务器:
LVS负载均衡------NAT模式
web2服务器:
LVS负载均衡------NAT模式
4、分别给两个web服务器,做一个测试网页。
3.3、配置 LVS 负载均衡
1、安装ipvsadm 服务
2、在虚拟机配置里添加第二个网卡,全部改为仅主机模式。
3、开启路由转发功能,设置防火墙规则
4、加载模块,并开启 ipvsadm 服务
5、写一个脚本设置LVS规则,加权限执行即可。
LVS负载均衡------NAT模式
3.4、客户端验证
LVS负载均衡------NAT模式
LVS负载均衡------NAT模式