Ceolfhoireann agus VIP mar réiteach HA do bhraisle MySQL

Ag Citymobil úsáidimid bunachar sonraí MySQL mar ár bpríomhstóráil sonraí marthanach. Tá roinnt braislí bunachar sonraí againn le haghaidh seirbhísí agus cuspóirí éagsúla.

Is táscaire ríthábhachtach é infhaighteacht leanúnach an mháistir ar fheidhmíocht an chórais iomláin agus a chuid páirteanna aonair. Laghdaíonn aisghabháil braisle uathoibríoch i gcás máistreachta go mór an t-am freagartha teagmhais agus aga neamhfhónaimh an chórais. San Airteagal seo, féachfaidh mé ar dhearadh infhaighteachta ard (HA) le haghaidh braisle MySQL bunaithe ar Ceolfhoireann MySQL agus seoltaí IP fíorúla (VIP).

Ceolfhoireann agus VIP mar réiteach HA do bhraisle MySQL

Réiteach HA bunaithe ar VIP

Ar dtús, inseoidh mé duit go hachomair cad é ár gcóras stórála sonraí.

Bainimid úsáid as scéim mhacasamhlaithe clasaiceach le máistir amháin atá insroichte ag scríobh agus iliomad macasamhla inléite amháin. Is féidir máistir idirmheánach a bheith i mbraisle - nód atá ina mhacasamhail agus ina mháistir do dhaoine eile. Faigheann cliaint rochtain ar mhacasamhla trí HAProxy, a cheadaíonn dáileadh cothrom ualaigh agus scálaithe éasca. Tá úsáid HAProxy mar gheall ar chúiseanna stairiúla, agus táimid ag dul ar imirce go ProxySQL faoi láthair.

Déantar macasamhlú i mód leathshioncrónach bunaithe ar GTID. Ciallaíonn sé seo go gcaithfidh ar a laghad macasamhail amháin idirbheart a logáil sula meastar gur éirigh leis. Soláthraíonn an modh macasamhlaithe seo an chothromaíocht is fearr idir feidhmíocht agus sábháilteacht sonraí i gcás teipe máistir nód. Go bunúsach aistrítear gach athrú ón máistir go dtí na macasamhla ag baint úsáide as Row Based Replication (RBR), ach d'fhéadfadh go mbeadh roinnt nóid mixed binlog format.

Déanann an ceolfhoirneoir staid an bhraisle a nuashonrú go tréimhsiúil, déanann sé anailís ar an bhfaisnéis a fhaightear, agus má thagann fadhbanna chun cinn, féadfaidh sé nós imeachta aisghabhála uathoibríoch a sheoladh. Tá an forbróir freagrach as an nós imeachta féin, ós rud é gur féidir é a chur i bhfeidhm ar bhealaí éagsúla: bunaithe ar VIP, DNS, ag baint úsáide as seirbhísí fionnachtana seirbhíse nó meicníochtaí féinscríofa.

Bealach simplí amháin chun máistir a athbhunú má theipeann air ná seoltaí VIP ar snámh a úsáid.

Cad is gá duit a bheith ar an eolas faoin réiteach seo sula dtéann tú ar aghaidh:

  • Is seoladh IP é VIP nach bhfuil baint aige le comhéadan líonra fisiciúil ar leith. Má theipeann ar nód nó le linn cothabhála sceidealta, is féidir linn an VIP a aistriú chuig acmhainn eile gan mórán aga neamhfhónaimh.
  • Is oibríocht saor agus tapa é seoladh IP fíorúil a shaoradh agus a eisiúint.
  • Chun oibriú le VIP, ní mór duit rochtain ar an bhfreastalaí trí SSH, nó úsáid a bhaint as fóntais speisialta, mar shampla, keepalived.

Breathnaímid ar fhadhbanna féideartha lenár draoi agus samhlaímid conas ba cheart don mheicníocht aisghabhála uathoibríoch oibriú.

