Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Chinangwa chikuru chePatroni ndechekupa Kuwanikwa Kwepamusoro kwePostgreSQL. Asi Patroni inongova template, kwete chigadzirwa chakagadzirirwa (iyo, kazhinji, inotaurwa mune zvinyorwa). Pakutanga kutarira, wamisa Patroni muyedzo lab, unogona kuona kuti chii chikuru chishandiso uye kuti inobata sei nyore kuedza kwedu kutyora sumbu. Nekudaro, mukuita, munzvimbo yekugadzira, zvese hazviitike nguva dzose zvakanaka uye zvinoyevedza senge muyedzo lab.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Ndichakuudza zvishoma nezvangu. Ndakatanga ndiri system administrator. Yakashanda mukuvandudza webhu. Ndanga ndichishanda kuData Egret kubvira 2014. Iyo kambani iri kuita kubvunzana mumunda wePostgres. Uye isu tinoshanda chaizvo Postgres, uye isu tinoshanda nePostgres mazuva ese, saka isu tine hunyanzvi hwakasiyana hune chekuita nekuvhiya.

Uye pakupera kwa2018, takatanga kushandisa zvishoma nezvishoma Patroni. Uye chimwe chiitiko chakaunganidzwa. Isu neimwe nzira takaiongorora, takaigadzirisa, yakauya kune yedu yakanaka maitiro. Uye mumushumo uyu ndichataura pamusoro pavo.

Kunze kwePostgres, ndinoda Linux. Ini ndinoda kutenderera mairi uye kuongorora, ndinoda kuunganidza macores. Ini ndinoda virtualization, midziyo, docker, Kubernetes. Zvese izvi zvinondinakidza, nekuti tsika dzekare dze admin dziri kukanganisa. Ndinoda kubata nekutarisa. Uye ini ndinoda postgres zvinhu zvine chekuita nekutonga, kureva kudzokorora, backup. Uye munguva yangu yekuzorora ndinonyora muna Go. Ini handisi software injinjini, ndinongozvinyorera muGo. Uye zvinondifadza.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

  • Ndinofunga vazhinji venyu munoziva kuti Postgres haina HA (Kuwanikwa Kwepamusoro) kunze kwebhokisi. Kuti uwane HA, unofanirwa kuisa chimwe chinhu, chigadzirise, ita nhamburiko uye uwane.
  • Kune akati wandei maturusi uye Patroni ndomumwe wavo anogadzirisa HA inotonhorera uye yakanyatso. Asi nekuisa zvese mu test lab uye nekuimhanyisa, tinogona kuona kuti zvese zvinoshanda, tinogona kubereka mamwe matambudziko, kuona kuti Patroni anovashandira sei. Uye isu tichaona kuti zvese zvinoshanda zvikuru.
  • Asi mukuita, takatarisana nezvinetso zvakasiyana. Uye ndichataura pamusoro pematambudziko aya.
  • Ini ndichakuudza kuti takazviongorora sei, zvatakagadzirisa - zvingave zvakatibatsira kana kwete.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

  • Handisi kuzokuudza kuti ungaisa sei Patroni, nokuti unogona google paInternet, unogona kutarisa mafaira ekugadzirisa kuti unzwisise kuti inotanga sei, kuti inogadziriswa sei. Iwe unogona kunzwisisa zvirongwa, zvivakwa, kuwana ruzivo pamusoro pazvo paInternet.
  • Ini handitaure nezve chiitiko chemumwe munhu. Ndichangotaura nezvematambudziko atakatarisana nawo.
  • Uye ini handisi kuzotaura nezve matambudziko ari kunze kwePatroni nePostgreSQL. Kana, semuenzaniso, kune matambudziko anoenderana nekuenzanisa, kana sumbu redu radonha, ini handitaure nezvazvo.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye diki disclaimer tisati tatanga rondedzero yedu.

Matambudziko ese aya atakasangana nawo, takava nawo mumwedzi yekutanga ye6-7-8 yekushanda. Nekufamba kwenguva, takasvika kune yedu yemukati maitiro akanakisa. Uye matambudziko edu akapera. Naizvozvo, mushumo wacho wakaziviswa inenge mwedzi mitanhatu yapfuura, apo zvose zvakanga zviri zvitsva mumusoro mangu uye ndakazvirangarira zvose zvakakwana.

Mukati mekugadzirira mushumo, ndakatosimudza mapostmortems ekare, ndakatarisa matanda. Uye zvimwe zvemashoko zvinogona kukanganwika, kana zvimwe zvezvimwe zvisingakwanisi kuongororwa zvakakwana panguva yekuongorora matambudziko, saka pane dzimwe nguva zvingaita sekuti matambudziko haana kunyatsotariswa, kana kuti pane kushayikwa kwemashoko. Uye saka ndinokumbira kuti mundiregerere panguva ino.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Chii chinonzi Patroni?

  • Iyi template yekuvaka HA. Ndizvo zvazvinotaura mugwaro. Uye kubva pakuona kwangu, iyi itsanangudzo chaiyo. Patroni haisi pfuti yesirivha iyo inogadzirisa matambudziko ako ese, ndiko kuti, iwe unofanirwa kuita nhamburiko kuti ishande uye kuunza zvikomborero.
  • Iri ibasa remumiririri rinoiswa pane yega yega dhatabhesi sevhisi uye imhando yeinit system yePostgres yako. Iyo inotanga Postgres, inomira, inotangazve, inogadzirisa, uye inoshandura iyo topology yesumbu rako.
  • Saizvozvowo, kuitira kuchengetedza mamiriro echikwata, chimiro chayo chemazuva ano, sezvazvinotaridzika, imwe mhando yekuchengetedza inodiwa. Uye kubva pane iyi maonero, Patroni akatora nzira yekuchengetedza nyika mune yekunze system. Iyo yakagoverwa configuration kuchengetedza system. Inogona kuve Etcd, Consul, ZooKeeper, kana kubernetes Etcd, kureva imwe yeidzi sarudzo.
  • Uye chimwe chezvinhu zvePatroni ndechekuti iwe unotora iyo autofiler kunze kwebhokisi, chete nekuimisa. Kana tikatora Repmgr kuenzanisa, ipapo iyo filer inosanganisirwa ipapo. NeRepmgr, tinowana switchover, asi kana isu tichida autofiler, saka isu tinoda kuigadzirisa zvakare. Patroni atove neautofiler kunze kwebhokisi.
  • Uye kune zvimwe zvinhu zvakawanda. Semuenzaniso, kuchengetedza zvigadziriso, kudururira replicas mitsva, backup, nezvimwe. Asi izvi zvinopfuura chiyero chemushumo, ini handisi kuzotaura nezvazvo.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye mhedzisiro diki nderekuti basa guru rePatroni nderekuita autofile zvakanaka uye nekuvimbika kuitira kuti sumbu redu rirambe richishanda uye chishandiso hachione shanduko mune cluster topology.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Asi patinotanga kushandisa Patroni, sisitimu yedu inowedzera kuoma. Kana pakutanga taive nePostgres, saka kana tichishandisa Patroni tinowana Patroni pachayo, tinowana DCS panochengetwa nyika. Uye zvese zvinofanirwa kushanda neimwe nzira. Saka chii chinogona kukanganisa?

