Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Intshayelelo

Ngexesha elidlulileyo ndandinikwe umsebenzi wokuphuhlisa iqela le-faillover PostgreSQL, esebenza kumaziko amaninzi edatha edityaniswe yi-fiber optical ngaphakathi kwesixeko esinye, kwaye iyakwazi ukumelana nokungaphumeleli (umzekelo, ukucima) kwiziko ledatha enye. Njengesoftware enoxanduva lokunyamezela iimpazamo, ndakhetha pacemakerkuba esi sisisombululo esisemthethweni esivela kwi-RedHat sokudala amaqela e-failover. Kuhle kuba i-RedHat ibonelela ngenkxaso kuyo, kwaye ngenxa yokuba esi sisombululo sisehlabathini lonke (imodyuli). Ngoncedo lwayo, kuya kwenzeka ukuba kuqinisekiswe ukunyamezela impazamo kungekuphela kwe-PostgreSQL, kodwa kunye nezinye iinkonzo, nokuba kusetyenziswe iimodyuli eziqhelekileyo okanye ukuzidala kwiimfuno ezithile.

Esi sigqibo siphakamise umbuzo onengqiqo: ingaba i-failover cluster iya kunyamezela njani impazamo? Ukuphanda oku, ndiye ndaphuhlisa ibhentshi yovavanyo elinganisa ukusilela okwahlukeneyo kwiindawo zeqela, ilindele ukuba inkonzo ibuyiselwe, ibuyise indawo engaphumeleliyo, kwaye iqhubeke novavanyo kwilophu. Le projekthi ekuqaleni yayibizwa ngokuba yi-hapgsql, kodwa ekuhambeni kwexesha ndiye ndadikwa ligama, elalinesikhamiso esinye kuphela. Ke ngoko, ndaqala ukubiza ugcino-lwazi olunyamezela impazamo (kunye ne-IP edadayo ekhomba kubo) ikrogan (umlinganiswa ovela kumdlalo wekhompyuter apho onke amalungu abalulekileyo aphindwaphindwa), kunye neendawo, amaqela kunye neprojekthi ngokwayo. tuchanka (iplanethi apho ii-krogans zihlala khona).

Ngoku abaphathi baye bavuma vula iprojekthi kuluntu oluvulelekileyo phantsi kwelayisenisi yeMIT. I-README kungekudala iza kuguqulelwa kwisiNgesi (kuba kulindeleke ukuba abathengi abakhulu baya kuba ngabaphuhlisi be-Pacemaker kunye ne-PostgreSQL), kwaye ndagqiba ekubeni ndibonise inguqulo yakudala yesiRashiya ye-README (inxalenye) ngendlela yeli nqaku.

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Amaqela asasazwa koomatshini benyani VirtualBox. Itotali ye-12 yoomatshini benyani (i-36GiB iyonke) iya kuthunyelwa, eyenza i-4 ye-fault-tolerant clusters (iinketho ezahlukeneyo). Amaqela amabini okuqala aquka iiseva ezimbini zePostgreSQL, ezikumaziko ahlukeneyo edatha, kunye neseva eqhelekileyo. ubungqina c isixhobo ikhoram (ibanjwe kumatshini onexabiso eliphantsi kwiziko ledatha lesithathu), osombulula ukungaqiniseki 50% / 50%, ukunika ivoti yakho kwelinye lamaqela. Iqela lesithathu kumaziko amathathu edatha: inkosi enye, amakhoboka amabini, hayi isixhobo ikhoram. Iqela lesine lineeseva ezine zePostgreSQL, ezimbini kwiziko ledatha nganye: inkosi enye, ezinye iireplicas, kwaye ikwasebenzisa. ubungqina c isixhobo ikhoram. Owesine unokumelana nokungaphumeleli kweeseva ezimbini okanye iziko ledatha enye. Esi sisombululo sinokulinganiswa kwinani elikhulu leekopi ukuba kuyimfuneko.

