Orchestrator le VIP e le tharollo ea HA bakeng sa sehlopha sa MySQL

Ho Citymobil re sebelisa database ea MySQL e le polokelo ea rona ea mantlha e phehellang. Re na le lihlopha tse 'maloa tsa database bakeng sa lits'ebeletso le merero e fapaneng.

Ho fumaneha kamehla ha monghali ke pontšo ea bohlokoa ea ts'ebetso ea tsamaiso eohle le likarolo tsa eona ka bomong. Ho hlaphoheloa ha lihlopha ka boiketsetso ha ho ka ba le ho hloleha ho hoholo ho fokotsa haholo nako ea karabelo ea liketsahalo le nako ea ho theoha ha sistimi. Sehloohong sena, ke tla sheba sebopeho se phahameng sa ho fumaneha (HA) bakeng sa sehlopha sa MySQL se thehiloeng ho MySQL Orchestrator le liaterese tsa IP tse fumanehang (VIP).

Orchestrator le VIP e le tharollo ea HA bakeng sa sehlopha sa MySQL

HA tharollo e thehiloeng ho VIP

Ntlha ea pele, ke tla u bolella ka bokhutšoanyane hore na tsamaiso ea rona ea polokelo ea data ke efe.

Re sebelisa mokhoa oa khale oa ho ikatisa o nang le master e le 'ngoe e fumanehang habonolo le likopi tse ngata tsa ho bala feela. Sehlopha se ka ba le master ea mahareng - node eo ka bobeli e leng setšoantšo le master bakeng sa ba bang. Bareki ba fihlella likopi ka HAProxy, e lumellang hore esita le kabo ea mojaro le ho lekanya habonolo. Tšebeliso ea HAProxy e bakoa ke mabaka a histori, 'me re ntse re le mothating oa ho fallela ho ProxySQL.

Ho pheta-pheta ho etsoa ka mokhoa oa semi-synchronous ho latela GTID. Sena se bolela hore bonyane replica e le 'ngoe e tlameha ho ngolla transaction pele e nkoa e atlehile. Mokhoa ona oa ho pheta-pheta o fana ka tekanyo e nepahetseng pakeng tsa ts'ebetso le ts'ireletso ea data ha ho ka etsahala hore node e hlōlehe. Ha e le hantle liphetoho tsohle li fetisoa ho tloha ho master ho ea ho replicas ho sebelisoa Row Based Replication (RBR), empa li-node tse ling li ka ba le tsona mixed binlog format.

Nako le nako, 'mino oa liletsa o nchafatsa boemo ba topology ea lihlopha, o sekaseka tlhahisoleseling e fumanoeng,' me haeba mathata a hlaha, e ka qala mokhoa oa ho hlaphoheloa o ikemetseng. Moqapi o ikarabella bakeng sa ts'ebetso ka boeona, kaha e ka sebelisoa ka litsela tse fapaneng: ho itšetlehile ka VIP, DNS, ho sebelisa litšebeletso tsa ho sibolla litšebeletso kapa mekhoa e ngotsoeng ka boeena.

Mokhoa o mong o bonolo oa ho khutlisa master haeba e hloleha ke ho sebelisa liaterese tsa VIP tse phaphametseng.

Seo u hlokang ho se tseba ka tharollo ena pele u tsoela pele:

  • VIP ke aterese ea IP e sa amaneng le sebopeho se itseng sa marang-rang. Haeba node e hlōleha kapa nakong ea tlhokomelo e reriloeng, re ka fetola VIP ho sesebelisoa se seng ka nako e fokolang.
  • Ho lokolla le ho fana ka aterese ea IP ke ts'ebetso e theko e tlaase ebile e potlakile.
  • Ho sebetsa le VIP, o hloka ho fihlella seva ka SSH, kapa ts'ebeliso ea lits'ebeletso tse khethehileng, mohlala, keepalived.

Ha re shebeng mathata a ka bang teng ka wizard ea rona mme re nahane hore na mochini oa ho hlaphoheloa o tla sebetsa joang.

