Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Isingeniso

Esikhathini esithile esidlule nganikezwa umsebenzi wokuthuthukisa iqoqo le-failover for I-PostgreSQL, esebenza kuzikhungo zedatha ezimbalwa ezixhunywe i-optical fiber ngaphakathi kwedolobha elilodwa, futhi ekwazi ukumelana nokwehluleka (isibonelo, ukucisha) kwesikhungo sedatha esisodwa. Njengesoftware ebhekele ukubekezelelana kwamaphutha, ngakhetha pacemakerngoba lesi yisixazululo esisemthethweni esivela kwa-RedHat sokudala amaqoqo e-failover. Kuhle ngoba i-RedHat inikeza ukusekelwa kwayo, futhi ngoba lesi sixazululo siyindawo yonke (modular). Ngosizo lwayo, kuzokwazi ukuqinisekisa ukubekezelelana kwamaphutha hhayi kuphela kwe-PostgreSQL, kodwa nezinye izinsizakalo, noma ukusebenzisa amamojula ajwayelekile noma ukuwadala ngezidingo ezithile.

Lesi sinqumo siphakamise umbuzo ophusile: ingabe iqoqo le-failover lizowabekezelela kangakanani amaphutha? Ukuze ngiphenye lokhu, ngithuthukise ibhentshi lokuhlola elilingisa ukwehluleka okuhlukahlukene kumanodi eqoqo, elilinda ukuthi isevisi ibuyiselwe, libuyisele indawo ehlulekile, futhi liqhubeke nokuhlola ku-loop. Le phrojekthi ekuqaleni yayibizwa ngokuthi i-hapgsql, kodwa ngokuhamba kwesikhathi ngathola isithukuthezi ngegama, elalinonkamisa oyedwa kuphela. Ngakho-ke, ngaqala ukubiza isizindalwazi esibekezelela amaphutha (kanye ne-IP entantayo ngiwakhomba) i-krogan (umlingiswa ovela emdlalweni wekhompiyutha lapho zonke izitho ezibalulekile ziphindaphindwa khona), namanodi, amaqoqo kanye nephrojekthi ngokwayo thula (iplanethi lapho ama-krogan ahlala khona).

Manje abaphathi sebevumile vula iphrojekthi emphakathini womthombo ovulekile ngaphansi kwelayisensi ye-MIT. I-README izohunyushelwa ngokushesha esiNgisini (ngoba kulindeleke ukuthi abathengi abakhulu bazoba abathuthukisi be-Pacemaker ne-PostgreSQL), futhi nganquma ukwethula inguqulo yakudala yesiRashiya ye-README (ingxenye) ngendlela yalesi sihloko.

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Amaqoqo asetshenziswa emishinini ebonakalayo VirtualBox. Isamba semishini ebonakalayo eyi-12 (i-36GiB isiyonke) izosetshenziswa, eyenza amaqoqo abekezelela amaphutha angu-4 (izinketho ezihlukene). Amaqoqo amabili okuqala ahlanganisa amaseva amabili e-PostgreSQL, atholakala ezindaweni ezihlukene zedatha, kanye neseva evamile. Fakaza c idivayisi yekhoramu ( isingathwe emshinini oshibhile obonakalayo esikhungweni sedatha sesithathu), esixazulula ukungaqiniseki I-50% / 50%, ukunikeza ivoti lakho kwelinye lamaqembu. Iqoqo lesithathu ezikhungweni zedatha ezintathu: inkosi eyodwa, izigqila ezimbili, cha idivayisi yekhoramu. Iqoqo lesine liqukethe amaseva amane e-PostgreSQL, amabili esikhungweni sedatha ngayinye: inkosi eyodwa, amanye ama-replicas, aphinde asebenzise. Fakaza c idivayisi yekhoramu. Okwesine angakwazi ukumelana nokwehluleka kwamaseva amabili noma isikhungo esisodwa sedatha. Lesi sixazululo singalinganiswa ngenani elikhulu lezifaniso uma kunesidingo.

