Orchestrator iyo VIP sida xal HA ee kutlada MySQL

Citymobil waxaan u isticmaalnaa xogta MySQL sida kaydinta xogtayada joogtada ah. Waxaan haynaa dhawr rucubood oo xog ururin ah oo adeegyo iyo ujeedooyin kala duwan u leh.

Helitaanka joogtada ah ee sayidku waa calaamad muhiim u ah waxqabadka nidaamka oo dhan iyo qaybihiisa gaarka ah. Soo kabashada tooska ah ee kooxda haddii ay dhacdo guuldarada sayidku waxay si weyn u yaraynaysaa wakhtiga jawaabta shilka iyo wakhtiga hoos u dhaca nidaamka. Maqaalkan, waxaan eegi doonaa helitaan sare (HA) naqshadeynta kutlada MySQL oo ku saleysan Orchestrator MySQL iyo ciwaanka IP-ga ah (VIP).

Orchestrator iyo VIP sida xal HA ee kutlada MySQL

HA xal ku salaysan VIP

Marka hore, waxaan si kooban kuu sheegi doonaa waxa nidaamka kaydinta xogtayadu tahay.

Waxaan isticmaalnaa nidaam ku celcelin heer caadi ah oo leh hal sayid oo qoraal ah oo la heli karo iyo nuqulo badan oo akhris-kaliya ah. Kooxdu waxa ay ka koobnaan kartaa sayid dhexdhexaad ah - noodh kaas oo labadaba u ah nuqul iyo sayid kuwa kale. Macaamiishu waxay ka helaan nuqullada HAProxy, taas oo u oggolaanaysa xitaa qaybinta culeyska iyo miisaan fudud. Isticmaalka HAProxy waxaa sabab u ah sababo taariikhi ah, waxaana hadda ku jirnaa habka u haajiridda ProxySQL.

Ku celcelinta waxaa lagu sameeyaa qaab isku mid ah oo ku salaysan GTID. Tani waxay ka dhigan tahay in ugu yaraan hal nuqul ay tahay inuu galo wax kala iibsiga ka hor inta aan loo tixgelin inuu guulaystay. Habkan ku-noqoshada waxa uu bixiyaa dheellitiran ugu wanagsan ee u dhexeeya waxqabadka iyo badbaadada xogta haddii ay dhacdo in uu xumaado noodhka sare. Asal ahaan dhammaan isbeddelada waxaa laga wareejiyaa sayidkii ilaa nuqullada iyadoo la adeegsanayo Row Based Replication (RBR), laakiin qanjidhada qaar ayaa laga yaabaa mixed binlog format.

Orchestrator-ku si xilliyo ah ayuu u cusbooneysiiyaa xaaladda topology-ga kooxdu, wuxuu falanqeeyaa macluumaadka la helay, iyo haddii ay dhibaatooyin soo baxaan, waxay bilaabi karaan nidaam soo kabasho oo toos ah. Horumariyuhu wuxuu mas'uul ka yahay nidaamka laftiisa, maadaama loo fulin karo siyaabo kala duwan: oo ku saleysan VIP, DNS, iyadoo la adeegsanayo adeegyada helitaanka adeegga ama habab is-qori.

Hal dariiqo oo fudud oo lagu soo celin karo master-ka haddii uu ku guuldareysto waa in la isticmaalo ciwaannada VIP-da sabayn.

Waxa aad u baahan tahay inaad ka ogaato xalkan ka hor intaadan hore u socon:

  • VIP-gu waa ciwaanka IP-ga oo aan la xidhiidhin is-dhexgal gaar ah oo jireed. Haddi noodu ku guuldareysto ama inta lagu jiro dayactirka jadwaleysan, waxaan u bedeli karnaa VIP-ga kheyraad kale oo leh waqti yar.
  • Sii daynta iyo soo saarista ciwaanka IP-ga ah waa hawl jaban oo degdeg ah.
  • Si aad ula shaqeyso VIP, waxaad u baahan tahay inaad gasho server-ka adigoo isticmaalaya SSH, ama isticmaalka adeegyada gaarka ah, tusaale ahaan, keepalived.

Aynu eegno dhibaatooyinka suurtogalka ah ee saaxirkeena oo aan qiyaasno sida habka soo kabashada tooska ah uu u shaqeeyo.

