Typer av lastbalanser
Det finns två typer av belastningsbalanseringsplattformar - HAProxy och Linux Virtual Server, även känd som LVS, och Seesaw v2 är en lastbalanseringsplattform baserad på Linux virtuell server.
Gungbräda är ett mycket flexibelt verktyg som kan användas som en grundläggande belastningsutjämnare för små till medelstora webbplatser till avancerad belastningsutjämnare för nätverk på företagsnivå där ett dussin servrar är sammankopplade. Den stöder några av avancerade Ipv6-funktioner som anycast, multicast, unicast och direkt serverretur, flera VLAN.
Med en robust design gör den lämplig för enkelt underhåll och pålitlighet. Den utformades 2012 för att möta Googles unika behov, som de befintliga alternativen inte uppfyllde. Den är utvecklad i Go som är ett statiskt skrivet språk och härrör från C-språk. Den innehåller många språknivåer på hög nivå som skräpsamling för att städa upp minnet, typsäkerhet, matriser med variabel längd, dynamisk typning och nyckelvärdeskartor samt ett stort standardbibliotek. Golang är ett sammanställt språk utvecklat av Google. Många moderna applikationer som Docker, Kubernetes, InfluxDB, Gogs (Go Git Service) och Caddy är skrivna i Go.
Nödvändig förutsättning
- Länken för att ladda ner GoLangs senaste version för Linux finns på https: // golang.org / dl / i form av arkivfil.
- Tarballens integritet kan kontrolleras genom att jämföra hashvärdet som genereras med kommandot shassum med hashvärdet på webbplatsen. Om det finns någon skillnad i hashvärden måste man alltid ladda ner en ny tarball i arkivet. Om kontrollen är framgångsrik, fortsätt sedan före handledningen.
I detta kommando -a används för att specificera algoritmen för att generera hash-värde och detta kommando som helhet utför SHA256-kontrollsumman för arkivfilerna.
- Nästa steg är att extrahera tar-arkivfilerna, om integritetskontrollen lyckas, till katalogen / usr / local med kommandot nedan: $ sudo tar -C / user / local -xvzf go1.11.5.linux-amd64.tjära.gz
I detta kommando specificerar C målkatalogen där de extraherade filerna skickas.
- För att konfigurera Go-miljö i Ubuntu-uppsättning Go-arbetsytan genom att skapa en katalog ~ / go_project_directory som är roten till arbetsytan. Arbetsytan innehåller tre stora kataloger
• bin - innehåller binära filer från Golang.
• src- som lagrar alla källfiler.
• pkg- som lagrar paketföremål.
Ett katalogträd kan skapas enligt följande: $ mkdir -p ~ / go_projects / bin, src, pkg
$ cd go_projects /
$ ls - För att köra Go, följ som resten av Linux-program utan att ange dess absoluta sökväg. Katalogen där golang är installerad ska användas som ett av värdena för miljövariabeln $ PATH.
- Tillägga / usr / local / go / bin till PATH-miljövariabeln måste följande kommando köras:
Eller kan öppna den i terminalen med kommandot
$ vi .profilSedan / usr / local / go / bin måste läggas till sökvägen. Sedan måste alla ändringar sparas och användaren måste logga ut profilen och logga in igen för ytterligare åtgärder.
- Alla banor ställs in i profilen genom att ställa in värdena för GOPATH och GOBIN.
exportera GOBIN = ”$ GOPATH / bin”- Om GoLang är installerat i en annan anpassad katalog än standardinställningen (/ usr / local) måste du ange katalogen som GOROOT-variabel. Det görs i th .profil av
exportera PATH = $ PATH: / usr / local / go / bin: $ GOPATH / bin - GoLang-miljön vid lyckad installation kan kontrolleras i terminalen genom att köra följande kommando: $ go
$ go env
Installera Gungbräda
- Det var ett krav att installera Go eftersom Seesaw v2 har utvecklats med den och beror på flera Go-paket som:
> github.com / golang / glog
> github.com / dlintw / goconf
> github.com / golang / protobuf / proto
> github.com / miekg / dns
- Om man vill regenerera protobuf-koden behövs också protobuf-komileraren och Go protobuf-kompilatorgeneratorn: $ apt-get install protobuf-compiler
$ go get -u github.com / golamg / protobuf / proto, proto-gen-go- Det måste alltid säkerställas att $ GOPATH / bin finns i $ PATH och i gungbräskatalogen.
- Nästa steg är att köra make-kommando eftersom det leder till att flera binära filer läggs till i $ GOPATH / bin med ett gungbräda_prefix, dessa binärer måste installeras på lämpliga platser.
$ make test
$ gör installation
$ gör protoEfter att ha kört ovanstående tre kommandon är gungbräda binärer inställda på lämpliga platser. det kan göras genom att skapa gungbräda_install i $ GOPATH / bin och köra nedanstående skript.
SEESAW_BIN = "/ usr / lokal / gungbräda"
SEESAW_ETC = "/ etc / gungbräda
SEESAW_LOG = "/ var / log / gungbräda"
INIT = 'ps -p 1 -o comm ='
installera -d "$ SEESAW_BIN" "$ SEESAW_ETC" "$ SEESAW_LOG"
installera "$ GOPATH / bin / seesaw_cli" / usr / bin / seesaw
för komponent i ecu, motor, ha, healthcheck, ncc, watchdog; do
installera "$ GOPATH / bin / seesaw _ $ component" "$ SEESAW_BIN"
Gjort
om [$ INIT = "init"]; sedan
installera "etc / init / seesaw_watchdog.conf "" / etc / init "
elif [$ INIT = "systemd"]; sedan
installera "etc / systemd / system / seesaw_watchdog.service "" / etc / systemd / system "
systemctl - system daemon-reload
fi
installera "etc / gungbräda / vakthund.cfg "" $ SEESAW_ETC "
# Aktivera CAP_NET_RAW för gungbräda binärer som kräver råa uttag.
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / gungbräda"
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / gungbräda"
Konfigurera gungbräda
- Varje nod kräver en gungbräda.cfg-fil, känd som konfigurationsfilen, där information om noden och dess tillhörande peer lagras. Protobuf är klusterkonfigurationsfilen för varje kluster och är i klartextformat. Detta gör att den kan öppnas med vilken Linux-textredigerare som helst som nano, vi. Man kan byta gungbräda.cfg med följande kommando:
Ett exempel på gungbräda.CFG-fil
[klunga]anycast_enabled = false
namn = au-syd
nod_ipv4 = 192.168.
node_ipv6 = 2015: café :: 2
peer_ipv4 = 192.168.10.3
peer_ipv6 = 2015: café :: 3
vip_ipv4 = 192.168.10.1
vip_ipv6 = 2015: café :: 1
[config_server]
primär = gungbräda-config1.exempel.com
sekundär = gungbräda-config2.exempel.com
tertiär = gungbräda-config3.exempel.com
[gränssnitt]
nod = eth0
lb = eth1
Beskrivningen av ovan nämnda cript ges nedan
- anycast_enabled - Anycast kan aktiveras genom att ställa in detta värde.
- name - Det korta namnet som ges till det här klustret.
- node_ipv4 - IPv4-adress för den aktuella Seesaw-noden.
- peer_ipv4 - IPv4-adress för vår peer Seesaw-nod.
- vip_ipv4 - IPv4-adressen för nuvarande kluster virtuell IP.
Slutsats
På grund av de enorma fördelarna med lastbalanseringsfunktionen används den ofta i många företagsnätverk. Det finns tre typer av leveranslägen i allmänhet i IPv4-standard, Unicast, Multicast och Broadcast. Anycast accepteras i IPv6. Anycast finns sällan i IPv4. Anycast använder för att identifiera ett gränssnitt från en grupp av gränssnitt som ansluter till samma tjänst. VIP är virtuella IP-adresser som inte tillhör något fysiskt nätverksgränssnitt. En belastningsutjämnare måste vara tillförlitlig och har de viktigaste funktionerna i molntjänster.
Många av belastningsbalanserna på marknaden har inte serverövervakning av backend och många andra specifika funktioner. Det finns flera belastningsbalanseringsmetoder på Open Systems Interconnection Layer 2/3/4. Dessa lager är Data Link Layer, Network Layer och Transport Layer. Gungbräda använder lager 4-teknik med NAT OCH DSR (Direct Server Return). DSR ändrar trafikflödet eller belastningen genom att låta servern svara direkt på klienten. Sammantaget är The Seesaw lastbalanserare robust och pålitlig på grund av dessa aspekter.