Tá nascacht líonra leis an máistir imithe, nó tá fadhb tagtha chun cinn ag leibhéal na crua-earraí, agus níl an freastalaí ar fáil

  1. Déanann an ceolfhoireann an topology braisle a nuashonrú, tuairiscíonn gach macasamhail nach bhfuil an máistir ar fáil. Cuireann an ceolfhoirneoir tús leis an bpróiseas chun macasamhail a roghnú atá oiriúnach do ról an mháistir nua agus cuireann sé tús leis an téarnamh.
  2. Táimid ag iarraidh an VIP a bhaint as an sean-mháistir - gan rath.
  3. Aistríonn an macasamhail go ról an mháistir. Tá an topology á atógáil.
  4. Comhéadan líonra nua a chur leis le VIP. Ós rud é nach raibh sé indéanta an VIP a bhaint, cuirimid tús le hiarratas a sheoladh go tréimhsiúil sa chúlra ARP saor in aisce,. Ligeann an cineál iarratais/freagra seo duit an tábla mapála seoltaí IP agus MAC a nuashonrú ar na lasca nasctha, rud a chuireann in iúl duit go bhfuil ár VIP tar éis bogadh. Laghdaíonn sé seo an dóchúlacht split brain agus é ag filleadh ar an sean-mháistir.
  5. Déantar gach nasc nua a atreorú láithreach chuig an máistir nua. Teipeann ar sheancheangail agus déantar glaonna arís agus arís eile chuig an mbunachar sonraí ag leibhéal an fheidhmchláir.

Tá an freastalaí ag feidhmiú sa ghnáth-mhód, tharla teip ag an leibhéal DBMS

Tá an algartam cosúil leis an gcás roimhe seo: an topology a nuashonrú agus an próiseas aisghabhála a thosú. Ós rud é go bhfuil an freastalaí ar fáil, d'éirigh linn an VIP a scaoileadh ar an sean-mháistir, é a aistriú chuig an gceann nua, agus roinnt iarratais ARP a sheoladh. Níor cheart go ndéanfadh filleadh féideartha an tseanmháistir difear don bhraisle atógtha agus ar oibriú an iarratais.

Fadhbanna eile

Teip macasamhla nó máistrí idirmheánacha ní luaidhe le gníomhartha uathoibríocha agus éilíonn sé idirghabháil láimhe.

Cuirtear comhéadan líonra fíorúil leis go sealadach i gcónaí, is é sin, tar éis atosaigh freastalaí, ní shanntar an VIP go huathoibríoch. Tosaíonn gach cás bunachar sonraí i mód inléite amháin de réir réamhshocraithe, athraíonn an ceolfhoireann an máistir nua go huathoibríoch chun scríobh agus déanann sé iarracht é a shuiteáil read only ar an sean-mháistir. Tá na gníomhartha seo dírithe ar an dóchúlacht a laghdú split brain.

D’fhéadfadh fadhbanna teacht chun cinn le linn an phróisis aisghabhála, ar cheart iad a chur ar an eolas freisin trí Chomhéadain an cheoltóra chomh maith le huirlisí monatóireachta caighdeánacha. Tá an API REST leathnaithe againn tríd an ngné seo a chur leis (PR faoi ​​athbhreithniú faoi láthair).

Tá an léaráid ghinearálta den réiteach HA léirithe thíos.

Ceolfhoireann agus VIP mar réiteach HA do bhraisle MySQL

Roghnú máistir nua

Tá an ceolfhoireann cliste go leor agus déanann sé iarracht a roghnú an macasamhail is oiriúnaí mar mháistir nua de réir na gcritéar seo a leanas:

  • tá an macasamhail taobh thiar den mháistir;
  • Leagan MySQL de mháistir agus macasamhail;
  • cineál macasamhlú (RBR, SBR nó measctha);
  • suíomh sna hionaid sonraí chéanna nó éagsúla;
  • infhaighteacht errant GTID — idirbhearta a rinneadh ar an macasamhail agus nach bhfuil ar an máistir;
  • cuirtear rialacha roghnúcháin saincheaptha san áireamh freisin.

