重新连接辅助 DRBD 节点

重新连接辅助 DRBD 节点

我已经成功设置测试 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查看它告诉您什么。

相关内容