Orchestrator no MySQL: no ke aha ʻaʻole hiki iā ʻoe ke kūkulu i kahi papahana hoʻomanawanui me ka ʻole

Hoʻomaka kekahi papahana nui me ʻelua mau kikowaena. I ka wā mua aia hoʻokahi kikowaena DB, a laila hoʻohui ʻia nā kauā i laila e hoʻonui i ka heluhelu. A laila - kū! Hookahi no haku, he nui na kauwa; inā haʻalele kekahi o nā kauā, a laila e maikaʻi nā mea a pau, akā inā haʻalele ka haku, hewa ia: downtime, hoʻāʻo nā admins e hoʻokiʻekiʻe i ke kikowaena. He aha ka hana? Mālama i haku. Ua kākau mua koʻu hoa hana ʻo Pavel e pili ana i kēia ʻO kahi mea kākau, ʻAʻole au e hana hou. Ma kahi, e haʻi wau iā ʻoe i ke kumu e pono ai ʻoe i ka Orchestrator no MySQL!

E hoʻomaka kākou me ka nīnau nui: "Pehea mākou e hoʻololi ai i ke code i kahi mīkini hou ke haʻalele ka haku?"

  • Makemake au i ka papahana me VIP (Virtual IP), e kamaʻilio mākou ma lalo. ʻO ia ka mea maʻalahi a maopopo loa, ʻoiai he palena maopopo ia: ʻo ka haku a mākou e mālama ai pono ma ka māhele L2 me ka mīkini hou, ʻo ia hoʻi, hiki iā mākou ke poina e pili ana i ka lua DC. A, ma ke ʻano ʻoluʻolu, inā ʻoe e hahai i ke kānāwai he hewa ka L2 nui, no ka mea, ʻo L2 wale nō i kēlā me kēia pahu, a ʻo L3 ma waena o nā pā, a ʻoi aku ka nui o nā kaohi o ia ʻano.
  • Hiki iā ʻoe ke kākau i kahi inoa DNS ma ke code a hoʻoholo ma o /etc/hosts. ʻOiaʻiʻo, ʻaʻohe hoʻoholo. ʻO ka maikaʻi o ka papahana: ʻaʻohe palena palena o ke ʻano mua, ʻo ia hoʻi, hiki ke hoʻonohonoho i kahi cross-DC. Akā, ua kū mai ka nīnau maopopo: pehea ka wikiwiki e hiki ai iā mākou ke hāʻawi i ka loli i /etc/hosts ma o Puppet-Ansible?
  • Hiki iā ʻoe ke hoʻololi iki i ke ala ʻelua: e hoʻokomo i ka cache DNS ma nā kikowaena pūnaewele āpau, kahi e hele ai ke code i ka waihona kumu. Hiki iā ʻoe ke hoʻonohonoho i ka TTL 60 no kēia komo ʻana ma DNS. Me he mea lā inā hoʻokō pololei, maikaʻi ke ʻano.
  • ʻO kahi papahana me ka ʻike lawelawe, e hōʻike ana i ka hoʻohana ʻana iā Consul a etcd.
  • He koho hoihoi me ProxySQL. Pono ʻoe e ala i nā kaʻa āpau i MySQL ma o ProxySQL; Hiki iā ProxySQL ponoʻī ke hoʻoholo ʻo wai ka haku. Ma ke ala, hiki iā ʻoe ke heluhelu e pili ana i kekahi o nā koho no ka hoʻohana ʻana i kēia huahana i kaʻu 'ōlelo.

ʻO ka mea kākau o Orchestrator, e hana ana ma Github, ua hoʻokō mua i ka papahana mua me VIP, a laila hoʻololi iā ia i kahi hoʻolālā me ka consul.

ʻO ka hoʻolālā hana maʻamau:

