Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O le sini autu a Patroni o le tuʻuina atu lea o Avanoa Maualuga mo PostgreSQL. Ae o Patroni ua na o se faʻataʻitaʻiga, e le o se meafaigaluega ua saunia (lea, i se tulaga lautele, o loʻo taʻua i totonu o faʻamaumauga). I le tepa muamua, i le faʻatulagaina o Patroni i totonu o le suʻega suʻega, e mafai ona e vaʻai i se meafaigaluega sili ma le faigofie ona taulimaina a tatou taumafaiga e talepe le fuifui. Ae ui i lea, i le faʻataʻitaʻiga, i totonu o se siosiomaga gaosiga, e le masani ona tupu mea uma e pei o le matagofie ma le faʻalelei e pei o se suʻega suʻega.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O le a ou faamatala atu ia te oe sina mea e uiga ia te au lava ia. Na ou amata i le avea ma se pule o le polokalama. Sa galue i le atinaʻeina o upega tafaʻilagi. Sa ou faigaluega i Data Egret talu mai le 2014. O loʻo galulue le kamupani i le faʻatalanoaina o le Postgres. Ma matou te tautua tonu Postgres, ma matou galulue faʻatasi ma Postgres i aso uma, o lea e iai a matou tomai eseese e fesoʻotaʻi ma le taotoga.

Ma i le faaiuga o le 2018, na amata ona matou faʻaogaina lemu le Patroni. Ma o nisi o poto masani ua faaputuputuina. Na matou mauaina, faʻalogo i ai, ma oʻo mai ia matou faiga sili ona lelei. Ma i lenei lipoti o le a ou talanoa e uiga ia i latou.

E ese mai Postgres, ou te fiafia i Linux. Ou te fiafia e taamilo solo i totonu ma suʻesuʻe, ou te fiafia e aoina mai fatu. Ou te fiafia i virtualization, containers, docker, Kubernetes. O nei mea uma ou te fiafia i ai, ona o le masani a le admin tuai ua afaina. Ou te fiafia e feagai ma le mataituina. Ma ou te fiafia i postgres mea e fesoʻotaʻi ma le pulega, e pei o le toe faʻafoʻi, faʻamaumauga. Ma i loʻu taimi avanoa ou te tusi i le Go. E le o aʻu o se inisinia software, na o loʻu tusitusi mo aʻu lava i Go. Ma e maua ai le fiafia.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

  • Ou te manatu o le toʻatele o outou e iloa e leai se HA (High Availability) Postgres mai le pusa. Ina ia maua HA, e tatau ona e faʻapipiʻi se mea, faʻapipiʻi, faia se taumafaiga ma maua.
  • E tele meafaigaluega ma o Patroni o se tasi oi latou e foia HA manaia ma lelei tele. Ae e ala i le tuʻuina uma i totonu o le suʻega suʻega ma faʻatautaia, e mafai ona tatou vaʻaia o loʻo aoga uma, e mafai ona tatou toe faia ni faʻafitauli, vaʻai pe faʻafefea ona tautuaina e Patroni. Ma o le a tatou vaʻai atu e aoga tele uma.
  • Ae i le faatinoga, sa matou feagai ma faafitauli eseese. Ma o le a ou talanoa e uiga i nei faafitauli.
  • O le a ou taʻu atu ia te oe le auala na matou maua ai, mea na matou faʻaleleia - pe na fesoasoani ia i matou pe leai.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

  • O le a ou le taʻuina atu ia te oe pe faʻapefea ona faʻapipiʻi Patroni, aua e mafai ona e google i luga ole Initaneti, e mafai ona e vaʻavaʻai i faila faila e malamalama ai pe faʻapefea ona amata uma, pe faʻafefea ona faʻapipiʻiina. E mafai ona e malamalama i fuafuaga, fausaga, suʻeina faʻamatalaga i luga ole Initaneti.
  • O le a ou le talanoa e uiga i se aafiaga o se isi tagata. O le a na ona ou talanoa atu i faafitauli na matou feagai.
  • Ma o le a ou le talanoa e uiga i faʻafitauli o loʻo i fafo atu o Patroni ma PostgreSQL. Afai, mo se faʻataʻitaʻiga, o loʻo i ai faʻafitauli e fesoʻotaʻi ma le paleni, pe a paʻu le matou fuifui, o le a ou le talanoa i ai.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma sina fa'asea la'ititi ae tatou te le'i amataina la tatou lipoti.

O nei faʻafitauli uma na matou feagai, na matou maua i le 6-7-8 masina muamua o le taotoga. I le aluga o taimi, na matou oʻo mai ia matou faiga sili ona lelei i totonu. Ma sa mou atu o matou faafitauli. O le mea lea, na fofogaina ai le lipoti pe a ma le ono masina talu ai, ina ua fou uma i loʻu mafaufau ma ou manatua lelei uma.

I le faagasologa o le sauniaina o le lipoti, ua uma ona ou siitia i luga o falemeli tuai, tilotilo i ogalaau. Ma o nisi o faʻamatalaga e mafai ona faʻagaloina, pe o nisi o faʻamatalaga e le mafai ona suʻesuʻeina atoatoa i le taimi o suʻesuʻega o faʻafitauli, o lea i nisi taimi e foliga mai e le o atoatoa le mafaufauina o faʻafitauli, pe leai foi se faʻamatalaga. Ma o lea ou te talosaga atu ai ia e faamalulu mai mo lenei taimi.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O le a le Patroni?

  • Ole fa'ata'ita'iga lea mo le fausiaina o HA. O le mea lena o loʻo fai mai i totonu o faʻamaumauga. Ma mai la'u vaai, o se fa'amalamalamaga sa'o tele lea. Patroni e le o se pulu siliva e foia uma ai ou faafitauli, o lona uiga, e tatau ona e faia se taumafaiga ina ia aoga ma maua ai faamanuiaga.
  • Ole 'au'aunaga sooupu lea e fa'apipi'iina i luga ole 'au'aunaga tu'ufa'atasi uma ma o se ituaiga init system mo lau Postgres. E amata Postgres, taofi, toe amata, toe faʻaleleia, ma suia le topology o lau fuifui.
  • E tusa ai, ina ia mafai ona teuina le tulaga o le fuifui, o lona faʻaaliga o loʻo iai nei, e pei ona foliga mai, e manaʻomia se ituaiga o teuina. Ma mai lenei manatu, na ave e Patroni le ala o le teuina o le setete i se faiga i fafo. O se faiga fa'apipi'i fa'asoa fa'asoa. E mafai ona avea ma Etcd, Consul, ZooKeeper, poʻo kubernetes Etcd, o lona uiga o se tasi o nei filifiliga.
  • Ma o se tasi o foliga o Patroni o le e maua le autofiler mai le pusa, naʻo le faʻatulagaina. Afai tatou te ave Repmgr mo faʻatusatusaga, ona aofia ai lea o le faila iina. Faatasi ai ma Repmgr, matou te maua se suiga, ae afai matou te mananaʻo i se autofiler, ona manaʻomia lea ona matou faʻaopoopoina. Patroni ua uma ona iai se autofiler mai le pusa.
  • Ma e tele isi mea. Mo se faʻataʻitaʻiga, tausiga o faʻasalalauga, sasaa faʻasologa fou, faʻamaumauga, ma isi. Ae o lenei mea e sili atu i le lautele o le lipoti, o le a ou le talanoa i ai.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma o se taunuuga laʻititi o le galuega autu a Patroni o le faia lea o se autofile lelei ma faʻalagolago ina ia tumau pea le faʻaogaina o le matou fuifui ma e le iloa e le talosaga suiga i le topology cluster.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ae a amata ona matou faʻaogaina le Patroni, e fai si lavelave la matou faiga. Afai na i ai muamua a matou Postgres, a faʻaaoga Patroni matou te maua Patroni lava ia, matou te maua le DCS i le mea o loʻo teuina ai le setete. Ma e tatau ona aoga mea uma i se auala. O le a la le mea e mafai ona tupu?

