A terhelési mérleg típusai
Kétféle terheléselosztó platform létezik - a HAProxy és a Linux Virtual Server, más néven LVS, a Seesaw v2 pedig egy Linux virtuális szerveren alapuló terheléselosztó platform.
A Seesaw egy nagyon rugalmas eszköz, amely kis és közepes méretű webhelyek alapszintű terheléselosztóként használható a fejlett terheléselosztóként vállalati szintű hálózatokhoz, ahol tucatnyi szerver van összekapcsolva. Támogatja a fejlett Ipv6 néhány funkcióját, mint például az anycast, a multicast, az unicast és a közvetlen kiszolgálói visszatérés, több VLAN.
A robusztus kialakítás lehetővé teszi az egyszerű karbantartást és a megbízhatóságot. 2012-ben tervezték, hogy megfeleljen a Google egyedi igényeinek, amelyeknek a meglévő opciók nem feleltek meg. A Go-ban fejlesztették, amely egy statikusan tipizált nyelv, és abból származik C nyelv. Számos magas szintű nyelvi funkciót tartalmaz, mint például a szemétgyűjtés a memória tisztításához, a típusbiztonság, a változó hosszúságú tömbök, a dinamikus gépelési képességek és a kulcsértékű térképek, valamint egy nagy szabványos könyvtár. A Golang egy fordított nyelv, amelyet a Google fejlesztett ki. Számos modern alkalmazás, például a Docker, a Kubernetes, az InfluxDB, a Gogs (Go Git Service) és a Caddy a Go-ban íródott.
Előfeltétel
- A GoLang legújabb verziójának letöltésére szolgáló link Linuxra a https: // golang címen érhető el.org / dl / archív fájl formájában.
- A tarball integritása ellenőrizhető a shassum paranccsal előállított hash érték és a weboldalon található hash érték összehasonlításával. Ha bármilyen eltérés van a kivonatolási értékekben, mindig le kell töltenie az archívum új tárhelyét. Ha az ellenőrzés sikeres, folytassa az oktatóanyag előtt.
Ebben a parancsban az -a a hash érték előállításához szükséges algoritmus megadására szolgál, és ez a parancs egészében végrehajtja az archív fájlok SHA256 ellenőrző összegét.
- A következő lépés a tar archív fájlok kibontása, ha az integritás ellenőrzése sikeres volt, az alább megadott paranccsal vonhatók ki az / usr / local könyvtárba: $ sudo tar -C / user / local -xvzf go1.11.5.linux-amd64.kátrány.gz
Ebben a parancsban a -C megadja a célkönyvtárat, ahová a kibontott fájlokat elküldi.
- A Go Environment konfigurálásához az Ubuntu set-up Go munkaterületében egy ~ / go_project_directory könyvtár létrehozásával, amely a munkaterület gyökere. A munkaterület három fő könyvtárat tartalmaz
• bin - a golang bináris fájljait tartalmazza.
• src- amely az összes forrásfájlt tárolja.
• pkg - amely a csomag objektumokat tárolja.
A könyvtárfa a következőképpen hozható létre: $ mkdir -p ~ / go_projects / bin, src, pkg
$ cd go_projects /
$ ls - A Go futtatásához kövesse a többi Linux programot anélkül, hogy megadná annak abszolút elérési útját. A könyvtárat, ahová a golang telepítve van, a $ PATH környezeti változó egyik értékeként kell használni.
- Hozzáadni / usr / local / go / bin a PATH környezeti változóhoz a következő parancsot kell futtatni:
Vagy megnyithatja a terminálon a parancs használatával
$ vi .profilAzután / usr / local / go / bin hozzá kell adni az útvonalhoz. Ezután minden változtatást el kell menteni, és a felhasználónak ki kell jelentkeznie a profilból, és újra be kell jelentkeznie a további eljárásokhoz.
- Az összes útvonal a GOPATH és a GOBIN értékeinek beállításával van beállítva a profilban.
export GOBIN = "$ GOPATH / bin"- Ha a GoLang az alapértelmezettől (/ usr / local) eltérő egyéni könyvtárba van telepítve, akkor meg kell adni ezt a könyvtárat GOROOT változóként. Th-ban történik .által
export PATH = $ PATH: / usr / local / go / bin: $ GOPATH / bin - A GoLang környezet a sikeres beállítás után a következő parancs futtatásával ellenőrizhető a terminálon: $ go
$ go env
A Seesaw telepítése
- Követelmény volt a Go telepítése, mivel a Seesaw v2 vele együtt van fejlesztve, és számos Go csomagtól függ, például:
> github.com / golang / glog
> github.com / dlintw / goconf
> github.com / golang / protobuf / proto
> github.com / miekg / dns
- Ha valaki szeretné létrehozni a protobuf kódot, akkor a protobuf fordítóra és a Go protobuf fordító generátorra is szükség van: $ apt-get install protobuf-compiler
$ go get -u github.com / golamg / protobuf / proto, proto-gen-go- Mindig biztosítani kell, hogy a $ GOPATH / bin szerepeljen a $ PATH és a hinta könyvtárban.
- A következő lépés a make parancs futtatása, mivel több bináris fájl hozzáadásához vezet a $ GOPATH / bin egy libikóva előtaggal, ezeket a binárisokat a megfelelő helyekre kell telepíteni.
$ make teszt
$ make install
$ készítsen protótA fenti három parancs futtatása után a libikóka bináris fájlokat a megfelelő helyekre állítjuk be. ezt megteheti úgy, hogy létrehozza a $ 75 GOPATH / bin fájlban található beugró ablakot, és végrehajtja az alábbi parancsfájlt.
SEESAW_BIN = "/ usr / local / hinta"
SEESAW_ETC = "/ etc / hinta
SEESAW_LOG = "/ var / log / hinta"
INIT = 'ps -p 1 -o comm ='
telepítse -d "$ SEESAW_BIN" "$ SEESAW_ETC" "$ SEESAW_LOG"
telepítse a következőt: "$ GOPATH / bin / seesaw_cli" / usr / bin / hinta
az ecu, engine, ha, healthcheck, ncc, watchdog komponenshez; csinálni
telepítse a következőt: "$ GOPATH / bin / hinta _ $ component" "$ SEESAW_BIN"
Kész
ha [$ INIT = "init"]; azután
telepítse az "etc / init / Seeaw_watchdog fájlt.conf "" / etc / init "
elif [$ INIT = "systemd"]; azután
telepítse az "etc / systemd / system / ferde_watchdog" fájlt."" / etc / systemd / system "szolgáltatás
systemctl --system daemon-reload
fi
telepítse az "etc / hintát / watchdog" fájlt.cfg "" $ SEESAW_ETC "
# Engedélyezze a CAP_NET_RAW funkciót a nyers socketet igénylő libikókás bináris fájloknál.
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / hinta_ha"
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / libikóka_healthcheck"
A Seesaw beállítása
- Minden csomóponthoz libikóka szükséges.cfg fájl, más néven konfigurációs fájl, ahol a csomópontra és a hozzá tartozó társra vonatkozó információkat tárolják. A Protobuf az egyes fürtök fürtkonfigurációs fájlja, és egyszerű szöveges formátumban van. Ez lehetővé teszi, hogy bármely Linux szövegszerkesztővel megnyithassa, például nano, vi. Meg lehet változtatni a hintát.cfg a következő paranccsal:
Példa a hintára.cfg fájl
[fürt]anycast_enabled = hamis
név = au-syd
node_ipv4 = 192.168.
node_ipv6 = 2015: kávézó :: 2
peer_ipv4 = 192.168.10.3
peer_ipv6 = 2015: kávézó :: 3
vip_ipv4 = 192.168.10.1
vip_ipv6 = 2015: kávézó :: 1
[config_server]
elsődleges = hinta-konfig1.példa.com
másodlagos = hinta-konfig2.példa.com
harmadlagos = hinta-konfig3.példa.com
[felület]
csomópont = eth0
lb = eth1
A fent említett szkript leírását az alábbiakban adjuk meg
- anycast_enabled - Az Anycast engedélyezhető ennek az értéknek a beállításával.
- név - A fürt rövid neve.
- node_ipv4 - az aktuális Seesaw csomópont IPv4 címe.
- peer_ipv4 - peer Seesaw csomópontunk IPv4 címe.
- vip_ipv4 - Az aktuális fürt virtuális IP-jének IPv4-címe.
Következtetés
A terheléselosztási funkció óriási előnyei miatt gyakran használják sok vállalati hálózatban. Háromféle szállítási mód van általában az IPv4 szabványban: Unicast, Multicast és Broadcast. Az Anycast az IPv6-ban elfogadott. Az Anycast ritkán van jelen az IPv4-ben. Az Anycast az interfész azonosításához használja az interfészek csoportját, amelyek ugyanahhoz a szolgáltatáshoz csatlakoznak. A VIP-ek virtuális IP-címek, amelyek nem tartoznak semmilyen fizikai hálózati interfészhez. A terheléselosztónak megbízhatónak kell lennie, és rendelkeznie kell a felhőszolgáltatások legfontosabb jellemzőivel.
A piacon lévő terheléselosztók közül soknak nincs háttérszerver-felügyelete és sok más sajátos szolgáltatása. Számos terheléselosztási módszer létezik a 2/3/4 nyílt rendszerek összekapcsolási rétegén. Ezek a rétegek az adatkapcsolati réteg, a hálózati réteg és a szállítási réteg. Seesaw a 4. réteg technikáját használja a NAT ÉS DSR (Direct Server Return) szolgáltatással. A DSR úgy módosítja a forgalom folyamatát vagy a terhelést, hogy lehetővé teszi a kiszolgáló számára, hogy közvetlenül reagáljon az ügyfélre. Összességében elmondható, hogy a Seesaw terheléselosztó robusztus és megbízható e szempontok miatt.