0、 Keepalived介绍

  Keepalived是基于VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)协议的一款高可用软件。Keepailived有一台主服务器(master)和多台备份服务器(backup),在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。

  首先需要配置MySQL的双主配置,传送门https://www.cnblogs.com/zhqin/p/12239225.html

1、hadoop106、hadoop107

  通过yum方式安装

[crazycat@hadoop106 ~]$ sudo yum install -y keepalived
[crazycat@hadoop107 ~]$ sudo yum install -y keepalived

2、修改hadoop06的Keepalived配置文件/etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
router_id MySQL-ha
}
vrrp_instance VI_1 {
state master #初始状态
interface eth0 #网卡
virtual_router_id 51 #虚拟路由id
priority 100 #优先级
advert_int 1 #Keepalived心跳间隔
nopreempt #只在高优先级配置,原master恢复之后不重新上位
authentication {
auth_type PASS #认证相关
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 #虚拟ip
}
}
#声明虚拟服务器
virtual_server 192.168.1.100 3306 {
delay_loop 6
persistence_timeout 30
protocol TCP
#声明真实服务器
real_server 192.168.1.106 3306 {
notify_down /var/lib/mysql/killkeepalived.sh #真实服务故障后调用脚本
TCP_CHECK {
connect_timeout 3 #超时时间
nb_get_retry 1 #重试次数
delay_before_retry 1 #重试时间间隔
}
}
}

3、修改hadoop107的Keepalived配置文件/etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
router_id MySQL-ha
}
vrrp_instance VI_1 {
state backup #初始状态
interface eth0 #网卡
virtual_router_id 51 #虚拟路由id
priority 50 #优先级
advert_int 1 #Keepalived心跳间隔
authentication {
auth_type PASS #认证相关
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 #虚拟ip
}
}
#声明虚拟服务器
virtual_server 192.168.1.100 3306 {
delay_loop 6
persistence_timeout 30
protocol TCP
#声明真实服务器
real_server 192.168.1.107 3306 {
notify_down /var/lib/mysql/killkeepalived.sh #真实服务故障后调用脚本
TCP_CHECK {
connect_timeout 3 #超时时间
nb_get_retry 1 #重试次数
delay_before_retry 1 #重试时间间隔
}
}
}

4、在hadoop106、hadoop107 编辑脚本文件 /var/lib/mysql/killkeepalived.sh

[crazycat@hadoop106 ~]$ sudo vim /var/lib/mysql/killkeepalived.sh
#! /bin/bash
sudo service keepalived stop

5、给两台机器的killkeepalived.sh脚本加执行权限

sudo chmod +x /var/lib/mysql/killkeepalived.sh

6、在两台机器上设置开机自启

sudo chkconfig keepalived on

7、在两台机器上检查开机自启状态

sudo chkconfig --list | grep keepalived

8、确保MySQL先于Keepalived启动

第一步:查看MySQL启动次序

[crazycat@hadoop106 ~]$ sudo vim /etc/init.d/mysql

第二步:查看Keepalived启动次序

sudo vim /etc/init.d/keepalived

保证64<86即可,如果keepalived中的启动顺序在MySQL的前面,将这两个数值交换即可。(为了避免和其他的进程造成冲突)

9、在两台机器上分别启动keepalived

sudo service keepalived start

10、在其他机器上通过配置的虚拟ip:192.168.1.100是否可以连接mysql数据库

11、将hadoop106的MySQL服务停掉,看是否会自动切换到hadoop107上

[crazycat@hadoop106 ~]$ sudo service mysql stop

12、再将MySQL服务启动

[crazycat@hadoop106 ~]$ sudo service mysql start

13、再将keepalived服务启动

[crazycat@hadoop106 ~]$ sudo service keepalived start

最新文章

  1. mongodb简介(转)
  2. 浅入浅出EmguCv(二)EmguCv打开指定图片
  3. awk 筛选特定长度的序列
  4. c# 获取系统时间
  5. nrf51822-广播模式
  6. Ionic2系列——在Ionic2中使用高德地图
  7. 校门外的树 OpenJudge 1.6.06
  8. mongodb replica set介绍
  9. IOS开发-UI学习-UITextField的具体属性及用法
  10. HBuilder使用方法
  11. Java中的守护线程
  12. kafka模型理解
  13. Alpha冲刺9
  14. json Map JsonObject JsonArray
  15. win10下nvidia控制面板看不到
  16. 使用Linux之安装jdk 7
  17. python2安装pymongo
  18. Ajax实现表格实时编辑
  19. ssh上外网
  20. redis主从 &amp;&amp; 伪群集

热门文章

  1. win10/win7下vs2013自带IISExpress支持局域网访问
  2. 利用 Watermill 实现 Golang CQRS
  3. 【探索之路】机器人篇(3)-给mwRobot建立模型
  4. JavaCV FFmpeg采集麦克风PCM音频数据
  5. Redis缓存篇(三)缓存污染
  6. Java NIO 缓冲区 Buffer
  7. 【JavaWeb】jQuery 基础
  8. 【C++】《Effective C++》第六章
  9. pip不是内部或外部命令解决方法
  10. selenium自动化 | 借助百度AI开放平台识别验证码登录职教云