LVS+keepalived+nginx实现高性能高可用负载均衡集群--第一部分

概述

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


LVS简介

1、LVS介绍

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

1、 系统高可用性

2、 系统可扩展性

3、 负载均衡能力

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

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 上,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。在特定的场景下,整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。

LVS+keepalived+nginx实现高性能高可用负载均衡集群--第一部分

如图所示,前端调度器虚拟出 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术语

LVS+keepalived+nginx实现高性能高可用负载均衡集群--第一部分


ipvsadm介绍

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

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

  • 工作在内核空间的IPVS模块。LVS的能力实际上都是由IVPS模块实现。
  • 工作在用户空间的ipvsadm管理工具。其作用是向用户提供一个命令接口,用于将配置的虚拟服务、真实服务等传给IPVS模块。

1、添加虚拟服务器

语法:ipvsadm -A [-t|u|f] [vip_addr:port] [-s:指定算法]
 -A:添加
 -t:TCP协议
 -u:UDP协议
 -f:防火墙标记
 -D:删除虚拟服务器记录
 -E:修改虚拟服务器记录
 -C:清空所有记录
 -L:查看

2、添加后端RealServer

语法:ipvsadm -a [-t|u|f] [vip_addr:port] [-r ip_addr] [-g|i|m] [-w 指定权重]
 -a:添加
 -t:TCP协议
 -u:UDP协议
 -f:防火墙标记
 -r:指定后端realserver的IP
 -g:DR模式
 -i:TUN模式
 -m:NAT模式
 -w:指定权重
 -d:删除realserver记录
 -e:修改realserver记录
 -l:查看

3、常用命令

3.1、安装ipvsadm

yum install -y ipvsadm

LVS+keepalived+nginx实现高性能高可用负载均衡集群--第一部分

2、查看规则

ipvsadm -ln

LVS+keepalived+nginx实现高性能高可用负载均衡集群--第一部分

3、保存规则

service ipvsadm save

LVS+keepalived+nginx实现高性能高可用负载均衡集群--第一部分


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

LVS+keepalived+nginx实现高性能高可用负载均衡集群--第一部分

相关推荐