keepalived + lvs marster 与 backup 之间的 高可用
简介
keepalived 是linux下一个轻量级的高可用解决方案,它与HACMP实现功能类似,都可以实现服务或者网络的高可用,但是又有差别:hacmp是一个专业的、功能完善的高可用软件,它提供了HA软件所需的基本功能,比如心跳检测和资源接管,检测集群中的系统服务,在集群节点间转移共享ip地址所有者等,hacmp功能强大,但是部署和使用相对麻烦,同时也是商业化软件,与hacmp相比,keepalived主要是通过虚拟路由冗余来实现高可用功能,虽然他没有hacmp功能强大,但是keepalived部署使用相对简单,所有配置只需要一个配置文件即可完成.
实验 (marster与 backup 之间的高可用)
一、准备环境
#1,两台虚拟机,分别用作marst 与 backup
#2, Dserver 端 为 marster , PDserver 为 backup
#3,Dserver ip : 192.168.206.3
PDserver ip:192.168.206.4
二、 Start the experiment
1> 两端分别下载 keepalived
Dserver 端:

查看:

PDserver端:

查看:

2> 编辑配置文件
yum 安装的 的keepalived 的 配置文件默认 在 /etc/keepalived/keepalived.conf
keepalived的配置文件里面主要分三类
1,全局配置
2,VRRP配置
3,LVS配置
##先来配置Dserver端:
&1

&2,全局配置里的内容注释掉, lvs 配置 注释掉, 只留 VRRP 配置

&3> Dserver 端配置

PDserver 配置 相同,只是将 MASTER 改成 BACKUP , (可以将优先级调低)

3> 测试
#1双端都启动keeplived
Dserver端:

PDserver端:

#2查看
Dserver端:

PDserver 端:

#接下来使 Dserver 端 宕掉

#查看 DPserver 端:

#因为Dserver 宕掉了, 所以 vip 发生了漂移, 漂移到了 DPserver 端。 实验成功!
补充: 上述实验存在着单点故障,Dserver 端 负载较大, 真实环境中,我们可以使 Dserver 端 与 Sserver 端 成为 互为主备,
当客户端访问域名的时候,可以是直接访问Dserver端,也可以是直接访问PDserver端,这样可以预防单点故障,减少Dserver 端的
负载,实际配置如下:
Dserver端:
#1

PDserver 端:
#2

#3 双端 重启 keepalived

#4 查看
Dserver 端:

PDserver端:

#测试 1 (假设 Dserver 端宕掉了 )
@1

@2查看Dserver端:

vip 漂移了
@3查看PDserver 端:

会发现Dserver 端的vip 漂移到了 PDserver端
# 测试2 ( PDserver 端宕掉了)
@1

@2查看PDserver 端:

@3 查看Dserver端:

PDserver 端 的 vip 漂移到了 Dserver 端
补充:
在宕掉Dserver 端后 ,vip 漂移到了PDserver 端, 然而这时 Dserver端 修好了会发生呢?vip 会回来么?
&1 测试
Dserver 端 (处于宕掉状态):

Dserver 端 (处于修好状态):

这时会发现,ip 又被抢回来了, 这是因为 默认设置的 抢占模式, 我们可以 在配置文件中修改成非抢占模式,这样’它‘的vip 就不会回来了
配置如下:
#
Dserver 端:

凭借 优先级去分辨 谁是主备 添加 noprempt
#重启下 keepalived 生效

#宕掉并查看

# 修复好 查看

vip 没有被抢回来。
keepalived + lvs marster 与 backup 之间的 高可用的更多相关文章
- MySQL + KeepAlived + LVS 单点写入主主同步高可用架构实验
分类: MySQL 架构设计 2013-05-08 01:40 5361人阅读 评论(8) 收藏 举报 mysql 高可用 keepalive ㈠ 实战环境 服务器名· IP OS MySQL odd ...
- 使用Keepalived配置主从热备实现Nginx高可用(HA)
Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务 ...
- [转帖]【MySQL+keepalived】用keepalived实现MySQL主主模式的高可用
[MySQL+keepalived]用keepalived实现MySQL主主模式的高可用 https://www.jianshu.com/p/8694d07595bc 一.实验说明 MySQL主主模式 ...
- 通过keepalived搭建MySQL双主模式的高可用集群系统
1. 配置MySQL双主模式 1.修改my.cnf配置文件 默认情况下,MySQL的配置文件是/etc/my.cnf,在配置文件的[mysqld]段添加如下内容: server-id=1 log-bi ...
- 使用Keepalived实现Nginx的双机主备高可用
1.概述 前面我们聊过使用 Nginx 为 后端Tomcat 做负载均衡.高可用,但是这时Nginx又成了单点,如果Nginx不幸挂掉,整个网站便无法访问. 此时我们就会用到另一个软件 -- Keep ...
- MySQL集群架构:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken
MHA简介 MHA可以自动化实现主服务器故障转移,这样就可以快速将从服务器晋级为主服务器(通常在10-30s),而不影响复制的一致性,不需要花钱买更多的新服务器,不会有性能损耗,容易安装,不必更改现有 ...
- docker swarm使用keepalived+haproxy搭建基于percona-xtradb-cluster方案的高可用mysql集群
一.部署环境 序号 hostname ip 备注 1 manager107 10.0.3.107 centos7;3.10.0-957.1.3.el7.x86_64 2 worker68 10.0.3 ...
- haproxy + keepalived 实现web 双主模型的高可用负载均衡
参考文章 http://xz159065974.blog.51cto.com/8618592/1405812 http://blog.chinaunix.net/uid-25266990-id-398 ...
- [原创]用python检测LVS real server状态实现HTTP高可用
import httplib import os import time def check_http(i): try: conn=httplib.HTTPConnection(i, 80, time ...
随机推荐
- laravel 只有/login路由403,如何解决
链接/login自动转跳到/login/导致找不到 /public/login/ 目录导致403; 将路由中\login改为\login1访问正常,但login依然403,而不是未找到路由 链接/lo ...
- CSS3 radio 或checkbox 自定义 样式
.style-radio {position:relative;width:15px;height:15px;outline:none;} .style-radio:after {position:a ...
- jQuery 开始动画,停止动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CREATE GROUP - 定义一个新的用户组
SYNOPSIS CREATE GROUP name [ [ WITH ] option [ ... ] ] where option can be: SYSID gid | USER usernam ...
- CAD交互绘制矩形框(com接口)
主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...
- 19Web服务
Web服务 Web服务 Micosoft.Net平台架构中的分布式系统主要包括两部分:用ASP.Net技术构建服务器端动态网页,以及Web服务(Web Service或XML Web Service) ...
- CGContextAddArc
这个函数让我在纸上画了半天才搞明白,把我的理解给大家分享下. void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat ra ...
- BZOJ 4464 旅行时的困惑 最小流
题面: Waldives 有 N 个小岛.目前的交通系统中包含 N-1 条快艇专线,每条快艇 专线连接两个岛.这 N-1条快艇专线恰好形成了一棵树. 由于特殊的原因,所有N-1条快艇专线都是单向的.这 ...
- Python学习-列表的其它主要操作
列表的其它主要操作 还记得之前使用del语句去清除一个列表中的所有内容,那么会因为把列表全部清空,所以输出会报错.可以使用clear() 完成 clear(self):可以将一个列表变成空列表 lis ...
- 两种js下载文件的方法(转)
function DownURL(strRemoteURL, strLocalURL){ try{ var xmlHTTP = new ActiveXObject("Microsoft.XM ...