Orchestrator thiab VIP raws li kev daws teeb meem HA rau MySQL pawg

Ntawm Citymobil peb siv MySQL database ua peb cov ntaub ntawv tseem ceeb tsis tu ncua. Peb muaj ntau pawg databases rau ntau yam kev pabcuam thiab lub hom phiaj.

Qhov muaj nyob tas li ntawm tus tswv yog qhov tseem ceeb qhia txog kev ua tau zoo ntawm tag nrho cov kab ke thiab nws tus kheej qhov chaw. Tsis siv neeg rov qab ua haujlwm nyob rau hauv qhov xwm txheej ntawm tus tswv tsis ua haujlwm zoo heev txo qhov xwm txheej teb lub sijhawm thiab lub sijhawm ua haujlwm. Hauv tsab xov xwm no, kuv yuav saib qhov muaj ntau (HA) tsim rau MySQL pawg raws li MySQL Orchestrator thiab virtual IP chaw nyob (VIP).

Orchestrator thiab VIP raws li kev daws teeb meem HA rau MySQL pawg

HA kev daws teeb meem raws li VIP

Ua ntej, kuv yuav qhia luv luv rau koj tias peb cov ntaub ntawv khaws cia yog dab tsi.

Peb siv cov txheej txheem rov ua dua qub nrog ib tus kws sau ntawv nkag tau thiab ntau yam nyeem nkaus xwb. Ib pawg tuaj yeem muaj tus tswv nruab nrab - cov node uas yog ob qho tib si replica thiab tus tswv rau lwm tus. Cov neeg siv khoom nkag mus rau cov ntawv luam tawm los ntawm HAProxy, uas tso cai rau txawm tias thauj khoom faib thiab ntsuas qhov yooj yim. Kev siv HAProxy yog vim muaj keeb kwm keeb kwm, thiab tam sim no peb tab tom hloov mus rau ProxySQL.

Replication yog ua nyob rau hauv semi-synchronous hom raws li GTID. Qhov no txhais tau hais tias tsawg kawg yog ib qho kev hloov pauv yuav tsum tau sau npe ua ntej nws txiav txim siab ua tiav. Hom kev rov ua dua no muab qhov sib npaug zoo ntawm kev ua haujlwm thiab cov ntaub ntawv kev nyab xeeb thaum muaj tus tswv ntawm qhov tsis ua haujlwm. Yeej, tag nrho cov kev hloov pauv yog pauv los ntawm tus tswv mus rau cov replicas siv Row Based Replication (RBR), tab sis qee qhov nodes tej zaum yuav muaj mixed binlog format.

Lub orchestrator ib ntus hloov kho lub xeev ntawm pawg topology, txheeb xyuas cov ntaub ntawv tau txais, thiab yog tias muaj teeb meem tshwm sim, nws tuaj yeem tsim cov txheej txheem rov ua haujlwm tsis siv neeg. Tus tsim tawm yog lub luag haujlwm rau cov txheej txheem nws tus kheej, txij li nws tuaj yeem siv ntau txoj hauv kev: raws li VIP, DNS, siv cov kev pabcuam tshawb nrhiav lossis cov txheej txheem sau tus kheej.

Ib txoj hauv kev yooj yim los kho tus tswv yog tias nws ua tsis tiav yog siv qhov chaw nyob VIP ntab.

Dab tsi koj yuav tsum paub txog qhov kev daws teeb meem no ua ntej mus tom ntej:

  • VIP yog qhov chaw nyob IP uas tsis cuam tshuam nrog lub cev sib txuas tshwj xeeb. Yog tias ib lub node ua tsis tau lossis thaum lub sijhawm tu, peb tuaj yeem hloov VIP mus rau lwm qhov kev pabcuam nrog sijhawm tsawg kawg nkaus.
  • Kev tso tawm thiab muab qhov chaw nyob IP virtual yog qhov pheej yig thiab ua haujlwm sai.
  • Txhawm rau ua haujlwm nrog VIP, koj xav tau nkag mus rau lub server ntawm SSH, lossis siv cov khoom siv tshwj xeeb, piv txwv li, keepalived.

Cia saib cov teeb meem tshwm sim nrog peb tus wizard thiab xav txog yuav ua li cas lub tshuab rov qab tsis siv neeg yuav tsum ua haujlwm.

