Orchestrator na VIP dị ka ngwọta HA maka ụyọkọ MySQL

Na Citymobil anyị na-eji nchekwa data MySQL dịka nchekwa data anyị na-adịgide adịgide. Anyị nwere ọtụtụ ụyọkọ nchekwa data maka ọrụ na ebumnuche dị iche iche.

Nnweta mgbe nile nke nna ukwu bụ ihe ngosi dị oke egwu nke arụmọrụ nke usoro dum na akụkụ ya n'otu n'otu. Mgbake ụyọkọ akpaaka ma ọ bụrụ na ọdịda nna ukwu na-ebelata nke ukwuu oge nzaghachi ihe omume na oge ọdịda sistemụ. N'ime edemede a, m ga-eleba anya na nhazi dị elu (HA) maka ụyọkọ MySQL dabere na MySQL Orchestrator na adreesị IP mebere (VIP).

Orchestrator na VIP dị ka ngwọta HA maka ụyọkọ MySQL

HA ngwọta dabere na VIP

Nke mbụ, m ga-agwa gị nkenke ihe usoro nchekwa data anyị bụ.

Anyị na-eji atụmatụ mmegharị ochie nwere otu nna-ukwu nwere ike ịnweta yana ọtụtụ oyiri naanị ọgụgụ. Otu ụyọkọ nwere ike ịnwe nna ukwu etiti - ọnụ nke bụ ma oyiri na nna ukwu maka ndị ọzọ. Ndị ahịa na-enweta ụdị oyiri site na HAProxy, nke na-enye ohere maka nkesa ibu na ịdị mfe. Ojiji nke HAProxy bụ n'ihi akụkọ ihe mere eme, na anyị nọ ugbu a na usoro ịkwaga ProxySQL.

A na-eme mmegharị ahụ n'ụdị ọkara-synchronous dabere na GTID. Nke a pụtara na opekata mpe otu oyiri ga-abanyerịrị azụmahịa tupu ewere ya na ọ ga-aga nke ọma. Ụdị mmegharịgharị a na-enye nguzozi kachasị mma n'etiti arụmọrụ yana nchekwa data ma ọ bụrụ na ọdịda oghere nke ukwu. N'ụzọ bụ isi, a na-ebufe mgbanwe niile site na nna ukwu gaa na oyiri site na iji Row Based Replication (RBR), ma ụfọdụ ọnụ nwere ike inwe mixed binlog format.

Onye na-agụ egwú na-emelite ọnọdụ nke ụyọkọ topology kwa oge, na-enyocha ozi enwetara, ma ọ bụrụ na nsogbu bilitere, ọ nwere ike ịmalite usoro mgbake na-akpaghị aka. Onye nrụpụta ahụ na-ahụ maka usoro ahụ n'onwe ya, ebe ọ bụ na enwere ike itinye ya n'ụzọ dị iche iche: dabere na VIP, DNS, na-eji ọrụ nchọpụta ọrụ ma ọ bụ usoro edere onwe ya.

Otu ụzọ dị mfe iji weghachi nna ukwu ma ọ bụrụ na ọ daa bụ iji adreesị VIP na-ese n'elu mmiri.

Ihe ị kwesịrị ịma gbasara ngwọta a tupu ịga n'ihu:

  • VIP bụ adreesị IP nke anaghị ejikọta ya na netwọkụ netwọkụ nkịtị. Ọ bụrụ na ọnụ na-ada ma ọ bụ n'oge a na-arụzi ọrụ, anyị nwere ike ịgbanwe VIP gaa na akụrụngwa ọzọ na obere oge nkwụsị.
  • Ịtọhapụ na ịnye adreesị IP mebere bụ ọrụ dị ọnụ ala na ngwa ngwa.
  • Iji soro VIP rụọ ọrụ, ịchọrọ ịnweta sava site na SSH, ma ọ bụ iji ngwa pụrụ iche, dịka ọmụmaatụ, keepalived.

Ka anyị lelee nsogbu ndị nwere ike ime na ọkachamara anyị wee chee ka usoro mgbake akpaka kwesịrị isi rụọ ọrụ.