Isevisi yesikhathi enembile ntpd iphinde yalungiselelwa ukubekezelela amaphutha, kodwa isebenzisa indlela ngokwayo ntpd (imodi yezintandane). Iseva eyabiwe Fakaza isebenza njengeseva emaphakathi ye-NTP, isabalalisa isikhathi sayo kuwo wonke amaqoqo, ngaleyo ndlela ivumelanisa wonke amaseva enye kwenye. Uma Fakaza ihluleka noma ihlukaniswa, bese enye yeziphakeli zeqoqo (ngaphakathi kweqoqo) izoqala ukusabalalisa isikhathi sayo. Ukulondoloza okwesikhashana Ummeleli we-HTTP iphinde iphakanyiswe ku Fakaza, ngosizo lwayo, eminye imishini ebonakalayo inokufinyelela kumakhosombe e-Yum. Eqinisweni, izinsizakalo ezifana nesikhathi esinembile nama-proxies cishe zizosingathwa kumaseva azinikele, kodwa kudokodo asingathwa kulo. Fakaza kuphela ukusindisa inombolo yemishini ebonakalayo nesikhala.

Izindima

v0. Isebenza ne-CentOS 7 kanye ne-PostgreSQL 11 ku-VirtualBox 6.1.

Isakhiwo seqoqo

Wonke amaqoqo aklanyelwe ukuthi abe kuzikhungo zedatha eziningi, ahlanganiswe abe inethiwekhi eyodwa eyisicaba futhi kufanele amelane nokwehluleka noma ukuhlukaniswa kwenethiwekhi kwesikhungo esisodwa sedatha. Yingakho ke akunakwenzeka sebenzisa ukuvikela ngokumelene ukuhlukana-ubuchopho ubuchwepheshe obujwayelekile bePacemaker obubizwa USTONITH (Dubula Enye I-Node Ekhanda) noma ucingo. Ingqikithi yayo: uma ama-node ku-cluster eqala ukusola ukuthi kukhona okungalungile ngenye i-node, ayiphenduli noma iziphatha ngendlela engafanele, bese ivala ngenkani ngokusebenzisa amadivayisi "angaphandle", isibonelo, i-IPMI noma ikhadi lokulawula le-UPS. . Kodwa lokhu kuzosebenza kuphela ezimweni lapho, uma kwenzeka ukwehluleka okukodwa, iseva ye-IPMI noma ye-UPS iqhubeka nokusebenza. Lapha sihlela ukuvikela ekuhlulekeni okuyinhlekelele kakhulu, lapho sonke isikhungo sedatha sihluleka (isibonelo, siphelelwa amandla). Futhi ngokwenqaba okunjalo, konke itshe-amadivayisi (IPMI, UPS, njll.) nawo ngeke asebenze.

Kunalokho, uhlelo lusekelwe embonweni wekhoramu. Wonke ama-node anezwi, futhi yilawo angabona ngaphezu kwengxenye yawo wonke ama-node angasebenza. Leli nani elithi β€œisigamu + 1” libizwa ikhoramu. Uma i-quorum ingafinyelelwanga, khona-ke i-node inquma ukuthi isendaweni yodwa yenethiwekhi futhi kufanele ivale izinsiza zayo, i.e. yilokhu okuyikhona ukuvikela ukuhlukaniswa kobuchopho. Uma isofthiwe enesibopho salokhu kuziphatha ingasebenzi, khona-ke umlindi, isibonelo, ngokusekelwe ku-IPMI, kuzodingeka asebenze.

Uma inani lama-node lilingana (iqoqo elisezindaweni ezimbili zedatha), lokho okubizwa ngokuthi ukungaqiniseki kungase kuvele. I-50% / 50% (amashumi amahlanu nanhlanu) lapho ukuhlukaniswa kwenethiwekhi kuhlukanisa iqoqo ncamashi phakathi. Ngakho-ke, ngenani elilinganayo lama-node, siyengeza idivayisi yekhoramu i-daemon engapheli engase yethulwe emshinini wokubuka oshibhe kakhulu esikhungweni sedatha sesithathu. Unikeza ivoti lakhe kwelinye lamasegimenti (awabonayo), futhi ngaleyo ndlela axazulule ukungaqiniseki okungu-50%/50%. Ngiqambe iseva lapho idivayisi yekhoramu izokwethulwa khona Fakaza (amagama asuka ku-repmgr, ngiyithandile).

