Modelele cu cvorum în serverul de ferestre 2018 r2

Cvorumul în limba latină înseamnă majoritatea, iar modelele de cvorum sunt utilizate în cluster-ele Windows tolerante la erori pentru a determina starea de sănătate a clusterului. Dacă unul sau mai multe noduri de cluster nu reușesc, se iau voturile rămase, iar dacă câștigă majoritatea (cvorumul), clusterul continuă să funcționeze, dacă nu, clusterul se oprește.







Serviciul clusterului (clustering Failover) a apărut în Windows NT 4.0. Apoi clusterul a însemnat două noduri (nod), care s-au alăturat împreună și au acces la magazinul partajat pe care sa localizat discul cvorum sau la discul-martor (Disk Witness). Votarea ca atare nu a fost și capacitatea de lucru a grupului a fost determinată de disponibilitatea discului de cvorum. Dacă unul dintre noduri eșuează, cel de-al doilea apucă discul și continuă să funcționeze.

Modelele cu cvorum în serverul de Windows 2012 r2

Un astfel de model de cvorum a supraviețuit și se mai numește Disk Only. Cu acest model, clusterul poate supraviețui pierderii tuturor nodurilor de cluster, cu excepția celui care deține discul de cvorum. După cum înțelegeți, aici discul este un singur punct de eșec și când acesta nu reușește, întregul cluster devine inoperabil.

Nod Majoritate (majoritatea nodurilor) - fiecărui nod al clusterului i se atribuie o voce, un disc-martor nu are voce.
Nodul și majoritatea discurilor (majoritatea nodurilor și discurilor) - fiecare nod de cluster și discul martor au voce și participă la vot.

Alegerea modelului depinde în mod direct de numărul de noduri din cluster, astfel încât Node Majority este mai convenabil de utilizat pentru un număr impar de noduri, iar nodul și majoritatea discurilor pentru even. În orice caz, pentru a continua activitatea clusterului, este necesar să se colecteze majoritatea voturilor (> 50%).

De exemplu, luați un cluster cu 5 noduri cu modelul cvorumului Node Majority. Fiecare nod are 1 vot, respectiv toate cele 5 voturi sunt 100%. Pentru a obține un cvorum, sunt necesare mai mult de 50% din voturi, care în acest caz este de 3 voturi din 5. Prin calcule simple, putem constata că acest cluster nu poate tolera un eșec de mai mult de 2 noduri. În cazul în care al treilea nod eșuează, nodurile rămase nu vor putea să colecteze majoritatea și clusterul va fi oprit.

Modelele cu cvorum în serverul de Windows 2012 r2

Nod Greutate

Semnificația schimbării în greutate a fost aceea de a exclude unul sau mai multe noduri din procesul de vot, astfel încât căderea lor să nu ducă la stoparea clusterului. În acest caz, nodul continuă să participe la cluster și să proceseze conexiunile clientului, dar nu participă la vot. Excluderea votului obținut prin setarea parametrului la 0. NodeWeight schimbare de nod în greutate a fost realizată manual, folosind PowerShell sau prin corecțiile de registru.

De exemplu, să ia cluster multisite format din 5 noduri și folosind modelul cu Sharoy cvorum de fișier (Nodul și File Share Majoritate). Trei noduri de cluster sunt în site-ul principal, două în rezervă, și undeva în al treilea fișier este disponibil cu bile martor. În abordarea de obicei, cele trei noduri de ieșire în site-ul principal de acțiune (de exemplu. Pană de curent) va duce la o scădere în grup întreg, pentru că o minge nodul 2 + fișier rămas în site-ul defect nu va câștiga mai mult de o jumătate de voci (voci 3 din 6).

Dar dacă luați o voce de la unul dintre site-urile din site-ul principal, atunci primim 2 voturi în site-ul principal și 2 în site-ul de rezervă. În consecință, dacă site-ul principal se prăbușește, nodurile rămase din copia de rezervă cu ajutorul bilelor vor putea câștiga majoritatea (3 din 5) și să pornească clusterul.

