Orcastra agus VIP mar fhuasgladh HA airson cruinneachadh MySQL

Aig Citymobil bidh sinn a’ cleachdadh stòr-dàta MySQL mar ar prìomh stòradh dàta leantainneach. Tha grunn bhuidhnean stòr-dàta againn airson diofar sheirbheisean agus adhbharan.

Tha cothrom cunbhalach air a’ mhaighstir na chomharradh deatamach air coileanadh an t-siostam gu lèir agus na pàirtean fa leth aige. Bidh ath-nuadhachadh cnuasachadh fèin-ghluasadach ma dh’ fhàilligeas maighstir gu mòr a’ lughdachadh ùine freagairt tachartais agus ùine downt san t-siostam. San artaigil seo, seallaidh mi ri dealbhadh ruigsinneachd àrd (HA) airson cruinneachadh MySQL stèidhichte air Orcastra MySQL agus seòlaidhean IP brìgheil (VIP).

Orcastra agus VIP mar fhuasgladh HA airson cruinneachadh MySQL

Fuasgladh HA stèidhichte air VIP

An toiseach, innsidh mi dhut gu h-aithghearr dè an siostam stòraidh dàta a th’ againn.

Bidh sinn a’ cleachdadh sgeama mac-samhail clasaigeach le aon mhaighstir a ghabhas ruigsinn agus iomadh mac-samhail a ghabhas leughadh a-mhàin. Faodaidh maighstir eadar-mheadhanach a bhith ann am brabhsair - nód a tha an dà chuid na mhac-samhail agus na mhaighstir dha feadhainn eile. Bidh teachdaichean a’ faighinn cothrom air mac-samhail tro HAProxy, a leigeas le cuairteachadh luchdan eadhon agus sgèileadh furasta. Tha cleachdadh HAProxy air sgàth adhbharan eachdraidheil, agus tha sinn an-dràsta a’ gluasad gu ProxySQL.

Tha ath-riochdachadh air a dhèanamh ann am modh leth-shioncronach stèidhichte air GTID. Tha seo a’ ciallachadh gum feum co-dhiù aon mhac-samhail gnothach a chlàradh mus tèid a mheas soirbheachail. Tha am modh mac-samhail seo a’ toirt seachad an cothromachadh as fheàrr eadar coileanadh agus sàbhailteachd dàta ma dh’ fhàillig prìomh nód. Gu bunaiteach tha a h-uile atharrachadh air a ghluasad bhon mhaighstir gu na mac-samhail a ’cleachdadh Row Based Replication (RBR), ach dh’ fhaodadh gum bi cuid de nodan mixed binlog format.

Bidh an orcastra bho àm gu àm ag ùrachadh staid topology na cnuasaiche, a’ dèanamh mion-sgrùdadh air an fhiosrachadh a gheibhear, agus ma dh’ èiricheas duilgheadasan, faodaidh e modh ath-bheothachaidh fèin-ghluasadach a chuir air bhog. Tha uallach air an leasaiche airson a 'mhodh-obrachaidh fhèin, oir faodar a chur an gnìomh ann an diofar dhòighean: stèidhichte air VIP, DNS, a' cleachdadh seirbheisean lorg seirbheis no innealan fèin-sgrìobhaidh.

Is e aon dòigh shìmplidh air maighstir a thoirt air ais ma dh'fhàilligeas e seòlaidhean VIP air bhog a chleachdadh.

Na dh'fheumas tu fios mun fhuasgladh seo mus gluais thu air adhart:

  • Is e seòladh IP a th’ ann an VIP nach eil co-cheangailte ri eadar-aghaidh lìonra corporra sònraichte. Ma dh’ fhailicheas nód no rè obair-càraidh clàraichte, is urrainn dhuinn an VIP atharrachadh gu goireas eile le glè bheag de dh’ ùine downt.
  • Is e gnìomhachd saor is luath a th’ ann a bhith a’ saoradh agus a’ cur a-mach seòladh IP brìgheil.
  • Gus obrachadh le VIP, feumaidh tu cothrom air an fhrithealaiche tro SSH, no cleachdadh ghoireasan sònraichte, mar eisimpleir, keepalived.

Bheir sinn sùil air duilgheadasan a dh’ fhaodadh a bhith ann leis an draoidh againn agus smaoinich mar a bu chòir don inneal ath-bheothachaidh fèin-ghluasadach obrachadh.