Izinsiza zingahanjiswa zisuka kwenye indawo ziye kwenye, ngokwesibonelo, zisuka eziphakelini ezinephutha ziye kwezinempilo, noma ngokuyalelwa ngabaphathi bohlelo. Ukuze amaklayenti azi ukuthi izinsiza azidingayo zitholakala kuphi (lapho azoxhuma khona?), IP entantayo (iflothi IP). Lawa ama-IP iPacemaker engawahambisa ezindaweni ezizungezile (yonke into ikunethiwekhi eyisicaba). Ngamunye wabo ufanekisela insiza (isevisi) futhi izotholakala lapho udinga ukuxhuma khona ukuze uthole ukufinyelela kule sevisi (kithi, i-database).

I-Tuchanka1 (umjikelezo ohlangene)

isakhiwo

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Umqondo wawuwukuthi sinemininingwane eminingi emincane enomthwalo ophansi, okungenanzuzo ukugcina iseva yesigqila esizinikezele kumodi yokulinda eshisayo yokufunda kuphela ukuthengiselana (asikho isidingo sokumosha okunjalo kwezinsiza).

Isikhungo sedatha ngasinye sineseva eyodwa. Iseva ngayinye inezimo ezimbili ze-PostgreSQL (kumatemu e-PostgreSQL abizwa ngokuthi amaqoqo, kodwa ukuze ngigweme ukudideka ngizowabiza ngezimo (ngokufanisa nezinye izingosi zolwazi), futhi ngizobiza kuphela amaqoqo e-Pacemaker amaqoqo). Isenzakalo esisodwa sisebenza ngemodi eyinhloko, futhi sihlinzeka kuphela ngezinsizakalo (i-IP ye-float kuphela eholela kuyo). Isenzakalo sesibili sisebenza njengesigqila sesikhungo sedatha sesibili, futhi sizohlinzeka ngezinsizakalo kuphela uma umphathi waso ehluleka. Njengoba isikhathi esiningi isenzakalo esisodwa kuphela kwezimbili (inkosi) izohlinzeka ngezinsizakalo (yenza izicelo), zonke izinsiza zeseva zenzelwe inkosi (inkumbulo yabelwe inqolobane ye-shared_buffers, njll.), kodwa ukuze okwesibili futhi inezinsiza ezanele (yize ingasebenza kahle ngenqolobane yesistimu yefayela) uma kwenzeka ukwehluleka kwesinye sezikhungo zedatha. Isigqila asihlinzeki ngezinsizakalo (ayenzi izicelo zokufunda kuphela) ngesikhathi sokusebenza okujwayelekile kweqoqo, ukuze kungabikho impi yezinsiza nomphathi emshinini ofanayo.

Endabeni yama-node amabili, ukubekezelelana kwamaphutha kungenzeka kuphela ngokuphindaphinda okungavumelaniyo, ngoba ngokuphindaphinda okuvumelanayo, ukwehluleka kwesigqila kuzoholela ekumisweni kwenkosi.

Ukwehluleka ukufakaza

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Ukwehluleka ukufakaza (idivayisi yekhoramu) Ngizocabangela kuphela iqoqo le-Tuchanka1, nazo zonke ezinye kuzoba indaba efanayo. Uma ufakazi ehluleka, akukho okuzoshintsha esakhiweni seqoqo, yonke into izoqhubeka nokusebenza ngendlela efanayo. Kodwa ikhoramu izoba ngu-2 koku-3, ngakho-ke noma yikuphi ukwehluleka okulandelayo kuzoba yingozi kuqoqo. Kusazodingeka ukuthi kulungiswe ngokushesha.

Ukwenqaba kwe-Tuchanka1

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Ukuhluleka kwesinye sezikhungo zedatha ye-Tuchanka1. Esimweni esinjalo Fakaza iphonsa ivoti layo endaweni yesibili esikhungweni sedatha sesibili. Lapho, isigqila sangaphambili siphenduka inkosi, ngenxa yalokho, amakhosi omabili asebenza kuseva efanayo futhi womabili ama-IP awo antantayo akhomba kuwo.

I-Tuchanka2 (yakudala)

