【架构师之路】 LVS+Keepalived实现高可用负载均衡
一、原理
1、概要介绍
如果将TCP/IP划分为5层,则Keepalived就是一个类似于3~5层交换机制的软件,具有3~5层交换功能,其主要作用是检测web服务器的状态,如果某台web服务器故障,Keepalived将检测到并将其从系统中剔除,当该web服务器工作正常后Keepalived自动将其加入到服务器群中,这些工作全部自动完成,而不需要人工干预,只需要人工修复故障的web服务器即可。
2、工作原理
Keepalived基于VRRP协议来实现高可用解决方案,利用其避免单点故障,通常这个解决方案中,至少有2台服务器运行Keepalived,即一台为MASTER,另一台为BACKUP,但对外表现为一个虚拟IP,MASTER会发送特定消息给BACKUP,当BACKUP收不到该消息时,则认为MASTER故障了,BACKUP会接管虚拟IP,继续提供服务,从而保证了高可用性,具体如下图:

图1 Keepalived原理图
3层机理是发送ICMP数据包即PING给某台服务器,如果不痛,则认为其故障,并从服务器群中剔除。
4层机理是检测TCP端口号状态来判断某台服务器是否故障,如果故障,则从服务器群中剔除。
5层机理是根据用户的设定检查某个服务器应用程序是否正常运行,如果不正常,则从服务器群中剔除。
3、实际作用
主要用作RealServer的健康检查,以及负载均衡设备MASTER和BACKUP之间failover的实现。
二、架构
本系列文章以CentOS Linux release 6.0 (Final)为例,介绍用LVS+Keepalived实现高可用负载均衡。具体业务需求是用虚拟IP转发8080、25、21端口请求到后端的真实服务器来处业务逻辑,系统拓扑如下图所示:

图2 系统拓扑图
客户端通过VIP(Virtual IP)(172.28.14.227/228/229)来访问负载均衡服务器,负载均衡服务器通过MASTER/172.28.19.92或BACKUP/172.28.19.93将请求分别转发给真实服务器(Web服务器/172.28.19.100/101/102、邮件服务器/172.28.19.103/104/105、文件服务器/172.28.19.106/107/108)。
负载均衡服务器的MASTER和BACKUP上都必须安装LVS+Keepalived,下面开始安装和配置之旅。
三、LVS安装
Master和Backup都必须安装LVS,安装ipvsadm步骤如下:
(1)依赖包安装
(2)ipvsadm安装
OK,LVS就这么安装好了。
四、Keepalived安装
Master和Backup都必须安装Keepalive,安装步骤如下:
五、配置
1、服务脚本
将Keepalived做成服务启动(MASTER和BACKUP都是必须的),具体步骤如下:
(1)拷贝服务启动脚本
(2)拷贝配置文件
(3)拷贝可执行文件
(4)启动/停止服务
2、配置MASTER
4、配置Realserver
注意脚本中红色部分,每块网卡绑定一个虚拟IP地址,如果绑定多个虚拟IP,则需要为每块网卡创建一个脚本,并且指定lo:X(比如:lo:0,lo:1等),另外,.和/etc/rc.d/funtions之间有空格。
启动keepalived服务,并执行上述脚本,然后用ip a能确认是否有VIP地址。
输入ipvsadm -Ln查看LVS工作状态。
停止MASTER的keepalived服务,BACKUP能接管VIP地址,再次启动MASTER的keepalived服务,MASTER又能再一次接管VIP地址。
如果这些你都搞定了,恭喜你,你已经拥有高可用服务了
【架构师之路】 LVS+Keepalived实现高可用负载均衡的更多相关文章
- LVS+Keepalived实现高可用负载均衡(转)
LVS+Keepalived实现高可用负载均衡 一.原理 1.概要介绍 如果将TCP/IP划分为5层,则Keepalived就是一个类似于3~5层交换机制的软件,具 ...
- LVS+Keepalived 实现高可用负载均衡集群
LVS+Keepalived 实现高可用负载均衡集群 随着网站业务量的增长,网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如 F5 ,Array又太贵,你们又是创业型互联公司如何有效 ...
- LVS+Keepalived 实现高可用负载均衡
前言 在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的.此时最常见的方式就是通过负载均衡来进行横向扩展.其中我们最常用的软件就是 Nginx.通过其反向代理的能力能够轻松实现负载均衡,当有服务出 ...
- LVS+Keepalived搭建高可用负载均衡
应用环境: LVS负责多台WEB端的负载均衡(LB):Keepalived负责LVS的高可用(HA),这里介绍主备模型. 测试环境: 配置步骤: 1. 安装软件 在LVS-1和LVS-2两台主机上安装 ...
- haproxy+keepalived实现高可用负载均衡
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. HA ...
- haproxy+keepalived实现高可用负载均衡(转)
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. ...
- HAProxy & Keepalived L4-L7 高可用负载均衡解决方案
目录 文章目录 目录 HAProxy 负载均衡器 应用特性 性能优势 会话保持 健康检查 配置文件 负载均衡策略 ACL 规则 Web 监控平台 Keepalived 虚拟路由器 核心组件 VRRP ...
- Nginx keepalived实现高可用负载均衡详细配置步骤
Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层.第4层和第7层交换机的功能.主要提供loadbalancing(负载均衡) ...
- LVS+Keppalived实现高可用负载均衡
三.LVS Keppalived的安装 3.1.环境描述 LVS server1 (Master):10.0.0.202 虚拟IP为:10.0.0.210 LVS server2 ( Slave ) ...
随机推荐
- Spring JDBC更新数据
以下示例将展示如何使用Spring jdbc执行更新数据库表的记录,这里演示如何更新student表中指定条件的记录. 语法: String updateQuery = "update St ...
- jQuery使用动态渲染表单功能完成ajax文件下载
原文链接:http://www.poluoluo.com/jzxy/201301/195126.html 封装的通用js函数代码: // Ajax 文件下载 jQuery.download = fun ...
- IE9出现异常SCRIPT5011:不能执行已释放Script的代码
今天同事测试系统,突然出现一个异常SCRIPT5011:不能执行已释放Script的代码 应用场景:用模态方式打开个窗口,对于返回对象使用"=="与字符串比较时出现错误 我也用我的 ...
- CentOS7 loaded active exited
查了一下,原來是因為它沒有對應的 daemon 在執行 ref: http://ephrain.pixnet.net/blog/post/62911853-%5Blinux%5D-systemctl- ...
- Spring简单集成Redis
- Docker命令之 run
docker run :创建一个新的容器并运行一个命令 语法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS说明: -a stdin: 指定 ...
- c++ windows下计时
多核时代不宜再用 x86 的 RDTSC 指令测试指令周期和时间 陈硕Blog.csdn.net/Solstice 自从 Intel Pentium 加入 RDTSC 指令以来,这条指令是 micro ...
- js document.activeElement及使用
// 解决键盘弹出后挡表单的问题 // 解决键盘弹出后挡表单的问题 window.addEventListener('resize', function() { if( document.active ...
- Objective-C语法之NSDictionary和NSMutableDictionary
Java 有Map,可以把数据以键值对的形式储存起来,取值的时候通过key就可以直接拿到对应的值,方便快捷.在Objective-C语言中,词典就是做这样的事情的,和NSArray一样,一个词典对象也 ...
- ESPCN处理彩色图像代码
原来仅处理了Y通道,输出的灰度图像. Super-Resolution/ESPCN at master · wangxuewen99/Super-Resolution · GitHub https:/ ...