Níl gach CUE ina iarrthóir iontach do mháistir. Mar shampla, is féidir macasamhail a úsáid chun sonraí a chúltaca, nó tá cumraíocht crua-earraí níos laige ag an bhfreastalaí. Ceolfhoireann tacaíochtaí rialacha láimhe lena bhféadfaidh tú do shainroghanna roghnúcháin iarrthóra a shaincheapadh ó na cinn is fearr go dtí na cinn ar tugadh neamhaird orthu.

Am freagartha agus aisghabhála

I gcás teagmhais, tá sé tábhachtach aga neamhfhónaimh an chórais a íoslaghdú, mar sin déanaimis machnamh ar na paraiméadair MySQL a dhéanann difear do chruthú agus nuashonrú na braisle topology ag an gceolfhoireann:

  • slave_net_timeout — an líon soicind a bhfanann an macasamhail ar shonraí nua nó ar chomhartha buille croí ón máistir sula n-aithnítear go bhfuil an nasc caillte agus athcheangailte. Dá ísle an luach, is amhlaidh is tapúla is féidir leis an macasamhail a chinneadh go bhfuil cumarsáid leis an máistir briste. Shocraigh muid an luach seo go 5 soicind.
  • MASTER_CONNECT_RETRY — líon na soicind idir iarrachtaí athcheangail. I gcás fadhbanna líonra, ceadóidh luach íseal don pharaiméadar seo athcheangal tapa agus cosc ​​a chur ar an bpróiseas aisghabhála braisle ó thosú. Is é an luach molta 1 soicind.
  • MASTER_RETRY_COUNT — uaslíon na n-iarrachtaí athcheangail.
  • MASTER_HEARTBEAT_PERIOD — eatramh i soicindí agus ina dhiaidh sin seolann an máistir comhartha buille croí. Réamhshocrú go leath an luacha slave_net_timeout.

Roghanna ceolfhoirne:

  • DelayMasterPromotionIfSQLThreadNotUpToDate - más comhionann true, ansin ní chuirfear an máistir-ról i bhfeidhm ar an macasamhail iarrthóra go dtí go mbeidh gach idirbheart neamhfheidhmithe ón Loga Sealaíochta críochnaithe ag snáithe SQL an macasamhail. Bainimid úsáid as an rogha seo chun nach gcailltear idirbhearta nuair a thiteann gach macasamhail iarrthóra ar gcúl.
  • InstancePollSeconds — a mhinice a dhéantar an topology a thógáil agus a nuashonrú.
  • RecoveryPollSeconds — minicíocht anailíse toipeolaíochta. Má aimsítear fadhb, cuirtear tús le hathshlánú toipeolaíochta. seo tairiseach, comhionann le 1 soicind.

Déanann an ceolfhoirneoir gach nód braisle a polladh uair amháin gach InstancePollSeconds soicind Nuair a aimsítear fadhb, cuirtear iallach ar an stát braisle nuashonraithe, agus ansin déantar an cinneadh deiridh aisghabháil a dhéanamh. Trí thástáil a dhéanamh le paraiméadair éagsúla bhunachar sonraí agus ceolfhoirneora, bhíomar in ann an t-am freagartha agus aisghabhála a laghdú go 30 soicind.

Seastán tástála

Thosaigh muid ag tástáil na scéime HA le forbairt áitiúil binse tástála agus cur i bhfeidhm breise i dtimpeallachtaí tástála agus táirgthe. Tá an seastán áitiúil uathoibrithe go hiomlán bunaithe ar Docker agus ligeann sé duit triail a bhaint as cumraíocht an cheoltóra agus an líonra, an braisle a scála ó 2-3 fhreastalaí go dtí roinnt dosaen, agus cleachtaí a dhéanamh i dtimpeallacht shábháilte.

