
I tidigare artiklar har vi börjat berÀtta om vad Proxmox VE Àr och hur det fungerar. I dag kommer vi att berÀtta om hur man kan anvÀnda klusterfunktionaliteten och visa vilka fördelar det ger.
Vad Àr egentligen ett kluster och varför behövs det? Ett kluster (frÄn engelska cluster) Àr en grupp servrar som Àr sammanbundna med snabba kommunikationskanaler och fungerar och upplevs av anvÀndaren som en enda enhet. Det finns flera grundlÀggande anvÀndningsscenarier för kluster:
- SÀkerstÀllande av hög tillgÀnglighet (High-availability).
- Lastbalansering (Lastbalansering).
- Ăkad prestanda (Hög prestanda).
- Utförande av distribuerade berÀkningar (Distribuerad datoranvÀndning).
Varje scenario har sina egna krav pÄ klusterkomponenterna. Till exempel, för ett kluster som utför distribuerade berÀkningar Àr huvudsakligt krav hög hastighet pÄ flyttalberÀkningar och lÄg nÀtverkslatens. SÄdana kluster anvÀnds ofta för forskningsÀndamÄl.
Eftersom vi har berört Ă€mnet distribuerade berĂ€kningar, vill vi nĂ€mna ett begrepp som grid-system (frĂ„n engelska grid â rutnĂ€t, nĂ€t). Trots likheten fĂ„r man inte blanda ihop grid-system och kluster. Ett grid Ă€r inte ett kluster i traditionell bemĂ€rkelse. Till skillnad frĂ„n ett kluster Ă€r de noder som ingĂ„r i ett grid oftast heterogena och har lĂ„g tillgĂ€nglighet. Denna metod underlĂ€ttar lösningarna av distribuerade berĂ€kningar men gör det inte möjligt att skapa en sammanhĂ„llen enhet av noderna.
Ett tydligt exempel pÄ ett grid-system Àr den populÀra berÀkningsplattformen (Berkeley Open Infrastructure for Network Computing). Denna plattform skapades ursprungligen för projektet (Search for Extra-Terrestrial Intelligence at Home), som sysslar med att söka efter utomjordiskt liv genom att analysera radiosignaler.
Hur det fungerarDen stora mÀngden data som erhÄllits frÄn radioteleskop delas upp i mÄnga smÄ bitar och skickas till noder i grid-systemet (i projektet SETI@home agerar frivilliga datorer som dessa noder). Data bearbetas pÄ noderna och efter att bearbetningen Àr klar skickas de tillbaka till projektets centrala server. PÄ detta sÀtt löser projektet en komplex global uppgift utan att ha de berÀkningsresurser som krÀvs.
Nu nÀr vi har en tydlig förstÄelse för vad ett kluster Àr, föreslÄr vi att vi ser pÄ hur det kan konstrueras och anvÀndas. Vi kommer att anvÀnda ett virtualiseringssystem med öppen kÀllkod .
Det Àr sÀrskilt viktigt att innan vi börjar skapa ett kluster ha en klar förstÄelse för begrÀnsningar och systemkrav för Proxmox, nÀmligen:
- maximalt antal noder i klustret â 32;
- alla noder mÄste ha samma version av Proxmox (det finns undantag, men för produktion rekommenderas de inte);
- om det senare planeras att anvÀnda funktionalitet för hög tillgÀnglighet, mÄste klustret ha minst 3 noder;
- för att noder ska kunna interagera med varandra mÄste portarna vara öppna UDP/5404, UDP/5405 för corosync och TCP/22 för SSH;
- försening i nÀtverket mellan noderna fÄr inte överstiga 2 ms.
Skapa en kluster
Viktigt! Konfigurationen nedan Àr testversion. Glöm inte att kontrollera med Proxmox VE.
För att starta ett testkluster tog vi tre servrar med installerad hypervisor Proxmox med samma konfiguration (2 kÀrnor, 2 GB RAM).
Om du vill veta hur man installerar Proxmox rekommenderar vi att lĂ€sa vĂ„r tidigare artikel â .
Inledningsvis, efter installation av OS, arbetar en enskild server i Standalone-mod.

Skapa ett kluster genom att klicka pÄ knappen Create Cluster i den relevanta sektionen.

Ge ett namn till det framtida klustret och vÀlj en aktiv nÀtverksanslutning.

Klicka pÄ knappen Create. Servern kommer att generera en 2048-bitars nyckel och spara den tillsammans med konfigurationerna för det nya klustret i konfigurationsfiler.

Texten TASK OK indikerar att operationen har genomförts framgÄngsrikt. Nu kan vi se i systeminformationen att servern har övergÄtt till klusterlÀge. Just nu bestÄr klustret bara av en nod, vilket betyder att det inte har de möjligheter som ett kluster Àr nödvÀndigt för.

Ansluta till klustret
Innan vi ansluter till det skapade klustret mÄste vi fÄ information för att utföra anslutningen. För detta gÄr vi till sektionen Kluster och trycker pÄ knappen Join Information.

I det öppna fönstret Àr vi intresserade av innehÄllet i det namnliknande fÀltet. Det mÄste kopieras.

HÀr Àr kodade alla nödvÀndiga anslutningsparametrar: serveradress för anslutning och digitalt fingeravtryck. GÄ till servern som ska ingÄ i klustret. Klicka pÄ knappen Join Cluster och i det öppna fönstret klistrar vi in det kopierade innehÄllet.

