Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Réamhrá

Tamall ó shin tugadh an tasc dom braisle teip a fhorbairt le haghaidh PostgreSQL, ag feidhmiú i roinnt ionad sonraí atá nasctha le snáithíní optúla laistigh de chathair amháin, agus atá in ann teip (mar shampla, blackout) ionad sonraí amháin a sheasamh. Mar na bogearraí atá freagrach as lamháltas locht, roghnaigh mé pacemakertoisc gurb é seo an réiteach oifigiúil ó RedHat chun braislí teip a chruthú. Tá sé go maith toisc go dtugann RedHat tacaíocht dó, agus toisc go bhfuil an réiteach seo uilíoch (modúlach). Le cabhair uaidh, beifear in ann lamháltas lochtanna a chinntiú, ní hamháin PostgreSQL, ach freisin seirbhísí eile, ag baint úsáide as modúil chaighdeánacha nó á gcruthú do riachtanais shonracha.

D’ardaigh an cinneadh seo ceist réasúnta: cé chomh fulangach le lochtanna a bheidh cnuasach teipthe? Chun é seo a imscrúdú, d'fhorbair mé binse tástála a shamhlaíonn teipeanna éagsúla ar na nóid bhraisle, a fhanann le seirbhís a athchóiriú, a aisghabhann an nód teipthe, agus a leanann ar aghaidh ag tástáil i lúb. Tugadh hapgsql ar an tionscadal seo ar dtús, ach le himeacht ama d’éirigh mé leamh leis an ainm, nach raibh ann ach guta amháin. Mar sin, thosaigh mé ag glaoch ar bhunachair shonraí locht-fhulangacha (agus IP ar snámh ag díriú orthu) crogan (carachtar ó chluiche ríomhaire ina ndéantar gach orgán tábhachtach a mhacasamhlú), agus nóid, braislí agus an tionscadal féin tuchanka (an pláinéad ina bhfuil na krogans ina gcónaí).

Anois tá an bhainistíocht ceadaithe an tionscadal a oscailt don phobal foinse oscailte faoi cheadúnas MIT. Aistreofar an README go Béarla go luath (toisc go bhfuiltear ag súil gurb iad forbróirí Pacemaker agus PostgreSQL na príomh-thomhaltóirí), agus chinn mé an seanleagan Rúisis den README a chur i láthair (go páirteach) i bhfoirm an ailt seo.

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Imscartar braislí ar mheaisíní fíorúla VirtualBox. Imscarfar 12 mheaisín fhíorúla (36GiB san iomlán) a bheidh mar 4 bhraisle locht-fhulangach (roghanna éagsúla). Is éard atá sa chéad dá bhraisle ná dhá fhreastalaí PostgreSQL, atá lonnaithe in ionaid sonraí éagsúla, agus freastalaí coiteann finné c gléas córam (arna óstáil ar mheaisín fíorúil saor i dtríú ionad sonraí), rud a réitíonn neamhchinnteacht 50% / 50%, do vóta a thabhairt do cheann de na páirtithe. Tríú braisle i dtrí ionad sonraí: máistir amháin, dhá sclábhaithe, uimh gléas córam. Tá an ceathrú braisle comhdhéanta de cheithre fhreastalaí PostgreSQL, dhá cheann in aghaidh an ionaid sonraí: máistir amháin, an chuid eile macasamhla, agus úsáideann sé freisin finné c gléas córam. Is féidir leis an gceathrú cuid teip dhá fhreastalaí nó ionad sonraí amháin a sheasamh. Is féidir an réiteach seo a scála go líon níos mó macasamhla más gá.

