Wippe

Installieren und Konfigurieren von Seesaw Load Balancer

Installieren und Konfigurieren von Seesaw Load Balancer
Im Zeitalter des Multiprogramming laufen mehrere Prozesse gleichzeitig und es wird viel Aufwand betrieben, um den Durchsatz und die Arbeitseffizienz zu steigern. Die Server müssen eine Menge Workload bewältigen und manchmal ist es sehr schwierig, den Datenverkehr zu verwalten. So gibt es Load-Balancer, um die verschiedenen Rechenressourcen für eine optimale Ressourcenauslastung zu verteilen, den Durchsatz und die Reaktionszeit zu erhöhen. Load Balancer verteilen die Datenverkehrslast auf mehrere Netzwerke oder geclusterte Hosts, um die Netzwerkverfügbarkeit, Zuverlässigkeit und Leistung zu erhöhen. Eingehenden Anfragen wird auf dem Load Balancer selbst eine virtuelle IP, auch als VIP bekannt, zugewiesen, und dann leitet der Load Balancer die Anfragen mit den geringsten Änderungen an den Paketen an den entsprechenden Server dahinter weiter.  Der Server antwortet dann dem Load Balancer mit den erforderlichen Daten, die schließlich vom Load Balancer an den Client gesendet werden site.

Arten von Lastenausgleichen

Es gibt zwei Arten von Lastausgleichsplattformen – HAProxy und Linux Virtual Server, auch bekannt als LVS, und Seesaw v2 ist eine Lastausgleichsplattform basierend auf einem virtuellen Linux-Server.

Seesaw ist ein sehr flexibles Tool, das als Basis-Load-Balancer für kleine bis mittelgroße Websites bis hin zu fortschrittlichem Load-Balancer für Unternehmensnetzwerke verwendet werden kann, bei denen ein Dutzend Server miteinander verbunden sind. Es unterstützt einige der erweiterten IPv6-Funktionen wie Anycast, Multicast, Unicast und Direct Server Return, mehrere VLANs.

Durch sein robustes Design eignet es sich für eine einfache Wartung und Zuverlässigkeit. Es wurde 2012 entwickelt, um die einzigartigen Anforderungen von Google zu erfüllen, die die bestehenden Optionen nicht erfüllten. Es wird in Go entwickelt, einer statisch typisierten Sprache, die abgeleitet ist von C Sprache. Es enthält viele High-Level-Sprachfeatures wie Garbage Collection zum Bereinigen des Speichers, Typsicherheit, Arrays mit variabler Länge, dynamische Typisierungsfunktionen und Schlüssel-Wert-Zuordnungen sowie eine große Standardbibliothek. Golang ist eine von Google entwickelte kompilierte Sprache. Viele moderne Anwendungen wie Docker, Kubernetes, InfluxDB, Gogs (Go Git Service) und Caddy sind in Go geschrieben.

