bei uns ist es Zeit die Gw aufzurüsten, daher wird nun ein Server basierend auf einem i7 angeschafft.
Auf dem Server sollen mehrere GWs untergebracht werden. Ursprünglich waren 2 GWs angedacht. @MPW hat jedoch einen Denkanstoss gegeben, indem er nochmal auf die nötige single core Performance hinwies. Auch die fehlende Mehrkernunterstützung von BATMAN ist naturlich ein wichtiges Thema.
Daher nun meine Frage, macht es Sinn in einem Rutsch gleich 8 GWs auf dem Server zu virtualisieren um die Last gleichmäßig zu verteilen?
@MPW hat das zwar schon in einem anderen Thread bejat, ich würde jedoch gern noch ein paar mehr Meinungen lesen, vielleicht gibt es ja noch ein paar weitere gute inputs zu dem Thema.
Sinn macht das nur, wenn Ihr Batman Compat 15 verwendet,
denn der fackelt bei SMP das System ab bei vielen Nodes.
Wir benutzen mit Compat14 und L2TP hauptsächlich das direkte Blech und lassen
5-8 Batman Instanzen dort verteilt auf den Kernen laufen.
Die einzelnen Broker und Instanz Spez. Dienste werden per „taskset -c 0|1|2|3…“
auf die Kerne verteilt. Das macht dann bei ca. 350 L2TP Verbindungen und
ca. 130-180Mbit/s RX/TX eine Load von 0.3 - 0.5 auf einem i7 920
Das Ganze kann man aber auch mit fastd so verteilen.
Wie machen das denn die ganzen anderen Communitys? Gibt doch noch mehr Serveradmins hier…
Aktuell planen wir, mittels proxmox zu virtualisieren. Ich finde deinen Vorschlag @comacho zwar sehr interessant, da müsste ich mich jedoch zunächst reinarbeiten und Grundlagen schaffen. Dafür fehlt mir die nötige Freizeit.
in unserem neuen „Hood“ Setup statten wir die Maschinen, die MultiCore haben mit mehreren FastD Instanzen aus. Dadurch verteilt sich die Last auf die Kerne.
Ich denke, dass es schlicht kein Universalrezept gibt, um alle angesprochenen zu einem Verfahren zusammenzufassen.
Eine Richtung lautet: Konzentrationen und viele kleine Einzeldomains mit jeweils einer VM und einem Kern.
Wir nutzen auch bereits L2TP und haben dort im moment sogar mit 1 Supernode keine Probleme was Last angeht. Der eine SN macht im moment im schnitt 50-80Mbit bei 150 Nodes und hat ne Load von 0.3
Wir haben uns desswegen dazu entschieden immer nur 1 unserer Supernodes Laufen zu haben. Der andere ist im IDLE und Pingt den Aktiven Supernode über seine FFRL Adresse an. Wenn er merkt das diese nicht mehr da ist, oder das kein Gateway mehr im Mesh ist schaltet er seine Dienste an und übernimmt. Immer zum 15. des Monats wechselt der Aktive Supernode bei uns.
Solange einer die Last packt war das für uns die beste lösung. Die maschienen sind aber beide mit nur einem Kern ausgestattet
Bei der Konzentration von vielen GW-VMs auf einem Blech, darf man allerdings die Bandbreite nicht außer Acht lassen. Gerade beim CPU-schonenden L2TP ist Bandbreite eher der Flaschenhals.
In Wupper werden um die 12 Broadcast-Domänen auf 4 Kernen und 4 vServern mittels fastd gefahren. Mit L2TP stürzt das ganze ab. Je nach CPU (und Nutzerverhalten) kann man um die 300 Knoten auf einem Kern bedienen.
Aus deinem Beitrag ist nicht ersichtlich, ob Ihr L2TP oder fastd einsetzt.
Bei fastd kann man mehrere fastd-Instanzen aufsetzen und verschiedene Ports einstellen. Diese kann man in der Nutzerzahl begrenzen. In Batman kann man mehrere dieser Schnittstellen einbinden, so hat man eine Broadcast-Domäne auf vielen CPUs.
Wir haben inzwischen pro Supernode 7 batman Segmente mit eignem fastd und können dadurch gut mehrere Kerne belasten. Zudem reduziert sich der Overhead massiv.
Was soll da so schwer sein? Zweite Konfigurationsdatei mit einem neuen Port, der dann natürlich in der Site.conf drin stehen muss, ansonsten alles wie beim ersten Fastd. Im Ruhrgebiet liefen früher dutzende so ^^
Das klingt auch so als wäre es etwas Richtung Iptables/Iprules.
Hab mal kurz reingeguckt, aber mir ist eurer Puppet Setup zu wuselig
Vermutlich fehlt hier die Übergabe eines weiteren Mesh Devices.
Tip: iptables-save/restore module für Puppet ist übersichtlicher