Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Sepheo se seholo sa Patroni ke ho fana ka Phano e Phahameng ea PostgreSQL. Empa Patroni ke template feela, eseng sesebelisoa se lokiselitsoeng (seo, ka kakaretso, se boleloang ka litokomane). Ha u habanya feela, ha u se u thehile Patroni ka laboratoring ea liteko, u ka bona hore na sesebelisoa se seholo ke sefe le hore na se sebetsana le liteko tsa rona tsa ho senya sehlopha joang habonolo. Leha ho le joalo, ka ts'ebetso, tikolohong ea tlhahiso, ntho e 'ngoe le e' ngoe ha e etsahale ka bokhabane le ka bokhabane joalo ka lab ea liteko.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ke tla u bolella hanyenyane ka 'na. Ke qalile ke le motsamaisi oa sistimi. E sebelitse ntlafatsong ea webo. Ke ntse ke sebetsa Data Egret ho tloha 2014. Khampani e kopanela ho buisana tšimong ea Postgres. Mme re sebeletsa Postgres hantle, mme re sebetsa le Postgres letsatsi le leng le le leng, kahoo re na le boiphihlelo bo fapaneng bo amanang le ts'ebetso.

'Me qetellong ea 2018, re ile ra qala ho sebelisa Patroni butle-butle. 'Me phihlelo e itseng e bokeletsoe. Re ile ra e fumana ka tsela e itseng, ra e hlophisa, ra tla mekhoeng ea rona e metle. Mme tlalehong ena ke tla bua ka tsona.

Ntle le Postgres, ke rata Linux. Ke rata ho pota-pota ho eona le ho hlahloba, ke rata ho bokella li-cores. Ke rata virtualization, lijana, docker, Kubernetes. Tsena tsohle lia nthahasa, hobane litloaelo tsa khale tsa admin lia ama. Ke rata ho sebetsana le ho beha leihlo. 'Me ke rata lintho tsa postgres tse amanang le tsamaiso, i.e. replication, backup. 'Me ka nako ea ka ea phomolo ke ngola ho Go. Ha ke moenjiniere oa software, ke ingolla feela ho Go. 'Me hoa nthabisa.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

  • Ke nahana hore bongata ba lona lea tseba hore Postgres ha e na HA (Boteng bo Phahameng) ka ntle ho lebokose. Ho fumana HA, o hloka ho kenya ntho e itseng, ho e lokisa, ho etsa boiteko le ho e fumana.
  • Ho na le lisebelisoa tse 'maloa' me Patroni ke e 'ngoe ea tsona e rarollang HA e pholile ebile e ntle haholo. Empa ka ho e kenya ka har'a lab ea liteko le ho e tsamaisa, re ka bona hore e sebetsa kaofela, re ka hlahisa mathata a mang, re bone kamoo Patroni a ba sebeletsang kateng. 'Me re tla bona hore tsohle li sebetsa hantle.
  • Empa ha e le hantle, re ile ra tobana le mathata a fapaneng. 'Me ke tla bua ka mathata ana.
  • Ke tla u bolella hore na re e fumane joang, seo re se entseng - hore na e re thusitse kapa che.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

  • Nke ke ka u bolella mokhoa oa ho kenya Patroni, hobane u ka sebelisa google ho Internet, u ka sheba lifaele tsa tlhophiso ho utloisisa hore na e qala joang, hore na e hlophisitsoe joang. U ka utloisisa merero, meaho, ho fumana tlhahisoleseling ka eona inthaneteng.
  • Nke ke ka bua ka phihlelo ea motho e mong. Ke tla bua feela ka mathata ao re ileng ra tobana le ona.
  • 'Me nke ke ka bua ka mathata a ka ntle ho Patroni le PostgreSQL. Haeba, ka mohlala, ho na le mathata a amanang le ho leka-lekanya, ha sehlopha sa rona se oele, nke ke ka bua ka eona.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Le boitlamo bo bonyenyane pele re qala tlaleho ea rona.

Mathata ana kaofela ao re kopaneng le ona, re bile le ona likhoeling tsa pele tsa 6-7-8 tsa ts'ebetso. Ha nako e ntse e ea, re ile ra tla ho mekhoa ea rona e metle ea kahare. Mme mathata a rona a ile a nyamela. Ka hona, tlaleho e ile ea phatlalatsoa hoo e ka bang likhoeli tse tšeletseng tse fetileng, ha e ne e le ncha ka hloohong ea ka 'me ke e hopola ka ho phethahetseng.

Ha ke ntse ke lokisetsa tlaleho, ke ne ke se ke phahamisitse li-postmortem tsa khale, ke shebile lifate. 'Me lintlha tse ling li ka lebaloa, kapa lintlha tse ling li ne li ke ke tsa batlisisoa ka botlalo nakong ea ho hlahlojoa ha mathata, kahoo ka linako tse ling ho ka bonahala eka mathata ha a nahane ka botlalo, kapa ho na le ho hloka boitsebiso. Mme ka hona ke kopa o ntshwarele motsotso ona.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Patroni ke eng?

  • Ena ke template ea ho aha HA. Ke seo e se bolelang litokomaneng. 'Me ho ea ka pono ea ka, ena ke tlhaloso e nepahetseng haholo. Patroni hase bullet ea silevera e tla rarolla mathata ohle a hau, ke hore, u lokela ho etsa boiteko ba ho e etsa hore e sebetse le ho tlisa melemo.
  • Ena ke ts'ebeletso ea moemeli e kentsoeng ts'ebeletso e 'ngoe le e' ngoe ea database mme ke mofuta oa sistimi ea init bakeng sa Postgres ea hau. E qala Postgres, e emisa, e qala bocha, e hlophisa bocha, 'me e fetola topology ea sehlopha sa hau.
  • Ka lebaka leo, e le ho boloka boemo ba sehlopha, boemeli ba eona ba hona joale, kamoo bo shebahalang kateng, ho hlokahala mofuta o itseng oa polokelo. 'Me ho tloha ntlheng ena ea pono, Patroni o ile a nka tsela ea ho boloka mmuso tsamaisong ea kantle. Ke mokhoa oa ho boloka litlhophiso tse ajoang. E ka ba Etcd, Consul, ZooKeeper, kapa kubernetes Etcd, ke hore e 'ngoe ea likhetho tsena.
  • 'Me e' ngoe ea likarolo tsa Patroni ke hore u ntša autofiler ka lebokoseng, feela ka ho e beha. Haeba re nka Repmgr ho bapisa, joale filer e kenyelelitsoe moo. Ka Repmgr, re fumana switchover, empa haeba re batla autofiler, re hloka ho e hlophisa hape. Patroni o se a ntse a e-na le autofiler ka ntle ho lebokose.
  • 'Me ho na le lintho tse ling tse ngata. Ka mohlala, tlhokomelo ea litlhophiso, ho tšollela likopi tse ncha, bekapo, joalo-joalo Empa sena se ka holimo ho tekanyo ea tlaleho, nke ke ka bua ka eona.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me sephetho se senyenyane ke hore mosebetsi o ka sehloohong oa Patroni ke ho etsa autofile hantle le ka botšepehi e le hore sehlopha sa rona se lule se sebetsa' me kopo ha e hlokomele liphetoho ho topology ea lihlopha.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Empa ha re qala ho sebelisa Patroni, tsamaiso ea rona e ba thata haholoanyane. Haeba pejana re ne re e-na le Postgres, joale ha re sebelisa Patroni re fumana Patroni ka boeona, re fumana DCS moo naha e bolokiloeng teng. 'Me tsohle li tlameha ho sebetsa ka tsela e itseng. Joale ke eng e ka senyehang?

