CARP Split Brain mit VMs

Started by Dunuin, February 22, 2021, 01:26:01 AM

Previous topic - Next topic
Ich weiß, dass die FreeBSD Bridge definitiv mit Multicast klar kommt. Sowohl IPv6 als auch CARP. Wir haben das in Jails mit epair/bridge gebaut, das funktioniert. Also hängt es am lagg oder am vlan. Da wir auch phys -> vlan -> bridge -> epair produktiv im Einsatz haben, mit IPv6, und da ohne Multicast gar nichts funktionieren würde, nimm doch mal das lagg aus der Konstruktion raus ...

Dann weißt Du, was Du bugs.freebsd.org ins Ticket schreiben musst ;)
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

February 22, 2021, 07:33:25 PM #16 Last Edit: February 22, 2021, 08:00:09 PM by Dunuin
Ohne lagg kann ich mal versuchen. Das habe ich nur drin weil ich noch eine NIC frei hatte und hier Katzen rumlaufen die gerne Kabel rausziehen. Besonders diese FSP+ DAC Kabel, die entriegeln wenn man an der Plastikschlaufe zieht...da hatten die Entwickler wohl echt nur an Datacenter gedacht wo keine Katzen randalieren ;D
Ist nur immer etwas umständlich da was am lagg zu ändern, weil darüber auch die WebUI läuft, worüber ich das dann ändere.

February 22, 2021, 09:15:07 PM #17 Last Edit: February 22, 2021, 09:26:55 PM by Dunuin
Ok, habe jetzt auf beiden Servern den lagg/bond entfernt und die sind jetzt nur noch über die eine ConnectX-3 NIC verbunden.

Wenn ich jetzt nach den CARP Paketen horche sehe ich auf dem FreeNAS Server überhaupt keine mehr vom Proxmox Server. Auf dem Proxmox-Server kommen aber weiterhin die CARP Pakete vom FreeNAS Server an.

Ich vermute mal da sind die CARP Pakete dann nur am lagg0 angekommen, weil die passive NIC die empfangen konnte, aber wurden dann nicht weitergeleitet, weil die NIC ja passiv war?

In beiden Servern steckt die gleiche mcx311a-xcat. Komisch, dass da beim einen Server alle CARPs angekommen und beim anderen nicht. Ist dann die Frage warum die nicht wollen. In die eine Richtung scheint es ja zu gehen.

Edit:
Habe mal vlan 2 vom switch auf eine andere NIC am FreeNAS Server angeschlossen. Auf der anderen NIC kommen die CARP Pakete an. Die ConnectX3 auf dem Proxmox Server sendet und empfängt die CARP Pakete also richtig und der Switch leitet diese auch korrekt zwischen den 2 Servern weiter.
Problem ist also, dass da die ConnectX3 im FreeNAS Server die CARP Pakete zwar versendet aber keine entgegennehmen mag.

Weiß jemand woran das liegen könnte? Gibt es da bei FreeBSD irgendwelche speziellen Einstellungen die man setzen muss, damit die NIC Multicast-Pakete annimmt?
Wenn ich mir die beiden NICs über ifconfig angucke, dann haben beide ein "MULTICAST" flag.

em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 9000
        description: Bond 1G
        options=88<VLAN_MTU,VLAN_HWCSUM>
        ether f4:52:14:88:30:60
        hwaddr 00:25:90:46:79:89
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active


mlxen0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 9000
        description: Bond SFP+
        options=8c00a8<VLAN_MTU,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether f4:52:14:88:30:60
        hwaddr f4:52:14:88:30:60
        nd6 options=9<PERFORMNUD,IFDISABLED>
        media: Ethernet autoselect (10Gbase-CX4 <full-duplex,rxpause,txpause>)
        status: active


Kann das "VLAN_HWTSO" bei der ConnectX3 vielleicht Probleme machen? Das fehlt bei der anderen NIC nämlich. Ich habe aber im Manual von ifconfig auch keine Option gefunden, wie man VLAN_HWTSO deaktivieren könnte. Für die anderen HW Offloading Funktionen gab es da ja Optionen um das zu deaktivieren.

