Cluster vun zwee Wirbelen - den Däiwel ass an den Detailer

Hey Habr! Ech presentéieren Iech d'Iwwersetzung vum Artikel "Zwee Noden - Den Däiwel ass an den Detailer" vum Andrew Beekhof.

Vill Leit léiwer Zwee-Node Cluster well se konzeptuell méi einfach schéngen an och 33% méi bëlleg sinn wéi hir Dräi-Node Géigeparteien. Och wann et ganz méiglech ass e gudde Stärekoup vun zwee Wirbelen zesummenzestellen, an de meeschte Fäll, wéinst onbedéngt Szenarie, wäert esou eng Konfiguratioun vill onsichtbar Probleemer kreéieren.

Den éischte Schrëtt fir all High Disponibilitéit System ze kreéieren ass ze fannen an ze probéieren eenzel Punkte vum Echec ze eliminéieren, dacks verkierzt als SPoF (eenzel Punkt vun Echec).

Et ass derwäert am Kapp ze halen datt et onméiglech ass all méiglech Risiken vun der Ausdauer an all System ze eliminéieren. Dëst staamt aus der Tatsaach datt eng typesch Verteidegung géint Risiko ass eng Redundanz anzeféieren, wat zu enger erhéiter Systemkomplexitéit an dem Entstoe vun neie Punkte vum Versoen féiert. Dofir maache mir am Ufank e Kompromiss a konzentréieren eis op Eventer, déi mat eenzelne Punkte vum Echec assoziéiert sinn, an net op Ketten vu verbonnen an dofir ëmmer méi manner wahrscheinlech Eventer.

Duerch d'Ofdreiwung kucken mir net nëmmen no SPoF, awer och equilibréieren Risiken a Konsequenzen, als Resultat vun deem d'Konklusioun vu wat kritesch ass a wat net fir all Deployment ënnerscheeden kann.

Net jidderee brauch alternativ Stroumliwwerer mat onofhängege Stroumleitungen. Och wann d'Paranoia op d'mannst ee Client bezuelt huet wann hir Iwwerwaachung e defekten Transformator entdeckt huet. De Client huet Telefonsgespréicher gemaach a probéiert d'Energiefirma ze alarméieren bis de defekten Transformator explodéiert ass.

En natierleche Startpunkt ass méi wéi ee Node am System ze hunn. Wéi och ëmmer, ier de System Servicer op den iwwerliewende Node no engem Echec réckelen kann, muss et allgemeng suergen datt d'Servicer déi geplënnert ginn net soss anzwuesch aktiv sinn.

Et gëtt keen Nodeel zu engem Zwee-Node-Cluster wann e Feeler resultéiert datt béid Wirbelen déiselwecht statesch Websäit servéieren. Wéi och ëmmer, d'Saachen änneren wann d'Resultat ass datt béid Parteien onofhängeg eng gemeinsam Aarbechtsschlaang verwalten oder onkoordinéiert Schreifzougang zu enger replizéierter Datebank oder e gemeinsame Dateiesystem ubidden.

Dofir, fir Daten Korruptioun als Resultat vun engem eenzege Node Echec ze verhënneren - mir vertrauen op eppes genannt "dissoziation" (Fechter).

De Prinzip vun der Dissoziatioun

Am Kär vum Dissoziatiounsprinzip ass d'Fro: kann e konkurréiere Node Datekorruptioun verursaachen? Am Fall datt Datekorruptioun e méigleche Szenario ass, wier eng gutt Léisung den Node vu béiden ukommend Ufroen a persistent Späicheren ze isoléieren. Déi meescht üblech Approche fir Disassociatioun ass d'fehlerhaft Noden ze trennen.

Et ginn zwou Kategorien vun Dissoziatiounsmethoden, déi ech nennen direkt и indirekt, mä si kënnen gläich genannt ginn aktiv и passiv. Direkt Methoden enthalen Handlungen op der Säit vun iwwerliewende Peer, sou wéi Interaktioun mat engem IPMI (Intelligent Platform Management Interface) oder iLO (e Mechanismus fir d'Gestioun vun Serveren an der Verontreiung vu kierperlechen Zougang zu hinnen) Apparat, während indirekt Methoden op de gescheitert vertrauen. Node fir iergendwéi ze erkennen datt et an engem ongesonde Staat ass (oder op d'mannst verhënnert datt aner Memberen sech erholen) a signaliséieren Hardware Iwwerwaachung iwwer de Besoin fir de gescheitert Node ze trennen.

Quorum hëlleft wann Dir direkt an indirekt Methode benotzt.

Direkt Dissoziatioun

Am Fall vun direkter Dissoziatioun kënne mir Quorum benotzen fir Dissoziatiounsrennen am Fall vun engem Netzwierkfehler ze verhënneren.

Mat dem Konzept vum Quorum gëtt et genuch Informatioun am System (och ouni mat senge Kollegen ze verbannen) fir Noden automatesch ze wëssen ob se Dissoziatioun an / oder Erhuelung solle initiéieren.

Ouni e Quorum, wäerte béid Säiten vun engem Netzdeel mat Recht unhuelen datt déi aner Säit dout ass a versichen déi aner ze disassociéieren. Am schlëmmste Fall geléngt béid Parteien de ganze Cluster auszeschléissen. En alternativen Szenario ass en Deathmatch, eng endlos Loop vun Noden, déi spawnen, hir Kollegen net gesinn, se nei starten an d'Erhuelung initiéieren nëmme fir nei ze starten wann hir Peer déiselwecht Logik follegt.

De Problem mat der Disassociatioun ass datt déi meescht benotzt Geräter net verfügbar ginn wéinst de selwechte Feelerevenementer déi mir fir d'Erhuelung zielen wëllen. Déi meescht IPMI- an iLO-Kaarten ginn op de Hosten installéiert, déi se kontrolléieren, a benotzen als Standard datselwecht Netz, wat d'Zilhoster bewierkt datt déi aner Hosten offline sinn.

Leider sinn d'Betribsfeatures vun IPMI an iLo Geräter selten am Moment vum Ausrüstungskaaf berücksichtegt.

Indirekt Dissoziatioun

Quorum ass och wichteg fir indirekt Disassociatioun ze managen; wann et richteg gemaach gëtt, kann de Quorum d'Iwwerliewenden erlaben unzehuelen datt verluere Knäppercher an e séchere Staat no enger gewësser Zäit iwwergoen.

Mat dëser Konfiguratioun gëtt den Hardware Watchdog Timer all N Sekonnen zréckgesat wann de Quorum net verluer ass. Wann den Timer (normalerweis e puer Multiple vun N) ofleeft, da mécht den Apparat en onendleche Stroum erof (net ausschalt).

Dës Approche ass ganz effektiv, awer ouni Quorum gëtt et net genuch Informatioun am Cluster fir et ze managen. Et ass net einfach den Ënnerscheed tëscht engem Netzwierkausfall an engem Peer Node Feeler ze soen. De Grond datt dëst wichteg ass ass datt ouni d'Fäegkeet tëscht deenen zwee Fäll ze differenzéieren, sidd Dir forcéiert datselwecht Verhalen a béide Fäll ze wielen.

De Problem mat engem Modus auswielen ass datt et kee Verlaf ass deen d'Disponibilitéit maximéiert an d'Dateverloscht verhënnert.

  • Wann Dir wielt unzehuelen datt e Peer Node aktiv ass, awer tatsächlech feelt, wäert de Cluster onnéideg Servicer stoppen, déi lafen fir de Verloscht vu Servicer aus dem gescheitert Peer Node ze kompenséieren.
  • Wann Dir décidéiert fir unzehuelen datt e Node erof ass, awer et war just e Netzwierkfehler an tatsächlech ass de Fernknot funktionell, da mellt Dir Iech am beschten fir eng zukünfteg manuell Reconciliatioun vun de resultéierende Datesets un.

Egal wéi eng Heuristik Dir benotzt, et ass trivial fir e Versoen ze kreéieren deen entweder béid Säiten versoen oder de Cluster verursaache fir déi iwwerliewend Noden auszeschalten. Net benotzt Quorum entzu wierklech de Stärekoup vun engem vun de mächtegsten Tools a sengem Arsenal.

Wann et keng aner Alternativ gëtt, ass déi bescht Approche d'Disponibilitéit opzeferen (hei bezitt den Auteur op de CAP-Theorem). Héich Disponibilitéit vu korruptéierten Donnéeën hëlleft kengem, a manuell verschidden Datesätz ze versöhnen ass och net lëschteg.

Quorum

Quorum kléngt super, richteg?

Deen eenzegen Nodeel ass datt fir et an engem Stärekoup mat N Memberen ze hunn, musst Dir eng Verbindung tëscht N / 2 + 1 vun Ären Noden hunn. Wat net méiglech ass an engem Zwee-Node-Cluster nodeems ee Node feelt.