Njikọ netwọkụ na nna ukwu apụọla, ma ọ bụ nsogbu ebilitela na ọkwa ngwaike, ma ihe nkesa adịghị.

  1. Onye na-agụ egwú na-emelite topology ụyọkọ, ụdị nke ọ bụla na-akọ na nna ukwu adịghị. Onye na-agụ egwú na-amalite usoro nke ịhọrọ oyiri kwesịrị ekwesị maka ọrụ nke nna ukwu ọhụrụ wee malite mgbake.
  2. Anyị na-agbalị iwepụ VIP na ochie nna ukwu - na-enweghị ihe ịga nke ọma.
  3. Ihe oyiri ahụ na-atụgharị gaa n'ọrụ nna ukwu. A na-ewughachi topology.
  4. Na-agbakwụnye interface netwọk ọhụrụ na VIP. Ebe ọ bụ na ọ gaghị ekwe omume iwepụ VIP, anyị na-amalite izipu arịrịọ kwa oge n'azụ ARP na-enweghị atụ. Ụdị arịrịọ / nzaghachi a na-enye gị ohere imelite tebụl maapụ adreesị IP na MAC na mgbanaka ejikọrọ, si otú ahụ gwa gị na VIP anyị akwagala. Nke a na-ebelata ohere ahụ split brain mgbe ị na-alọghachi nna ukwu ochie.
  5. Njikọ ọhụrụ niile na-ebute ozugbo gaa na nna ukwu ọhụrụ. Njikọ ochie na-ada ma kpọọ oku ugboro ugboro na nchekwa data na ọkwa ngwa.

Ihe nkesa na-arụ ọrụ na ọnọdụ nkịtị, ọdịda mere na ọkwa DBMS

Algọridim dị ka ikpe gara aga: imelite topology na ịmalite usoro mgbake. Ebe ọ bụ na ihe nkesa dị, anyị na-ahapụ VIP nke ọma na nna ukwu ochie, nyefee ya na nke ọhụrụ, ma zipụ ọtụtụ arịrịọ ARP. Nlaghachi nke nna ukwu ochie ekwesịghị imetụta ụyọkọ arụgharịrị na ọrụ nke ngwa ahụ.

Nsogbu ndị ọzọ

Ọdịda nke oyiri ma ọ bụ nna ukwu etiti anaghị eduga ime omume akpaka ma chọọ enyemaka aka.

A na-agbakwunye interface netwọk mebere nwa oge, ya bụ, ka emechara ihe nkesa, anaghị ekenye VIP ozugbo. Ihe atụ nchekwa data ọ bụla na-amalite na ọnọdụ ọgụgụ naanị site na ndabara, onye na-agụ egwú na-agbanwe ozugbo nna ukwu ọhụrụ ka ọ dee wee gbalịa ịwụnye. read only na agadi nna ukwu. Ihe omume ndị a bụ iji belata ohere split brain.

Nsogbu nwere ike ibilite n'oge usoro mgbake, nke a ga-agwakwa ya site na onye na-agụ egwú UI na mgbakwunye na ngwaọrụ nlekota ọkọlọtọ. Anyị agbasawanyela REST API site na ịgbakwunye atụmatụ a (PR ugbu a na-enyocha).

E gosipụtara eserese izugbe nke ngwọta HA n'okpuru.

Orchestrator na VIP dị ka ngwọta HA maka ụyọkọ MySQL

Ịhọrọ nna ukwu ọhụrụ

Onye na-agụ egwú ahụ maara nke ọma ma gbalịa ịhọrọ kacha adabara oyiri dika nna ukwu ohuru dika usoro ndia si di:

  • oyiri lags n'azụ nna ukwu;
  • Ụdị MySQL nke nna ukwu na oyiri;
  • ụdị mmeghari (RBR, SBR ma ọ bụ agwakọta);
  • ọnọdụ na otu ma ọ bụ dị iche iche data center;
  • nnweta errant GTID - azụmahịa ndị e gburu na oyiri na-abụghị na nna ukwu;
  • A na-eburukwa n'uche iwu nhọrọ omenala.