E ono malepe:

  • E ono malepe le postgres. E mafai ona avea ma se matai poʻo se faʻataʻitaʻiga, o se tasi oi latou e ono toilalo.
  • E ono malepe le Patroni lava ia.
  • E ono malepe le DCS o lo'o teuina ai le setete.
  • Ma e mafai ona motusia le upega.

O nei manatu uma o le a ou iloiloina i le lipoti.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O le a ou iloiloina mataupu pe a sili atu ona faigata, ae le o le manatu o le mataupu e aofia ai le tele o vaega. Ma mai le vaaiga o lagona faʻapitoa, o lenei mataupu sa faigata ia te aʻu, sa faigata ona faʻamavaeina ... ma vice versa, o nisi mataupu e mama ma faigofie ona faʻamavaeina.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma o le tulaga muamua e sili ona faigofie. O le tulaga lea na matou ave ai se fa'aputuga o fa'amaumauga ma fa'apipi'i la matou fa'amaumauga DCS i luga o le fuifui lava e tasi. O le mea sese masani lea. O se mea sese lea i le fausiaina o fausaga, o lona uiga, tuʻufaʻatasia vaega eseese i se nofoaga e tasi.

O lea, sa i ai se faila, sei o tatou feagai ma le mea na tupu.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma o iinei tatou te fiafia i ai le taimi na tupu ai le faila. O lona uiga, matou te fiafia i lenei taimi i le taimi na suia ai le setete o le fuifui.

Ae o le faila e le o taimi uma, o lona uiga e le manaʻomia se iunite o le taimi, e mafai ona tuai. E mafai ona umi.

O le mea lea, o loʻo i ai se taimi amata ma se taimi faʻaiʻu, o lona uiga o se mea faʻaauau. Ma matou vaevaeina mea uma na tutupu i ni vaeluaga se tolu: matou te maua le taimi i luma o le faila, i le taimi o le faila ma pe a uma le faila. O lona uiga, matou te mafaufau i mea uma e tutupu i lenei fa'asologa o taimi.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma o le mea muamua, ina ua tupu se faila, matou te vaavaai mo le mafuaaga o le mea na tupu, o le a le mafuaaga o le mea na mafua ai le faila.

A tatou tilotilo i ogalaau, o le a avea ma ogalaau masani a Patroni. Na ia taʻu mai ia i latou ua avea le server ma matai, ma o le matafaioi a le matai ua pasi atu i lenei node. O lea ua faamamafaina.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O le isi, e tatau ona tatou malamalama pe aisea na tupu ai le faila, o lona uiga o mea na tutupu na mafua ai ona siitia le matafaioi a le matai mai le tasi node i le isi. Ma i lenei tulaga, e faigofie mea uma. E i ai se matou mea sese i le fegalegaleai ma le faiga e teu ai. Na iloa e le matai e le mafai ona galue ma DCS, o lona uiga, o loʻo i ai se faʻafitauli i le fegalegaleaiga. Ma na ia fai mai e le toe mafai ona avea o ia ma matai ma faamavae. O le laina lea "faate'aina oe lava" e fai mai tonu lava.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Afai tatou te vaʻavaʻai i mea na tutupu na muamua atu i le faila, e mafai ona tatou vaʻaia iina mafuaaga tonu na avea ma faʻafitauli mo le faʻaauauina o le wizard.

Afai tatou te tilotilo i le Patroni logs, o le a tatou iloa ai e tele a tatou mea sese, taimi faʻagata, o lona uiga e le mafai e le sui o le Patroni ona galulue ma DCS. I lenei tulaga, o le sui Konesula lea, o loʻo fesoʻotaʻi i luga o le taulaga 8500.

Ma o le faʻafitauli iinei o le Patroni ma le database o loʻo taʻavale i luga o le talimalo e tasi. Ma o le au Konesula na faʻalauiloaina i luga o le node lava e tasi. E ala i le faia o se uta i luga o le 'auʻaunaga, na matou faia ai faʻafitauli mo le au Konesula foʻi. Sa le mafai ona latou fesootai lelei.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ina ua mavae sina taimi, ina ua faaitiitia le uta, na mafai e le matou Patroni ona toe fesootai ma sui sooupu. Na toe faaauau galuega masani. Ma o le Pgdb-2 server na toe avea ma matai. O lona uiga, sa i ai se la'ititi laititi, ona o lea na fa'amavae ai e le node le mana o le matai, ona toe ave lea, o lona uiga, o mea uma na toe fo'i e pei ona i ai.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma e mafai ona fa'apea o se fa'ailo sese, pe mafai fo'i ona fa'apea na faia e Patroni mea uma sa'o. O lona uiga, na ia iloa e le mafai ona ia faatumauina le tulaga o le fuifui ma aveese lana pule.

Ma o iinei na tulaʻi mai ai le faʻafitauli ona o le mea moni o le au Konesula o loʻo i luga o meafaigaluega tutusa ma faʻavae. E tusa ai, soʻo se uta: pe o le uta i luga o disks poʻo processors, e aʻafia ai foi le fegalegaleaiga ma le vaega o le Konesula.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma na matou filifili e le tatau ona nonofo faʻatasi, matou tuʻufaʻatasia se fuifui ese mo Konesula. Ma o Patroni ua uma ona galulue ma se Konesula ese, o lona uiga, sa i ai se vaega Postgres ese, se isi vaega Konesula. O le fa'atonuga fa'avae lea ile amoina ma le teuina o nei mea uma ina ia le ola fa'atasi.

I le avea ai o se filifiliga, e mafai ona e mimilo ia tapula'a ttl, loop_wait, retry_timeout, o lona uiga, taumafai e ola i luga o nei uta pu'upu'u e ala i le fa'ateleina o nei fa'amau. Ae e le o le filifiliga sili lea ona talafeagai, aua o lenei uta e mafai ona umi i le taimi. Ma o le a tatou o atu i tua atu o nei tapulaa o nei tapulaʻa. Ma atonu e le fesoasoani tele lena mea.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O le faafitauli muamua, e pei ona e malamalama ai, e faigofie. Na matou ave ma tuʻu le DCS faʻatasi ma le faʻavae, na matou maua ai se faʻafitauli.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O le faafitauli lona lua e tutusa ma le muamua. E fa'apena fo'i i le toe iai o fa'afitauli feso'ota'i ma le DCS system.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

A tatou tilotilo i ogalaau, o le a tatou iloa ai ua tatou toe i ai se mea sese tau fesootaiga. Ma fai mai Patroni e le mafai ona ou fegalegaleai ma le DCS ona o le matai o loʻo i ai nei e alu i le faʻatusa.

O le matai tuai ua avea ma se ata, o iinei e galue ai Patroni, e pei ona tatau ai. E tamo'e le pg_rewind e toe fa'afo'i le fa'amaumauga o fefa'ataua'iga ona fa'afeso'ota'i lea i le matai fou e pu'e ai le matai fou. O iinei e galue ai Patroni, e pei ona tatau ai.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O iinei e tatau ona tatou maua ai le nofoaga na muamua atu i le faila, o lona uiga o na mea sese na mafua ai ona i ai se faila. Ma i lenei tulaga, Patroni ogalaau e faigofie tele e galulue ai. Na te tusia ia lava savali i se vaitaimi patino. Ma afai tatou te amata taʻavale i luga o nei ogalaau vave, ona tatou vaʻai lea mai ogalaau ua suia ia ogalaau, o lona uiga ua amata nisi o faʻafitauli. E vave ona tatou toe foʻi i lenei nofoaga, vaai po o le a le mea e tupu.