E ka 'na ea robeha:

  • Li-postgres li ka 'na tsa robeha. E ka ba master kapa replica, e 'ngoe ea tsona e ka hloleha.
  • Patroni ka boeona e ka 'na ea robeha.
  • DCS moo mmuso o bolokoang o ka robeha.
  • 'Me marang-rang a ka senyeha.

Lintlha tsena kaofela ke tla li hlahloba tlalehong.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ke tla nahana ka linyeoe ha li ntse li rarahane haholoanyane, eseng ho latela pono ea hore nyeoe e kenyelletsa likarolo tse ngata. 'Me ho tloha ponong ea maikutlo a subjective, hore nyeoe ena e ne e le thata ho' na, ho ne ho le thata ho e arola ... 'me ka tsela e fapaneng, nyeoe e 'ngoe e ne e le bobebe' me ho ne ho le bonolo ho e qhaqha.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me nyeoe ea pele ke eona e bonolo ka ho fetisisa. Ho bile joalo ha re ne re nka sehlopha sa database mme re beha polokelo ea rona ea DCS sehlopheng se le seng. Ena ke phoso e tloaelehileng haholo. Ena ke phoso ea ho haha ​​​​mehaho, ke hore, ho kopanya likarolo tse fapaneng sebakeng se le seng.

Ka hona, ho ne ho e-na le filer, ha re eeng ho sebetsana le se etsahetseng.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me mona re thahasella hore na filer e etsahetse neng. Ke hore, re thahasella motsotso ona nakong eo boemo ba sehlopha bo fetohileng.

Empa filer ha e lule e le hang hang, ke hore, ha e nke nako, e ka lieha. E ka nka nako e telele.

Ka hona, e na le nako ea ho qala le nako ea ho qetela, ke hore ke ketsahalo e tsoelang pele. 'Me re arola liketsahalo tsohle ka linako tse tharo: re na le nako pele ho filer, nakong ea filer le ka morao ho filer. Ke hore, re nahana ka liketsahalo tsohle tsa kemiso ena ea nako.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me ntho ea pele, ha filer e etsahala, re sheba sesosa sa se etsahetseng, hore na sesosa e ne e le sefe se lebisitseng ho filer.

Haeba re sheba lifate, e tla ba li-logs tsa khale tsa Patroni. O re bolella ho bona hore seva se fetohile monghali, 'me karolo ea monghali e fetisitse ho node ena. Mona ho totobatsoa.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ka mor'a moo, re hloka ho utloisisa hore na ke hobane'ng ha filer e etsahetse, ke hore na ke liketsahalo life tse ileng tsa etsa hore karolo e ka sehloohong e tsamaee ho tloha sebakeng se seng ho ea ho se seng. 'Me tabeng ena, ntho e' ngoe le e 'ngoe e bonolo. Re na le phoso ha re sebelisana le sistimi ea polokelo. Monghali o ile a hlokomela hore a ke ke a sebetsa le DCS, ke hore, ho na le bothata ba mofuta o itseng ka tšebelisano. ’Me o re ha a sa khona ho ba monghali ’me oa itokolla mosebetsing. Mola ona "ho inyenyefatsa" o bua joalo hantle.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Haeba re sheba liketsahalo tse etellang pele ho filer, re ka bona moo mabaka a neng a le bothata bakeng sa ho tsoela pele ha wizard.

Haeba re sheba li-logs tsa Patroni, re tla bona hore re na le liphoso tse ngata, ho qeta nako, ke hore, moemeli oa Patroni a ke ke a sebetsa le DCS. Tabeng ena, ke moemeli oa Consul, ea buisanang le port 8500.

Mme bothata mona ke hore Patroni le database li sebetsa ho moamoheli a le mong. Mme li-server tsa Consul li ile tsa hlahisoa sebakeng se le seng. Ka ho theha mojaro ho seva, re bakile mathata bakeng sa li-server tsa Consul hape. Ba ne ba sa khone ho buisana hantle.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ka mor’a nako e itseng, ha mojaro o kokobela, Patroni oa rōna o ile a khona ho buisana le baemeli hape. Mosebetsi o tloaelehileng o ile oa qala hape. 'Me seva se tšoanang sa Pgdb-2 se ile sa fetoha setsebi hape. Ke hore, ho ne ho e-na le flip e nyenyane, ka lebaka leo node e ileng ea tlohela matla a mong'a eona, ebe e ba nka hape, ke hore, ntho e 'ngoe le e' ngoe e ile ea khutla kamoo e neng e le kateng.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me sena se ka nkoa e le alamo ea bohata, kapa ho ka nkoa hore Patroni o entse ntho e' ngoe le e 'ngoe hantle. Ke hore, o ile a hlokomela hore a ke ke a boloka boemo ba sehlopha mme a tlosa bolaoli ba hae.

'Me mona bothata bo ile ba hlaha ka lebaka la hore li-server tsa Consul li ho hardware e tšoanang le metheo. Ka hona, mojaro ofe kapa ofe: ebang ke mojaro oa li-disk kapa li-processor, o boetse o ama tšebelisano le sehlopha sa Consul.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me re ile ra etsa qeto ea hore ha ea lokela ho lula hammoho, re ile ra abela sehlopha se arohaneng bakeng sa Consul. 'Me Patroni o ne a se a ntse a sebetsa le Consul e arohaneng, ke hore, ho ne ho e-na le sehlopha se arohaneng sa Postgres, sehlopha se arohaneng sa Consul. Ena ke taelo ea motheo ea ho jara le ho boloka lintho tsena kaofela e le hore li se ke tsa phela hammoho.

Joalo ka khetho, o ka sotha liparamente ttl, loop_wait, retry_timeout, ke hore, leka ho pholoha litlhoro tsena tsa nako e khuts'oane ka ho eketsa litekanyetso tsena. Empa sena ha se khetho e nepahetseng ka ho fetisisa, hobane mojaro ona o ka nka nako e telele. 'Me re tla feta feela meeli ena ea li-parameter tsena. 'Me seo se ka 'na sa se ke sa thusa.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Bothata ba pele, joalo ka ha u utloisisa, bo bonolo. Re ile ra nka le ho kopanya DCS hammoho le base, ra fumana bothata.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Bothata ba bobeli bo tšoana le ba pele. Hoa tšoana ka hore re boetse re na le mathata a ho sebelisana le tsamaiso ea DCS.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Haeba re sheba lifate, re tla bona hore re boetse re na le phoso ea puisano. 'Me Patroni o re ha ke khone ho sebelisana le DCS kahoo mong'a hona joale o kena ka mokhoa oa replica.

Monghali oa khale o fetoha setšoantšo, mona Patroni o sebetsa, joalo ka ha ho lokela ho ba joalo. E tsamaisa pg_rewind ho khutlisa log ea transaction ebe e hokela ho master e mocha ho fumana master e mocha. Mona Patroni o sebetsa, joalo ka ha a lokela.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Mona re tlameha ho fumana sebaka se tlileng pele ho filer, ke hore liphoso tseo tse entseng hore re be le filer. 'Me tabeng ena, li-logs tsa Patroni li bonolo haholo ho sebetsa le tsona. O ngola melaetsa e tšoanang ka nako e itseng. 'Me haeba re qala ho phalla ka har'a lifate tsena ka potlako, joale re tla bona ho tloha ho li-logs hore lifate li fetohile, e leng se bolelang hore mathata a mang a qalile. Re khutlela sebakeng sena kapele, ho bona se etsahalang.

