MySQL高可用之DRBD + Heartbeat + MySQL

10.24.6.4:3306<=10.24.6.6:3306

VIP:

10.24.6.20

必须使得VIP和mysql处于同一网段,否则无法ping通过

2. 参考文档

3. DRBD 共享内存设置

共享硬盘/dev/sdb1

3.1. 创建一个新硬盘/dev/sdb1但是不要挂载任何目录

MySQL高可用之DRBD + Heartbeat + MySQL

MySQL高可用之DRBD + Heartbeat + MySQL

3.2. 修改hosts文件和主机名

在10.24.6.4上

echo "10.24.6.4 drbd01" >> /etc/hosts

echo "drbd01" > /etc/hostname

在10.24.6.6上

echo "10.24.6.6 drbd02" >> /etc/hosts

echo "drbd02" > /etc/hostname

3.3.安装drbd

在10.24.6.4/10.24.6.6上

sudo apt-get install drbd8-utils

3.4.配置drbd.conf(/etc/drbd.conf)的配置文件(主从都要做)

vim /etc/drbd.conf默认信息为:

include "/etc/drbd.d/global_common.conf";

  include "/etc/drbd.d/*.res"; 

这样你需要去配置global_common.conf以及新建一个以res结尾的资源文件,这里为r0.res

3.5. 配置global_common.conf(主从都要做)

vim /etc/drbd.d/global_common.conf 

global { 

usage-count no;  //帮LINBIT公司统计drbd使用量 } 

common { 

protocol C;//C为最安全同时也是性能最好的一种确认写操作完成的方法 

syncer {   

rate 100M;    //同步的速率 

}

}       

MySQL高可用之DRBD + Heartbeat + MySQL

3.6.配置ro.res(主从都要做)

sudo vim /etc/drbd.d/r0.res

resource r0 {//r0资源名称,以后很多地方会用到

on drbd01 {

device      /dev/drbd0;              //逻辑设备的路径

disk  /dev/sdb1;                //物理设备

address    10.24.6.4:7788;      //主节点

meta-disk internal;

}

on drbd02 {

device      /dev/drbd0;

disk  /dev/sdb1;

address    10.24.6.6:7788;      //从节点

meta-disk internal;

}

}

不可以有注释

MySQL高可用之DRBD + Heartbeat + MySQL

3.7. 初始化drbd的metadata(在主节点上操作)

10.24.6.4:

Sudo drbdadm create-md r0

3.8. 错误处理

  

MySQL高可用之DRBD + Heartbeat + MySQL

执行如下命令: dd if=/dev/zero bs=1M count=1 of=/dev/sdb1;sync 

再次执行drbdadm create-md r0看到success则表示成功。

  

MySQL高可用之DRBD + Heartbeat + MySQL

3.9. 启动drbd服务(主从都执行)

/etc/init.d/drbd start

MySQL高可用之DRBD + Heartbeat + MySQL

cat /proc/drbd 

ro:Secondary/ Secondary表示还没有建立主盘

ds:Inconsistent/Inconsistent表示两节点(master/slave)的逻辑设备(即/dev/drbd0)中的数据未同步

本地和对等节点的硬盘有可能为下列状态之一:
Diskless 无盘:本地没有块设备分配给DRBD使用,这表示没有可用的设备,或者使用drbdadm命令手工分离或是底层的I/O错误导致自动分离
Attaching:读取无数据时候的瞬间状态
Failed 失败:本地块设备报告I/O错误的下一个状态,其下一个状态为Diskless无盘
Negotiating:在已经连接的DRBD设置进行Attach读取无数据前的瞬间状态
Inconsistent:数据是不一致的,在两个节点上(初始的完全同步前)这种状态出现后立即创建一个新的资源。此外,在同步期间(同步目标)在一个节点上出现这种状态
Outdated:数据资源是一致的,但是已经过时
DUnknown:当对等节点网络连接不可用时出现这种状态
Consistent:一个没有连接的节点数据一致,当建立连接时,它决定数据是UpToDate或是Outdated
UpToDate:一致的最新的数据状态,这个状态为正常状态

3.10. 端口检测

10.24.6.4:

10.24.6.6:

3.11. 初始化网络硬盘(主节点执行)

drbdadm -- --overwrite-data-of-peer primary r0

查看同步进度

cat /proc/drbd 

MySQL高可用之DRBD + Heartbeat + MySQL

ds:UpToDate/Inconsistent表示两节点正在同步数据

3.12. 启用和禁用资源(不必须)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/485141d35f97d091e3107252c9aecb52.html