我已经成功设置测试 DRBD 安装,并且切换、同步等均正常工作。
但我也想测试一下设置的可靠性,所以我对它进行了一次彻底的“破坏”,比如在飞行过程中断开网络接口等。在这样的测试过程中,我“设法”得到了以下状态Diskless
:
root@h2 ~ % drbd-overview
0:r0/0 Connected Secondary/Primary Diskless/UpToDate
现在我无法重新连接资源:
root@h2 ~ % drbdadm --discard-my-data connect r0
r0: Failure: (102) Local address(port) already in use.
Command 'drbdsetup-84 connect r0 ipv4:10.0.1.90:7788 ipv4:10.0.0.90:7788 --protocol=C --max-buffers=36k --sndbuf-size=1024k --rcvbuf-size=2048k --discard-my-data' terminated with exit code 10
即使重新启动辅助也无济于事(我仍然收到消息r0: Failure: (102) Local address(port) already in use.
基本的:
root@h1 ~ % drbd-overview
0:r0/0 Connected Primary/Secondary UpToDate/Diskless
配置:
root@h1 ~ % cat /etc/drbd.d/r0.res
resource r0 {
protocol C;
startup {
wfc-timeout 15;
degr-wfc-timeout 60;
}
disk {
on-io-error detach;
c-fill-target 10M;
c-max-rate 700M;
c-plan-ahead 7;
c-min-rate 4M;
}
net {
# max-epoch-size 20000;
max-buffers 36k;
sndbuf-size 1024k;
rcvbuf-size 2048k;
}
syncer {
rate 400M;
al-extents 6433;
}
on h1 {
device /dev/drbd0;
disk /dev/sdc1;
address 10.0.0.90:7788;
meta-disk internal;
}
on h2 {
device /dev/drbd0;
disk /dev/vg/drbdtest2;
address 10.0.1.90:7788;
meta-disk internal;
}
}
操作系统:
% lsb_release -a
Description: Debian GNU/Linux 9.6 (stretch)
Release: 9.6
Codename: stretch
% dpkg -l | grep drbd
ii drbd-utils 8.9.10-2 amd64 RAID 1 over TCP/IP for Linux (user utilities)
答案1
DRBD 已经Connected
,但它处于Diskless
磁盘状态。这意味着备份磁盘出现问题导致其抛出 IO 错误,或者是其他原因阻止 DRBD 访问该磁盘。
/var/log/syslog
应该充满了围绕该问题的消息,但您也可以尝试drbdadm attach r0
从节点Diskless
查看它告诉您什么。