PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DRBD + Heartbeat -> Sync nur beim 1. "Ausfall"?



Kela
05.01.07, 11:58
Ich habe auf 2 Rechnern DRBD0.7 und Heartbeat laufen. Beides startet ohne Fehler.
Wenn ich nun die Heartbeat-Leitung kappe erklärt Heartbeat nach ner Zeit Server1 als tot und macht Server2 zum primary, mountet das DRBD Device etc.
Sieht alles gut aus, auch die Daten die ich vorher vom Server1 aus draufgespielt hatte sind da.
Stelle ich die Verbindung nun wieder her connected alles wieder und Server2 übergibt wieder an Server1.
Allerdings sehe ich dort keine während des "Ausfalls" auf Server2 erstellten Daten, sondern bloß die die vorher schon da waren. Auf Server2 sehe ich diese Daten natürlich. Also nehme ich mal an, dass nur beim allerersten Wechsel eine Synchronisation stattfindet, danach nichts mehr.

Hat jemand eine Idee woran das liegen kann?

marce
05.01.07, 12:35
wie ist denn deine DRBD-Konfiguration?

Kela
14.03.07, 07:20
Puh....sorry, mir war es eine lange Zeit nicht möglich daran weiterzuarbeiten.

Hier die drbd.conf


global {
minor-count 2;
dialog-refresh 5;
}

resource drbd0 {
protocol c;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";

startup {
degr-wfc-timeout 120;
}

disk {
on-io-error pass_on;
}

net {
max-buffers 2048;
on-disconnect reconnect;
}

syncer {
rate 150M;
group 1;
}

# Knotenspezifische Einstellungen
on node1 {
device /dev/drbd0;
disk /dev/sda3;
address 192.168.0.11:7788;
meta-disk internal;
}

on node2 {
device /dev/drbd0;
disk /dev/md7;
address 192.168.0.22:7788;
meta-disk internal;
}
}



die haresources:


node2:/# cat /etc/ha.d/haresources
node2 192.168.0.100 drbddisk::drbd0 Filesystem::/dev/drbd0::/sql::ext3


Das Problem besteht immernoch: Die Server scheinen sich nur nach dem 1. Ausfall (quasi mit frisch neugestartetem DRBD + Heartbeat auf beiden Servern) automatisch zu syncen. Dabei fungiert immer Node2 automatisch als SyncSource was auch erwünscht ist.

Ist dagegen schonmal irgendwas "passiert" (=ich hab rumgespielt und einen Ausfall simuliert) passiert beim Kappen der Heartbeatleitung nur das hier:

syslog:


Mar 14 08:01:59 localhost kernel: e1000: eth1: e1000_watchdog: NIC Link is Down
Mar 14 08:02:11 localhost kernel: drbd0: PingAck did not arrive in time.
Mar 14 08:02:11 localhost kernel: drbd0: drbd0_asender [9671]: cstate Connected --> NetworkFailure
Mar 14 08:02:11 localhost kernel: drbd0: asender terminated
Mar 14 08:02:11 localhost kernel: drbd0: drbd0_receiver [9614]: cstate NetworkFailure --> BrokenPipe
Mar 14 08:02:11 localhost kernel: drbd0: short read expecting header on sock: r=-512
Mar 14 08:02:11 localhost kernel: drbd0: worker terminated
Mar 14 08:02:11 localhost kernel: drbd0: drbd0_receiver [9614]: cstate BrokenPipe --> Unconnected
Mar 14 08:02:11 localhost kernel: drbd0: Connection lost.
Mar 14 08:02:11 localhost kernel: drbd0: drbd0_receiver [9614]: cstate Unconnected --> WFConnection
Mar 14 08:03:24 localhost kernel: e1000: eth1: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex
Mar 14 08:03:24 localhost kernel: drbd0: drbd0_receiver [9614]: cstate WFConnection --> WFReportParams
Mar 14 08:03:24 localhost kernel: drbd0: Handshake successful: DRBD Network Protocol version 74
Mar 14 08:03:24 localhost kernel: drbd0: incompatible states (both Primary!)
Mar 14 08:03:24 localhost kernel: drbd0: drbd0_receiver [9614]: cstate WFReportParams --> StandAlone
Mar 14 08:03:24 localhost kernel: drbd0: error receiving ReportParams, l: 72!
Mar 14 08:03:24 localhost kernel: drbd0: worker terminated
Mar 14 08:03:24 localhost kernel: drbd0: asender terminated
Mar 14 08:03:24 localhost kernel: drbd0: drbd0_receiver [9614]: cstate StandAlone --> StandAlone
Mar 14 08:03:24 localhost kernel: drbd0: Connection lost.
Mar 14 08:03:24 localhost kernel: drbd0: receiver terminated
Mar 14 08:03:26 localhost kernel: drbd0: Primary/Unknown --> Secondary/Unknown
Mar 14 08:03:51 localhost kernel: drbd0: Secondary/Unknown --> Primary/Unknown
Mar 14 08:03:51 localhost kernel: kjournald starting. Commit interval 5 seconds
Mar 14 08:03:51 localhost kernel: EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
Mar 14 08:03:51 localhost kernel: EXT3 FS on drbd0, internal journal
Mar 14 08:03:51 localhost kernel: EXT3-fs: mounted filesystem with ordered data mode.