May break:

  • Postgres inogona kuputsika. Inogona kunge iri master kana replica, imwe yacho inogona kutadza.
  • Iyo Patroni pachayo inogona kuputsa.
  • Iyo DCS inochengeterwa nyika inogona kuputsika.
  • Uye network inogona kuparara.

Aya mapoinzi ese ndichaafunga mumushumo.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Ini ndichafunga nezvenyaya sezvo dzichiwedzera kuomarara, kwete kubva pakuona kuti nyaya yacho inosanganisira zvakawanda zvikamu. Uye kubva pakuona kwekunzwa manzwiro, kuti nyaya iyi yakanga yakaoma kwandiri, zvakanga zvakaoma kuiparadzanisa ... uye zvakasiyana, imwe nyaya yakanga yakareruka uye yakanga iri nyore kuiparadzanisa.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye nyaya yekutanga ndiyo iri nyore. Izvi ndizvo zvakaitika patakatora dhatabhesi cluster tikaisa chengetedzo yedu yeDCS pachikwata chimwe chete. Uku ndiko kukanganisa kwakanyanya. Ichi chikanganiso mukuvaka zvivakwa, kureva, kubatanidza zvikamu zvakasiyana munzvimbo imwe.

Saka, paive nemufaera, handei kunobata nezvakaitika.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye pano isu tiri kufarira pakaitika iyo filer. Ndiko kuti, isu tiri kufarira panguva ino munguva iyo iyo cluster state yakachinja.

Asi iyo filer haisi nguva dzose pakarepo, i.e. haitore chero chikamu chenguva, inogona kunonoka. Inogona kugara kwenguva refu.

Naizvozvo, ine nguva yekutanga uye nguva yekupedzisira, i.e. chiitiko chinoenderera. Uye tinoparadzanisa zviitiko zvose muzvikamu zvitatu: tine nguva isati yasvika, panguva yefaira uye shure kwefaira. Ndiko kuti, isu tinofunga zvese zviitiko mumutsara wenguva ino.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye chinhu chekutanga, kana filer yakaitika, tinotarisa chikonzero chezvakaitika, chii chaive chikonzero chezvakakonzera kufaira.

Kana tikatarisa matanda, anenge ari echinyakare Patroni matanda. Anotiudza mavari kuti sevha yava tenzi, uye basa ratenzi rakapfuura kune node iyi. Pano panoratidzwa.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Tevere, isu tinofanirwa kunzwisisa kuti sei iyo filer yakaitika, i.e. zviitiko zvipi zvakaitika zvakakonzera kuti master basa rifambe kubva pane imwe node kuenda kune imwe. Uye munyaya iyi, zvinhu zvose zviri nyore. Isu tine chikanganiso mukubatana nehurongwa hwekuchengetedza. Tenzi akaziva kuti haaigona kushanda neDCS, kureva kuti, paive nedambudziko remhando yekudyidzana. Uye anoti haachakwanisa kuita tenzi obva asiya basa. Mutsara uyu wekuti "demoted self" unotaura izvozvo chaizvo.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Kana tikatarisa zviitiko zvakatangira iyo filer, tinogona kuona ipapo izvo zvikonzero zvakakonzera dambudziko kuenderera mberi wizard.

Kana tikatarisa matanda ePatroni, tichaona kuti tine zvikanganiso zvakawanda, nguva, i.e. Patroni agent haigoni kushanda neDCS. Muchiitiko ichi, iyi Consul mumiririri, ari kutaurirana pachiteshi 8500.

Uye dambudziko riri pano nderekuti Patroni uye dhatabhesi iri kushanda pane imwe chete host. Uye maseva eConsul akatangwa pane imwechete node. Nekugadzira mutoro pane sevha, isu takagadzira matambudziko kune Consul maseva zvakare. Vaisagona kutaura zvakanaka.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Pashure penguva yakati, apo mutoro wacho wakaderera, Patroni wedu akakwanisa kukurukura navamiririri zvakare. Basa remazuva ose rakatangazve. Uye iyo imwechete Pgdb-2 server yakava tenzi zvakare. Ndiko kuti, pakanga pane flip duku, nekuda kweiyo node yakasiya masimba etenzi, ndokubva yavatora zvakare, ndiko kuti, zvinhu zvose zvakadzoka sezvazvaive.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye izvi zvinogona kutorwa searamu yenhema, kana inogona kutariswa kuti Patroni akaita zvese nemazvo. Kureva kuti akaziva kuti haaigona kuchengetedza chimiro chesumbu ndokubvisa chiremera chake.

Uye pano dambudziko rakamuka nekuda kwekuti maConsul maseva ari pahardware yakafanana nemabhesi. Saizvozvo, chero mutoro: ingave mutoro padhisiki kana processors, inokanganisawo kupindirana neConsul cluster.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye takasarudza kuti haifanirwe kugara pamwe chete, takagovera boka rakasiyana reConsul. Uye Patroni akanga atoshanda neConsul yakasiyana, ndiko kuti, pakanga pane boka rakasiyana rePostgres, rimwe boka reConsul rakasiyana. Uyu ndiwo murairidzo mukuru pamusoro pokutakura nokuchengeta zvinhu zvose izvozvi kuti zvisagara pamwe chete.

Senge sarudzo, unogona kumonya maparamendi ttl, loop_wait, retry_timeout, kureva kuti edza kupona aya mapfupi-epamusoro mitoro yepamusoro nekuwedzera aya ma paramita. Asi iyi haisi iyo yakanyanya kufanirwa sarudzo, nekuti mutoro uyu unogona kuva wakareba munguva. Uye isu tichangopfuura iyi miganho yeiyi paramita. Uye izvozvo zvingasanyatsobatsira.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Dambudziko rekutanga, sezvaunonzwisisa, riri nyore. Takatora tikaisa maDCS pamwe chete nebase, takaita dambudziko.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Dambudziko rechipiri rakafanana nerekutanga. Zvakafanana pakuti isu zvakare tine matambudziko ekudyidzana neDCS system.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Kana tikatarisa matanda, tichaona kuti tine zvakare kukanganisa kwekutaurirana. Uye Patroni anoti ini handikwanise kudyidzana neDCS saka tenzi aripo anoenda mune replica mode.

Tenzi wekare anova replica, pano Patroni anoshanda kunze, sezvazvinofanira kuva. Inomhanya pg_rewind kudzoreredza irogi rekutengesa uye wozobatanidza kuna tenzi mutsva kuti ubate natenzi mutsva. Pano Patroni anoshanda, sezvaanofanira.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Pano tinofanira kuwana nzvimbo yakatangira filer, i.e. zvikanganiso izvo zvakaita kuti tive nefaira. Uye munyaya iyi, Patroni matanda ari nyore kushanda nawo. Anonyora mameseji mamwe chete pane imwe nguva. Uye kana tikatanga kupeta kuburikidza nematanda aya nekukurumidza, zvino tichaona kubva mumatanda kuti matanda akachinja, izvo zvinoreva kuti mamwe matambudziko atanga. Tinokurumidza kudzokera kunzvimbo iyi, toona zvinoitika.