Inkonzo yexesha elichanekileyo ntpd iphinde yaqwalaselwe ukunyamezela iimpazamo, kodwa isebenzisa indlela ngokwayo ntpd (imo yenkedama). Iseva ekwabelwana ngayo ubungqina isebenza njengomncedisi we NTP esembindini, isasaza ixesha layo kuwo onke amaqela, ngaloo ndlela idibanisa zonke iiseva enye kwenye. Ukuba ubungqina iyasilela okanye iba yeyodwa, ngoko omnye wabancedisi beqela (ngaphakathi kweqela) izakuqala ukuhambisa ixesha layo. I-caching encedisayo Ummeli weHTTP nayo iphakanyiselwe ubungqina, ngoncedo lwayo, abanye oomatshini benyani banokufikelela kwi-Yum yokugcina. Ngokwenyani, iinkonzo ezinje ngexesha elichanekileyo kunye neeproxies ziya kubanjwa kakhulu kwiiseva ezinikezelweyo, kodwa kwidokodo zibanjelwa kuyo. ubungqina ukugcina kuphela inani loomatshini kunye nendawo.

Iintetho

v0. Isebenza neCentOS 7 kunye nePostgreSQL 11 kwiVirtualBox 6.1.

Ubume beqela

Onke amaqela enzelwe ukuba abekwe kumaziko edatha amaninzi, adityaniswe kwinethiwekhi enye yeflethi kwaye kufuneka amelane nokungaphumeleli okanye ukuhlukaniswa kwenethiwekhi kwiziko ledatha enye. Kunjalo ngoba akunakwenzeka setyenziselwa ukukhusela ukwahlukana kwengqondo iteknoloji yePacemaker eqhelekileyo ebizwa USTONITH (Dubula Enye Node entlokweni) okanye ucingo. Ukubaluleka kwayo: ukuba i-nodes kwi-cluster iqala ukukrokrela ukuba kukho into engalunganga ngenye i-node, ayiphenduli okanye iziphatha ngendlela engafanelekanga, ngoko bayicima ngenkani ngokusebenzisa izixhobo "zangaphandle", umzekelo, i-IPMI okanye ikhadi lokulawula le-UPS. . Kodwa oku kuya kusebenza kuphela kwiimeko apho, xa kwenzeka ukungaphumeleli okukodwa, i-IPMI okanye iseva ye-UPS iyaqhubeka nokusebenza. Apha siceba ukukhusela ngokuchasene nokungaphumeleli okuyingozi kakhulu, xa yonke indawo yedatha ingaphumeleli (umzekelo, ilahlekelwa amandla). Kwaye ngokwala okunjalo, yonke into ilitye-izixhobo (IPMI, UPS, njl.) nazo aziyi kusebenza.

Endaweni yoko, inkqubo isekwe kumbono wequorum. Zonke iindawo zinelizwi, kwaye kuphela ezo zikwazi ukubona ngaphezu kwesiqingatha sazo zonke iindawo ezinokusebenza. Eli nani lika "isiqingatha + 1" libizwa ikhoram. Ukuba i-quorum ayifinyelelwanga, ngoko i-node ithatha isigqibo sokuba i-intanethi yodwa kwaye kufuneka icime izibonelelo zayo, oko kukuthi. yilento iyiyo ukukhuselwa kwengqondo. Ukuba isofthiwe ejongene nalo kuziphatha ayisebenzi, ngoko umlindi, umzekelo, ngokusekelwe kwi-IPMI, kuya kufuneka asebenze.

Ukuba inani lee-nodes lilingana (iqela kumaziko amabini edatha), oko kubizwa ngokuba kukungaqiniseki kunokuvela. 50% / 50% (amashumi amahlanu anamashumi amahlanu) xa ukwahlulwa komsebenzi womnatha kusahlula iqela kanye ngesiqingatha. Ke ngoko, kwinani elilinganayo leenodi, songeza isixhobo ikhoram yidaemon engafunwayo enokundululwa kumatshini onexabiso eliphantsi kwiziko ledatha lesithathu. Unika ivoti yakhe kwelinye lamacandelo (awabonayo), kwaye ngaloo ndlela isombulula i-50% / 50% yokungaqiniseki. Ndibize iseva apho isixhobo sekhoram sizakusungulwa ubungqina (isigama esivela kwi-repmgr, ndiyithandile).