Da müsstest Du jetzt langsam wirklich einen Bug bei FreeBSD einkippen, wenn es mit einer Deiner Karten im FreeNAS funktioniert, aber mit der anderen nicht. Das ist ja dann offensichtlich ein Treiber-Bug.

2 verschiedene Karten in einem lagg einzusetzen ist jetzt aber auch nicht grad das empfohlene Setup ...

Du sprichst doch LACP mit Deinem Switch? Ja? Jetzt sag nicht, dass nicht. Dann lass das mit dem lagg ...
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

February 23, 2021, 05:49:25 AM #19 Last Edit: February 23, 2021, 06:30:31 AM by Dunuin
Quote from: pmhausen on February 22, 2021, 10:02:13 PM
Da müsstest Du jetzt langsam wirklich einen Bug bei FreeBSD einkippen, wenn es mit einer Deiner Karten im FreeNAS funktioniert, aber mit der anderen nicht. Das ist ja dann offensichtlich ein Treiber-Bug.
Ja, 3 Ports am Switch identisch eingestellt mit gleichen tagged VLANs. Davon 1x SFP+ zum Proxmox, 1x SFP+ zum FreeNAS und 1x Gbit Ethernet zum FreeNAS. Beide SFP+ NICs in den Servern sind identische "mcx311a-xcat". Lasse ich die Intel Gbit NIC unverbunden und nur die beiden SFP+ NICs dran, dann sehe auf dem Proxmox Host CARP Pakete von beiden Servern aber auf dem FreeNAS nur die CARP Pakete von FreeNAS selbst.
Stecke ich zusätzlich das Kabel in die Intel Gbit NIC am FreeNAS Host und gucke was über die Intel NIC läuft, dann sehe ich auch CARP Pakete von beiden Servern.
Also über die Intel NIC scheinen die CARP Pakete in beide Richtungen zu wandern aber über die Mellanox NIC nur ausgehend. Ist halt komisch, weil die baugleiche NIC mit baugleichem DAC am Proxmox Server keine Probleme mit CARP macht.

Quote from: pmhausen on February 22, 2021, 10:02:13 PM
2 verschiedene Karten in einem lagg einzusetzen ist jetzt aber auch nicht grad das empfohlene Setup ...
Du sprichst doch LACP mit Deinem Switch? Ja? Jetzt sag nicht, dass nicht. Dann lass das mit dem lagg ...
Ich weiß das LACP da Probleme macht mit verschiedenen NICs, besonders wenn eine 10G die andere 1G ist.
Daher hab ich active-passive bzw failover genommen ohne LACP, wo die ja dann nicht gebündelt mit Lastverteilung arbeiten sondern immer nur eine zur Zeit einzeln. Das hatte ja auch soweit gut funktioniert, konnte volle 10Gbit nutzen und wenn ich ein Kabel gezogen habe ist es halt auf 1Gbit umgesprungen und lief dann wenigstens noch mit 1Gbit.
Aber lagg schien hier ja auch nicht das Problem zu sein, wenn die ConnectX3 auch ohne lagg CARP Pakete nur in eine Richtung durchlässt.

Alles andere ausser LACP ist Quatsch und funktioniert nicht stabil mit CARP. Bitte auch am Switch igmp snooping deaktivieren, oder du machst Mal nen direkten Crosslink zwischen beiden

February 23, 2021, 08:29:09 AM #21 Last Edit: February 23, 2021, 09:00:38 AM by Dunuin
IGMP Snooping ist deaktiviert.

Habe nochmal beide ConnectX-3 NICs auf die neuste Firmware geflasht und die beiden NICs aus beiden Servern vertauscht. Keine Änderung. FreeNAS will auf der ConnectX-3 keine CARP Pakete annehmen.

Direktlink muss ich mal gucken, da ja alles über das tagged vlan läuft und ich mich dann selbst aus beiden Server aussperre.

Edit:
Auch wenn ich beide NICs direkt per DAC verbinde kommen über die ConnectX-3 am FreeNAS keine CARP Pakete an.

Kurz zum Verständnis: Wenn AM FreeNAS keine CARP Pakete ankommen, würde das dann nicht heißen, dass die vom Proxmox aus nicht ankommen? Ist vielleicht auf der Seite was noch unvollständig oder falsch konfiguriert?
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.