Ma i se tulaga masani, o ogalaau e pei o lenei. Ua siaki le tagata e ana le loka. Ma afai o le e ona, mo se faʻataʻitaʻiga, ua suia, ona mafai lea ona tupu nisi mea e tatau ona tali atu i ai Patroni. Ae i lenei tulaga, ua tatou lelei. O loʻo matou suʻeina le nofoaga na amata ai mea sese.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma ina ua uma ona taʻavale i le tulaga na amata ai ona aliali mai mea sese, matou te iloa ua i ai sa matou auto-fileover. Ma talu ai o a matou mea sese e fesoʻotaʻi ma fegalegaleaiga ma DCS ma i la matou mataupu na matou faʻaaogaina le Konesula, matou te vaʻavaʻai foi i faʻamaumauga a le Konesula, o le a le mea na tupu iina.

I le fa'atusatusaina o le taimi o le faila ma le taimi i totonu o fa'amaumauga a le Konesula, ua tatou va'aia ai ua amata ona masalosalo o tatou tuaoi i le vaega o le Konesula i le i ai o isi sui o le vaega o le Konesula.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma afai e te vaʻavaʻai i ogalaau a isi sui Konesula, e mafai foi ona e vaʻaia o loʻo i ai se ituaiga o fesoʻotaʻiga o loʻo tupu iina. Ma o sui uma o le Konesula e masalosalo le tasi i le isi. Ma o le uunaiga lea mo le faila.

Afai e te vaʻavaʻai i le mea na tupu aʻo leʻi oʻo i nei mea sese, e mafai ona e vaʻaia o loʻo i ai ituaiga uma o mea sese, mo se faʻataʻitaʻiga, aso faʻagata, pa'ū RPC, o lona uiga, e manino lava o loʻo i ai se faʻafitauli i le fegalegaleaiga a sui o le vaega o le Konesula o le tasi ma le isi. .

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O le tali sili ona faigofie o le toe faʻaleleia o le fesoʻotaʻiga. Ae mo aʻu, o loʻo tu i luga o le pulelaa, e faigofie ona fai atu lenei mea. Ae o tulaga e le o taimi uma e mafai ai e le tagata faatau ona gafatia le toe faaleleia o le upega tafailagi. Atonu e nofo o ia i se DC ma atonu e le mafai ona toe faʻaleleia le fesoʻotaʻiga, afaina ai meafaigaluega. Ma o lea e manaʻomia ai nisi filifiliga.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

E iai avanoa:

  • O le filifiliga sili ona faigofie, lea e tusia, i loʻu manatu, e oʻo lava i faʻamaumauga, o le faʻamalo o siaki a le Konesula, o lona uiga, na o le pasi atu o se laina avanoa. Ma matou te fai atu i le sui Konesula e aua le fa'aogaina ni siaki. Faatasi ai ma nei siaki, e mafai ona tatou le amanaiaina nei afā fesoʻotaʻiga ae le amataina se faila.
  • O le isi filifiliga o le faaluaina o siaki raft_multiplier. O se fa'ailoga lea a le 'au'aunaga a le Konesula lava ia. I le faaletonu, ua setiina i le 5. O lenei tau e fautuaina e le faʻamaumauga mo le faʻatulagaina o siosiomaga. O le mea moni, e afaina ai le tele o feʻau i le va o sui o le Consul network. O le mea moni, o lenei parakalafa e aʻafia ai le saoasaoa o fesoʻotaʻiga auaunaga i le va o sui o le Consul cluster. Ma mo le gaosiga, ua uma ona fautuaina e faʻaitiitia ina ia faʻafeiloaʻi e nodes feʻau i taimi uma.
  • O le isi filifiliga na matou faia o le fa'atuputeleina lea o le fa'amuamua o fa'agaioiga a le Konesula i isi fa'agaioiga mo le fa'atulagaina o faiga fa'agaioiga. O loʻo i ai se "manaia" parakalafa, e naʻo le fuafuaina o le faʻamuamua o faiga e amanaia e le OS scheduler pe a faʻatulagaina. Ua matou faʻaititia foi le tau manaia mo sui Konesula, i.e. fa'asili le fa'amuamua ina ia mafai e le faiga fa'agaoioi ona tu'uina atu i le Konesula le tele o taimi e galue ai ma fa'atino a latou tulafono. I lo matou tulaga, na foia ai lo matou faafitauli.
  • O le isi filifiliga e le fa'aaogaina le Konesula. E i ai sau uo o se lagolago tele o Etcd. Ma e masani ona matou finau ma ia po o fea e sili atu Etcd poʻo le Konesula. Ae i tulaga e sili atu, e masani ona matou ioe ia te ia o le Konesula o loʻo i ai se sooupu e tatau ona tamoʻe i luga o node taʻitasi ma se faʻamaumauga. O lona uiga, o le fegalegaleaiga a Patroni ma le Consul cluster e ui atu i lenei sui. Ma o lenei sooupu e avea ma se fagu. Afai e tupu se mea i le sooupu, ona le toe mafai lea e Patroni ona galue ma le vaega o le Konesula. Ma o le faafitauli lea. E leai se sui i le fuafuaga Etcd. E mafai e Patroni ona galue tuusaʻo ma se lisi o Etcd servers ma ua uma ona fesoʻotaʻi ma i latou. I lenei tulaga, afai e te faʻaogaina le Etcd i lau kamupani, o le Etcd atonu o le a sili atu le filifiliga nai lo le Konesula. Ae o matou i a matou tagata faʻatau e faʻatapulaʻaina i taimi uma i mea ua filifilia ma faʻaogaina e le kalani. Ma e iai le matou Konesula mo le tele o vaega mo tagata uma.
  • Ma o le mea mulimuli o le toe faʻaleleia o tulaga taua. E mafai ona tatou si'i a'e nei ta'otoga i le fa'amoemoe o le a pupuu a tatou fa'afitauli feso'ota'iga mo taimi pu'upu'u ma e le pa'u i fafo atu o le tele o nei ta'otoga. O le auala lea e mafai ai ona faʻaitiitia le faʻamalosi o Patroni i le autofile pe a tupu nisi faʻafitauli fesoʻotaʻiga.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ou te manatu o le toʻatele o loʻo faʻaaogaina le Patroni e masani i lenei poloaiga.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O lenei poloaiga e faʻaalia ai le tulaga o loʻo iai nei o le fuifui. Ma i le tepa muamua, atonu e foliga masani lenei ata. E iai le matou matai, e iai le matou kopi, e leai se toe faʻasologa. Ae o lenei ata e masani lava seiloga tatou te iloa o lenei fuifui e tatau ona tolu nodes, ae le o le lua.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

E tusa ai, sa i ai se autofile. Ma ina ua uma lenei autofile, ua mou atu le matou kopi. E tatau ona tatou suʻeina pe aisea na mou atu ai ma toe aumai o ia, toe faʻafoʻisia o ia. Ma matou toe alu i ogalaau ma vaʻai pe aisea na matou faia ai le auto-fileover.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

I lenei tulaga, o le kopi lona lua na avea ma matai. E lelei lava iinei.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma e tatau ona tatou vaʻavaʻai i le faʻataʻitaʻiga na paʻu ese ma e le o iai i le fuifui. Matou te tatalaina ogalaau Patroni ma vaʻai na i ai sa matou faʻafitauli i le faagasologa o le faʻafesoʻotaʻi i le fuifui i le tulaga pg_rewind. Ina ia faʻafesoʻotaʻi i le fuifui, e tatau ona e toe faʻafoʻi le faʻamaumauga o fefaʻatauaiga, talosagaina le faʻamaumauga o fefaʻatauaiga manaʻomia mai le matai, ma faʻaaoga e puʻe ai le matai.