'Me maemong a tloaelehileng, lifate li shebahala tjena. Mong'a senotlolo oa hlahlojoa. 'Me haeba mong'a lona, ​​ka mohlala, a fetohile, joale liketsahalo tse ling li ka' na tsa etsahala tseo Patroni a lokelang ho li arabela. Empa tabeng ena, re hantle. Re batla moo liphoso li qalileng teng.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me ha re se re tsamaisitse moo liphoso li qalileng ho hlaha, rea bona hore re bile le auto-fileover. 'Me kaha liphoso tsa rona li ne li amana le ho sebelisana le DCS 'me tabeng ea rona re sebelisitse Consul, re boetse re sheba li-logs tsa Consul, hore na ho etsahetse'ng moo.

Ha re bapisa nako ea motlatsi le nako ea li-logs tsa Consul, rea bona hore baahelani ba rona ba sehlopha sa Consul ba ile ba qala ho belaela boteng ba litho tse ling tsa Consul cluster.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me haeba u boetse u sheba lifate tsa baemeli ba bang ba Consul, u ka boela ua bona hore mofuta o mong oa ho putlama ha marang-rang ho etsahala moo. 'Me litho tsohle tsa sehlopha sa Consul li belaella boteng ba e mong. 'Me sena e ne e le ts'usumetso ho filer.

Haeba u sheba se etsahetseng pele ho liphoso tsena, u ka bona hore ho na le mefuta eohle ea liphoso, mohlala, nako ea ho qetela, RPC e oele, ke hore, ho hlakile hore ho na le bothata ba mofuta o itseng oa ho sebelisana ha litho tsa sehlopha sa Consul le tse ling. .

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Karabo e bonolo ka ho fetisisa ke ho lokisa marang-rang. Empa ho nna, ha ke eme sethaleng, ho bonolo ho bua sena. Empa maemo a joalo hoo e seng kamehla moreki a ka khonang ho lokisa marang-rang. E ka 'na eaba o lula DC 'me a se ke a khona ho lokisa marang-rang, a ama lisebelisoa. Ka hona, ho hlokahala likhetho tse ling.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ho na le likhetho:

  • Khetho e bonolo ka ho fetisisa, e ngotsoeng, ka maikutlo a ka, esita le litokomaneng, ke ho thibela licheke tsa Consul, ke hore, ho fetisa feela lethathamo le se nang letho. 'Me re bolella moemeli oa Consul hore a se ke a sebelisa licheke. Ka licheke tsena, re ka iphapanyetsa lifefo tsena tsa marang-rang mme re se ke ra qala faele.
  • Khetho e 'ngoe ke ho hlahloba habeli raft_multiplier. Ena ke parameter ea seva sa Consul ka boeona. Ka ho sa feleng, e behiloe ho 5. Boleng bona bo khothaletsoa ke litokomane tsa libaka tsa sethala. Ha e le hantle, sena se ama makhetlo a mangata a melaetsa pakeng tsa litho tsa marang-rang a Consul. Ha e le hantle, parameter ena e ama lebelo la puisano ea tšebeletso pakeng tsa litho tsa sehlopha sa Consul. 'Me bakeng sa tlhahiso, e se e khothalelitsoe ho e fokotsa e le hore li-node li fapanyetsane melaetsa hangata.
  • Khetho e 'ngoe eo re e hlahisitseng ke ho eketsa bohlokoa ba lits'ebetso tsa Consul har'a lits'ebetso tse ling bakeng sa kemiso ea tšebetso ea sistimi ea ts'ebetso. Ho na le paramente e "ntle" joalo, e khetha feela hore na lits'ebetso tse tlang pele li eloa hloko ke mohlophisi oa OS ha a hlophisa. Hape re fokolitse boleng bo botle ba baemeli ba Consul, i.e. e ekelitse lintho tse tlang pele e le hore sistimi ea ts'ebetso e fe mekhoa ea Consul nako e eketsehileng ea ho sebetsa le ho etsa khoutu ea bona. Tabeng ea rōna, sena se ile sa rarolla bothata ba rōna.
  • Khetho e 'ngoe ke ho se sebelise Consul. Ke na le motsoalle eo e leng motšehetsi e moholo oa Etcd. 'Me re lula re ngangisana le eena hore na ho molemo hofe Etcd kapa Consul. Empa mabapi le hore na ho molemo hakae, hangata re lumellana le eena hore Consul e na le moemeli ea lokelang ho sebetsa sebakeng se seng le se seng se nang le database. Ke hore, tšebelisano ea Patroni le sehlopha sa Consul e feta ho moemeli enoa. 'Me moemeli enoa o fetoha tšitiso. Haeba ho na le ntho e etsahalang ho moemeli, joale Patroni a ke ke a hlola a sebetsa le sehlopha sa Consul. Mme bothata ke bona. Ha ho na moemeli morerong oa Etcd. Patroni a ka sebetsa ka kotloloho le lethathamo la li-server tsa Etcd mme a se a ntse a buisana le tsona. Tabeng ena, haeba u sebelisa Etcd k'hamphaning ea hau, Etcd mohlomong e tla ba khetho e ntle ho feta Consul. Empa rona ho bareki ba rona re lula re lekantsoe ke seo moreki a se khethileng le ho se sebelisa. 'Me re na le Consul bakeng sa boholo ba bareki bohle.
  • 'Me ntlha ea ho qetela ke ho ntlafatsa boleng ba parameter. Re ka phahamisa litekanyo tsena ka tšepo ea hore mathata a rona a nakoana a marang-rang a tla ba khutšoanyane 'me a se ke a oela ka ntle ho moeli oa mekhahlelo ena. Ka tsela ena re ka fokotsa bohale ba Patroni ho autofile haeba mathata a mang a marang-rang a hlaha.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ke nahana hore ba bangata ba sebelisang Patroni ba tloaelane le taelo ena.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Taelo ena e bontša boemo ba hona joale ba sehlopha. 'Me ha u sheba ka lekhetlo la pele, setšoantšo sena se ka bonahala se tloaelehile. Re na le monghali, re na le replica, ha ho na lag ea ho ikatisa. Empa setšoantšo sena se tloaelehile hantle ho fihlela re tseba hore sehlopha sena se lokela ho ba le li-node tse tharo, eseng tse peli.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ka lebaka leo, ho ne ho e-na le autofile. 'Me ka mor'a autofil ena, setšoantšo sa rona se ile sa nyamela. Re hloka ho fumana hore na ke hobane'ng ha a ile a nyamela le ho mo khutlisa, ho mo khutlisetsa. 'Me re boetse re ea ho li-logs' me re bone hore na ke hobane'ng ha re ne re e-na le auto-fileover.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Tabeng ena, replica ea bobeli e ile ea e-ba monghali. Ho lokile mona.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Mme re hloka ho sheba setšoantšo se oeleng mme se seng sehlopheng. Re bula li-logs tsa Patroni mme re bona hore re ne re e-na le bothata nakong ea ts'ebetso ea ho hokahanya le sehlopha sethaleng sa pg_rewind. E le hore u ikopanye le sehlopha, u lokela ho khutlisetsa morao tlaleho ea transaction, u kope lenane le hlokahalang la transaction ho mong'a lona, ​​​​'me u le sebelise ho tšoara mong'a lona.