isakhiwo

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Uhlelo lwe-Classic lwama-node amabili. Inkosi isebenza kweyodwa, inceku kweyesibili. Bobabili bangenza izicelo (isigqila sifundwa kuphela), ngakho-ke zombili zikhonjwa yi-IP ye-float: i-krogan2 iyinkosi, i-krogan2s1 iyisigqila. Kokubili inkosi nesigqila bayobekezelela amaphutha.

Endabeni yama-node amabili, ukubekezelelana kwamaphutha kungenzeka kuphela ngokuphindaphinda okungavumelaniyo, ngoba ngokuphindaphinda okuvumelanayo, ukwehluleka kwesigqila kuzoholela ekumisweni kwenkosi.

Ukwenqaba kwe-Tuchanka2

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Uma esinye sezikhungo zedatha sihluleka Fakaza amavoti okwesibili. Esikhungweni sedatha esisebenzayo kuphela, inkosi izophakanyiswa, futhi womabili ama-IP antantayo azokhomba kuso: inkosi nesigqila. Kunjalo, isibonelo kumele simiswe ngendlela yokuthi sibe nezinsiza ezanele (imikhawulo yokuxhuma, njll.) ukuze samukele kanyekanye konke ukuxhumana nezicelo ezivela ku-master and slave float IP. Okusho ukuthi, ngesikhathi sokusebenza okuvamile kufanele kube nokunikezwa okwanele kwemingcele.

I-Tuchanka4 (izigqila eziningi)

isakhiwo

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Kakade okunye okweqisayo. Kunemininingwane yolwazi ethola izicelo eziningi zokufunda kuphela (isimo esivamile sesayithi elinomthwalo omkhulu). I-Tuchanka4 yisimo lapho kungase kube khona izigqila ezintathu noma ngaphezulu zokusingatha izicelo ezinjalo, kodwa namanje aziningi kakhulu. Ngenani elikhulu kakhulu lezigqila, kuzodingeka ukuthi kuqanjwe uhlelo lokuphindaphinda kwesigaba. Esimeni esincane (esithombeni), ngayinye yezikhungo zedatha ezimbili inamaseva amabili, ngayinye enesibonelo se-PostgreSQL.

Esinye isici salolu hlelo ukuthi kakade kungenzeka ukuhlela ukuphindaphinda okukodwa okuvumelanayo. Ilungiselelwe ukuthi iphindaphinde, uma kungenzeka, kwesinye isikhungo sedatha, kunokuba ifane nesikhungo sedatha esifanayo nesiyinhloko. Inkosi nesigqila ngasinye bakhonjwa nge-IP entantayo. Ngenhlanhla, phakathi kwezigqila kuyodingeka ukulinganisa izicelo ngandlela-thile sql ummeleli, isibonelo, ohlangothini lweklayenti. Izinhlobo ezahlukene zamaklayenti zingase zidinge izinhlobo ezahlukene sql ummeleli, futhi onjiniyela bamakhasimende kuphela abaziyo ukuthi ubani okudingayo. Lokhu kusebenza kungenziwa nge-daemon yangaphandle noma ngelabhulali yeklayenti (ichibi lokuxhumana), njll. Konke lokhu kudlula isihloko seqoqo ledatha ye-failover (failover Ummeleli we-SQL kungenziwa ngokuzimela, kanye nokubekezelela amaphutha amaklayenti).

Ukwenqaba kwe-Tuchanka4

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Uma isikhungo sedatha esisodwa (okungukuthi, amaseva amabili) sehluleka, ofakazi bavotela okwesibili. Ngenxa yalokho, amaseva amabili asebenza esikhungweni sedatha sesibili: eyodwa isebenzisa u-master, futhi i-master float IP ikhomba kuso (ngokwamukela izicelo zokufunda-bhala); futhi kuseva yesibili kukhona isigqila esisebenza ngokuphindaphinda okuvumelanayo, futhi enye ye-IPs ye-float float ikhomba kuyo (ngezicelo zokufunda kuphela).