Voraussetzung

  1. Der Link zum Herunterladen der neuesten Version von GoLang für Linux ist unter https://golang . verfügbar.org/dl/  in Form einer Archivdatei.

  2. Die Integrität des Tarballs kann überprüft werden, indem der mit dem Befehl shassum generierte Hashwert mit dem auf der Website bereitgestellten Hashwert verglichen wird comparing. Bei Unterschieden in den Hashwerten muss immer ein neuer Tarball des Archivs heruntergeladen werden download. Wenn die Prüfung erfolgreich ist, fahren Sie mit dem Tutorial fort.

    $shasum -a 256 go1.11.5.linux-amd64.Teer.gz

    In diesem Befehl wird -a verwendet, um den Algorithmus zum Generieren des Hash-Werts anzugeben, und dieser Befehl führt als Ganzes die SHA256-Prüfsumme der Archivdateien durch.

  3. Der nächste Schritt besteht darin, die tar-Archivdateien mit dem folgenden Befehl in das Verzeichnis /usr/local zu extrahieren, wenn die Integritätsprüfung erfolgreich ist: $sudo tar -C /user/local -xvzf go1.11.5.linux-amd64.Teer.gz

    In diesem Befehl gibt -C das Zielverzeichnis an, in das die extrahierten Dateien gesendet werden.

  4. Um die Go-Umgebung in Ubuntu zu konfigurieren, richten Sie den Go-Arbeitsbereich ein, indem Sie ein Verzeichnis erstellen ~/go_project_directory, das das Stammverzeichnis des Arbeitsbereichs ist. Der Arbeitsbereich enthält drei Hauptverzeichnisse
    • bin - enthält Binärdateien des Golang.
    • src – speichert alle Quelldateien.
    • pkg – speichert Paketobjekte.
    Ein Verzeichnisbaum kann wie folgt erstellt werden:

    $mkdir -p ~/go_projects/bin,src,pkg
    $cd go_projects/
    $ls

  5. Um Go auszuführen, folgen Sie den anderen Linux-Programmen, ohne den absoluten Pfad anzugeben. Das Verzeichnis, in dem golang installiert ist, sollte als einer der Werte der Umgebungsvariablen $PATH verwendet werden.
    • Hinzufügen /usr/local/go/bin an die Umgebungsvariable PATH muss der folgende Befehl ausgeführt werden:
    $sudo   gedit   $HOME/.Profil

    Oder öffnen Sie es im Terminal mit dem Befehl

    $vi .Profil

    Dann /usr/local/go/bin muss dem Pfad hinzugefügt werden. Dann müssen alle Änderungen gespeichert werden und der Benutzer muss sich aus dem Profil ausloggen und sich für weitere Verfahren erneut anmelden.

    • Alle Pfade werden im Profil festgelegt, indem die Werte von GOPATH und GOBIN . festgelegt werden.
    export GOPATH=”$HOME/go”
    export GOBIN=”$GOPATH/bin”
    • Wenn GoLang in einem anderen benutzerdefinierten Verzeichnis als dem Standardverzeichnis (/usr/local) installiert ist, muss dieses Verzeichnis als GOROOT-Variable angegeben werden. Es wird in diesem gemacht .Profil von
    export GOROOT=”$HOME/go
    export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin

  6.  Die GoLang-Umgebung nach erfolgreicher Einrichtung kann im Terminal durch Ausführen des folgenden Befehls überprüft werden: $go
    $go env

Wippe installieren

  1. Es war eine Voraussetzung, um Go zu installieren, da Seesaw v2 damit entwickelt wurde und von mehreren Go-Paketen abhängt, wie zum Beispiel:
>golang.org/x/crypto/ssh
>github.com/golang/glog
> github.com/dlintw/goconf
>github.com/golang/protobuf/proto
>github.com/miekg/dns
  1. Wenn man den Protobuf-Code neu generieren möchte, wird auch der Protobuf-Comiler und der Go-Protobuf-Compiler-Generator benötigt: $apt-get install protobuf-compiler
    $go get -u github.com/golamg/protobuf/proto,proto-gen-go

    1. Es muss immer darauf geachtet werden, dass $GOPATH/bin im $PATH und im seesaw-Verzeichnis liegt.
    2. Der nächste Schritt besteht darin, den Befehl make auszuführen, da er dazu führt, dass mehrere Binärdateien in $GOPATH/bin mit einem seesaw_-Präfix hinzugefügt werden. Diese Binärdateien müssen an den entsprechenden Orten installiert werden.

      $test machen
      $installieren
      $Proto machen

      Nachdem Sie die oben genannten drei Befehle ausgeführt haben, werden die Binärdateien der Wippe auf die entsprechenden Speicherorte gesetzt. Dies kann durch Erstellen von seesaw_install in $GOPATH/bin und Ausführen des folgenden Skripts erfolgen.

      SEESAW_BIN="/usr/local/wippe"
      SEESAW_ETC="/etc/seesaw
      SEESAW_LOG="/var/log/wippe"
      INIT='ps -p 1 -o Komm='
      install -d "$SEESAW_BIN" "$SEESAW_ETC" "$SEESAW_LOG"
      installiere "$GOPATH/bin/seesaw_cli" /usr/bin/seesaw
      für Komponente in ecu,engine,ha,healthcheck,ncc,watchdog; tun
      installiere "$GOPATH/bin/seesaw_$component" "$SEESAW_BIN"
      getan
      if [ $INIT = "init" ]; dann
      installiere "etc/init/seesaw_watchdog".conf" "/etc/init"
      elif [ $INIT = "systemd" ]; dann
      installiere "etc/systemd/system/seesaw_watchdog".service" "/etc/systemd/system"
      systemctl --system daemon-reload
      fi
      installiere "etc/wippe/watchdog".cfg" "$SEESAW_ETC"
      # Aktivieren Sie CAP_NET_RAW für Wippen-Binärdateien, die Raw-Sockets erfordern.
      /sbin/setcap cap_net_raw+ep "$SEESAW_BIN/seesaw_ha"
      /sbin/setcap cap_net_raw+ep "$SEESAW_BIN/seesaw_healthcheck"