Kev sib txuas hauv network rau tus tswv tau ploj mus, lossis muaj teeb meem tshwm sim ntawm qib kho vajtse, thiab lub server tsis muaj

  1. Lub orchestrator hloov kho cov pawg topology, txhua tus qauv qhia tias tus tswv tsis muaj. Lub orchestrator pib cov txheej txheem ntawm kev xaiv ib tug replica haum rau lub luag hauj lwm ntawm tus tshiab tswv thiab pib rov qab.
  2. Peb tab tom sim tshem VIP ntawm tus tswv qub - tsis muaj kev vam meej.
  3. Lub replica hloov mus rau lub luag haujlwm ntawm tus tswv. Lub topology tab tom rov tsim kho.
  4. Ntxiv qhov tshiab network interface nrog VIP. Txij li thaum nws tsis tuaj yeem tshem tawm VIP, peb pib xa cov lus thov hauv keeb kwm yav dhau los ARP tau txais txiaj ntsig. Hom kev thov / teb no tso cai rau koj hloov kho IP thiab MAC chaw nyob daim ntawv qhia ntawm cov keyboards txuas, yog li ceeb toom koj tias peb VIP tau tsiv mus. Qhov no minimizes qhov yuav tshwm sim split brain thaum rov qab los tus tswv qub.
  5. Txhua qhov kev sib txuas tshiab tam sim ntawd raug xa mus rau tus tswv tshiab. Cov kev sib txuas qub tsis ua haujlwm thiab rov hu rov qab rau hauv cov ntaub ntawv tau ua nyob rau hauv daim ntawv thov.

Tus neeg rau zaub mov ua haujlwm hauv hom qub, qhov ua tsis tiav tshwm sim ntawm qib DBMS

Lub algorithm zoo ib yam li cov ntaub ntawv dhau los: hloov kho cov topology thiab pib cov txheej txheem rov qab. Txij li thaum lub server muaj, peb ua tiav tso tawm VIP ntawm tus tswv qub, hloov mus rau tus tshiab, thiab xa ntau qhov kev thov ARP. Qhov ua tau rov qab los ntawm tus tswv qub yuav tsum tsis txhob cuam tshuam rau pawg rebuilt thiab kev ua haujlwm ntawm daim ntawv thov.

Lwm cov teeb meem

Ua tsis tiav ntawm replicas lossis intermediate masters tsis coj rau kev ua tsis siv neeg thiab yuav tsum tau muaj kev cuam tshuam los ntawm phau ntawv.

Lub virtual network interface yeej ib txwm ntxiv ib ntus, uas yog, tom qab lub server reboot, VIP tsis tau txais kev tso cai. Txhua qhov piv txwv ntawm cov ntaub ntawv pib hauv hom nyeem nkaus xwb los ntawm lub neej ntawd, tus kws tshaj lij hloov pauv tus tswv tshiab los sau thiab sim rau nruab read only ntawm tus tswv qub. Cov kev ua no yog tsom los txo qhov yuav tshwm sim split brain.

Cov teeb meem tuaj yeem tshwm sim thaum lub sijhawm rov ua haujlwm, uas yuav tsum tau ceeb toom los ntawm orchestrator UI ntxiv rau cov cuab yeej saib xyuas tus qauv. Peb tau nthuav dav REST API los ntawm kev ntxiv cov yam ntxwv no (PR tam sim no nyob rau hauv kev tshuaj xyuas).

Daim duab dav dav ntawm HA kev daws teeb meem tau nthuav tawm hauv qab no.

Orchestrator thiab VIP raws li kev daws teeb meem HA rau MySQL pawg

Xaiv tus tswv tshiab

Lub orchestrator ntse txaus thiab sim xaiv qhov zoo tshaj plaws replica raws li tus tswv tshiab raws li cov hauv qab no:

  • lub replica lags qab tus tswv;
  • MySQL version ntawm tus tswv thiab replica;
  • hom replication (RBR, SBR lossis sib xyaw);
  • qhov chaw nyob rau hauv tib los yog sib txawv cov ntaub ntawv chaw;
  • muaj errant GTID - kev hloov pauv uas tau ua tiav ntawm qhov hloov pauv thiab tsis nyob ntawm tus tswv;
  • kev cai xaiv kev cai kuj raug coj mus rau hauv tus account.