Modelele cu cvorum în serverul de Windows 2012 r2

Dynamic Quorum

• Dacă un nod eșuează, nodul cu cel mai mic număr (Nod ID) al nodurilor rămase conduce greutatea nodului la 0;
• Când nodul este oprit, nodul însuși își șterge vocea în timpul procesului de închidere a serverului;
• Când adăugați un nod în cluster, nodul își adaugă vocea în timpul adăugării.

Atunci când se utilizează un cvorum dinamic, fiecare nod are doi parametri - greutatea dinamică (DynamicWeight) și greutatea țintă (NodeWeight) a nodului. Cvorumul dinamic funcționează numai cu greutate dinamică, fără a schimba greutatea țintă. Principiul este următorul: atunci când nodul este deconectat, greutatea sa dinamică este setată la 0, iar atunci când nodul pornește și funcționează, greutatea sa dinamică se ridică la greutatea țintă. Astfel, un cvorum dinamic permite grupului să supraviețuiască chiar dacă are doar un nod lăsat. Singura limitare este ca nodurile să nu reușească la rândul lor, astfel încât să existe timp pentru a recalcula cvorumul. Cu un eșec simultan de peste 50% din noduri, un cvorum dinamic nu va funcționa și clusterul va fi oprit.

Ca un exemplu, să ia un model de cluster 5-nod Nod Majoritate. După cum vă amintiți din exemplul anterior, prin utilizarea unui model de cvorum standard, a unui astfel de grup se confruntă cu pierderea de maximum două noduri. Dar, ca un cvorum dinamic recalculează automat numărul total de voturi, este acum la eșecul de 3 noduri noi nu primi 2 voturi din 5, și 2 voturi de 2, ceea ce va permite clusterul să continue să lucreze cu o pierdere consistentă de mai mult de jumătate din nodurile (3 din 5).

Modelele cu cvorum în serverul de Windows 2012 r2

Notă. În cazul în care un nod de cluster sunt doar 2 și nu există nici un disc martor, este posibil ca Split-Brain, atunci când pierderea de comunicare între noduri, fiecare dintre care se consideră independente. Pentru a evita acest serviciu de cluster reduce greutatea unuia dintre nodurile rămase la 0. Prin urmare, atunci când o pierdere de cluster de servicii de comunicații la un site va fi oprit, în timp ce al doilea va continua să funcționeze.

Dinamicul Martor

Dacă utilizați un martor dinamic, greutatea discului este valoarea variabilă și depinde de numărul de noduri de lucru din cluster. De exemplu, într-un cluster cu 5 noduri cu modelul nodului și discului majoritar, discul martor are greutate zero și nu participă la vot. Dacă un nod este pierdut și cvorumul este recalculat, numărul de voturi devine egal, iar pentru a evita acest lucru, martorul primește un vot. Și până la ultimul nod, cu un număr impar de noduri din cluster, greutatea discului este de 0 și chiar și una.







Modelele cu cvorum în serverul de Windows 2012 r2

Notă. Dacă există un disc martor, serviciul cluster nu reduce numărul de voturi sub 2.

LowerQuorumPriorityNodeID

Atunci când se utilizează clustere distribuite geografic, problema pierderii simultane a 50% din noduri este reală, ceea ce poate duce la diverse situații neplăcute.

De exemplu, luați un cluster cu patru noduri pe mai multe site-uri cu un disc partajat (Nod și Majoritate de discuri). Clusterul este împărțit la jumătate, două noduri de cluster sunt în site-ul principal, două în rezervă, doar 5 voturi (4 noduri + disc). Se pare că totul este frumos, dacă un site al site-ului nu reușește, nodurile din celălalt împreună cu martorul pot obține un cvorum și pot continua să lucreze.

