原理

首先有一个虚拟ip暴露给客户端,虚拟ip对应的mac地址为一台真实服务器,

即用户向虚拟ip发送一个请求,该请求会被分发到真实服务器上。

现在有2台真实服务器,一台master,一台backup,master和backup上都运行着keepalived

当master挂了的时候,backup检测之后,自己成为master,且arp缓存虚拟ip对应的mac地址将变为

backup的mac地址,这样请求虚拟ip的报文会被发送到backup

架构图如下:

安装

主机:192.168.1.227

备机:192.168.1.246

虚拟ip:192.168.1.99

安装命令:

wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
tar
-zxvf keepalived-1.2.13.tar.gz
cd keepalived-1.2.13
./configure --disable-fwmark --prefix=/usr/local/keepalived
make && make install

整理:

mkdir /etc/keepalived/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/

配置:

vi /etc/keepalived/keepalived.conf

Master

! Configuration File for keepalived

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
} vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.99
}
}

Backup 和master一样,只要修改如下地方:

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 99 # 这里改为99,master优先级是100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.99
}
}

管理命令:

停止
service keepalived stop
启动
service keepalived start
重启
service keepalived restart
查看状态
service keepalived status

测试

在本机上查看虚拟ip状态

ip add

在同一网段的其他机器上查询arp缓存

arp -a

这里的1.99对应的mac地址是1.227

停掉master的keepalived

service keepalived stop

在同一网段的其他机器上查询arp缓存

arp –a

发现1.99的mac地址已经变为slave的mac地址

那么主备双机热备就完成了

总结:本篇文章实现的功能

1.master主机挂了,或者master 上keepalived挂了之后,可以切换到slave

2.master的网络不通的时候,可以立即切换到slave,但是如果只是master上的应用出现问题的时候,是不会

主动切换的,这个要通过编写脚本来监控应用出问题,这个问题后续再讨论吧。

Keepalived 实现双机热备的更多相关文章

  1. 使用keepalived实现双机热备

    通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.下面来以keepalived结合tom ...

  2. keepalived+nginx双机热备+负载均衡

    Reference: http://blog.csdn.net/e421083458/article/details/30092795 keepalived+nginx双机热备+负载均衡 最近因业务扩 ...

  3. tomcate+keepalived配置双机热备

    环境清单: 应用1:192.168.51.101 应用2:192.168.51.75 虚拟IP:192.168.51.179 一.安装Tomcat(参照其他文档): 二.部署应用,并修改响应的端口(9 ...

  4. nginx:负载均衡实战(四)nginx+keepalived配置双机热备

    1.下载安装 下载keepalived地址:http://www.keepalived.org/download.html 解压安装: tar -zxvf keepalived-.tar.gz 安装o ...

  5. nginx+keepalived实现双机热备高可用性

    搭建准备: 机器两台 ip分别为192.168.100.128 192.168.100.129(能够用虚拟机測试.虚拟机网络模式为NET模式.且为静态ip) 另外须要准备一个虚拟ip对外提供服务.即通 ...

  6. Java技术中如何使用keepalived实现双机热备

    Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案.高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭 ...

  7. HAproxy + keepalived 实现双机热备

    一.HAProxy简介: HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点, ...

  8. Nginx+Keepalived主从双机热备+自动切换

    1 安装配置nginx 参考: http://www.cnblogs.com/jager/p/4388202.html 2 安装配置keepalived tar xvf keepalived-1.2. ...

  9. docker nginx1.7.6+keepalived实现双机热备

    0.前提条件 环境两台ubuntu版本14.04 64位系统(并获取root权限) 假设两台服务器ip为:172.16.34.214(master),172.16.34.215(backup),kee ...

随机推荐

  1. layer 中的 layer.alert layer.msg layer.confirm

    1.layer.alert layer.alert('见到你真的很高兴', {icon: 6}); 效果图 layer.alert('墨绿风格,点击确认看深蓝', { skin: 'layui-lay ...

  2. ADO调用分页查询存储过程

    一.分页存储过程 ----------使用存储过程编写一个分页查询----------------------- set nocount off --关闭SqlServer消息 --set nocou ...

  3. JAVA核心编程教学

    常用类 Ø 1.1 String和StringBuffer String类封装了对字符串的常见操作,使用频率非常高,所以应该熟练掌握, String类的方法比较多,无需死记硬背,而是大概了解,用的时候 ...

  4. 鼓捣phantomjs,做ajax网站的信息采集

    版权所有:http://www.cnblogs.com/zeusro/ 引用不给稿费的,切你jj 准备工作: 1phantomjs的安装 2 phantomjs环境变量的配置 需求: 采集手机淘宝某店 ...

  5. Spring Boot学习笔记(六)mybatis配置多数据源

    application.properties #数据库配置 #数据源类型 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource # ...

  6. 三角形-->九九乘法表

    使用嵌套循环打印九行*组成的三角形: * ** *** ...... *********(9个) public class Triangle { /** * 使用嵌套循环打印九行*组成的三角形 */ ...

  7. 15、springboot访问html文件

    在pom.xml加入 <parent> <groupId>org.springframework.boot</groupId> <artifactId> ...

  8. C#(简单递归)和实现IComparable接口

    递归: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...

  9. marquee 滚动到文字上时停止滚动,自定义停止方法

    我要实现的效果如下图:当鼠标移到续费提醒文字上时,文字滚动停止,并出现后面的关闭按钮:当鼠标移出文字时,文字继续滚动,后面的关闭按钮不显示. 在网上查到的marquee停止滚动的的代码是这样的: &l ...

  10. 关于CSS的知识

    这两天在学习关于HTML的知识,今天学习到CSS的知识,将自己所收获的知识点归纳一下: 首先, CSS声明学习:                 1.在head标签中使用style标签声明:      ...