Khokahano ea marang-rang ho master e felile, kapa bothata bo hlahile boemong ba hardware, 'me seva ha e fumanehe.

  1. Sebapali se ntlafatsa sehlopha sa topology, setšoantšo se seng le se seng se tlaleha hore setsebi ha se fumanehe. Moetsi oa liletsa o qala mokhoa oa ho khetha setšoantšo se loketseng karolo ea monghali e mocha mme o qala ho hlaphoheloa.
  2. Re leka ho tlosa VIP ho monghali oa khale - ntle le katleho.
  3. Setšoantšo se fetohela ho karolo ea master. Topology e ntse e hahuoa bocha.
  4. E eketsa sebopeho se secha sa marang-rang le VIP. Kaha ho ne ho sa khonehe ho tlosa VIP, re qala nako le nako ho romela kopo ka morao mahala ARP. Mofuta ona oa kopo/karabo o u fa monyetla oa ho nchafatsa tafole ea 'mapa ea aterese ea IP le ea MAC holim'a li-switches tse hokahaneng, ka hona ho u tsebisa hore VIP ea rona e fallisitse. Sena se fokotsa monyetla split brain ha ho kgutla monghadi ya tsofetseng.
  5. Lihokelo tsohle tse ncha li fetisetsoa hang-hang ho mong'a e mocha. Lihokelo tsa khale li hloleha mme mehala e pheta-phetoang ho database e etsoa boemong ba kopo.

Seva e sebetsa ka mokhoa o tloaelehileng, ho hloleha ho etsahetse boemong ba DBMS

Algorithm e tšoana le nyeoe e fetileng: ho ntlafatsa topology le ho qala ts'ebetso ea ho hlaphoheloa. Kaha seva se fumaneha, re atleha ho lokolla VIP ho mong'a khale, re e fetisetsa ho e ncha, ebe re romela likōpo tse 'maloa tsa ARP. Ho khutla ho ka khonehang ha monghali oa khale ha hoa lokela ho ama sehlopha se hahiloeng bocha le ts'ebetso ea kopo.

Mathata a mang

Ho hloleha ha replicas kapa masters a mahareng ha e etelle pele ho etsa diketso tse itirisang mme e hloka ho kenella ka letsoho.

Sebopeho sa marang-rang sa marang-rang se lula se eketsoa ka nakoana, ke hore, ka mor'a ho qala seva, VIP ha e abeloe ka bo eona. Mohlala o mong le o mong oa database o qala ka mokhoa oa ho bala feela ka boiketsetso, 'mino oa liletsa o fetola mong'a e mocha hore a ngole ebe o leka ho kenya. read only ho mong'a khale. Liketso tsena li reretsoe ho fokotsa menyetla split brain.

Mathata a ka 'na a hlaha nakong ea ts'ebetso ea ho hlaphoheloa, e lokelang ho tsebisoa hape ka UI ea orchestrator ho phaella ho lisebelisoa tse tloaelehileng tsa ho beha leihlo. Re ekelitse REST API ka ho kenyelletsa tšobotsi ena (PR ha joale e ntse e hlahlojoa).

Setšoantšo se akaretsang sa tharollo ea HA se hlahisoa ka tlase.

Orchestrator le VIP e le tharollo ea HA bakeng sa sehlopha sa MySQL

Ho khetha monghali e mocha

Sebapali sa liletsa se bohlale ka ho lekaneng 'me se leka ho khetha replica e loketseng ka ho fetisisa joalo ka monghali e mocha ho latela lintlha tse latelang:

  • setšoantšo se salla ka mor'a mong'a sona;
  • Mofuta oa MySQL oa master le replica;
  • mofuta oa ho ikatisa (RBR, SBR kapa e tsoakiloeng);
  • sebaka se le seng kapa litsi tse fapaneng tsa data;
  • ho fumaneha errant GTID - litšebelisano tse ileng tsa etsoa ho replica 'me ha li holim'a mong'a tsona;
  • melao ea khetho ea moetlo e boetse e nkoa e le ea bohlokoa.

