首页集群 › Keepalived虚拟机搭建(适用于真实服务器)

Keepalived虚拟机搭建(适用于真实服务器)

软件介绍

什么是负载均衡高可用

nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。

为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。

什么是keepalived

keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。

Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

keepalived工作原理

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(VIP = Virtual IP Address,虚拟IP地址,该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到VRRP包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

keepalived主要有三个模块,分别是core、check和VRRP。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。VRRP模块是来实现VRRP协议的。

个人理解

注意

keepalived需要一个虚拟IP(vip),这个虚拟ip是需要服务器提供商支持的,在安装前要确保服务器是支持该项服务的。

原理

keepalived是采用vrrp协议来实现的,其实最重要的一点就是虚拟IP的应用。如何理解虚拟IP呢?下面通过举个例子来进行说明:

我们现在有两台服务器:192.168.1.5和192.168.1.6,两台服务器部署了一样的服务对外提供服务。
如果主服务宕机,需要手动切换到192.168.1.6的备用服务上才能正常。这样做显然是不智能的。不符合迈动互联的智慧企业领导者的形象。

而keepalived就是为了解决这个问题。我们现在有一个虚拟IP:192.168.1.7。keepalived会把这个IP绑定到192.168.1.5上。外网直接访问192.168.1.7即可访问到192.168.1.5。当主服务宕机时,keepalived会把这个虚拟IP绑定到备服务器192.168.1.6上。这一切都是keepalived自动完成的。其实可以这样理解,keepalived是两台服务器的代理,哪个服务gameover,就把它踢出去,让其他的继续提供相同的服务。

安装准备

安装环境

上传软件

将keepalived-1.2.15.tar.gz上传到服务器/root/下。

安装步骤(主备服务器都需要执行以下步骤)

解压并进入解压目录

执行配置命令

编译

安装

拷贝执行文件

将init.d文件拷贝到etc下,加入开机启动项

将keepalived文件拷贝到etc下,加入网卡配置

创建keepalived文件夹

将keepalived配置文件拷贝到etc下

添加可执行权限

加入开机启动项

配置日志文件

启动keepalived和rsyslog日志服务

打开防火墙的通讯地址

到此,就算安装完成了,不过还需要配置一下:虚拟IP,和主备服务器。

主备服务器的配置

主服务:192.168.128.128 备服务:192.168.128.129 虚拟IP:192.168.128.130

主服务器配置

修改主nginx下/etc/keepalived/keepalived.conf文件

备服务器配置

修改备nginx下/etc/keepalived/keepalived.conf文件
配置备nginx时需要注意:需要修改state为BACKUP , priority比MASTER低,virtual_router_id和master的值一致

至此,安装完成,开始测试!

完成测试

主备服务器都启动keepalived和nginx

初始状态

查看主服务器上的eth0状态,可以看到虚拟IP已经绑定

查看备服务器上的eth0状态

主服务器宕机(通过服务器关机来模拟)192.168.128.128

到此,就一切搞定啦!

发表评论