I lenei tulaga, e leai se matou faʻamaumauga o fefaʻatauaiga ma e le mafai ona amata le faʻatusa. E tusa ai, matou te taofia Postgres ma se mea sese. Ma o lea e le oi totonu o le fuifui.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

E tatau ona tatou malamalama pe aisea ua le i ai i le fuifui ma pe aisea na leai ai ni ogalaau. Tatou te o atu i le matai fou ma vaavaai i mea o loo ia te ia i ogalaau. E aliali mai ina ua fai le pg_rewind, na tupu se siaki. Ma o nisi o ogalaau fefaʻatauaʻiga tuai na toe faʻaigoaina. Ina ua taumafai le matai tuai e faʻafesoʻotaʻi i le matai fou ma fesiligia nei ogalaau, ua uma ona toe faʻaigoaina, e leʻi i ai.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Sa ou faatusatusa faailoga taimi na tutupu ai nei mea na tutupu. Ma o iina o le eseesega e moni lava 150 milliseconds, o lona uiga, o le siaki ua maeʻa i le 369 milliseconds, o le WAL vaega na toe faʻaigoaina. Ma o le mea moni lava i le 517, ina ua uma le 150 milliseconds, toe fa'afo'i na amata i luga o le kopi tuai. O lona uiga, o le 150 milliseconds na lava mo i matou ina ia le mafai e le kopi ona fesoʻotaʻi ma maua.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O a filifiliga?

Sa matou fa'aaogaina muamua avanoa fa'atusa. Sa matou manatu ua lelei. E ui lava i le laasaga muamua o le gaioiga na matou tapeina avanoa. Na foliga mai ia i matou afai e faʻaputuina e slots le tele o vaega WAL, e mafai ona matou paʻu le matai. O le a pau o ia. Sa matou mafatia mo sina taimi e aunoa ma ni avanoa. Ma sa matou iloaina matou te manaʻomia ni avanoa, na matou toe faʻafoʻi avanoa.

Ae o loʻo i ai se faʻafitauli iinei, pe a alu le matai i le faʻataʻitaʻiga, na te tapeina avanoa ma tape vaega WAL faʻatasi ma avanoa. Ma ina ia faʻaumatia lenei faʻafitauli, na matou filifili e siitia le wal_keep_segments parameter. E fa'aletonu i le 8 vaega. Na matou siitia i le 1 ma tilotilo i le tele o avanoa avanoa. Ma sa matou foa'i le 000 gigabytes mo vaega_wal_keep_segments. O lona uiga, pe a fesuiaʻi, matou te maua i taimi uma se faʻaagaga o le 16 gigabytes o faʻamaumauga o fefaʻatauaiga i luga o nodes uma.

Ma faʻaopoopo - e talafeagai pea mo galuega faʻaleleia umi. Fa'apea e mana'omia ona fa'afou se tasi o fa'atusa. Ma matou te mananao e tape. Matou te manaʻomia le faʻafouina o le polokalama, atonu o le faiga faʻaoga, se isi mea. Ma pe a tatou tapeina se kopi, o le avanoa mo lena faʻatusa e aveese foi. Ma afai tatou te faʻaaogaina se vaega wal_keep_segments, ona umi lea o le leai o se faʻataʻitaʻiga, o le a leiloa faʻamaumauga o fefaʻatauaiga. O le a matou siiina se kopi, o le a talosagaina na ogalaau fefaʻatauaiga i le mea na taofi ai, ae atonu e le o iai i luga o le matai. Ma o le a le mafai foi ona fesootai le kopi. O lea la, matou te teuina ai se faaputuga tele o mekasini.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

E iai a matou fa'avae gaosiga. O lo'o iai fo'i galuega fa'atino.

Sa i ai se faila. Na matou o i totonu ma tilotilo - o mea uma o loʻo faʻatulagaina, o faʻataʻitaʻiga o loʻo i ai, e leai se toe faʻasologa. E leai foi ni mea sese i totonu o ogalaau, o mea uma o loʻo faʻatulagaina.

Fai mai le vaega o oloa e tatau ona i ai ni faʻamatalaga, ae matou te vaʻaia mai le tasi punaoa, ae matou te le vaʻaia i totonu o faʻamaumauga. Ma e tatau ona tatou malamalama i le mea na tupu ia i latou.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

E manino lava na misia e pg_rewind. Na vave ona matou malamalama i lenei mea, ae na matou o e vaai po o le a le mea o tupu.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

I totonu o ogalaau, e mafai ona tatou mauaina i taimi uma le taimi na tupu ai le faila, o ai na avea ma matai, ma e mafai ona tatou iloa po o ai le matai tuai ma pe a manaʻo e avea ma faʻataʻitaʻiga, o lona uiga tatou te manaʻomia nei ogalaau e suʻe ai le aofaʻi o faʻamaumauga o fefaʻatauaiga na. na leiloa.

O lo tatou matai tuai ua toe amata. Ma sa lesitala Patroni i le autorun. Tatala Patroni. Ona ia amataina lea o Postgres. E sili atu le saʻo, aʻo leʻi amataina Postgres ma aʻo leʻi faia se faʻataʻitaʻiga, na faʻalauiloa e Patroni le pg_rewind process. E tusa ai, na ia tapeina se vaega o faʻamaumauga o fefaʻatauaiga, sii mai mea fou ma fesoʻotaʻi. O iinei na galue ai Patroni ma le atamai, o lona uiga, e pei ona faamoemoeina. Ua toe fa'aleleia le fuifui. E 3 a matou nodes, pe a uma le faila faila 3 nodes - e manaia mea uma.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ua leiloa nisi o fa'amaumauga. Ma e tatau ona tatou malamalama i le tele o mea ua tatou leiloa. O loʻo matou suʻeina naʻo le taimi na matou toe faʻafoʻi ai. E mafai ona tatou mauaina i totonu o ia faamaumauga o talaaga. Toe amata, fai se mea iina ma faaiʻu.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Matou te manaʻomia le suʻeina o le tulaga i le faʻamaumauga o fefaʻatauaiga lea na tuʻu ai e le matai tuai. I lenei tulaga, o le faailoga lea. Ma tatou te manaʻomia se faʻailoga lona lua, o lona uiga, o le mamao e ese ai le matai tuai mai le fou.

Matou te ave le pg_wal_lsn_diff masani ma faʻatusatusa nei faʻailoga e lua. Ma i lenei tulaga, tatou te maua 17 megabytes. Tele pe itiiti, e filifili tagata uma mo ia lava. Aua mo se tasi 17 megabytes e le tele, mo se tasi e tele ma le taliaina. O iinei, e fuafua e tagata taʻitoʻatasi mo ia lava e tusa ai ma manaʻoga o le pisinisi.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ae o le a se mea ua tatou maua mo i tatou lava?

Muamua, e tatau ona tatou filifili mo i tatou lava - tatou te manaʻomia i taimi uma Patroni e faʻamataina pe a uma le toe faʻafouina o le faiga? E masani ona tupu e tatau ona tatou o atu i le matai matua, vaai po o le a le mamao ua ia alu i ai. Atonu e asiasia vaega o le fa'amaumauga o fefa'atauaiga, va'ai po'o a mea o iai. Ma ia malamalama pe mafai ona tatou leiloa lenei faʻamatalaga pe manaʻomia le faʻatautaia o le matai tuai i le tulaga tutoʻatasi ina ia mafai ai ona toso ese nei faʻamatalaga.

Ma e naʻo le maeʻa ai e tatau ona tatou filifili pe mafai ona tatou lafoaia nei faʻamatalaga pe mafai ona tatou toe faʻafoʻisia, faʻafesoʻotaʻi lenei node e fai ma faʻatusa i la tatou fuifui.

