keepalived高可用

Keepalived高可用

1. 简介

Keepalived实现一个双机热备高可用功能检测服务器的状态如果有一台web服务器死机或工作出现故障Keepalived将检测到并将有故障的服务器从系统中剔除同时使用其他服务器代替该服务器的工作当服务器工作正常后Keepalived自动将服务器加入到服务器群中这些工作全部自动完成不需要人工干涉需要人工做的只是修复故障的服务器

2. Keepalived的工作原理

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

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

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

Vrrp详解

VRRP是一种选择协议它可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台控制虚拟路由器 IP 地址的 VRRP 路由器称为主路由器它负责转发数据包到这些虚拟 IP 地址[1]  一旦主路由器不可用这种选择过程就提供了动态的故障转移机制这就允许虚拟路由器的 IP 地址可以作为终端主机的默认第一跳路由器

VRRPVirtual Router Redundancy Protocol虚拟路由冗余协

 

是一种容错协议通常一个网络内的所有主机都设置一条缺省路由这样主机发出的目的地址不在本网段的报文将被通过缺省路由发往路由器RouterA从而实现了主机与外部网络的通信当路由器RouterA 坏掉时本网段内所有以RouterA 为缺省路由下一跳的主机将断掉与外部的通信产生单点故障VRRP 就是为解决上述问题而提出的它为具有多播组播或广播能力的局域网以太网设计

缺省路由通常用相同的处理方式把报文指向另一个路由器如果有其他路由匹配则按照该路由规则转发相应的报文否则该报文将被转发到该路由器的缺省路由这个过程不断重复直到一个数据包被传递到目的地设备的缺省路由通常被也称为默认网关它经常提供如数据包过滤防火墙或代理服务器等功能

路由下一跳路由的下一个点如果路由器没有直接连接到目的网络它会有一个提供下一跳路由的邻居路由器用来传递数据到目的地

VRRP的工作过程如下

1. 路由器开启VRRP功能后会根据优先级确定自己在备份组中的角色优先级高的路由器成为主用路由器优先级低的成为备用路由器主用路由器定期发送VRRP通告报文通知备份组内的其他路由器自己工作正常备用路由器则启动定时器等待通告报文的到来

2. VRRP在不同的主用抢占方式下主用角色的替换方式不同

l在抢占方式下当主用路由器收到VRRP通告报文后会将自己的优先级与通告报文中的优先级进行比较如果大于通告报文中的优先级则成为主用路由器否则将保持备用状态

l在非抢占方式下只要主用路由器没有出现故障备份组中的路由器始终保持主用或备用状态备份组中的路由器即使随后被配置了更高的优先级也不会成为主用路由器

3. 如果备用路由器的定时器超时后仍未收到主用路由器发送来的VRRP通告报文则认为主用路由器已经无法正常工作此时备用路由器会认为自己是主用路由器并对外发送VRRP通告报文备份组内的路由器根据优先级选举出主用路由器承担报文的转发功能

 

3. 配置keepalived

1.准备两台服务器

主服务器192.168.1.101

从服务器192.168.1.24

虚拟ip:192.168.1.254

两台机器安装keepalived

2.安装keepalived需要的依赖包

yum install openssl-developenssl分成了几个部分openssl-devel这个是包含了头文件头文件参考某些库文件等跟开发相关的东西
yum install popt-develpopt解析命令行选项的一些开发软件的包
yum install ipvsadmip虚拟服务器
yum install libnl*

3.下载安装keepalived

yum install keepalived

4.修改主服务器配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

 

global_defs {

#指定keepalived在发生切换时需要发送email到的对象一行一个没有服务器配置邮箱可将其注释掉

  notification_email {

#acassen@firewall.loc    

#sysadmin@firewall.loc

   }

  #notification_email_from Alexandre.Cassen@firewall.loc #指定发件人

   #smtp_server192.168.200.1 #指定smtp服务器地址

  #smtp_connect_timeout 30 #指定smtp连接超时时间

   router_id  192.168.1.101  #标识本节点的字条串通常为hostname但不一定非得是hostname故障发生时邮件通知会用到

}

}

 

vrrp_instance VI_1 {

    state MASTER #指定那个为master那个为slave

    interface eno16777736  #设置实例绑定的网卡

   virtual_router_id 51# VPID标记slave一样

priority 100  #主机高于slave,优先级

    advert_int 1 #检测服务器状态间隔时间

    authentication{#验证类型和密码

        auth_typePASS

    auth_pass 1111

    }

   virtual_ipaddress {

    192.168.1.254#虚拟IP地址可以为多个

    }

}

其他配置详解http://www.cnblogs.com/linuxliu/p/5825108.html

http://blog.csdn.net/jibcy/article/details/7826158

开启服务

systemctl start keepalived

5.修改slave配置

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

 

global_defs {

 #notification_email {

  #  644856452@qq.com

  #}

 #notification_email_from Alexandre.Cassen@firewall.loc

  #smtp_server127.0.0.1

 #smtp_connect_timeout 30

  router_id 192.168.1.24 #标识本节点的字条串通常为hostname但不一定非得是hostname故障发生时邮件通知会用到

}

 

vrrp_instance VI_1 {

   state SLAVE  #slave配置

  interface eno16777736

  virtual_router_id 51

   priority 99#低于主服务器100

#nopreempt #设置为不抢占 这个配置只能设置在backup主机上而且这个主机优先级要比另外一台高

 

   advert_int 1

   authentication {

       auth_typePASS

       auth_pass1111#验证密码两台机器保持一致

   }

 

  virtual_ipaddress {

      192.168.1.254

   }

}

开启服务

systemctl start keepalived

测试

6.在两台服务器web根目录下建立一个index.php文件写上本机ip地址

7.在两台机器上使用 "ip add" 查看虚拟 IP 信息 

可以看到虚拟Ip此时绑定在主机上

在浏览器中输入虚拟ip192.168.1.254(虚拟的ip地址此时将看到你在master服务器中的index.php中写的内容

8、matser服务器的keepalived关掉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值