环境如下:
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. 初始化网络硬盘(主节点执行)
drbdadm -- --overwrite-data-of-peer primary all(第一次最好使用这个命令,不然会出错)
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也从这里读取数据。这样便实现了两份数据的自动备份。
)