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 上,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。在特定的场景下,整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。
如图所示,前端调度器虚拟出 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:指定算法] -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
2、查看规则
ipvsadm -ln
3、保存规则
service ipvsadm save
关于LVS+keepalived+nginx实现高性能高可用负载均衡集群的概念部分就介绍到这了,大家可以做个简单了解,后面再写下具体的一些配置,感兴趣的朋友可以关注下!