Tabeng ena, ha re na tlaleho ea transaction mme replica e ke ke ea qala. Ka hona, re emisa Postgres ka phoso. 'Me ka hona ha se sehlopheng.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Re hloka ho utloisisa hore na ke hobane'ng ha e le sieo sehlopheng le hore na ke hobane'ng ha ho ne ho se na lifate. Re ea ho monghali e mocha 'me re shebe seo a nang le sona ka har'a lifate. Ho ile ha fumaneha hore ha pg_rewind e etsoa, ​​​​ho ile ha etsoa tlhahlobo. 'Me tse ling tsa li-log tsa khale tsa transaction li ile tsa rehoa bocha. Ha monghali oa khale a ne a leka ho hokahanya le monghali e mocha le ho botsa li-log tsena, li ne li se li rehiloe, li mpa li le sieo.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ke bapisitse litempe tsa linako ha liketsahalo tsena li etsahala. 'Me moo phapang e hlileng e leng 150 milliseconds, ke hore, sebaka sa ho hlahloba se phethiloe ka 369 milliseconds, likarolo tsa WAL li ile tsa rehoa bocha. 'Me ha e le hantle ka 517, ka mor'a 150 milliseconds, ho khutlela morao ho ile ha qala ka setšoantšo sa khale. Ka mantsoe a mang, 150 milliseconds e ne e lekane bakeng sa rona hore replica e se ke ea khona ho hokela le ho fumana chelete.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Likhetho ke life?

Qalong re ne re sebelisa li-slots tsa ho ikatisa. Re ne re nahana hore ho molemo. Le hoja sethaleng sa pele sa ts'ebetso re ile ra tima li-slots. Ho ne ho bonahala ho rona hore haeba li-slots li bokella likarolo tse ngata tsa WAL, re ka theola monghali. O tla oa. Re ile ra utloa bohloko ka nako e itseng re se na slots. Mme re ile ra elelloa hore re hloka li-slots, ra khutlisa li-slots.

Empa ho na le bothata mona, hore ha monghali a ea ho replica, o hlakola li-slots ebe o hlakola likarolo tsa WAL hammoho le li-slots. 'Me ho felisa bothata bona, re ile ra etsa qeto ea ho phahamisa parameter ea wal_keep_segments. E fetoha likarolo tse 8. Re ile ra e phahamisetsa ho 1 mme ra sheba hore na re na le sebaka se kae sa mahala. Mme re fane ka 000 gigabytes bakeng sa wal_keep_segments. Ke hore, ha re chencha, re lula re e-na le polokelo ea li-gigabyte tse 16 tsa li-log tsa transaction ho li-node tsohle.

Hape - e ntse e sebetsa bakeng sa mesebetsi ea nako e telele ea tlhokomelo. Ha re re re hloka ho nchafatsa e 'ngoe ea likopi. Mme re batla ho e tima. Re hloka ho nchafatsa software, mohlomong sistimi e sebetsang, ntho e 'ngoe hape. 'Me ha re tima replica, slot bakeng sa setšoantšo seo le sona sea tlosoa. 'Me haeba re sebelisa li-wal_keep_segments tse nyenyane, joale ka nako e telele e le sieo ea replica, li-logs tsa transaction li tla lahleha. Re tla phahamisa replica, e tla kopa li-transaction logs moo e emisitseng, empa e kanna ea se be ho master. 'Me replica e ke ke ea khona ho hokela le eona. Ka hona, re na le setoko se seholo sa limakasine.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Re na le setsi sa tlhahiso. Ho se ho ntse ho na le merero e ntseng e tsoela pele.

Ho ne ho e-na le filer. Re ile ra kena 'me ra sheba - ntho e' ngoe le e 'ngoe e hlophisitsoe, likopi li teng, ha ho na nako ea ho pheta-pheta. Ha ho na liphoso ka har'a li-log, tsohle li lokile.

Sehlopha sa lihlahisoa se re ho lokela ho ba le lintlha tse itseng, empa re li bona ho tsoa mohloling o le mong, empa ha re li bone ho database. Mme re lokela ho utlwisisa se ileng sa ba etsahalla.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ho hlakile hore pg_rewind e ba hlolohetsoe. Re ile ra utloisisa sena hang-hang, empa re ile ra ea bona se etsahalang.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ka li-logs, re ka fumana kamehla ha filer e etsahetse, eo e ileng ea e-ba monghali, 'me re ka tseba hore na ke mang eo e neng e le monghali oa khale le ha a ne a batla ho ba replica, ke hore re hloka li-logs tsena ho fumana palo ea li-logs tsa transaction tseo. e lahlehile.

Mong'a rona oa khale o qalile hape. 'Me Patroni o ne a ngolisitsoe ho autorun. Patroni e qalile. Eaba o qala Postgres. Ka nepo, pele a qala Postgres le pele a e etsa replica, Patroni o ile a qala ts'ebetso ea pg_rewind. Ka hona, o ile a hlakola karolo ea li-log tsa transaction, a khoasolla tse ncha mme a hokahana. Mona Patroni o ne a sebetsa ka bohlale, ke hore, joalokaha ho ne ho lebelletsoe. Sehlopha se tsosolositsoe. Re ne re e-na le li-node tse 3, ka mor'a li-filer 3 nodes - ntho e 'ngoe le e' ngoe e pholile.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Re lahlehetsoe ke data. Mme re lokela ho utlwisisa hore na re lahlehetswe ke bokae. Re batla nako eo re neng re e khutlisa. Re ka e fumana likhatisong tse joalo tsa koranta. Rewind e ile ea qala, ea etsa ho hong moo 'me ea fela.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Re hloka ho fumana boemo ho log ea transaction moo monghali oa khale a siileng teng. Tabeng ena, sena ke letšoao. 'Me re hloka letšoao la bobeli, ke hore, sebaka seo mong'a khale a fapaneng le e mocha.

Re nka pg_wal_lsn_diff e tloaelehileng ebe re bapisa matšoao ana a mabeli. 'Me tabeng ena, re fumana 17 megabytes. Haholo kapa hanyenyane, e mong le e mong o iketsetsa qeto. Hobane ho motho 17 megabytes ha e ngata, ho motho e ngata ebile ha e amohelehe. Mona, motho ka mong o iketsetsa qeto ho latela litlhoko tsa khoebo.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Empa re iphumanetse eng?

Taba ea pele, re tlameha ho iketsetsa qeto - na re lula re hloka Patroni ho qala ka mor'a ho qala sistimi? Hangata ho etsahala hore re ee ho monghali oa khale, re bone hore na o tsamaile hakae. Mohlomong u ka hlahloba likarolo tsa tlaleho ea transaction, bona se leng teng. Le ho utloisisa hore na re ka lahleheloa ke data ena kapa hore na re hloka ho tsamaisa monghali oa khale ka mokhoa o ikemetseng e le hore re hule data ena.

'Me feela ka mor'a moo re tlameha ho etsa qeto ea hore na re ka lahla data ena kapa re ka e tsosolosa, hokela node ena e le replica ho sehlopha sa rona.

Ho phaella moo, ho na le "maximum_lag_on_failover" parameter. Ka nako e sa lekanyetsoang, haeba mohopolo oa ka o nthusa, parameter ena e na le boleng ba 1 megabyte.

O sebetsa joang? Haeba setšoantšo sa rona se ka morao ka megabyte e le 'ngoe ea data nakong ea replication, joale setšoantšo sena ha se nke karolo likhethong. 'Me haeba ka tšohanyetso ho na le fileover, Patroni o sheba hore na ke likopi life tse saletseng morao. Haeba ba ka morao ke palo e kholo ea li-logs tsa transaction, ba ke ke ba ba setsebi. Ena ke tšobotsi e ntle haholo ea tšireletso e u thibelang ho lahleheloa ke data e ngata.