Uye mumamiriro akajairika, matanda anotaridzika seizvi. Muridzi wekiyi anotariswa. Uye kana muridzi, semuenzaniso, achinja, zvimwe zviitiko zvinogona kuitika izvo Patroni anofanira kupindura. Asi munyaya iyi, isu takakwana. Tiri kutsvaga nzvimbo yakatangira kukanganisa.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye tafamba kusvika pakatanga kuoneka zvikanganiso, tinoona kuti tave neauto-fileover. Uye sezvo kukanganisa kwedu kwaive kwakabatana nekudyidzana neDCS uye kwatiri isu takashandisa Consul, tinotarisawo kuConsul logs, zvakaitika ipapo.

Tichienzanisa nguva yefaira uye nguva mumatanda eConsul, tinoona kuti vavakidzani vedu muConsul cluster vakatanga kusava nechokwadi kuvapo kwedzimwe nhengo dzeConsul cluster.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye kana iwe ukatarisawo matanda evamwe Consul agents, iwe unogona zvakare kuona kuti imwe mhando yekudonha kwetiweki iri kuitika ipapo. Uye nhengo dzese dzeConsul cluster dzinokahadzika kuvepo kweumwe neumwe. Uye uku ndiko kwaive kukurudzira kufaira.

Kana iwe ukatarisa zvakaitika zvisati zvaitika zvikanganiso izvi, unogona kuona kuti kune marudzi ose ezvikanganiso, semuenzaniso, zuva rekupedzisira, RPC yakawa, kureva kuti, pane zvakajeka imwe mhando yedambudziko mukubatana kwenhengo dzeConsul cluster pamwe chete. .

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Mhinduro iri nyore ndeyekugadzirisa network. Asi kwandiri, ndakamira papodium, zviri nyore kutaura izvi. Asi mamiriro ezvinhu akadaro zvekuti kwete nguva dzose mutengi anogona kukwanisa kugadzirisa network. Anogona kugara muDC uye angave asingakwanisi kugadzirisa network, kukanganisa midziyo. Uye saka dzimwe sarudzo dzinodiwa.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Pane zvingasarudzwa:

  • Iyo yakapusa sarudzo, iyo yakanyorwa, mumaonero angu, kunyangwe mune zvinyorwa, ndeye kudzima Consul cheki, ndiko kuti, kungopfuura isina chinhu. Uye isu tinoudza Consul agent kuti asashandise chero cheki. Nemacheki aya, tinogona kufuratira aya madutu etiweki uye kwete kutanga filer.
  • Imwe sarudzo ndeyekutarisa kaviri raft_multiplier. Iyi ndiyo parameter yeConsul server pachayo. Nekusagadzikana, inoiswa ku 5. Iyi kukosha inokurudzirwa nemagwaro emamiriro ekugadzirisa. Muchokwadi, izvi zvinokanganisa kuwanda kwekutumira mameseji pakati penhengo dzeConsul network. Muchokwadi, iyi parameter inokanganisa kumhanya kwesevhisi kutaurirana pakati penhengo dzeConsul cluster. Uye yekugadzira, yakatokurudzirwa kuideredza kuitira kuti node dzishandure mameseji kakawanda.
  • Imwe sarudzo yatauya nayo ndeyekuwedzera kukosha kwemaitiro eConsul pakati pemamwe maitiro eiyo inoshanda sisitimu process scheduler. Kune yakadaro "yakanaka" parameter, inongotarisa kukosha kwemaitiro ayo anotorwa neiyo OS scheduler pakuronga. Isu takadzikisawo kukosha kwakanaka kune Consul agents, i.e. yakawedzera kukosha kuitira kuti sisitimu yekushandisa inopa Consul maitiro nguva yakawanda yekushanda uye kuita kodhi yavo. Muchiitiko chedu, izvi zvakagadzirisa dambudziko redu.
  • Imwe sarudzo haisi yekushandisa Consul. Ndine shamwari yangu inonditsigira Etcd. Uye tinogara tichinetsana naye izvo zviri nani Etcd kana Consul. Asi maererano nezviri nani, tinowanzo bvumirana naye kuti Consul ane mumiririri anofanira kunge achimhanya pane imwe neimwe node ine database. Ndiko kuti, kusangana kwaPatroni neConsul cluster kunopinda nemumiririri uyu. Uye mumiririri uyu anova bhodhoro. Kana chimwe chinhu chikaitika kune mumiririri, ipapo Patroni haachakwanisi kushanda neConsul cluster. Uye iri ndiro dambudziko. Iko hakuna mumiririri muEtcd chirongwa. Patroni anogona kushanda zvakananga nerondedzero yeEtcd maseva uye atotaurirana navo. Panyaya iyi, kana ukashandisa Etcd mukambani yako, ipapo Etcd ingangove iri sarudzo iri nani pane Consul. Asi isu pavatengi vedu tinogara takaganhurirwa neizvo mutengi asarudza uye anoshandisa. Uye isu tine Consul kune chikamu chikuru kune vese vatengi.
  • Uye iyo yekupedzisira poindi ndeyekudzokorora iyo parameter tsika. Isu tinokwanisa kusimudza ma paramita aya tichitarisira kuti matambudziko edu enguva pfupi etiweki achave mapfupi uye kwete kuwira kunze kweiyo paramita. Nenzira iyi tinogona kuderedza hukasha hwaPatroni kuti tiite autofile kana mamwe matambudziko etiweki aitika.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Ndinofunga vazhinji vanoshandisa Patroni vanoziva murairo uyu.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uyu murairo unoratidza mamiriro azvino echikwata. Uye pakutanga kuona, mufananidzo uyu ungaratidzika sewakajairika. Tine tenzi, tine replica, hapana replication lag. Asi mufananidzo uyu wakajairika kusvika taziva kuti sumbu iri rinofanira kuva nemanodi matatu, kwete maviri.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Naizvozvo, pakanga paine autofile. Uye mushure meiyo autofile, replica yedu yakanyangarika. Tinofanira kuona kuti sei akanyangarika uye kumudzosa, kumudzosa. Uye isu zvakare tinoenda kumatanda uye toona kuti sei takanga tine auto-fileover.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Muchiitiko ichi, replica yechipiri yakava tenzi. Zvakanaka pano.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye isu tinofanirwa kutarisa mufananidzo wakadonha uye usiri musumbu. Isu tinovhura matanda ePatroni uye tinoona kuti takanga tine dambudziko panguva yekubatanidza kune cluster pane pg_rewind nhanho. Kuti ubatanidze kune sumbu, iwe unofanirwa kudzoreredza dhizaini rekutengesa, kukumbira inodiwa dhizaini regi kubva kuna tenzi, uye shandisa iyo kubata tenzi.

