Cluster Networking mit Proxmox

Die Macher von Proxmox gehen in den meisten Fällen davon aus, dass die Knoten des Clusters in einem gemeinsamen Rechenzentrum stehen. Das ist sicherlich der Normalfall, bei Ausnahmen lässt die Dokumentation aber etwas zu wünschen übrig.

Daher an dieser Stelle die Beschreibung einer einfachen, performanten und preiswerten Lösung eines VLan-fähigen „Backbone“ über unterscheidliche Standorte.

Aktuelle Situation

Es existiert ein Cluster auf drei Root-Servern bei Hetzner. Dieser soll erweitert werden um zwei im eigenen kleinen RZ gehostete Knoten.

Ziel ist die performante Anbindung des Clusters mit der Möglichkeit, VMs im Gesamtcluster umziehen zu können ohne an der Netzwerkkonfiguration schrauben zu müssen.

Darüber hinaus sollen die einzelnen VMs in diversen VLANs gruppiert werden können.

Anbindung

Zur Anbindung von Hetzner muss man nicht viel sagen – schnell und zuverlässig. Dass das Peering ins Netz der Deutschen Telekom eine Katastrophe ist und Magenta zu Hetzner nur einen nassen Schnürsenkel vorweisen kann, ist allein der Telebimm zuzuschreiben. Das bremst den Zugriff aus dem Netz der Telebimm schon mal auf <1MBit aus… Schwaches Bild, liebe Telekom, aber genau aus diesem Grund bin ich ja auch kein Kunde mehr! 🙂

Die Anbindung des heimischen RZ hängt an einer sehr zuverlässigen 1000MBit-Glasfaser der GGEW. Typische Performancewerte: 928MBit Download, 278MBit Upload!

Den Anschluss an die Faser übernimmt eine FritzBox 7490 mit PPPoE, dahinter hängt als „Exposed Host“ eine pfsense. Diese wiederum verteilt auf ein Admin- und ein Work-LAN, in dem die beiden PVE sitzen.

Firewall

Was muss ich aufreißen?

Die Zerotier-Dokumentation ist da recht einfach:

What ports does ZeroTier use?

It listens on three 3 UDP ports:

  • 9993 – The default
  • A random, high numbered port derived from your ZeroTier address
  • A random, high numbered port for use with UPnP/NAT-PMP mappings

That means your peers could be listening on any port. To talk with them directly, you need to be able send to any port.

Should I forward any ports in my router?

No. Let ZeroTier and UPnP, NAT-PMP, and IPv6 handle it automatically.

Also recht einfach, ich muss pfsense nur sagen, dass UPnP zugelassen werden soll und die Maschinen im Work-LAN Rechte auf die notwendigen Dienste haben sollen.

Inter-Node-Connectivity mit zerotier

Um die Knoten miteinander zu verbinden, erzeugen wir in in der zerotier-GUI ein neues Netzwerk und wählen IPv4-Auto-assign.

Nach dem Join verändern wir die Einstellungen der verbundenen Knoten und aktivieren die Bridge-Funktion

Damit „sehen“ sich die Knoten gegenseitig, unabhängig vom Standort.

VLAN einrichten

Die Wahl des VLAN fiel auf das seit 6.3 recht stabile VXLAN-Paket von Proxmox, das aber immer noch als experimentell eingestuft wird!

Um das Paket zu benutzen, muss auf den teilnehmenden Knoten ein

apt install libpve-network-perl

ausgeführt werden. Ein Neustart zumindest des pve-cluster ist danach notwendig.

Danach taucht auf RZ-Ebene der Menueintrag „SDN“ auf.

Unter „Zonen“ legen wir jetzt eine neue Zone vom Typ VXLAN an.

Danach können wir unter „Vnets“ ein Netz in dieser Zone definieren

Jetzt müssen wir alle Zonen noch anwenden. Damit werden die Konfigurationen auf die Knoten in die Datei /etc/network/interfaces.d/sdn exportiert und die Netzwerkkonfiguration neu erstellt.

Jetzt können wir den VMs ein Interface aus den erzeugten Vnets zuweisen, mit oder ohne VLAN-Tag und uns an performantem Traffic innerhalb des clusterweiten VLAN erfreuen! 🙂

Ein immer wiederkehrender Quell großer Freude ist eine falsch gesetzte MTU!

Ping funktioniert fast immer, die meisten Websites ebenfalls, Downloads o.ä. hangen – viel Spaß beim Suchen! 🙂

Da die Interfaces Bridges darstellen, muss die MTU der Guest-Interfaces geringer als der Standard von 1500 gewählt werden. 1480 ist hier der Wert der Wahl!

5 Antworten auf „Cluster Networking mit Proxmox“

  1. Hey,
    das klingt nach einem ähnlichen Setup wie ich es gern umsetzen möchte. Klappt(e) die Corosync Verbindung im Cluster stabil? Oder gab es Abbrüche? Hab es Probleme mit Corosync, als Du VMs migriert hast?

    Ich weiß, der Beitrag ist schon etwas älter, jedoch würde ich mich wirklich sehr über deine Erfahrungen freuen, da diese mit sehr weiterhelfen werden.

    Vielen Dank im Voraus!

    1. Die Corosync-Verbindung im Cluster war bisher stabil, ein längerer Hickup im Switch führte jedoch einmal zu einem Split brain, das einen Reboot nötig machte. Eine redundante Switch-anbindung wäre hier das Mittel der Wahl gewesen, kam aber aus anderen Gründen leider nicht zum Einsatz. Redundanz heisst leider auch immer Redundanz ALLER Komponenten.

      Die Migration von VMs war immer problemlos, man muss dazu aber auch betonen, dass ich ein HA-Setup fahre, d.h., die VMs liegen repliziert auf allen Knoten, bei einer Migration werden also nur Platten-Delta, RAM und Konfiguration umgezogen, was im Vergleich zu einer Vollmigration natürlich Größenordnungen weniger Netzlast verursacht und entsprechend schneller ist.

  2. Wenn ich das richtig verstehe, sind die PVE-Knoten alle per vxlan (via zerotier) miteinander netzwerkseitig verbunden und dann als „klassischer“ Proxmox-Cluster mit corosync eingerichtet? Welche Funktion haben denn die unterschiedlichen Zonen wie pvezone, ztzone und vxzone? Bin im Thema vxlan recht neu und verstehe – gerade im Kontext Virtualisierungsserver – da noch einiges nicht 😉

    Viele Grüße,
    Stefan

    Hallo Stefan,
    exakt richtig. Die unterschiedlichen Zonen dienen dazu, andere, nicht zum Cluster gehörende Computer mit dem Cluster zu verbinden. So können die Netze voneinander getrennt bleiben. Zur Verdeutlichung: A,B und C bilden den Cluster. Über pvezone sind D und E angebunden, über ztzone F und G. Somit können D und E das andere Pärchen F und G nicht sehen. Das hätte sich auch anders realisieren lasen, ich wollte aber die Zonen mal ausprobieren, zumal zu diesem Zeitpunkt das Feature noch recht experimentell war.

  3. Hast Du IPv6 (dual-stack) bei der GGEW Glasfaser?!
    Ich werde hier nur ewig vertröstet/oder bekomme gar keine Antwort mehr. (Eine nicht-geNATete IPv4 ist zwar auch was… aber hey ;-))

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert