Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Is é príomhsprioc Patroni ná Ard-Infhaighteacht a sholáthar do PostgreSQL. Ach is teimpléad é Patroni, ní uirlis réamhdhéanta (a deirtear, go ginearálta, sna doiciméid). Ar an gcéad amharc, tar éis duit Patroni a chur ar bun sa saotharlann tástála, is féidir leat a fheiceáil gur uirlis iontach é agus cé chomh héasca agus a láimhseálann sé ár n-iarrachtaí an braisle a bhriseadh. Mar sin féin, go praiticiúil, i dtimpeallacht táirgthe, ní tharlaíonn gach rud i gcónaí chomh hálainn agus chomh galánta agus atá i saotharlann tástála.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Inseoidh mé beagán duit fúm féin. Thosaigh mé amach mar riarthóir córais. D'oibrigh sé i bhforbairt gréasáin. Tá mé ag obair ag Data Egret ó 2014 i leith. Tá an chuideachta i mbun comhairliúcháin i réimse Postgres. Agus déanaimid freastal go díreach ar Postgres, agus oibrímid le Postgres gach lá, agus mar sin tá saineolas difriúil againn a bhaineann leis an oibríocht.

Agus ag deireadh 2018, thosaigh muid ag úsáid Patroni go mall. Agus tá roinnt taithí carntha. Rinneamar é a dhiagnóisiú ar bhealach éigin, rinneamar é a thiúnadh, tháinig ár gcuid cleachtais is fearr. Agus sa tuarascáil seo labhróidh mé fúthu.

Seachas Postgres, is breá liom Linux. Is maith liom a bheith ag siúl timpeall ann agus ag iniúchadh, is maith liom croíleacáin a bhailiú. Is breá liom fíorúlú, coimeádáin, docker, Kubernetes. Is díol spéise é seo dom, mar tá tionchar ag na sean-nósanna riaracháin. Is maith liom déileáil le monatóireacht. Agus is breá liom postgres rudaí a bhaineann le riarachán, i.e. macasamhlú, cúltaca. Agus i mo chuid ama spártha scríobhaim in Go. Ní innealtóir bogearraí mé, ní scríobhaim ach dom féin in Go. Agus tugann sé sásamh dom.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

  • Sílim go bhfuil a fhios ag go leor agaibh nach bhfuil HA (Ard-Infhaighteacht) ag Postgres as an mbosca. Chun HA a fháil, ní mór duit rud éigin a shuiteáil, é a chumrú, iarracht a dhéanamh agus é a fháil.
  • Tá roinnt uirlisí ann agus tá Patroni ar cheann acu a réitíonn HA go leor fionnuar agus go han-mhaith. Ach trína chur go léir i saotharlann tástála agus é a rith, is féidir linn a fheiceáil go n-oibríonn sé go léir, is féidir linn roinnt fadhbanna a atáirgeadh, féachaint conas a fhreastalaíonn Patroni orthu. Agus feicfimid go n-oibríonn sé go hiontach.
  • Ach go praiticiúil, thugamar aghaidh ar fhadhbanna éagsúla. Agus beidh mé ag caint faoi na fadhbanna seo.
  • Inseoidh mé duit conas a diagnóisíodh é, cad a tweaked againn - cibé an chabhraigh sé linn nó nach ea.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

  • Ní inseoidh mé duit conas Patroni a shuiteáil, mar is féidir leat google ar an Idirlíon, is féidir leat breathnú ar na comhaid cumraíochta chun tuiscint a fháil ar conas a thosaíonn sé ar fad, conas a bhíonn sé cumraithe. Is féidir leat na scéimeanna, na hailtireachtaí, faisnéis a fháil faoi a fháil ar an Idirlíon.
  • Ní bheidh mé ag caint faoi thaithí duine eile. Ní labhróidh mé ach faoi na fadhbanna a bhí romhainn.
  • Agus ní bheidh mé ag caint faoi fhadhbanna atá lasmuigh de Patroni agus PostgreSQL. Más rud é, mar shampla, go bhfuil fadhbanna ag baint le cothromaíocht, nuair a thit ár mbraisle, ní bheidh mé ag caint faoi.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus séanadh beag sula gcuirfimid tús lenár dtuairisc.

Na fadhbanna seo go léir a tháinig muid chun solais, bhí siad againn sa chéad 6-7-8 mí oibríochta. Le himeacht ama, thángamar ar ár ndea-chleachtais inmheánacha. Agus imithe ár gcuid fadhbanna. Mar sin, fógraíodh an tuarascáil timpeall sé mhí ó shin, nuair a bhí sé úr i mo cheann agus chuimhnigh mé go foirfe air.

Le linn an tuarascáil a ullmhú, d'ardaigh mé seancheisteanna iarbháis cheana féin, d'fhéach mé ar na logaí. Agus d'fhéadfaí dearmad a dhéanamh ar chuid de na sonraí, nó níorbh fhéidir cuid de roinnt sonraí a fhiosrú go hiomlán le linn na hanailíse ar na fadhbanna, agus mar sin ag pointí áirithe d'fhéadfadh sé a bheith cosúil nach ndéantar na fadhbanna a mheas go hiomlán, nó go bhfuil roinnt easpa faisnéise ann. Agus mar sin iarraim ort mo leithscéal a ghabháil as an nóiméad seo.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Cad é Patroni?

  • Is teimpléad é seo chun HA a thógáil. Sin a deir sé sa doiciméadú. Agus ó mo dhearcadh féin, is soiléiriú an-cheart é seo. Ní piléar airgid é Patroni a réiteoidh do chuid fadhbanna go léir, is é sin, ní mór duit iarracht a dhéanamh chun é a oibriú agus sochair a thabhairt.
  • Is seirbhís gníomhaire é seo atá suiteáilte ar gach seirbhís bunachar sonraí agus is cineál córais init é do Postgres. Tosaíonn sé Postgres, stopann sé, atosóidh sé, athchumraíonn sé, agus athraíonn sé topology do bhraisle.
  • Dá réir sin, d'fhonn staid an bhraisle a stóráil, a léiriú reatha, mar a fhéachann sé, tá gá le cineál éigin stórála. Agus ón dearcadh seo, ghlac Patroni an cosán chun stát a stóráil i gcóras seachtrach. Is córas stórála cumraíochta dáilte é. Is féidir é a bheith Etcd, Consal, ZooKeeper, nó kubernetes Etcd, i.e. ceann de na roghanna seo.
  • Agus is é ceann de na gnéithe de Patroni go bhfaigheann tú an autofiler as an mbosca, ach amháin trí é a shocrú. Má thógaimid Repmgr chun comparáid a dhéanamh, tá an comhdóir san áireamh ann. Le Repmgr, faigheann muid aistriú, ach más mian linn uathchomhadóir, ní mór dúinn é a chumrú freisin. Tá uathchomhadóir as an mbosca cheana féin ag Patroni.
  • Agus tá go leor rudaí eile. Mar shampla, cothabháil na bhfoirmíochtaí, ag stealladh macasamhla nua, cúltaca, etc Ach tá sé seo thar raon feidhme na tuarascála, ní bheidh mé ag caint faoi.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus is é toradh beag ná gurb é príomhthasc Patroni ná autofile a dhéanamh go maith agus go hiontaofa ionas go mbeidh ár mbraisle fós ag feidhmiú agus nach dtugann an feidhmchlár faoi deara athruithe ar an topology braisle.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Ach nuair a thosaímid ag úsáid Patroni, éiríonn ár gcóras beagán níos casta. Más rud é go raibh Postgres níos luaithe againn, ansin nuair a bhíonn Patroni á úsáid againn faighimid Patroni féin, faighimid DCS ina stóráiltear an stát. Agus caithfidh sé go léir oibriú ar bhealach éigin. Mar sin, cad is féidir dul mícheart?