Ha se letšoao le leng le le leng leo motho a ka khethang ho ba setsebi. Mohlala, setšoantšo se ka sebelisoa ho boloka data, kapa seva e na le tlhophiso e fokolang ea hardware. Moetsi oa liletsa litšehetso melao ea tataiso eo ka eona u ka khethang likhetho tsa mokhethoa oa hau ho tsoa ho tse ratoang haholo ho feta tse hlokomolohuoang.

Karabelo le nako ea ho hlaphoheloa

Ha ho na le ketsahalo, ho bohlokoa ho fokotsa nako ea ho theoha ha sistimi, ka hona, a re ke re nahaneng ka mekhahlelo ea MySQL e amang popo le ntlafatso ea topology ea sehlopha ka 'mino oa liletsa:

  • slave_net_timeout - palo ea metsotsoana eo ka eona replica e emelang data e ncha kapa letšoao la ho otla ha pelo hore le fihle ho tsoa ho mong'a pele khokahanyo e tsejoa e le e lahlehileng le ho kopanngoa hape. Ha boleng bo tlaase, ka potlako setšoantšo se ka etsa qeto ea hore puisano le monghali e robehile. Re beha boleng bona ho metsotsoana e 5.
  • MASTER_CONNECT_RETRY - palo ea metsotsoana pakeng tsa boiteko ba ho kopanya hape. Ha ho na le mathata a marang-rang, boleng bo tlaase bakeng sa parameter ena bo tla lumella ho tsosolosoa ka potlako le ho thibela ts'ebetso ea ho tsosolosa lihlopha ho qala. Theko e khothaletsoang ke motsotsoana o le 1.
  • MASTER_RETRY_COUNT - palo e kholo ea liteko tsa ho hokahanya hape.
  • MASTER_HEARTBEAT_PERIOD - nako ka metsotsoana ka mor'a moo monghali a romela lets'oao la ho otla ha pelo. Li-default ho isa halofo ea boleng slave_net_timeout.

Likhetho tsa 'mino oa liletsa:

  • DelayMasterPromotionIfSQLThreadNotUpToDate - haeba e lekana true, joale karolo e ka sehloohong e ke ke ea sebelisoa ho setšoantšo sa mokhethoa ho fihlela khoele ea SQL ea replica e phethetse litšebelisano tsohle tse sa sebelisoang ho tsoa ho Relay Log. Re sebelisa khetho ena ho qoba ho lahleheloa ke lits'ebetso ha likopi tsa batho kaofela li salla morao.
  • InstancePollSeconds - makhetlo a ho aha le ho nchafatsa topology.
  • RecoveryPollSeconds - khafetsa tlhahlobo ea topology. Haeba bothata bo fumanoa, ho tsosolosoa ha topology ho qala. Sena kamehla, e lekana le motsotsoana o le 1.

Node e 'ngoe le e' ngoe ea lihlopha e hlahlojoa ke 'mino oa liletsa hang ka nako InstancePollSeconds metsotsoana Ha bothata bo fumanoa, boemo ba lihlopha boa qobelloa nchafalitsoe, ebe joale ho etsoa qeto ea ho qetela ea ho hlaphoheloa. Ka ho leka lits'ebetso tse fapaneng tsa database le li-orchestrator, re khonne ho fokotsa nako ea karabelo le ea ho hlaphoheloa ho fihlela metsotsoana e 30.

teko ea teko

Re ile ra qala ho leka morero oa HA ka nts'etsopele ea sebaka sa heno benche ea teko le ho kenya tshebetsong ho eketsehileng dibakeng tsa teko le tlhahiso. Sebaka sa lehae se iketselitse ka botlalo ho latela Docker mme se u lumella ho etsa liteko tsa tlhophiso ea 'mino oa liletsa le marang-rang, ho lekanya sehlopha ho tloha ho li-server tse 2-3 ho isa ho tse' maloa, le ho etsa boikoetliso sebakeng se sireletsehileng.