Into yokuqala okufanele uyiqaphele ukuthi akuwona wonke ama-IP we-float float azoba abasebenzi, kodwa eyodwa kuphela. Futhi ukusebenza nayo ngendlela efanele kuyodingeka lokho sql ummeleli iqondise kabusha zonke izicelo ku-IP ye-float kuphela esele; futhi uma sql ummeleli cha, ungabhala zonke izigqila ze-IP ezintantayo ezihlukaniswe ngokhefana ku-URL yokuxhuma. Kulokhu, nge libpq ukuxhumana kuzoba ku-IP yokuqala esebenzayo, lokhu kwenziwa ohlelweni lokuhlola oluzenzakalelayo. Mhlawumbe kweminye imitapo yolwazi, isibonelo, i-JDBC, lokhu ngeke kusebenze futhi kuyadingeka sql ummeleli. Lokhu kwenziwa ngoba ama-IP antantayo ezigqila anqatshelwe ukuthi aphakanyiswe ngesikhathi esisodwa kuseva eyodwa, ukuze asatshalaliswe ngokulinganayo phakathi kwamaseva ezigqila uma kukhona ambalwa asebenzayo.

Okwesibili: ngisho noma kwenzeka ukwehluleka kwesikhungo sedatha, ukuphindaphinda okuvumelanayo kuzogcinwa. Futhi noma kwenzeka ukwehluleka kwesibili, okungukuthi, eyodwa yamaseva amabili esikhungweni sedatha esisele ihluleka, iqoqo, nakuba lizoyeka ukuhlinzeka ngezinsizakalo, lisazogcina ulwazi mayelana nakho konke ukuthengiselana okuzibophezele kukho elinikeze isiqinisekiso sokuzibophezela. (ngeke kube khona ulwazi lokulahlekelwa uma kwenzeka ukwehluleka kwesibili).

I-Tuchanka3 (3 izikhungo zedatha)

isakhiwo

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Leli yiqoqo lesimo lapho kunezikhungo zedatha ezintathu ezisebenza ngokugcwele, ngasinye esineseva egciniwe esebenza ngokugcwele. Esimweni esinjalo idivayisi yekhoramu engadingeki. Isikhungo esisodwa sedatha sinomphathi, ezinye ezimbili zisebenza izigqila. Ukuphindaphinda kuyavumelana, thayipha okuthi NOMA YILUPHI (isigqila1, isigqila2), okungukuthi, iklayenti lizothola isiqinisekiso sokuzibophezela lapho noma iyiphi yezigqila ingeyokuqala ukuphendula ukuthi yamukele isibopho. Izinsiza ziboniswa yi-IP eyodwa ye-float yenkosi kanye nezigqila ezimbili. Ngokungafani ne-Tuchanka4, womathathu ama-IP antantayo ayawabekezelela amaphutha. Ukuze ubhalansise imibuzo ye-SQL yokufunda kuphela ongayisebenzisa sql ummeleli (ngokubekezelela amaphutha okuhlukile), noma yabela i-IP yesigqila esisodwa kuhhafu wamakhasimende, bese enye ingxenye kweyesibili.

Ukwenqaba kwe-Tuchanka3

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Uma esinye sezikhungo zedatha sihluleka, ezimbili zihlala. Kokunye, i-master kanye ne-IP entantayo evela enkosini iyaphakanyiswa, okwesibili - isigqila kanye nama-IP e-float yesigqila (isibonelo kufanele sibe nemithombo ephindwe kabili yezinsiza ukuze kwamukelwe konke ukuxhumana okuvela kokubili ama-IPs e-slave float). Ukuphindaphinda okuvumelanayo phakathi kwamakhosi nezigqila. Futhi, iqoqo lizogcina ulwazi mayelana nokuthengiselana okuzibophezele futhi okuqinisekisiwe (ngeke kube nokulahlekelwa kolwazi) uma kwenzeka kucekelwa phansi izikhungo ezimbili zedatha (uma zingabhubhi ngesikhathi esisodwa).

Nginqume ukungafaki incazelo enemininingwane yesakhiwo sefayela nokusetshenziswa. Noma ubani ofuna ukudlala angakwazi ukukufunda konke kokuthi README. Nginikeza kuphela incazelo yokuhlola okuzenzakalelayo.

Isistimu yokuhlola ezenzakalelayo