Bealtaine sos:

  • Seans go mbrisfeadh Postgres. Is féidir é a bheith ina mháistir nó ina mhacasamhail, d'fhéadfadh go dteipeann ar cheann acu.
  • Féadfaidh an Patroni féin briseadh.
  • Féadfaidh an DCS ina stóráiltear an stát briseadh.
  • Agus is féidir leis an líonra a bhriseadh.

Déanfaidh mé na pointí seo go léir a mheas sa tuarascáil.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Breithneoidh mé cásanna de réir mar a éiríonn siad níos casta, ní ó thaobh go bhfuil go leor comhpháirteanna sa chás. Agus ó thaobh mothúcháin suibiachtúla, go raibh an cás seo deacair dom, bhí sé deacair é a dhíchóimeáil ... agus vice versa, bhí cás éigin éadrom agus bhí sé éasca é a dhíchóimeáil.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus is é an chéad chás an ceann is éasca. Is amhlaidh an cás nuair a thógamar braisle bunachar sonraí agus nuair a d’imlonníomar ár stóras DCS ar an mbraisle chéanna. Is é seo an botún is coitianta. Is botún é seo maidir le hailtireacht tógála, i.e. comhpháirteanna éagsúla a chomhcheangal in aon áit amháin.

Mar sin, bhí filer, a ligean ar dul chun déileáil leis an méid a tharla.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus anseo tá suim againn i nuair a tharla an filer. Is é sin, tá suim againn sa nóiméad seo in am nuair a tháinig athrú ar an gcnuas-staid.

Ach ní bhíonn an comhdaitheoir meandrach i gcónaí, i.e. ní thógann sé aon aonad ama, is féidir moill a chur air. Is féidir leis a bheith fada buan.

Mar sin, tá am tosaithe agus am críochnaithe aige, i.e. is imeacht leanúnach é. Agus roinnimid na himeachtaí go léir i dtrí eatramh: tá am againn roimh an gcomhdaitheoir, le linn an chomhdaitheora agus tar éis an chomhdaitheora. Is é sin, breithnímid na himeachtaí go léir san amlíne seo.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus an chéad rud, nuair a tharla filer, táimid ag lorg an chúis cad a tharla, cad ba chúis leis an méid a bhí mar thoradh ar an gcomhdóir.

Má fhéachaimid ar na logaí, beidh siad ina logs clasaiceach Patroni. Insíonn sé dúinn iontu go bhfuil an freastalaí anois ina mháistir, agus tá ról an mháistir tar éis dul ar aghaidh chuig an nód seo. Anseo tá sé aibhsithe.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Ansin, ní mór dúinn a thuiscint cén fáth ar tharla an comhdóir, ie cad iad na teagmhais a tharla ba chúis leis an ról máistir bogadh ó nód amháin go ceann eile. Agus sa chás seo, tá gach rud simplí. Tá earráid againn maidir le hidirghníomhú leis an gcóras stórála. Thuig an máistir nach bhféadfadh sé a bheith ag obair le DCS, is é sin, go raibh fadhb de chineál éigin ann leis an idirghníomhaíocht. Agus deir sé nach féidir leis a bheith ina mháistir a thuilleadh agus go n-éireoidh sé as. Is é sin go díreach a deir an líne seo “demoted self”.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Má bhreathnaímid ar na himeachtaí a tháinig roimh an gcomhdaitheoir, is féidir linn a fheiceáil ann na fíorchúiseanna a bhí mar fhadhb le leanúint leis an draoi.

Má bhreathnaíonn muid ar logaí Patroni, feicfidh muid go bhfuil go leor earráidí againn, teorainneacha ama, i.e. ní féidir le gníomhaire Patroni oibriú leis an DCS. Sa chás seo, is gníomhaire Consal é seo, atá ag cumarsáid ar phort 8500.

Agus is í an fhadhb anseo ná go bhfuil Patroni agus an bunachar sonraí ag rith ar an óstach céanna. Agus seoladh na freastalaithe Consal ar an nód céanna. Trí ualach a chruthú ar an bhfreastalaí, chruthaigh muid fadhbanna do na freastalaithe Consal freisin. Ní raibh siad in ann cumarsáid cheart a dhéanamh.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Tar éis roinnt ama, nuair a tháinig laghdú ar an ualach, bhí ár Patroni in ann cumarsáid a dhéanamh le gníomhairí arís. Athchromadh ar ghnáthobair. Agus tháinig an freastalaí Pgdb-2 céanna ina mháistir arís. Is é sin, bhí smeach beag, mar gheall ar a d'éirigh an nód cumhachtaí an mháistir, agus ansin thóg arís iad, is é sin, gach rud ar ais mar a bhí sé.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus is féidir é seo a mheas mar aláram bréagach, nó is féidir a mheas go ndearna Patroni gach rud i gceart. Is é sin, thuig sé nach bhféadfadh sé staid an bhraisle a choinneáil agus bhain sé a údarás.

Agus anseo d'eascair an fhadhb mar gheall ar an bhfíric go bhfuil na freastalaithe Consal ar na crua-earraí céanna leis na boinn. Dá réir sin, aon ualach: cibé an bhfuil sé an t-ualach ar dioscaí nó próiseálaithe, bíonn tionchar aige freisin ar an idirghníomhú leis an braisle Consal.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus shocraigh muid nár cheart go mairfeadh sé le chéile, leithdháileadh braisle ar leith againn don Chonsal. Agus bhí Patroni ag obair cheana féin le Consal ar leith, is é sin, bhí braisle ar leith Postgres, braisle Consal ar leith. Treoir bhunúsach é seo maidir le conas na rudaí seo go léir a iompar agus a choinneáil ionas nach gcónaíonn sé le chéile.

Mar rogha, is féidir leat na paraiméadair ttl, loop_wait, retry_timeout a chasadh, i.e. iarracht a dhéanamh maireachtáil ar na buaiceanna ualaigh gearrthéarmacha seo trí na paraiméadair seo a mhéadú. Ach ní hé seo an rogha is oiriúnaí, mar is féidir an t-ualach seo a bheith fada in am. Agus rachaimid thar theorainneacha na bparaiméadar seo. Agus b'fhéidir nach gcabhródh sé sin i ndáiríre.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Is é an chéad fhadhb, mar a thuigeann tú, simplí. Ghlacamar agus chuir muid an DCS le chéile leis an mbonn, fuair muid fadhb.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Tá an dara fadhb cosúil leis an gcéad cheann. Is cosúil go bhfuil fadhbanna idir-inoibritheachta againn arís leis an gcóras DCS.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Má fhéachaimid ar na logaí, feicfidh muid go bhfuil earráid chumarsáide againn arís. Agus deir Patroni nach féidir liom idirghníomhú le DCS agus mar sin téann an máistir reatha isteach i mód macasamhail.

Éiríonn an seanmháistir ina mhacasamhail, anseo oibríonn Patroni amach, mar ba chóir. Ritheann sé pg_rewind chun logáil an idirbhirt a athchasadh agus ansin ceangal leis an máistir nua chun teacht suas leis an máistir nua. Anseo oibríonn Patroni amach, mar ba chóir dó.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Anseo ní mór dúinn an áit a tháinig roimh an gcomhdaitheoir a aimsiú, ie na hearráidí sin ba chúis le comhdaitheoir a bheith againn. Agus maidir leis seo, tá logaí Patroni sách áisiúil oibriú leo. Scríobhann sé na teachtaireachtaí céanna ag eatramh áirithe. Agus má thosaíonn muid ag scrollú trí na logaí seo go tapa, ansin feicfimid ó na logaí go bhfuil na logaí athraithe, rud a chiallaíonn go bhfuil tús curtha le roinnt fadhbanna. Fillimid go tapa ar an áit seo, féach cad a tharlaíonn.