Ọ bụghị akara ọ bụla bụ ezigbo onye ndoro-ndoro maka nna ukwu. Dịka ọmụmaatụ, enwere ike iji oyiri iji kwado data, ma ọ bụ ihe nkesa nwere nhazi ngwaike adịghị ike. Onye na-akụ ọkpọ na-akwado Iwu akwụkwọ ntuziaka nke ị nwere ike iji hazie mmasị nhọpụta nke onye ndoro-ndoro gị site na ọkacha mmasị na-eleghara anya.

Nzaghachi na oge mgbake

N'ọnọdụ nke ihe merenụ, ọ dị mkpa iwelata oge ọdịda sistemụ, yabụ ka anyị tụlee paramita MySQL nke na-emetụta mmepụta na mmelite nke ụyọkọ topology site n'aka onye na-agụ egwú:

  • slave_net_timeout - ọnụ ọgụgụ nke sekọnd n'oge oyiri na-echere data ọhụrụ ma ọ bụ mgbama obi na-abịa site na nna ukwu tupu njikọ ahụ amata dị ka furu efu wee jikọọ ọzọ. Dị ka ọnụ ahịa dị ala, ngwa ngwa oyiri nwere ike ikpebi na nkwurịta okwu na nna ukwu agbajiri. Anyị debere uru a na sekọnd ise.
  • MASTER_CONNECT_RETRY - ọnụọgụ nke sekọnd n'etiti mbọ ijikọ. N'ọnọdụ nsogbu netwọkụ, ọnụ ala dị ala maka oke a ga-ekwe ka njikọta ngwa ngwa ma gbochie usoro mgbake ụyọkọ ịmalite. Uru akwadoro bụ 1 sekọnd.
  • MASTER_RETRY_COUNT - ọnụ ọgụgụ kachasị nke mbọ njikọ.
  • MASTER_HEARTBEAT_PERIOD - etiti oge n'ime sekọnd mgbe onye nwe ya na-eziga mgbama mgbama obi. Emepụtara na ọkara uru slave_net_timeout.

Paramita onye nhazi:

  • DelayMasterPromotionIfSQLThreadNotUpToDate - ọ bụrụ nha nha true, mgbe ahụ, a gaghị etinye ọrụ nna ukwu na oyiri nke nwa akwukwo ruo mgbe eri SQL nke oyiri agwụla azụmahịa niile na-adịghị etinye na Relay Log. Anyị na-eji nhọrọ a iji zere ịla azụ ahịa mgbe ihe nnochite anya niile dabara n'azụ.
  • InstancePollSeconds - ugboro nke iwulite na imelite topology.
  • RecoveryPollSeconds - ugboro nke topology analysis. Ọ bụrụ na achọpụtara nsogbu, a na-ebute mgbake topology. Nke a na-adịgide adịgide, hà 1 sekọnd.

Ndị na-agụ egwú na-agbapụta ọnụ ụyọkọ ọ bụla otu ugboro InstancePollSeconds sekọnd Mgbe achọpụtara nsogbu, a na-amanye steeti ụyọkọ emelitere, wee mee mkpebi ikpeazụ iji mee mgbake. Site n'inyocha nchekwa data dị iche iche na paramita ndị na-akụ egwú, anyị nwere ike ibelata nzaghachi na oge mgbake na 30 sekọnd.

Nwale oche

Anyị malitere ịnwale atụmatụ HA na mmepe nke mpaghara nwale oche na mmejuputa n'ihu na gburugburu ule na mmepụta. A na-emezi ntọala mpaghara ahụ nke ọma dabere na Docker ma na-enye gị ohere ịnwale nhazi nke onye na-agụ egwú na netwọkụ, gbasaa ụyọkọ ahụ site na sava 2-3 ruo ọtụtụ iri na abuo, wee mee mmega ahụ na gburugburu ebe nchekwa.