Tsis yog txhua tus cue yog tus neeg sib tw zoo tshaj plaws rau tus tswv. Piv txwv li, ib tug replica yuav siv tau los backup cov ntaub ntawv, los yog cov neeg rau zaub mov muaj ib tug weaker hardware configuration. Orchestrator txhawb nqa phau ntawv txoj cai uas koj tuaj yeem hloov kho koj tus neeg sib tw xaiv cov kev nyiam los ntawm feem ntau nyiam kom tsis quav ntsej.

Teb thiab rov qab lub sijhawm

Nyob rau hauv qhov xwm txheej ntawm qhov xwm txheej, nws yog ib qho tseem ceeb kom txo qis lub sijhawm poob qis, yog li cia peb xav txog MySQL tsis muaj feem cuam tshuam rau kev tsim thiab hloov kho ntawm pawg topology los ntawm tus kws qhia:

  • slave_net_timeout - tus naj npawb ntawm cov vib nas this thaum lub sij hawm replica tos rau cov ntaub ntawv tshiab los yog lub plawv dhia teeb liab los ntawm tus tswv ua ntej qhov kev sib txuas tau lees paub tias ploj thiab rov txuas dua. Tus nqi qis dua, qhov nrawm dua tuaj yeem txiav txim siab tias kev sib txuas lus nrog tus tswv tau tawg. Peb teem qhov nqi no rau 5 vib nas this.
  • MASTER_CONNECT_RETRY - tus naj npawb ntawm cov vib nas this ntawm kev sib txuas ntxiv. Thaum muaj teeb meem hauv network, tus nqi qis rau qhov ntsuas no yuav tso cai rau kev sib txuas sai sai thiab tiv thaiv cov txheej txheem rov qab los ntawm pawg pib. Tus nqi pom zoo yog 1 thib ob.
  • MASTER_RETRY_COUNT - tus lej siab kawg ntawm kev sib txuas ntxiv.
  • MASTER_HEARTBEAT_PERIOD - ncua sij hawm nyob rau hauv vib nas this tom qab uas tus tswv xa lub plawv dhia teeb liab. Defaults mus rau ib nrab tus nqi slave_net_timeout.

Orchestrator Parameters:

  • DelayMasterPromotionIfSQLThreadNotUpToDate - yog tias sib npaug true, ces tus tswv lub luag hauj lwm yuav tsis raug siv rau ntawm tus neeg sib tw replica kom txog rau thaum replica tus SQL xov tau ua tiav tag nrho cov unapplied muas ntawm lub Relay Log. Peb siv qhov kev xaiv no kom tsis txhob poob kev lag luam thaum txhua tus neeg sib tw replicas poob qab.
  • InstancePollSeconds - zaus ntawm lub tsev thiab hloov kho cov topology.
  • RecoveryPollSeconds - zaus ntawm topology tsom xam. Yog tias pom muaj teeb meem, kev rov qab topology pib. Qhov no tsis tu ncua, sib npaug li 1 vib nas this.

Txhua pawg node raug xaiv los ntawm tus kws qhia ua haujlwm ib zaug InstancePollSeconds vib nas this Thaum pom muaj teeb meem, lub xeev pawg raug yuam kho tshiab, thiab tom qab ntawd qhov kev txiav txim zaum kawg yog ua los ua kom rov zoo. Los ntawm kev sim nrog sib txawv database thiab orchestrator tsis, peb muaj peev xwm txo tau cov lus teb thiab rov qab lub sij hawm rau 30 vib nas this.

Test sawv

Peb pib sim HA lub tswv yim nrog kev txhim kho hauv zos kuaj lub rooj zaum thiab kev siv ntxiv hauv kev sim thiab kev tsim khoom ib puag ncig. Lub chaw muag khoom hauv zos tau ua tiav tag nrho raws li Docker thiab tso cai rau koj sim nrog kev teeb tsa ntawm tus kws tshaj lij thiab lub network, ntsuas pawg los ntawm 2-3 servers mus rau ntau lub kaum os, thiab ua haujlwm hauv ib puag ncig nyab xeeb.