Nakong ea boikoetliso, re khetha e 'ngoe ea mekhoa ea ho etsisa bothata: hang-hang thunya monghali a sebelisa kill -9, emisa ts'ebetso ka bonolo 'me u emise seva (docker-compose stop), etsisa mathata a marang-rang ka ho sebelisa iptables -j REJECT kapa iptables -j DROP. Re lebeletse liphetho tse latelang:

  • 'mino oa liletsa o tla lemoha mathata le monghali' me a ntlafatse topology ka metsotsoana e seng e fetang 10;
  • mokhoa oa ho hlaphoheloa o tla qala ka bohona: tlhophiso ea marang-rang e tla fetoha, karolo ea monghali e tla fetela ho replica, topology e tla tsosolosoa;
  • monghali e mocha o tla ngoloa, likopi tse phelang li ke ke tsa lahleha nakong ea ts'ebetso ea ho aha bocha;
  • data e tla qala ho ngolloa monghali e mocha ebe e kopitsoa;
  • Nako eohle ea ho hlaphoheloa e ke ke ea feta metsotsoana e 30.

Joalokaha u tseba, tsamaiso e ka 'na ea itšoara ka tsela e fapaneng libakeng tsa liteko le tsa tlhahiso ka lebaka la lisebelisoa tse fapaneng tsa hardware le marang-rang, liphapang tsa thepa ea maiketsetso le ea sebele, joalo-joalo. Ka hona, nako le nako re etsa boikoetliso maemong a nnete, ho hlahloba hore na sistimi e sebetsa joang ha khokahano ea marang-rang e lahleha kapa likarolo tsa eona ka bomong li senyeha. Nakong e tlang, re batla ho aha meralo ea motheo e ts'oanang hantle bakeng sa tikoloho ka bobeli le ho iketsetsa liteko tsa eona.

fumanoeng ke

Bophelo bo botle ba node ea mantlha ea polokelo ke e 'ngoe ea mesebetsi ea mantlha ea SRE le sehlopha sa ts'ebetso. Ts'ebetsong ea 'mino oa liletsa le tharollo ea HA e thehiloeng ho VIP e re lumelletse ho fihlela liphetho tse latelang:

  • ho lemoha ka tšeptjoang ha mathata ka topology ea sehlopha sa database;
  • karabelo e iketsang le e potlakileng ho liketsahalo tse amanang le master, ho fokotsa nako ea ho theoha ha sistimi.

Leha ho le joalo, tharollo e na le mefokolo le mefokolo ea eona:

  • ho lekanya morero oa HA ho litsi tse 'maloa tsa data ho tla hloka marang-rang a le mong L2 pakeng tsa bona;
  • Pele re abela VIP ho monghali e mocha, re hloka ho e lokolla ho ea khale. Ts'ebetso e latellana, e eketsang nako ea ho hlaphoheloa;
  • ho lokolla VIP ho hloka ho fihlella SSH ho seva, kapa mokhoa ofe kapa ofe oa ho letsetsa mekhoa e hole. Kaha seva kapa database e na le mathata a bakileng ts'ebetso ea ho hlaphoheloa, re ke ke ra netefatsa hore ho tlosoa ha VIP ho tla phethela ka katleho. 'Me sena se ka lebisa ponahalong ea li-server tse peli tse nang le aterese e tšoanang ea IP le bothata split brain.

Ho qoba split brain, u ka sebelisa mokhoa LETS'OA ("Shoot The Other Node In The Head"), e khethollang ka ho feletseng kapa e tima node ea bothata. Ho na le mekhoa e meng ea ho kenya ts'ebetsong ho fumaneha ha lihlopha tse phahameng: motsoako oa VIP le DNS, ho sibolloa ha litšebeletso le litšebeletso tsa moemeli, ho pheta-pheta ka mokhoa o lumellanang le mekhoa e meng e nang le mefokolo le melemo ea eona.

Ke buile ka mokhoa oa rona oa ho theha sehlopha sa MySQL failover. Ho bonolo ho kenya ts'ebetsong le ho fana ka boemo bo amohelehang ba ho tšepahala tlas'a maemo a hona joale. Ha tsamaiso eohle ka kakaretso le meralo ea motheo ka ho khetheha e ntse e tsoela pele, mokhoa ona o tla fetoha ntle le pelaelo.

Source: www.habr.com

Eketsa ka tlhaloso