Izixhobo ziyakwazi ukuhanjiswa ukusuka kwindawo ukuya kwindawo, umzekelo, ukusuka kwiiseva eziphosakeleyo ukuya kweziphilileyo, okanye ngokomyalelo wabalawuli benkqubo. Ukuze abathengi bazi apho izibonelelo abazifunayo zibekwe phi (ukunxibelelana phi?), edadayo IP (dada IP). Ezi zi-IP ezinokuthi i-Pacemaker ihambe ngeenxa zonke kwii-nodes (yonke into ikwi-flat network). Ngamnye wabo ufuzisela isibonelelo (inkonzo) kwaye uya kufumaneka apho kufuneka udibanise khona ukuze ufumane ukufikelela kule nkonzo (kwimeko yethu, i-database).

I-Tuchanka1 (i-circuit ene-compaction)

ulwakhiwo

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Ingcamango yayiyeyokuba sinamaziko amaninzi amancinci anomthwalo ophantsi, okungenanzuzo ukugcina umncedisi wekhoboka ozinikeleyo kwimowudi yokulinda eshushu yokufundwa kweentengiselwano kuphela (akukho mfuneko yenkcitho enjalo yemithombo).

Iziko ngalinye ledatha linomncedisi omnye. Umncedisi ngamnye uneemeko ezimbini ze-PostgreSQL (kwigama le-PostgreSQL zibizwa ngokuba ngamaqela, kodwa ukuphepha ukudideka ndiya kubabiza ngokuba yimizekelo (ngokufanisa nezinye iindawo zolwazi), kwaye ndiya kubiza kuphela amaqela e-Pacemaker amaqoqo). Umzekelo omnye usebenza kwimowudi eyinkosi, kwaye kuphela ibonelela ngeenkonzo (i-IP ye-float kuphela ekhokelela kuyo). Imeko yesibini isebenza njengekhoboka kwiziko ledatha yesibini, kwaye iya kubonelela ngeenkonzo kuphela ukuba inkosi yayo iyasilela. Ekubeni ixesha elininzi kuphela umzekelo omnye kwababini (inkosi) iya kubonelela ngeenkonzo (yenza izicelo), zonke izixhobo zeseva zilungiselelwe inkosi (imemori yabelwe i-sharet_buffers cache, njl.), kodwa ukuze umzekelo wesibini ikwanazo nezibonelelo ezaneleyo (nangona zisebenza ngaphantsi kwenkqubo yefayile efihliweyo) kwimeko yokusilela kwelinye lamaziko edatha. Ikhoboka aliboneleli ngeenkonzo (ayenzi izicelo zokufunda kuphela) ngexesha lokusebenza ngokuqhelekileyo kweqela, ukuze kungabikho imfazwe yezibonelelo kunye nenkosi kumatshini ofanayo.

Kwimeko yeenodi ezimbini, ukunyamezela iimpazamo kunokwenzeka kuphela ngokuphindaphinda okungafaniyo, kuba ngokuphindaphinda okuhambelanayo, ukusilela kwekhoboka kuya kukhokelela ekumisweni kwenkosi.

Ukusilela ukunikela ubungqina

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Ukusilela ukunika ubungqina (isixhobo ikhoram) Ndiza kuqwalasela kuphela i-cluster ye-Tuchanka1, kunye nabo bonke abanye baya kuba libali elifanayo. Ukuba ubungqina buhluleka, akukho nto iya kutshintsha kwisakhiwo se-cluster, yonke into iya kuqhubeka isebenza ngendlela efanayo. Kodwa ikhoram iya kuba sisi-2 kwisi-3, kwaye ke ngoko nakuphi na ukungaphumeleli okulandelayo kuya kuba yingozi kwiqela. Kusaza kufuneka kulungiswe ngokukhawuleza.

Tuchanka1 ukwala

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Ukungaphumeleli kwelinye lamaziko edatha yeTuchanka1. Kule meko ubungqina iphosa ivoti yayo kwindawo yesibini kwiziko ledatha yesibini. Apho, ikhoboka langaphambili lijika libe yinkosi, ngenxa yoko, zombini iinkosi zisebenza kwiseva efanayo kwaye zombini ii-IPs zabo ezidadayo zikhomba kubo.

Tuchanka2 (yakudala)

