这里只做单主模型的介绍。
单主模型:主节点可以实现数据的读写操作,从节点不能读也不能写。
1、安装服务和工具
# rpm -ivh drbd-8.4.3-33.el6.x86_64.rpm drbd-kmdl-2.6.32-358.el6-8.4.3-33.el6.x86_64.rpm
drbd共有两部分组成:内核模块和用户空间的管理工具。其中drbd内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果您的内核版本高于此版本的话,你只需要安装管理工具即可;否则,您需要同时安装内核模块和管理工具两个软件包,并且此两者的版本号一定要保持对应。
目前在用的drbd版本主要有8.0、8.2和8.3三个版本,其对应的rpm包的名字分别为drbd, drbd82和drbd83,对应的内核模块的名字分别为kmod-drbd, kmod-drbd82和kmod-drbd83。各版本的功能和配置等略有差异;我们实验所用的平台为x86且系统为rhel5.8,因此需要同时安装内核模块和管理工具。我们这里选用最新的8.3的版本(drbd83-8.3.8-1.el5.CentOS.i386.rpm和kmod-drbd83-8.3.8-1.el5.centos.i686.rpm),下载地址为:。
2、配置/etc/drbd.d/global-common.conf
global {
usage-count no;
# minor-count dialog-refresh disable-ip-verification
}
common {
protocol C;
handlers {
pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
# fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
# split-brain "/usr/lib/drbd/notify-split-brain.sh root";
# out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
# before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
# after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
}
startup {
#wfc-timeout 120;
#degr-wfc-timeout 120;
}
disk {
on-io-error detach;
#fencing resource-only;
}
net {
cram-hmac-alg "sha1";
shared-secret "mydrbdlab";
}
syncer {
rate 1000M;
}
}
3、定义一个资源/etc/drbd.d/web.res,内容如下:
resource mysql {
on {
device /dev/drbd0;
disk /dev/sda5;
address 172.16.100.15:7789;
meta-disk internal;
}
on {
device /dev/drbd0;
disk /dev/sda5;
address 172.16.100.16:7789;
meta-disk internal;
}
}
4、为节点提供配置文件
# scp /etc/drbd.d/* :/etc/drbd.d/
5、初始化资源,在两个节点分别执行:
# drbdadm create-md mysql
6、启动服务,在两个节点上分别执行:
# chkconfig --add drbd
# service drbd start
这里需要注意,一定要两个节点都启动服务,否则,启动服务的那个节点会一直等待下去。
7、查看启动状态:
# cat /proc/drbd
# drbd-overview
8、第一次提升一个节点为主节点
# drbdadm -- --overwrite-data-of-peer primary mysql 或者
# drbdsetup /dev/drbd0 primary -o
必须是主节点才可以挂载,不是主节点,必须先升级为主节点,才能挂载。
下列命令可以实现主从节点的切换
# drbdadm primary mysql
# drbdadm secondary mysql
再次查看
# drbd-overview
0:web SyncSource Primary/Secondary UpToDate/Inconsistent C r----
[============>.......] sync'ed: 66.2% (172140/505964)K delay_probe: 35
等数据同步完成以后再次查看状态,可以发现节点已经发生变化,且节点已经有了主次:
# drbd-overview
0:web Connected Primary/Secondary UpToDate/UpToDate C r----
9、创建文件系统
文件系统的挂载只能在Primary节点进行,因此,也只有在设置了主节点后才能对drbd设备进行格式化:
升为主节点----》格式化-----》挂载
格式化只是在配置drbd时候需要,配置高可用的时候肯定格式化好了,而且已经有了mysql的数据文件
# mke2fs -j -L DRBD /dev/drbd0
# mkdir /mnt/drbd
# mount /dev/drbd0 /mnt/drbd