Tha ceangal lìonra ris a’ mhaighstir air a dhol à bith, no tha duilgheadas air èirigh aig ìre bathar-cruaidh, agus chan eil am frithealaiche ri fhaighinn

  1. Bidh an orcastra ag ùrachadh topology a’ bhraisle, tha gach mac-samhail ag aithris nach eil am maighstir ri fhaighinn. Bidh an orcastra a 'tòiseachadh air a' phròiseas a bhith a 'taghadh mac-samhail a tha freagarrach airson dreuchd a' mhaighstir ùr agus a 'tòiseachadh air ath-bheothachadh.
  2. Tha sinn a 'feuchainn ris an VIP a thoirt air falbh bhon t-seann mhaighstir - gun soirbheachadh.
  3. Bidh an mac-samhail ag atharrachadh gu dreuchd maighstir. Tha an topology ga ath-thogail.
  4. A’ cur eadar-aghaidh lìonra ùr ri VIP. Leis nach robh e comasach an VIP a thoirt air falbh, bidh sinn a’ tòiseachadh bho àm gu àm a ’cur iarrtas air a’ chùl ARP saor an asgaidh. Leigidh an seòrsa iarrtas / freagairt seo dhut an clàr mapaidh seòladh IP agus MAC ùrachadh air na suidsichean ceangailte, mar sin ag innse dhut gu bheil an VIP againn air gluasad. Tha seo a 'lùghdachadh an coltas split brain nuair a thilleas an seann mhaighstir.
  5. Thèid a h-uile ceangal ùr ath-stiùireadh sa bhad chun mhaighstir ùr. Bidh seann cheanglaichean a’ fàiligeadh agus thèid fiosan a-rithist chun stòr-dàta aig ìre an tagraidh.

Tha am frithealaiche ag obair sa mhodh àbhaisteach, thachair fàilligeadh aig ìre DBMS

Tha an algairim coltach ris a 'chùis roimhe: ag ùrachadh an topology agus a' tòiseachadh air a 'phròiseas ath-bheothachaidh. Leis gu bheil am frithealaiche ri fhaighinn, bidh sinn gu soirbheachail a ’leigeil a-mach an VIP air an t-seann mhaighstir, ga ghluasad chun fhear ùr, agus a’ cur grunn iarrtasan ARP. Cha bu chòir don t-seann mhaighstir tilleadh a dh’ fhaodadh a bhith a ’toirt buaidh air a’ bhuidheann ath-thogte agus air obrachadh an tagraidh.

Duilgheadasan eile

Fàilligeadh mac-samhail no maighstirean eadar-mheadhanach chan eil luaidhe gu gnìomhan fèin-ghluasadach agus feumach air eadar-theachd làimhe.

Bidh eadar-aghaidh lìonra brìgheil an-còmhnaidh air a chuir ris airson ùine, is e sin, às deidh ath-thòiseachadh frithealaiche, chan eil an VIP air a shònrachadh gu fèin-ghluasadach. Bidh gach eisimpleir stòr-dàta a’ tòiseachadh ann am modh leughaidh a-mhàin gu bunaiteach, bidh an orcastra gu fèin-ghluasadach ag atharrachadh a’ mhaighstir ùr airson sgrìobhadh agus a’ feuchainn ri stàladh read only air an t-seann mhaighstir. Tha na gnìomhan sin ag amas air an coltas a lùghdachadh split brain.

Faodaidh duilgheadasan èirigh tron ​​​​phròiseas ath-bheothachaidh, a bu chòir fios a chuir cuideachd tron ​​​​UI orchestrator a bharrachd air innealan sgrùdaidh àbhaisteach. Tha sinn air an REST API a leudachadh le bhith a’ cur am feart seo ris (PR fo sgrùdadh an-dràsta).

Tha an diagram coitcheann den fhuasgladh HA air a thaisbeanadh gu h-ìosal.

Orcastra agus VIP mar fhuasgladh HA airson cruinneachadh MySQL

A 'taghadh maighstir ùr

Tha an orchestrator tapaidh gu leòr agus a’ feuchainn ri taghadh mac-samhail as freagarraiche mar mhaighstir ùr a rèir nan slatan-tomhais a leanas:

  • tha am mac-samhail air dheireadh air cùlaibh a' mhaighstir;
  • Tionndadh MySQL de mhaighstir agus mac-samhail;
  • seòrsa ath-riochdachadh (RBR, SBR no measgaichte);
  • suidheachadh anns na h-aon ionadan dàta no eadar-dhealaichte;
  • ri fhaighinn errant GTID - gnothaichean a chaidh a dhèanamh air mac-samhail agus nach eil air a 'mhaighstir;
  • thathas cuideachd a’ toirt aire do riaghailtean taghaidh àbhaisteach.