Wat eis schlussendlech zum fundamentale Problem mat zwee Wirbelen bréngt:
Quorum mécht kee Sënn an zwee Node Cluster, an ouni et ass et onméiglech de Verlaf vun der Handlung zouverlässeg ze bestëmmen déi d'Disponibilitéit maximéiert an den Dateverloscht verhënnert.
Och an engem System vun zwee Wirbelen, déi duerch e Crossover Kabel verbonne sinn, ass et onméiglech fir definitiv z'ënnerscheeden tëscht engem Netzwierkausfall an engem Ausfall vum aneren Node. Een Enn auszeschalten (d'Wahrscheinlechkeet vun deem ass natierlech proportional zu der Distanz tëscht de Wirbelen) wäert genuch sinn fir all Viraussetzung ze ongëlteg datt d'Gesondheet vum Link gläich ass mat der Gesondheet vum Partnerknuet.

Maachen en zwee-Node Cluster Aarbecht

Heiansdo kann oder wëll de Client net en drëtten Node kafen, a mir si gezwongen no enger Alternativ ze sichen.

Optioun 1 - Duplizéiert Dissoziatiounsmethod

Den iLO- oder IPMI-Apparat vun engem Node stellt e Punkt vum Echec duer, well wann et feelt, kënnen d'Iwwerliewenden et net benotze fir den Node an e séchere Staat ze bréngen. An engem Stärekoup vun 3 oder méi Wirbelen, kënne mir dëst reduzéieren andeems Quorum berechent gëtt an en Hardware Iwwerwaachungshond benotzt (en indirekten Disassociatiounsmechanismus, wéi virdru diskutéiert). Am Fall vun zwee Wirbelen musse mir Netzkraaftverdeelungsunitéiten (PDUs) amplaz benotzen.

No engem Echec probéiert den Iwwerliewenden als éischt de primäre Disassociatiounsapparat ze kontaktéieren (embedded iLO oder IPMI). Wann dëst erfollegräich ass, geet d'Erhuelung weider wéi gewinnt. Nëmme wann den iLO / IPMI Apparat klappt, ass de PDU zougänglech; wann den Zougang erfollegräich ass, kann d'Erhuelung weidergoen.

Gitt sécher d'PDU op engem anere Netzwierk wéi de Clusterverkéier ze placéieren, soss blockéiert en eenzegen Netzfehler den Zougang zu béide Disassociatiounsapparater an blockéiert d'Restauratioun vu Servicer.

Hei kënnt Dir froen - ass d'PDU en eenzege Punkt vum Echec? Op déi d'Äntwert ass, natierlech ass et.

Wann dëse Risiko fir Iech bedeitend ass, sidd Dir net eleng: verbënnt béid Node mat zwee PDUs a sot der Clustering Software fir souwuel ze benotzen wann Dir d'Noden un an ausschalt. De Stärekoup bleift elo aktiv wann eng PDU stierft, an en zweeten Ausfall vun der anerer PDU oder dem IPMI Apparat wäert erfuerderlech sinn fir d'Erhuelung ze blockéieren.

Optioun 2 - En Arbiter derbäisetzen

A verschiddenen Szenarien, wärend déi duplizéiert Disassociatiounsmethod technesch méiglech ass, ass et politesch schwéier. Vill Firme wéi eng Trennung tëscht Administrateuren an Applikatioun Besëtzer ze hunn, a Sécherheet-bewosst Reseau Administrateuren sinn net ëmmer begeeschtert iwwer PDU Zougang Astellunge mat jidderengem ze deelen.

An dësem Fall ass déi recommandéiert Alternativ eng neutral Drëtt Partei ze kreéieren déi d'Quorumberechnung ergänzen kann.

Am Fall vun engem Echec muss en Node fäeg sinn d'Loftwelle vu sengem Peer oder Arbiter ze gesinn fir Servicer ze restauréieren. Den Arbiter enthält och eng Trennungsfunktioun, wa béid Noden den Arbiter kënne gesinn, awer net géigesäiteg gesinn.

Dës Optioun muss a Verbindung mat enger indirekter Disassociatiounsmethod benotzt ginn, sou wéi en Hardware Watchdog Timer, deen konfiguréiert ass fir eng Maschinn ëmzebréngen wann se d'Verbindung mat sengem Peer an Arbiter Node verléiert. Also kann en Iwwerliewenden raisonnabel unhuelen datt säi Peer Node an engem sécheren Zoustand ass nodeems den Hardware Watchdog Timer ofleeft.