Isku xidhka shabkada ee sayidku wuu lumay, ama cilad ayaa ka dhalatay heerka hardware-ka, oo seerfarku lama heli karo

  1. Orchestrator-ku waxa uu cusboonaysiiyaa topology-ga kutlada, nuqul walba waxa uu sheegay in sayidku aanu diyaar ahayn. Orchestrator-ku wuxuu bilaabaa habka xulashada nuqul ku habboon doorka sayidka cusub oo bilaabay soo kabashada.
  2. Waxaan isku dayeynaa inaan VIP-da ka saarno sayidkii hore - guul la'aan.
  3. Nuqulku wuxuu u wareegayaa doorka sayidkiisa. Topology-ga ayaa dib loo dhisayaa.
  4. Ku darista interface cusub oo shabakad leh VIP. Maaddaama aysan suurtagal ahayn in meesha laga saaro VIP-da, waxaan bilaabeynaa inaan si xilliyo ah codsi u dirno gadaal ARP lacag la'aan ah. Codsiga/jawaabcelinta noocan ahi waxay kuu ogolaanaysaa inaad cusboonaysiiso miiska khariidaynta cinwaanka IP-ga iyo MAC ee ku yaal furayaasha ku xidhan, taas oo ku ogeysiinaysa in VIP-dayadu dhaqaaqday. Tani waxay yaraynaysaa suurtagalnimada split brain marka loo soo celiyo sayidkii hore.
  5. Dhammaan xiriirada cusub isla markiiba waxaa loo weeciyey sayidkii cusub. Xidhiidhiyadii hore way fashilmeen oo soo noqnoqda wicitaanada kaydka waxa lagu sameeyaa heerka codsiga.

Seerfarku waxa uu ku shaqaynayaa qaab caadi ah, fashil ayaa ka dhacay heerka DBMS

Algorithm waxay la mid tahay kiiskii hore: cusboonaysiinta topology iyo bilawga habka soo kabashada. Maadaama server-ku jiro, waxaan si guul leh ugu sii deynay VIP-da sayidkii hore, waxaan u wareejinaa kan cusub, oo u dirnaa dhowr codsiyo ARP. Soo noqoshada suurtagalka ah ee sayidkii hore waa inaysan saameyn ku yeelan kooxda dib loo dhisay iyo hawlgalka codsiga.

Dhibaatooyinka kale

Ku guuldareysiga nuqul ka mid ah ama sayidyada dhexe ma horseedo ficilada tooska ah oo u baahan faragelin gacanta ah.

Isku xirka shabakadaha casriga ah ayaa had iyo jeer lagu daraa si ku meel gaar ah, taas oo ah, ka dib markii server-ka dib loo bilaabo, VIP-da si toos ah looma qoondeeyo. Tusaal kasta oo xog ururin ah waxa uu ku bilaabmaa qaab-akhris-keliya si caadi ah, orchestrar-ku si toos ah ayuu u beddelaa sayidkii cusub si uu u qoro oo isku dayo in uu rakibo read only on sayidkii hore. Falalkan waxaa looga dan leeyahay in lagu dhimo suurtagalnimada split brain.

Dhibaatooyin ayaa soo bixi kara inta lagu jiro habka soo kabashada, kaas oo sidoo kale lagu ogeysiiyo iyada oo loo marayo orchestertor UI marka lagu daro qalabka kormeerka caadiga ah. Waxaan ballaarinay REST API annagoo ku darnay sifadan (PR hadda dib u eegis ayaa lagu hayaa).

Jaantuska guud ee xalka HA ayaa lagu soo bandhigay hoos.

Orchestrator iyo VIP sida xal HA ee kutlada MySQL

Doorashada sayid cusub

Orchestrator waa caqli ku filan oo wuxuu isku dayaa inuu doorto nuqulka ugu habboon sida master cusub sida waafaqsan shuruudaha soo socda:

  • nuqulku wuu ka dambeeyaa sayidkii;
  • MySQL nooca master iyo nuqul;
  • nooca taranka (RBR, SBR ama isku qasan);
  • goobta xogta isku mid ah ama ka duwan;
  • helitaanka errant GTID - macaamil ganacsi oo lagu fuliyay nuqulka oo aan ku jirin sayidkii;
  • Xeerarka xulashada caadada ayaa sidoo kale la tixgeliyaa.