Chan eil a h-uile cue na thagraiche math airson maighstir. Mar eisimpleir, faodar mac-samhail a chleachdadh airson cùl-taic de dhàta, no tha rèiteachadh bathar-cruaidh nas laige aig an fhrithealaiche. Orcastra a ’toirt taic riaghailtean làimhe leis an urrainn dhut na roghainnean taghaidh tagraiche agad a ghnàthachadh bhon mhòr-chuid as fheàrr leotha gu nach deach a leigeil seachad.

Ùine freagairt agus ath-bheothachadh

Ma thachras tachartas, tha e cudromach an ùine downt san t-siostam a lughdachadh, mar sin beachdaich air na paramadairean MySQL a bheir buaidh air cruthachadh agus ùrachadh topology brabhsair leis an orcastra:

  • slave_net_timeout - an àireamh de dhiog nuair a bhios am mac-samhail a’ feitheamh ri dàta ùr no comharra buille-cridhe a thighinn bhon mhaighstir mus aithnichear gu bheil an ceangal air chall agus air ath-cheangal. Mar as ìsle an luach, is ann as luaithe as urrainn don mhac-samhail dearbhadh gu bheil conaltradh leis a’ mhaighstir briste. Shuidhich sinn an luach seo gu 5 diogan.
  • MASTER_CONNECT_RETRY - an àireamh de dhiogan eadar oidhirpean ath-cheangail. Ma tha duilgheadasan lìonra ann, leigidh luach ìosal airson a’ pharamadair seo ath-cheangal gu sgiobalta agus cuiridh e casg air a’ phròiseas ath-bheothachaidh bho bhith a’ tòiseachadh. Is e an luach a thathar a’ moladh 1 diog.
  • MASTER_RETRY_COUNT - an àireamh as motha de oidhirpean ath-cheangail.
  • MASTER_HEARTBEAT_PERIOD - eadar-ama ann an diogan às deidh sin bidh am maighstir a’ cur comharra buille cridhe. Defaults gu leth an luach slave_net_timeout.

Paramadairean an orcastra:

  • DelayMasterPromotionIfSQLThreadNotUpToDate - ma tha e co-ionann true, an uairsin cha tèid am prìomh dhreuchd a chuir an sàs air mac-samhail an tagraiche gus am bi snàithlean SQL an mac-samhail air crìoch a chuir air a h-uile gnothach nach deach a chleachdadh bhon Log Relay. Bidh sinn a’ cleachdadh an roghainn seo gus gnothaichean a chall nuair a thuiteas a h-uile mac-samhail de thagraiche air dheireadh.
  • InstancePollSeconds - tricead togail agus ùrachadh topology.
  • RecoveryPollSeconds - tricead mion-sgrùdadh topology. Ma lorgar duilgheadas, thèid ath-bheothachadh topology a thòiseachadh. Seo seasmhach, co-ionann ri 1 diog.

Bidh gach nód cnuasachaidh air a sgrùdadh leis an orcastra aon uair gach uair InstancePollSeconds diogan Nuair a lorgar duilgheadas, tha suidheachadh na buidhne air a cho-èigneachadh ùrachadh, agus an uairsin thèid an co-dhùnadh deireannach a dhèanamh gus faighinn seachad air. Le bhith a’ feuchainn diofar pharaimearan stòr-dàta agus orcastra, bha e comasach dhuinn an ùine freagairt agus faighinn seachad air a lughdachadh gu 30 diog.

seasamh deuchainn

Thòisich sinn a’ dèanamh deuchainn air sgeama HA le leasachadh ionadail being deuchainn agus tuilleadh buileachaidh ann an àrainneachdan deuchainn is cinneasachaidh. Tha an ionad ionadail làn fèin-ghluasadach stèidhichte air Docker agus leigidh e leat deuchainn a dhèanamh air rèiteachadh an orcastra agus an lìonra, sgèile a’ bhuidheann bho 2-3 frithealaiche gu grunn dhusan, agus eacarsaichean a dhèanamh ann an àrainneachd shàbhailte.

