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
- Der Link zum Herunterladen der neuesten Version von GoLang für Linux ist unter https://golang . verfügbar.org/dl/ in Form einer Archivdatei.
- 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.
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.
- 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.
- 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 - 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:
Oder öffnen Sie es im Terminal mit dem Befehl
$vi .ProfilDann /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 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 PATH=$PATH:/usr/local/go/bin:$GOPATH/bin - Die GoLang-Umgebung nach erfolgreicher Einrichtung kann im Terminal durch Ausführen des folgenden Befehls überprüft werden: $go
$go env
Wippe installieren
- Es war eine Voraussetzung, um Go zu installieren, da Seesaw v2 damit entwickelt wurde und von mehreren Go-Paketen abhängt, wie zum Beispiel:
>github.com/golang/glog
> github.com/dlintw/goconf
>github.com/golang/protobuf/proto
>github.com/miekg/dns
- 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- Es muss immer darauf geachtet werden, dass $GOPATH/bin im $PATH und im seesaw-Verzeichnis liegt.
- 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 machenNachdem 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
- 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:
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
- anycast_enabled - Anycast kann durch Setzen dieses Wertes aktiviert werden.
- name - Der Kurzname, der diesem Cluster gegeben wird.
- node_ipv4 - IPv4-Adresse des aktuellen Seesaw-Knotens.
- peer_ipv4 - IPv4-Adresse unseres Peer-Seesaw-Knotens.
- vip_ipv4 – Die IPv4-Adresse für die aktuelle virtuelle Cluster-IP.
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.