Agus i staid gnáth, cuma na logs rud éigin mar seo. Déantar úinéir an ghlais a sheiceáil. Agus má tá an t-úinéir, mar shampla, tar éis athrú, is féidir go dtarlódh roinnt imeachtaí nach mór do Patroni freagairt dóibh. Ach sa chás seo, tá muid ceart go leor. Táimid ag lorg na háite inar thosaigh na hearráidí.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus tar éis scrollú go dtí an pointe ar thosaigh na hearráidí ag teacht chun cinn, feicimid go raibh comhdú uathoibríoch againn. Agus ós rud é go raibh baint ag ár n-earráidí leis an idirghníomhú le DCS agus inár gcás a d'úsáid muid Consal, féachaimid freisin ar na logaí Consal, cad a tharla ann.

Ag déanamh comparáide garbh idir am an chomhadóra agus an t-am i logaí na gConsal, feicimid gur thosaigh ár gcomharsana sa chnuasach Consal ag amhras an raibh baill eile de chnuasach na gConsal ann.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus má fhéachann tú freisin ar logaí gníomhairí Consal eile, is féidir leat a fheiceáil freisin go bhfuil titim líonra de chineál éigin ar siúl ann. Agus tá amhras ar gach ball den chnuasach Consal go bhfuil a chéile ann. Agus ba é seo an spreagadh don chomhdóir.

Má fhéachann tú ar an méid a tharla roimh na hearráidí seo, is féidir leat a fheiceáil go bhfuil gach cineál earráidí ann, mar shampla, spriocdháta, thit RPC, is é sin, is léir go bhfuil fadhb de shaghas éigin ann maidir le hidirghníomhú bhaill an bhraisle Consal lena chéile. .

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Is é an freagra is simplí ná an líonra a dheisiú. Ach domsa, ag seasamh ar an podium, tá sé éasca é seo a rá. Ach is amhlaidh atá na himthosca nach mbíonn an custaiméir in acmhainn an líonra a dheisiú i gcónaí. Féadfaidh sé ina chónaí i DC agus b'fhéidir nach mbeadh sé in ann an líonra a dheisiú, tionchar a imirt ar an trealamh. Agus mar sin tá gá le roinnt roghanna eile.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Tá roghanna ann:

  • Is é an rogha is simplí, atá scríofa, i mo thuairim, fiú sa doiciméadú, ná seiceálacha Consal a dhíchumasú, is é sin, pas a fháil ach eagar folamh. Agus deirimid leis an ngníomhaire Consal gan aon seiceálacha a úsáid. Leis na seiceálacha seo, is féidir linn neamhaird a dhéanamh ar na stoirmeacha líonra seo agus gan comhdaitheoir a thionscnamh.
  • Rogha eile is ea raft_multiplier a sheiceáil faoi dhó. Is paraiméadar é seo den fhreastalaí Consal féin. De réir réamhshocraithe, tá sé socraithe go 5. Tá an luach seo molta ag na doiciméid le haghaidh timpeallachtaí stáitsithe. Go deimhin, bíonn tionchar aige seo ar mhinicíocht na dteachtaireachtaí idir baill den líonra Consal. Go deimhin, bíonn tionchar ag an bparaiméadar seo ar luas na cumarsáide seirbhíse idir baill den bhraisle Consal. Agus le haghaidh táirgeadh, moltar cheana féin é a laghdú ionas go malartóidh na nóid teachtaireachtaí níos minice.
  • Rogha eile a thosaigh muid ag úsáid ná tosaíocht na bpróiseas Consal a mhéadú i measc próisis eile do sceidealóir próisis an chórais oibriúcháin. Tá a leithéid de pharaiméadar “deas” ann, ní chinneann sé ach tosaíocht na bpróiseas a chuireann sceidealóir an OS san áireamh agus iad ag sceidealú. Ghlacamar agus laghdaigh muid an luach deas do ghníomhairí Consal, i.e. mhéadaigh sé an tosaíocht ionas go dtabharfaidh an córas oibriúcháin níos mó ama do phróisis Chonsal oibriú agus a gcód a fhorghníomhú. Inár gcás, réitigh sé seo ár bhfadhb.
  • Rogha eile ná Consal a úsáid. Tá cara agam a thacaíonn go mór le Etcd. Agus déanaimid argóint leis go rialta cé acu is fearr Etcd nó Consal. Ach i dtéarmaí a bhfuil níos fearr, de ghnáth aontaíonn muid leis go bhfuil gníomhaire Consal ba chóir a bheith ag rith ar gach nód le bunachar sonraí. Is é sin, téann idirghníomhú Patroni leis an gcnuasach Consal tríd an ngníomhaire seo. Agus éiríonn an gníomhaire seo tranglam. Má tharlaíonn rud éigin don ghníomhaire, ní féidir le Patroni oibriú leis an mbraisle Consal a thuilleadh. Agus is é seo an fhadhb. Níl aon ghníomhaire sa phlean Etcd. Is féidir le Patroni oibriú go díreach le liosta freastalaithe Etcd agus cumarsáid a dhéanamh leo cheana féin. I dtaca leis seo, má úsáideann tú Etcd i do chuideachta, ansin beidh Etcd dócha a bheith ina rogha níos fearr ná Consal. Ach táimid ag ár gcustaiméirí teoranta i gcónaí ag an méid a roghnaíonn agus a úsáideann an cliant. Agus tá Consal againn don chuid is mó do gach cliant.
  • Agus is é an pointe deireanach ná na luachanna paraiméadar a athbhreithniú. Is féidir linn na paraiméadair seo a ardú le súil go mbeidh ár bhfadhbanna líonra gearrthéarmacha gearr agus nach dtitfidh siad lasmuigh de raon na bparaiméadar seo. Ar an mbealach seo is féidir linn ionsaitheacht Patroni a laghdú chun uathchomhadú má tharlaíonn roinnt fadhbanna líonra.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Sílim go bhfuil go leor a úsáideann Patroni eolach ar an ordú seo.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Léiríonn an t-ordú seo staid reatha an bhraisle. Agus ar an gcéad amharc, d'fhéadfadh an pictiúr cuma gnáth. Tá máistir againn, tá macasamhail againn, níl aon mhoill ar mhacasamhlú. Ach tá an pictiúr seo gnáth go díreach go dtí go bhfuil a fhios againn gur chóir go mbeadh trí nód, ní dhá cheann, sa bhraisle seo.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Dá réir sin, bhí uathchomhad ann. Agus tar éis an chomhaid uathoibríoch seo, d'imigh ár macasamhail. Ní mór dúinn a fháil amach cén fáth a d'imigh sí agus í a thabhairt ar ais, í a chur ar ais. Agus téann muid chuig na logaí arís agus feicimid cén fáth go raibh comhadoverover uathoibríoch againn.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Sa chás seo, tháinig an dara macasamhail an máistir. Tá sé ar fad anseo.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus caithfimid féachaint ar an macasamhail a thit amach agus nach bhfuil sa bhraisle. Osclaímid logaí Patroni agus feicimid go raibh fadhb againn le linn an phróisis chun nascadh leis an mbraisle ag an gcéim pg_rewind. Chun ceangal leis an mbraisle, ní mór duit an logáil idirbheart a athchasadh, an logáil idirbheart riachtanach a iarraidh ón máistir, agus é a úsáid chun teacht suas leis an máistir.