Tilmaan kasta ma aha musharax ku habboon sayid. Tusaale ahaan, nuqul ayaa loo isticmaali karaa in lagu kaydiyo xogta, ama server-ku waxa uu leeyahay qaabaynta qalabka daciifka ah. Abaabulaha taageerooyinka Xeerarka gacanta oo aad ku habayn karto dookhyada doorashada musharraxiinta oo ka mid ah kuwa la door biday iyo kuwa la iska indho-tiray.

Jawaabta iyo waqtiga soo kabashada

Haddii ay dhacdo dhacdo, waxaa muhiim ah in la yareeyo nidaamka hoos u dhaca, markaa aan tixgelinno cabbirrada MySQL ee saameeya abuurista iyo cusboonaysiinta topology-ga kooxda ee orchesteriyaha:

  • slave_net_timeout - tirada ilbiriqsiyo inta lagu guda jiro nuqul ka sugaya xogta cusub ama signal garaaca wadnaha ka yimaada sayidkii ka hor inta aan la aqoonsan xiriir lumay iyo dib u xidhidh. Qiimaha hoose, sida ugu dhakhsaha badan nuqulku wuxuu go'aamin karaa in xidhiidhka sayidku uu jabay. Waxaan dhignay qiimahan 5 ilbiriqsi.
  • MASTER_CONNECT_RETRY - tirada ilbiriqsi ee u dhaxaysa isku dayga dib u xidhidhiyaha. Haddii ay dhacdo mashaakil shabakadeed, qiimaha hoose ee cabbirkan ayaa u oggolaan doona dib u xirid degdeg ah oo ka hortagaya habka soo kabashada kooxda inuu bilaabo. Qiimaha lagu taliyey waa 1 ilbiriqsi.
  • MASTER_RETRY_COUNT - tirada ugu badan ee isku dayga dib u xidhidhiyaha.
  • MASTER_HEARTBEAT_PERIOD - inta u dhaxaysa ilbiriqsiyo kadib sayidku wuxuu soo diraa calaamada garaaca wadnaha. Wax u dhimaya kala badh qiimaha slave_net_timeout.

Ikhtiyaarada abaabulaha:

  • DelayMasterPromotionIfSQLThreadNotUpToDate - haddii loo siman yahay true, markaas doorka sayidku laguma dabaqi doono nuqulka musharraxa ilaa uu ka dhameeyo dunta SQL ee nuqul ka ah dhammaan macaamilada aan la dabaqin ee Log Relay. Waxaan u isticmaalnaa doorashadan si aan uga fogaano luminta macaamilada marka dhammaan nuqullada musharraxiinta ay dib u dhacaan.
  • InstancePollSeconds - inta jeer ee dhismaha iyo cusboonaysiinta topology.
  • RecoveryPollSeconds - inta jeer ee falanqaynta topology. Haddii dhibaato la ogaado, soo kabashada topology waa la bilaabay. Tani joogto ah, oo le'eg 1 ilbiriqsi.

Koox kasta waxa ra'yi ururiyaha orchestra mar kasta InstancePollSeconds ilbiriqsi Marka dhibaato la ogaado, gobolka kooxdu waa la qasbay la cusbooneysiiyay, ka dibna go'aanka ugu dambeeya ayaa la sameeyaa si loo sameeyo soo kabashada. Anagoo tijaabinayna xogta kala duwan iyo cabirrada orchesterka, waxaan awoodnay inaan yareyno jawaabta iyo waqtiga soo kabashada ilaa 30 ilbiriqsi.

Tijaabi istaag

Waxaan bilownay tijaabinta nidaamka HA iyadoo la horumarinayo qof deegaanka ah kursiga tijaabada iyo hirgalinta dheeraadka ah ee goobaha tijaabada iyo wax soo saarka. Meesha maxalli ah ayaa si buuxda otomaatig ah u leh iyadoo ku saleysan Docker waxayna kuu ogolaaneysaa inaad tijaabiso qaabeynta orchesttarka iyo shabakada, cabirka kutlada min 2-3 server ilaa dhowr darsin, oo aad ku sameyso jimicsi jawi badbaado leh.