Seirbhís ama cruinn ntpd athchumraithe freisin le haghaidh lamháltais locht, ach úsáideann sé an modh féin ntpd (modh dílleachta). Freastalaí roinnte finné feidhmíonn sé mar fhreastalaí lárnach NTP, ag dáileadh a chuid ama ar gach braisle, ag sioncronú na bhfreastalaí go léir dá chéile. Dá finné teipeann nó éiríonn aonraithe, ansin tosóidh ceann de na freastalaithe braisle (laistigh den bhraisle) a chuid ama a dháileadh. Taisce cúnta seachfhreastalaí HTTP freisin ardaithe go finné, lena chabhair, tá rochtain ag meaisíní fíorúla eile ar stórtha Yum. I ndáiríre, is é is dóichí go ndéanfar seirbhísí ar nós am cruinn agus seachfhreastalaí a óstáil ar fhreastalaithe tiomnaithe, ach sa bhoth a ndéantar iad a óstáil ar finné ach a shábháil ar líon na meaisíní fíorúil agus spás.

Leaganacha

v0. Oibríonn sé le CentOS 7 agus PostgreSQL 11 ar VirtualBox 6.1.

Struchtúr braisle

Tá gach braisle deartha le bheith suite in ionaid sonraí iolracha, comhcheangailte in aon ghréasán comhréidh amháin agus ní mór dóibh teip nó leithlisiú líonra ionad sonraí aonair a sheasamh. Sin é an fáth Tá sé dodhéanta úsáid le haghaidh cosanta in aghaidh scoilt-inchinn teicneolaíocht caighdeánach pacemaker ar a dtugtar STONITH (Ligh An Nód Eile Sa Cheann) nó fálú. A bunúsach: má thosaíonn na nóid sa bhraisle ag amhras go bhfuil rud éigin cearr le nód éigin, nach bhfuil sé ag freagairt nó ag iompar go mícheart, ansin déanann siad é a mhúchadh go héigeantach trí fheistí “seachtracha”, mar shampla, cárta rialaithe IPMI nó UPS. . Ach ní oibreoidh sé seo ach amháin i gcásanna, i gcás teip amháin, go leanann an freastalaí IPMI nó UPS ag obair. Anseo tá sé beartaithe againn cosaint a dhéanamh i gcoinne teip i bhfad níos tubaisteach, nuair a theipeann ar an ionad sonraí ar fad (mar shampla, cailleann cumhacht). Agus le diúltú den sórt sin, gach rud clochachNí oibreoidh -devices (IPMI, UPS, etc.) freisin.

Ina áit sin, tá an córas bunaithe ar an smaoineamh córam. Tá guth ag gach nóid, agus ní féidir ach iad siúd a fheiceann níos mó ná leath de na nóid go léir a bheith ag obair. Tugtar “leath + 1” ar an gcainníocht seo córam. Mura sroichtear córam, socraíonn an nód go bhfuil sé ina leithlisiú líonra agus go gcaithfidh sé a chuid acmhainní a mhúchadh, i.e. is é seo a bhfuil sé cosaint scoilte-inchinn. Mura n-oibríonn na bogearraí atá freagrach as an iompar seo, beidh ar faireoir, mar shampla, bunaithe ar IPMI, oibriú.

Má tá líon na nóid cothrom (braisle in dhá ionad sonraí), d'fhéadfadh neamhchinnteacht mar a thugtar air a bheith ann 50% / 50% (caoga caoga) nuair a roinneann leithlisiú líonra an braisle go beacht ina dhá leath. Dá bhrí sin, le haghaidh líon cothrom nóid, cuirimid gléas córam is deamhan gan éileamh é is féidir a sheoladh ar an meaisín fíorúil is saoire i dtríú ionad sonraí. Tugann sé a vóta do cheann de na codanna (a fheiceann sé), agus mar sin réitíonn sé an éiginnteacht 50%/50%. D'ainmnigh mé an freastalaí ar a seolfar an gléas córam finné (téarmaíocht ó repmgr, thaitin sé liom).