Sa chás seo, níl logáil idirbheart againn agus ní féidir tús a chur leis an macasamhail. Dá réir sin, stopaimid Postgres le earráid. Agus dá bhrí sin níl sé sa bhraisle.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Ní mór dúinn a thuiscint cén fáth nach bhfuil sé sa bhraisle agus cén fáth nach raibh aon logs. Téim go dtí an máistir nua agus breathnú ar a bhfuil aige sna logs. Tharlaíonn sé go raibh nuair a rinneadh pg_rewind, seicphointe tharla. Agus athainmníodh cuid de na sean-logaí idirbheart go simplí. Nuair a rinne an seanmháistir iarracht ceangal a dhéanamh leis an máistir nua agus na logaí seo a cheistiú, athainmníodh iad cheana féin, ní raibh siad ann.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Rinne mé comparáid idir stampaí ama nuair a tharla na himeachtaí seo. Agus tá an difríocht literally 150 milleasoicindí, is é sin, an seicphointe críochnaithe i 369 milleasoicindí, athainmníodh na codanna WAL. Agus go litriúil i 517, tar éis 150 milleasoicind, thosaigh athchasadh ar an sean-macasamhail. Is é sin, go litriúil bhí 150 milleasoicind go leor dúinn ionas nach bhféadfaí an macasamhail a nascadh agus a thuilleamh.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Cad iad na roghanna?

D'úsáideamar sliotáin macasamhlaithe ar dtús. Cheapamar go raibh sé go maith. Cé gur ag an gcéad chéim den oibríocht mhúchadh muid na sliotáin. Chonacthas dúinn, má chruinníonn na sliotáin go leor codanna WAL, is féidir linn an máistir a scaoileadh. Beidh sé ag titim. D'fhulaing muid ar feadh tamaill gan sliotáin. Agus thuig muid go bhfuil gá againn le sliotáin, thugamar ar ais na sliotáin.

Ach tá fadhb anseo, nuair a théann an máistir chuig an macasamhail, go scriosann sé na sliotáin agus go scriosann sé na codanna WAL mar aon leis na sliotáin. Agus chun deireadh a chur leis an bhfadhb seo, shocraigh muid an paraiméadar wal_keep_segments a ardú. Tá sé réamhshocraithe go 8 mír. D'ardaigh muid go 1 é agus d'fhéachamar ar an méid spáis saor a bhí againn. Agus bhronnamar 000 ghigibheart le haghaidh walk_keep_segments. Is é sin, agus sinn ag aistriú, bíonn cúlchiste againn i gcónaí de 16 ghigibheart de logaí idirbheart ar gach nóid.

Agus móide - tá sé fós ábhartha maidir le tascanna cothabhála fadtéarmacha. Ligean le rá go gcaithfimid ceann de na macasamhla a nuashonrú. Agus ba mhaith linn é a mhúchadh. Ní mór dúinn na bogearraí a nuashonrú, b'fhéidir an córas oibriúcháin, rud éigin eile. Agus nuair a mhúchtaimid macasamhail, baintear an sliotán don macasamhail sin freisin. Agus má úsáidimid wal_keep_segments beag, ansin gan macasamhail fada ann, caillfear na logaí idirbheart. Déanfaimid macasamhail a ardú, iarrfaidh sé na logaí idirbheart sin nuair a stop sé, ach ní fhéadfaidh siad a bheith ar an máistir. Agus ní bheidh an macasamhail in ann ceangal ach an oiread. Mar sin, coinnímid stoc mór irisí.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Tá bonn táirgeachta againn. Tá tionscadail ar siúl cheana féin.

Comhdaitheoir a bhí ann. Chuaigh muid isteach agus d'fhéachamar - tá gach rud in ord, tá na macasamhla i bhfeidhm, níl aon mhoill ar mhacasamhlú. Níl aon earráidí sna logaí ach an oiread, tá gach rud in ord.

Deir an fhoireann táirge gur cheart go mbeadh roinnt sonraí ann, ach feicimid é ó fhoinse amháin, ach ní fheicimid é sa bhunachar sonraí. Agus ní mór dúinn a thuiscint cad a tharla dóibh.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Is léir gur chaill pg_rewind iad. Thuig muid seo láithreach, ach chuaigh sé a fheiceáil cad a bhí ag tarlú.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Sna logaí, is féidir linn a fháil i gcónaí nuair a tharla an comhdóir, cé a tháinig chun bheith ina mháistir, agus is féidir linn a chinneadh cé a bhí ina mháistir d'aois agus nuair a bhí sé ag iarraidh a bheith ina mhacasamhail, i.e. tá na logaí seo ag teastáil uainn chun an méid logaí idirbheart a fháil amach. a cailleadh.

Tá ár sean-mháistir atosaithe. Agus bhí Patroni cláraithe san autorun. Seoladh Patroni. Thosaigh sé ansin le Postgres. Níos cruinne, sular thosaigh Postgres agus sula ndéanfaí macasamhail de, sheol Patroni an próiseas pg_rewind. Dá réir sin, scrios sé cuid de na logaí idirbheart, íoslódáil cinn nua agus nasctha. Anseo d'oibrigh Patroni go cliste, is é sin, mar a bhíothas ag súil leis. Tá an braisle athchóirithe. Bhí 3 nóid againn, tar éis an chomhdóra 3 nóid - tá gach rud fionnuar.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Tá roinnt sonraí caillte againn. Agus ní mór dúinn a thuiscint cé mhéad atá caillte againn. Nílimid ag lorg ach an nóiméad nuair a bhí athchasadh againn. Is féidir linn é a fháil in iontrálacha irisleabhair den sórt sin. Thosaigh athchasadh, rinne rud éigin ansin agus chríochnaigh.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Ní mór dúinn an suíomh a aimsiú sa logáil idirbhirt nuair a d'fhág an seanmháistir as. Sa chás seo, is é seo an marc. Agus ní mór dúinn an dara marc, is é sin, an t-achar ag a bhfuil an máistir d'aois difriúil ón gceann nua.

Glacaimid an gnáth pg_wal_lsn_diff agus déanaimid comparáid idir an dá mharc seo. Agus sa chás seo, faigheann muid 17 meigibheart. Go leor nó beagán, cinneann gach duine dó féin. Mar gheall ar do dhuine nach bhfuil 17 meigibheart i bhfad, do dhuine go bhfuil sé go leor agus do-ghlactha. Anseo, déanann gach duine aonair cinneadh dó féin de réir riachtanais an ghnó.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Ach cad atá faighte amach againn dúinn féin?

Gcéad dul síos, ní mór dúinn cinneadh a dhéanamh dúinn féin - an bhfuil i gcónaí ag teastáil uainn Patroni chun uath-thosú tar éis atosaigh córais? Tarlaíonn sé go minic go gcaithfimid dul go dtí an sean-mháistir, féach cé chomh fada agus atá sé imithe. B'fhéidir iniúchadh a dhéanamh ar chodanna den logáil idirbheart, féach cad atá ann. Agus a thuiscint an féidir linn na sonraí seo a chailleadh nó an gá dúinn an sean-mháistir a rith i mód aonair chun na sonraí seo a tharraingt amach.

Agus go díreach ina dhiaidh sin ní mór dúinn a chinneadh an féidir linn na sonraí seo a chaitheamh amach nó an féidir linn iad a chur ar ais, an nód seo a nascadh mar mhacasamhail dár mbraisle.

Ina theannta sin, tá paraiméadar "maximum_lag_on_failover". De réir réamhshocraithe, má fhreastalaíonn mo chuimhne orm, tá luach 1 meigibheart ag an bparaiméadar seo.

Conas a oibríonn sé? Má tá ár macasamhail taobh thiar de 1 mheigeavata sonraí san aga moille maidir le macasamhlú, ansin ní ghlacann an macasamhail seo páirt sna toghcháin. Agus más rud é go tobann go bhfuil comhad ar siúl, breathnaíonn Patroni ar na macasamhla atá tite ar gcúl. Má tá líon mór logaí idirbheart taobh thiar díobh, ní féidir leo a bheith ina mháistir. Is gné slándála an-mhaith é seo a chuireann cosc ​​​​ort a lán sonraí a chailliúint.