Orchestrator no MySQL: no ke aha ʻaʻole hiki iā ʻoe ke kūkulu i kahi papahana hoʻomanawanui me ka ʻole
E wehewehe koke wau i nā kūlana maopopo e pono e noʻonoʻo ʻia:

  • ʻAʻole pono e hoʻopaʻa inoa ʻia ka helu VIP ma ka config ma kekahi o nā kikowaena. E noʻonoʻo kākou i kahi kūlana: hoʻomaka hou ka haku, a ʻoiai e hoʻouka ana, ua hele ʻo Orchestrator i ke ʻano failover a hoʻolilo i kekahi o nā kauā i haku; a laila, ala mai ka haku kahiko, a i kēia manawa aia ka VIP ma luna o ʻelua kaʻa. He ino keia.
  • No ka mea hoʻokani pila, pono ʻoe e kākau i palapala no ke kāhea ʻana i ka haku kahiko a me ka haku hou. Ma ka haku kahiko pono ʻoe e holo ifdown, a ma luna o ka haku hou - ifup vip. He mea maikaʻi nō hoʻi e hoʻokomo i loko o kēia ʻatikala inā loaʻa kahi failover, ua hoʻopau wale ʻia ke awa ma ke kua o ka haku kahiko e pale aku ai i ka splitbrain.
  • Ma hope o ka hea ʻana o Orchestrator i kāu palapala e wehe mua i ka VIP a / a i ʻole e hoʻopau i ke awa ma ke kuapo, a laila kapa ʻia ʻo ka VIP hoʻokiʻekiʻe ʻana ma ka haku hou, mai poina e hoʻohana i ke kauoha arping e haʻi aku i nā mea āpau i kēia manawa ka VIP hou. maanei.
  • Pono nā kauā a pau i read_only=1, a i kou hoʻolaha ʻana i ke kauā i ka haku, pono ʻo read_only=0.
  • Mai poina i kēlā me kēia kauā a mākou i koho ai no kēia mea hiki ke lilo i haku (Orchestrator kahi ʻano makemake holoʻokoʻa no ke kauā e noʻonoʻo ai ma ke ʻano he moho no ka haku hou ma ka mua, ʻo ia ma ka lua, a ʻo ke kauā e pono ai. ʻaʻole e koho ʻia ma lalo o nā kūlana master). Inā lilo ke kauā i haku, a laila e kau ka haʻawe o ke kauā ma luna ona a hoʻohui ʻia ka ukana o ka haku, pono e noʻonoʻo ʻia kēia.

No ke aha ʻoe e makemake ai i ka Orchestrator inā ʻaʻohe āu?

  • Loaʻa i ka Orchestrator kahi kiʻi kiʻi hoʻohana maikaʻi loa e hōʻike ana i ka topology holoʻokoʻa (e nānā i ke kiʻi ma lalo).
  • Hiki i ka Orchestrator ke nānā i nā kauā e lohi nei, a ma kahi i haki ʻia ai ka hoʻopiʻi ʻana (ua loaʻa iā mākou nā palapala i pili iā Orchestrator no ka hoʻouna ʻana i ka SMS).
  • Hōʻike ʻo Orchestrator iā ʻoe i nā kauā he hewa GTID.

ʻO ka mea hoʻokani pila:

Orchestrator no MySQL: no ke aha ʻaʻole hiki iā ʻoe ke kūkulu i kahi papahana hoʻomanawanui me ka ʻole
He aha ka hewa o GTID?

ʻElua mau koi nui no ka Orchestrator e hana:

  • Pono e hoʻohana ʻia ka pseudo GTID ma nā mīkini āpau i ka pūʻulu MySQL; ua hoʻohana ʻia iā GTID.
  • Pono e hoʻokahi ʻano binlogs ma nā wahi āpau, hiki iā ʻoe ke hoʻohana i ka ʻōlelo. Loaʻa iā mākou kahi hoʻonohonoho i loaʻa ai i ka haku a me ka hapa nui o nā kauā i ka Row, a ʻelua mau mōʻaukala i noho i ke ʻano Mixed. ʻO ka hopena, ʻaʻole makemake ʻo Orchestrator e hoʻopili i kēia mau kauā i ka haku hou.

E hoʻomanaʻo ʻo ka mea nui loa i ke kauā hana ʻo ia ke kūlike me ka haku! Inā loaʻa iā ʻoe ka Global Transaction ID (GTID) ma kāu haku a me kāu kauā, a laila hiki iā ʻoe ke hoʻohana i ka hana gtid_subset e ʻike inā ua hoʻokō maoli ʻia nā noi like no nā hoʻololi ʻikepili ma kēia mau mīkini. Hiki iā ʻoe ke heluhelu hou aku e pili ana i kēia maanei.