ulwakhiwo

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Iskimu seClassic samanqaku amabini. Inkosi isebenza kwenye, ikhoboka kwenye. Bobabini bangenza izicelo (ikhoboka lifundwa kuphela), ngoko zombini zikhonjwe yi-IP edadayo: ikrogan2 yinkosi, ikrogan2s1 likhoboka. Bobabini inkosi kunye nekhoboka baya kunyamezelwa ngamaphutha.

Kwimeko yeenodi ezimbini, ukunyamezelana kwesiphoso kunokwenzeka kuphela ngokuphindaphinda kwe-asynchronous, kuba ngokuphindaphinda okuhambelanayo, ukusilela kwekhoboka kuya kukhokelela ekumisweni kwenkosi.

Tuchanka2 ukwala

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Ukuba elinye lamaziko edatha liyasilela ubungqina iivoti zesibini. Kwiziko ledatha elisebenzayo kuphela, inkosi iya kuphakanyiswa, kwaye zombini i-IPs edadayo iya kukhomba kuyo: inkosi kunye nekhoboka. Ewe, umzekelo kufuneka uqwalaselwe ngendlela yokuba unemithombo eyaneleyo (imida yoqhagamshelo, njl.njl.) ukwamkela ngaxeshanye lonke uqhagamshelo kunye nezicelo ezivela kwi-master kunye ne-slave float IP. Okokuthi, ngexesha lokusebenza okuqhelekileyo kufuneka kube nokunikezelwa okwaneleyo kwemida.

Tuchanka4 (amakhoboka amaninzi)

ulwakhiwo

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Sele enye into egqithisileyo. Kukho i-database efumana izicelo ezininzi zokufunda kuphela (imeko eqhelekileyo yendawo yomthwalo ophezulu). I-Tuchanka4 yimeko apho kunokuba khona amakhoboka amathathu okanye ngaphezulu ukusingatha izicelo ezinjalo, kodwa angabi baninzi kakhulu. Ngenani elikhulu kakhulu lamakhoboka, kuya kuba yimfuneko ukuyila inkqubo yokuphindaphinda ngokwemigangatho. Kwimeko encinci (kumfanekiso), ngalinye kumaziko edatha amabini aneeseva ezimbini, nganye inomzekelo wePostgreSQL.

Olunye uphawu lwesi sikimu kukuba sele inokwenzeka ukucwangcisa uphindaphindo olunye lwe-synchronous. Ilungiselelwe ukuphindaphinda, ukuba kunokwenzeka, kwelinye iziko ledatha, kunokuba i-replica kwiziko ledatha elifanayo njengenkosi. Inkosi kunye nekhoboka ngalinye balathwa nge-IP edadayo. Ngethamsanqa, phakathi kwamakhoboka kuya kufuneka ukulinganisa izicelo ngandlela thile sql proxy, umzekelo, kwicala lomxhasi. Iindidi ezahlukeneyo zabathengi zinokufuna iindidi ezahlukeneyo sql proxy, kwaye ngabaphuhlisi kuphela abaxhamli abaziyo ukuba ngubani ofuna yeyiphi. Lo msebenzi ungaphunyezwa nokuba yi-daemon yangaphandle okanye ngethala leencwadi lomxumi (iphuli yoqhagamshelo), njl. Konke oku kuya ngaphaya kwesihloko seqela ledatha ye-failover (failover Ummeli weSQL inokuphunyezwa ngokuzimeleyo, kunye nokunyamezelana kwempazamo yabaxhasi).

Tuchanka4 ukwala

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Ukuba enye isikhungo sedatha (oko kukuthi, amaseva amabini) ayiphumelelanga, ingqina livotela okwesibini. Ngenxa yoko, kukho iiseva ezimbini ezisebenza kwiziko ledatha yesibini: enye iqhuba i-master, kwaye i-master float IP points kuyo (ukufumana izicelo zokufunda-bhala); kwaye kwiseva yesibini kukho ikhoboka elisebenza ngokuphindaphinda okuhambelanayo, kwaye enye ye-IPs ye-float yekhoboka ikhomba kuyo (ngezicelo zokufunda kuphela).