Is féidir acmhainní a aistriú ó áit go háit, mar shampla, ó fhreastalaithe lochtacha go cinn shláintiúla, nó faoi stiúir riarthóirí córais. Ionas go mbeidh a fhios ag cliaint cá bhfuil na hacmhainní a theastaíonn uathu suite (cá háit le nascadh?), IP ar snámh (IP snámhphointe). Is IPanna iad seo ar féidir le Pacemaker bogadh timpeall nóid (tá gach rud ar líonra comhréidh). Gach ceann acu symbolizes acmhainn (seirbhís) agus beidh a bheith suite nuair is gá duit a nascadh chun rochtain a fháil ar an tseirbhís seo (inár gcás, bunachar sonraí).

Tuchanka1 (ciorcad le balcadh)

Struchtúr

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Ba é an smaoineamh go bhfuil go leor bunachair shonraí beaga againn le hualach íseal, a bhfuil sé neamhbhrabúsach freastalaí sclábhaithe tiomnaithe a choinneáil i mód fuireachais te le haghaidh idirbhearta inléite amháin (níl aon ghá le cur amú acmhainní dá leithéid).

Tá freastalaí amháin ag gach ionad sonraí. Tá dhá chás PostgreSQL ag gach freastalaí (i dtéarmaíocht PostgreSQL tugtar braislí orthu, ach chun mearbhall a sheachaint glaofaidh mé cásanna orthu (de réir analaí le bunachair shonraí eile), agus ní ghlaofaidh mé ach ar bhraislí Pacemaker). Feidhmíonn cás amháin i mód máistir, agus ní sholáthraíonn sé ach seirbhísí (ní thugann ach IP snámhphointe dó). Oibríonn an dara cás mar sclábhaí don dara lárionad sonraí, agus ní sholáthróidh sé seirbhísí ach amháin má theipeann ar a mháistir. Ós rud é an chuid is mó den am ní sholáthróidh ach cás amháin as dhá cheann (an máistir) seirbhísí (iarratais a dhéanamh), déantar na hacmhainní freastalaí go léir a bharrfheabhsú don mháistir (dáiltear cuimhne don taisce shared_buffers, etc.), ach sa dara háit tá go leor acmhainní aige freisin (cé gur le haghaidh oibriú suboptimal tríd an taisce córas comhaid) i gcás teipe i gceann de na hionaid sonraí. Ní sholáthraíonn an sclábhaí seirbhísí (ní chomhlíonann sé iarratais inléite amháin) le linn gnáthoibriú an bhraisle, ionas nach mbeidh aon chogadh ar acmhainní leis an máistir ar an meaisín céanna.

I gcás dhá nód, ní féidir lamháltas locht ach amháin le macasamhlú asincrónach, ós rud é le macasamhlú sioncrónach, go dtiocfaidh mainneachtain sclábhaí chun stop a chur leis an máistir.

Teip finné

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Teip finné (gléas córam) Ní dhéanfaidh mé machnamh ach amháin ar an gcnuasach Tuchanka1, leis na cinn eile go léir is é an scéal céanna a bheidh ann. Má theipeann ar fhinné, ní athróidh aon rud sa struchtúr braisle, leanfaidh gach rud ag obair ar an mbealach céanna a rinne sé. Ach beidh an córam ina 2 as 3, agus mar sin beidh aon mhainneachtain ina dhiaidh sin marfach don bhraisle. Beidh sé fós le socrú go práinneach.

Tuchanka1 diúltú

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Teip ar cheann de na hionaid sonraí le haghaidh Tuchanka1. Sa chás seo finné caitheann sé a vóta chuig an dara nód i dara lárionad sonraí. Ansin, casann an t-iar-sclábhaí ina mháistir, mar thoradh air sin, oibríonn an dá mháistir ar an bhfreastalaí céanna agus díríonn an dá IP snámhphointe orthu.

Tuchanka2 (clasaiceach)