Ach tá fadhb ann sa mhéid is go ndéantar an t-am moille macasamhlú i mbraisle Patroni agus DCS a nuashonrú ag eatramh áirithe. Sílim gurb é 30 soicind an luach ttl réamhshocraithe.

Dá réir sin, d’fhéadfadh go mbeadh aga moille amháin ann maidir le macasamhlú macasamhla sa DCS, ach i ndáiríre d’fhéadfadh moill iomlán difriúil a bheith ann nó b’fhéidir nach mbeidh aon mhoill ar bith ann, i.e. ní rud fíor-ama é seo. Agus ní i gcónaí a léiríonn sé an pictiúr fíor. Agus ní fiú loighic bhréige a dhéanamh air.

Agus tá an baol caillteanais i gcónaí. Agus sa chás is measa, foirmle amháin, agus sa mheánchás, foirmle eile. Is é sin, nuair a dhéanaimid pleanáil ar chur i bhfeidhm Patroni agus meastóireacht a dhéanamh ar an méid sonraí is féidir linn a chailleadh, ní mór dúinn brath ar na foirmlí seo agus a shamhlú go garbh cé mhéad sonraí is féidir linn a chailleadh.

Agus tá dea-scéal ann. Nuair a bhíonn an sean-mháistir imithe ar aghaidh, is féidir leis dul ar aghaidh mar gheall ar roinnt próisis chúlra. Is é sin, bhí cineál éigin de autovacuum, scríobh sé na sonraí, iad a shábháil ar an logáil idirbheart. Agus is féidir linn neamhaird a dhéanamh go héasca agus na sonraí seo a chailleadh. Níl fadhb ar bith leis seo.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus is é seo an chaoi a bhfuil cuma ar na logaí má tá maximum_lag_on_failover socraithe agus comhdaitheoir tar éis tarlú, agus ní mór duit máistir nua a roghnú. Measann an macasamhail go bhfuil sé éagumasach ar pháirt a ghlacadh sna toghcháin. Agus diúltaíonn sí páirt a ghlacadh sa rás don cheannaire. Agus fanann sí le máistir nua a roghnú, ionas gur féidir léi ceangal a dhéanamh leis ansin. Is beart breise é seo i gcoinne caillteanas sonraí.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Anseo tá foireann táirgí againn a scríobh go bhfuil fadhbanna ag a dtáirge le Postgres. Ag an am céanna, ní féidir rochtain a fháil ar an máistir féin, toisc nach bhfuil sé ar fáil trí SSH. Agus ní tharlaíonn an autofile ach an oiread.

B'éigean an t-óstach seo a atosú. Mar gheall ar an atosaigh, tharla comhad uathoibríoch, cé go raibh sé indéanta comhad uathoibríoch láimhe a dhéanamh, mar a thuigim anois. Agus tar éis an atosaigh, táimid ag dul a fheiceáil cheana féin cad a bhí againn leis an máistir reatha.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Ag an am céanna, bhí a fhios againn roimh ré go raibh fadhbanna againn le dioscaí, is é sin, bhí a fhios againn cheana féin ó mhonatóireacht cá háit le tochailt agus cad ba cheart a lorg.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Fuair ​​​​muid isteach sa logáil postgres, thosaigh a fheiceáil cad a bhí ag tarlú ann. Chonaiceamar gealltanais a mhaireann ansin ar feadh soicind amháin, dhá cheann, trí shoicind, rud nach gnáth ar chor ar bith. Chonaic muid go dtosaíonn ár n-uathfholús suas go han-mhall agus aisteach. Agus chonaic muid comhaid shealadacha ar an diosca. Is é sin, is táscairí iad seo go léir ar fhadhbanna le dioscaí.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

D'fhéachamar isteach sa chóras dmesg (log eithne). Agus chonaic muid go bhfuil fadhbanna againn le ceann de na dioscaí. Raid bogearraí a bhí san fhochóras diosca. D'fhéachamar ar /proc/mdstat agus chonaiceamar go raibh tiomántán amháin in easnamh orainn. Is é sin, tá Raid de 8 dioscaí, táimid ag iarraidh ar cheann. Má fhéachann tú go cúramach ar an sleamhnán, ansin san aschur is féidir leat a fheiceáil nach bhfuil sde againn ann. Ag linn, ag labhairt go coinníollach, tá an diosca tite amach. Spreag sé seo fadhbanna diosca, agus bhí fadhbanna ag feidhmchláir freisin agus iad ag obair le braisle Postgres.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus sa chás seo, ní chuideodh Patroni linn ar bhealach ar bith, toisc nach bhfuil sé de chúram ar Patroni monatóireacht a dhéanamh ar staid an fhreastalaí, ar staid an diosca. Agus ní mór dúinn monatóireacht a dhéanamh ar chásanna den sórt sin trí mhonatóireacht sheachtrach. Chuireamar monatóireacht diosca go tapa le monatóireacht sheachtrach.

Agus bhí smaoineamh den sórt sin - an bhféadfadh fálú nó bogearraí faire cabhrú linn? Shíl muid gur ar éigean a chuideodh sé linn sa chás seo, mar le linn na bhfadhbanna lean Patroni ag idirghníomhú leis an mbraisle DCS agus ní fhaca sé aon fhadhb. Is é sin, ó thaobh DCS agus Patroni, bhí gach rud go breá leis an mbraisle, cé go raibh fadhbanna leis an diosca i ndáiríre, bhí fadhbanna le hinfhaighteacht an bhunachair sonraí.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

I mo thuairimse, is é seo ceann de na fadhbanna is aisteach a ndearna mé taighde air le fada an lá, tá go leor logs léite agam, ath-roghnaigh mé agus d'iarr mé insamhlóir braisle air.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Ba í an fhadhb a bhí ann ná nach bhféadfadh an sean-mháistir a bheith ina ghnáth-macasamhail, i.e. chuir Patroni tús leis, léirigh Patroni go raibh an nód seo i láthair mar mhacasamhail, ach ag an am céanna ní gnáth-macasamhail a bhí ann. Anois feicfidh tú cén fáth. Is é seo a choinnigh mé ón anailís ar an bhfadhb sin.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus conas a thosaigh sé ar fad? Thosaigh sé, mar a bhí sa fhadhb roimhe seo, le coscáin diosca. Bhí gealltanais againn ar feadh soicind, dhá cheann.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Bhí briseadh sna naisc, i.e., bhí cliaint stróicthe.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Bhí baic de dhéine éagsúla ann.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus, dá réir sin, níl an fochóras diosca an-sofhreagrach.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus is é an rud is mistéireach domsa an t-iarratas múchta láithreach a tháinig. Tá trí mhodh múchta ag Postgres:

  • Tá sé galánta nuair a fhanaimid ar gach cliant a dhícheangal ina n-aonar.
  • Tarlaíonn sé go tapa nuair a chuirimid iallach ar chliaint dícheangal mar go bhfuilimid chun múchadh.
  • Agus láithreach. Sa chás seo, ní insíonn láithreach fiú do chliaint stop a chur, stopann sé gan rabhadh. Agus chuig gach cliant, cuireann an córas oibriúcháin teachtaireacht RST cheana féin (teachtaireacht TCP go gcuirtear isteach ar an nasc agus nach bhfuil aon rud eile le gabháil ag an gcliant).

Cé a sheol an comhartha seo? Ní sheolann próisis chúlra Postgres comharthaí den sórt sin chuig a chéile, i.e. is kill-9 é seo. Ní sheolann siad rudaí den sórt sin chuig a chéile, ní imoibríonn siad ach lena leithéid de rudaí, ie is atosú éigeandála é seo de Postgres. Cé a sheol é, níl a fhios agam.

