实现环境
os:Centos 6.8
ip1:192.168.85.129 node1
ip2:192.168.85.130 node2
disk:/dev/sdb1 (一个10G的分区)
DRBD部署
DRBD安装
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 drbd
检测DRBD是否安装成功
lsmod | grep drbd
两台机器时间同步,并修改/etc/hosts文件
192.168.85.129 node1
192.168.85.130 node2
两台主机分别修改主机名
hostname node1
hostname node2
修改配置文件(两台机器配置一样)
cat > /etc/drbd.d/global_common.conf < /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 {
verify-alg sha1; # 定义网络传输速率,一般传输速度的30%
rate 30M; #主节点和备用节点同步时最大的网络速率
}
}
EOF
创建资源文件
cat >/etc/drbd.d/r0.res <
将node1 的配置文件传送到node2 上
cd /etc/drbd.d
scp global_common.conf r0.res root@node2:/etc/drbd.d/
在node1,node2 机器上分别创建数据块 r0 (r0为资源文件中的资源名)
drbdadm create-md r0
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
表示创建成功
在两台机器都启动服务
/etc/init.d/drbd start
在node1 初始化网络硬盘
drbdsetup /dev/drbd0 primary -o
cat /proc/drbd
在node1 主DRBD上格式磁盘,挂载并写入文件测试
mkfs.ext4 /dev/drbd0
mkdir /drbd
mount /dev/drbd0 /drbd
cd /drbd
touch {1,2,3}
umount /dev/drbd0
drbdadm secondary r0
在node2 从DRBD上,查看状态
cat /proc/drbd
mkdir /drbd
mount /dev/drbd0 /drbd
cd /drbd
ls
查看在node1 上创建的文件是否存在
Heartbeat部署
Heartbeat安装
install heartbeat
配置heartbeat
vi /etc/heartbeat/ha.cf
logfacility local0
keepalive 2
deadtime 10
auto_failback off
bcast eth0
node node1 node2
vi /etc/heartbeat/haresources
node1 drbddisk::r0 Filesystem::/dev/drbd0::/drbd::ext4
vi /etc/heartbeat/authkeys
auth 3
3 md5 abc
chmod 600 authkeys
相同的配置复制到drbd2
cd /etc/heartbeat
scp authkeys haresources ha.cf root@node2:/etc/heartbeat/
确保服务都是正常运行的
/etc/init.d/drbd start
/etc/init.d/heartbeat start
切换测试
通过cat /proc/drbd 查看drbd的状态或者mount查看/drbd 是不是已经挂载确定资源所在的机器。然后在那台机器的/drbd 新建立一些文件并停掉那台机器上的heartbeat。看另一台机器上/drbd 是不是被自动挂载了呢?里面是不是有刚创建的文件?