Struchtúr

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Scéim clasaiceach de dhá nód. Oibríonn an máistir ar cheann amháin, an daor ar an dara. Is féidir leis an mbeirt iarratais a fhorghníomhú (is é an sclábhaí amháin a léitear), mar sin dírítear ar an mbeirt le snámhphointe IP: is é krogan2 an máistir, is é krogan2s1 an sclábhaí. Beidh lamháltas locht ag an máistir agus ag an sclábhaí araon.

I gcás dhá nód, ní féidir lamháltas locht a dhéanamh ach amháin le macasamhlú asincrónach, mar gheall ar mhacasamhlú sioncrónach, beidh an máistir mar thoradh ar mhainneachtain an sclábhaí.

Tuchanka2 diúltú

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Má theipeann ar cheann de na hionaid sonraí finné vótaí don dara ceann. Ar an t-aon ionad sonraí oibre, ardófar an máistir, agus cuirfidh an dá IP snámhphointe in iúl dó: an máistir agus an sclábhaí. Ar ndóigh, ní mór an cás a chumrú sa chaoi is go bhfuil go leor acmhainní aige (teorainneacha ceangail, etc.) chun glacadh le gach nasc agus iarratas ón máistir agus IP snámhphointe sclábhaithe ag an am céanna. Is é sin, le linn gnáthoibríochta ba cheart go mbeadh soláthar leordhóthanach teorainneacha ann.

Tuchanka4 (go leor sclábhaithe)

Struchtúr

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Cheana foircneach eile. Tá bunachair shonraí ann a fhaigheann go leor iarratas inléite amháin (cás tipiciúil de shuíomh ard-ualaigh). Is staid é Tuchanka4 ina bhféadfadh triúr sclábhaithe nó níos mó a bheith ann chun iarratais den sórt sin a láimhseáil, ach nach bhfuil an iomarca fós ann. Le líon an-mhór sclábhaithe, beidh sé riachtanach córas macasamhlú ordlathach a chumadh. Sa chás íosta (sa phictiúr), tá dhá fhreastalaí ag gach ceann den dá ionad sonraí, agus cás PostgreSQL ag gach ceann acu.

Gné eile den scéim seo ná gur féidir macasamhlú sioncronach amháin a eagrú cheana féin. Tá sé cumraithe chun é a mhacasamhlú, más féidir, chuig ionad sonraí eile, seachas chuig macasamhail san ionad sonraí céanna leis an máistir. Dírítear IP snámhphointe ar an máistir agus ar gach sclábhaí. Ar ámharaí an tsaoil, idir sclábhaithe beidh sé riachtanach iarratais a chothromú ar bhealach éigin seachfhreastalaí sql, mar shampla, ar thaobh an chliaint. D'fhéadfadh cineálacha éagsúla cliant a bheith ag teastáil ó chineálacha éagsúla seachfhreastalaí sql, agus níl a fhios ach ag forbróirí cliant cé atá ag teastáil uathu. Is féidir an fheidhmiúlacht seo a chur i bhfeidhm trí dheamhan seachtrach nó trí leabharlann cliant (linn nasc), etc. Téann sé seo go léir níos faide ná an t-ábhar a bhaineann le braisle bunachar sonraí failover (teip seachfhreastalaí SQL a chur i bhfeidhm go neamhspleách, mar aon le lamháltas locht an chliaint).

Tuchanka4 diúltú

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Má theipeann ar ionad sonraí amháin (i.e., dhá fhreastalaí), vótaí finnéithe don dara ceann. Mar thoradh air sin, tá dhá fhreastalaí ag rith sa dara ionad sonraí: tá ceann amháin ag rith máistir, agus díríonn an máistir IP snámhphointe air (chun iarratais a léamh-scríobh a fháil); agus ar an dara freastalaí tá sclábhaí ag rith le macasamhlú sioncronach, agus díríonn ceann de na IPanna snámhphointe sclábhaithe air (le haghaidh iarratais inléite amháin).

