
I tidligere artikler begyndte vi at tale om, hvad Proxmox VE er, og hvordan det fungerer. I dag vil vi fortĂŠlle om, hvordan man kan bruge clustering-funktionen og vise, hvilke fordele det giver.
Hvad er sÄ et cluster, og hvorfor er det nÞdvendigt? Et cluster (fra engelsk cluster) er en gruppe af servere, der er forbundet med hurtige kommunikationskanaler og fungerer og prÊsenterer sig for brugeren som en helhed. Der findes flere grundlÊggende anvendelsesscenarier for et cluster:
- Sikring af fejltolerance (High-availability).
- Lastbalancering (Load Balancing).
- ForĂžgelse af ydeevnen (High Performance).
- UdfĂžrelse af distribuerede beregninger (Distributed computing).
Hvert scenarie stiller sine egne krav til komponenterne i clustret. For eksempel er det primÊre krav til et cluster, der udfÞrer distribuerede beregninger, hÞj hastighed for flydende punktoperationer og lav netvÊrkslatens. SÄdanne clusters bruges ofte til forskningsformÄl.
Da vi berĂžrte emnet distribuerede beregninger, vil jeg gerne nĂŠvne, at der ogsĂ„ findes et begreb kaldet grid-system (fra engelsk grid â gitter, netvĂŠrk). PĂ„ trods af den generelle lighed bĂžr man ikke forveksle et grid-system med et cluster. Et grid er ikke et cluster i den traditionelle forstand. I modsĂŠtning til et cluster er noderne i et grid oftest heterogene og har lav tilgĂŠngelighed. Denne tilgang letter lĂžsningen af distribuerede beregningsopgaver, men gĂžr det ikke muligt at skabe et samlet hele af noderne.
Et klart eksempel pÄ et grid-system er den populÊre beregningsplatform (Berkeley Open Infrastructure for Network Computing). Denne platform blev oprindeligt oprettet til projektet (Search for Extra-Terrestrial Intelligence at Home), der arbejder med at finde intelligent liv i rummet ved at analysere radiosignaler.
Hvordan det fungererDet enorme datasÊt, der modtages fra radioteleskoper, opdeles i mange smÄ stykker, som sendes til noderne i grid-systemet (i projektet SETI@home fungerer frivillige computere som sÄdanne noder). Dataene behandles pÄ noderne, og efter behandlingen sendes de tilbage til projektets centrale server. PÄ den mÄde lÞser projektet en kompleks global opgave uden at have de nÞdvendige computerkraft til rÄdighed.
NÄ som vi har en klar forstÄelse av hva et klynge er, la oss se pÄ hvordan vi kan opprette og implementere den. Vi skal bruke en virtualisering med Äpen kildekode. .
Det er spesielt viktig Ä ha en klar forstÄelse av begrensningene og systemkravene til Proxmox fÞr vi begynner Ä opprette en klynge, nemlig:
- det maksimale antallet noder i klyngen er 32;
- alle noder mÄ ha den samme versjonen av Proxmox (det finnes unntak, men de anbefales ikke for produksjon);
- hvis det planlegges Ä bruke High Availability-funksjonalitet senere, mÄ klyngen ha minst 3 noder;
- for at nodene skal kunne samhandle, mÄ portene vÊre Äpne UDP/5404, UDP/5405 for corosync og TCP/22 for SSH;
- forsinkelsen i nettverket mellom nodene skal ikke overstige 2 ms.
Opprettelse av klynge
Viktig! Konfigurasjonen nedenfor er testkonfigurasjon. Husk Ă„ dobbeltsjekke med Proxmox VE.
For Ă„ starte en testklynge har vi tatt tre servere med installert Proxmox-hypervisor med lik konfigurasjon (2 kjerner, 2 GB RAM).
Hvis du vil vite hvordan du kan installere Proxmox, anbefaler vi Ă„ lese vĂ„r forrige artikkel â .
Opprinnelig, etter installasjonen av OS, fungerer en enkelt server i Standalone-mode.

La oss opprette en klynge ved Ä klikke pÄ knappen Create Cluster i den relevante delen.

Vi gir klyngen et navn og velger aktivt nettverksforbindelse.

Vi klikker pÄ knappen Create. Serveren genererer en 2048-bits nÞkkel og lagrer den sammen med innstillingene for den nye klyngen i konfigurasjonsfiler.

Innskriften OPGAVE OK bekrefter at operasjonen er vellykket. NÄ, nÄr vi ser pÄ systeminformasjonen, ser vi at serveren har gÄtt over til klyngetilstand. SÄ langt bestÄr klyngen bare av én node, sÄ den har ikke de funksjonene som klyngen er nÞdvendig for.

Tilslutning til klynge
FÞr vi kan koble oss til den opprettede klyngen, mÄ vi fÄ informasjon for Ä fullfÞre tilkoblingen. For Ä gjÞre dette gÄr vi inn i seksjonen Cluster og trykker pÄ knappen Join Information.

I det Äpne vinduet er vi interessert i innholdet i det samme feltet. Dette mÄ kopieres.