Muchiitiko ichi, isu hatina regi yekutengeserana uye replica haigone kutanga. Saizvozvo, tinomisa Postgres nekukanganisa. Uye saka haisi musumbu.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Tinofanira kunzwisisa kuti nei isiri musumbu uye nei pakanga pasina matanda. Tinoenda kuna tenzi mutsva uye tinotarisa zvaanazvo mumatanda. Zvinoitika kuti pakaitwa pg_rewind, cheki chakaitika. Uye mamwe ekare ekutengeserana matanda akangopihwa zita. Apo tenzi wekare akaedza kubatanidza kuna tenzi mutsva uye kubvunza matanda aya, akanga atopiwa zita, akanga asipo.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Ndakaenzanisa zvitambi zvenguva pakaitika zviitiko izvi. Uye ipapo mutsauko uripo chaiwo 150 milliseconds, kureva, iyo yekutarisa yakapedzwa mu369 milliseconds, zvikamu zveWAL zvakatumidzwa zita. Uye chaizvo muna 517, mushure memazana zana nemakumi mashanu emamilliseconds, kudzoka kumashure kwakatanga pane yekare replica. Kureva kuti, 150 milliseconds chaidzo dzaive dzakatikwanira zvekuti replica haina kukwanisa kubatana nekuwana.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Ndezvipi zvingasarudzwa?

Isu pakutanga takashandisa kudzokorora slots. Takafunga kuti zvakanga zvakanaka. Kunyangwe padanho rekutanga rekushanda takadzima slots. Zvaiita sekuti kana ma slots akaunganidza akawanda eWAL zvikamu, tinogona kudonhedza tenzi. Achawa. Takatambura kwenguva yakati rebei tisina slots. Uye isu takaona kuti isu tinoda slots, takadzosa slots.

Asi pane dambudziko pano, kuti kana tenzi aenda kune replica, inodzima iyo inotsvedza uye inodzima zvikamu zveWAL pamwe neanotsvedza. Uye kubvisa dambudziko iri, takasarudza kusimudza wal_keep_segments parameter. Iyo inosarudzika kune 8 zvikamu. Takasimudza kusvika ku1 uye takatarisa kuti yakawanda sei nzvimbo yemahara yataive nayo. Uye takapa 000 gigabytes for wal_keep_segments. Ndiko kuti, pakuchinja, isu tinogara tine chengetedzo ye16 gigabytes ye transaction logs pane ese node.

Uye kuwedzera - ichiri kukosha kune mabasa ekugadzirisa kwenguva refu. Ngatitii isu tinoda kugadzirisa imwe yezvinyorwa. Uye tinoda kuidzima. Isu tinofanirwa kugadzirisa software, pamwe iyo inoshanda sisitimu, chimwe chinhu. Uye kana isu tikadzima replica, slot yeiyo replica inobviswa zvakare. Uye kana tikashandisa diki wal_keep_segments, ipapo nekusavapo kwenguva refu kweiyo replica, matanda ekutengeserana acharasika. Isu tichasimudza replica, ichakumbira iwo matanda ekutengeserana payakamira, asi anogona kunge asiri pana tenzi. Uye iyo replica haigone kubatana zvakare. Saka, tinochengeta magazini akawanda.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Tine hwaro hwekugadzira. Pane mapurojekiti arikuitwa.

Paive nefaira. Takapinda ndokutarisa - zvese zviri mugwara, replicas iri panzvimbo, hapana replication lag. Iko hakuna kukanganisa mumatanda zvakare, zvese zviri muhurongwa.

Chikwata chechigadzirwa chinoti panofanira kunge paine data, asi isu tinozviona kubva kune imwe sosi, asi isu hatizvione mudhatabhesi. Uye tinofanira kunzwisisa zvakaitika kwavari.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Zviripachena kuti pg_rewind ndakavapotsa. Takabva tanzwisisa izvi, asi takaenda kunoona kuti chii chaiitika.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Mumatanda, tinogona kuwana nguva dzose pakaitika faira, uyo akazova tenzi, uye tinogona kuona kuti ndiani akanga ari tenzi wekare uye paaida kuva mufananidzo, kureva kuti tinoda matanda aya kuti tiwane huwandu hwematanda ekutengeserana ayo akanga arasika.

Tenzi wedu wekare atangazve. Uye Patroni akanyoreswa mubhuku. Yakatangwa Patroni. Akabva atanga Postgres. Kunyanya, usati watanga Postgres uye usati waita iyo replica, Patroni akatanga iyo pg_rewind maitiro. Nekudaro, akadzima chikamu chematanda ekutengeserana, akadhawunirodha matsva uye akabatana. Pano Patroni akashanda zvakachenjera, kureva, sezvaitarisirwa. Chisumbu chadzorerwa. Isu takanga tine 3 node, mushure meiyo filer 3 node - zvese zvinotonhorera.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Takarasa imwe data. Uye tinofanira kunzwisisa kuti takarasikirwa zvakadini. Tiri kutsvaga nguva chaiyo yatakaita rewind. Tinogona kuzviwana muzvinyorwa zvakadaro zvejenari. Rewind akatanga, akaita chimwe chinhu ipapo ndokupera.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Isu tinofanirwa kutsvaga chinzvimbo mugidhi rekutengesa pakasiya tenzi wekare. Muchiitiko ichi, ichi ndicho chiratidzo. Uye tinoda chiratidzo chechipiri, ndiko kuti, chinhambwe icho tenzi wekare anosiyana nacho kubva kune chitsva.

Isu tinotora yakajairwa pg_wal_lsn_diff toenzanisa aya maviri mamakisi. Uye munyaya iyi, tinowana 17 megabytes. Zvakawanda kana zvishoma, munhu wese anozvisarudzira. Nokuti kune mumwe munhu 17 megabytes haisi yakawanda, kune mumwe munhu yakawanda uye isingagamuchirwi. Pano, munhu wega wega anozvisarudzira zvinoenderana nezvinodiwa nebhizinesi.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Asi chii chatakawana pachedu?

Chekutanga, isu tinofanirwa kuzvisarudzira - isu tinogara tichida Patroni kuti atange otomatiki mushure mekutangazve system? Zvinowanzoitika kuti tinofanira kuenda kuna tenzi wekare, kuona kuti aenda kure zvakadini. Zvichida ongorora zvikamu zverogi yekutengeserana, ona zviripo. Uye kuti tinzwisise kana isu tichigona kurasikirwa nedata iri kana kuti tinoda kumhanya tenzi wekare mune yakamira modhi kuitira kuburitsa iyi data kunze.

Uye chete mushure meizvozvo isu tinofanira kusarudza kana isu tichigona kurasa iyi data kana isu tinokwanisa kuidzosera, batanidza iyi node seyakafanana kune yedu cluster.

Mukuwedzera, kune "maximum_lag_on_failover" parameter. Nekusagadzikana, kana ndangariro dzangu dzichindishandira, iyi parameter ine kukosha kwe1 megabyte.

Anoshanda sei? Kana replica yedu iri kumashure ne 1 megabyte yedata mune replication lag, saka replica iyi haitore chikamu musarudzo. Uye kana kamwe kamwe pane fileover, Patroni anotarisa kuti zvinyorwa zvipi zvakasara kumashure. Kana ivo vari kumashure nenhamba huru yekutengeserana matanda, havagone kuve ishe. Ichi chinhu chakanaka chekuchengetedza chinokutadzisa kurasikirwa nedata rakawanda.