Is é an chéad rud atá le tabhairt faoi deara nach mbeidh gach IP snámhphointe sclábhaithe ina n-oibrithe, ach ina n-oibrithe amháin. Agus a bheith ag obair leis i gceart beidh sé riachtanach go seachfhreastalaí sql gach iarratas a atreorú chuig an t-aon IP snámhphointe a bhí fágtha; agus má seachfhreastalaí sql ní féidir, ansin is féidir leat liosta a dhéanamh de na sclábhaithe IP snámhphointe go léir atá scartha le camóga sa URL nasc. Sa chás seo, le libpq beidh an nasc leis an gcéad IP oibre, déantar é seo sa chóras tástála uathoibríoch. B'fhéidir i leabharlanna eile, mar shampla, JDBC, ní oibreoidh sé seo agus tá sé riachtanach seachfhreastalaí sql. Déantar é seo toisc go bhfuil cosc ​​ar IPanna snámhphointe do sclábhaithe a ardú go comhuaineach ar fhreastalaí amháin, ionas go mbeidh siad scaipthe go cothrom i measc freastalaithe sclábhaithe má tá roinnt acu ar siúl.

Sa dara háit: fiú amháin i gcás teip lárionad sonraí, coinneofar macasamhlú sioncrónach. Agus fiú má tharlaíonn teip thánaisteach, is é sin, go dteipeann ar cheann den dá fhreastalaí sa lárionad sonraí atá fágtha, coimeádfaidh an braisle, cé go stopfaidh sé ag soláthar seirbhísí, fós faisnéis faoi na hidirbhearta tiomanta go léir a bhfuil deimhniú tugtha aige maidir leis an gceangaltas. (ní bheidh aon fhaisnéis faoi chaillteanas i gcás teip tánaisteach).

Tuchanka3 (3 ionad sonraí)

Struchtúr

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Is braisle é seo do chás ina bhfuil trí ionad sonraí atá ag feidhmiú go hiomlán, agus tá freastalaí bunachair shonraí ag feidhmiú go hiomlán ag gach ceann acu. Sa chás seo gléas córam ní gá. Tá máistir ag ionad sonraí amháin, agus sclábhaithe atá sa dá cheann eile. Tá macasamhlú sioncronach, cineál AON (slave1, slave2), is é sin, gheobhaidh an cliant dearbhú tiomantais nuair a bhíonn aon cheann de na sclábhaithe ar an gcéad duine a d'fhreagair go bhfuil glactha aige leis an ngealltanas. Léirítear acmhainní le IP snámhphointe amháin don mháistir agus dhá cheann do sclábhaithe. Murab ionann agus Tuchanka4, tá gach ceann de na trí IP snámhphointe fabhtach. Chun ceisteanna SQL inléite amháin a chothromú is féidir leat é a úsáid seachfhreastalaí sql (le lamháltas locht ar leith), nó IP snámhphointe sclábhaithe amháin a shannadh do leath de na cliaint, agus an leath eile don dara ceann.

Tuchanka3 diúltú

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Má theipeann ar cheann de na hionaid sonraí, fanann dhá cheann. I gceann amháin, ardaítear an máistir agus IP snámhphointe ón máistir, sa dara ceann - IP snámhphointe an sclábhaí agus an dá sclábhaí (ní mór cúlchiste dúbailte acmhainní a bheith ag an ásc chun glacadh le gach nasc ón dá IP snámhphointe sclábhaithe). Macasamhlú sioncronach idir máistrí agus sclábhaithe. Chomh maith leis sin, sábhálfaidh an braisle faisnéis faoi idirbhearta geallta agus deimhnithe (ní bheidh aon chaillteanas faisnéise) i gcás scriosta dhá ionad sonraí (mura scriostar iad go comhuaineach).

Chinn mé gan cur síos mionsonraithe ar struchtúr agus imscaradh na gcomhad a chur san áireamh. Is féidir le duine ar bith atá ag iarraidh imirt timpeall é a léamh go léir sa README. Níl mé ag tabhairt ach tuairisc ar thástáil uathoibrithe.