E le gata i lea, o loʻo i ai se "maximum_lag_on_failover" parakalafa. Ona o le faaletonu, afai e aoga loʻu manatua ia te aʻu, o lenei parakalafa e iai lona tau o le 1 megabyte.

E faapefea ona ia galue? Afai o le matou kopi e tua i le 1 megabyte o faʻamaumauga i le toe faʻasologa, o lona uiga e le auai le kopi lea i le palota. Ma afai e faʻafuaseʻi ona i ai se faila, e vaʻai Patroni poʻo fea kopi o loʻo tuai i tua. Afai latou te tua i se numera tele o faʻamaumauga o fefaʻatauaiga, e le mafai ona avea i latou ma matai. O se tulaga lelei tele lea e puipuia ai oe mai le leiloa o le tele o faʻamaumauga.

Ae o loʻo i ai se faʻafitauli i le toe faʻafoʻiina o le faʻasologa o le Patroni cluster ma le DCS e faʻafouina i se taimi patino. Ou te manatu o le 30 sekone o le tau fa'aletonu ttl.

E tusa ai ma lea, atonu e i ai se tulaga e tasi le toe faʻasologa mo kopi i DCS, ae o le mea moni e mafai ona i ai se faʻataʻitaʻiga eseʻese pe atonu e leai se faʻalavelave, o lona uiga o lenei mea e le o le taimi moni. Ma e le o taimi uma e atagia ai le ata moni. Ma e le aoga le faia o manatu taufaasese i luga.

Ma e tumau pea le lamatiaga o le leiloa. Ma i le tulaga sili ona leaga, tasi le fua, ma i le tulaga masani, o le isi fua. O lona uiga, pe a tatou fuafuaina le faʻatinoina o le Patroni ma iloilo le tele o faʻamaumauga e mafai ona tatou leiloa, e tatau ona tatou faʻalagolago i nei fua faʻatatau ma mafaufau loloto pe fia faʻamaumauga e mafai ona tatou leiloa.

Ma o loo i ai se tala fiafia. A alu i luma le matai matua, e mafai ona alu i luma ona o nisi o faʻasologa o tua. O lona uiga, sa i ai se ituaiga autovacuum, na ia tusia faʻamaumauga, faʻasaoina i latou i le faʻamaumauga o fefaʻatauaiga. Ma e faigofie ona tatou le amanaiaina ma leiloa nei faʻamatalaga. E leai se faafitauli i lenei mea.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma o le mea lea e foliga mai ai ogalaau pe afai ua seti le maximum_lag_on_failover ma ua tupu se faila, ma e tatau ona e filifilia se matai fou. O le fa'atusa e fa'atatau ia te ia lava e le mafai ona 'auai i faiga palota. Ma e musu o ia e auai i le tuuga mo le taitai. Ma o loʻo faʻatali mo se matai fou e filifilia, ina ia mafai ona ia faʻafesoʻotaʻi i ai. O se fua fa'aopoopo lea e fa'atatau i le leiloa o fa'amaumauga.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O loʻo i ai la matou 'au oloa na tusia o latou oloa o loʻo i ai faʻafitauli ma Postgres. I le taimi lava e tasi, e le mafai ona maua le matai lava ia, aua e le maua e ala i le SSH. Ma o le autofile e le tupu foi.

O lenei talimalo na faʻamalosia e toe faʻafouina. Ona o le toe faʻafouina, na tupu ai se faila-aunoa, e ui lava na mafai ona fai se faila-aunoa tusi, e pei ona ou malamalama nei. Ma a maeʻa le toe faʻafouina, o le a matou vaʻai i mea na matou maua ma le matai o loʻo iai nei.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

I le taimi lava e tasi, na matou iloa muamua o loʻo i ai a matou faʻafitauli i tisiki, o lona uiga, ua uma ona matou iloa mai le mataʻituina le mea e eli ai ma le mea e suʻe.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Na matou oʻo i totonu o le postgres log, amata ona vaʻai poʻo le a le mea o loʻo tupu iina. Na matou vaʻai i tautinoga e tumau iina mo le tasi, lua, tolu sekone, e le masani ai. Na matou vaʻaia o le matou masini masini e amata lemu ma uiga ese. Ma sa matou vaʻaia faila le tumau i luga o le disk. O lona uiga, o fa'ailoga uma ia o fa'afitauli i tisiki.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Na matou tilotilo i totonu o le dmesg system (kernel log). Ma na matou vaʻaia o loʻo i ai a matou faʻafitauli i se tasi o tisiki. O le vaega o le disk o le Raid software. Na matou tilotilo i le /proc/mdstat ma iloa ai o loʻo misi se tasi taʻavale. O lona uiga, o loʻo i ai se Raid of 8 disks, matou te misia se tasi. Afai e te vaʻavaʻai ma le faʻaeteete i le faʻasolo, ona i totonu o le gaioiga e mafai ona e iloa ai e leai sa matou sde iina. Ia i matou, i se tuutuuga, ua pa'u i fafo le tisiki. O lenei mea na mafua ai faʻafitauli tisiki, ma faʻafitauli foi na oʻo i faʻafitauli pe a galulue ma le Postgres cluster.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma i lenei tulaga, e le mafai e Patroni ona fesoasoani ia i matou i soo se auala, aua e leai se galuega a Patroni e mataʻituina le tulaga o le server, le setete o le disk. Ma e tatau ona tatou mataituina ia tulaga e ala i le mataituina mai fafo. Na matou fa'aopoopo vave le mata'ituina o tisiki i le mata'ituina i fafo.

Ma sa i ai se manatu faapena - e mafai ona fesoasoani le pa po o le leoleo polokalame ia i tatou? Na matou manatu o le a le mafai ona fesoasoani mai ia i matou i lenei mataupu, aua i le taimi o faʻafitauli na faʻaauau pea ona fegalegaleai Patroni ma le vaega o le DCS ma e leʻi vaʻaia se faʻafitauli. O lona uiga, mai le vaaiga a le DCS ma le Patroni, sa lelei mea uma i le fuifui, e ui lava o le mea moni sa i ai faafitauli i le disk, sa i ai faafitauli i le maua o le database.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

I loʻu manatu, o se tasi lea o faʻafitauli uiga ese na ou suʻesuʻeina mo se taimi umi, ua ou faitau i le tele o ogalaau, toe filifilia ma taʻua o le simulator cluster.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O le faʻafitauli e le mafai e le matai tuai ona avea ma faʻataʻitaʻiga masani, o lona uiga o Patroni na amataina, na faʻaalia e Patroni o lenei node sa i ai o se kopi, ae i le taimi lava e tasi e le o se faʻataʻitaʻiga masani. O lea la o le a e vaai pe aisea. O le mea lea ua ou taofia mai le auiliiliga o lena faafitauli.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ae na faapefea ona amata? Na amata, pei o le faʻafitauli muamua, faʻatasi ma taofi tisiketi. Sa i ai a matou tautinoga mo se sekone, lua.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Sa i ai le motusia o fesoʻotaʻiga, o lona uiga, ua saeia tagata faʻatau.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Sa i ai ni poloka i tulaga eseese.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma, e tusa ai, o le disk subsystem e le tali mai.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma o le mea sili ona lilo ia te aʻu o le talosaga tapunia vave lea na taunuu mai. Postgres e tolu auala tapuni:

  • E manaia pe a tatou fa'atali mo tagata fa'atau uma e motusia na o latou.
  • E televave pe a matou faʻamalosia tagata faʻatau e momotu ona o le a matou tapunia.
  • Ma vave. I le tulaga lea, e le'o ta'u atu lava i tagata fa'atau e tapuni, na'o le tapuni e aunoa ma se lapataiga. Ma i tagata fa'atau uma, ua uma ona tu'uina atu e le faiga fa'aogaina se fe'au RST (se fe'au TCP ua motusia le feso'ota'iga ma e leai se isi mea e pu'eina e le kalani).