Wippe konfigurieren

  1. Jeder Knoten benötigt eine Wippe.cfg-Datei, bekannt als Konfigurationsdatei, in der Informationen über den Knoten und seinen zugehörigen Peer gespeichert werden. Protobuf ist die Cluster-Konfigurationsdatei für jeden Cluster und liegt im Nur-Text-Format vor. Dadurch kann es mit jedem Linux-Texteditor wie nano, vi . geöffnet werden. Man kann die Wippe wechseln.cfg mit dem folgenden Befehl:
$vi/etc/wippe/wippe.cfg

Ein Beispiel für die Wippe.cfg-Datei

[Cluster]
anycast_enabled = false
name = au-syd
node_ipv4 = 192.168.
node_ipv6 = 2015:cafe::2
peer_ipv4 = 192.168.10.3
peer_ipv6 = 2015:cafe::3
vip_ipv4 = 192.168.10.1
vip_ipv6 = 2015:cafe::1
[config_server]
primär = seesaw-config1.Beispiel.com
sekundär = Wippe-config2.Beispiel.com
tertiär = seesaw-config3.Beispiel.com
[Schnittstelle]
Knoten = eth0
lb = eth1

Die Beschreibung des oben genannten Cripts ist unten angegeben

Fazit

Aufgrund der immensen Vorteile der Load-Balancing-Funktion wird sie oft in vielen Unternehmensnetzwerken verwendet. Es gibt im Allgemeinen drei Arten von Übermittlungsmodi im IPv4-Standard, Unicast, Multicast und Broadcast. Anycast wird in IPv6 akzeptiert. Anycast ist in IPv4 selten vorhanden. Anycast verwendet, um eine Schnittstelle aus einer Gruppe von Schnittstellen zu identifizieren, die mit demselben Dienst verbunden sind.  VIPs sind virtuelle IP-Adressen, die keiner physischen Netzwerkschnittstelle angehören. Ein Load Balancer muss zuverlässig sein und über die wichtigsten Funktionen in Cloud-Diensten verfügen.

Viele der auf dem Markt befindlichen Load Balancer verfügen nicht über eine Backend-Serverüberwachung und viele andere spezifische Funktionen. Es gibt mehrere Lastausgleichsmethoden auf Open Systems Interconnection Layer 2/3/4. Diese Schichten sind Data Link Layer, Network Layer und Transport Layer. Seesaw verwendet Layer-4-Technik mit NAT UND DSR (Direct Server Return). DSR ändert den Verkehrsfluss oder die Last, indem es dem Server ermöglicht, direkt auf den Client zu antworten. Alles in allem ist der Seesaw Load Balancer aufgrund dieser Aspekte robust und zuverlässig.

So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...
So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...