Clusterizarea în Proxmox VE

Clusterizarea în Proxmox VE

În articolele anterioare, am început să discutăm despre ce este Proxmox VE și cum funcționează acesta. Astăzi, vom vorbi despre cum putem folosi capacitatea de clustering și vom arăta care sunt avantajele oferite.

Ce este un cluster și de ce este necesar? Clusterul (din engleză: cluster) este un grup de servere, unite prin canale de comunicare rapide, care funcționează și se prezintă utilizatorului ca un întreg.

  • Asigurarea redundanței (High-availability).
  • Încărcarea echilibrată (Load Balancing).
  • Creșterea performanței (High Performance).
  • Realizarea calculelor distribuite (Distributed computing).

Fiecare scenariu impune propriile cerințe pentru componentele clusterului. De exemplu, pentru un cluster care efectuează calcule distribuite, principala cerință este o viteză ridicată de execuție a operațiunilor cu virgulă mobilă și o latență redusă a rețelei. Astfel de clustere sunt adesea utilizate în scopuri de cercetare științifică.

Întrucât am abordat subiectul calculelor distribuite, este important să menționăm și conceptul de sistem grid (din engleză: grid — plasă, rețea). Deși există asemănări, nu trebuie să confundăm sistemul grid cu un cluster. Gridul nu este un cluster în sensul obișnuit. Spre deosebire de cluster, nodurile dintr-un grid sunt adesea eterogene și prezintă o disponibilitate redusă. Această abordare simplifică rezolvarea sarcinilor de calcul distribuit, dar nu permite crearea unui întreg unificat din noduri.

Un exemplu elocvent de sistem grid este platforma de calcul populară BOINC (Berkeley Open Infrastructure for Network Computing). Această platformă a fost creată inițial pentru proiectul SETI@home (Search for Extra-Terrestrial Intelligence at Home), care se ocupă cu problema căutării inteligenței extraterestre prin analiza semnalelor radio.

Cum funcționeazăMarele volum de date obținute de la radiotelescopuri este împărțit în multe bucăți mici, care sunt trimise către nodurile sistemului grid (în cadrul proiectului SETI@home, rolul acestor noduri este jucat de computerele voluntarilor). Datele sunt procesate pe noduri și, după finalizarea procesării, sunt trimise la serverul central al proiectului SETI. Astfel, proiectul rezolvă o sarcină globală complexă, fără a dispune de puterea de calcul necesară.

Acum, când avem o înțelegere clară despre ce este un cluster, să examinăm cum poate fi creat și utilizat. Vom folosi un sistem de virtualizare cu sursă deschisă. Proxmox VE.

Este deosebit de important, înainte de a începe crearea clusterului, să înțelegem clar limitările și cerințele sistemice ale Proxmox, și anume:

  • numărul maxim de noduri în cluster - 32;
  • toate nodurile trebuie să aibă aceeași versiune Proxmox (există excepții, dar acestea nu sunt recomandate pentru producție);
  • dacă se preconizează utilizarea funcționalității de High Availability, atunci în cluster ar trebui să fie cel puțin 3 noduri;
  • pentru interacțiunea dintre noduri, trebuie să fie deschise porturile UDP/5404, UDP/5405 pentru corosync și TCP/22 pentru SSH;
  • întârzierea în rețea între noduri nu trebuie să depășească 2 ms.

Crearea clusterului

Important! Configurația de mai jos este una de test. Nu uitați să verificați cu documentația oficială Proxmox VE.

Pentru a lansa un cluster de test, am folosit trei servere cu hypervisor Proxmox instalat, cu aceeași configurație (2 nuclee, 2 GB de RAM).

Dacă doriți să aflați cum poate fi instalat Proxmox, vă recomandăm să citiți articolul nostru anterior - Magia virtualizării: curs introductiv în Proxmox VE.

Inițial, după instalarea sistemului de operare, un server singular funcționează în Standalone-mode.

Clusterizarea în Proxmox VE
Să creăm un cluster, apăsând butonul Create Cluster în secțiunea corespunzătoare.

Clusterizarea în Proxmox VE
Atribuim un nume viitorului cluster și alegem conexiunea de rețea activă.

Clusterizarea în Proxmox VE
Apăsăm butonul Create. Serverul va genera o cheie de 2048 de biți și o va înregistra împreună cu parametrii noului cluster în fișierele de configurare.

Clusterizarea în Proxmox VE
Inscripția TASK OK atestă finalizarea cu succes a operațiunii. Acum, privind informațiile generale despre sistem, se poate observa că serverul a trecut în modul cluster. Deocamdată, clusterul constă doar dintr-un singur nod, adică nu are încă capacitățile pentru care este necesar un cluster.

Clusterizarea în Proxmox VE

Conectare la cluster

Înainte de a ne conecta la clusterul creat, trebuie să obținem informațiile necesare pentru a efectua conexiunea. Pentru aceasta, accesăm secțiunea Cluster și facem clic pe butonul Join Information.

Clusterizarea în Proxmox VE
În fereastra deschisă, ne interesează conținutul câmpului cu același nume. Acesta trebuie copiat.

Clusterizarea în Proxmox VE
Aici sunt codificate toate parametrii necesari pentru conexiune: adresa serverului pentru conectare și amprenta digitală. Trecem pe serverul care trebuie inclus în cluster. Apăsăm butonul Join Cluster și în fereastra care se deschide, inserăm conținutul copiat.

