CentOS 6.x系统要升级到最新的内核才支持
CentOS 6.x
rpm -ivh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm yum -y install drbd83-utils kmod-drbd83
CentOS 7.x
rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum install -y drbd84-utils kmod-drbd84
加载模块:
modprobe drbdecho drbd >/etc/modules-load.d/drbd.conf
两台机器时间同步,并修改/etc/hosts文件
10.205.22.185 node1 10.205.22.187 node2
两台主机分别修改主机名
hostname node1 hostname node2
修改配置文件(两台机器配置一样)
/etc/drbd.d/global_common.conf配置文件
global { usage-count yes; #是否参加DRBD使用者统计,默认是参加 } common { protocol C; #使用DRBD的第三种同步协议,表示收到远程主机的写入确认后认为写入完成 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"; } startup { wfc-timeout 240; degr-wfc-timeout 240; outdated-wfc-timeout 240; } disk { on-io-error detach; } net { #DRBD同步时使用的验证方式和密码 cram-hmac-alg md5; shared-secret "testdrbd"; } syncer { rate 30M; #主节点和备用节点同步时最大的网络速率 } }
/etc/drbd.d/r0.res配置文件
resource r0 { on node1 { device /dev/drbd0; disk /dev/sdb1; address 10.205.22.185:7898; meta-disk internal; } on node2 { device /dev/drbd0; disk /dev/sdb1; address 10.205.22.187:7898; meta-disk internal; } }
准备好/dev/sdb1分区
初始化磁盘文件格式,比喵创建数据块的时候报错。
dd if=/dev/zero bs=1M count=1 of=/dev/sdb1; sync
在两台机器上分别创建数据块
drbdadm create-md r0
在两台机器都启动服务
/etc/init.d/drbd start
设定主,并查看状态(drbd84-utils版本用, drbdadm -- --overwrite-data-of-peer primary r0设为主)
drbdsetup /dev/drbd0 primary -o cat /proc/drbd
在主上格式磁盘,挂载并写入文件,主备切换查看同步情况
mkfs.ext4 /dev/drbd0 mount /dev/drbd0 /drbd
主备手动切换:
1.先将主上面的磁盘卸载掉并降级 umount /dev/drbd0 drbdadm secondary r0 2.在备机上升级为主机 drbdadm primary r0 3.挂载磁盘 mount /dev/drbd0 /media/mnt
来源:https://www.cnblogs.com/wsl222000/p/5777382.html