Into yokuqala ekufuneka uyiqaphele kukuba ayizizo zonke ii-IP ze-float float ziya kuba ngabasebenzi, kodwa mnye kuphela. Kwaye ukusebenza nayo ngokuchanekileyo kuya kufuneka ukuba sql proxy iqondise ngokutsha zonke izicelo kwi-IP eseleyo yefloat; kwaye ukuba sql proxy hayi, ngoko ungadwelisa onke amakhoboka e-IP adadayo ahlulwe ngeekoma kunxibelelwano lwe-URL. Kule meko, nge libpq uxhulumaniso luya kuba kwi-IP yokuqala yokusebenza, oku kwenziwa kwinkqubo yokuvavanya ngokuzenzekelayo. Mhlawumbi kwamanye amathala eencwadi, umzekelo, i-JDBC, oku akuyi kusebenza kwaye kuyimfuneko sql proxy. Oku kwenziwa kuba ii-IPs ezidadayo zamakhoboka azivumelekanga ukuba ziphakanyiswe ngaxeshanye kumncedisi omnye, ukuze zisasazwe ngokulinganayo phakathi kwabancedisi bekhoboka ukuba kukho abaliqela abasebenzayo.

Okwesibini: nakwimeko yokungaphumeleli kweziko ledatha, ukuphindaphinda kwe-synchronous kuya kugcinwa. Kwaye nokuba ukusilela okwesibini kuyenzeka, oko kukuthi, enye yeeseva ezimbini kwiziko ledatha eseleyo ayiphumelelanga, iqela, nangona liya kuyeka ukubonelela ngeenkonzo, liya kugcina ulwazi malunga nazo zonke iintengiselwano ezizibophelele ezinike ubungqina bokuzinikela. (akuyi kubakho lwazi lwelahleko kwimeko yokungaphumeleli kwesibini).

Tuchanka3 (3 amaziko edatha)

ulwakhiwo

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Eli liqela lemeko apho kukho amaziko amathathu edatha asebenza ngokupheleleyo, ngalinye lineseva yedatha esebenza ngokupheleleyo. Kule meko isixhobo ikhoram ayidingeki. Elinye iziko ledatha lisebenza yinkosi, ezinye ezimbini zisebenza ngamakhoboka. Ukuphindaphinda ku-synchronous, chwetheza NAPHI (ikhoboka1, ikhoboka2), oko kukuthi, umxhasi uya kufumana isiqinisekiso sokuzibophelela xa nawaphi na amakhoboka engowokuqala ukuphendula ukuba uyamkele isithembiso. Izibonelelo ziboniswa yi-IP enye ye-float yenkosi kunye nezibini zamakhoboka. Ngokungafaniyo neTuchanka4, zontathu ii-IPs ezidadayo ziyakwazi ukunyamezela iimpazamo. Ukulinganisa imibuzo yokufunda kuphela yeSQL ongayisebenzisa sql proxy (ngokunyamezela impazamo eyahlukileyo), okanye yabela enye i-IP ye-float yekhoboka kwisiqingatha sabaxumi, kunye nesiqingatha sesibini.

Tuchanka3 ukwala

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

Ukuba elinye lamaziko edatha aliphumeleli, ezimbini zihlala. Kwenye, inkosi kunye ne-IP edadayo evela kwinkosi iphakanyiswa, okwesibini - ikhoboka kunye nee-IPs zombini zekhoboka (umzekelo kufuneka ube nogcino oluphindwe kabini lwezibonelelo ukuze wamkele lonke unxibelelwano oluvela kuzo zombini ii-IPs ze-slave float). Ukuphindaphinda okuhambelanayo phakathi kweenkosi kunye namakhoboka. Kwakhona, i-cluster iya kugcina ulwazi malunga nokuthengiselana okuzibolileyo kunye nokuqinisekiswa (akuyi kuba nokulahlekelwa kolwazi) xa kwenzeka ukutshatyalaliswa kwamaziko amabini edatha (ukuba awachithwanga ngaxeshanye).

Ndagqiba ekubeni ndingabandakanyi inkcazo ecacileyo yesakhiwo sefayile kunye nokuthunyelwa. Nabani na ofuna ukudlala apha angayifunda yonke kwi-FUNDA. Ndinikezela ngenkcazo yovavanyo oluzenzekelayo.

Inkqubo yovavanyo oluzenzekelayo

