Vad är kvorum i ett pacemakerkluster (förstå Kvorumoperationer)

vad är kvorum?

för att ett kluster ska fungera som förväntat måste noderna vara överens om vissa fakta, till exempel vilka maskiner som för närvarande är klustermedlemmar, var tjänster körs och vilka maskiner som använder vilka resurser.

metoden där detta implementeras i Red Hat High Availability Add-on är genom att använda ett majoritetsröstningssystem. Varje klusternod kastar en röst om den framgångsrikt ansluter sig till corosync-nätverkskommunikationen och kan kommunicera med de andra noderna som redan deltar i klustret.

klustret är i drift om mer än hälften av alla möjliga röster framgångsrikt avges. Det minsta antalet röster som behövs för att uppnå mer än hälften av rösterna kallas kvorum. Om kvorum uppnås anses klustret vara kvorat. Ett kluster förlorar kvorum om hälften av noderna eller mer inte kan kommunicera med varandra.

när ett kluster kommer igång försöker alla klusternoder att kommunicera med varandra och sträva efter att uppnå kvorum. Så snart en majoritet bildas finns det ett kvoratkluster. Alla andra noder som inte framgångsrikt har anslutit sig till kvoratklustret blir inhägnade av en nod som har kvorum. Om en nod som ingår i kvoratklustret inte kan kommunicera med klustret längre, blir noden inhägnad.

varför krävs kvorumberäkning?

kvorum krävs i situationer där vissa noder i ett kluster inte kan kommunicera med vissa andra noder. Följande illustration visar ett kluster med fem noder som består av noderna A, B, c, D och E med en tjänst som använder ett ext4-filsystem på delad lagring. Denna tjänst körs för närvarande på nod A.

noderna D och Eget delas av från det huvudsakliga privata nätverket och kan inte kommunicera med noderna A, B och c. utan kvorum kommer dessa två noder att bestämma att A, B och C alla har misslyckats och måste vara inhägnad (fjärrstyrd) så att deras resurser kan återvinnas. På detta sätt fungerar kvorum som en viktig Grind före stängsel.

om klustret skulle vara utan en fäktningsanordning skulle noderna D och E omedelbart börja återställa resurser, vilket resulterade i att samma ext4-filsystem monterades på två ställen samtidigt, vilket inte är en hälsosam situation. Denna situation, där två halvor av ett kluster fungerar oberoende av varandra, kallas en delad hjärna.

Split-brain är ett särskilt problem i kluster med två noder eftersom om någon nod misslyckas består den andra noden inte av en majoritet av noderna i klustret. Särskilda steg måste vidtas för att möjliggöra klusteroperation med två noder och ändå undvika delad hjärna.”

förutsatt att alla noder i detta exempel har en röst, kan denna situation inte uppstå, eftersom nod D och nod E bara har två röster tillsammans, vilket inte är mer än hälften av de totala rösterna (fem). Detta skulle resultera i att nod D och nod E upphör att fungera tills minst en annan röst tillsattes. Noderna A, B och c är å andra sidan aktiva som tillhandahåller tjänster, eftersom de har tre röster tillsammans, vilket är mer än hälften av de totala rösterna.

beräkning av kvorum

kvorum beräknas och hanteras i Red Hat High Availability Add-on av corosync-komponenten votequorum. Komponenten votequorum använder två värden för att beräkna om klustret är kvorat:

  1. förväntade röster: antalet röster som förväntas om alla klusternoder är fullt operativa och kommunicerar med varandra.
  2. totala röster: antalet närvarande röster. Detta kan vara lägre än antalet förväntade röster om vissa noder inte är uppe eller inte kommunicerar med klustret.

antalet röster som krävs för att uppnå kvorum baseras på förväntade Röster. Följande formel visar hur många röster som krävs för kvorum. I denna beräkning betyder golv () att alltid runda ner.

Quorum = floor(expected votes + 2 + 1)

Kvorumberäkningsexempel

i följande exempel antas ett kluster med tre noder. Ett kluster med tre noder har ett förväntat antal röster på tre.

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

i klustret med tre noder måste det finnas minst två noder som körs för att uppnå kvorum.

i följande exempel antas ett kluster med fyra noder. Ett kluster med fyra noder har ett förväntat antal röster på fyra.

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

i klustret med fyra noder måste det finnas minst tre noder som körs för att uppnå kvorum.

visar kvorumstatus

Red Hat High Availability Add-on ger ett omfattande verktyg för att visa det aktuella läget för kvorum i ett kluster: corosync-quorumtool. Corosync-quorumtool ger en översikt över kvorumrelaterad information, till exempel totala röster och förväntade röster, och visar om klustret är kvorat en överblick.

  1. Nodesposten anger antalet noder som hör till klustret.
  2. Node ID-posten visar ID för noden på vilken corosync-quorumtool utfördes.
  3. Quorate-posten visar om klustret är quorate.
  4. posten förväntade röster visar antalet röster som finns om alla konfigurerade klustermedlemmar är aktiva i klustret.
  5. den högsta förväntade posten visar det största antalet förväntade röster som ses i klustret.
  6. posten totala röster visar antalet röster som för närvarande finns i klustret.
  7. Kvorumposten visar hur många röster som måste vara närvarande minst så att klustret förblir kvorat.
  8. Flaggposten visar alla kvorumrelaterade egenskaper som för närvarande är inställda på klustret. Om klustret är quorate, kommer Quorate-egenskapen att visas. Ytterligare specialfunktioner visas också i det här fältet när de är inställda, till exempel LastManstanding eller WaitForAll.

Lämna ett svar

Din e-postadress kommer inte publiceras.