Bhreathnaigh mé ar an ordú "deireadh" agus chonaic mé duine amháin a logáil isteach sa fhreastalaí seo linn freisin, ach bhí mé ró-chúthail ceist a chur. B'fhéidir go raibh sé mharú -9. Ba mhaith liom a fheiceáil mharú -9 sna logs, mar gheall ar Deir Postgres gur thóg sé mharú -9, ach ní fhaca mé é sna logaí.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Ag breathnú níos faide, chonaic mé nár scríobh Patroni chuig an loga le fada go leor - 54 soicind. Agus má dhéanaimid comparáid idir dhá stampa ama, ní raibh aon teachtaireachtaí ann ar feadh thart ar 54 soicind.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus le linn an ama bhí autofile. Rinne Patroni jab iontach anseo arís. Ní raibh ár sean-mháistir ar fáil, tharla rud éigin dó. Agus thosaigh an toghchán máistir nua. D'oibrigh gach rud amach go maith anseo. Tá ár pgsql01 anois mar cheannaire nua.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Tá macasamhail againn a tháinig chun bheith ina mháistir. Agus tá an dara freagra. Agus bhí fadhbanna leis an dara macasamhail. Rinne sí iarracht athchumrú. De réir mar a thuigim é, rinne sí iarracht recovery.conf a athrú, Postgres a atosú agus ceangal leis an máistir nua. Scríobhann sí teachtaireachtaí gach 10 soicind a bhíonn sí ag iarraidh, ach níl ag éirí léi.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus le linn na n-iarrachtaí seo, tagann comhartha múchta láithreach chuig an sean-mháistir. Tá an máistir atosú. Agus stopann aisghabháil freisin toisc go dtéann an sean-mháistir isteach i atosaigh. Is é sin, ní féidir leis an macasamhail nascadh leis, toisc go bhfuil sé i mód múchta.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Ag pointe éigin, d'oibrigh sé, ach níor thosaigh macasamhlú.

Is é an t-aon buille faoi thuairim atá agam ná go raibh sean-seoladh máistir in recovery.conf. Agus nuair a tháinig máistir nua le feiceáil, rinne an dara macasamhail iarracht fós ceangal a dhéanamh leis an sean-mháistir.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Nuair a thosaigh Patroni ar an dara macasamhail, thosaigh an nód ar bun ach ní raibh sé in ann a mhacasamhlú. Agus foirmíodh moill macasamhlú, rud a d'fhéach rud mar seo. Is é sin, bhí na trí nód ar fad i bhfeidhm, ach bhí an dara nód chun deiridh.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Ag an am céanna, má fhéachann tú ar na logaí a scríobhadh, d'fhéadfá a fheiceáil nach bhféadfaí tús a chur le macasamhlú toisc go raibh na logaí idirbheart difriúil. Agus na logaí idirbheart sin a thairgeann an máistir, atá sonraithe in recovery.conf, nach bhfuil ach oiriúnach dár nód reatha.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus anseo rinne mé botún. Bhí orm teacht chun a fheiceáil cad a bhí i recovery.conf chun mo hipitéis a thástáil go raibh muid ag nascadh leis an máistir mícheart. Ach ansin bhí mé díreach ag déileáil leis seo agus níor tharla sé dom, nó chonaic mé go raibh an macasamhail tite ar gcúl agus go gcaithfí é a athlíonadh, is é sin, d'oibrigh mé go míchúramach ar bhealach éigin. Ba é seo mo chomhpháirteach.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Tar éis 30 nóiméad, tháinig an riarthóir cheana féin, i.e. d’atosaigh mé Patroni ar an macasamhail. Chuir mé deireadh leis cheana féin, shíl mé go gcaithfí é a athlíonadh. Agus shíl mé - atosóidh mé Patroni, b'fhéidir go dtiocfaidh rud éigin go maith amach. Thosaigh téarnamh. Agus d'oscail an bonn fiú, bhí sé réidh chun glacadh le naisc.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Tá macasamhlú tosaithe. Ach nóiméad ina dhiaidh sin thit sí amach le earráid nach bhfuil logaí idirbheart oiriúnach di.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Shíl mé gur mhaith liom atosú arís. D'atosaigh mé Patroni arís, agus níor atosaigh mé Postgres, ach d'atosaigh Patroni le súil go dtosódh sé go draíochta ar an mbunachar sonraí.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Thosaigh an macasamhlú arís, ach bhí na marcanna sa logáil idirbheart difriúil, ní raibh siad mar an gcéanna leis an iarracht tosaithe roimhe seo. Stopadh an macasamhlú arís. Agus bhí an teachtaireacht beagán difriúil cheana féin. Agus ní raibh sé an-fhaisnéiseach dom.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus ansin tarlaíonn sé dom - cad má atosaim Postgres, ag an am seo déanaim seicphointe ar an máistir reatha chun an pointe sa logáil idirbheart a bhogadh beagán ar aghaidh ionas go dtosóidh an aisghabháil ó nóiméad eile? Ina theannta sin, bhí stoic WAL fós againn.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

D'atosaigh mé Patroni, rinne mé cúpla seicphointí ar an máistir, cúpla pointe atosú ar an macasamhail nuair a d'oscail sé. Agus chabhraigh sé. Shíl mé le fada an lá cén fáth ar chabhraigh sé agus conas a d'oibrigh sé. Agus thosaigh an macasamhail. Agus ní raibh macasamhlú stróicthe a thuilleadh.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Tá fadhb den sórt sin agamsa ar cheann de na cinn is mistéireach, agus táim fós ag déanamh machnaimh ar cad a tharla ann i ndáiríre.

Cad iad na himpleachtaí anseo? Is féidir le Patroni oibriú mar atá beartaithe agus gan aon earráidí. Ach ag an am céanna, ní ráthaíocht 100% é seo go bhfuil gach rud go breá linn. Féadfaidh an macasamhail tosú, ach d'fhéadfadh sé a bheith i stát leath-oibre, agus ní féidir leis an iarratas oibriú le macasamhail den sórt sin, toisc go mbeidh sean-shonraí ann.

Agus tar éis an chomhdóra, ní mór duit a sheiceáil i gcónaí go bhfuil gach rud in ord leis an mbraisle, is é sin, go bhfuil an líon macasamhla riachtanach ann, níl aon mhoill ar mhacasamhlú.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Agus agus muid ag dul tríd na saincheisteanna seo, déanfaidh mé moltaí. Rinne mé iarracht iad a chomhcheangal ina dhá shleamhnán. Is dócha go bhféadfaí na scéalta go léir a chomhcheangal ina dhá shleamhnán agus gan ach iad a insint.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Nuair a úsáideann tú Patroni, ní mór duit monatóireacht a dhéanamh. Ba cheart go mbeadh a fhios agat i gcónaí cathain a tharla uathchomhadú, mar mura bhfuil a fhios agat go raibh comhadú uathoibríoch agat, níl aon smacht agat ar an mbraisle. Agus is olc sin.

Tar éis gach comhdóra, ní mór dúinn i gcónaí an braisle a sheiceáil de láimh. Ní mór dúinn a chinntiú go mbíonn líon macasamhla cothrom le dáta againn i gcónaí, níl aon mhoill ar mhacasamhlú, níl aon earráidí sna logaí a bhaineann le macasamhlú sruthú, le Patroni, leis an gcóras DCS.

Is féidir le uathoibriú oibriú go rathúil, is uirlis an-mhaith é Patroni. Is féidir leis oibriú, ach ní thabharfaidh sé seo an braisle go dtí an stát atá ag teastáil. Agus mura bhfaighimid amach faoi, beidh muid i dtrioblóid.