Córas tástála uathoibríoch

Chun caoinfhulaingt locht braislí a thástáil trí lochtanna éagsúla a insamhladh, cruthaíodh córas tástála uathoibríoch. Seolta ag script test/failure. Féadfaidh an script líon na mbraislí is mian leat a thástáil a ghlacadh mar pharaiméadair. Mar shampla an t-ordú seo:

test/failure 2 3

ní dhéanfaidh sé ach an dara agus an tríú braisle a thástáil. Mura sonraítear paraiméadair, ansin déanfar gach braisle a thástáil. Déantar gach braisle a thástáil go comhthreomhar, agus taispeántar an toradh sa phainéal tmux. Úsáideann Tmux freastalaí tmux tiomnaithe, ionas gur féidir an script a rith ó tmux réamhshocraithe, agus tmux neadaithe mar thoradh air. Molaim an teirminéal a úsáid i bhfuinneog mhór agus le cló beag. Sula dtosaítear ar an tástáil, cuirtear na meaisíní fíorúla ar fad ar ais go dtí pictiúr nuair a chríochnaíonn an script setup.

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Roinntear an teirminéal i gcolúin de réir líon na gcnuasach atá á thástáil; de réir réamhshocraithe (sa screenshot) tá ceithre cinn. Déanfaidh mé cur síos ar ábhar na gcolún ag baint úsáide as an sampla de Tuchanka2. Tá na painéil sa screenshot uimhrithe:

  1. Tá staitisticí tástála ar taispeáint anseo. Colúin:
    • teip — ainm na tástála (feidhm sa script) a dhéanann aithris ar an locht.
    • imoibriú — meán-am uimhríochtúil i soicindí nuair a d'aisghabh an braisle a fheidhmiúlacht. Déantar é a thomhas ó thús na scripte ag aithris locht go dtí an nóiméad nuair a athshocraíonn an braisle a fheidhmiúlacht agus go bhfuil sé in ann leanúint ar aghaidh ag soláthar seirbhísí. Má tá an t-am an-ghearr, mar shampla, sé soicind (tarlaíonn sé seo i mbraislí le roinnt sclábhaithe (Tuchanka3 agus Tuchanka4)), ciallaíonn sé seo go raibh an locht ar an sclábhaí asincrónach agus níor chuir sé isteach ar an bhfeidhmíocht ar bhealach ar bith; lasca stát braisle.
    • diallas — léiríonn raon leathan (cruinneas) an luacha imoibriú ag baint úsáide as an modh diall caighdeánach.
    • comhaireamh — cé mhéad uair a rinneadh an tástáil seo.
  2. Ligeann logáil ghearr duit a bhfuil á dhéanamh ag an mbraisle faoi láthair a mheas. Taispeántar uimhir atriallta (tástála), stampa ama agus ainm na hoibríochta. Léiríonn rith ró-fhada (> 5 nóiméad) fadhb.
  3. croí (croí) - am reatha. Chun measúnú amhairc ar fheidhmíocht máistrí Scríobhtar an t-am reatha dá tábla i gcónaí ag baint úsáide as an máistir IP snámhphointe. Má éiríonn leis, taispeántar an toradh sa phainéal seo.
  4. buille (pulse) - “am reatha”, a taifeadadh roimhe seo sa script croí a mháistir, léigh anois ó sclábhaí trína IP snámhphointe. Ligeann sé duit feidhmíocht an sclábhaí agus macasamhlú a mheas ó thaobh amhairc. I Tuchanka1 níl aon sclábhaithe le snámhphointe IP (ní sholáthraíonn sclábhaithe seirbhísí), ach tá dhá chás ann (DBanna), mar sin ní thaispeánfar anseo é builleAgus croí dara huair.
  5. Monatóireacht a dhéanamh ar shláinte braisle ag baint úsáide as an bhfóntas pcs mon. Léiríonn sé struchtúr, dáileadh acmhainní trasna nóid agus faisnéis úsáideach eile.
  6. Taispeántar monatóireacht córais ó gach meaisín fíorúil sa bhraisle anseo. D’fhéadfadh go mbeadh níos mó painéil den sórt sin ag brath ar cé mhéad meaisíní fíorúla atá ag an mbraisle. Dhá ghraf LAP LAP (tá dhá phróiseálaí ag meaisíní fíorúla), ainm meaisín fíorúil, Luchtú Córais (ar a dtugtar Meán Luchtaithe toisc go bhfuil sé meánaithe thar 5, 10 agus 15 nóiméad), sonraí próiseála agus leithdháileadh cuimhne.
  7. Rian na scripte ag déanamh tástála. I gcás mífheidhm - cur isteach tobann ar oibríocht nó timthriall feithimh gan deireadh - anseo is féidir leat an chúis atá leis an iompar seo a fheiceáil.

