nginx和keepalived如何搭建高可用集群(nginx的负载均衡)

指南 0 616

概述

如果对高并发有要求的话,web服务还是考虑用lvs+keepalived+nginx来实现高性能高可用负载均衡集群,下面介绍下搭建的过程,因为涉及概念比较多,所以这篇主要介绍下LVS和ipvsadm两方面,后面再写具体的搭建过程。

LVS简介

1、LVS介绍

为什么要使用负载均衡技术?

1、 系统高可用性 2、 系统可扩展性 3、 负载均衡能力

LVS+keepalived能很好的实现以上的要求,LVS提供负载均衡,keepalived提供健康检查,故障转移,提高系统的可用性!采用这样的架构以后很容易对现有系统进行扩展,只要在后端添加或者减少realserver,只要更改lvs的配置文件,并能实现无缝配置变更!

nginx和keepalived如何搭建高可用集群(nginx的负载均衡)

2、LVS+Keepalived介绍

2.1、 LVS

LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。

属于4层负载均衡。

2.2、 keepalived

Keepalived 是运行在lvs 之上,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换,提高系统的可用性

2.3、注意

在keepalived中有2中模式,分别是master-->backup模式和backup-->backup模式,这两种模式分别呢?

在master-->backup模式下,一旦主库当掉,虚拟IP会自动漂移到从库,当主库修复后,keepalived启动后,还会把虚拟IP抢回来,即使你设置的是nopreempt(不抢占)的方式抢占IP的动作也会发生。在backup-->backup模式下,当主库宕掉后虚拟IP会自动漂移到从库上,当原主恢复后重启keepalived服务,并不会抢占新主的虚拟IP,即使是优先级高于从库的优先级别,也不会抢占IP。为了减少IP漂移次数,生成中我们通常是把修复好的主库当作新的主库的备库。

keepalived还从在一个脑裂状况,当主从间网络出现问题,这时主库会持有虚拟IP不变,从库失去和主库的联系后,从库会抢夺IP(即便你采用backup-->backup非抢占模式),这样造成的后果是主从数据库都持有虚拟IP.于是造成IP冲突,业务也会受到影响,因此在网络不是很好的状况下,强烈不建议采用keepalived服务。

3、工作原理

LVS 是 Linux Virtual Server 的简写,意即 Linux 虚拟服务器,是一个开源的负载均衡流量调度器。LVS 集群采用 IP 负载均衡技术和基于内容请求分发技术,将用户请求按照一定策略分发到后端的 Server 上,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。在特定的场景下,整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。

如图所示,前端调度器虚拟出 VS(Virtual Server)监听和接收请求,真正提供服务的是后端的 Member(亦称为 RealServer 或者 RS),数个 Member 组成一个 Pool,VS 的请求分发到 Pool 上,并在 Pool 当中的 Member 之间按一定策略分发轮询。LVS 与 F5 Big-IP LTM 不同之处在于,LVS 没有 Node 的概念,也没有 Profile,并且只提供 4 层的负载均衡。

4、LVS转发模式

三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR):

VS/NAT:网络地址转化

VS/TUN:端

VS/DR:直接轮询模式

5、LVS调度算法

共八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh),主要是:

轮询(rr):按照请求顺序轮流分发到后端RS

加权轮询(wrr):权值高的获得的任务更多

最小连接数(lc):动态的将请求建立到连接数较少的RS上

加权最小连接数(wlc):调度器自动询问RS的真实负载情况,并动态的调整权

6、LVS术语

ipvsadm介绍

从2.4版本开始,linux内核默认支持LVS。要使用LVS的能力,只需安装一个LVS的管理工具:ipvsadm。

LVS的结构主要分为两部分:

工作在内核空间的IPVS模块。LVS的能力实际上都是由IVPS模块实现。

工作在用户空间的ipvsadm管理工具。其作用是向用户提供一个命令接口,用于将配置的虚拟服务、真实服务等传给IPVS模块。

1、添加虚拟服务器

语法:ipvsadm -A [-t|u|f] [vip_addr:port] [-s:指定算法]

-t:TCP协议 -u:UDP协议 -f:防火墙标记

-D:删除虚拟服务器记录

-E:修改虚拟服务器记录

-C:清空所有记录

2、添加后端RealServer

语法:ipvsadm -a [-t|u|f] [vip_addr:port] [-r ip_addr] [-g|i|m] [-w 指定权重]

-t:TCP协议 -u:UDP协议 -f:防火墙标记

-r:指定后端realserver的IP

-i:TUN模式 -m:NAT模式

-d:删除realserver记录

-e:修改realserver记录

3、常用命令

3.1、安装ipvsadm

yum install -y ipvsadm

2、查看规则

ipvsadm -ln

3、保存规则

service ipvsadm save

关于LVS+keepalived+nginx实现高性能高可用负载均衡集群的概念部分就介绍到这了,大家可以做个简单了解,后面再写下具体的一些配置,感兴趣的朋友可以关注下!

相关推荐: