Orchestrator rau MySQL: yog vim li cas koj tsis tuaj yeem tsim qhov haujlwm ua txhaum cai yam tsis muaj nws

Txhua qhov project loj pib nrog ob peb servers. Thaum xub thawj muaj ib tus DB server, ces cov qhev tau ntxiv rau nws los ntsuas qhov kev nyeem ntawv. Thiab ces - nres! Muaj ib tug tswv, tab sis muaj ntau tus qhev; yog tias ib tug qhev tawm, ces txhua yam yuav zoo, tab sis yog tus tswv tawm, nws yuav phem: downtime, admins sim tsa lub server. Yuav ua li cas? Khaws ib tug tswv. Kuv tus npoj yaig Pavel twb tau sau txog qhov no tsab xov xwm, Kuv yuav tsis rov hais dua. Hloov chaw, kuv yuav qhia koj vim li cas koj xav tau Orchestrator rau MySQL!

Cia peb pib nrog cov lus nug tseem ceeb: "Yuav ua li cas peb hloov cov cai rau lub tshuab tshiab thaum tus tswv tawm?"

  • Kuv nyiam cov tswv yim nrog VIP (Virtual IP) tshaj plaws, peb yuav tham txog nws hauv qab no. Nws yog qhov yooj yim tshaj plaws thiab pom tseeb tshaj plaws, txawm hais tias nws muaj qhov txwv tsis pub muaj: tus tswv uas peb yuav tseg yuav tsum nyob hauv ntu L2 nrog lub tshuab tshiab, uas yog, peb tuaj yeem hnov ​​​​qab txog DC thib ob. Thiab, hauv txoj kev sib haum xeeb, yog tias koj ua raws li txoj cai uas L2 loj yog qhov phem, vim L2 tsuas yog ib lub khib, thiab L3 nyob nruab nrab ntawm cov racks, thiab cov tswv yim zoo li no muaj kev txwv ntau dua.
  • Koj tuaj yeem sau npe DNS hauv cov lej thiab daws nws los ntawm /etc/hosts. Qhov tseeb, yuav tsis muaj kev daws teeb meem. Qhov kom zoo dua ntawm cov tswv yim: tsis muaj qhov txwv tsis pub muaj tus yam ntxwv ntawm thawj txoj kev, uas yog, nws muaj peev xwm los teeb tsa tus ntoo khaub lig-DC. Tab sis tom qab ntawd cov lus nug pom tseeb tshwm sim: sai npaum li cas peb tuaj yeem xa qhov hloov pauv mus rau /etc/hosts ntawm Puppet-Ansible?
  • Koj tuaj yeem hloov txoj kev thib ob me ntsis: nruab caching DNS ntawm txhua lub vev xaib servers, dhau los ntawm cov cai yuav mus rau tus tswv database. Koj tuaj yeem teeb TTL 60 rau qhov nkag hauv DNS. Nws zoo nkaus li yog tias siv tau raug, txoj kev yog qhov zoo.
  • Lub tswv yim nrog kev pab nrhiav pom, implying siv Consul thiab lwm yam.
  • Ib qho kev xaiv nthuav nrog ProxySQL. Koj yuav tsum tau xa tag nrho cov tsheb mus rau MySQL los ntawm ProxySQL; ProxySQL nws tus kheej tuaj yeem txiav txim siab leej twg yog tus tswv. Los ntawm txoj kev, koj tuaj yeem nyeem txog ib qho ntawm cov kev xaiv rau kev siv cov khoom no hauv kuv Tshooj.

Tus sau ntawm Orchestrator, ua haujlwm hauv Github, thawj zaug siv thawj lub tswv yim nrog VIP, thiab tom qab ntawd hloov nws mus rau lub tswv yim nrog tus neeg sawv cev.

Tej yam infrastructure layout:

Orchestrator rau MySQL: yog vim li cas koj tsis tuaj yeem tsim qhov haujlwm ua txhaum cai yam tsis muaj nws
Kuv yuav piav qhia tam sim ntawd cov xwm txheej pom tseeb uas yuav tsum tau coj mus rau hauv tus account:

  • Qhov chaw nyob VIP yuav tsum tsis txhob tso npe rau hauv kev teeb tsa ntawm ib qho ntawm cov servers. Cia peb xav txog qhov xwm txheej: tus tswv rebooted, thiab thaum nws tab tom thauj khoom, Orchestrator tau mus rau hauv hom tsis ua haujlwm thiab ua rau ib tus qhev ua tus tswv; ces tus qub tswv sawv, thiab tam sim no VIP yog nyob rau ob lub tsheb. Qhov no phem.
  • Rau lub orchestrator, koj yuav tau sau ib tsab ntawv rau hu tus qub tswv thiab tus tshiab tswv. Ntawm tus tswv qub koj yuav tsum khiav ifdown, thiab ntawm tus tswv tshiab - ifup vip. Nws yuav zoo dua los suav nrog hauv tsab ntawv no tias thaum muaj qhov ua tsis tiav, qhov chaw nres nkoj ntawm tus tswv qub hloov pauv tsuas yog muab tua kom tsis txhob muaj kev sib cais.
  • Tom qab Orchestrator tau hu koj tsab ntawv thawj zaug tshem tawm VIP thiab / lossis tua qhov chaw nres nkoj ntawm qhov hloov pauv, thiab tom qab ntawd hu ua VIP raising tsab ntawv ntawm tus tswv tshiab, tsis txhob hnov ​​​​qab siv cov lus txib arping qhia txhua tus neeg tias VIP tshiab tam sim no ntawm no.
  • Txhua tus qhev yuav tsum muaj read_only=1, thiab sai li sai tau thaum koj txhawb tus qhev rau tus tswv, nws yuav tsum muaj read_only=0.
  • Tsis txhob hnov ​​​​qab tias txhua tus qhev uas peb tau xaiv rau qhov no tuaj yeem dhau los ua tus tswv (Orchestrator muaj tag nrho cov kev nyiam rau tus qhev los txiav txim siab ua tus neeg sib tw rau tus tswv tshiab hauv thawj qhov chaw, uas nyob rau hauv qhov chaw thib ob, thiab tus qhev twg yuav tsum. tsis raug xaiv nyob rau hauv txhua qhov xwm txheej tus tswv). Yog hais tias tus qhev dhau los ua tus tswv, ces lub nra ntawm tus qhev yuav nyob twj ywm rau ntawm nws thiab lub nra ntawm tus tswv yuav ntxiv, qhov no yuav tsum tau coj mus rau hauv tus account.

Vim li cas koj thiaj xav tau Orchestrator yog tias koj tsis muaj?

  • Orchestrator muaj cov neeg siv-phooj ywg graphical interface uas qhia tag nrho cov topology (saib screenshot hauv qab no).
  • Orchestrator tuaj yeem taug qab cov qhev twg yog qhov poob qab, thiab qhov twg rov ua dua feem ntau tau tawg (peb muaj cov ntawv txuas rau Orchestrator xa SMS).
  • Orchestrator qhia koj cov qhev twg muaj GTID yuam kev.

Orchestrator Interface:

Orchestrator rau MySQL: yog vim li cas koj tsis tuaj yeem tsim qhov haujlwm ua txhaum cai yam tsis muaj nws
GTID yog dab tsi?

Muaj ob qhov tseem ceeb rau Orchestrator ua haujlwm:

  • Nws yog qhov tsim nyog uas pseudo GTID tau qhib rau txhua lub tshuab hauv MySQL pawg; peb muaj GTID enabled.
  • Nws yog ib qho tsim nyog kom muaj ib hom binlogs nyob txhua qhov chaw, koj tuaj yeem siv cov lus. Peb muaj kev teeb tsa uas tus tswv thiab cov qhev feem ntau muaj Kab, thiab ob qho keeb kwm tseem nyob hauv hom Mixed. Yog li ntawd, Orchestrator tsuas yog tsis xav txuas cov qhev mus rau tus tswv tshiab.

Nco ntsoov tias qhov tseem ceeb tshaj plaws hauv kev tsim cov qhev yog nws txoj kev sib raug zoo nrog tus tswv! Yog tias koj muaj Global Transaction ID (GTID) tau qhib rau ntawm koj tus tswv thiab qhev, ces koj tuaj yeem siv gtid_subset muaj nuj nqi kom paub seb qhov kev thov tib yam li cov ntaub ntawv hloov pauv tau ua tiav ntawm cov tshuab no. Koj tuaj yeem nyeem ntxiv txog qhov no S, SΡ“S,.

Yog li, Orchestrator qhia koj los ntawm GTID yuam kev tias muaj kev hloov pauv ntawm tus qhev uas tsis nyob ntawm tus tswv. Vim li cas qhov no tshwm sim?

  • Read_only=1 tsis tau qhib rau ntawm tus qhev, ib tug neeg txuas thiab ua tiav daim ntawv thov hloov cov ntaub ntawv.
  • Super_read_only=1 tsis tau qhib rau tus qhev, tom qab ntawd tus thawj tswj hwm, tau tsis meej pem lub server, nkag mus thiab ua tiav qhov kev thov ntawd.
  • Yog tias koj coj mus rau hauv tus account ob lub ntsiab lus dhau los, ces muaj ib qho kev dag ntxiv: hauv MySQL, kev thov kom yaug binlogs kuj mus rau binlog, yog li thawj zaug flush, GTID errant yuav tshwm sim rau tus tswv thiab txhua tus qhev. Yuav ua li cas zam qhov no? Perona-5.7.25-28 tau qhia txog binlog_skip_flush_commands=1 chaw, uas txwv tsis pub sau ntawv yaug rau binlogs. Muaj ib qho tsim los ntawm mysql.com lub vev xaib kab laum.