O ai na auina atu lenei faailo? Postgres background process e le auina atu ia faailo i le tasi ma le isi, o lona uiga o le fasioti-9. Latou te le tuʻuina atu ia mea i le tasi ma le isi, latou te tali atu i ia mea, o lona uiga o se toe faʻalavelave faʻafuaseʻi o Postgres. O ai na auina mai, ou te le iloa.

Na ou tilotilo i le poloaiga "mulimuli" ma sa ou vaaia se tasi tagata na matou saini foi i totonu o lenei server, ae sa ou matamuli e fai se fesili. Masalo o le fasioti -9. O le a ou vaai fasioti -9 i totonu o ogalaau, aua Fai mai Postgres na ave le fasioti -9, ae ou te leʻi vaʻaia i totonu o ogalaau.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

A'o va'ava'ai atili, na ou iloa ai e le'i tusia e Patroni le ogalaau mo se taimi umi - 54 sekone. Ma afai tatou te faʻatusatusa faʻailoga taimi e lua, e leai ni feʻau mo le 54 sekone.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma i le taimi lea sa i ai se autofile. Na toe faia e Patroni se galuega lelei iinei. Sa le avanoa lo matou matai matua, sa i ai se mea na tupu ia te ia. Ma na amata ai le filifilia o se matai fou. Na lelei mea uma iinei. O le matou pgsql01 ua avea ma taʻitaʻi fou.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

E i ai le matou kopi ua avea ma matai. Ma o loo i ai se tali lona lua. Ma sa i ai faafitauli i le kopi lona lua. Sa ia taumafai e toe fetuunai. E pei ona ou malamalama i ai, sa ia taumafai e sui recovery.conf, toe amata Postgres ma fesootai i le matai fou. Na te tusia savali i le 10 sekone o loʻo ia taumafai ai, ae e leʻi manuia.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma i le taimi o nei taumafaiga, e oʻo mai se faʻailoga vave-tapuni i le matai tuai. Ua toe amata le matai. Ma toe fa'agata fo'i ona o le matai tuai e toe fa'afou. O lona uiga, e le mafai ona faʻafesoʻotaʻi le faʻatusa, ona o loʻo i ai i le tulaga tapuni.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

I se taimi, na aoga, ae e leʻi amataina le toe faia.

Na pau la'u mate o lo'o i ai se tuatusi matai tuai ile recovery.conf. Ma ina ua sau se matai fou, sa taumafai pea le kopi lona lua e fesootai i le matai tuai.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ina ua amata e Patroni le kopi lona lua, na amata le node ae le mafai ona toe faia. Ma na faia ai se toe fa'asologa, lea e foliga fa'apenei. O lona uiga, sa mau uma node e tolu, ae o le node lona lua na tuai i tua.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

I le taimi lava e tasi, afai e te vaʻavaʻai i ogalaau na tusia, e mafai ona e vaʻaia e le mafai ona amata le toe faia ona o faʻamatalaga o fefaʻatauaiga e ese. Ma o na ogalaau fefaʻatauaʻiga o loʻo ofoina mai e le matai, o loʻo faʻamaonia i le recovery.conf, e le fetaui ma le tatou node o loʻo iai nei.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma o iinei na ou faia ai se mea sese. Sa tatau ona ou sau e vaai po o le a le mea o lo'o i le recovery.conf e su'e ai lo'u manatu sa matou feso'ota'i i le matai sese. Ae na o loʻu feagai ma lenei mea ma e leʻi oʻo mai ia te aʻu, pe na ou vaʻaia ua tuai le faʻataʻitaʻiga ma e tatau ona toe faʻatumu, o lona uiga, sa ou galue ma le faʻaeteete. O la'u sooga lea.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ina ua uma le 30 minute, ua uma ona sau le pule, o lona uiga na ou toe amataina le Patroni i luga o le kopi. Ua uma ona ou faamutaina, sa ou manatu e tatau ona toe faatumu. Ma sa ou manatu - o le a ou toe amataina le Patroni, atonu o le a tupu se mea lelei. Na amata le toe faaleleia. Ma ua tatalaina foi le faavae, ua sauni e talia sootaga.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ua amata le toe faia. Ae o se minute mulimuli ane na ia pa'u ai ma se mea sese e faapea o faamaumauga o fefa'atauaiga e le talafeagai mo ia.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Sa ou manatu o le a ou toe amata. Na ou toe amataina le Patroni, ma ou te leʻi toe amataina le Postgres, ae na toe amataina le Patroni i le faʻamoemoe o le a amata faʻapitoa le database.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Na toe amata le toe faia, ae o faʻailoga i le faʻamaumauga o fefaʻatauaiga na ese, e le tutusa ma le taumafaiga amata muamua. Na toe taofi le toe faia. Ma o le savali ua leva ona ese teisi. Ma e leʻi faʻamalamalamaina tele mo aʻu.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ona tupu ai lea ia te aʻu - faʻafefea pe a ou toe amataina Postgres, i le taimi nei ou te faia se siaki i luga o le matai o loʻo i ai nei e faʻanofo ai le pito i totonu o le faʻailoga o fefaʻatauaiga i luma laʻititi ina ia toe amata mai se isi taimi? E le gata i lea, sa i ai pea a matou fa'asoa o le WAL.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Na ou toe amataina le Patroni, faia ni siaki siaki i luga o le matai, o ni nai toe amata i luga o le kopi ina ua tatalaina. Ma sa fesoasoani. Sa ou mafaufau mo se taimi umi pe aisea na fesoasoani ai ma pe na faapefea ona aoga. Ma na amata le kopi. Ma e le'i toe saeia le kopi.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O sea faafitauli ia te au o se tasi lea o faafitauli e sili ona lilo, lea ou te le mautonu ai i le mea moni na tupu iina.

O a ni aafiaga iinei? Patroni e mafai ona galue e pei ona faʻamoemoeina ma e aunoa ma se mea sese. Ae i le taimi lava e tasi, e le o se 100% faʻamautinoa o loʻo lelei mea uma ia i matou. E mafai ona amata le faʻataʻitaʻiga, ae atonu o loʻo i totonu o se tulaga semi-galuega, ma e le mafai e le talosaga ona galue ma se faʻataʻitaʻiga, aua o le ai ai faʻamaumauga tuai.

Ma a maeʻa le faila, e te manaʻomia i taimi uma le siakiina o mea uma o loʻo faʻatulagaina ma le fuifui, o lona uiga, o loʻo i ai le numera manaʻomia o kopi, e leai se toe faʻasologa.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Ma a o tatou faia nei mataupu, o le a ou faia ni fautuaga. Sa ou taumafai e tuufaatasia i ni ata faasee se lua. Masalo, o tala uma e mafai ona tuʻufaʻatasia i ni faʻataʻitaʻiga se lua ma naʻo le faamatalaina.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

A e faʻaaogaina le Patroni, e tatau ona e mataʻituina. E tatau ona e iloa i taimi uma le taimi na tupu ai se autofileover, aua afai e te le iloa sa i ai sau autofileover, e leai sau pule i luga o le fuifui. Ma e leaga lena mea.

A mae'a faila ta'itasi, e tatau lava ona siaki ma le lima le fuifui. E tatau ona tatou mautinoa o loʻo i ai i taimi uma se numera lata mai o kopi, e leai se faʻasologa o faʻasologa, e leai ni mea sese i totonu o ogalaau e fesoʻotaʻi ma le tafeina o le kopi, ma Patroni, ma le DCS system.