Ukuvavanya ukunyamezela kwempazamo yamaqela ngokufanisa iimpazamo ezahlukeneyo, inkqubo yokuvavanya ngokuzenzekelayo yenziwe. Yaziswa ngombhalo test/failure. Umbhalo unokuthatha njengeeparamitha amanani eqela ofuna ukuwavavanya. Umzekelo lo myalelo:

test/failure 2 3

iya kuvavanya kuphela iqela lesibini nelesithathu. Ukuba iiparamitha azichazwanga, ke onke amaqela aya kuvavanywa. Onke amaqela avavanywa ngokuhambelanayo, kwaye isiphumo siboniswa kwiqela lenjongo ye-tmux. I-Tmux isebenzisa umncedisi we-tmux ozinikeleyo, ngoko ke iskripthi sinokuqhutywa ukusuka phantsi kwe-tmux engagqibekanga, ikhokelela kwindlwane ye-tmux. Ndincoma ukusebenzisa i-terminal kwifestile enkulu kunye nefonti encinci. Phambi kokuba uvavanyo luqale, bonke oomatshini bokwenyani baqengqeleka babuyela kwi-snapshot ngexesha iscript sigqiba. setup.

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

I-terminal yahlulwe ngokweekholamu ngokwenani lamaqela avavanywayo; ngokungagqibekanga (kumfanekiso wekhusi) kukho ezine. Ndiza kuchaza imixholo yeekholomu usebenzisa umzekelo weTuchanka2. Iiphaneli ezikumfanekiso wekhusi zibaliwe:

  1. Izibalo zovavanyo ziboniswa apha. Imihlathi:
    • ukuhluleka - igama lovavanyo (umsebenzi kwiskripthi) oxelisa impazamo.
    • asabela - ixesha eliphakathi kwe-arithmetic kwimizuzwana apho iqela lifumene ukusebenza kwalo. Ilinganiswa ukususela ekuqaleni kweskripthi esilinganisa isiphoso kude kube ngumzuzu apho i-cluster ibuyisela ukusebenza kwayo kwaye iyakwazi ukuqhubeka nokubonelela ngeenkonzo. Ukuba ixesha lifutshane kakhulu, umzekelo, imizuzwana emithandathu (oku kwenzeka kumaqela kunye namakhoboka amaninzi (Tuchanka3 kunye neTuchanka4)), oku kuthetha ukuba iphoso lalikho kwikhoboka le-asynchronous kwaye alizange lichaphazele ukusebenza nangayiphi na indlela; kwakungekho. iiswitshi zelizwe leqela.
    • Ukuphambuka - ibonisa ukusasazeka (ukuchaneka) kwexabiso asabela usebenzisa indlela eqhelekileyo yokutenxa.
    • ukubala β€” lwenziwe amatyeli amangaphi olu vavanyo.
  2. Ilog emfutshane ikuvumela ukuba uvavanye into eyenziwa liqela ngoku. Inombolo yophindaphindo (uvavanyo), isitampu sexesha kunye negama lomsebenzi ziyaboniswa. Ukubaleka ixesha elide (> 5 imizuzu) kubonisa ingxaki.
  3. intliziyo (intliziyo) - ixesha langoku. Kuvavanyo olubonakalayo lomsebenzi iinkosi Ixesha langoku lihlala libhalwa kwitafile yalo usebenzisa i-float IP master. Ukuba kuphumelele, isiphumo siboniswa kule ndawo yolawulo.
  4. Ukubetha (i-pulse) - "ixesha langoku", elalibhalwe ngaphambili ngumbhalo intliziyo ukuqonda, ngoku funda ukusuka ikhoboka nge-IP yayo edadayo. Ikuvumela ukuba uvavanye ngokubonakalayo ukusebenza kwekhoboka kunye nokuphindaphinda. Kwi-Tuchanka1 akukho makhoboka ane-float IP (akukho makhoboka anikezela ngeenkonzo), kodwa kukho iimeko ezimbini (DBs), ngoko ayiyi kuboniswa apha. Ukubetha, kwaye intliziyo umzekelo wesibini.
  5. Ukubeka iliso kwimpilo yeqela kusetyenziswa into eluncedo pcs mon. Ubonisa ubume, ukusasazwa kwezibonelelo kuzo zonke iindawo kunye nolunye ulwazi oluluncedo.
  6. Uqwalaselo lwenkqubo ukusuka kumatshini ngamnye onenyani kwiqela liboniswa apha. Kusenokubakho iiphaneli ezinje ngokuxhomekeke ekubeni bangaphi oomatshini abanenyani iqela elinabo. Iigrafu ezimbini CPU Umthwalo (oomatshini bokwenene baneprosesa ezimbini), igama lomatshini wenyani, Umthwalo weNkqubo (ebizwa ngokuba yi-Avareji yoMyinge ngenxa yokuba i-avareji ngaphezu kwe-5, 10 kunye ne-15 imizuzu), cwangcisa idatha kunye nolwabiwo lwememori.
  7. Umkhondo wovavanyo lwescript. Kwimeko yokungasebenzi kakuhle - ukuphazamiseka ngokukhawuleza kokusebenza okanye umjikelezo wokulinda ongapheliyo - apha unokubona isizathu sokuziphatha.