Le linn na cleachtaí, roghnaigh muid ceann de na modhanna aithrise fhadhb: shoot an máistir láithreach ag baint úsáide as kill -9, cuir deireadh leis an bpróiseas go bog agus stop an freastalaí (docker-compose stop), insamhail fadhbanna líonra ag baint úsáide as iptables -j REJECTiptables -j DROP. Táimid ag súil leis na torthaí seo a leanas:

  • braithfidh an ceolfhoireann fadhbanna leis an máistir agus tabharfaidh sé cothrom le dáta an topology laistigh de 10 soicind ar a mhéad;
  • tosóidh an nós imeachta aisghabhála go huathoibríoch: athróidh an chumraíocht líonra, cuirfidh ról an mháistir ar aghaidh chuig an macasamhail, déanfar an topology a atógáil;
  • beidh an máistir nua inscríofa, ní chaillfear macasamhla beo le linn an phróisis atógála;
  • cuirfear tús le sonraí a scríobh chuig an máistir nua agus a mhacasamhlú;
  • Ní bheidh an t-am téarnaimh iomlán níos mó ná 30 soicind.

Mar is eol duit, féadfaidh an córas féin a iompar go difriúil i dtimpeallachtaí tástála agus táirgthe mar gheall ar chumraíochtaí éagsúla crua-earraí agus líonra, difríochtaí i sintéiseacha agus fíor-ualach, etc. Mar sin, déanaimid cleachtaí go tréimhsiúil i bhfíorchoinníollacha, ag seiceáil conas a iompraíonn an córas nuair a chailltear nascacht líonra nó nuair a dhéantar a chuid codanna aonair a dhíghrádú. Sa todhchaí, ba mhaith linn bonneagar atá go hiomlán comhionann a thógáil don dá thimpeallacht agus a thástáil a uathoibriú.

Torthaí

Tá sláinte nód an phríomhchórais stórála ar cheann de phríomhthascanna an SRE agus na foirne oibríochtaí. Cheadaigh cur i bhfeidhm an réitigh ceoltóra agus HA bunaithe ar VIP dúinn na torthaí seo a leanas a bhaint amach:

  • braite iontaofa fadhbanna le topology an bhraisle bunachar sonraí;
  • freagairt uathoibríoch agus thapa ar theagmhais a bhaineann le máistir, ag laghdú aga neamhfhónaimh an chórais.

Mar sin féin, tá teorainneacha agus míbhuntáistí ag an réiteach:

  • Teastóidh líonra L2 amháin eatarthu chun an scéim HA go roinnt ionad sonraí a scálú;
  • Sula sannfar VIP ar an máistir nua, ní mór dúinn é a scaoileadh ar an sean. Tá an próiseas seicheamhach, rud a mhéadaíonn am a ghnóthú;
  • Éilíonn scaoileadh an VIP rochtain SSH ar an bhfreastalaí, nó aon mhodh eile glaoch nósanna imeachta iargúlta. Ós rud é go bhfuil fadhbanna ag an bhfreastalaí nó an bunachar sonraí ba chúis leis an bpróiseas aisghabhála, ní féidir linn a bheith cinnte go gcríochnófar an bhaint VIP go rathúil. Agus is féidir é seo mar thoradh ar an chuma ar dhá fhreastalaí leis an seoladh IP fíorúil céanna agus fadhb split brain.

A sheachaint split brain, is féidir leat an modh a úsáid STONITH (“Shoot The Other Nód In The Head”), a leithlisíonn nó a dhíchumasaíonn nód na faidhbe go hiomlán. Tá bealaí eile ann chun braisle ard-infhaighteachta a chur i bhfeidhm: meascán de VIP agus DNS, seirbhísí fionnachtana seirbhíse agus seachfhreastalaí, macasamhlú sioncronach agus modhanna eile a bhfuil a gcuid míbhuntáistí agus buntáistí féin acu.

Labhair mé faoinár gcur chuige maidir le braisle teip MySQL a chruthú. Tá sé éasca a chur i bhfeidhm agus soláthraíonn sé leibhéal inghlactha iontaofachta faoi na coinníollacha reatha. De réir mar a fhorbróidh an córas iomlán go ginearálta agus an bonneagar go háirithe, beidh an cur chuige seo ag teacht chun cinn gan dabht.

Foinse: will.com

Add a comment