Déantar an tástáil i dhá chéim. Ar dtús, téann an script trí gach cineál tástálacha, ag roghnú meaisín fíorúil go randamach chun an tástáil seo a chur i bhfeidhm. Ansin déantar timthriall tástála gan teorainn, roghnaítear na meaisíní fíorúla agus an locht go randamach gach uair. Léiríonn foirceannadh tobann an script tástála (painéal bun) nó lúb gan teorainn feithimh le rud éigin (> 5 nóiméad am forghníomhaithe le haghaidh oibríocht amháin, is féidir é seo a fheiceáil sa rian) gur theip ar chuid de na tástálacha ar an mbraisle seo.

Tá na hoibríochtaí seo a leanas i ngach tástáil:

  1. Seoladh feidhm a dhéanann aithris ar locht.
  2. Réidh? — ag fanacht leis an gcnuasach a athchóiriú (nuair a chuirtear na seirbhísí go léir ar fáil).
  3. Taispeáin an teorainn ama athshlánaithe braisle (imoibriú).
  4. Deisigh - tá an braisle á “dheisiú.” Ina dhiaidh sin ba cheart go bhfillfeadh sé ar staid lánoibríochta agus go mbeadh sé réidh don chéad mhífheidhm eile.

Seo liosta tástálacha le cur síos ar a ndéanann siad:

  • Buama Forc: Cruthaíonn "As cuimhne" ag baint úsáide as buama forc.
  • OutOfSpace: Tá an tiomántán crua lán. Ach tá an tástáil sách siombalach; leis an ualach neamhshuntasach a chruthaítear le linn na tástála, de ghnáth ní theipeann ar PostgreSQL nuair a bhíonn an tiomántán crua lán.
  • Postgres-KILL: mharaíonn PostgreSQL leis an ordú killall -KILL postgres.
  • Postgres-STOP: hangs PostgreSQL ordú killall -STOP postgres.
  • Múch: “dí-fhuinneamh” an meaisín fíorúil leis an ordú VBoxManage controlvm "виртуалка" poweroff.
  • athshocrú: overloads an meaisín fíorúil leis an ordú VBoxManage controlvm "виртуалка" reset.
  • SBD-STOP: an diabhal SBD a chur ar fionraí leis an ordú killall -STOP sbd.
  • Múchadh: seolann ordú chuig an meaisín fíorúil trí SSH systemctl poweroff, stopann an córas síos go galánta.
  • Dícheangail: leithlisiú líonra, ordú VBoxManage controlvm "виртуалка" setlinkstate1 off.

Tástáil á cur i gcrích ag baint úsáid as an ordú caighdeánach tmux "kill-window" Ctrl-b &, nó an t-ordú "detach-client". Ctrl-b d: ag an bpointe seo críochnaíonn an tástáil, dúnann tmux, déantar meaisíní fíorúla a mhúchadh.