Ukuhlola ukubekezelela amaphutha kwamaqoqo ngokulingisa amaphutha ahlukahlukene, isistimu yokuhlola ezenzakalelayo idaliwe. Kwethulwe ngombhalo test/failure. Iskripthi singathatha njengamapharamitha izinombolo zamaqoqo ofuna ukuwahlola. Ngokwesibonelo lo myalo:

test/failure 2 3

izohlola kuphela iqoqo lesibili nelesithathu. Uma amapharamitha engacacisiwe, wonke amaqoqo azohlolwa. Wonke amaqoqo ahlolwa ngokuhambisana, futhi umphumela uboniswa kuphaneli ye-tmux. I-Tmux isebenzisa iseva ye-tmux ezinikele, ukuze umbhalo uqaliswe ngaphansi kwe-tmux ezenzakalelayo, okuholela ekufakweni kwe-tmux. Ngincoma ukusebenzisa itheminali efasiteleni elikhulu nangefonti encane. Ngaphambi kokuthi kuqale ukuhlola, yonke imishini ebonakalayo iphindiselwa emuva kusifinyezo ngesikhathi umbhalo uqeda. setup.

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Itheminali ihlukaniswe ngamakholomu ngokuya ngenani lamaqoqo ahlolwayo; ngokuzenzakalela (kusithombe-skrini) kukhona amane. Ngizochaza okuqukethwe kwamakholomu ngisebenzisa isibonelo seTuchanka2. Amaphaneli kusithombe-skrini anezinombolo:

  1. Izibalo zokuhlola ziboniswa lapha. Amakholomu:
    • ukwehluleka - igama lokuhlola (umsebenzi kuskripthi) elingisa iphutha.
    • ukuphendula - isikhathi esimaphakathi se-arithmetic kumasekhondi lapho iqoqo liphinde lathola ukusebenza kwalo. Ikalwa kusukela ekuqaleni kweskripthi esilingisa iphutha kuze kube yisikhathi lapho iqoqo libuyisela ukusebenza kwalo futhi likwazi ukuqhubeka nokuhlinzeka ngamasevisi. Uma isikhathi sifushane kakhulu, isibonelo, imizuzwana eyisithupha (lokhu kwenzeka ngamaqoqo anezigqila eziningana (Tuchanka3 noTuchanka4)), lokhu kusho ukuthi iphutha laliphezu kwesigqila se-asynchronous futhi alizange lithinte ukusebenza nganoma iyiphi indlela; kwakungekho. ukushintshwa kwesimo se-cluster.
    • ukuphambuka - ikhombisa ukusabalala (ukunemba) kwevelu ukuphendula ngokusebenzisa indlela ejwayelekile yokuchezuka.
    • Count β€” lolu hlolo lwenziwe izikhathi ezingaki.
  2. Ilogi emfushane ikuvumela ukuthi uhlole ukuthi iqoqo lenzani okwamanje. Inombolo yokuphindaphinda (yokuhlola), isitembu sesikhathi kanye negama lomsebenzi kuyaboniswa. Ukugijima isikhathi eside (> 5 amaminithi) kubonisa inkinga.
  3. inhliziyo (inhliziyo) - isikhathi samanje. Okokuhlola okubonakalayo kokusebenza amakhosi Isikhathi samanje sibhalwe njalo etafuleni layo kusetshenziswa i-float IP master. Uma kuphumelele, umphumela uboniswa kuleli phaneli.
  4. Shaya (i-pulse) - "isikhathi samanje", esaqoshwa ngaphambilini umbhalo inhliziyo ukuze ukwazi, manje funda kusuka isigqila nge-IP yayo ye-float. Ikuvumela ukuthi uhlole ngokubukeka ukusebenza kwesigqila nokuphindaphinda. E-Tuchanka1 azikho izigqila ezine-float IP (akukho zinceku ezihlinzeka ngezinsizakalo), kodwa kunezimo ezimbili (DBs), ngakho-ke ngeke ziboniswe lapha. Shaya, futhi inhliziyo isibonelo sesibili.
  5. Ukuqapha impilo yeqoqo usebenzisa insiza pcs mon. Ibonisa ukwakheka, ukusatshalaliswa kwezinsiza kuzo zonke izindawo nolunye ulwazi oluwusizo.
  6. Ukuqapha kwesistimu okuvela emshinini ngamunye obonakalayo kuqoqo kuboniswa lapha. Kungase kube namaphaneli amaningi anjalo kuye ngokuthi iqoqo linamamishini emingaki. Amagrafu amabili Ukulayisha kwe-CPU (imishini ebonakalayo inamaphrosesa amabili), igama lomshini obonakalayo, Umthwalo Wesistimu (iqanjwe Isilinganiso Somthwalo ngenxa yokuthi silinganiselwe ngaphezu kwemizuzu engu-5, 10 kanye ne-15), cubungula idatha nokwabiwa kwenkumbulo.
  7. Ukulandelela kokuhlolwa kombhalo. Uma kwenzeka ukungasebenzi kahle - ukuphazamiseka okungazelelwe kokusebenza noma umjikelezo wokulinda ongapheli - lapha ungabona isizathu salokhu kuziphatha.