Thaum lub sij hawm ce, peb xaiv ib qho ntawm cov teeb meem emulation txoj kev: instantly tua tus tswv siv kill -9, softly txiav cov txheej txheem thiab nres lub server (docker-compose stop), simulate network teeb meem siv iptables -j REJECT los yog iptables -j DROP. Peb cia siab tias cov txiaj ntsig hauv qab no:

  • tus orchestrator yuav ntes cov teeb meem nrog tus tswv thiab hloov kho lub topology tsis pub dhau 10 vib nas this;
  • Cov txheej txheem rov qab yuav pib pib: lub network teeb tsa yuav hloov pauv, lub luag haujlwm ntawm tus tswv yuav dhau mus rau qhov hloov pauv, lub topology yuav rov tsim dua;
  • tus tswv tshiab yuav sau tau, nyob replicas yuav tsis ploj thaum lub sij hawm rebuild txheej txheem;
  • cov ntaub ntawv yuav pib sau rau tus tswv tshiab thiab rov ua dua;
  • Lub sijhawm rov qab tag nrho yuav tsis pub dhau 30 vib nas this.

Raws li koj paub, lub kaw lus yuav coj txawv txawv nyob rau hauv kev sim thiab ntau lawm ib puag ncig vim txawv hardware thiab network configurations, sib txawv ntawm hluavtaws thiab tiag load, thiab lwm yam. Yog li ntawd, peb ib txwm ua ib qho kev tawm dag zog hauv cov xwm txheej tiag tiag, tshawb xyuas seb lub kaw lus coj li cas thaum kev sib txuas hauv network ploj lossis nws cov khoom ib leeg raug degraded. Nyob rau hauv lub neej yav tom ntej, peb xav tsim ib tug zoo tib yam infrastructure rau ob qho tib si ib puag ncig thiab automate nws cov kev sim.

tshawb pom

Kev noj qab haus huv ntawm lub ntsiab qhov chaw khaws cia yog ib qho ntawm cov haujlwm tseem ceeb ntawm SRE thiab pab pawg ua haujlwm. Kev siv lub orchestrator thiab HA kev daws teeb meem raws li VIP tau tso cai rau peb ua tiav cov txiaj ntsig hauv qab no:

  • txhim khu kev qha tshawb pom cov teeb meem nrog lub topology ntawm pawg database;
  • tsis siv neeg thiab ceev teb rau tus tswv-txog qhov xwm txheej, txo qhov system downtime.

Txawm li cas los xij, kev daws teeb meem muaj nws cov kev txwv thiab qhov tsis zoo:

  • scaling HA scheme rau ntau lub chaw cov ntaub ntawv yuav xav tau ib leeg L2 network ntawm lawv;
  • Ua ntej muab VIP rau tus tswv tshiab, peb yuav tsum tso nws ntawm tus qub. Cov txheej txheem yog ua ntu zus, uas ua rau lub sijhawm rov qab los;
  • Kev tso tawm VIP xav tau SSH nkag mus rau lub server, lossis lwm txoj hauv kev hu rau cov txheej txheem nyob deb. Txij li thaum lub server lossis database tab tom ntsib teeb meem uas ua rau cov txheej txheem rov qab los, peb tsis tuaj yeem paub tseeb tias qhov kev tshem tawm VIP yuav ua tiav. Thiab qhov no tuaj yeem ua rau pom ntawm ob lub servers nrog tib qhov chaw nyob IP virtual thiab muaj teeb meem split brain.

Kom zam split brain, koj tuaj yeem siv txoj kev STONITH ("Tua Lwm Node Hauv Lub Taub Hau"), uas cais tag nrho lossis cuam tshuam cov teeb meem node. Muaj lwm txoj hauv kev los siv cov pawg muaj ntau: kev sib xyaw ntawm VIP thiab DNS, kev pabcuam nrhiav pom thiab cov kev pabcuam npe, synchronous replication thiab lwm txoj hauv kev uas muaj lawv tus kheej qhov tsis zoo thiab qhov zoo.

Kuv tau tham txog peb txoj hauv kev los tsim MySQL failover pawg. Nws yog ib qho yooj yim rau kev siv thiab muab ib qho kev lees paub ntawm kev ntseeg tau raws li cov xwm txheej tam sim no. Raws li tag nrho cov kab ke hauv kev dav dav thiab kev tsim kho vaj tse tshwj xeeb, txoj hauv kev no yuav hloov zuj zus.

Tau qhov twg los: www.hab.com

Ntxiv ib saib