负载均衡集群

1、集群是什么?

集群(cluster)技术,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。

2、负载均衡集群技术

负载均衡(Load Balance):负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。

3、负载均衡集群技术的实现

负载均衡(Load Balance)

4、实现效果如图

1562677488047

5、负载均衡分类

负载均衡根据所采用的设备对象(软/硬件负载均衡),应用的OSI网络层次(网络层次上的负载均衡)等来分类。下面着重介绍的是根据应用的 OSI 网络层次来分类的两个负载均衡类型。

负载均衡可以大概分为以下几类:

在实际应用中,比较常见的就是四层负载及七层负载。这里也重点说下这两种负载。

6、四层负载均衡(基于IP+端口的负载均衡)

所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

实现四层负载均衡的软件有:

7、七层的负载均衡(基于虚拟的URL或主机IP的负载均衡)

在四层负载均衡的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别来决定是否要进行负载均衡。

  1. 实现七层负载均衡的软件有:

8、四层负载与七层负载的区别

 四层负载均衡(layer 4)七层负载均衡(layer 7)
基于基于IP PortURL
类似于路由器代理服务器
复杂度
性能高;无需解析内容中;需要算法识别 URL,Cookie 和 HTTP head 等信息
安全性低,无法识别 DDoS等攻击
额外功能会话保持,图片压缩,防盗链等

LVS 实现四层负载均衡项目实战

1、LVS 介绍

2、LVS 优势与不足

1、优势

应用范围广:因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等等

3、不足

工作在4层,不支持7层规则修改,不适合小规模应用。

4、LVS 核心组件和专业术语

1、核心组件
2、专业术语
3、具体图解

1562677582545

4、LVS负载均衡工作模式

5、LVS 四种工作模式原理、以及优缺点比较

1、NAT模式(VS-NAT)

image-20200915211041105

2、直接路由(Direct routing)模式(VS-DR)

image-20200915210712015

3、IP隧道(Tunnel)模式(VS-TUN)

image-20200915210736002

6、LVS模式的区别

6、LVS ipvsadm 命令的使用

1、LVS-server安装lvs管理软件
2、命令选项

7、LVS 负载均衡集群企业级应用实战

2、环境准备
1、准备虚拟机

准备 3 台纯净的虚拟机,两台 web 服务器

2、LVS-server 安装lvs管理软件
3、LVS/DR 模式

实验说明: 1.网络使用NAT模式 2.DR模式要求Director DIP 和 所有RealServer RIP必须在同一个网段及广播域

3.所有节点网关均指定真实网关

1568546953134

2、LVS/DR模式实施

1、准备工作(集群中所有主机)关闭防火墙和selinux

2、Director分发器配置

配置VIP

定义LVS分发策略

3、所有RS配置

配置好网站服务器,测试所有RS #为了测试效果,提供不同的页面(以下两台real-server都操作)

4、测试
8、LVS的调度算法

LVS的调度算法分为静态与动态两类。

1、静态算法(4种)

只根据算法进行调度 而不考虑后端服务器的实际连接情况和负载情况

①.RR:轮叫调度(Round Robin)、轮询

②.WRR:加权轮叫(Weight RR)

③.DH:目标地址散列调度(Destination Hash )

④.SH:源地址 hash(Source Hash)

2、动态算法(6种)

前端的调度器会根据后端真实服务器的实际连接情况来分配请求

①.LC:最少链接(Least Connections)

②.WLC:加权最少连接(默认采用的就是这种)(Weighted Least Connections)

③.SED:最短期望延迟调度(Shortest Expected Delay )

④.NQ:永不排队/最少队列调度(Never Queue Scheduling NQ)

⑤.LBLC:基于局部性的最少链接(locality-Based Least Connections)

  基于局部性的最少链接”调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。

⑥. LBLCR:带复制的基于局部性最少连接(Locality-Based Least Connections with Replication)

  带复制的基于局部性最少链接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按”最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

二、企业 keepalived 高可用项目实战

1、Keepalived VRRP 介绍

2、Nginx+keepalived实现七层的负载均衡(同类服务)

upstream 支持的负载均衡算法

nginx负载均衡配置状态参数

3、LVS_Director + KeepAlived

1568643540153

3.测试数据库高可用

image-20200218214601349

两台机器验证是否为yes

两台机器安装keepalived

3、Haproxy 基础

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP的应用代理,支持虚拟主机,它是免费、快速并且可靠的一种负载均衡解决方案。适合处理高负载站点的七层数据请求。类似的代理服务可以屏蔽内部真实服务器,防止内部服务器遭受攻击。

1562943827261

1、Haproxy 实现七层负载

4.测试主/备(浏览器访问)

主:

1562947647152

备:

1562947914764

四层代理mysql

作业