Ukuhlola kwenziwa ngezigaba ezimbili. Okokuqala, iskripthi sidlula kuzo zonke izinhlobo zokuhlola, kukhethwa ngokungahleliwe umshini we-virtual ongasebenzisa kuwo lokhu kuhlola. Bese kwenziwa umjikelezo ongapheli wokuhlola, imishini ebonakalayo kanye nephutha kukhethwa ngokungahleliwe isikhathi ngasinye. Ukunqanyulwa kungazelelwe kweskripthi sokuhlola (iphaneli engezansi) noma iluphu engapheli yokulinda okuthile (> isikhathi sokwenza imizuzu emi-5 sokusebenza okukodwa, lokhu kungabonakala ekulandeleni) kubonisa ukuthi ezinye izivivinyo kuleli qoqo zihlulekile.

Ukuhlola ngakunye kuqukethe le misebenzi elandelayo:

  1. Yethula umsebenzi olingisa iphutha.
  2. Ukulungele? β€” ilinde ukuthi iqoqo libuyiselwe (uma zonke izinkonzo sezihlinzekiwe).
  3. Ibonisa ukuphela kwesikhathi sokuthola kabusha kweqoqo (ukuphendula).
  4. Lungisa - iqoqo "liyalungiswa." Ngemuva kwalokho kufanele ibuyele esimweni sokusebenza ngokugcwele futhi ilungele ukungasebenzi kahle okulandelayo.

Nalu uhlu lokuhlola olunencazelo yalokho abakwenzayo:

  • I-ForkBomb: Idala "Okungaphandle kwenkumbulo" isebenzisa ibhomu yemfoloko.
  • I-OutOfSpace: I-hard drive igcwele. Kepha ukuhlolwa kungokomfanekiso; ngomthwalo ongabalulekile odalwa ngesikhathi sokuhlolwa, i-PostgreSQL ngokuvamile ayihluleki lapho i-hard drive igcwele.
  • I-Postgres-KILL: ibulala i-PostgreSQL ngomyalo killall -KILL postgres.
  • I-Postgres-YIMA: kulenga umyalo we-PostgreSQL killall -STOP postgres.
  • I-PowerOff: "iqeda amandla" umshini obonakalayo ngomyalo VBoxManage controlvm "Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°" poweroff.
  • Hlela: ilayisha ngokweqile umshini obonakalayo ngomyalo VBoxManage controlvm "Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°" reset.
  • SBD-STOP: imisa idemoni le-SBD ngomyalo killall -STOP sbd.
  • Vala shaqa: ithumela umyalo emshinini we-virtual nge-SSH systemctl poweroff, uhlelo luvaleka kahle.
  • Susa ukuxhumanisa: ukuhlukaniswa kwenethiwekhi, umyalo VBoxManage controlvm "Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°" setlinkstate1 off.

Ukuqedela ukuhlola noma kusetshenziswa umyalo ojwayelekile we-tmux "kill-window" Ctrl-b &, noma umyalo othi "detach-client". I-Ctrl-b d: kuleli phuzu ukuhlolwa kuyaphela, i-tmux iyavala, imishini ebonakalayo ivaliwe.

