转载自:http://www.dearda.com/index.php/archives/2020
另有配置档说明好文:https://blog.51cto.com/aaronsa/2130434
CentOS7.6中drbd-9.0.17安装配置和验证 da2019年04月16日 两台机器的操作系统:CentOS 7.6,uname -r:3.10.0-957.el7.x86_64
到drbd官网下载文件: drbd-9.0.17-1.tar.gz drbd-utils-9.8.0.tar.gz
两台机器增加hosts记录并确定已生效 192.168.1.108 centos1 192.168.1.109 centos2
1、安装drbd模块 安装kernel相关组件,yum install kernel-*,包括kernel-devel,kernel-headers,kernel-tools等, 注意安装的kernel-devel的版本要与uname -r的版本一致,关系到后面的安装,否则会出现报错“Module drbd not found”。 完成后有新增目录/usr/src/kernels/3.10.0-957.el7.x86_64
安装drbd内核模块,直接make安装 tar xzf drbd-9.0.17-1.tar.gz cd drbd-9.0.17-1 make KDIR=/usr/src/kernels/3.10.0-957.el7.x86_64/ make install
完成安装后新增如下文件 ll /lib/modules/3.10.0-957.el7.x86_64/updates/ total 13832 -rw-r–r– 1 root root 13496680 Apr 16 19:31 drbd.ko -rw-r–r– 1 root root 662264 Apr 16 19:31 drbd_transport_tcp.ko
加载drbd模块并确认生效 modprobe drbd lsmod|grep drbd drbd 554407 0 libcrc32c 12644 4 xfs,drbd,nf_nat,nf_conntrack
2、安装drbd-utils yum install -y flex po4a libxslt docbook* tar xzf drbd-utils-9.8.0.tar.gz cd drbd-utils-9.8.0 ./configure –prefix=/usr/local/drbd-utils-9.8.0 –without-83support –without-84support make&&make install
进入drbd-utils安装文件的目录复制drbd-overview.pl这个脚本到系统目录 cd drbd-9.0.17-1/scripts cp -p drbd-overview.pl /usr/sbin/ chmod +x /usr/sbin/drbd-overview.pl
3、修改drbd配置
两台机器新增硬盘sdb,通过fdisk分区为sdb1
共三个配置文件 /usr/local/drbd-utils-9.8.0/etc/drbd.conf 保持默认 /usr/local/drbd-utils-9.8.0/etc/drbd.d/global_common.conf 保持默认 新建配置 vim /usr/local/drbd-utils-9.8.0/etc/drbd.d/r000.res 内容如下:
resource r000 { on centos1 { device /dev/drbd1; disk /dev/sdb1; address 192.168.1.108:8888; meta-disk internal; } on centos2 { device /dev/drbd1; disk /dev/sdb1; address 192.168.1.109:8888; meta-disk internal; } }
新建资源 drbdadm create-md r000 drbdadm up r000
查看节点的角色,当前两台均为备机 [root@centos1 block]# drbdadm role r000 Secondary [root@centos2 drbd-utils-9.8.0]# drbdadm role r000 Secondary
将主节点设置primary drbdadm primary –force r000
查看drbd状态执行drbd-overview 主节点显示如下: [root@centos1 ~]# drbd-overview.pl NOTE: drbd-overview will be deprecated soon. Please consider using drbdtop.
1:r000/0 Connected(2*) Primar/Second UpToDa/UpToDa
从节点显示如下: [root@centos2 scripts]# drbd-overview.pl NOTE: drbd-overview will be deprecated soon. Please consider using drbdtop.
1:r000/0 Connected(2*) Second/Primar UpToDa/UpToDa
4、验证drbd主从同步
上一步设置了/dev/drbd1此设备为同步,则将此设备当成一块硬盘用于操作即可。
主节点执行格式化、挂载、写文件: mkfs.ext4 /dev/drbd1 mkdir /mnt/drbd_dir mount /dev/drbd1 /mnt/drbd_dir dd if=/dev/zero of=/mnt/drbd_dir/100M.file bs=1M count=100 touch test{1,2,3,4,5}
查看drbd状态,显示已使用120M [root@centos1 ~]# drbd-overview.pl NOTE: drbd-overview will be deprecated soon. Please consider using drbdtop.
1:r000/0 Connected(2*) Primar/Second UpToDa/UpToDa /mnt/drbd_dir ext4 4.8G 120M 4.5G 3%
查看共享目录下的文件: [root@centos1 ~]# ll /mnt/drbd_dir total 102416 -rw-r–r– 1 root root 104857600 Apr 16 23:19 100M.file drwx—— 2 root root 16384 Apr 16 23:19 lost+found -rw-r–r– 1 root root 0 Apr 16 23:25 test1 -rw-r–r– 1 root root 0 Apr 16 23:25 test2 -rw-r–r– 1 root root 0 Apr 16 23:25 test3 -rw-r–r– 1 root root 0 Apr 16 23:25 test4 -rw-r–r– 1 root root 0 Apr 16 23:25 test5
验证从节点是否有复制到文件:
主节点卸载硬盘并降级: umount /dev/drbd1 drbdadm secondary r000
从节点升级为primary并挂载文件系统 drbdadm primary r000 mkdir /mnt/drbd_dir mount /dev/drbd1 /mnt/drbd_dir
文件与主节点看到的一致 ll /mnt/drbd_dir [root@centos2 scripts]# ll /mnt/drbd_dir total 102416 -rw-r–r– 1 root root 104857600 Apr 16 23:19 100M.file drwx—— 2 root root 16384 Apr 16 23:19 lost+found -rw-r–r– 1 root root 0 Apr 16 23:25 test1 -rw-r–r– 1 root root 0 Apr 16 23:25 test2 -rw-r–r– 1 root root 0 Apr 16 23:25 test3 -rw-r–r– 1 root root 0 Apr 16 23:25 test4 -rw-r–r– 1 root root 0 Apr 16 23:25 test5
下面是一个配置双主模型的例子。结合PACEMAKER,COROSYNC,RESOURCE-AGENT,配置OCFS,DLM可以实现双活DRBD资源
resource mydrbd {
net {
protocol C;
allow-two-primaries yes;
}
startup {
become-primary-on both;
}
disk {
fencing resource-and-stonith;
}
handlers {
# Make sure the other node is confirmed
# dead after this!
outdate-peer "/sbin/kill-other-node.sh";
}
on node1 {
device /dev/drbd0;
disk /dev/vg0/mydrbd;
address 172.16.200.11:7789;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/vg0/mydrbd;
address 172.16.200.12:7789;
meta-disk internal;
}
}