De prakteschen Ënnerscheed tëscht engem Arbiter an engem drëtten Node ass datt en Arbiter vill manner Ressourcen erfuerdert fir ze bedreiwen a potenziell méi wéi ee Stärekoup dénge kann.

Optioun 3 - Mënsch Faktor

Déi lescht Approche ass fir d'Iwwerliewenden weider ze lafen wat och ëmmer Servicer déi se scho lafen, awer net nei starten bis entweder de Problem sech selwer geléist (Netzwierk Restauréieren, Node Restart) oder eng Persoun iwwerhëlt d'Verantwortung fir manuell ze bestätegen datt déi aner Säit dout ass.

Bonus Optioun

Hat ech ernimmt Dir kënnt en drëtten Node derbäi?

Zwee Racken

Fir d'Argumentatioun, loosst eis virstellen datt ech Iech vun de Verdéngschter vum drëtten Node iwwerzeegt hunn, elo musse mir déi kierperlech Arrangement vun den Node berücksichtegen. Wann se am selwechte Rack ënnerbruecht sinn (an ugedriwwe ginn), stellt dëst och SPoF aus, an een deen net geléist ka ginn andeems en zweete Rack bäigefüügt gëtt.

Wann dëst iwwerraschend ass, betruecht wat géif geschéien wann e Rack mat zwee Wirbelen gescheitert ass, a wéi den iwwerliewende Node tëscht deem an engem Netzwierkfehler ënnerscheet.

Déi kuerz Äntwert ass datt et net méiglech ass, an erëm këmmere mir eis mat all de Problemer am Zwee-Node Fall. Oder Iwwerliewenden:

  • ignoréiert de Quorum a probéiert falsch d'Restauratioun ze initiéieren wärend Netzwierkausfall (d'Fäegkeet fir Dissoziatioun ze kompletéieren ass eng aner Geschicht an hänkt dovun of ob d'PDU involvéiert ass an ob se Kraaft mat engem vun de Racken deelen), oder
  • respektéiert de Quorum a trennt sech virzäiteg aus wann säi Peer Node fällt

Op alle Fall sinn zwee Racken net besser wéi een, an d'Node mussen entweder onofhängeg Energieversuergung kréien oder iwwer dräi (oder méi, jee nodeem wéivill Noden Dir hutt) verdeelt ginn.

Zwee Daten Zentren

Zu dësem Zäitpunkt kënnen d'Lieser, déi net méi Risiko-avers sinn, d'Katastropherhuelung betruechten. Wat geschitt wann en Asteroid dee selwechte Rechenzentrum trefft mat eisen dräi Wirbelen iwwer dräi verschidde Racken verdeelt? Selbstverständlech Schlecht Saachen, awer ofhängeg vun Äre Bedierfnesser, kann en zweeten Datenzenter derbäi sinn net genuch.

Wann et richteg gemaach gëtt, liwwert den zweeten Datenzenter Iech (a vernünfteg) eng aktuell a konsequent Kopie vun Äre Servicer an hiren Donnéeën. Wéi och ëmmer, wéi an zwee-Node, zwee-Rack Szenarie, gëtt et net genuch Informatioun am System fir maximal Disponibilitéit ze garantéieren a Korruptioun ze vermeiden (oder Datesetdiskrepanzen). Och mat dräi Wirbelen (oder Racken), verdeelt se iwwer nëmmen zwee Rechenzentren, léisst de System net zouverlässeg déi richteg Entscheedung huelen am Fall vun engem (elo vill méi wahrscheinlech) Event datt béid Parteien net kënne kommunizéieren.

Dëst bedeit net datt eng Dual Data Center Léisung ni gëeegent ass. Firmen wëllen dacks datt eng Persoun bewosst ass ier Dir den aussergewéinleche Schrëtt mécht fir an e Backup-Datenzentrum ze plënneren. Denkt just drun datt wann Dir den Ausfall automatiséieren wëllt, braucht Dir entweder en drëtten Datenzenter fir datt de Quorum Sënn mécht (entweder direkt oder duerch en Arbiter), oder Dir fannt e Wee fir déi ganz Daten zouverlässeg auszeschalten Zentrum.

Source: will.com

Setzt e Commentaire