복제를 위해 DRBD를 사용하고 있습니다. 테스트 목적으로 2개의 VM을 사용하고 있습니다. 노드에서 네트워크 인터페이스의 연결을 끊으면 독립 실행형으로 이동하고 다시 연결한 후에도 연결 모드나 WFconnection 모드로 돌아가지 않는 것으로 나타났습니다. 맥박 조정기를 사용하여 달리거나 이에 상응하는 방법이 있습니까 $drbdadm connect r0
?
내 구성:
[root@CentOS1 ~]# cat /etc/drbd.d/nfs.res
resource r0 {
syncer {
c-plan-ahead 20;
c-fill-target 50k;
c-min-rate 25M;
al-extents 3833;
rate 90M;
}
disk {
no-md-flushes;
fencing resource-only;
}
handlers {
fence-peer "/usr/lib/drbd/crm-fence-peer.sh --timeout 120 --dc-timeout 120";
after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
}
net {
sndbuf-size 0;
max-buffers 8000;
max-epoch-size 8000;
after-sb-0pri discard-least-changes;
after-sb-1pri consensus;
after-sb-2pri call-pri-lost-after-sb;
}
device /dev/drbd0;
disk /dev/centos/drbd;
meta-disk internal;
on CentOS1 {
address 172.25.1.11:7790;
}
on CentOS2 {
address 172.25.1.12:7790;
}
}
네트워크 연결을 끊었다가 다시 연결한 후의 리소스 상태:
[root@CentOS1 ~]#cat /proc/drbd
version: 8.4.10-1 (api:1/proto:86-101)
GIT-hash: a4d5de01fffd7e4cde48a080e2c686f9e8cebf4c build by mockbuild@, 2017-09-15 14:23:22
0: cs:StandAlone ro:Secondary/Unknown ds:UpToDate/Outdated r-----
ns:0 nr:0 dw:0 dr:2128 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
통나무:
[root@CentOS2 ~]# cat /dev/kmsg
6,1171,16427206172,-;e1000: enp0s9 NIC Link is Down
3,1172,16427206435,-;e1000 0000:00:09.0 enp0s9: Reset adapter
SUBSYSTEM=pci
DEVICE=+pci:0000:00:09.0
3,1173,16431488757,-;drbd r0: PingAck did not arrive in time.
6,1174,16431488808,-;drbd r0: peer( Secondary -> Unknown ) conn( Connected -> NetworkFailure ) pdsk( UpToDate -> DUnknown )
6,1175,16431489116,-;drbd r0: ack_receiver terminated
6,1176,16431489121,-;drbd r0: Terminating drbd_a_r0
6,1177,16431489277,-;block drbd0: new current UUID A5A2A33E423F0679:0F9B7A2A6938EE77:4471A80A92A109A4:4470A80A92A109A4
SUBSYSTEM=block
DEVICE=b147:0
6,1178,16431489574,-;drbd r0: Connection closed
6,1179,16431489660,-;drbd r0: conn( NetworkFailure -> Unconnected )
6,1180,16431489667,-;drbd r0: receiver terminated
6,1181,16431489669,-;drbd r0: Restarting receiver thread
6,1182,16431489671,-;drbd r0: receiver (re)started
6,1183,16431489712,-;drbd r0: conn( Unconnected -> WFConnection )
6,1184,16431489801,-;drbd r0: helper command: /sbin/drbdadm fence-peer r0
4,1185,16431673341,-;drbd r0: helper command: /sbin/drbdadm fence-peer r0 exit code 5 (0x500)
6,1186,16431673351,-;drbd r0: fence-peer helper returned 5 (peer is unreachable, assumed to be dead)
6,1187,16431673374,-;drbd r0: pdsk( DUnknown -> Outdated )
3,1188,16450060876,-;drbd r0: bind before connect failed, err = -99
6,1189,16450060962,-;drbd r0: conn( WFConnection -> Disconnecting )
4,1190,16461488768,-;drbd r0: Discarding network configuration.
6,1191,16461488824,-;drbd r0: Connection closed
6,1192,16461488855,-;drbd r0: conn( Disconnecting -> StandAlone )
6,1193,16461488860,-;drbd r0: receiver terminated
6,1194,16461488862,-;drbd r0: Terminating drbd_r_r0
답변1
없기. DRBD와 Pacemaker는 주어진 작업에 대한 리소스 에이전트 반환 코드가 무엇인지 제외하고 서로에 대해 실제로 알지 못합니다.
DRBD가 바인딩된 인터페이스를 그 아래에서 끌어내면 DRBD가 실행됩니다 StandAlone
. 그런 다음 리소스를 다시 연결하기만 하면 됩니다. drbdadm connect <res>
--또는--drbdadm connect all
네트워크 인터페이스가 일반적으로 완전히 사라지지 않고 관리자의 개입 없이 다시 돌아오는 것을 고려하면 괜찮은 것 같습니다. 네트워크 통신이 중단될 때(패킷 삭제) 어떤 일이 발생하는지 테스트하려면 IP 테이블 규칙을 사용해야 합니다. 그러면 DRBD가 WFConnection
연결 대기 상태 로 들어갔다 가 Connected
규칙이 제거된 시점으로 돌아가는 것을 볼 수 있습니다.