N'oge mmega ahụ, anyị na-ahọrọ otu n'ime usoro nṅomi nsogbu: were gbaa onye nwe ya ozugbo kill -9, jiri nwayọọ kwụsị usoro ahụ ma kwụsị ihe nkesa (docker-compose stop), iji megharịa nsogbu netwọkụ iptables -j REJECT ma ọ bụ iptables -j DROP. Anyị na-atụ anya nsonaazụ ndị a:

  • onye na-agụ egwú ga-achọpụta nsogbu na nna ukwu ma melite topology n'ime ihe karịrị 10 sekọnd;
  • usoro mgbake ga-amalite na-akpaghị aka: nhazi netwọk ga-agbanwe, ọrụ nke nna ukwu ga-agafe na oyiri, a ga-ewughachi topology;
  • Nna-ukwu ọhụrụ ahụ ga-abụ ihe a na-ede ede, akwụkwọ ndụ ndụ agaghị efu n'oge usoro nrụghachi;
  • data ga-amalite idegara nna ukwu ọhụrụ ahụ ma megharịa ya;
  • Ngụkọta oge mgbake agaghị agafe 30 sekọnd.

Dị ka ị maara, usoro ahụ nwere ike ịkpa àgwà dị iche iche na ule na mmepụta gburugburu n'ihi ngwaike dị iche iche na nhazi netwọk, ọdịiche dị na synthetic na ezigbo ibu, wdg. Ya mere, anyị na-eme mmega ahụ kwa oge n'ọnọdụ dị adị, na-enyocha ka usoro ahụ si eme mgbe njikọ netwọk na-efunahụ ma ọ bụ akụkụ ya nke ọ bụla mebiri emebi. N'ọdịniihu, anyị chọrọ iwulite akụrụngwa yiri nke ahụ maka ma gburugburu ma megharịa nnwale ya.

Nchoputa

Ahụ ike nke isi usoro nchekwa nchekwa bụ otu n'ime ebumnuche ndị SRE na otu ọrụ. Mmejuputa nke orchesterrator na ngwọta HA dabere na VIP nyere anyị ohere iru nsonaazụ ndị a:

  • nchọpụta a pụrụ ịdabere na ya nke nsogbu na topology nke ụyọkọ nchekwa data;
  • nzaghachi akpaaka na ngwa ngwa maka ihe omume metụtara nna ukwu, na-ebelata oge ọdịda sistemụ.

Otú ọ dị, ngwọta ya nwere njedebe na adịghị ike ya:

  • ibelata atụmatụ HA na ọtụtụ ebe data ga-achọ otu netwọk L2 n'etiti ha;
  • Tupu ikenye VIP na nna ukwu ọhụrụ, anyị kwesịrị ịhapụ ya na nke ochie. Usoro ahụ bụ usoro, nke na-abawanye oge mgbake;
  • ịtọhapụ VIP chọrọ ịnweta SSH na sava ahụ, ma ọ bụ usoro ọ bụla ọzọ nke ịkpọ usoro dịpụrụ adịpụ. Ebe ọ bụ na ihe nkesa ma ọ bụ nchekwa data na-enwe nsogbu ndị kpatara usoro mgbake ahụ, anyị enweghị ike ijide n'aka na mwepụ VIP ga-emecha nke ọma. Na nke a nwere ike iduga ọdịdị nke sava abụọ nwere otu adreesị IP mebere na nsogbu split brain.

Iji zere split brain, ị nwere ike iji usoro ahụ STONITH ("Gbanye ọnụ ụzọ ọzọ n'isi"), nke na-ekewapụ ma ọ bụ gbanyụọ ọnụ nsogbu ahụ kpamkpam. Enwere ụzọ ndị ọzọ isi mejuputa nnweta dị elu nke ụyọkọ: ngwakọta nke VIP na DNS, nchọpụta ọrụ na ọrụ proxy, mmegharị mmekọrịta na ụzọ ndị ọzọ nwere ọghọm na uru nke ha.

Ekwuru m maka ụzọ anyị si ekepụta ụyọkọ ọdịda MySQL. Ọ dị mfe iji mejuputa ma na-enye ọkwa a pụrụ ịdabere na ya n'okpuru ọnọdụ dị ugbu a. Ka usoro dum n'ozuzu ya na akụrụngwa na-etolite, usoro a ga-enwe ike ịmalite.

isi: www.habr.com

Tinye a comment