Agus ní piléar airgid é Patroni. Ní mór dúinn fós a thuiscint conas a oibríonn Postgres, conas a oibríonn macasamhlú agus conas a oibríonn Patroni le Postgres, agus conas a chuirtear cumarsáid idir nóid ar fáil. Tá sé seo riachtanach chun a bheith in ann fadhbanna a shocrú le do lámha.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Conas a rachaidh mé i ngleic le saincheist an diagnóis? Tharla sé sin go n-oibrímid le cliaint éagsúla agus nach bhfuil cruach ELK ag aon duine, agus ní mór dúinn na logaí a réiteach trí 6 chonsól agus 2 chluaisín a oscailt. I gcluaisín amháin, is iad seo na logaí Patroni do gach nód, sa chluaisín eile, is iad seo na logaí Consal, nó Postgres más gá. Tá sé an-deacair é seo a dhiagnóiseadh.

Cad iad na cineálacha cur chuige atá forbartha agam? Ar dtús, féachaim i gcónaí nuair a bhíonn an comhdóir tagtha. Agus domsa is tairseach é seo. Breathnaím ar an méid a tharla roimh an gcomhdaitheoir, le linn an chomhdaitheora agus tar éis an chomhdaitheora. Tá dhá mharc ar an gcomhad: seo é an t-am tosaigh agus an deireadh.

Ansin, breathnaím sna logaí le haghaidh imeachtaí roimh an gcomhdaitheoir, a tháinig roimh an gcomhdaitheoir, ie táim ag féachaint do na cúiseanna ar tharla an comhdaitheoir.

Agus tugann sé seo pictiúr de thuiscint cad a tharla agus cad is féidir a dhéanamh sa todhchaí ionas nach dtarlóidh imthosca den sórt sin (agus mar thoradh air sin, níl aon chomhdóir).

Agus cén áit a bhféachaimid de ghnáth? Breathnaím:

  • Ar dtús, chuig logaí Patroni.
  • Ansin, féachaim ar logaí Postgres, nó ar na logaí DCS, ag brath ar an méid a fuarthas i logaí Patroni.
  • Agus tugann logaí an chórais freisin tuiscint uaireanta ar cad ba chúis leis an gcomhdaitheoir.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

Conas a mhothaím faoi Patroni? Tá caidreamh an-mhaith agam le Patroni. Is é mo thuairim gurb é seo an ceann is fearr atá ann inniu. Tá a lán táirgí eile ar eolas agam. Is iad sin Stolon, Repmgr, Pg_auto_failover, PAF. 4 uirlis. Bhain mé triail as iad go léir. Is é Patroni an ceann is fearr liom.

Má chuireann siad ceist orm: "An molaim Patroni?". Déarfaidh mé tá, mar is maith liom Patroni. Agus is dóigh liom gur fhoghlaim mé conas é a chócaireacht.

Má tá suim agat a fheiceáil cad iad na fadhbanna eile atá ag Patroni seachas na fadhbanna a luaigh mé, is féidir leat seiceáil amach ar an leathanach i gcónaí saincheisteanna ar GitHub. Tá go leor scéalta éagsúla agus pléitear go leor ceisteanna suimiúla ann. Agus mar thoradh air sin, tugadh isteach agus réitíodh roinnt bugs, is é sin, is léamh suimiúil é seo.

Tá roinnt scéalta suimiúla ann faoi dhaoine ag lámhach iad féin sa chos. An-fhaisnéiseach. Léann tú agus tuigeann tú nach gá é sin a dhéanamh. Chuir mé tic liom féin.

Agus ba mhaith liom buíochas mór a ghabháil le Zalando as an tionscadal seo a fhorbairt, eadhon le Alexander Kukushkin agus Alexey Klyukin. Tá Aleksey Klyukin ar cheann de na comh-údair, ní oibríonn sé ag Zalando a thuilleadh, ach is iad seo beirt a thosaigh ag obair leis an táirge seo.

Agus is dóigh liom gur rud an-fhionnuar é Patroni. Tá mé sásta go bhfuil sí ann, tá sé suimiúil léi. Agus míle buíochas do na rannpháirtithe go léir a scríobh paistí do Patroni. Tá súil agam go n-éireoidh Patroni níos aibí, níos fionnuar agus níos éifeachtaí le haois. Tá sé feidhmiúil cheana féin, ach tá súil agam go n-éireoidh sé níos fearr fós. Dá bhrí sin, má tá sé beartaithe agat Patroni a úsáid, ná bíodh eagla ort. Is réiteach maith é seo, is féidir é a chur i bhfeidhm agus a úsáid.

Sin é an méid. Má tá ceisteanna agat, cuir ceist.

Scéalta Teip Patroni nó Conas do bhraisle PostgreSQL a thuairteáil. Alexey Lesovsky

ceisteanna

Go raibh maith agat as an tuairisc! Más rud é tar éis comhdóra go gcaithfidh tú breathnú go han-chúramach fós ann, cén fáth a bhfuil comhdaitheoir uathoibríoch de dhíth orainn?

Toisc gur rudaí nua é. Níl ach bliain againn léi. Is fearr a bheith sábháilte. Ba mhaith linn teacht isteach agus a fheiceáil gur oibrigh gach rud amach i ndáiríre mar ba chóir. Is é seo an leibhéal distrust do dhaoine fásta - tá sé níos fearr a dhúbailt-seiceáil agus a fheiceáil.

Mar shampla, chuaigh muid ar maidin agus d'fhéach sé, ceart?

Ní ar maidin, de ghnáth foghlaimímid faoin autofile beagnach láithreach. Faighimid fógraí, feicimid gur tharla uathchomhad. Táimid ag dul beagnach láithreach agus breathnú. Ach ba cheart na seiceálacha seo go léir a thabhairt go dtí an leibhéal monatóireachta. Má fhaigheann tú rochtain ar Patroni tríd an REST API, tá stair ann. De réir na staire is féidir leat na stampaí ama a fheiceáil nuair a tharla an comhdaitheoir. Bunaithe ar seo, is féidir monatóireacht a dhéanamh. Is féidir leat an stair a fheiceáil, cé mhéad imeachtaí a bhí ann. Má bhíonn níos mó imeachtaí againn, tharla uathchomhad. Is féidir leat dul agus a fheiceáil. Nó rinne ár n-uathoibriú monatóireachta seiceáil go bhfuil na macasamhla go léir i bhfeidhm againn, nach bhfuil aon mhoill ann agus go bhfuil gach rud ceart go leor.

Go raibh maith agat!

Go raibh míle maith agat as an scéal iontach! Má bhogaimid an braisle DCS áit éigin i bhfad ó bhraisle Postgres, ansin ní mór an bhraisle seo a sheirbhísiú go tréimhsiúil freisin? Cad iad na cleachtais is fearr nach mór roinnt píosaí den bhraisle DCS a mhúchadh, rud éigin a dhéanamh leo, srl.? Conas a mhaireann an struchtúr iomlán seo? Agus conas a dhéanann tú na rudaí seo?

I gcás cuideachta amháin, bhí sé riachtanach maitrís fadhbanna a dhéanamh, cad a tharlaíonn má theipeann ar cheann de na comhpháirteanna nó roinnt comhpháirteanna. De réir na maitrís seo, déanaimid dul trí na comhpháirteanna go léir go seicheamhach agus tógaimid cásanna i gcás teipe ar na comhpháirteanna seo. Dá réir sin, i gcás gach cás teipe, féadfaidh tú plean gníomhaíochta a bheith agat le haghaidh téarnaimh. Agus i gcás DCS, tagann sé mar chuid den bhonneagar caighdeánach. Agus is é an riarthóir a riarann ​​é, agus táimid ag brath cheana féin ar na riarthóirí a riarann ​​é agus ar a gcumas é a shocrú i gcás timpistí. Mura bhfuil aon DCS ann ar chor ar bith, ansin déanaimid é a imscaradh, ach ag an am céanna ní dhéanaimid monatóireacht ar leith air, toisc nach bhfuilimid freagrach as an mbonneagar, ach tugaimid moltaí maidir le conas agus cad le monatóireacht a dhéanamh.