Empa ho na le bothata ba hore lekhalo la ho pheta-pheta sehlopheng sa Patroni le DCS le ntlafatsoa ka nako e itseng. Ke nahana hore metsotsoana e 30 ke boleng ba kamehla ba ttl.

Ka lebaka leo, ho ka 'na ha e-ba le boemo boo ho nang le sekhahla se le seng sa ho pheta-pheta bakeng sa li-replicas ho DCS, empa ha e le hantle ho ka' na ha e-ba le lag e fapaneng ka ho feletseng kapa ho ka 'na ha se ke ha e-ba le nako ho hang, ke hore, ntho ena ha se nako ea sebele. 'Me ha se kamehla e bonahatsang setšoantšo sa sebele. 'Me ha ho bohlokoa ho etsa logic e majabajaba ho eona.

'Me kotsi ea tahlehelo e lula e le teng. Mme maemong a mabe ka ho fetesisa, foromo e le 'ngoe,' me maemong a tloaelehileng, foromo e 'ngoe. Ke hore, ha re rera ts'ebetsong ea Patroni le ho hlahloba hore na re ka lahleheloa ke data e kae, re tlameha ho itšetleha ka liforomo tsena mme re nahane hore na re ka lahleheloa ke data e kae.

Hape ho na le litaba tse monate. Ha monghali oa khale a tsoetse pele, a ka tsoela pele ka lebaka la lits'ebetso tse ling tsa morao-rao. Ke hore, ho ne ho e-na le mofuta o mong oa autovacuum, o ile a ngola lintlha, a li boloka ho log ea transaction. 'Me re ka hlokomoloha habonolo le ho lahleheloa ke data ena. Haho bothata tabeng ena.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me ke kamoo li-log li shebahalang kateng haeba maximum_lag_on_failover e behiloe mme filer e etsahetse,' me u lokela ho khetha monghali e mocha. Replica e itlhahloba hore ha e khone ho nka karolo likhethong. Mme o hana ho nka karolo peisong ya moetapele. 'Me o emela hore ho khethoe monghali e mocha, e le hore a ka ikopanya le eona. Ena ke tekanyo e eketsehileng khahlanong le tahlehelo ea data.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Mona re na le sehlopha sa lihlahisoa se ngotseng hore sehlahisoa sa bona se na le mathata le Postgres. Ka nako e ts'oanang, monghali ka boeena a ke ke a fumanoa, hobane ha a fumanehe ka SSH. 'Me autofile le eona ha e etsahale.

Moamoheli enoa o ile a tlameha ho qala hape. Ka lebaka la ho tsosolosa, ho ile ha etsahala faele e ikemetseng, le hoja ho ne ho ka khoneha ho etsa buka ea auto-file, joalokaha ke utloisisa hona joale. 'Me kamora ho qala bocha, re se re tlo bona seo re neng re e-na le sona ka monghali oa hajoale.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ka nako e ts'oanang, re ne re tseba esale pele hore re na le mathata ka li-disk, ke hore, re ne re se re ntse re tseba ka ho beha leihlo moo re lokelang ho cheka le ho batla eng.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Re ile ra kena ka har’a kota ea postgres, ra qala ho bona se etsahalang moo. Re bone boitlamo ba ho qetela moo bakeng sa motsotsoana o le mong, peli, tse tharo, e leng ntho e sa tloaelehang ho hang. Re bone hore autovacuum ea rona e qala butle haholo le ka mokhoa o makatsang. Mme re bone lifaele tsa nakoana ho disk. Ke hore, tsena kaofela ke matšoao a mathata a li-disk.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Re shebile sistimi ea dmesg (kernel log). Mme re bone hore re na le mathata ka e 'ngoe ea li-disk. Sebopeho sa disk e ne e le Raid ea software. Re ile ra sheba /proc/mdstat mme ra bona hore re haelloa ke koloi e le 'ngoe. Ke hore, ho na le Raid of 8 disks, re haelloa ke e le 'ngoe. Haeba u sheba ka hloko slide, joale ka tlhahiso u ka bona hore ha re na sde moo. Ho rona, ho bua ka maemo, disk e felile. Sena se ile sa baka mathata a disk, mme lits'ebetso le tsona li bile le mathata ha li sebetsa le sehlopha sa Postgres.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me tabeng ena, Patroni e ne e ke ke ea re thusa ka tsela leha e le efe, hobane Patroni ha a na mosebetsi oa ho shebella boemo ba seva, boemo ba disk. 'Me re tlameha ho beha maemo a joalo leihlo ka ho beha leihlo kantle. Ka potlako re ile ra eketsa tlhahlobo ea disk ho tlhahlobo ea kantle.

Mme ho ne ho na le mohopolo o joalo - na software ea terata kapa ea balebeli e ka re thusa? Re ne re nahana hore a ka be a sa re thusa tabeng ena, hobane nakong ea mathata Patroni o ile a tsoela pele ho sebelisana le sehlopha sa DCS 'me ha aa ka a bona bothata leha e le bofe. Ke hore, ho ea ka pono ea DCS le Patroni, ntho e 'ngoe le e' ngoe e ne e le hantle ka sehlopha, le hoja ha e le hantle ho ne ho e-na le mathata ka disk, ho ne ho e-na le mathata ka ho fumaneha ha database.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ka maikutlo a ka, ena ke e 'ngoe ea mathata a makatsang ao ke a batlileng ka nako e telele haholo, ke balile lifate tse ngata, ke khethile hape 'me ka e bitsa simulator ea lihlopha.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Bothata e ne e le hore monghali oa khale a ke ke a fetoha setšoantšo se tloaelehileng, ke hore, Patroni o ile a qala, Patroni o ile a bontša hore node ena e ne e le teng e le setšoantšo, empa ka nako e ts'oanang e ne e se setšoantšo se tloaelehileng. Joale u tla bona lebaka. Sena ke seo ke se bolokileng tlhahlobo ea bothata boo.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Hona tsohle li qalile joang? E qalile, joalo ka bothateng bo fetileng, ka li-brake tsa disc. Re ne re e-na le boitlamo motsotsoana, tse peli.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ho ne ho e-na le likhaello tsa likhokahano, ke hore, bareki ba ne ba tabohile.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ho ne ho e-na le li-blockages tsa matla a fapaneng.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me, ka hona, disk subsystem ha e arabele haholo.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Mme ntho e makatsang ka ho fetesisa ho nna ke kopo ea hang-hang ea ho koala e fihlileng. Postgres e na le mekhoa e meraro ea ho koala:

  • Ho monate ha re emetse hore bareki bohle ba itokolle ka bo bona.
  • Ho na le kapele ha re qobella bareki ho khaola hobane re tlo koala.
  • Mme hanghang. Tabeng ena, hang-hang ha e bolelle bareki ho koala, e koala feela ntle le temoso. 'Me ho bareki bohle, mokhoa oa ho sebetsa o se o ntse o romela molaetsa oa RST (molaetsa oa TCP oa hore khokahanyo e sitisoa mme mofani ha a na letho leo a ka le tšoarang).

Ke mang ea rometseng pontšo ee? Mekhoa ea morao-rao ea Postgres ha e romelle matšoao a joalo, ke hore, sena ke kill-9. Ha ba romellane lintho tse joalo, ba arabela feela linthong tse joalo, ke hore, sena ke ho qalella ha tšohanyetso ha Postgres. Ke mang ea e rometseng, ha ke tsebe.