Izinkinga ezikhonjwe ngesikhathi sokuhlolwa

  • Ngalesi sikhathi idemoni le-watchdog sbd isebenza ekumiseni ama-daemoni abonwayo, kodwa ingawaqandi. Futhi, ngenxa yalokho, amaphutha aholela emakhazeni kuphela I-Corosync ΠΈ pacemaker, kodwa hhayi ukulenga sbd. Okwesheke I-Corosync isivele I-PR#83 (ku-GitHub ku- sbd), yamukelwa emculweni master. Bathembisa (ku-PR#83) ukuthi kuzoba khona okufanayo kuPacemaker, ngithemba ukuthi ngo I-RedHat 8 ngizokwenza njalo. Kodwa "ukungasebenzi kahle" okunjalo kuyaqagela futhi kungenziwa kalula ngokwenziwa kusetshenziswa, ngokwesibonelo, killall -STOP corosync, kodwa ungalokothi uhlangane empilweni yangempela.

  • Π£ pacemaker enguqulweni ye I-CentOS 7 kusethwe ngokungalungile sync_timeout Ρƒ idivayisi yekhoramu, ngenxa yalokho uma inodi eyodwa yehlulekile, ngamathuba athile inodi yesibili nayo iqalwe kabusha, okwakufanele umnikazi wayo athuthele kuyo. Kwelapheka ngokukhuliswa sync_timeout Ρƒ idivayisi yekhoramu ngesikhathi sokuthunyelwa (kuskripthi setup/setup1). Lesi sichibiyelo asamukelwanga ngabathuthukisi pacemaker, esikhundleni salokho bathembise ukuklama kabusha ingqalasizinda ngendlela yokuthi (esikhathini esizayo esingashiwongo) ukuze lesi sikhathi sokuvala sibalwe ngokuzenzakalelayo.

  • Uma ukucushwa kwedathabheyisi kucacisa lokho LC_MESSAGES (imiyalezo yombhalo) I-Unicode ingasetshenziswa, isb. ru_RU.UTF-8, bese ekuqaleni i-postgres endaweni lapho indawo ingeyona i-UTF-8, isho endaweni engenalutho (lapha i-pacemaker+pgsqlms(paf) iyagijima i-postgres), bese ilogi izoqukatha amamaki emibuzo esikhundleni sezinhlamvu ze-UTF-8. Abathuthukisi be-PostgreSQL abakavumelananga ngokuthi benzeni kuleli cala. Kubiza, udinga ukufaka LC_MESSAGES=en_US.UTF-8 lapho ulungiselela (udala) isibonelo sesizindalwazi.

  • Uma i-wal_receiver_timeout isethiwe (ngokuzenzakalelayo ingama-60s), khona-ke phakathi nokuhlolwa kwe-PostgreSQL-STOP kumaster kuqoqo le-tuchanka3 ne-tuchanka4 ukuphindaphinda akuxhumeki kabusha kumphathi omusha. Ukuphindaphinda kukhona okuhambisanayo, ngakho-ke akugcini nje kuphela ukuthi isigqila sime, kodwa futhi nenkosi entsha. Isebenza ngokuzungezile ngokusetha i-wal_receiver_timeout=0 lapho ilungisa i-PostgreSQL.

  • Kwesinye isikhathi ngangibona ukuphindaphinda kuqina ku-PostgreSQL ekuhlolweni kwe-ForkBomb (ukuchichima kwenkumbulo). Ngemuva kweForkBomb, kwesinye isikhathi izigqila zingase zingaxhumeki kabusha kunkosi entsha. Ngihlangabezane nalokhu kuphela kumaqoqo e-tuchanka3 kanye ne-tuchanka4, lapho u-master waqalwa khona ngenxa yokuphindaphinda okuvumelanayo. Inkinga yazihambela yodwa ngemva kwesikhathi eside (cishe amahora amabili). Ucwaningo olwengeziwe luyadingeka ukulungisa lokhu. Izimpawu zifana nesiphazamisi sangaphambilini, esibangelwa isizathu esihlukile, kodwa ngemiphumela efanayo.

Isithombe se-Krogan sithathwe Art Deviant ngemvume yombhali:

Ukumodela kwamaqoqo e-failover asekelwe ku-PostgreSQL ne-Pacemaker

Source: www.habr.com

Engeza amazwana