Is é sin, an dtuigim i gceart gur gá dom Patroni a dhíchumasú, an comhdóir a dhíchumasú, gach rud a dhíchumasú sula ndéanfaidh sé aon rud leis na hóstach?

Braitheann sé ar cé mhéad nóid atá againn sa bhraisle DCS. Má tá go leor nóid ann agus má dhíchumasaítear muid ach ceann amháin de na nóid (an macasamhail), coinníonn an braisle córam. Agus tá Patroni fós ag feidhmiú. Agus níl aon rud spreagtha. Má tá roinnt oibríochtaí casta againn a théann i bhfeidhm ar níos mó nóid, agus is féidir an córam a mhilleadh dá n-éagmais, ansin - tá, b'fhéidir go mbeadh ciall le Patroni a chur ar sos. Tá ordú comhfhreagrach aige - sos patronictl, atosú patronictl. Sos againn ach agus ní oibríonn an autofiler ag an am sin. Déanaimid cothabháil ar bhraisle an DCS, ansin bainimid an sos agus leanaimid ar aghaidh ag maireachtáil.

Go raibh míle maith agat go mór!

Go raibh míle maith agat as do thuairisc! Conas a mhothaíonn an fhoireann táirge go gcailltear sonraí?

Is cuma le foirne táirgí, agus bíonn imní ar cheannairí foirne.

Cad iad na ráthaíochtaí atá ann?

Tá ráthaíochtaí an-deacair. Tá tuarascáil ag Alexander Kukushkin "Conas RPO agus RTO a ríomh", ie am aisghabhála agus cé mhéad sonraí is féidir linn a chailleadh. Sílim go gcaithfimid na sleamhnáin seo a aimsiú agus staidéar a dhéanamh orthu. Chomh fada agus is cuimhin liom, tá céimeanna sonracha ann maidir le conas na rudaí seo a ríomh. Cé mhéad idirbheart is féidir linn a chailleadh, cé mhéad sonraí is féidir linn a chailleadh. Mar rogha, is féidir linn macasamhlú sioncronach a úsáid ag leibhéal Patroni, ach is claíomh dúbailte é seo: tá iontaofacht sonraí againn, nó caillimid luas. Tá macasamhlú sioncronach ann, ach ní ráthaíonn sé freisin cosaint 100% i gcoinne caillteanas sonraí.

Alexey, go raibh maith agat as an tuairisc iontach! Aon taithí le Patroni a úsáid le haghaidh cosanta leibhéal nialasach? Is é sin, i gcomhar le fuireachas sioncrónach? Seo í an chéad cheist. Agus an dara ceist. Bhain tú úsáid as réitigh éagsúla. D'úsáideamar Repmgr, ach gan autofiler, agus anois táimid ag pleanáil a chur san áireamh autofiler. Agus measaimid Patroni mar réiteach eile. Cad is féidir leat a rá mar bhuntáistí i gcomparáid le Repmgr?

Ba faoi macasamhla sioncronacha a bhí an chéad cheist. Ní úsáideann aon duine macasamhlú sioncronach anseo, toisc go bhfuil eagla ar gach duine (Tá roinnt cliant á úsáid cheana féin, i bprionsabal, níor thug siad faoi deara fadhbanna feidhmíochta - Nóta cainteoir). Ach tá riail forbartha againn dúinn féin gur chóir go mbeadh trí nód ar a laghad i mbraisle macasamhlaithe sioncrónach, mar má tá dhá nód againn agus má theipeann ar an máistir nó ar an macasamhail, aistríonn Patroni an nód seo go mód Standalone ionas go leanann an t-iarratas ar aghaidh. oibre. Sa chás seo, tá an baol ann go gcaillfear sonraí.

Maidir leis an dara ceist, ní mór dúinn a úsáid Repmgr agus fós a dhéanamh le roinnt cliant ar chúiseanna stairiúla. Cad is féidir a rá? Tagann Patroni le autofiler as an mbosca, tagann Repmgr le autofiler mar ghné bhreise nach mór a chumasú. Ní mór dúinn an deamhan Repmgr a reáchtáil ar gach nód agus ansin is féidir linn an t-autofiler a chumrú.

Seiceálann Repmgr an bhfuil nóid Postgres beo. Seiceálann próisis Repmgr go bhfuil a chéile ann, ní cur chuige an-éifeachtach é seo. d'fhéadfadh cásanna casta aonrú líonra a bheith ann inar féidir le cnuasach mór Repmgr titim as a chéile i roinnt cinn níos lú agus leanúint ag obair. Níl mé ag leanúint Repmgr le fada an lá, b'fhéidir go raibh sé socraithe ... nó b'fhéidir nach bhfuil. Ach deireadh a chur le faisnéis faoi staid an bhraisle i DCS, mar a dhéanann Stolon, Patroni, is é an rogha is inmharthana.

Alexey, tá ceist agam, b'fhéidir ceann lamer. I gceann de na chéad samplaí, bhog tú DCS ón meaisín áitiúil go dtí cianóstach. Tuigimid gur rud é an líonra a bhfuil a shaintréithe féin aige, go bhfuil sé ina chónaí leis féin. Agus cad a tharlóidh mura mbíonn an bhraisle DCS ar fáil ar chúis éigin? Ní dhéarfaidh mé na cúiseanna, is féidir go leor díobh a bheith ann: ó lámha cam na líonraithe go fadhbanna fíor.

Níor dhúirt mé os ard é, ach ní mór an bhraisle DCS a theip freisin, i.e. líon corr nóid atá ann chun córam a bhaint amach. Cad a tharlóidh mura mbíonn an bhraisle DCS ar fáil, nó mura féidir córam a bhaint amach, i.e. scoilteadh líonra de shaghas éigin nó teip nód? Sa chás seo, téann braisle Patroni isteach sa mhodh inléite amháin. Ní féidir le cnuasach Patroni staid an bhraisle a chinneadh agus cad atá le déanamh. Ní féidir leis teagmháil a dhéanamh leis an DCS agus an braisle stát nua a stóráil ann, mar sin cuirtear an braisle ar fad isteach in inléite amháin. Agus fanann sé ar idirghabháil láimhe ón oibreoir nó ar DCS a ghnóthú.

Go garbh, an mbeidh an DCS ina sheirbhís chomh tábhachtach dúinne leis an mbunáit féin?

Tá Tá. Ina oiread sin cuideachtaí nua-aimseartha, tá Fionnachtain Seirbhíse mar chuid lárnach den bhonneagar. Tá sé á chur i bhfeidhm fiú sula raibh bunachar sonraí fiú sa bhonneagar. Go réasúnta, seoladh an bonneagar, imscaradh sa DC é, agus tá Fionnachtain Seirbhíse againn láithreach. Más Consal é, is féidir DNS a thógáil air. Más é seo Etcd, d'fhéadfadh go mbeadh cuid ó bhraisle Kubernetes, ina ndéanfar gach rud eile a imscaradh. Feictear dom go bhfuil Fionnachtain Seirbhíse mar chuid lárnach de bhonneagair nua-aimseartha cheana féin. Agus smaoiníonn siad faoi i bhfad níos luaithe ná mar a bhaineann le bunachair shonraí.

Go raibh maith agat!

Foinse: will.com

Add a comment