ce este cvorumul într-un cluster de stimulatoare cardiace (înțelegerea operațiunilor de cvorum)

ce este cvorumul?

pentru ca un cluster să funcționeze conform așteptărilor, nodurile trebuie să fie de acord cu anumite fapte, cum ar fi Ce mașini sunt în prezent membri ai cluster-ului, unde rulează serviciile și ce mașini folosesc ce resurse.

metoda prin care acest lucru este implementat în suplimentul Red Hat High Availability este prin utilizarea unui sistem de vot majoritar. Fiecare nod de cluster aruncă un vot dacă se alătură cu succes comunicării de rețea corosync și este capabil să comunice cu celelalte noduri care participă deja la cluster.

clusterul este operațional dacă mai mult de jumătate din toate voturile posibile sunt exprimate cu succes. Numărul minim de voturi necesare pentru a obține mai mult de jumătate din voturi se numește cvorum. Dacă cvorumul este atins, clusterul este considerat cvorat. Un cluster pierde cvorumul dacă jumătate din noduri sau mai multe nu pot comunica între ele.

când începe un cluster, toate nodurile clusterului încearcă să comunice între ele și urmăresc să obțină cvorum. De îndată ce se formează o majoritate, există un cluster cvorat. Toate celelalte noduri care nu s-au alăturat cu succes clusterului quorate sunt îngrădite de un nod care are cvorum. Dacă un nod care face parte din clusterul quorate nu mai este capabil să comunice cu Clusterul, nodul devine îngrădit.

de ce este necesar calculul cvorumului?

cvorumul este necesar în situațiile în care unele noduri dintr-un cluster nu pot comunica cu anumite alte noduri. Următoarea ilustrație prezintă un cluster cu cinci noduri format din nodurile A, B, c, D și E cu un serviciu care utilizează un sistem de fișiere ext4 pe stocarea partajată. Acest serviciu rulează în prezent pe nodul A.

nodurile D și Eget s-au separat de rețeaua privată principală și nu pot comunica cu nodurile A, B și C. fără cvorum, aceste două noduri vor decide că A, B și C au eșuat și trebuie să fie îngrădite (oprite de la distanță), astfel încât resursele lor să poată fi recuperate. În acest fel, cvorumul acționează ca o poartă importantă înainte de împrejmuire.

dacă clusterul ar fi fără un dispozitiv de îngrădire, nodurile D și E ar începe imediat recuperarea resurselor, rezultând ca același sistem de fișiere ext4 să fie montat în două locuri simultan, ceea ce nu este o situație sănătoasă. Această situație, în care două jumătăți ale unui cluster funcționează independent una de cealaltă, este denumită creier divizat.

creierul divizat este o preocupare deosebită în grupurile cu două noduri, deoarece dacă oricare dintre noduri eșuează, celălalt nod nu constă dintr-o majoritate a nodurilor din cluster. Trebuie luate măsuri speciale pentru a permite funcționarea clusterului cu două noduri și pentru a evita în continuare creierul divizat.”

presupunând că toate nodurile din acest exemplu au un vot, această situație nu poate apărea, deoarece nodul D și nodul E au doar două voturi împreună, ceea ce nu reprezintă mai mult de jumătate din totalul voturilor (cinci). Acest lucru ar duce la încetarea funcționării nodului D și nodului E până la adăugarea a cel puțin un alt vot. Nodurile A, B și C, pe de altă parte, rămân active furnizând servicii, deoarece au trei voturi combinate, ceea ce reprezintă mai mult de jumătate din totalul voturilor.

Cvorumul de calcul

cvorumul este calculat și gestionat în suplimentul Red Hat High Availability de către componenta corosync votequorum. Componenta votequorum utilizează două valori pentru a calcula dacă clusterul este cvorat:

  1. voturi așteptate: numărul de voturi așteptate dacă toate nodurile clusterului sunt pe deplin operaționale și comunică între ele.
  2. Total voturi: numărul de voturi prezente în prezent. Acest lucru poate fi mai mic decât numărul de voturi așteptate dacă unele noduri nu sunt în sus sau nu comunică cu Clusterul.

numărul de voturi necesare pentru a obține cvorumul se bazează pe voturile așteptate. Următoarea formulă arată câte voturi sunt necesare pentru cvorum. În acest calcul, podea () înseamnă a rotunji întotdeauna în jos.

Quorum = floor(expected votes + 2 + 1)

exemplu de calcul al Cvorumului

în exemplul următor, se presupune un cluster cu trei noduri. Un cluster cu trei noduri are un număr de voturi așteptat de trei.

Quorum= floor(expected votes + 2 + 1)Quorum = floor(3 + 2 + 1) Quorum = floor(1.5 + 1) Quorum = floor(2.5) Quorum = 2 

în clusterul cu trei noduri, trebuie să existe minimum două noduri care rulează pentru a atinge cvorumul.

în exemplul următor, se presupune un cluster cu patru noduri. Un cluster cu patru noduri are un număr de voturi așteptat de patru.

Quorum = floor(expected votes + 2 + 1} Quorum = floor(4 + 2 + 1) Quorum = floor(2 + 1} Quorum = floor(3) Quorum = 3

în clusterul cu patru noduri, trebuie să existe minimum trei noduri care rulează pentru a atinge cvorumul.

Afișarea stării cvorumului

suplimentul Red Hat High Availability oferă un utilitar cuprinzător pentru a afișa starea curentă a cvorumului într-un cluster: corosync-quorumtool. Corosync-quorumtool oferă o imagine de ansamblu a informațiilor legate de cvorum, cum ar fi voturile totale și voturile așteptate și arată dacă clusterul este cvorat dintr-o privire.

  1. intrarea nodurilor furnizează numărul de noduri al nodurilor care aparțin clusterului.
  2. intrarea Id nod arată ID-ul nodului pe care a fost executat corosync-quorumtool.
  3. intrarea Quorate arată dacă clusterul este quorate.
  4. intrarea voturi așteptate arată numărul de voturi care sunt prezente dacă toți membrii clusterului configurați sunt activi în cluster.
  5. cea mai mare intrare așteptată arată cel mai mare număr de voturi așteptate văzut în cluster.
  6. intrarea Total voturi arată numărul de voturi prezente în prezent în cluster.
  7. intrarea în cvorum arată câte voturi trebuie să fie prezente la minimum, astfel încât clusterul să rămână cvorat.
  8. intrarea steaguri arată orice proprietăți legate de Cvorum care sunt setate în prezent pe cluster. Dacă clusterul este quorate, atunci proprietatea Quorate va apărea. Caracteristici speciale suplimentare se vor afișa, de asemenea, în acest câmp atunci când este setat, cum ar fi LastManstanding sau WaitForAll.

Lasă un răspuns

Adresa ta de email nu va fi publicată.