Rè na h-eacarsaichean, bidh sinn a 'taghadh aon de na dòighean aithris duilgheadas: sa bhad losgadh air a' mhaighstir a 'cleachdadh kill -9, cuir crìoch air a’ phròiseas gu socair agus stad am frithealaiche (docker-compose stop), atharrais air duilgheadasan lìonra a’ cleachdadh iptables -j REJECT no iptables -j DROP. Tha sinn an dùil na toraidhean a leanas:

  • lorgaidh an orchestrator duilgheadasan leis a’ mhaighstir agus bheir e ùrachadh air an topology ann an nas fhaide na 10 diogan;
  • tòisichidh am modh ath-bheothachaidh gu fèin-ghluasadach: atharraichidh rèiteachadh an lìonraidh, thèid àite a’ mhaighstir air adhart chun mhac-samhail, thèid an topology ath-thogail;
  • bidh am maighstir ùr air a sgrìobhadh, cha tèid mac-samhail beò a chall tron ​​​​phròiseas ath-thogail;
  • tòisichidh dàta air a sgrìobhadh chun mhaighstir ùr agus air ath-riochdachadh;
  • Cha bhith an ùine ath-bheothachaidh iomlan nas fhaide na 30 diog.

Mar a tha fios agad, is dòcha gum bi an siostam gad ghiùlan fhèin ann an dòigh eadar-dhealaichte ann an àrainneachdan deuchainn is cinneasachaidh air sgàth diofar chruthan bathar-cruaidh is lìonra, eadar-dhealachaidhean ann an luchdan synthetigeach agus fìor, msaa. Mar sin, bidh sinn bho àm gu àm a ’dèanamh eacarsaichean ann an suidheachaidhean fìor, a’ sgrùdadh mar a bhios an siostam gan giùlan fhèin nuair a thèid ceangal lìonra a chall no nuair a thèid na pàirtean fa leth aige a lughdachadh. Anns an àm ri teachd, tha sinn airson bun-structar gu tur co-ionann a thogail airson an dà chuid àrainneachdan agus fèin-ghluasad a dhèanamh air an deuchainn.

toraidhean

Is e slàinte prìomh nòta an t-siostam stòraidh aon de phrìomh ghnìomhan an SRE agus sgioba gnìomhachd. Thug buileachadh an orchestrator agus fuasgladh HA stèidhichte air VIP cothrom dhuinn na toraidhean a leanas a choileanadh:

  • lorg earbsach de dhuilgheadasan le topology cruinneachadh an stòr-dàta;
  • freagairt fèin-ghluasadach agus luath do thachartasan co-cheangailte ri maighstirean, a’ lughdachadh ùine downt san t-siostam.

Ach, tha crìochan agus eas-bhuannachdan aig an fhuasgladh:

  • airson sgèileadh an sgeama HA gu grunn ionadan dàta bidh feum air aon lìonra L2 eatorra;
  • Mus tèid VIP a shònrachadh don mhaighstir ùr, feumaidh sinn a leigeil ma sgaoil air an t-seann fhear. Tha am pròiseas sreathach, a tha a 'meudachadh ùine ath-bheothachaidh;
  • le bhith a’ leigeil a-mach an VIP feumaidh cothrom SSH air an fhrithealaiche, no dòigh sam bith eile air modhan-obrachaidh iomallach a ghairm. Leis gu bheil duilgheadasan aig an fhrithealaiche no an stòr-dàta a dh’ adhbhraich am pròiseas ath-bheothachaidh, chan urrainn dhuinn a bhith cinnteach gun tèid an toirt air falbh VIP a chrìochnachadh gu soirbheachail. Agus faodaidh seo leantainn gu coltas dà fhrithealaiche leis an aon sheòladh IP brìgheil agus duilgheadas split brain.

A sheachnadh split brain, faodaidh tu am modh a chleachdadh STONITH (“Shoot The Other Node In The Head”), a tha gu tur a’ dealachadh no a’ cuir à comas an nód trioblaid. Tha dòighean eile ann airson cruinneachadh àrd-ruigsinneachd a chuir an gnìomh: measgachadh de VIP agus DNS, lorg seirbheis agus seirbheisean neach-ionaid, ath-riochdachadh sioncronaich agus dòighean eile aig a bheil na h-eas-bhuannachdan agus na buannachdan aca fhèin.

Bhruidhinn mi mun dòigh-obrach againn airson cruinneachadh MySQL failover a chruthachadh. Tha e furasta a bhuileachadh agus a’ toirt seachad ìre iomchaidh de earbsachd fo chumhachan gnàthach. Mar a leasaicheas an siostam gu lèir san fharsaingeachd agus bun-structar gu sònraichte, gun teagamh thig an dòigh-obrach seo air adhart.

Source: www.habr.com

Cuir beachd ann