Și acum să presupunem că discul martor este nefuncțional și devine indisponibil. cvorum dinamic menține în mod automat un număr impar de voturi, astfel încât la unul dintre site-urile selectate în mod aleatoriu, greutatea dinamică se reduce la 0. Ca rezultat, avem 3 voturi - 2 într-un singur site-ul și 1 în cealaltă. Acum, în cazul în care legătura dintre site-uri este întreruptă, cvorumul va fi colectat la locul unde se aflau 2 voturi, și nu faptul că acest lucru va fi site-ul principal.

Modelele cu cvorum în serverul de Windows 2012 r2

Resiliența cvorumului forței

Într-o situație în care un cvorum nu pot fi colectate în mod automat, este posibil să se înceapă cu forța serviciul de cluster pe nodurile rămase, folosind cvorum forțându (ForceQuorum). Pentru a face acest lucru, administratorul trebuie să selecteze unul dintre nodurile disponibile și să pornească manual serviciul de cluster în modul forțat pe acesta. Acest lucru se poate face din linia de comandă, comanda net start clussvc / FQ fie folosind PowerShell, cmdlet Start-ClusterNode ForceQuorum cheie.

După aceea, toate celelalte noduri din serviciul de cluster ar trebui să fie, de asemenea, a început manual, comanda net start clussvc / PQ sau cmdletului Start-ClusterNode cheie PreventQuorum. Acest lucru nu le va permite să-și adune propriul cluster, ci le va forța să caute clusterul existent și să se alăture acestuia.

O astfel de abordare nu este întotdeauna posibilă. De exemplu, să luăm o situație în care avem un cluster cu 5 noduri cu mai multe situri, nodurile cărora sunt separate în două site-uri (principale și de rezervă). În site-ul principal există 3 noduri, în site-ul de rezervă, respectiv 2. Comunicarea cu site-ul principal este pierdută, ceea ce înseamnă pierderea simultană a mai mult de 50% din noduri. În această situație, cvorumul dinamic nu ajută, și pentru reluarea cluster în administratorul site-ului de backup trebuie să înceapă manual cluster cu ForceQuorum cheie.

Și acum, să presupunem că există probleme cu rețeaua, iar în centrul de date însă totul continuă să funcționeze. În consecință, având majoritatea, nodurile din site-ul principal vor colecta cvorumul și vor continua să funcționeze. Și odată ce conexiunea este restabilită, vom obține Split-Brain, pentru că nodurile clusterului din site-urile principale și de rezervă, care și-au pierdut contactul cu altele, se vor considera un cluster independent.

Și acum, pentru claritate, să ne uităm la câteva exemple vii.

Example1. Stabilirea greutății nodului

De exemplu, luați un cluster cu 4 noduri cu numele "original" Cluster1. Deschideți modulul snap-in Manager de gestionare a clusterului de defecțiuni, accesați secțiunea "Noduri" și vedeți lista nodurilor sale. Aici suntem interesați de două coloane:
• Vot atribuit - vocea atribuită nodului în cazul general. Acesta este determinat de greutatea țintă a nodului (NodeWeight);
• Vot curent - vocea pe care o are nodul în momentul de față. Depinde de greutatea dinamică curentă a nodului (DynamicWeight).

În mod implicit, pentru nodurile de lucru, acești parametri sunt identici și egali cu 1.

Modelele cu cvorum în serverul de Windows 2012 r2

După cum vă amintiți, greutatea țintă a nodului poate fi schimbată manual. Pentru a face acest lucru, faceți clic dreapta pe numele grupului și în meniul contextual mergeți la secțiunea Mai multe acțiuni -> Configurați setările pentru cvorumul clusterului.

Modelele cu cvorum în serverul de Windows 2012 r2

Și mergând la configurația avansată a cvorumului, selectați acele noduri ale clusterului care vor avea dreptul de vot.

Notă. După selectarea elementului No Nodes, vom obține un model de cvorum numai pentru discuri, în care doar dreptul la vot are o resursă de cvorum.

Modelele cu cvorum în serverul de Windows 2012 r2

De asemenea, puteți scădea greutatea țintă a nodurilor selectate cu PowerShell, aici este comanda:

(Get-ClusterNode - este vorba de SRV5) .NodeWeight = 0
(Get-ClusterNode - este vorba de SRV6) .NodeWeight = 0

