一.环境准备
系统环境
CentOS release 6.3 (Final)
内核信息
2.6.32-279.el6.x86_64
ip地址
vip 192.168.64.120
master 192.168.64.132 心跳线:10.0.0.1 主机名:DBmaster.test
slave 192.168.64.135 心跳线:10.0.0.2 主机名:DBbak.test
镜像磁盘
master /dev/sdc
slave /dev/sdc
fdisk -l
安装依赖环境
yum -y install gcc gcc-c++ make glibcflex kernel kernel-devel kernel-headers
下载安装包
wget http://oss.linbit.com/drbd/8.4/drbd-8.4.3.tar.gz
二.安装配置
安装:
ls
tar zxfdrbd-8.4.3.tar.gz
ls
cd drbd-8.4.3
./configure--prefix=/usr/local/drbd --with-km
ls/usr/src/kernels/2.6.32-431.5.1.el6.x86_64
ls/usr/src/kernels/
uname -r
makeKDIR=/usr/src/kernels/2.6.32-431.5.1.el6.x86_64
echo $?
make install
echo $?
添加开机启动
cp/usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d
chkconfig --adddrbd
chkconfig drbdon
加载DRBD模块
depmod
modprobe drbd
modprobe drbd
加载DRBD模块报错
[[email protected]]# depmod
[[email protected]]# modprobe drbd
FATAL: Moduledrbd not found.
报错:FATAL: Module drbd not found. 内核不支持,更新内核,然后重启
查看模块是否加载到内核
[root@mantis ~]#lsmod |grep drbd
drbd 325658 0
libcrc32c 1246 1 drbd
安装成功后系统会有drbd的命令
/sbin/dr
dracut drbdadm drbdmeta drbdsetup
主配置文件
cat>>/usr/local/drbd/etc/drbd.conf < # You can findan example in /usr/share/doc/drbd.../drbd.conf.example include"drbd.d/global_common.conf"; include"drbd.d/*.res"; EOF 全局配置文件 cp/usr/local/drbd/etc/drbd.d/global_common.conf/usr/local/drbd/etc/drbd.d/global_common.conf.bk >/usr/local/drbd/etc/drbd.d/global_common.conf cat>>/usr/local/drbd/etc/drbd.d/global_common.conf < global { usage-count no; # minor-count dialog-refreshdisable-ip-verification } common { protocol C; 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 100M; } } EOF 资源配置文件 cat>>/usr/local/drbd/etc/drbd.d/mysql.res < resource mysql { on DBmaster.test { device /dev/drbd0; disk /dev/sdc1; address 10.0.0.1:7789; meta-disk internal; } on DBbak.test { device /dev/drbd0; disk /dev/sdc1; address 10.0.0.2:7789; meta-disk internal; } } EOF drbd设备创建 [[email protected]]# mknod /dev/drbd0 b 147 0 [[email protected]]# drbdadm create-md mysql 报错: 'mysql' not defined in your config (forthis host). 网上说报错4:'drbd' notdefined in your config (for this host). 这个因为没有加载到drbd模块 解决:需要指定/etc/hosts里面主机 正常: [root@DBmaster drbd.d]# drbdadmcreate-md my1 Writing meta data... initializing activity log NOT initializing bitmap New drbd meta data block successfullycreated. [root@DBbak drbd.d]# drbdadm create-mdmy1 Writing meta data... initializing activity log NOT initializing bitmap New drbd meta data block successfullycreated. 启动drbd /usr/local/drbd/etc/rc.d/init.d/drbdstart cp/usr/local/drbd/etc/rc.d/init.d/drbd /etc/init.d/ chkconfig adddrbd [[email protected]]# ps -ef|grep drbd root 13262 2 0 13:46 ? 00:00:00 [drbd-reissue] root 13600 2 0 15:42 ? 00:00:00 [drbd_submit] root 13604 2 0 15:42 ? 00:00:00 [drbd_w_my1] root 13614 2 0 15:42 ? 00:00:00 [drbd_r_my1] root 13621 2 0 15:42 ? 00:00:00 [drbd_a_my1] root 13625 2384 0 15:43 pts/1 00:00:00 grep drbd 查看状态 [[email protected]]# /usr/local/drbd/etc/rc.d/init.d/drbd status drbd driverloaded OK; device status: version: 8.4.3(api:1/proto:86-101) GIT-hash:89a294209144b68adb3ee85a73221f964d3ee515 build by [email protected],2014-05-09 13:43:20 m:res cs ro ds p mounted fstype 0:my1 Connected Secondary/Secondary Inconsistent/Inconsistent C [[email protected]]# cat /proc/drbd version: 8.4.3(api:1/proto:86-101) GIT-hash:89a294209144b68adb3ee85a73221f964d3ee515 build by [email protected],2014-05-09 13:43:20 0: cs:Connected ro:Secondary/Secondaryds:Inconsistent/Inconsistent C r----- ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0ua:0 ap:0 ep:1 wo:f oos:5236960 主节点的设置(primary) drbdsetupprimary /dev/drbd0 --force 配置为主节点 挂载设备(primary) 说明:挂载DRBD分区之前,首先确认当前主机的DRBD分区是primary状态,可以通过cat /proc/drdb命令中查询状态。 创建文件系统(primary) mkfs.ext4/dev/drbd0 挂载设备(primary) mount/dev/drbd0 /data --->DBdata 测试 [root@DBmasterdata]# touch {1..9} 卸载降级 [root@DBmaster~]# umount /data [root@DBmaster~]# drbdsetup /dev/drbd0 secondary 升级,然后挂载,查看 [root@DBbakdata]# drbdsetup /dev/drbd0 primary [root@DBbakdata]# mount /dev/drbd0 /data [root@DBbakdata]# ls [root@DBbakdata]# cd /data/ [root@DBbakdata]# ls 1 2 3 4 5 6 7 8 9 abc lost+found rzsz-3.48.tar.gz 三.配置文件说明 以上相关配置文件说明: cat /etc/drbd.d/global_common.conf global { usage-count no; #?取消drbd使用者统计 # minor-count dialog-refresh disable-ip-verification } common { protocol C; #?选择drbd的C协议 startup { #?启动延时配置 wfc-timeout 120; degr-wfc-timeout 120; } disk { #?fence防脑裂 on-io-error detach; fencing resource-only; } net { cram-hmac-alg "sha1";#?主备节点使用的通信算法 shared-secret "mydrbdlab"; } syncer { rate 100M; #?同步速率,视带宽而定 } } cat /etc/drbd.d/web.res resource web { #?web为资源名 on master-nfs { #?master-nfs为节点名称 device /dev/drbd0; #?定义虚拟设备 disk /dev/sdb1; #?指定真实设备 address 192.168.2.1:7789; #?监听自身IP端口 meta-disk internal; } on slave-nfs { device /dev/drbd0; disk /dev/sdb1; address 192.168.2.2:7789; meta-disk internal; } } EOF