Ke ile ka sheba taelo ea "qetellong" mme ka bona motho a le mong ea keneng le rona ka har'a seva sena, empa ke ne ke le lihlong haholo ho botsa potso. Mohlomong e ne e bolaea -9. Ke ne ke tla bona ho bolaea -9 lifateng, hobane Postgres e re e nkile polao -9, empa ha kea e bona ka har'a likutu.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ha ke sheba ho ea pele, ke ile ka bona hore Patroni ha aa ka a ngolla log ka nako e telele - metsotsoana e 54. 'Me ha re bapisa litempe tsa linako tse peli, ho ne ho se na melaetsa ea metsotsoana e ka bang 54.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me ka nako ena ho ne ho e-na le autofile. Patroni o entse mosebetsi o motle mona hape. Mong'a rona oa khale o ne a le sieo, ho ile ha etsahala ntho e 'ngoe ho eena. 'Me ho ile ha qala ho khethoa monghali e mocha. Tsohle di tsamaile hantle mona. Pgsql01 ea rona e fetohile moetapele e mocha.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Re na le replica e fetohileng setsebi. 'Me ho na le karabo ea bobeli. 'Me ho bile le mathata ka replica ea bobeli. O ile a leka ho hlophisa bocha. Joalo ka ha ke e utloisisa, o lekile ho fetola recovery.conf, qala Postgres hape le ho hokela ho monghali e mocha. O ngola melaetsa metsotsoana e meng le e meng e 10 eo a e lekang, empa ha a atlehe.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me nakong ea liteko tsena, letšoao la ho koala hang-hang le fihla ho mong'a khale. Monghali o qala hape. Hape, ho hlaphoheloa hoa emisa hobane monghali oa khale o qala hape. Ke hore, replica ha e khone ho hokela ho eona, hobane e maemong a ho koala.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ka nako e 'ngoe, e ile ea sebetsa, empa phetolelo ha ea ka ea qala.

Khopolo ea ka feela ke hore ho bile le aterese ea khale ea master ho recovery.conf. 'Me ha ho hlaha monghali e mocha, setšoantšo sa bobeli se ne se ntse se leka ho hokahanya le monghali oa khale.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ha Patroni a qala setšoantšong sa bobeli, node e ile ea qala empa ea sitoa ho ikatisa. 'Me ho ile ha thehoa lag ea ho ikatisa, e neng e shebahala tjena. Ke hore, li-node tse tharo kaofela li ne li le teng, empa node ea bobeli e ne e saletse morao.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ka nako e ts'oanang, ha u sheba li-log tse ngotsoeng, u ka bona hore ho pheta-pheta ho ne ho ke ke ha qala hobane li-log tsa transaction li ne li fapane. Le li-log tsa transaction tseo mong'a tsona a fanang ka tsona, tse boletsoeng ho recovery.conf, ha li lumellane le node ea rona ea hajoale.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Mme mona ke entse phoso. Ke ile ka tlameha ho tla bona se neng se le ho hlaphoheloa.conf ho leka maikutlo a ka a hore re ne re hokahanya le master e fosahetseng. Empa joale ke ne ke sebetsana le sena feela 'me ha sea ka sa etsahala ho' na, kapa ka bona hore setšoantšo se ne se saletse morao 'me se tla tlameha ho tlatsoa hape, ke hore, ka tsela e itseng ke sebelitse ka bohlasoa. Ena e ne e le setho sa ka.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ka mor'a metsotso ea 30, mookameli o se a tlile, ke hore, ke ile ka qala hape Patroni setšoantšong. Ke ne ke se ke ntse ke e felisitse, ke nahana hore e tla tlameha ho tlatsoa hape. Mme ka nahana - ke tla qala Patroni hape, mohlomong ntho e ntle e tla hlaha. Ho hlaphoheloa ho qalile. 'Me setsi se bile se butsoe, se ne se loketse ho amohela likhokahano.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ho ikatisa ho qalile. Empa motsotso hamorao o ile a oela ka phoso ea hore likutu tsa transaction ha li mo tšoanele.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ke ne ke nahana hore ke tla qala hape. Ke ile ka qala Patroni hape, 'me ha kea ka ka qala Postgres hape, empa ke ile ka tsosolosa Patroni ka tšepo ea hore e tla qala database ka boselamose.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Phetolelo e ile ea qala hape, empa matšoao a lethathamong la transaction a ne a fapane, a ne a sa tšoane le teko ea pele ea ho qala. Phetolelo e ile ea emisa hape. Mme molaetsa o ne o se o fapane hanyane. 'Me e ne e sa nthuse hakaalo.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

'Me joale ho etsahala ho' na - ho thoe'ng haeba ke qala Postgres hape, ka nako ena ke etsa tlhahlobo ho mong'a hona joale ho tsamaisa ntlha ea log ea transaction ho ea pele e le hore ho hlaphoheloa ho qale ho tloha motsotsong o mong? Hape, re ne re ntse re e-na le li-stock tsa WAL.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ke ile ka qala Patroni hape, ka etsa li-checkpoints tse 'maloa ho mong'a ka, lintlha tse 'maloa tsa ho qala hape setšoantšong ha se buloa. Mme ho ile ha thusa. Ke ile ka nahana ka nako e telele hore na ke hobane'ng ha e thusa le hore na e sebetsa joang. 'Me setšoantšo sa qala. 'Me kopi ha ea ka ea hlola e taboha.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Bothata bo joalo ho 'na ke bo bong ba bo makatsang, boo ke ntseng ke ipotsa hore na ho hlile ho etsahetse'ng moo.

Litlamorao ke life moo? Patroni e ka sebetsa joalo ka ha e reriloe ebile e se na liphoso. Empa ka nako e ts'oanang, sena ha se tiisetso ea 100% ea hore tsohle li hantle le rona. Setšoantšo se ka 'na sa qala, empa se ka' na sa e-ba boemong ba ho sebetsa, 'me kopo e ke ke ea sebetsa le setšoantšo se joalo, hobane ho tla ba le data ea khale.

'Me ka mor'a filer, kamehla u lokela ho hlahloba hore na ntho e' ngoe le e 'ngoe e hlophisitsoe hantle le sehlopha, ke hore, ho na le palo e hlokahalang ea likopi, ha ho na lesela la ho pheta-pheta.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

‘Me ha re ntse re feta litabeng tsena, ke tla etsa likhothaletso. Ke ile ka leka ho li kopanya hore e be li-slide tse peli. Mohlomong, lipale tsohle li ka kopanngoa hore e be li-slide tse peli ebe li phetoa feela.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ha o sebelisa Patroni, o tlameha ho ba le leihlo. U lokela ho tseba kamehla ha autofileover e etsahetse, hobane haeba u sa tsebe hore u na le autofileover, ha u na taolo holim'a sehlopha. Mme hoo ho hobe.

Ka mor'a faele e 'ngoe le e' ngoe, kamehla re tlameha ho hlahloba sehlopha. Re hloka ho etsa bonnete ba hore re lula re e-na le palo ea morao-rao ea likopi, ha ho na tšitiso ea ho pheta-pheta, ha ho na liphoso ho li-log tse amanang le phetisetso ea ho phallela, le Patroni, le tsamaiso ea DCS.

Automation e ka sebetsa ka katleho, Patroni ke sesebelisoa se setle haholo. E ka sebetsa, empa sena se ke ke sa tlisa sehlopha sebakeng se lakatsehang. Mme ha re sa tsebe ka hona, re tla kena mathateng.