Her er alle nÞdvendige tilkoblingsparametre kodet: tilkoblingsserverens adresse og digitalt fingeravtrykk. Vi gÄr nÄ til serveren som skal legges til i klyngen. Vi klikker pÄ knappen Bli med i klyngen og i det Äpne vinduet limer vi inn det kopierte innholdet.

Feltene Peer-adresse og Fingerprint vil bli fylt ut automatisk. Vi angir root-passordet for node nummer 1, velger nettverksforbindelse og klikker pÄ knappen Bli med.

Under prosessen med Ä bli med i klyngen kan GUI-nettsiden slutte Ä oppdatere. Dette er normalt, bare oppdater siden. PÄ samme mÄte legger vi til en annen node, og til slutt har vi en fullverdig klynge med 3 fungerende noder.

NĂ„ kan vi kontrollere alle noder i klyngen fra ett GUI.

Organisering av HĂžy Tilgjengelighet
Proxmox stÞtter «out-of-the-box» funksjonalitet for Ä organisere HA for bÄde virtuelle maskiner og LXC-containere. VerktÞyet ha-manager oppdager og hÄndterer feil og feilfunksjoner, som utfÞrer failover fra den feilede noden til den fungerende. For at mekanismen skal fungere riktig, mÄ virtuelle maskiner og containere ha et felles filsystem.
Etter aktivering av funksjonaliteten for HÞy Tilgjengelighet vil programvaren ha-manager kontinuerlig overvÄke tilstanden til den virtuelle maskinen eller containeren og asynkront samhandle med andre noder i klyngen.
Legg til felles lagring
Som eksempel har vi satt opp et lite NFS-filsystem pÄ adressen 192.168.88.18. For at alle nodene i klyngen skal kunne bruke det, mÄ fÞlgende handlinger utfÞres.
Velg i menyen i webgrensesnittet Datacenter â Storage â Add â NFS.

Fyll ut feltene ID og Server. I nedtrekkslisten Eksport velger vi Ăžnsket katalog fra tilgjengelige, og i listen Innhold â nĂždvendige datatyper. Etter Ă„ ha trykket pĂ„ knappen Legg til vil lagringen bli koblet til alle nodene i klyngen.

Ved oppsett av virtuelle maskiner og containere pÄ hvilken som helst av nodene angir vi vÄr storage som lagring.
Konfigurer HA
Vi lager for eksempel en container med Ubuntu 18.04 og konfigurerer den for HĂžy Tilgjengelighet. Etter Ă„ ha opprettet og startet containere, gĂ„r vi til delen Datacenter â HA â Add. I det Ă„pne feltet angir vi ID-en til den virtuelle maskinen/containeren og maksimum antall restart- og migreringsforsĂžk mellom nodene.
Hvis dette antallet overskrides, vil hypervisoren merke VM-en som feilaktig og sette den i feilstatus, hvoretter den vil slutte Ă„ utfĂžre noen handlinger med den.

After clicking the button Legg til verktÞyet ha-manager vil informere alle noder i klyngen om, at VM med den angivne ID nu kontrolleres, og i tilfÊlde af et sammenbrud skal den startes igen pÄ en anden node.

Skabe en fejl
For at se, hvordan failover-mekanismen fungerer, slukker vi uventet for node1. Vi ser fra en anden node, hvad der sker med klyngen. Vi ser, at systemet har registreret fejlen.

Driften af HA-mekanismen garanterer ikke uafbrudt drift af VM. SÄ snart noden "faldt", stoppes VM midlertidigt, indtil den automatisk genstartes pÄ en anden node.
Og her begynder "magien" â klyngen har automatisk omfordelt noden til at kĂžre vores VM, og inden for 120 sekunder blev driften automatisk genoprettet.

Vi slukker for node2. Lad os se, om klyngen kan klare det, og om VM vender tilbage til driftsstatus automatisk.

DesvĂŠrre har vi, som vi kan se, et problem med, at den eneste tilbagevĂŠrende node ikke har noget flertal, hvilket automatisk deaktiverer HA-driften. Vi sender en kommando til at tvinge flertallet i konsollen.
pvecm forventede 1 
Efter 2 minutter fungerede HA-mekanismen korrekt og, ved ikke at finde node2, startede den vores VM pÄ node3.

SÄ snart vi tÊndte for node1 og node2 igen, blev klyngens drift helt genoprettet. VÊr opmÊrksom pÄ, at VM ikke automatisk migrerer tilbage til node1, men dette kan gÞres manuelt.
Oppsummering
Vi har fortalt dig om, hvordan klyngemekanismen fungerer i Proxmox, og vi har ogsÄ vist, hvordan HA konfigureres for virtuelle maskiner og containere. Korrekt brug af klyngedrift og HA Þger infrastrukturen betydeligt og sikrer genopretning efter fejl.
FÞr du opretter en klynge, skal du straks planlÊgge, hvad den vil blive brugt til, og hvor meget den skal skaleres i fremtiden. Du skal ogsÄ kontrollere netvÊrksinfrastrukturen for at sikre, at den er klar til at arbejde med minimale forsinkelser, sÄ den fremtidige klynge fungerer uden problemer.
FortĂŠl os â bruger du klyngemulighederne i Proxmox? Vi ser frem til at hĂžre fra dig i kommentarerne.
Tidligere artikler om hypervisoren Proxmox VE:
Kilde: habr.com
