= Syn-3 hartslag monitoring = Vanaf versie 4.2 heeft Syn-3 ook 'heartbeat' ondersteuning. Door de manier waarop Syn-3 is opgezet kon er geen gebruik worden gemaakt van het orginele heartbeat project op http://linux-ha.org/. Om deze reden heeft DatuX een eigen simpel doch doeltreffend heartbeat systeem ontwikkeld. Vrijgegeven onder GPL: [source:/trunk/npl/syn3/synwatchdog] In dog modus zal syndog op alle media tegelijkertijd een cluster id 'blaffen'. Dit gaat via: * Beide seriele poorten (/dev/ttyS0 en /dev/ttyS1) * Alle ethernet devices via een simpel ethernet protocol. Doordat het monitoren via ethernet broadcasts gaat is er geen ip configuratie nodig en zal er geen hinder ondervonden worden van de firewall die op het systeem aanwezig is. Er is geen ARP en IP stack nodig, waardoor de kans op problemen minimaal is. De monitoring gaat dus niet alleen via de crosskabel, maar ook via de switches op de andere adaptors. Als extra veiligheid kan zelfs nog een seriele kabel gebruik worden. == Dog modus == Deze mode word automatisch gestart in de initrd. Tijdens het booten word via de inittab een nieuwe instantie gestart, waardoor de initrd geunmount kan worden. Handmatig starten kan natuurlijk ook: {{{ [Syn-3] root@demo.syn-3.nl ~# syndog geert Syndog: Barfing 'geert' on all links. }}} De ID word gebruikt om meerdere clusters op 1 netwerk uitelkaar te kunnen houden. (er word immers gebruik gemaakt van broadcasts) == Cat modus == In cat modus kan er gekeken worden of er een hartslag aanwezig is op 1 van de media: {{{ [Syn-3] root@demo.syn-3.nl ~# source /boot/drbd.conf [Syn-3] root@demo.syn-3.nl ~# syndog $CLUSTER_ID --cat /dev/ttyS0 eth1:00:0c:29:7d:75:59 eth0:00:0c:29:7d:75:59 eth1:00:0c:29:7d:75:63 eth0:00:0c:29:7d:75:63 /dev/ttyS0 eth1:00:0c:29:7d:75:59 eth1:00:0c:29:7d:75:63 eth0:00:0c:29:7d:75:59 eth0:00:0c:29:7d:75:63 /dev/ttyS0 eth1:00:0c:29:7d:75:59 eth1:00:0c:29:7d:75:63 eth0:00:0c:29:7d:75:59 eth0:00:0c:29:7d:75:63 eth1:00:0c:29:7d:75:59 eth1:00:0c:29:7d:75:63 eth0:00:0c:29:7d:75:59 eth0:00:0c:29:7d:75:63 [Syn-3] root@demo.syn-3.nl ~# }}} Hier word de adaptor getoond waarop het pakketje binnenkomt, gevolgd door het source mac adres. In dit geval zitten de machines met beide adaptors op dezelfde switch, waardoor alle pakketjes dubbel binnenkomen. = Protocol informatie = De werking van het protocol is zeer eenvoudig: * Iedere seconde word er een ethernet frame gebroadcast. * Het ethernet type-veld van dit frame is '''0x1337'''. * Het datafield van dit ethernet frame bevat de unieke ID die meegegeven is aan het syndog-commando. Tcp dump output: {{{ root@server # tcpdump -i wlan0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on wlan0, link-type EN10MB (Ethernet), capture size 96 bytes 22:49:59.094503 00:0c:29:83:8b:95 (oui Unknown) > Broadcast, ethertype Unknown (0x1337), length 60: 0x0000: 6363 6663 6233 6264 2d38 6136 342d 3434 ccfcb3bd-8a64-44 0x0010: 3563 2d61 3461 352d 3063 6663 6162 3261 5c-a4a5-0cfcab2a 0x0020: 6638 6666 0000 0000 0000 0000 0000 f8ff.......... 22:49:59.094757 00:0c:29:83:8b:9f (oui Unknown) > Broadcast, ethertype Unknown (0x1337), length 60: 0x0000: 6363 6663 6233 6264 2d38 6136 342d 3434 ccfcb3bd-8a64-44 0x0010: 3563 2d61 3461 352d 3063 6663 6162 3261 5c-a4a5-0cfcab2a 0x0020: 6638 6666 0000 0000 0000 0000 0000 f8ff.......... 22:50:00.188907 00:0c:29:83:8b:95 (oui Unknown) > Broadcast, ethertype Unknown (0x1337), length 60: 0x0000: 6363 6663 6233 6264 2d38 6136 342d 3434 ccfcb3bd-8a64-44 0x0010: 3563 2d61 3461 352d 3063 6663 6162 3261 5c-a4a5-0cfcab2a 0x0020: 6638 6666 0000 0000 0000 0000 0000 f8ff.......... 22:50:00.189142 00:0c:29:83:8b:9f (oui Unknown) > Broadcast, ethertype Unknown (0x1337), length 60: 0x0000: 6363 6663 6233 6264 2d38 6136 342d 3434 ccfcb3bd-8a64-44 0x0010: 3563 2d61 3461 352d 3063 6663 6162 3261 5c-a4a5-0cfcab2a 0x0020: 6638 6666 0000 0000 0000 0000 0000 f8ff.......... }}}