Clusterizarea în Proxmox VE
Câmpuri Adresa Peer și Fingerprint va fi completată automat. Introducem parola root pentru nodul numărul 1, alegem conexiunea de rețea și facem clic pe butonul Alăturare.

Clusterizarea în Proxmox VE
În timpul procesului de alăturare la cluster, pagina web GUI poate înceta să se actualizeze. Acest lucru este normal, doar reîncărcați pagina. În același mod adăugăm un alt nod și, în cele din urmă, obținem un cluster complet format din 3 noduri funcționale.

Clusterizarea în Proxmox VE
Acum putem monitoriza toate nodurile clusterului dintr-un singur GUI.

Clusterizarea în Proxmox VE

Organizarea High Availability

Proxmox „din cutie” suportă funcționalitatea de organizare HA atât pentru mașini virtuale cât și pentru containere LXC. Utilitarul ha-manager detectează și rezolvă erorile și defectele, efectuând comutarea de urgență de la nodul defect la cel funcțional. Pentru ca mecanismul să funcționeze corect, este necesar ca mașinile virtuale și containerele să aibă un spațiu de stocare comun.

După activarea funcționalității High Availability, stiva software ha-manager va începe să monitorizeze continuu starea de funcționare a mașinii virtuale sau a containerului și să interacționeze asincron cu celelalte noduri ale clusterului.

Alăturăm spațiul de stocare comun

De exemplu, am desfășurat un mic spațiu de stocare NFS la adresa 192.168.88.18. Pentru ca toate nodurile clusterului să poată utiliza acest lucru, trebuie să facem următoarele manevre.

Alegem în meniul interfeței web Datacenter — Storage — Add — NFS.

Clusterizarea în Proxmox VE
Umplem câmpurile ID și Server. În lista derulantă Export alegem directorul dorit din cele disponibile și în lista Conținut — tipurile de date necesare. După apăsarea butonului Adaugă spațiul de stocare va fi conectat la toate nodurile clusterului.

Clusterizarea în Proxmox VE
Atunci când creăm mașini virtuale și containere pe oricare dintre noduri, specificăm storage ca spațiu de stocare.

Configurăm HA

De exemplu, vom crea un container cu Ubuntu 18.04 și vom configura High Availability pentru acesta. După ce amendem și lansăm containerul, intrăm în secțiunea Datacenter — HA — Add. În câmpul deschis, indicăm ID-ul mașinii virtuale/containerului și numărul maxim de încercări de repornire și migrare între noduri.

Dacă acest număr este depășit, hipervizorul va marca VM-ul ca fiind defect și îl va transfera în stare de Eroare, după care va înceta să mai efectueze orice acțiuni cu acesta.

Clusterizarea în Proxmox VE
După ce ați apăsat butonul Adaugă utilitate ha-manager va informa toate nodurile clusterului că acum VM-ul cu ID-ul specificat este sub control și, în cazul unei căderi, trebuie repornit pe un alt nod.

Clusterizarea în Proxmox VE

Vom organiza o defectiune

Pentru a vedea cum funcționează mecanismul de comutare, vom opri neprogramat node1 prin alimentare. Ne uităm dintr-un alt nod pentru a observa ce se întâmplă cu clusterul. Vedem că sistemul a detectat defectiunea.

Clusterizarea în Proxmox VE

Funcționarea mecanismului HA nu garantează continuitatea activității VM-ului. De îndată ce nodul "a căzut", activitatea VM-ului se oprește temporar până la reluarea automată pe un alt nod.

Și aici începe "magia" — clusterul a realocat automat nodul pentru a executa VM-ul nostru și în decurs de 120 de secunde activitatea a fost restaurată automat.

Clusterizarea în Proxmox VE
Oprim node2 prin alimentare. Să vedem dacă clusterul va rezista și dacă VM-ul se va întoarce în stare de funcționare automat.

Clusterizarea în Proxmox VE
Din păcate, după cum vedem, avem o problemă cu faptul că la singurul nod rămas în viață nu mai există cvorum, ceea ce oprește automat funcționarea HA. Dăm în consolă comanda pentru a forța stabilirea cvorumului.

pvecm expected 1

Clusterizarea în Proxmox VE
După 2 minute, mecanismul HA a funcționat corect și, nerăspunzând la node2, a pornit VM-ul nostru pe node3.

Clusterizarea în Proxmox VE
Imediat ce am repornit node1 și node2, funcționarea clusterului a fost complet restaurată. Rețineți că VM-ul nu migrează automat înapoi pe node1, dar acest lucru se poate face manual.

Încheiem

V-am vorbit despre cum este organizat mecanismul de clustering în Proxmox, precum și despre cum se configurează HA pentru mașinile virtuale și containere. Utilizarea corectă a clustering-ului și HA crește semnificativ fiabilitatea infrastructurii și asigură recuperarea după defectiuni.

Înainte de a crea un cluster, trebuie să planificați de la început pentru ce scopuri va fi utilizat și cât de mult va trebui să fie scalat în viitor. De asemenea, trebuie să verificați infrastructura de rețea pentru pregătirea de a funcționa cu întârzieri minime, astfel încât viitorul cluster să funcționeze fără defecțiuni.

Spuneți-ne — folosiți posibilitățile de clustering în Proxmox? Vă așteptăm în comentarii.

Articolele anterioare despre hypervisorul Proxmox VE:

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster