Ubuntu下MySQL+DRBD+Heartbeat高性能服务集群配置

VMware下的两台虚拟机,

drbd01    192.168.1.22

drbd02    192.168.1.23

vip       192.168.100.120(heartbeat会自动给我们配好,不用担心)

Ubuntu    disk:/dev/sdb1(一个5G的分区)

一、            安装drbd

1.      修改hosts文件和主机名

在drbd01上

echo "192.168.1.22     drbd2" >> /etc/hosts

echo "drbd01" > /etc/hostname

在drbd02上

echo "192.168.1.23     drbd1" >> /etc/hosts

echo "drbd02" > /etc/hostname      

(需要reboot后设置生效)

2.      安装drbd(主从都要安装)

apt-get install drbd8-utils

3.      配置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。

vim /etc/drbd.d/global_common.conf

global {

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

}

common {

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

syncer {

rate 100M;    //同步的速率

}

}

vim /etc/drbd.d/r0.res

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

on drbd01 {

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

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

address  192.168.1.22:7788;  //主节点

meta-disk internal;

}

on drbd02 {

device   /dev/drbd0;

disk     /dev/sdb1;

address  192.168.1.23:7788;    //从节点

meta-disk internal;

}

}

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

drbdadm create-md r0

(如果出现如下错误:

md_offset21467942912

al_offset21467910144

bm_offset21467254784

Foundext3 filesystem

20964792kB data area apparently used

20964116kB left usable by current configuration

Devicesize would be truncated, which

wouldcorrupt data and result in'access beyond end of device' errors.

You needto either

* useexternal meta data (recommended)

* shrinkthat filesystem first

* zeroout the device (destroy the filesystem)

Operationrefused.

Command 'drbdmeta 1 v08 /dev/sdb1 internal create-md'terminated with exit code 40

drbdadm create-md r0exited with code 40 )

执行如下命令:

dd if=/dev/zero bs=1M count=1of=/dev/sdb1;sync

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

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

/etc/init.d/drbd start

cat /proc/drbd

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

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

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

drbdsetup /dev/drbd0 primary –o

cat /proc/drbd

ro: primary / Secondary表示在主节点建立了主盘

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

等同步完后将会变成

ds: UpToDate / UpToDate

7.      格式化磁盘,现在讲磁盘格式化后并可以向其中写数据,这些数据会同步到从节点中。

在drbd01上(主节点)

mkfs.ext4 /dev/drbd0

mount /dev/drbd0 /mnt/data

(注意:只有主盘节点才能挂载磁盘)

cd /mnt/data

mkdir testfile                 //新建名为testfile的测试文件

umount /dev/drbd0          //卸载磁盘

drbdadm secondary r0        //主降为次,即刚开始主节点的磁盘是主盘,现在降为从盘,往主盘里写数据,从从盘里读数据。

在drbd02上(从节点)

drbdadm primary r0            //次升为主,即将从节点的磁盘升为主盘资格这样才能从从节点的机器读取磁盘的数据。

mount /dev/drbd0 /mnt/data    //升主后才有挂在权限

cd /mnt/data                

ls –l

将会看到我们在主节点中建立的名为testfile的文件夹。

(啰嗦一下:

要想完成主从Mysql数据的备份,到这里大家应该有点启发了,我么只需要将Mysql的数据保存到/mnt/data(我们将/dev/drbd0挂在的路径)中即可这样主Mysql往这个区域写数据,drbd会帮我们自动将这些数据同步到从节点中,这样装在从节点机器上的Mysql也从这里读取数据。这样便实现了两份数据的自动备份。

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

转载注明出处:http://www.heiqu.com/9c9e5d63363be4d1c065adbebe2044dc.html