Asi pane dambudziko pakuti replication lag muPatroni cluster uye DCS inovandudzwa pane imwe nguva. Ini ndinofunga masekonzi makumi matatu ndiyo yakasarudzika ttl kukosha.

Saizvozvo, panogona kunge paine mamiriro ekuti pane imwe yekudzokorodza lag ye replicas muDCS, asi kutaura zvazviri panogona kunge paine rakasiyana zvachose kana kuti panogona kunge pasina kunonoka zvachose, i.e. chinhu ichi hachisi nguva chaiyo. Uye haisi nguva dzose inoratidza mufananidzo chaiwo. Uye hazvina kukodzera kuita fancy logic pazviri.

Uye njodzi yekurasikirwa inogara iripo. Uye mune yakaipisisa kesi, imwe formula, uye muvhareji kesi, imwe fomula. Ndiko kuti, patinoronga kushandiswa kwePatroni uye kuongorora kuti yakawanda sei data yatinogona kurasikirwa nayo, tinofanira kuvimba nemafomu aya uye tichifungidzira kuti ingani data yatingarasikirwa nayo.

Uye kune mashoko akanaka. Kana tenzi wekare aenda kumberi, anogona kuenda kumberi nekuda kwemamwe maitiro ekumashure. Ndiko kuti, pakanga pane imwe mhando ye autovacuum, akanyora iyo data, akaichengeta kune yekutengeserana log. Uye isu tinogona kufuratira zviri nyore uye kurasikirwa nedata iri. Hapana dambudziko mune izvi.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye iyi ndiyo nzira iyo matanda anoita senge maximum_lag_on_failover akaiswa uye filer yaitika, uye iwe unofanirwa kusarudza tenzi mutsva. Replica inozviongorora pachayo seisingakwanise kutora chikamu musarudzo. Uye anoramba kubatanidzwa munhangemutange yemutungamiri. Uye anomirira kuti tenzi mutsva asarudzwe, kuitira kuti agozobatana nayo. Ichi chiyero chekuwedzera chinopesana nekurasikirwa nedata.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Pano tine timu yechigadzirwa yakanyora kuti chigadzirwa chavo chiri kunetsa nePostgres. Panguva imwecheteyo, tenzi pachake haakwanisi kuwanikwa, nokuti haisi kuwanikwa kuburikidza neSSH. Uye iyo autofile haina kuitika futi.

Uyu mugamuchiri akamanikidzwa kutangazve. Nekuda kwekutangazve, auto-faira yakaitika, kunyangwe zvaikwanisika kuita bhuku auto-faira, sezvandava kunzwisisa. Uye mushure mekutangazve, isu tave kutozoona zvataive nazvo naiyezvino tenzi.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Panguva imwe chete, takaziva kare kuti tine matambudziko nedhisiki, kureva kuti, isu taitoziva kubva pakuongorora pekuchera uye kutsvaga.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Takapinda mupostgres log, ndokutanga kuona zvaiitika imomo. Isu takaona kuzvipira kwekupedzisira ipapo kwesekondi imwe, mbiri, nhatu, izvo zvisiri zvakajairika. Isu takaona kuti yedu autovacuum inotanga zvishoma nezvishoma uye zvinoshamisa. Uye takaona mafaira enguva pfupi pa diski. Ndiko kuti, izvi zvose zviratidzo zvezvinetso ne disks.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Isu takatarisa muhurongwa dmesg (kernel log). Uye isu takaona kuti tine matambudziko neimwe yedhisiki. Iyo disk subsystem yaive software Raid. Takatarisa pa/proc/mdstat ndokuona kuti takanga tisina dhiraivha imwe chete. Ndiko kuti, pane Raid ye8 disks, isu tiri kurasikirwa neimwe. Kana iwe ukanyatsotarisa slide, ipapo mune zvakabuda iwe unogona kuona kuti isu hatina sde ipapo. Patiri, nemamiriro ekutaura, diski yadonha. Izvi zvakakonzera matambudziko edhisiki, uye zvikumbiro zvakasanganawo nematambudziko pakushanda nePostgres cluster.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye munyaya iyi, Patroni haazotibatsiri chero nzira, nokuti Patroni haana basa rekutarisa mamiriro evhavha, mamiriro e disk. Uye isu tinofanirwa kutarisa mamiriro akadai nekutarisa kwekunze. Isu takakurumidza kuwedzera dhisiki yekutarisa kune yekunze yekutarisa.

Uye paive nemufungo wakadaro - kufenda kana kuti watchdog software ingatibatsira here? Takafunga kuti angadai asina kutibatsira munyaya iyi, nokuti panguva yezvinetso Patroni akaramba achibatana neboka reDCS uye haana kuona dambudziko. Ndiko kuti, kubva pakuona kweDCS naPatroni, zvinhu zvose zvakanga zvakanaka nesumbu, kunyange zvazvo chaizvoizvo paiva nezvinetso ne diski, paiva nematambudziko nekuwanika kwedhesi.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Mukuona kwangu, iyi ndeimwe yematambudziko anoshamisa andakatsvakurudza kwenguva yakareba, ndakaverenga matanda akawanda, ndakatora zvakare uye ndakaitumidza kuti cluster simulator.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Dambudziko nderekuti tenzi wekare haaigona kuve mufananidzo wakajairika, i.e. Patroni akatanga, Patroni akaratidza kuti node iyi yaivepo seyakafanana, asi panguva imwechete yakanga isiri yakajairika. Zvino iwe uchaona chikonzero. Izvi ndizvo zvandakachengeta kubva pakuongorora dambudziko iro.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye zvakatanga sei? Yakatanga, sezvakaita dambudziko rakapfuura, ne disc mabhureki. Takanga tine zvisungo zvechipiri, zviviri.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Paive nekuputsika kwekubatanidza, kureva, vatengi vakabvarurwa.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Paive nema blockages ekuomarara kwakasiyana.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye, maererano, iyo diski subsystem haina kunyatso pindura.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye chinhu chisinganzwisisike kwandiri ndicho chikumbiro chekuvhara ipapo chakasvika. Postgres ine matatu yekudzima modes:

  • Zvinofadza kana tikamirira vatengi vese kuti vadzimure vega.
  • Pane kukurumidza apo isu tinomanikidza vatengi kuti vabvise nekuti isu tiri kuenda kudzima.
  • Uye pakarepo. Muchiitiko ichi, pakarepo haatauri vatengi kuti vavhare, inongovhara pasina yambiro. Uye kune vese vatengi, sisitimu yekushandisa inototumira meseji yeRST (meseji yeTCP yekuti kubatana kwakakanganiswa uye mutengi haana chimwe chinhu chekubata).

Ndiani akatumira chiratidzo ichi? Postgres kumashure maitiro hatumire masaini akadaro kune mumwe nemumwe, i.e. uku kuuraya-9. Ivo havatumire zvinhu zvakadaro kune mumwe nemumwe, ivo vanongoita kune zvinhu zvakadaro, i.e. uku ndiko kutangazve kwechimbichimbi kwePostgres. Ndiani akaitumira, handizivi.