Cia kuv sau tag nrho cov saum toj no. Yog tias koj tsis xav siv Orchestrator hauv hom tsis tau, ces muab tso rau hauv hom kev soj ntsuam. Tom qab ntawd koj yuav ib txwm muaj ua ntej koj ob lub qhov muag ib daim ntawv qhia ntawm kev sib cuam tshuam ntawm MySQL cov cav tov thiab cov ntaub ntawv pom txog hom kev rov ua dua tshiab ntawm txhua lub tshuab, seb cov qhev puas poob qab, thiab qhov tseem ceeb tshaj, lawv zoo npaum li cas nrog tus tswv!

Cov lus nug pom tseeb yog: "Yuav ua li cas Orchestrator ua haujlwm?" Nws yuav tsum xaiv tus tswv tshiab los ntawm cov qhev tam sim no, thiab tom qab ntawd rov txuas txhua tus qhev rau nws (qhov no yog qhov xav tau GTID; yog tias koj siv cov txheej txheem qub nrog binlog_name thiab binlog_pos, tom qab ntawd hloov tus qhev los ntawm tus tswv tam sim no mus rau tus tshiab. yooj yim ua tsis tau!). Ua ntej peb muaj Orchestrator, kuv ib zaug yuav tsum ua txhua yam no manually. Tus tswv qub tau dai vim yog tus buggy Adaptec maub los; nws muaj txog 10 tus qhev. Kuv yuav tsum tau hloov VIP los ntawm tus tswv mus rau ib tug ntawm cov qhev thiab reconnect tag nrho lwm cov qhev rau nws. Muaj pes tsawg lub consoles kuv tau qhib, pes tsawg cov lus txib ib txhij kuv tau nkag mus ... Kuv yuav tsum tau tos kom txog 3 teev sawv ntxov, tshem lub nra ntawm txhua tus qhev tshwj tsis yog ob, ua thawj lub tshuab tawm ntawm ob tus tswv, tam sim txuas lub tshuab thib ob. rau nws, yog li muab tag nrho lwm cov qhev rau tus tswv tshiab thiab xa rov qab lub nra. Zuag qhia tag nrho, txaus siab ...

Orchestrator ua haujlwm li cas thaum nws nkag mus rau hauv hom tsis ua haujlwm? Qhov no yog qhov yooj yim tshaj plaws piav qhia los ntawm ib qho piv txwv ntawm qhov xwm txheej uas peb xav ua kom tus tswv muaj zog dua, lub tshuab niaj hnub ntau dua li peb muaj tam sim no.

Orchestrator rau MySQL: yog vim li cas koj tsis tuaj yeem tsim qhov haujlwm ua txhaum cai yam tsis muaj nws
Daim duab qhia qhov nruab nrab ntawm cov txheej txheem. Dab tsi tau ua tiav txog qhov no? Peb tau hais tias peb xav ua qee tus qhev tus tswv tshiab, Orchestrator pib yooj yim rov txuas tag nrho lwm cov qhev rau nws, nrog tus tswv tshiab ua lub tshuab xa mus. Nrog rau cov tswv yim no, tsis muaj qhov yuam kev tshwm sim, txhua tus qhev ua haujlwm, Orchestrator tshem tawm VIP los ntawm tus tswv qub, hloov mus rau tus tshiab, ua read_only=0 thiab tsis nco qab txog tus tswv qub. Txhua tus! Lub sijhawm poob ntawm peb qhov kev pabcuam yog lub sijhawm hloov pauv VIP, uas yog 2-3 vib nas this.

Yog tag nrho rau hnub no, ua tsaug rau sawv daws. Yuav muaj ib tsab xov xwm thib ob txog Orchestrator sai sai no. Nyob rau hauv lub npe nrov Soviet zaj duab xis "Garage," ib tug ua cim hais tias, "Kuv yuav tsis mus nrhiav nrog nws!" Yog li, Orchestrator, Kuv yuav nrog koj mus nrhiav!

Tau qhov twg los: www.hab.com

Ntxiv ib saib