'Me Patroni ha se kulo ea silevera. Re ntse re hloka ho utloisisa hore na Postgres e sebetsa joang, hore na ho pheta-pheta ho sebetsa joang le hore na Patroni o sebetsa joang le Postgres, le hore na puisano pakeng tsa li-node e fanoa joang. Sena sea hlokahala e le hore u khone ho lokisa mathata ka matsoho a hau.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ke sebetsana joang le taba ea ho hlahlojoa? Ho ile ha etsahala hore re sebetse le bareki ba fapaneng 'me ha ho motho ea nang le stack ea ELK,' me re tlameha ho hlophisa lifate ka ho bula li-consoles tse 6 le li-tab tse peli. Ka tabong e le 'ngoe, tsena ke li-logs tsa Patroni bakeng sa node e' ngoe le e 'ngoe, ho tse ling, tsena ke li-logs tsa Consul, kapa Postgres ha ho hlokahala. Ho thata haholo ho fumana sena.

Ke mekhoa efe eo ke e hlahisitseng? Ntlha ea pele, ke lula ke sheba ha filer e fihlile. Mme ho nna sena ke sediba sa metsi. Ke sheba se ileng sa etsahala pele ho filer, nakong ea filer le ka morao ho filer. Fileover e na le matšoao a mabeli: ena ke nako ea ho qala le ea ho qetela.

Ka mor'a moo, ke sheba lits'ebetsong bakeng sa liketsahalo pele ho filer, e leng pele ho filer, ke hore, ke batla mabaka a entseng hore filer e hlahe.

'Me sena se fana ka setšoantšo sa ho utloisisa se etsahetseng le se ka etsoang nakong e tlang e le hore maemo a joalo a se ke a etsahala ('me ka lebaka leo, ha ho na filer).

Hona hangata re sheba hokae? Ke sheba:

  • Taba ea pele, ho li-logs tsa Patroni.
  • Ka mor'a moo, ke sheba li-logs tsa Postgres, kapa li-logs tsa DCS, ho itšetlehile ka se ileng sa fumanoa likotong tsa Patroni.
  • 'Me li-logs tsa tsamaiso le tsona ka linako tse ling li fana ka kutloisiso ea se bakileng filer.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Ke ikutloa joang ka Patroni? Ke na le kamano e ntle haholo le Patroni. Ka maikutlo a ka, ena ke eona e ntle ka ho fetisisa e teng kajeno. Ke tseba lihlahisoa tse ling tse ngata. Tsena ke Stolon, Repmgr, Pg_auto_failover, PAF. 4 lisebelisoa. Ke li lekile kaofela. Patroni ke thatohatsi ea ka.

Haeba ba mpotsa: "Na ke buella Patroni?". Ke tla re e, hobane ke rata Patroni. Mme ke nahana hore ke ithutile ho e pheha.

Haeba u thahasella ho bona hore na ke mathata afe a mang a nang le Patroni ntle le mathata ao ke a boletseng, u ka lula u sheba leqephe lena. litokollo ho GitHub. Ho na le lipale tse ngata tse fapaneng 'me ho tšohloa litaba tse ngata tse monate moo. 'Me ka lebaka leo, litšitšili tse ling li ile tsa hlahisoa le ho rarolloa, ke hore, ena ke buka e thahasellisang.

Ho na le lipale tse monate tsa batho ba ithunyang maotong. E ruta haholo. Ua bala le ho utloisisa hore ha ho hlokahale ho etsa joalo. Ke ile ka itšoaea.

'Me ke rata ho leboha haholo ho Zalando bakeng sa ho ntlafatsa morero ona, e leng Alexander Kukushkin le Alexey Klyukin. Aleksey Klyukin ke e mong oa bangoli-'moho, ha a sa sebetsa Zalando, empa bana ke batho ba babeli ba qalileng ho sebetsa le sehlahisoa sena.

'Me ke nahana hore Patroni ke ntho e ntle haholo. Ke thabetse hore ebe o teng, hoa khahlisa le eena. 'Me ke leboha haholo ho bohle ba kenyang letsoho ba ngotseng lipache ho Patroni. Ke ts'epa hore Patroni o tla hola, a pholile, a be a sebetse hantle ka lilemo. E se e ntse e sebetsa, empa ke tšepa hore e tla ntlafala le ho feta. Ka hona, haeba u rerile ho sebelisa Patroni, joale u se ke ua tšoha. Ena ke tharollo e ntle, e ka kenngoa ts'ebetsong le ho sebelisoa.

Ke phetho. Haeba u na le lipotso, botsa.

Patroni Failure Stories kapa Mokhoa oa ho senya sehlopha sa hau sa PostgreSQL. Alexey Lesovsky

Lipotso

Re leboha tlaleho! Haeba ka mor'a filer u ntse u hloka ho sheba moo ka hloko haholo, joale ke hobane'ng ha re hloka mochine o ikemetseng?

Hobane ke ntho tse ncha. Re na le selemo feela re e-na le eena. Ho molemo ho sireletseha. Re batla ho kena 'me re bone hore ntho e' ngoe le e 'ngoe e hlile e tsamaea ka tsela eo e lokelang ho tsamaea ka eona. Ena ke boemo ba ho se tšepe batho ba baholo - ho molemo ho hlahloba habeli le ho bona.

Ka mohlala, re ile ra ea hoseng 'me ra sheba, ho joalo?

Eseng hoseng, hangata re ithuta ka autofile hoo e ka bang hang-hang. Re fumana litsebiso, re bona hore autofile e etsahetse. Re batla re tloha hang-hang ho ea sheba. Empa licheke tsena kaofela li lokela ho tlisoa boemong ba ho beha leihlo. Haeba u fihlella Patroni ka REST API, ho na le nalane. Ho ea ka nalane u ka bona litempe tsa linako ha faele e etsahetse. Ho itšetlehile ka sena, ho ka etsoa ho beha leihlo. U ka bona nalane, hore na ho bile le liketsahalo tse kae moo. Haeba re e-na le liketsahalo tse ling, joale autofile e etsahetse. O ka ya bona. Kapa boits'oaro ba rona ba ho beha leihlo bo ile ba lekola hore na re na le likopi tsohle tse teng, ha ho na nako mme tsohle li hantle.

Спасибо!

Ke leboha haholo ka pale e monate! Haeba re tsamaisitse sehlopha sa DCS kae-kae hole le sehlopha sa Postgres, na sehlopha see le sona se hloka ho sebetsoa nako le nako? Ke mekhoa efe e metle eo likarolo tse ling tsa sehlopha sa DCS li hlokang ho tima, ho na le ho hong ho etsoang ka tsona, joalo-joalo? Sebopeho see sohle se phela joang? Hona u etsa lintho tsee joang?

Bakeng sa k'hamphani e 'ngoe, ho ne ho hlokahala ho etsa matrix a mathata, ho etsahala'ng haeba e 'ngoe ea likarolo kapa likarolo tse' maloa li hlōleha. Ho ea ka matrix ena, ka tatellano re feta likarolong tsohle mme re haha ​​​​maemo haeba ho hlōleha ha likarolo tsena. Ka hona, bakeng sa boemo bo bong le bo bong ba ho hloleha, o ka ba le moralo oa ts'ebetso oa ho hlaphoheloa. 'Me tabeng ea DCS, e tla e le karolo ea lisebelisoa tse tloaelehileng. ‘Me admin o e tsamaisa, ‘me re se re ntse re its’etleha ho li- admin tse tsamaisang le bokhoni ba tsona ba ho e lokisa ha ho ka hlaha likotsi. Haeba ha ho na DCS ho hang, joale rea e sebelisa, empa ka nako e tšoanang ha re e behe leihlo, hobane ha re na boikarabello bakeng sa meaho, empa re fana ka likhothaletso tsa hore na re ka li beha leihlo joang.

