mikä on päätösvaltaisuus sydämentahdistimen klusterissa (ymmärtäminen Päätösvaltaisuusoperaatiot))

mikä on päätösvaltaisuus?

jotta klusteri toimisi odotetusti, solmujen on oltava yksimielisiä tietyistä seikoista, kuten mitkä koneet ovat tällä hetkellä klusterin jäseniä, missä palvelut toimivat ja mitkä koneet käyttävät mitäkin resursseja.

Red Hat High Availability-lisäosassa tämä toteutetaan enemmistövaalijärjestelmän avulla. Jokainen klusterisolmu antaa yhden äänen, jos se liittyy onnistuneesti corosync – verkon viestintään ja pystyy kommunikoimaan muiden klusteriin jo osallistuvien solmujen kanssa.

klusteri on toiminnassa, jos yli puolet kaikista mahdollisista äänistä onnistuu. Päätösvaltaiseksi jäsenmääräksi kutsutaan vähimmäisäänimäärää,joka tarvitaan yli puoleen äänistä. Jos päätösvaltaisuus saavutetaan, klusiili katsotaan päätösvaltaiseksi. Klusteri menettää päätösvaltaisuuden, jos puolet tai useampi solmuista ei pysty kommunikoimaan keskenään.

kun klusteri saa alkunsa, kaikki klusterin solmut yrittävät kommunikoida keskenään ja pyrkivät saavuttamaan päätösvaltaisuuden. Heti kun enemmistö on muodostettu, on quorate klusteri. Kaikki muut solmut, jotka eivät ole liittyneet onnistuneesti quorate-klusteriin, saavat aidatun solmun, jolla on quorum. Jos quorate-klusteriin kuuluva solmu ei pysty enää kommunikoimaan klusterin kanssa, solmu aidataan.

miksi päätösvaltaisuuslaskenta vaaditaan?

päätösvaltaisuus on tarpeen tilanteissa, joissa jotkut klusterin solmut eivät pysty kommunikoimaan tiettyjen muiden solmujen kanssa. Seuraavassa kuvassa on viiden solmun klusteri, joka koostuu solmuista A, B, c, D ja E, joiden palvelu käyttää ext4-tiedostojärjestelmää jaetussa tallennustilassa. Tämä palvelu on tällä hetkellä käynnissä solmussa A.

solmut D ja Eget erkaantuvat yksityisestä pääverkosta eivätkä voi kommunikoida solmujen A, B ja c kanssa. ilman päätösvaltaisuutta nämä kaksi solmua päättävät, että A, B ja C ovat kaikki epäonnistuneet ja ne on aidattava (etävirroitettu), jotta niiden resurssit voidaan palauttaa. Näin päätösvaltaisuus toimii tärkeänä porttina ennen aitaamista.

jos klusteri olisi ilman aitauslaitetta, solmut D ja E alkaisivat heti kerätä resursseja, jolloin sama ext4-tiedostojärjestelmä asennettaisiin kahteen paikkaan yhtä aikaa, mikä ei ole terve tilanne. Tätä tilannetta, jossa klusterin kaksi puoliskoa toimivat toisistaan riippumatta, kutsutaan kahtiajakautuneeksi aivoksi.

Split-brain on erityinen huolenaihe kahden solmun klustereissa, sillä jos jompikumpi solmu epäonnistuu, toinen solmu ei koostu valtaosasta klusterin solmuista. On ryhdyttävä erityistoimiin, jotta kahden solmun klusteritoiminta olisi mahdollista ja silti vältyttäisiin halkaistuilta aivoilta.”

olettaen, että tässä esimerkissä kaikilla solmuilla on yksi ääni, tämä tilanne ei voi syntyä, koska solmulla D ja solmulla E on vain kaksi ääntä yhdessä, mikä on enintään puolet kokonaisäänistä (viisi). Tämä johtaisi siihen, että solmu D ja solmu E lakkaisivat toimimasta, kunnes vähintään yksi ääni olisi lisätty. Solmut A, B ja c sen sijaan ovat edelleen aktiivisia palveluja tarjoavia, sillä niillä on yhteensä kolme ääntä, mikä on yli puolet kokonaisäänistä.

päätösvaltaisuuden laskeminen

päätösvaltaisuus lasketaan ja hallinnoidaan Red Hat High Availability-lisäosassa corosync-komponentin votequorum avulla. Votequorum-komponentti käyttää kahta arvoa laskettaessa, jos klusiili on quoraatti:

  1. odotetut äänet: odotettavissa oleva äänimäärä, jos kaikki klusterisolmut ovat täysin toimintakykyisiä ja kommunikoivat keskenään.
  2. äänet yhteensä: tämänhetkinen äänimäärä. Tämä voi olla pienempi kuin odotettujen äänten määrä, jos jotkut solmut eivät ole ylhäällä tai eivät kommunikoi klusterin kanssa.

päätösvaltaisuuden saavuttamiseen tarvittava äänimäärä perustuu odotettuihin ääniin. Seuraava kaava osoittaa, kuinka monta ääntä tarvitaan päätösvaltaisuuteen. Tässä laskennassa lattia () tarkoittaa aina pyöristystä alaspäin.

Quorum = floor(expected votes + 2 + 1)

Quorum-laskentaesimerkki

seuraavassa esimerkissä oletetaan klusteri, jossa on kolme solmua. Kolmen solmun rykelmässä on laskettu odotetusti kolme ääntä.

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

kolmen solmun klusterissa on oltava vähintään kaksi solmua käynnissä päätösvaltaisuuden saavuttamiseksi.

seuraavassa esimerkissä oletetaan klusteri, jossa on neljä solmua. Neljän solmun rykelmässä on laskettu odotetusti neljä ääntä.

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

neljän solmun klusterissa on oltava vähintään kolme solmua käynnissä päätösvaltaisuuden saavuttamiseksi.

päätösvaltaisuuden osoittaminen

Red Hat High Availability-lisäosa tarjoaa kattavan työkalun, jolla voidaan näyttää päätösvaltaisuuden nykytila ryppäässä: corosync-quorumtool. Corosync-quorumtool antaa yleiskuvan päätösvaltaisuuteen liittyvistä tiedoista, kuten Kokonaisäänistä ja odotetuista äänistä, ja osoittaa yhdellä silmäyksellä, onko klusteri päätösvaltainen.

  1. Solmumerkintä antaa klusteriin kuuluvien solmujen solmuluvun.
  2. solmun ID-merkintä näyttää sen solmun ID: n, johon corosync-quorumtool suoritettiin.
  3. Quorate-merkintä osoittaa, onko klusiili qurate.
  4. odotetut äänet-merkintä kertoo, kuinka monta ääntä on, jos kaikki määritellyt Klusterin jäsenet ovat aktiivisia klusterissa.
  5. korkein odotettu äänimäärä kertoo klusterissa nähdyistä odotetuista äänistä eniten.
  6. Kokonaisäänimäärässä näkyy klusterissa tällä hetkellä olevien ääntenlaskenta.
  7. Päätösvaltaisuusmerkintä osoittaa, kuinka monta ääntä tarvitaan vähintään, jotta klusteri pysyy päätösvaltaisena.
  8. Liputusmerkintä näyttää kaikki päätösvaltaisuuteen liittyvät ominaisuudet, jotka tällä hetkellä on asetettu klusteriin. Jos klusteri on quorate, niin Quorate omaisuutta näyttää. Tässä kentässä näkyy myös muita erikoisominaisuuksia, kuten Lastmannstand tai WaitForAll.

Vastaa

Sähköpostiosoitettasi ei julkaista.