Uvavanyo lwenziwa kwizigaba ezibini. Okokuqala, iskripthi sihamba kuzo zonke iintlobo zovavanyo, ngokukhetha ngokungenamkhethe umatshini wenyani oza kusebenzisa kuwo olu vavanyo. Emva koko umjikelo ongapheliyo wokuvavanya uyenziwa, oomatshini bokwenene kunye nephutha bakhethwa ngokungaqhelekanga ngexesha ngalinye. Ukupheliswa ngokukhawuleza kweskripthi sokuvavanya (iphaneli esezantsi) okanye i-loop engapheliyo yokulinda into ethile (> Imizuzu emi-5 yexesha lokwenziwa komsebenzi omnye, oku kunokubonwa kumkhondo) kubonisa ukuba ezinye iimvavanyo kweli qela aziphumelelanga.

Uvavanyo ngalunye lunemisebenzi elandelayo:

  1. Qalisa umsebenzi olinganisa isiphene.
  2. Ndikulungele? β€” ulinde ukuba iqela libuyiselwe (xa zonke iinkonzo zinikezelwe).
  3. Ibonisa ixesha lokuphuma kweqela (asabela).
  4. Hlela - iqela "liyalungiswa." Emva koko kufuneka ibuyele kwisimo sokusebenza ngokupheleleyo kwaye ilungele ukungasebenzi kakuhle okulandelayo.

Nalu uluhlu lovavanyo olunenkcazo yoko bakwenzayo:

  • ForkBomb: Yenza "Ngaphandle kwenkumbulo" usebenzisa ibhombu yefolokhwe.
  • OutOfSpace: I-hard drive igcwele. Kodwa uvavanyo lunomfuziselo; ngomthwalo ongabalulekanga owenziwe ngexesha lovavanyo, i-PostgreSQL ayisoloko isilela xa i-hard drive igcwele.
  • Postgres-BULALA: ibulala iPostgreSQL ngomyalelo killall -KILL postgres.
  • I-Postgres-YIMA: ixhoma umyalelo wePostgreSQL killall -STOP postgres.
  • Umbane ucimile: "ukhupha amandla" kumatshini wenyani ngomyalelo VBoxManage controlvm "Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°" poweroff.
  • Cwangcisa kwakhona: ilayisha ngaphezulu umatshini wenyani ngomyalelo VBoxManage controlvm "Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°" reset.
  • SBD-YIMA: imisa idemon ye-SBD ngomyalelo killall -STOP sbd.
  • Cima: ithumela umyalelo kumatshini wenyani nge-SSH systemctl poweroff, inkqubo icima kakuhle.
  • Susa ikhonkco: ukuhlukaniswa kwenethiwekhi, umyalelo VBoxManage controlvm "Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°" setlinkstate1 off.

Ukugqibezela uvavanyo nokuba usebenzisa i-tmux eqhelekileyo umyalelo "kill-window" Ctrl-b &, okanye umyalelo othi "detach-client". Ctrl-b d: ngeli xesha uvavanyo luyaphela, i-tmux iyavala, oomatshini bokwenyani bacinyiwe.

