
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 и нажимаем кнопку 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