Ndakatarisa murairo "wekupedzisira" ndikaona munhu mumwe akapindawo nesu mune iyi server, asi ndakanyara kubvunza mubvunzo. Pamwe kwaiva kuuraya -9. Ndaizoona kuuraya -9 mumatanda, nokuti Postgres inoti yakatora kuuraya -9, asi ini handina kuiona mumatanda.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Ndichitarisa mberi, ndakaona kuti Patroni haana kunyora kurogi kwenguva yakareba - 54 seconds. Uye kana tikaenzanisa timestamps mbiri, pakanga pasina mameseji kweanosvika 54 seconds.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye panguva iyi pakanga paine autofile. Patroni akaita basa guru pano zvakare. Tenzi wedu wekare akanga asipo, chimwe chinhu chakaitika kwaari. Uye kusarudzwa kweshe mutsva kwakatanga. Zvese zvakafamba zvakanaka apa. Yedu pgsql01 yave mutungamiri mutsva.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Isu tine replica yave shasha. Uye pane mhinduro yechipiri. Uye pakanga paine matambudziko ane replica yechipiri. Akaedza kugadzirisa zvakare. Sezvandinozvinzwisisa, akaedza kushandura recovery.conf, tangazve Postgres uye ubatanidze kuna tenzi mutsva. Anonyora mameseji mumasekonzi gumi ega ega aari kuyedza, asi haasi kubudirira.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye panguva yekuedza uku, chiratidzo chekuvhara-pakarepo chinosvika kune tenzi wekare. Tenzi anotangazve. Uye zvakare kupora kunomira nekuti tenzi wekare anoenda mukutangazve. Ndiko kuti, replica haigone kubatana nayo, nekuti iri mukuvhara mode.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Pane imwe nguva, yakashanda, asi kudzokorora hakuna kutanga.

Chandinongofungidzira ndechekuti pakanga paine kero yekare master mu recovery.conf. Uye pakaonekwa tenzi mutsva, mufananidzo wechipiri uchiri kuedza kubatana natenzi wekare.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Patroni paakatanga pamufananidzo wechipiri, node yakatanga asi haina kukwanisa kutevedzera. Uye replication lag rakaumbwa, raitaridzika seizvi. Kureva kuti, node dzose nhatu dzakanga dziri panzvimbo, asi yechipiri node yakasarira shure.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Panguva imwe chete, ukatarisa matanda akanyorwa, waigona kuona kuti kudzokorora kwaisagona kutanga nekuti matanda ekutengeserana aive akasiyana. Uye iwo matanda ekutengeserana anopihwa natenzi, ayo anotsanangurwa murecovery.conf, haakwane node yedu yazvino.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Zvino apa ndakanganisa. I had to come and see what was in recovery.conf to test my hypothesis kuti taibatana na wrong master. Asi ipapo ini ndaingotarisana neizvi uye hazvina kuitika kwandiri, kana ndakaona kuti replica yaive yasara kumashure uye yaizofanira kuzadzwa, kureva kuti, neimwe nzira ndakashanda zvisina hanya. Iri raive mubatanidzwa wangu.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Mushure memaminitsi makumi matatu, admin akatouya, i.e. ndakatangazve Patroni pane replica. Ndakatozvipedza, ndaifunga kuti yaizofanira kuzadzwazve. Uye ndakafunga - ndichatangazve Patroni, pamwe chimwe chinhu chakanaka chichabuda. Kupora kwakatanga. Uye chigadziko chakatovhurwa, chaive chagadzirira kugamuchira zvinongedzo.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Kudzokorora kwatanga. Asi kwapera miniti, akadonha aine chikanganiso chekuti transaction logs haana kumukodzera.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Ndakafunga kuti ndichatanga zvakare. Ini ndakatangazve Patroni zvakare, uye handina kutangazve Postgres, asi ndakatangazve Patroni netariro yekuti yaizotanga nemashiripiti dhatabhesi.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Kudzokorodza kwakatanga zvakare, asi mamaki murogi yekutengeserana aive akasiyana, akange asina kufanana nekuyedza kwekutanga. Kudzokorora kwakamira zvakare. Zvino shoko rakanga ratosiyana zvishoma. Uye yakanga isinganyanyi kudzidzisa kwandiri.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye zvino zvinoitika kwandiri - ko kana ndikatangidzazve Postgres, panguva ino ndinoita cheki pane tenzi aripo kuti ndifambise poindi murogi yekutengeserana zvishoma kumberi kuti kupora kutange kubva pane imwe nguva? Uyezve, isu tichine mastock eWAL.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Ndakatangazve Patroni, ndakaita macheckpoints akati wandei pane tenzi, akati wandei mapoinzi ekutangisa pane replica payakavhurwa. Uye zvakabatsira. Ndakafunga kwenguva yakareba kuti sei yaibatsira uye kuti yakashanda sei. Uye replica yakatanga. Uye kudzokorora kwakanga kusisina kubvaruka.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Dambudziko rakadai kwandiri nderimwe rezvisinganzwisisike, pamusoro pazvo ini ndichiri kunetsekana pamusoro pezvakaitika ipapo.

Ndezvipi zvinorehwa pano? Patroni anogona kushanda sezvakarongwa uye pasina chero zvikanganiso. Asi panguva imwe chete, iyi haisi 100% vimbiso yokuti zvinhu zvose zvakanaka nesu. Iyo replica inogona kutanga, asi inogona kunge iri mune semi-kushanda mamiriro, uye application haigone kushanda neiyo replica, nekuti pachava nedata rekare.

Uye mushure meiyo filer, iwe unofanirwa kutarisa nguva dzose kuti zvinhu zvese zvakarongeka nesumbu, ndiko kuti, pane nhamba inodiwa yekudzokorora, hapana replication lag.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Uye sezvatinofamba nenyaya idzi, ini ndichaita zvirevo. Ndakaedza kuabatanidza kuva masiraidhi maviri. Pamwe, nyaya dzese dzaigona kubatanidzwa kuita masiraidhi maviri uye kungotaurwa chete.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Paunoshandisa Patroni, unofanirwa kuve nekutarisa. Iwe unofanirwa kugara uchiziva pakaitika autofileover, nekuti kana iwe usingazive kuti wanga uine autofileover, iwe hauna simba pamusoro pesumbu. Uye zvakaipa.

Mushure meimwe neimwe filer, isu tinogara tichifanira kutarisa nemaoko sumbu. Isu tinofanirwa kuve nechokwadi chekuti isu tinogara tine nhamba-yezvino yezvinyorwa, hapana kudzokorora lag, hapana zvikanganiso mumatanda ane chekuita nekutepfenyura kudzokorora, naPatroni, neDCS system.

Automation inogona kushanda zvinobudirira, Patroni chishandiso chakanaka kwazvo. Inogona kushanda, asi izvi hazvizounzi cluster kune inodiwa mamiriro. Uye kana tikasaziva nezvazvo, tinopinda mudambudziko.