Iingxaki ezichongiweyo ngexesha lovavanyo

  • Ngalo mzuzu umlindi wedemon sbd isebenza ekuyekeni iidaemoni ezijongiweyo, kodwa ingazibandisi. Kwaye, ngenxa yoko, iimpazamo ezikhokelela ekukhenkceni kuphela Corosync ΠΈ pacemaker, kodwa hayi ukuxhoma sbd... Ukuze itshekhi Corosync sele ikhona PR#83 (kwiGitHub kwi sbd), yamkelwe kumsonto inkosi. Bathembisa (kwi-PR#83) ukuba kuya kubakho into efanayo kwiPacemaker, ndiyathemba ukuba ngo I-RedHat 8 ndiza kwenza njalo. Kodwa "ukungasebenzi kakuhle" okunjalo kuyaqikelelwa kwaye kunokulinganisa ngokulula ngokusetyenziswa, umzekelo, killall -STOP corosync, kodwa ungaze udibane ebomini bokwenyani.

  • Π£ pacemaker kuguqulelo lwe CentOS 7 iseti engalunganga sync_timeout Ρƒ isixhobo ikhoram, nje ngeziphumo ukuba enye nodi ayiphumelelanga, ngokunokwenzeka indawo yesibini iphinde iqale kwakhona, apho inkosi yayifanele ifudukele khona. Unyangwa ngokwandiswa sync_timeout Ρƒ isixhobo ikhoram ngexesha lokusasazwa (kwiskripthi setup/setup1). Olu lungiso aluzange lwamkelwe ngabaphuhlisi pacemaker, endaweni yoko bathembisa ukuyila ngokutsha iziseko zoncedo ngendlela (kwixesha elizayo elingachazwanga) ukuze eli xesha lokuphela lingabalwe ngokuzenzekelayo.

  • Ukuba uqwalaselo lwesiseko sedatha luchaza oko LC_MESSAGES (imiyalezo ebhaliweyo) I-Unicode ingasetyenziswa, umz. ru_RU.UTF-8, emva koko ekuqaleni postgres kwindawo apho ingingqi ingekho i-UTF-8, yithi kwindawo engenanto (apha isincedisintliziyo+pgsqlms(paf) iyabaleka postgres), emva koko ilog iya kuba namanqaku emibuzo endaweni yoonobumba be-UTF-8. Abaphuhlisi bePostgreSQL abavumanga malunga nokuba benze ntoni kule meko. Kuyabiza, kufuneka uyifake LC_MESSAGES=en_US.UTF-8 xa uqwalasela (uyenza) umzekelo wesiseko sedatha.

  • Ukuba i-wal_receiver_timeout iseti (ngokungagqibekanga yi-60s), ngoko ngexesha lovavanyo lwe-PostgreSQL-STOP kwinkosi kwi-tuchanka3 kunye ne-tuchanka4 amaqela. uphindaphindo aludibanisi kwakhona kwinkosi entsha. Ukuphindaphinda kukho ulungelelwaniso, ke ayisiyiyo kuphela ikhoboka eliyekayo, kodwa nenkosi entsha. Isebenza ngeenxa zonke ngokuseta wal_receiver_timeout=0 xa uqwalasela iPostgreSQL.

  • Ngamanye amaxesha ndibone ukuphindaphinda kukhenkceza kwi-PostgreSQL kuvavanyo lwe-ForkBomb (ukuphuphuma kwememori). Emva kweForkBomb, ngamanye amaxesha amakhoboka akanakuphinda aqhagamshele kwinkosi entsha. Ndidibene nale nto kuphela kumaqela e-tuchanka3 kunye ne-tuchanka4, apho inkosi yabanda ngenxa yokuphindaphinda okuhambelanayo. Ingxaki yahamba yodwa emva kwexesha elide (malunga neyure ezimbini). Uphando olongezelelweyo luyafuneka ukulungisa oku. Iimpawu zifana ne-bug yangaphambili, ebangelwa isizathu esahlukileyo, kodwa kunye nemiphumo efanayo.

Krogan umfanekiso othathwe kwi UbuGcisa ngemvume yombhali:

Ukwenza imodeli yamaqela e-failover asekelwe kwi-PostgreSQL kunye ne-Pacemaker

umthombo: www.habr.com

Yongeza izimvo