No laila, hōʻike ʻo Orchestrator iā ʻoe ma o ka hewa GTID aia nā hana ma ke kauā ʻaʻole ma ka haku. No ke aha kēia hana?

  • Read_only=1 ʻaʻole hiki ke kauā, pili kekahi a hoʻopau i kahi noi e hoʻololi i ka ʻikepili.
  • ʻAʻole hiki ke Super_read_only=1 i ke kauā, a laila, ua huikau ka luna hoʻomalu i ke kikowaena, a komo i loko a hoʻokō i ke noi ma laila.
  • Inā ʻoe e noʻonoʻo i nā helu ʻelua ma mua, a laila aia kahi hoʻopunipuni hou aʻe: ma MySQL, hele pū kekahi noi e holoi i nā binlogs i ka binlog, no laila i ka flush mua, e ʻike ʻia kahi hewa GTID ma luna o ka haku a me nā kauā a pau. Pehea e pale aku ai i kēia? Ua hoʻokomo ʻo Perona-5.7.25-28 i ka hoʻonohonoho binlog_skip_flush_commands=1, e pāpā ana i ke kākau ʻana i ka flush i nā binlogs. Aia kahi mea i hoʻokumu ʻia ma ka pūnaewele mysql.com ʻino.

E hōʻuluʻulu au i nā mea a pau i luna. Inā ʻaʻole ʻoe makemake e hoʻohana i ka Orchestrator ma ke ʻano failover, a laila e kau i ke ʻano nānā. A laila e loaʻa mau i mua o kou mau maka kahi palapala ʻāina o ka launa pū ʻana o nā mīkini MySQL a me ka ʻike ʻike e pili ana i ke ʻano o ka replication ma kēlā me kēia mīkini, inā e lohi ana nā kauā, a ʻo ka mea nui loa, pehea lākou e kūlike me ka haku!

ʻO ka nīnau maopopo: "Pehea e hana ai ʻo Orchestrator?" Pono ʻo ia e koho i haku hou mai nā kauā o kēia manawa, a laila hoʻohui hou i nā kauā a pau iā ia (ʻo ia ke kumu o ka GTID; inā ʻoe e hoʻohana i ka mīkini kahiko me binlog_name a me binlog_pos, a laila hoʻololi i kahi kauā mai ka haku o kēia manawa i kahi hou. ʻaʻole hiki ke hoʻokahi!). Ma mua o ka loaʻa ʻana iā Orchestrator, pono wau e hana i kēia me ka lima. Ua kau ʻia ka haku kahiko ma muli o kahi mea hoʻokele kaʻa Adaptec; aia ma kahi o 10 mau kauā. Pono wau e hoʻololi i ka VIP mai ka haku i kekahi o nā kauā a hoʻohui hou i nā kauā ʻē aʻe iā ia. ʻEhia mau consoles aʻu i wehe ai, ehia mau kauoha like aʻu i komo ai ... Pono wau e kali a hiki i ka hola 3, e wehe i ka ukana mai nā kauā a pau koe ʻelua, e hana i ka mīkini mua o nā haku ʻelua, e hoʻopili koke i ka mīkini lua iā ia, e hoʻopili i nā kauā ʻē aʻe a pau i ka haku hou a hoʻihoʻi i ka ukana. ʻO ka holoʻokoʻa, weliweli ...

Pehea e hana ai ʻo Orchestrator i ka wā e hele ai i ke ʻano failover? Hōʻike maʻalahi kēia e kahi laʻana o kahi kūlana kahi e makemake ai mākou e hana i ka haku i ʻoi aku ka ikaika, ʻoi aku ka mīkini hou ma mua o kā mākou i kēia manawa.

Orchestrator no MySQL: no ke aha ʻaʻole hiki iā ʻoe ke kūkulu i kahi papahana hoʻomanawanui me ka ʻole
Hōʻike ke kiʻi i ka waena o ka hana. He aha nā mea i hana ʻia a hiki i kēia manawa? Ua ʻōlelo mākou ua makemake mākou e hana i kekahi kauā i haku hou, ua hoʻomaka ʻo Orchestrator e hoʻopili hou i nā kauā ʻē aʻe a pau iā ia, me ka haku hou e hana nei ma ke ʻano he mīkini transit. Me kēia papahana, ʻaʻohe hewa, hana nā kauā a pau, wehe ʻo Orchestrator i ka VIP mai ka haku kahiko, hoʻololi iā ia i ka mea hou, hana read_only=0 a poina i ka haku kahiko. ʻO nā mea a pau! ʻO ka manawa haʻahaʻa o kā mākou lawelawe ʻo ia ka manawa hoʻoili VIP, ʻo ia ka 2-3 kekona.

ʻO ia wale nō no kēia lā, mahalo iā ʻoukou a pau. E loaʻa koke mai kahi ʻatikala ʻelua e pili ana iā Orchestrator. Ma ka kiʻiʻoniʻoni Soviet kaulana "Garage," i ʻōlelo kekahi kanaka, "ʻAʻole au e hele i ka ʻike ʻana me ia!" No laila, e ka Orchestrator, e hele pū wau me ʻoe i ka ʻike ʻana!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka