LVS负载均衡群集
什么是负载均衡?
负载均衡是在支持应用程序的资源池中平均分配网络流量的一种方法。现代应用程序必须同时处理数百万用户,并以快速、可靠的方式将正确的文本、视频、图像和其他数据返回给每个用户。为了处理如此高的流量,大多数应用程序都有许多资源服务器,它们之间包含很多重复数据。负载均衡器是位于用户与服务器组之间的设备,充当不可见的协调者,确保均等使用所有资源服务器。
负载均衡有哪些优势?
应用程序可用性
服务器故障或维护可能会增加应用程序停机时间,使访客无法访问应用程序。负载均衡器可以通过以下方式提高系统的容错能力:自动检测服务器问题并将客户端流量重定向到可用服务器。可以使用负载均衡来简化以下任务:
- 运行应用程序服务器维护或升级而无需使应用程序停机
- 为备份站点提供自动灾难恢复
- 执行运行状况检查并防止出现可能导致停机的问题
应用程序可扩展性
可以使用负载均衡器在多个服务器之间智能地定向网络流量。应用程序可以处理数千个客户端请求,因为负载均衡会执行以下操作:
- 防止任何一台服务器出现流量瓶颈
- 预测应用程序流量,以便在需要时添加或移除不同服务器
- 为系统增加冗余度
应用程序安全
负载均衡器具有多项内置的安全功能,可为互联网应用程序的安全保驾护航。它们是应对分布式拒绝服务攻击的有用工具,在这种攻击中,攻击者会用数百万个并发请求淹没应用程序服务器,从而导致服务器故障。负载均衡器还可以执行以下操作:
- 监控流量并阻止恶意内容
- 将攻击流量自动重定向到多个后端服务器,以最大限度减少影响
- 通过一组网络防火墙路由流量,以提高安全性
应用程序性能
负载均衡器通过增加响应时间和减少网络延迟来提高应用程序性能。可以执行诸如以下几项关键任务:
- 在服务器之间平均分配负载以提高应用程序性能
- 将客户端请求重定向到地理位置较近的服务器以减少延迟
- 确保物理和虚拟计算资源的可靠性和性能
负载均衡的工作原理
公司通常在多台服务器上运行其应用程序。这种服务器安排称为服务器场。用户对应用程序的请求首先转到负载均衡器。然后,负载均衡器会将每个请求路由到服务器场中最适合处理该请求的单个服务器。
负载均衡就像餐厅经理所做的工作一样。考虑一家有五名服务员的餐厅。如果允许顾客选择服务员,那么一个或两个服务员可能会超负荷工作,而其他服务员则处于闲置状态。为了避免这种情况,餐厅经理将顾客分配给最适合为他们提供服务的特定服务员。
负载均衡调度算法
负载均衡算法是一组规则,负载均衡器遵循这些规则来确定最适合每个不同客户端请求的服务器。负载均衡算法分为两个主要类别。
静态负载均衡
静态负载均衡算法遵循固定规则,与当前服务器状态无关。
循环法
服务器的 IP 地址通知客户端将请求发往何处。IP 地址是一串很难记住的长数字。为了简单起见,域名系统将网站名称映射到服务器。
在循环法中,权威性名称服务器(而不是专用硬件或软件)执行负载均衡。该名称服务器轮流或以循环方式返回服务器场中不同服务器的 IP 地址。
加权循环法
在加权循环负载均衡中,可以根据服务器的优先级或容量为每台服务器分配不同权重。权重较高的服务器将从名称服务器接收更多的传入应用程序流量。
IP 哈希法
在 IP 哈希法中,负载均衡器将对客户端 IP 地址执行名为哈希的数学计算。它将客户端 IP 地址转换为数字,然后将该数字映射到各个服务器。
动态负载均衡
动态负载均衡算法将在分配流量之前检查服务器的当前状态。以下是动态负载均衡算法的一些示例。
最少连接法
连接是客户端与服务器之间的开放通信渠道。当客户端向服务器发送第一个请求时,客户端将进行身份验证,并在彼此之间建立活动连接。在最少连接法中,负载均衡器将检查哪些服务器的活动连接最少,并将流量发送到这些服务器。此方法假定所有连接均要求所有服务器具有相同处理能力。
加权最小连接法
加权最小连接算法假定某些服务器可以处理比其他服务器更多的活动连接。因此,可以为每台服务器分配不同的权重或容量,负载均衡器会将新的客户端请求发送到按容量计算连接最少的服务器。
最短响应时间法
响应时间是服务器处理传入请求和发送响应所花费的总时间。最短响应时间法会将服务器响应时间与活动连接相结合,以确定最佳服务器。负载均衡器使用此算法来确保为所有用户提供更快的服务。
基于资源的方法
在基于资源的方法中,负载均衡器通过分析当前服务器负载来分配流量。称为代理的专用软件在每台服务器上运行,并计算服务器资源的使用情况,如其计算容量和内存。然后,负载均衡器将先检查代理是否有足够的可用资源,然后再将流量分配给该服务器。
负载均衡有哪些类型?
我们可以将负载均衡分为三个主要类别,具体取决于负载均衡器为了重定向流量而检查客户端请求中的哪些内容。
应用程序负载均衡
复杂的现代应用程序拥有多个服务器场,其中包含多个专用于单个应用程序功能的服务器。应用程序负载均衡器会查看请求内容(如 HTTP 标头或 SSL 会话 ID)以重定向流量。
例如,电子商务应用程序具有产品目录、购物车和结账功能。应用程序负载均衡器会将浏览产品的请求发送给包含图像和视频但不需要保持开放连接的服务器。相比之下,它会将购物车请求发送给能够保持多个客户端连接并长时间保存购物车数据的服务器。
网络负载均衡
网络负载均衡器会检查 IP 地址和其他网络信息,以最佳方式重定向流量。它们将跟踪应用程序流量的来源,并可以将一个静态 IP 地址分配给多个服务器。网络负载均衡器使用前面介绍的静态和动态负载均衡算法来均衡服务器负载。
全局服务器负载均衡
全局服务器负载均衡可跨地理位置分散的多个服务器进行。例如,很多公司可能在不同国家/地区的多个数据中心以及全球的第三方云提供商中拥有服务器。在这种情况下,本地负载均衡器将管理某一地区或区域内的应用程序负载。这些负载均衡器会尝试将流量重定向到地理位置更接近客户端的服务器目标。只有在服务器出现故障的情况下,这些负载均衡器才会将流量重定向到客户端所在地理区域之外的服务器。
DNS 负载均衡
在 DNS 负载均衡中,可以将域配置为跨域上的资源池路由网络请求。域可以对应于网站、邮件系统、打印服务器或可通过互联网访问的其他服务。DNS 负载均衡有助于在全球分布的资源池中保持应用程序可用性以及均衡网络流量。