Apkrovos balansų tipai
Yra dviejų tipų apkrovos balansavimo platformos - „HAProxy“ ir „Linux Virtual Server“, taip pat žinomos kaip LVS, o „Seesaw v2“ yra apkrovos balansavimo platforma, pagrįsta virtualiu „Linux“ serveriu.
„Seesaw“ yra labai lankstus įrankis, kurį galima naudoti kaip pagrindinį apkrovos balansavimo įrankį mažoms ir vidutinėms svetainėms iki patobulinto apkrovos balansavimo įmonės lygio tinklams, kuriuose yra sujungta keliolika serverių. Jis palaiko kai kurias pažangias „Ipv6“ funkcijas, tokias kaip „anycast“, „multicast“, „unicast“ ir tiesioginis serverio grąžinimas, keli VLAN.
Tvirtas dizainas leidžia lengvai prižiūrėti ir patikimai. Jis sukurtas 2012 m. Siekiant patenkinti unikalius „Google“ poreikius, kurių esamos parinktys netenkino. Tai sukurta „Go“, kuri yra statiškai įvesta kalba ir kilusi iš C kalba. Jame yra daug aukšto lygio kalbos funkcijų, tokių kaip šiukšlių rinkimas, kad būtų galima išvalyti atmintį, tipo saugumas, kintamo ilgio masyvai, dinaminio spausdinimo galimybės, raktų vertės žemėlapiai ir didelė standartinė biblioteka. „Golang“ yra kompiliuojama kalba, kurią sukūrė „Google“. Daugelis šiuolaikinių programų, tokių kaip „Docker“, „Kubernetes“, „InfluxDB“, „Gogs“ („Go Git Service“) ir „Caddy“, yra parašytos „Go“.
Išankstinis reikalavimas
- Nuoroda, skirta atsisiųsti naujausią „GoLang“ versiją, skirtą „Linux“, pateikiama šiuo adresu: https: // golang.org / dl / archyvo failo pavidalu.
- Vartotojo vientisumą galima patikrinti palyginus maišos vertę, sukurtą naudojant komandą shassum, su maišos verte, pateiktą svetainėje. Jei maišos reikšmės skiriasi, visada turite atsisiųsti naują archyvo paketą. Jei patikrinimas yra sėkmingas, tęskite prieš pamoką.
Šioje komandoje -a naudojama nurodyti algoritmą, leidžiantį generuoti maišos vertę, ir ši komanda kaip visuma atlieka SHA256 archyvo failų kontrolinę sumą.
- Kitas žingsnis - ištraukti dervos archyvo failus, jei vientisumo patikra pavyks, į / usr / local katalogą naudojant žemiau pateiktą komandą: $ sudo tar -C / user / local -xvzf go1.11.5.„Linux-amd64“.degutas.gz
Šioje komandoje -C nurodo paskirties katalogą, į kurį siunčiami ištraukti failai.
- Norėdami sukonfigūruoti „Go Environment“ „Ubuntu setup-up“ darbo srityje, sukurkite katalogą ~ / go_project_directory, kuris yra darbo srities šaknis. Darbo srityje yra trys pagrindiniai katalogai
• bin - yra dvejetainiai golango failai.
• src - kuriame saugomi visi šaltinio failai.
• pkg - kuriame bus saugomi pakuotės objektai.
Katalogų medį galima sukurti taip: $ mkdir -p ~ / go_projects / bin, src, pkg
$ cd go_projects /
$ ls - Norėdami paleisti „Go“, vadovaukitės kitomis „Linux“ programomis, nenurodydami jos absoliutaus kelio. Katalogas, kuriame įdiegtas „golang“, turėtų būti naudojamas kaip viena iš aplinkos kintamojo $ PATH reikšmių.
- Pridėti / usr / local / go / bin PATH aplinkos kintamajam reikia paleisti šią komandą:
Arba galite atidaryti jį terminale naudodami komandą
$ vi .profilisTada / usr / local / go / bin reikia pridėti prie kelio. Tada visi pakeitimai turi būti išsaugoti ir reikalaujama, kad vartotojas atsijungtų nuo profilio ir vėl prisijungtų prie tolesnių procedūrų.
- Visi keliai nustatomi profilyje nustatant GOPATH ir GOBIN reikšmes.
eksportuoti GOBIN = ”$ GOPATH / šiukšliadėžė”- Jei „GoLang“ yra įdiegtas pasirinktiniame kataloge, išskyrus numatytąjį (/ usr / local), reikia nurodyti tą katalogą kaip GOROOT kintamąjį. Tai daroma tūkst .profilį sukūrė
eksportuoti PATH = $ PATH: / usr / local / go / bin: $ GOPATH / bin - „GoLang“ aplinką po sėkmingo nustatymo galima patikrinti terminale vykdant šią komandą: $ go
$ go env
„Seesaw“ įrengimas
- Reikėjo įdiegti „Go“, nes „Seesaw v2“ yra sukurtas kartu su juo ir priklauso nuo kelių „Go“ paketų, tokių kaip:
> github.com / golang / glog
> github.com / dlintw / goconf
> github.com / golang / protobuf / proto
> github.com / miekg / dns
- Jei norite atkurti „protobuf“ kodą, taip pat reikalingas „protobuf“ kompiliatorius ir „Go protobuf“ kompiliatoriaus generatorius: $ apt-get install protobuf-compiler
$ go get -u github.com / golamg / protobuf / proto, proto-gen-go- Visada reikia užtikrinti, kad $ GOPATH / bin yra $ PATH ir sūpynės kataloge.
- Kitas žingsnis yra paleisti komandą „make“, nes tai veda prie kelių dvejetainių failų pridėjimo į $ GOPATH / bin su priešpriešiu „sūpynės“, šiuos dvejetainius failus reikia įdiegti atitinkamose vietose.
$ make testas
$ make install
$ padaryti protoPaleidus pirmiau nurodytas tris komandas, pavėsinės dvejetainiai failai nustatomi atitinkamose vietose. tai galima padaryti sukūrus langą „$ $ GOPATH / bin“ ir vykdant žemiau pateiktą scenarijų.
SEESAW_BIN = "/ usr / local / pavėsinė"
SEESAW_ETC = "/ etc / sūpynės
SEESAW_LOG = "/ var / log / pavėsinė"
INIT = 'ps -p 1 -o comm ='
įdiegti -d "$ SEESAW_BIN" "$ SEESAW_ETC" "$ SEESAW_LOG"
įdiekite „$ GOPATH / bin / seesaw_cli“ / usr / bin / swing
komponentui ecu, engine, ha, healthcheck, ncc, watchdog; padaryti
įdiekite „$ GOPATH / bin / sega _ $ komponent“ „$ SEESAW_BIN“
padaryta
jei [$ INIT = "init"]; tada
įdiekite "etc / init / seeaw_watchdog.conf "" / etc / init "
elif [$ INIT = "systemd"]; tada
įdiekite "etc / systemd / system / ssaw_watchdog.paslauga "" / etc / systemd / system "
systemctl --sistemos deemon-reload
fi
įdiekite "etc / sisew / sarginis.cfg "" $ SEESAW_ETC "
# Įjunkite CAP_NET_RAW dygsniuotiems dygsniuotiems dvejetainiams langams, kuriems reikalingi neapdoroti lizdai.
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / sūpynės_ha"
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / sūpynės_healthcheck"
„Seesaw“ konfigūravimas
- Kiekvienam mazgui reikia sūpynės.cfg failas, žinomas kaip konfigūracijos failas, kuriame saugoma informacija apie mazgą ir jam priklausantį bendraamžį. „Protobuf“ yra kiekvieno sankaupos konfigūracijos failas, kuris yra paprasto teksto formatu. Tai leidžia jį atidaryti naudojant bet kurį „Linux“ teksto rengyklę, pvz., „Nano“, „vi“. Galima pakeisti pavėsinę.cfg naudodami šią komandą:
Sūpynės pavyzdys.CFG failas
[klasteris]anycast_enabled = false
vardas = au-syd
mazgas_ipv4 = 192.168.
node_ipv6 = 2015: kavinė :: 2
bendraamžis_ipv4 = 192.168.10.3
peer_ipv6 = 2015: kavinė :: 3
vip_ipv4 = 192.168.10.1
vip_ipv6 = 2015: kavinė :: 1
[config_server]
pirminis = sūpuoklė-konfigūracija1.pavyzdys.com
antrinis = sūpuoklė-konfigūracija2.pavyzdys.com
tretinis = sūpuoklė-konfigūracija3.pavyzdys.com
[sąsaja]
mazgas = eth0
lb = et1
Pirmiau aprašyto scenarijaus aprašymas pateiktas žemiau
- anycast_enabled - „Anycast“ galima įjungti nustatant šią vertę.
- vardas - šiam klasteriui suteiktas trumpas pavadinimas.
- node_ipv4 - dabartinio „Seesaw“ mazgo IPv4 adresas.
- peer_ipv4 - mūsų bendraamžių „Seesaw“ mazgo IPv4 adresas.
- vip_ipv4 - dabartinio klasterio virtualaus IP IP4 adresas.
Išvada
Dėl didžiulių apkrovos balansavimo funkcijos pranašumų ji dažnai naudojama daugelyje įmonių tinklų. IPv4 standarte yra trijų rūšių pristatymo režimai: „Unicast“, „Multicast“ ir „Broadcast“. „Anycast“ priimamas naudojant „IPv6“. „Anycast“ IPv4 yra retai. „Anycast“ naudoja sąsają identifikuoti iš sąsajų grupės, kuri prisijungia prie tos pačios paslaugos. VIP yra virtualūs IP adresai, nepriklausantys jokiai fizinei tinklo sąsajai. Krovos balansuotojas turi būti patikimas ir turėti svarbiausias debesų paslaugų savybes.
Daugelis rinkoje esančių apkrovos balanserių neturi serverio stebėjimo ir daugelio kitų specifinių funkcijų. Atvirų sistemų 2/3/4 sluoksnyje yra keli apkrovos balansavimo metodai. Šie sluoksniai yra duomenų ryšio sluoksnis, tinklo sluoksnis ir transporto sluoksnis. „Seesaw“ naudoja 4 sluoksnio techniką su NAT IR DSR („Direct Server Return“). DSR modifikuoja srauto srautą ar apkrovą, leisdamas serveriui atsakyti tiesiogiai klientui. Apskritai, „The Seesaw“ apkrovos balansatorius yra tvirtas ir patikimas dėl šių aspektų.