Uye Patroni haisi bara resirivha. Tichiri kuda kunzwisisa kuti Postgres inoshanda sei, kudzokorora kunoshanda sei uye kuti Patroni anoshanda sei nePostgres, uye kuti kutaurirana pakati pemanodhi kunopihwa sei. Izvi zvinodiwa kuitira kuti ugone kugadzirisa matambudziko nemaoko ako.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Ndoita sei nenyaya yekuongororwa? Zvakaitika kuti isu tinoshanda nevatengi vakasiyana uye hapana ane ELK stack, uye isu tinofanirwa kugadzirisa matanda nekuvhura 6 consoles uye 2 tabo. Mune imwe tebhu, aya ndiwo maPatroni matanda eimwe node, mune imwe tebhu, aya ndiwo maConsul matanda, kana Postgres kana zvichidikanwa. Zvakaoma zvikuru kuziva izvi.

Ndedzipi nzira dzandagadzira? Kutanga, ndinogara ndichitarisa kana filer yasvika. Uye kwandiri iri idepo remvura. Ini ndinotarisa zvakaitika pamberi peiyo filer, panguva yefaira uye mushure meiyo filer. Iyo fileover ine mamakisi maviri: iyi ndiyo nguva yekutanga uye yekupedzisira.

Tevere, ini ndinotarisa mumatanda ezviitiko pamberi peiyo filer, iyo yakatangira iyo filer, i.e. Ndinotarisa zvikonzero nei filer yakaitika.

Uye izvi zvinopa mufananidzo wekunzwisisa zvakaitika uye zvinogona kuitwa mune ramangwana kuitira kuti mamiriro ezvinhu akadaro arege kuitika (uye somugumisiro, hapana filer).

Uye tinowanzotarisa kupi? Ndinotarisa:

  • Kutanga, kune Patroni matanda.
  • Tevere, ndinotarisa matanda ePostgres, kana matanda eDCS, zvichienderana nezvakawanikwa mumatanda ePatroni.
  • Uye matanda ehurongwa zvakare dzimwe nguva anopa kunzwisisa kwezvakakonzera iyo filer.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Ndinonzwa sei nezvaPatroni? Ndine hukama hwakanaka kwazvo naPatroni. Mukuona kwangu, izvi ndizvo zvakanakisisa zviripo nhasi. Ndinoziva zvimwe zvigadzirwa zvakawanda. Aya ndiwo Stolon, Repmgr, Pg_auto_failover, PAF. 4 zvishandiso. Ndakaedza ose. Patroni ndiye wandinoda.

Kana vakandibvunza: "Ndinokurudzira Patroni here?". Ndichati hongu, nokuti ndinoda Patroni. Uye ndinofunga kuti ndakadzidza kubika.

Kana iwe uchida kuona kuti ndeapi mamwe matambudziko aripo naPatroni kunze kwematambudziko andataura, unogona kugara uchitarisa peji nyaya paGitHub. Kune nyaya dzakawanda dzakasiyana uye nyaya dzakawanda dzinonakidza dzinokurukurwa imomo. Uye semhedzisiro, mamwe mabhugi akaunzwa uye akagadziriswa, ndiko kuti, iyi inonakidza kuverenga.

Kune dzimwe nyaya dzinonakidza pamusoro pevanhu vanozvipfura mutsoka. Inodzidzisa zvakanyanya. Unoverenga uye unonzwisisa kuti hazvidikanwi kuita kudaro. Ndakazvikwenya.

Uye ndinoda kutaura kuvonga kukuru kuna Zalando nekugadzira chirongwa ichi, icho kuna Alexander Kukushkin naAlexey Klyukin. Aleksey Klyukin ndomumwe wevanyori-vanyori, haachashandi kuZalando, asi ava ndivo vanhu vaviri vakatanga kushanda nechigadzirwa ichi.

Uye ndinofunga kuti Patroni chinhu chakanyanya kunaka. Ndiri kufara kuti ariko, zvinonakidza naye. Uye kutenda kukuru kune vese vanopa vanonyora zvigamba kuna Patroni. Ndinovimba kuti Patroni achave akakura, anotonhorera uye anoshanda nezera. Yatove kushanda, asi ndinovimba ichawedzera kuita nani. Saka, kana ukaronga kushandisa Patroni, saka usatya. Iyi ndiyo mhinduro yakanaka, inogona kushandiswa uye kushandiswa.

Ndizvo zvose. Kana uine mibvunzo, bvunza.

Patroni Kutadza Nhau kana Maitiro ekupwanya yako PostgreSQL cluster. Alexey Lesovsky

Mibvunzo yako

Ndatenda nemushumo! Kana mushure mefaira iwe uchiri kuda kutarisa ipapo zvakanyatsonaka, saka nei tichida otomatiki faira?

Nokuti zvinhu zvitsva. Tangove negore tiinaye. Zvirinani kuve wakachengeteka. Tinoda kuuya mukati toona kuti zvinhu zvese zvakanyatsofamba sezvazvaifanira. Iyi ndiyo nhanho yekusavimba kwevanhu vakuru - zviri nani kupeta-kutarisa uye kuona.

Semuenzaniso, takaenda mangwanani uye takatarisa, handiti?

Kwete mangwanani, isu tinowanzo dzidza nezve autofile nekukurumidza. Isu tinogashira zviziviso, tinoona kuti autofile yaitika. Takabva tangoenda kunotarisa. Asi ese aya macheki anofanirwa kuunzwa padanho rekutarisisa. Kana iwe ukawana Patroni kuburikidza neREST API, pane nhoroondo. Nenhoroondo iwe unogona kuona timestamps pakaitika filer. Kubva pane izvi, kuongorora kunogona kuitwa. Iwe unogona kuona nhoroondo, kuti zvingani zviitiko zvaivepo. Kana isu tine zvimwe zviitiko, ipapo autofile yaitika. Unogona kuenda unoona. Kana yedu yekutarisa otomatiki yakatarisa kuti isu tine zvese replicas munzvimbo, hapana lag uye zvese zvakanaka.

Ndinokutendai!

Ndatenda zvikuru nenyaya yakanaka! Kana isu takaendesa cluster yeDCS kumwe kure nePostgres cluster, saka cluster iyi inodawo kushandirwa nguva nenguva? Ndeapi maitiro akanakisa ayo mamwe zvidimbu zveDCS cluster zvinoda kudzimwa, chimwe chinhu chinofanira kuitwa nazvo, nezvimwe? Chimiro chese ichi chinorarama sei? Uye unoita sei zvinhu izvi?

Kune imwe kambani, zvaive zvakafanira kuita matrix yematambudziko, chii chinoitika kana chimwe chezvikamu kana zvimwe zvikamu zvakakundikana. Zvinoenderana neiyo matrix, isu tinotevedzana tichipinda muzvikamu zvese uye tinovaka mamiriro kana kutadza kwezvikamu izvi. Saizvozvo, kune yega yega yekutadza mamiriro, iwe unogona kuve nehurongwa hwekuita hwekupora. Uye panyaya yeDCS, inouya sechikamu chezvakajairwa zvivakwa. Uye iyo admin inozvitonga, uye isu tatovimba nema admins vanoitungamira uye kugona kwavo kuigadzirisa kana pakaitika tsaona. Kana pasina DCS zvachose, saka tinoitumira, asi panguva imwe chete hatisi kunyanya kuitarisa, nokuti isu hatisi mhaka yezvivakwa, asi tinopa mazano pamusoro pekuti sei uye chii chatinofanira kutarisa.