Ke hore, na ke ile ka utloisisa hantle hore ke hloka ho tima Patroni, ho tima filer, ho tima ntho e 'ngoe le e' ngoe pele ke etsa letho le mabotho?

Ho ipapisitse le hore na re na le li-node tse kae sehlopheng sa DCS. Haeba ho na le li-node tse ngata 'me haeba re tima nodes e le' ngoe feela (replica), joale sehlopha se boloka quorum. 'Me Patroni e ntse e sebetsa. 'Me ha ho letho le hlahang. Haeba re na le ts'ebetso e rarahaneng e amang li-node tse ngata, ho ba sieo ha tsona ho ka senyang palo, joale - e, ho ka 'na ha e-ba ntho e utloahalang ho beha Patroni ka khefu. E na le taelo e lumellanang - patronictl pause, patronictl resume. Re mpa re emisa mme autofiler ha e sebetse ka nako eo. Re etsa maintenance ho sehlopha sa DCS, ebe re tlosa khefutso ebe re tsoela pele ho phela.

Kea leboha haholo!

Ke leboha tlaleho ea hau haholo! Sehlopha sa lihlahisoa se ikutloa joang ka ho lahleheloa ke data?

Lihlopha tsa lihlahisoa ha li tsotelle, 'me baetapele ba sehlopha ba tšoenyehile.

Ho na le litiisetso life?

Litiisetso li thata haholo. Alexander Kukushkin o na le tlaleho "Tsela ea ho bala RPO le RTO", ke hore nako ea ho hlaphoheloa le hore na re ka lahleheloa ke data e kae. Ke nahana hore re hloka ho fumana li-slide tsena le ho ithuta tsona. Ho ea kamoo ke hopolang kateng, ho na le mehato e tobileng ea ho bala lintho tsena. Re ka lahleheloa ke litšebelisano tse kae, re ka lahleheloa ke data e kae. E le khetho, re ka sebelisa ho pheta-pheta ka mokhoa o lumellanang boemong ba Patroni, empa ena ke sabole e sehang ka nģa tse peli: re ka ba le ts'epo ea data, kapa re lahleheloa ke lebelo. Ho na le phetiso ea synchronous, empa hape ha e tiise tšireletso ea 100% khahlanong le tahlehelo ea data.

Alexey, ke leboha tlaleho e ntle! Ho na le boiphihlelo ba ho sebelisa Patroni bakeng sa ts'ireletso ea zero? Ke hore, mmoho le synchronous standby? Ena ke potso ea pele. Mme potso ya bobedi. U sebelisitse litharollo tse fapaneng. Re sebelisitse Repmgr, empa ntle le autofiler, 'me joale re rera ho kenyelletsa autofiler. Mme re nka Patroni e le tharollo e 'ngoe. U ka re melemo efe ha e bapisoa le Repmgr?

Potso ea pele e ne e le mabapi le likopi tsa synchronous. Ha ho motho ea sebelisang ho pheta-pheta ka mokhoa o ts'oanang mona, hobane e mong le e mong o tšohile (Bareki ba 'maloa ba se ba ntse ba e sebelisa, ha e le hantle, ha baa ka ba hlokomela mathata a tshebetso - Molaetsa oa sebui). Empa re iketselitse molao oa hore bonyane ho be le li-node tse tharo sehlopheng sa ho pheta-pheta se lumellanang, hobane haeba re na le li-node tse peli 'me haeba mong'a kapa setšoantšo se hlōleha, joale Patroni o fetola node ena ho Standalone mode e le hore kopo e tsoele pele. sebetsa. Tabeng ena, ho na le kotsi ea ho lahleheloa ke data.

Mabapi le potso ea bobeli, re sebelisitse Repmgr mme re ntse re e etsa le bareki ba bang ka mabaka a nalane. Ho ka thoe’ng? Patroni o tla le autofiler ka ntle ho lebokose, Repmgr e tla le autofiler e le karolo e eketsehileng e hlokang ho lumelloa. Re hloka ho tsamaisa daemon ea Repmgr sebakeng se seng le se seng ebe re khona ho hlophisa autofiler.

Repmgr e hlahloba hore na li-node tsa Postgres li ntse li phela. Mekhoa ea Repmgr e hlahloba boteng ba e mong le e mong, ona ha se mokhoa o sebetsang haholo. ho ka ba le linyeoe tse rarahaneng tsa ho itšehla thajana ha marang-rang moo sehlopha se seholo sa Repmgr se ka oelang ho tse 'maloa tse nyane mme sa tsoela pele ho sebetsa. Ha esale ke latela Repmgr nako e telele, mohlomong e ne e lokisitsoe ... kapa mohlomong che. Empa ho tlosoa ha tlhahisoleseding e mabapi le boemo ba sehlopha sa DCS, joalokaha Stolon, Patroni a etsa, ke khetho e sebetsang ka ho fetisisa.

Alexey, ke na le potso, mohlomong e holofetseng. Ho e 'ngoe ea mehlala ea pele, u tlositse DCS mochining oa lehae ho ea ho moamoheli ea hole. Rea utloisisa hore marang-rang ke ntho e nang le litšobotsi tsa eona, e phela ka bo eona. Mme ho etsahalang haeba ka mabaka a itseng sehlopha sa DCS se sa fumanehe? Ha ke na ho bua mabaka, ho ka ba le a mangata a bona: ho tloha matsohong a khopameng a marang-rang ho ea ho mathata a sebele.

Ha kea e bua ka lentsoe le phahameng, empa sehlopha sa DCS le sona se tlameha ho hlōleha, ke hore ke palo e sa tloaelehang ea li-node, e le hore quorum e finyelloe. Ho etsahala'ng haeba sehlopha sa DCS se sa fumanehe, kapa palo e ke keng ea finyelloa, ke hore, mofuta o itseng oa ho arohana ha marang-rang kapa ho hlōleha ha node? Tabeng ena, sehlopha sa Patroni se kena ka mokhoa oa ho bala feela. Sehlopha sa Patroni ha se khone ho tseba boemo ba sehlopha le seo se lokelang ho se etsa. Ha e khone ho ikopanya le DCS le ho boloka sebaka se secha sa cluster moo, kahoo sehlopha sohle se ea ho bala feela. 'Me e emetse ho kenella ka letsoho ho tsoa ho opareitara kapa hore DCS e hlaphoheloe.

Ka mantsoe a mang, DCS e fetoha ts'ebeletso ho rona e bohlokoa joalo ka setsi ka bosona?

Ee E. Lik'hamphaning tse ngata tsa sejoale-joale, Service Discovery ke karolo ea bohlokoa ea meaho. E ntse e sebelisoa le pele ho e-ba le database in the infrastructure. Ha re bua hantle, ho ile ha thakholoa meaho, ea isoa DC, ‘me hang-hang re na le Service Discovery. Haeba e le Consul, joale DNS e ka hahoa ho eona. Haeba sena ke Etcd, joale ho ka 'na ha e-ba le karolo e tsoang sehlopheng sa Kubernetes, moo ntho e' ngoe le e 'ngoe e tla sebelisoa. Ke bona eka Service Discovery e se e ntse e le karolo ea bohlokoa ea lisebelisoa tsa sejoale-joale. 'Me ba nahana ka eona pejana ho feta ka li-database.

Спасибо!

Source: www.habr.com

Eketsa ka tlhaloso