FÀlt Peer Address och Fingerprint kommer att fyllas i automatiskt. Vi anger root-lösenordet för nod nummer 1, vÀljer nÀtverksanslutning och klickar pÄ knappen GÄ med.

Under processen att gÄ med i klustret kan webbsidan GIU sluta uppdateras. Det Àr normalt, bara ladda om sidan. PÄ samma sÀtt lÀgger vi till en annan nod och fÄr slutligen ett fullt fungerande kluster med 3 aktiva noder.

Nu kan vi kontrollera alla noder i klustret frÄn ett och samma GUI.

Organisation av Hög TillgÀnglighet
Proxmox stöder 'out of the box' funktionalitet för att organisera HA bÄde för virtuella maskiner och LXC-containrar. Verktyget ha-manager upptÀcker och hanterar fel och avbrott, och gör en failover frÄn den misslyckade noden till den fungerande. För att mekanismen ska fungera korrekt, mÄste de virtuella maskinerna och containrarna ha ett gemensamt lagringsutrymme.
Efter aktivering av funktionaliteten för Hög TillgÀnglighet kommer programstapeln ha-manager kontinuerligt att övervaka statusen för den virtuella maskinen eller containern och asynkront interagera med andra noder i klustret.
Anslut gemensam lagring
Som exempel har vi distribuerat en liten NFS-lagring pÄ adressen 192.168.88.18. För att alla noder i klustret ska kunna anvÀnda den, behöver vi göra följande.
Vi vĂ€ljer i webbgrĂ€nsnittets meny Datacenter â Storage â Add â NFS.

Vi fyller i fĂ€lten ID och Server. I rullgardinsmenyn Exportera vĂ€ljer vi den önskade katalogen frĂ„n de tillgĂ€ngliga och i listan InnehĂ„ll â nödvĂ€ndiga datatyper. Efter att ha tryckt pĂ„ knappen Add kopplas lagringen till alla noder i klustret.

Vid skapande av virtuella maskiner och containrar pÄ nÄgon av noderna anger vi vÄr lagring som lagring.
Konfigurera HA
Som exempel kommer vi att skapa en container med Ubuntu 18.04 och konfigurera Hög TillgĂ€nglighet för den. Efter skapandet och start av containern gĂ„r vi till avsnittet Datacenter â HA â Add. I det öppna fĂ€ltet anger vi ID för den virtuella maskinen/containern och maximalt antal omstarts- och flyttförsök mellan noder.
Om detta antal överskrids kommer hypervisorn att mÀrka VM som felaktig och sÀtta den i ett felvisat tillstÄnd, efter vilket den slutligen slutar utföra nÄgra ÄtgÀrder med den.

Efter att ha tryckt pÄ knappen Add verktyg ha-manager kommer att informera alla noder i klustret om att VM med den angivna ID nu kontrolleras och att den behöver startas om pÄ en annan nod i hÀndelse av ett fel.

Vi orsakar ett fel
För att se hur vÀxlingsmekanismen fungerar, stÀnger vi plötsligt av node1 frÄn strömmen. Vi observerar frÄn en annan nod vad som hÀnder med klustret. Vi ser att systemet har registrerat ett fel.

Arbetet av HA-mekanismen innebÀr inte att VM fortsÀtter att fungera utan avbrott. SÄ fort en nod 'faller', stannar arbetet för VM till dess att den automatiskt startas om pÄ en annan nod.
Och hĂ€r börjar 'magin' â klustret har automatiskt omdirigerat noden för att köra vĂ„r VM och inom 120 sekunder var arbetet automatiskt Ă„terstĂ€llt.

Vi stÀnger av node2 frÄn strömmen. LÄt oss se om klustret stÄr emot och om VM automatiskt ÄtergÄr till ett arbetslÀge.

TyvÀrr, som vi ser, har vi stött pÄ ett problem med att det pÄ den enda kvarvarande levande noden inte finns nÄgon majoritet, vilket automatiskt stÀnger av HA-funktionen. Vi ger ett kommando i konsolen för att tvinga fram en majoritet.
pvecm förvÀntade sig 1 
Efter 2 minuter fungerade HA-mekanismen korrekt och, nÀr node2 inte fanns, startade den vÄr VM pÄ node3.

SÄ snart vi slog pÄ node1 och node2 igen var klustrets arbete helt ÄterstÀllt. Observera att VM inte automatiskt migrerar tillbaka till node1, men detta kan göras manuellt.
Sammanfattning
Vi har berÀttat om hur kluster mekanismen fungerar i Proxmox och visat hur HA konfigureras för virtuella maskiner och containrar. Korrekt anvÀndning av kluster och HA ökar avsevÀrt pÄlitligheten i infrastrukturen, och sÀkerstÀller ocksÄ ÄterstÀllande efter fel.
Innan du skapar ett kluster bör du planera direkt för vilka syften det kommer att anvÀndas och hur mycket det kan behöva skalas i framtiden. Du bör ocksÄ kontrollera nÀtverksinfrastrukturen för att sÀkerstÀlla att den kan hantera minimala fördröjningar, sÄ att det framtida klustret fungerar utan avbrott.
BerĂ€tta för oss â anvĂ€nder du klusterfunktionerna i Proxmox? Vi ser fram emot dina kommentarer.
Tidigare artiklar om Proxmox VE-hypervisorn:
KĂ€lla: habr.com