Ndiko kuti, ndakanzwisisa here kuti ndinoda kudzima Patroni, kudzima iyo filer, kudzima zvese ndisati ndaita chero chinhu nevatambi?

Zvinoenderana nekuti mangani ma nodes atinawo muDCS cluster. Kana paine node dzakawanda uye kana tikadzima imwe chete yemanodhi (iyo replica), ipapo cluster inochengetedza quorum. Uye Patroni anoramba achishanda. Uye hapana chinoitwa. Kana isu tiine mamwe maoparesheni akaomarara anokanganisa mamwe ma node, kusavapo kwayo kunogona kukanganisa quorum, saka - hongu, zvingaite zvine musoro kuisa Patroni pakumbomira. Iine murairo unoenderana - patronictl pause, patronictl resume. Isu tinongomira uye iyo autofiler haishande panguva iyoyo. Isu tinoita kugadzirisa pane DCS cluster, tobva tabvisa pause toramba tichirarama.

Ndinokutendai zvikuru!

Ndinokutendai zvikuru nemushumo wenyu! Chikwata chechigadzirwa chinonzwa sei nezvekurasika kwedata?

Zvikwata zvechigadzirwa hazvina basa, uye vanotungamira timu vari kunetsekana.

Ndezvipi zvivimbiso zviripo?

Guarantees yakaoma zvikuru. Alexander Kukushkin ane mushumo "Maitiro ekuverenga RPO neRTO", i.e. nguva yekudzorera uye kuti yakawanda sei data yatingarasikirwa nayo. Ndinofunga tinofanira kuwana masiraidhi aya toadzidza. Sekurangarira kwandinorangarira, kune matanho chaiwo ekuti ungaverenge sei zvinhu izvi. Mangani ekutengeserana atinogona kurasikirwa, yakawanda sei data yatinogona kurasikirwa nayo. Sesarudzo, isu tinogona kushandisa synchronous kudzokorora paPatroni level, asi iri munondo unocheka kaviri: isu tingave nekuvimbika kwedata, kana tinorasikirwa nekumhanya. Iko kune synchronous replication, asi zvakare haivimbisi 100% kuchengetedzwa kubva pakurasikirwa nedata.

Alexey, ndatenda neshumo yakanaka! Chero chiitiko nekushandisa Patroni kune zero level dziviriro? Kureva, pamwe chete synchronous standby? Uyu ndiwo mubvunzo wekutanga. Uye mubvunzo wechipiri. Washandisa mhinduro dzakasiyana. Isu takashandisa Repmgr, asi pasina autofiler, uye ikozvino tiri kuronga kuisa autofiler. Uye isu tinofunga Patroni seimwe mhinduro. Chii chaungataure sezvakanaka zvichienzaniswa neRepmgr?

Mubvunzo wekutanga waive nezve synchronous replicas. Hapana anoshandisa synchronous kudzokorora pano, nekuti munhu wese anotya (Vatengi vakati wandei vari kutoishandisa, musimboti, havana kuona matambudziko ekuita - Chinyorwa chemutauri) Asi isu takazvigadzirira mutemo pachedu wekuti panofanira kunge paine angangoita matatu nodes musynchronous replication cluster, nekuti kana tiine nodes mbiri uye kana tenzi kana replica ikatadza, Patroni anochinja iyi node kuenda kuStandalone mode kuti application irambe ichienderera mberi. shanda. Muchiitiko ichi, pane ngozi yekurasikirwa kwemashoko.

Nezvemubvunzo wechipiri, isu takashandisa Repmgr uye tichiri kuita nevamwe vatengi nekuda kwezvikonzero zvenhoroondo. Chii chingataurwa? Patroni anouya neautofiler kunze kwebhokisi, Repmgr inouya ne autofiler sechimwe chinhu chinoda kugoneswa. Isu tinofanirwa kumhanyisa Repmgr daemon pane imwe neimwe node uye tobva tagadzirisa iyo autofiler.

Repmgr inotarisa kana Postgres node dziri vapenyu. Repmgr maitiro ekutarisa kuvepo kweumwe neumwe, iyi haisi nzira inoshanda. panogona kuve nenyaya dzakaomarara dzekuzviparadzanisa netiweki umo iyo hombe yeRepmgr cluster inogona kudonha kuita akati wandei madiki uye kuenderera mberi nekushanda. Ini ndanga ndisiri kutevera Repmgr kwenguva yakareba, pamwe yakagadziriswa ... kana pamwe kwete. Asi kubviswa kweruzivo nezve mamiriro eboka muDCS, sezvinoita Stolon, Patroni, ndiyo inonyanya kushanda sarudzo.

Alexey, ndine mubvunzo, pamwe wakaremara. Mune mumwe wemienzaniso yekutanga, wakatamisa DCS kubva kumushini wepano kuenda kune iri kure. Tinonzwisisa kuti network chinhu chine hunhu hwayo, chinorarama chega. Uye chii chinoitika kana nekuda kwechimwe chikonzero sumbu reDCS rikasawanikwa? Ini handisi kuzotaura zvikonzero, panogona kuve nezvakawanda kwazvo: kubva pamaoko akatsveyama enetwork kune matambudziko chaiwo.

Handina kuzvitaura zvinonzwika, asi chikwata cheDCS chinofanirwawo kunge chakakundikana, kureva kuti nhamba isinganzwisisike yemanodhi, kuitira kuti quorum izadziswe. Chii chinoitika kana cluster yeDCS ikashaikwa, kana kuti koramu ikatadza kuzadzikiswa, kureva imwe mhando yetiweki yekupatsanurwa kana kutadza kwenodhi? Muchiitiko ichi, boka rePatroni rinopinda mukuverenga chete mode. Iyo Patroni cluster haigone kuona mamiriro esumbu uye zvekuita. Haikwanise kubata neDCS uye kuchengeta iyo itsva cluster state ipapo, saka sumbu rese rinopinda mukuverenga chete. Uye inomirira kupindira kwemaoko kubva kumushandisi kana kuti DCS iwanezve.

Zvichireva kutaura, DCS inova sevhisi kwatiri yakakosha sehwaro pachayo?

Hongu Hongu. Mumakambani mazhinji emazuva ano, Service Discovery chikamu chakakosha chezvivakwa. Iri kuitwa kunyange pasati pave nedatabase mune zvivakwa. Zvichireva kutaura, zvivakwa zvakatangwa, zvakaiswa muDC, uye isu takabva tangove neSevhisi Discovery. Kana iri Consul, ipapo DNS inogona kuvakwa pairi. Kana izvi zviri Etcd, ipapo panogona kunge paine chikamu kubva kuKubernetes cluster, umo zvimwe zvese zvichaiswa. Zvinoratidzika kwandiri kuti Service Discovery yatove chikamu chakakosha chezvivakwa zvemazuva ano. Uye ivo vanofunga nezvazvo kare kare kupfuura nezve databases.

Ndinokutendai!

Source: www.habr.com

Voeg