Otometi e mafai ona galue manuia, Patroni o se meafaigaluega sili ona lelei. E mafai ona galue, ae o le a le aumaia le fuifui i le tulaga manaʻomia. Ma afai tatou te le iloa e uiga i ai, o le a tatou i ai i faafitauli.

Ma o Patroni e le o se pulu siliva. E manaʻomia pea ona tatou malamalama pe faʻapefea ona galue Postgres, faʻafefea ona toe faia ma pe faʻafefea ona galue Patroni ma Postgres, ma pe faʻafefea ona tuʻuina atu fesoʻotaʻiga i le va o nodes. E mana'omia lenei mea ina ia mafai ai ona foia faafitauli i ou lima.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

E fa'afefea ona ou fa'alatalata atu ile mataupu ole su'esu'ega? Na tupu na matou galulue faʻatasi ma tagata faʻatau eseese ma e leai se tasi o loʻo i ai se faaputuga ELK, ma e tatau ona matou faʻavasegaina ogalaau e ala i le tatalaina o le 6 consoles ma 2 tabs. I le tasi laupepa, o la'au ia o Patroni mo node ta'itasi, i le isi laupepa, o fa'amaumauga nei a le Konesula, po'o Postgres pe a mana'omia. E faigata tele ona iloa lenei mea.

O a ni auala ua ou faia? Muamua, ou te tilotilo i taimi uma pe a taunuu le faila. Ma ia te aʻu o se vaipuna lea. Ou te tilotilo i le mea na tupu i luma o le faila, i le taimi o le faila ma le maeʻa o le faila. O le faila faila e lua fa'ailoga: o le amataga ma le taimi fa'ai'u.

O le isi, ou te vaʻavaʻai i totonu o ogalaau mo mea na tutupu i luma o le faila, lea na muamua atu i le faila, o lona uiga, ou te suʻeina mafuaʻaga na tupu ai le faila.

Ma o lenei mea e maua ai se ata o le malamalama i le mea na tupu ma mea e mafai ona faia i le lumanaʻi ina ia le tupu ai ia tulaga (ma o se taunuuga, e leai se faila).

Ma o fea e masani ona tatou vaavaai i ai? Ou te vaai:

  • Muamua, i ogalaau a Patroni.
  • O le isi, ou te tilotilo i le Postgres logs, poʻo le DCS logs, e faʻatatau i mea na maua i totonu o Patroni logs.
  • Ma o loʻo tuʻuina atu foi e le logs system i nisi taimi se malamalamaaga i le mea na mafua ai le faila.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

O le a sou lagona e uiga ia Patroni? E lelei tele la ma mafutaga ma Patroni. I loʻu manatu, o le mea sili lea o loʻo i ai nei. Ou te iloa le tele o isi oloa. O Stolon, Repmgr, Pg_auto_failover, PAF. 4 meafaigaluega. Sa ou faataitaia uma. Patroni e sili ona ou fiafia i ai.

Afai latou te fesili mai ia te aʻu: "Ou te fautuaina Patroni?". Ou te fai atu ioe, aua ou te fiafia ia Patroni. Ma ou te manatu na ou aoaoina le kukaina.

Afai e te fiafia e vaʻai poʻo a isi faʻafitauli o loʻo i ai ma Patroni e ese mai i faʻafitauli na ou taʻua, e mafai ona e siaki i taimi uma le itulau mataupu luga ole GitHub. E tele tala eseese ma tele mataupu manaia o lo'o talanoaina ai. Ma o se taunuuga, o nisi bugs na faʻafeiloaʻi ma foia, o lona uiga, o se faitauga manaia.

E iai ni tala mananaia e uiga i tagata na fanaina i latou lava i vae. E matua fa'amatalaga. E te faitau ma malamalama e le tatau ona faia. Sa ou togiina a'u lava.

Ma ou te fia fai atu se faafetai tele ia Zalando mo le atinaʻeina o lenei poloketi, e igoa ia Alexander Kukushkin ma Alexey Klyukin. Aleksey Klyukin o se tasi o tusitala, e le o toe faigaluega i Zalando, ae o tagata ia e toʻalua na amata galulue i lenei oloa.

Ma ou te manatu o Patroni o se mea manaia tele. Ou te fiafia o loo i ai o ia, e manaia ia te ia. Ma fa'afetai tele i le au fai sao uma na tusia fa'ailoga i Patroni. Ou te faʻamoemoe o le a avea Patroni ma tagata matua, malulu ma lelei i le matua. Ua uma ona aoga, ae ou te faamoemoe o le a sili atu le lelei. O le mea lea, afai e te fuafua e faʻaaoga Patroni, aua e te fefe. O se fofo lelei lea, e mafai ona faʻatinoina ma faʻaaogaina.

Pau lava lena. Afai ei ai ni au fesili, fesili.

Patroni Failure Stories poʻo le faʻafefea ona paʻu lau vaega PostgreSQL. Alexey Lesovsky

Au fesili

Faafetai mo le lipoti! Afai a uma se faila e te manaʻomia pea ona e vaʻavaʻai i ai ma le faʻaeteete, aisea la tatou te manaʻomia ai se faila otometi?

Aua o mea fou. E na o le tasi le tausaga na ma mafuta ai. E sili atu le saogalemu. Matou te fia o mai i totonu ma vaʻai o loʻo lelei mea uma i le auala e tatau ai. O le tulaga lea o le le talitonuina o tagata matutua - e sili atu le faʻalua-siaki ma vaʻai.

Mo se faʻataʻitaʻiga, na matou o i le taeao ma tilotilo, saʻo?

E le o le taeao, e masani ona matou aʻoaʻoina e uiga i le autofile toetoe lava a vave. Matou te mauaina faʻamatalaga, matou te vaʻai ua tupu se autofile. Toetoe a matou o atu loa ma vaavaai. Ae o nei siaki uma e tatau ona aumai i le tulaga mataʻituina. Afai e te mauaina le Patroni e ala i le REST API, o loʻo i ai se talaʻaga. I tala fa'asolopito e mafai ona e va'ai i fa'ailoga taimi na tupu ai le faila. Faʻavae i luga o lenei mea, e mafai ona faia le mataʻituina. E mafai ona e vaʻai i le talaʻaga, pe fia ni mea na tutupu iina. Afai e tele a matou mea na tutupu, ona tupu lea o se faila faila. E mafai ona e alu e vaai. Po'o le matou mata'ituina masini siaki o lo'o i ai uma a matou kopi, e leai se tuai ma o lo'o lelei mea uma.

Faafetai lava!

Faafetai tele mo le tala lelei! Afai matou te siiina le vaega o le DCS i se mea mamao mai le Postgres cluster, e tatau foi ona tautuaina lenei fuifui i lea taimi ma lea taimi? O a ni faiga e sili ona lelei e tatau ona tape ai nisi vaega ole vaega ole DCS, se mea e fai iai, ma isi? E faapefea ona ola lenei fausaga atoa? Ma e faapefea ona e faia nei mea?

Mo se tasi kamupani, sa tatau ona faia se matrix o faafitauli, o le a le mea e tupu pe a le manuia se tasi o vaega po o nisi vaega. E tusa ai ma lenei matrix, matou te faʻasolosolo faʻasolosolo vaega uma ma fausia faʻataʻitaʻiga i le tulaga o le toilalo o nei vaega. E tusa ai, mo tulaga faʻaletonu taʻitasi, e mafai ona i ai sau fuafuaga faʻatino mo le toe faʻaleleia. Ma i le tulaga o le DCS, e sau o se vaega o fausaga masani. Ma o le pule e faʻatautaia, ma ua uma ona matou faʻalagolago i le pulega o loʻo faʻatautaia ma lo latou gafatia e faʻaleleia pe a tupu faʻalavelave. Afai e leai se DCS, ona matou faʻapipiʻiina lea, ae i le taimi lava e tasi matou te le vaʻaia faapitoa, ona e le o matou nafa ma atinaʻe, ae matou te tuʻuina atu fautuaga i le auala ma le mea e mataʻituina.