Fadhbanna a aithníodh le linn tástála

  • Faoi láthair deamhan faire sbd oibreacha ar dheamhan breathnaithe a stopadh, ach gan iad a reo. Agus, mar thoradh air sin, lochtanna a bhíonn mar thoradh ar reo amháin Corasync и pacemaker, ach ní crochta sbd. Le haghaidh seiceáil Corasync cheana féin PR#83 (ar GitHub ag sbd), glacadh leis an snáithe máistir. Gheall siad (i PR#83) go mbeadh rud éigin cosúil le Pacemaker, tá súil agam gur le Hata Dearg 8 déanfaidh. Ach tá “mífheidhmeanna” den sórt sin amhantrach agus is féidir iad a insamhladh go saorga go héasca, mar shampla, killall -STOP corosync, ach ní bualadh le chéile sa saol fíor.

  • У pacemaker sa leagan le haghaidh 7 CentOS socraithe go mícheart am istigh sioncronaithe у gléas córam, mar thoradh má theip ar nód amháin, le dóchúlacht éigin go bhfuil an dara nód atosú freisin, a raibh an máistir ceaptha chun bogadh. Curtha trí mhéadú am istigh sioncronaithe у gléas córam le linn imscaradh (i script setup/setup1). Níor ghlac na forbróirí leis an leasú seo pacemaker, ina ionad sin gheall siad go ndéanfaí athdhearadh ar an mbonneagar ar bhealach (ag am éigin sa todhchaí neamhshonraithe) go ndéanfaí an teorainn ama sin a ríomh go huathoibríoch.

  • Má shonraíonn cumraíocht an bhunachair shonraí é sin LC_MESSAGES (teachtaireachtaí téacs) Is féidir Unicode a úsáid, e.g. ru_RU.UTF-8, ansin ag am tosaithe postgres i dtimpeallacht nach UTF-8 é an locale, abair i dtimpeallacht fholamh (anseo luasaire+pgsqlms(paf) ritheann postgres), ansin beidh marcanna ceiste sa loga seachas litreacha UTF-8. Níor aontaigh forbróirí PostgreSQL cad atá le déanamh sa chás seo. Cosnaíonn sé, ní mór duit a shuiteáil LC_MESSAGES=en_US.UTF-8 nuair a bhíonn sampla bunachar sonraí á chumrú (á chruthú).

  • Má tá wal_receiver_timeout socraithe (de réir réamhshocraithe is é 60s), ansin le linn na tástála PostgreSQL-STOP ar an máistir sna braislí tuchanka3 agus tuchanka4 ní athcheanglaíonn macasamhlú leis an máistir nua. Tá macasamhlú ann sioncrónach, mar sin ní hamháin stopann an sclábhaí, ach freisin an máistir nua. Oibríonn sé thart trí wal_receiver_timeout=0 a shocrú agus PostgreSQL á chumrú.

  • Ó am go chéile thug mé faoi deara reo macasamhlú i PostgreSQL sa tástáil ForkBomb (thar maoil cuimhne). Tar éis ForkBomb, uaireanta ní fhéadfaidh sclábhaithe ceangal a dhéanamh arís leis an máistir nua. Níor tháinig mé air seo ach sna braislí tuchanka3 agus tuchanka4, áit a froze an máistir mar gheall ar mhacasamhlú sioncronach. Chuaigh an fhadhb ar shiúl leis féin tar éis i bhfad (thart ar dhá uair an chloig). Tá gá le tuilleadh taighde chun é seo a chur ina cheart. Tá na hairíonna cosúil leis an bhfabht roimhe seo, rud a dhéantar ar chúis dhifriúil, ach leis na hiarmhairtí céanna.

Grianghraf Krogan tógtha ó Ealaín deviant le cead an údair:

Samhaltú braislí failover bunaithe ar PostgreSQL agus Pacemaker

Foinse: will.com

Add a comment