Ca urmare, nodurile își pierd vocea și nu participă la vot, deși continuă să lucreze în cluster. Rețineți că acum pentru nodurile selectate ambii parametri au o valoare zero. Acest lucru se datorează faptului că greutatea dinamică a unui nod nu este niciodată setată la 1 la o greutate țintă de 0.

Modelele cu cvorum în serverul de Windows 2012 r2

Exemplul 2. Cvorumul dinamic

Spre deosebire de reducerea manuală a greutății, cvorumul dinamic nu afectează greutatea țintă a nodului, dar funcționează numai cu greutate dinamică. Pentru claritate, oprim cele 2 noduri ale clusterului și vedem ce sa întâmplat cu greutățile lor. Deoarece după oprirea greutății dinamice a lor a devenit egală cu o, atunci nu mai au voce. Cu toate acestea, greutatea lor țintă rămâne aceeași, iar odată ce nodurile sunt incluse, mecanismul dinamic al cvorumului va crește imediat ponderea dinamică a țintă, va primi votul înapoi și va putea participa la vot.

Modelele cu cvorum în serverul de Windows 2012 r2

(Get-Cluster -Name Cluster1) .DynamicQuorum = 0

Exemplul 3. Martor dinamic

Să ne îndreptăm spre demonstrația muncii unui martor dinamic. Ca test, folosim același cluster cu 4 noduri cu un disc martor. Deschideți consola PowerShell și verificați starea și greutățile nodurilor de cluster cu comanda:

Get-ClusterNode-Clusterter Cluster1 | ft -a Nume, Stat, NodeWeight, DynamicWeight

Și pentru a scoate greutatea discului martor, executați comanda:

Get-Cluster - Cluster1 | fl WitnessDynamicWeight

După cum puteți vedea, deoarece avem un număr par de noduri (4 noduri), martorul are o greutate egală cu 1.

Modelele cu cvorum în serverul de Windows 2012 r2

Oprim unul dintre noduri și verificăm din nou starea lor. Din moment ce numărul de noduri active este impar (3 noduri), greutatea martorului devine superfluă, iar valoarea sa este automat setată la 0.

Modelele cu cvorum în serverul de Windows 2012 r2

Exemplul 4. LowerQuorumPriorityNodeID

Luăm un cluster cu 4 noduri și un disc-martor. Verificăm parametrii săi - tipul nodului cvadru și majoritatea discurilor, greutățile tuturor nodurilor și discului sunt egale cu 1, în total, există 5 voturi.

Modelele cu cvorum în serverul de Windows 2012 r2

Oprim discul martor, determinând greutatea sa egală cu 0. Încă o dată verificăm parametrii nodurilor și vedem că cvorumul dinamic a relatat vocile și, pentru a-și păstra numărul ciudat, a redus greutatea dinamică a primului nod.

Modelele cu cvorum în serverul de Windows 2012 r2

Să presupunem că nu suntem mulțumiți de această stare de lucruri și dorim ca în această situație greutatea celui de-al patrulea nod să scadă mereu. Pentru aceasta, setați LowerQuorumPriorityNodeID la 4 executând:

(Get-Cluster-Cluster 1). PowerQuorumPriorityNodeID = 4

Notă. Valoarea LowerQuorumPriorityNodeID este numărul de nod (ID) la care doriți să reduceți greutatea. Numai un singur nod poate fi specificat la un moment dat.

Încă o dată, simulați situația cu deconectarea discului și vedeți parametrii nodurilor. După cum puteți vedea, acum greutatea este redusă la nodul cu ID = 4, care este specificat în proprietatea LowerQuorumPriorityNodeID.

Modelele cu cvorum în serverul de Windows 2012 r2

Astfel, cu ajutorul LowerQuorumPriorityNodeID, putem gestiona mai flexibil grupul și alege care dintre părțile sale în cazul unei deconectări va continua să funcționeze și care va fi oprită.







Articole similare

Trimiteți-le prietenilor: