简单讲解实现两台服务器硬盘数据块同步 防灾 高可用集群
仅供学习与交流,请勿用于商业用途
一,安装系统并设置静态IP以及主机名
设备相关信息
node1 192.168.4.110/24 Centos7 node1.example.com
node2 192.168.4.120/24 Centos7 node2.example.com
virtualip 192.168.4.130/24
供用户使用,由keepalived实现
服务器分区要求
因为DRBD是块设备同步
所以单独创建分区挂载/var/svn
建议LVM分区,方便管理与扩容
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
├─centos-root 253:0 0 45.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
└─centos-svn 253:2 0 3.8T 0 lvm /var/svn
服务器双向免验证SSH
按需求设置,设置方法省略一万字
不会配置基本信息请关闭本文
二,部署DRBD实现数据同步
1.安装elrepo认证密匙,安装elrepo源,安装DRBP
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum-config-manager --add-repo=https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/
yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
yum install -y kmod-drbd84.x86_64 kmod-devel.x86_64 drbd84-utils.x86_64
2.安装开发工具
yum groupinstall "Development Tools" -y
3.修改全局文件
vim /etc/drbd.d/global_common.conf
global {
usage-count no;
udev-always-use-vnr; # treat implicit the same as explicit volumes
}
common {
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 {
}
options {
}
disk {
##on-io-error detach;
##配置I/O错误处理策略为分离
}
net {
protocol C;
}
syncer {
rate 1024M; #设置主备节点同步时的网络速率,
}
}
on-io-error 策略可能为以下选项之一
detach 分离:这是默认和推荐的选项,如果在节点上发生底层的硬盘I/O错误,它会将设备运行在Diskless无盘模式下
pass_on:DRBD会将I/O错误报告到上层,在主节点上,它会将其报告给挂载的文件系统,但是在此节点上就往往忽略(因此此节点上没有可以报告的上层)
local-in-error:调用本地磁盘I/O处理程序定义的命令&