O lona uiga, na ou malamalama saʻo e tatau ona ou faʻamalo Patroni, faʻamalo le faila, faʻamalo mea uma aʻo leʻi faia se mea ma le au?

E fa'alagolago i le tele o nodes o lo'o iai i le fa'aputuga o le DCS. Afai e tele nodes ma afai tatou te tapeina na'o le tasi o nodes (le kopi), ona tumau lea o le fuifui se korama. Ma o Patroni o loʻo faʻaauau pea ona galue. Ma e leai se mea e faʻaosoina. Afai ei ai ni a tatou gaioiga lavelave e aʻafia ai le tele o pona, o le leai o ia mea e mafai ona faʻaleagaina ai le korama, ona - ioe, atonu e talafeagai le tuʻu Patroni i se malologa. E iai le fa'atonuga tutusa - patronictl pause, patronictl resume. Na'o le matou taofi ma e le o galue le autofiler i lena taimi. Matou te faia le tausiga o le vaega o le DCS, ona matou ave lea o le malolo ma faʻaauau pea ona ola.

Спасибо большое!

Faafetai tele mo lau lipoti! O le a se lagona o le vaega o oloa e uiga i faʻamaumauga ua leiloloa?

E le popole 'au o oloa, ma e popole ta'ita'i o 'au.

O a ni faamaoniga o iai?

Faʻamautinoa e faigata tele. Alexander Kukushkin o loʻo i ai se lipoti "Faʻafefea ona faʻatusatusa le RPO ma le RTO", o lona uiga o le toe faʻaleleia o le taimi ma le tele o faʻamatalaga e mafai ona tatou leiloa. Ou te manatu e tatau ona tatou suʻeina nei ata ma suʻesuʻe. E pei ona ou manatua, o loʻo i ai laasaga faʻapitoa i le auala e faʻatatau ai nei mea. E fia fefaʻatauaiga e mafai ona tatou leiloa, fia faʻamaumauga e mafai ona tatou leiloa. I le avea ai o se filifiliga, e mafai ona matou faʻaogaina faʻasologa faʻatasi i le tulaga Patroni, ae o se pelu mata-lua lenei: a le o loʻo i ai a matou faʻamaumauga, pe matou te leiloa le saoasaoa. O loʻo iai faʻasologa faʻatasi, ae e le faʻamaonia ai foi le 100% puipuiga mai le leiloa o faʻamaumauga.

Alexey, faafetai mo le lipoti sili! So'o se poto masani ile fa'aogaina ole Patroni mo le puipuiga ole tulaga? O lona uiga, fa'atasi ma tu'u fa'atasi? O le fesili muamua lea. Ma le fesili lona lua. Ua e fa'aogaina fofo eseese. Na matou faʻaaogaina Repmgr, ae leai se autofiler, ma o lea ua matou fuafua e aofia ai le autofiler. Ma matou te manatu ia Patroni o se isi fofo. O le a se mea e mafai ona e fai atu o ni faʻamanuiaga faʻatusatusa i Repmgr?

O le fesili muamua e uiga i kopi fa'atasi. E leai se tasi e faʻaaogaina faʻasologa faʻatasi iinei, aua e fefefe tagata uma (Ua faʻaaogaina e le tele o tagata faʻatau, i le mataupu faavae, latou te leʻi matauina faʻafitauli faʻatinoga - Faamatalaga a le Fofoga Fetalai). Ae ua matou faia se tulafono mo i matou lava e tatau ona i ai ia le itiiti ifo ma le tolu pona i totonu o se faʻapipiʻi faʻapipiʻi faʻatasi, aua afai e lua a matou nodes ma afai e le manuia le matai poʻo le kopi, ona sui lea e Patroni lenei node i le Standalone mode ina ia faʻaauau pea le talosaga. galuega. I lenei tulaga, o loʻo i ai se tulaga lamatia o faʻamaumauga leiloa.

E tusa ai ma le fesili lona lua, ua matou faʻaaogaina Repmgr ma o loʻo faia pea ma nisi o tagata faʻatau mo mafuaaga faʻasolopito. O le ā e mafai ona fai atu? Patroni e sau ma se autofiler i fafo o le atigipusa, Repmgr e sau ma le autofiler o se faʻaopoopoga mea e manaʻomia ona mafai. Matou te manaʻomia le taʻavale Repmgr daemon i luga o node taʻitasi ona mafai lea ona matou faʻatulagaina le autofiler.

Repmgr siaki pe o ola pona Postgres. Repmgr faiga siaki mo le i ai o le tasi ma le isi, e le o se auala sili ona lelei. e mafai ona i ai ni fa'alavelave lavelave o feso'ota'iga tu'ufua lea e mafai ai ona malepe se fuifui tele Repmgr i ni nai mea laiti ma fa'aauau pea ona galue. Ou te leʻi mulimuli i Repmgr mo se taimi umi, atonu na faʻamautu ... pe leai. Ae o le aveeseina o faʻamatalaga e uiga i le tulaga o le fuifui i DCS, e pei ona faia e Stolon, Patroni, o le filifiliga sili ona aoga.

Alexey, ei ai sa'u fesili, atonu o se fesili lamer. I se tasi o faʻataʻitaʻiga muamua, na e siiina le DCS mai le masini faʻapitonuʻu i se nofoaga mamao. Matou te malamalama o le fesoʻotaʻiga o se mea e iai ona lava uiga, e ola na o ia. Ma o le a le mea e tupu pe a fai o nisi mafuaaga ua le maua ai le vaega ole DCS? O le a ou le taʻuina atu mafuaʻaga, e mafai ona tele naua: mai lima piʻopiʻo o networkers i faʻafitauli moni.

Ou te lei fai atu leotele, ae o le DCS cluster e tatau foi ona failover, o lona uiga o se numera uiga ese o nodes, ina ia mafai ona ausia se korama. O le a le mea e tupu pe a le avanoa le fa'aputuga o le DCS, pe le mafai ona fa'amalieina se korama, o lona uiga o se ituaiga o vaeluaga o feso'ota'iga po'o fa'aletonu node? I lenei tulaga, o le vaega o le Patroni e alu i le faitau na'o le faiga. E le mafai e le fuifui Patroni ona iloa le tulaga o le fuifui ma le mea e fai. E le mafai ona fa'afeso'ota'i le DCS ma teu ai le fa'aputuga fou o lo'o i ai, o lea e alu ai le fuifui atoa na'o le faitau. Ma fa'atali a le mo se fa'atonuga lima mai le fa'afoe po'o le DCS e toe fa'aleleia.

I le tautala fa'alata, ua avea le DCS ma se auaunaga mo i tatou e taua e pei o le faavae lava ia?

Ioe Ioe. I le tele o kamupani fa'aonaponei, o le Service Discovery o se vaega taua o atina'e. O loʻo faʻatinoina e tusa lava pe leʻi i ai se faʻamaumauga i totonu o atinaʻe. E tusa ai ma le tautalaga, na faʻalauiloaina le atinaʻe, faʻapipiʻi i le DC, ma o le taimi lava lea e maua ai le Service Discovery. Afai o le Konesula, ona mafai lea ona fausia DNS i luga. Afai o le Etcd lea, atonu o loʻo i ai se vaega mai le Kubernetes cluster, lea o le a faʻapipiʻiina ai isi mea uma. E foliga mai ia te aʻu o le Service Discovery ua leva ona avea ma vaega taua o atinaʻe faʻaonapo nei. Ma latou te mafaufau muamua i ai nai lo faʻamaumauga.

Faafetai lava!

puna: www.habr.com

Faaopoopo i ai se faamatalaga