ha-log:


heartbeat: 2007/03/14_08:02:07 WARN: node node1: is dead
heartbeat: 2007/03/14_08:02:07 WARN: No STONITH device configured.
heartbeat: 2007/03/14_08:02:07 WARN: Shared disks are not protected.
heartbeat: 2007/03/14_08:02:07 info: Resources being acquired from node1.
heartbeat: 2007/03/14_08:02:07 info: Link node1:eth1 dead.
heartbeat: 2007/03/14_08:02:07 info: Running /etc/ha.d/rc.d/status status
heartbeat: 2007/03/14_08:02:07 info: /usr/lib/heartbeat/mach_down: nice_failback: foreign resources acquired
heartbeat: 2007/03/14_08:02:07 info: mach_down takeover complete.
heartbeat: 2007/03/14_08:02:07 info: mach_down takeover complete for node node1.
heartbeat: 2007/03/14_08:02:07 info: Local Resource acquisition completed.
heartbeat: 2007/03/14_08:03:24 WARN: Cluster node node1 returning after partition.
heartbeat: 2007/03/14_08:03:24 WARN: Deadtime value may be too small.
heartbeat: 2007/03/14_08:03:24 info: See documentation for information on tuning deadtime.
heartbeat: 2007/03/14_08:03:24 WARN: 46 lost packet(s) for [node1] [144:191]
heartbeat: 2007/03/14_08:03:24 info: Link node1:eth1 up.
heartbeat: 2007/03/14_08:03:24 WARN: Late heartbeat: Node node1: interval 86620 ms
heartbeat: 2007/03/14_08:03:24 info: Status update for node node1: status active
heartbeat: 2007/03/14_08:03:24 info: Running /etc/ha.d/rc.d/status status
heartbeat: 2007/03/14_08:03:24 info: No pkts missing from node1!
heartbeat: 2007/03/14_08:03:26 info: Heartbeat shutdown in progress. (9357)
heartbeat: 2007/03/14_08:03:26 info: Giving up all HA resources.
heartbeat: 2007/03/14_08:03:26 info: Releasing resource group: node2 192.168.0.100 drbddisk::drbd0 Filesystem::/dev/drbd0::/sql::ext3
heartbeat: 2007/03/14_08:03:26 info: Running /etc/ha.d/resource.d/Filesystem /dev/drbd0 /sql ext3 stop
heartbeat: 2007/03/14_08:03:26 info: Running /etc/ha.d/resource.d/drbddisk drbd0 stop
heartbeat: 2007/03/14_08:03:26 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.100 stop
heartbeat: 2007/03/14_08:03:26 info: /sbin/route -n del -host 192.168.0.100
heartbeat: 2007/03/14_08:03:26 info: /sbin/ifconfig eth1:0 down
heartbeat: 2007/03/14_08:03:26 info: IP Address 192.168.0.100 released
heartbeat: 2007/03/14_08:03:26 info: All HA resources relinquished.
heartbeat: 2007/03/14_08:03:26 info: Received shutdown notice from 'node1'.
heartbeat: 2007/03/14_08:03:26 info: Resource takeover cancelled - shutdown in progress.
heartbeat: 2007/03/14_08:03:27 info: killing HBREAD process 9361 with signal 15
heartbeat: 2007/03/14_08:03:27 info: killing HBFIFO process 9359 with signal 15
heartbeat: 2007/03/14_08:03:27 info: killing HBWRITE process 9360 with signal 15
heartbeat: 2007/03/14_08:03:27 info: Core process 9359 exited. 3 remaining
heartbeat: 2007/03/14_08:03:27 info: Core process 9360 exited. 2 remaining
heartbeat: 2007/03/14_08:03:27 info: Core process 9361 exited. 1 remaining
heartbeat: 2007/03/14_08:03:27 info: Heartbeat shutdown complete.
heartbeat: 2007/03/14_08:03:27 info: Heartbeat restart triggered.
heartbeat: 2007/03/14_08:03:27 info: Restarting heartbeat.
heartbeat: 2007/03/14_08:03:27 info: Performing heartbeat restart exec.
heartbeat: 2007/03/14_08:03:38 info: **************************
heartbeat: 2007/03/14_08:03:38 info: Configuration validated. Starting heartbeat 1.2.3
heartbeat: 2007/03/14_08:03:38 info: heartbeat: version 1.2.3
heartbeat: 2007/03/14_08:03:38 info: Heartbeat generation: 104
heartbeat: 2007/03/14_08:03:38 info: UDP Broadcast heartbeat started on port 694 (694) interface eth1
heartbeat: 2007/03/14_08:03:38 info: pid 9930 locked in memory.
heartbeat: 2007/03/14_08:03:38 info: Local status now set to: 'up'
heartbeat: 2007/03/14_08:03:39 info: pid 9932 locked in memory.
heartbeat: 2007/03/14_08:03:39 info: pid 9933 locked in memory.
heartbeat: 2007/03/14_08:03:39 info: pid 9934 locked in memory.
heartbeat: 2007/03/14_08:03:39 info: Link node2:eth1 up.
heartbeat: 2007/03/14_08:03:39 info: Link node1:eth1 up.
heartbeat: 2007/03/14_08:03:39 info: Status update for node node1: status up
heartbeat: 2007/03/14_08:03:39 info: Local status now set to: 'active'
heartbeat: 2007/03/14_08:03:39 info: Status update for node node1: status active
heartbeat: 2007/03/14_08:03:39 info: Running /etc/ha.d/rc.d/status status
heartbeat: 2007/03/14_08:03:39 info: Running /etc/ha.d/rc.d/status status
heartbeat: 2007/03/14_08:03:50 info: local resource transition completed.
heartbeat: 2007/03/14_08:03:50 info: Initial resource acquisition complete (T_RESOURCES(us))
heartbeat: 2007/03/14_08:03:50 info: remote resource transition completed.
heartbeat: 2007/03/14_08:03:50 info: Local Resource acquisition completed.
heartbeat: 2007/03/14_08:03:50 info: Running /etc/ha.d/rc.d/ip-request-resp ip-request-resp
heartbeat: 2007/03/14_08:03:50 received ip-request-resp 192.168.0.100 OK yes
heartbeat: 2007/03/14_08:03:50 info: Acquiring resource group: node2 192.168.0.100 drbddisk::drbd0 Filesystem::/dev/drbd0::/sql::ext3
heartbeat: 2007/03/14_08:03:50 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.100 start
heartbeat: 2007/03/14_08:03:50 info: /sbin/ifconfig eth1:0 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
heartbeat: 2007/03/14_08:03:50 info: Sending Gratuitous Arp for 192.168.0.100 on eth1:0 [eth1]
heartbeat: 2007/03/14_08:03:51 /usr/lib/heartbeat/send_arp -i 1010 -r 5 -p /var/lib/heartbeat/rsctmp/send_arp/send_arp-192.168.0.100 eth1 192.168.0.100 auto 192.168.0.100 ffffffffffff
heartbeat: 2007/03/14_08:03:51 info: Running /etc/ha.d/resource.d/drbddisk drbd0 start
heartbeat: 2007/03/14_08:03:51 info: Running /etc/ha.d/resource.d/Filesystem /dev/drbd0 /sql ext3 start




Ist ja schön, dass der Standard Primary Server die Daten wieder hat, aber wieso setzt DRBD dne Status auf Standalone?
Ich kann nun echt nicht nachvollziehen wieso er sich nicht immer gleich verhält, lieber wäre mir wenn im Zweifelsfall (beide waren Primary weil Fehler) ein von mir ausgewählter Knoten automatisch als SyncSource fungiert, so wie es momentan nach dem 1. Ausfall Node2 tut.
Will ich einfach etwas was nicht geht?
Theoretisch hätten ja auch beide Server die selbe IP wenn sie als Primary weiterlaufen, ka was ich mir dabei gedacht habe.... *g*