Inta lagu jiro leyliga, waxaan dooranaa mid ka mid ah hababka ku dayashada dhibaatada: isla markiiba toogto sayidkii adigoo isticmaalaya kill -9, si tartiib ah u jooji hawsha oo jooji server-ka (docker-compose stop), masalo dhibaatooyinka shabakada adoo isticmaalaya iptables -j REJECT ama iptables -j DROP. Waxaan fileynaa natiijooyinka soo socda:

  • Orchestrator-ku wuxuu ogaan doonaa dhibaatooyinka sayidkiisa wuxuuna cusbooneysiin doonaa topology in aan ka badnayn 10 ilbiriqsi;
  • habka soo kabashada ayaa si toos ah u bilaabi doonta: qaabeynta shabakada ayaa isbeddeli doonta, doorka sayidku wuxuu u gudbi doonaa nuqulka, topology-ga ayaa dib loo dhisi doonaa;
  • sayidkii cusbaa wuxuu noqon doonaa mid la qori karo, nuqullada nool lama lumin doono inta lagu jiro habka dib-u-dhiska;
  • xogta ayaa bilaabi doonta in loo qoro sayid cusub oo la nuqulo;
  • Wadarta wakhtiga soo kabashada ma noqon doonto wax ka badan 30 ilbiriqsi.

Sidaad ogtahay, nidaamku wuxuu u dhaqmi karaa si ka duwan jawiga tijaabada iyo wax soo saarka sababtoo ah qalabyada kala duwan iyo qaabeynta shabakada, kala duwanaanshaha culeyska synthetic iyo dhabta ah, iwm. Sidaa darteed, waxaan si xilliyo ah u sameynaa layliyada xaaladaha dhabta ah, hubinta sida nidaamku u dhaqmo marka isku xirka shabakadu lumo ama qaybihiisa gaarka ah ay hoos u dhacaan. Mustaqbalka, waxaan rabnaa inaan dhisno kaabayaal isku mid ah oo labada deegaan ah oo aan si otomaatig ah u samayno imtixaankeeda.

natiijooyinka

Caafimaadka habka kaydinta ugu weyn waa mid ka mid ah hawlaha ugu muhiimsan ee SRE iyo kooxda hawlgallada. Hirgelinta orchestertor iyo xal HA ee ku salaysan VIP waxay noo ogolaatay inaan gaarno natiijooyinka soo socda:

  • ogaanshaha la isku halayn karo ee dhibaatooyinka xagga topology-ga ee kooxda xogta;
  • si toos ah oo degdeg ah uga jawaab celin shilalka la xidhiidha sayid, hoos u dhigista nidaamka.

Si kastaba ha ahaatee, xalku wuxuu leeyahay xaddidaadkiisa iyo faa'iido darrooyinka:

  • Isku-buufinta nidaamka HA ee dhowr xarumood oo xog ah waxay u baahan doontaa hal shabakad L2 oo u dhaxaysa;
  • Kahor intaanan ku meelayn VIP sayid cusub, waxaan u baahanahay inaan ku sii deyno kii hore. Nidaamku waa mid isdaba-joog ah, kaas oo kordhiya wakhtiga soo kabashada;
  • Siideynta VIP-da waxay u baahan tahay gelitaanka SSH ee server-ka, ama hab kasta oo kale oo loogu yeero hababka fogfog. Maadaama server-ka ama keydka xogta ay la kulmaan dhibaatooyin sababay habka soo kabashada, ma hubin karno in ka saarista VIP ay si guul leh u dhammayn doonto. Waxayna tani keeni kartaa in ay soo baxaan laba adeegayaal oo wata ciwaanka IP-ga ee isku midka ah iyo dhibaato split brain.

Si looga fogaado split brain, waxaad isticmaali kartaa habka STONITH ("Shoot the other node in the Head"), kaas oo gabi ahaanba ka saaraya ama curyaaminaya noodhka dhibaatada. Waxaa jira siyaabo kale oo lagu hirgeliyo kutlada helitaan sare: isku darka VIP iyo DNS, helitaanka adeegga iyo adeegyada wakiilnimada, ku celcelinta isku midka ah iyo habab kale oo leh faa'iidooyin iyo faa'iidooyin iyaga u gaar ah.

Waxaan ka hadlay habkayaga loo abuurayo kutlada fashilinta MySQL. Way fududahay in la hirgeliyo oo waxay bixisaa heer la aqbali karo oo lagu kalsoonaan karo xaaladaha hadda jira. Sida guud ahaan nidaamka guud iyo gaar ahaan kaabayaasha dhaqaalaha u horumaraan, habkani shaki la'aan wuu kobcayaa.

Source: www.habr.com

Add a comment