Orchestrator pro MySQL: quare propositum sine eo facere non potes

Quodlibet magnum consilium incepit cum duobus servientibus. Primo erat unus DB servo, deinde servi additi sunt ad lectionem endo. Tum - desine! Unus dominus, sed multi servi; si unus ex servis discedit, omnia valebunt, sed si dominus discedit, malum erit: downtime, admins servo tollere conantur. Quid facere? Reservatis dominum. Collega meus Pavel iam de hoc scripsit articulusNon repeto. Sed dicam tibi cur pro MySQL Orchestratore certo opus sit!

Praecipuae quaestionis initium sit: "Quomodo codicem mutabimus machinae novae cum dominus relinquit?"

  • Placet schema cum VIP (Virtual IP) maxime, de eo infra loquemur. Simplicissima et manifestissima est, licet manifestam limitationem habeat: dominum, quem reservabimus, debet esse in segmento L2 cum nova machina, hoc est, oblivisci possumus de secundo DC. Et amice amice, si regulam sequeris, magnum L2 malum est, quia L2 per eculeum tantum est, et L3 est inter tormenta, et talis propositio plus habet restrictiones.
  • Nomen DNS in codice scribere potes et per /etc/hostes solve. Nam nulla pertinacia te. Commodum schema: nulla limitatio propria primae methodi seu crucis-DC ordinare potest. Sed tunc oritur evidens quaestio: quam cito mutationi /etc/exercituum per Puppet-Ansible tradi possumus?
  • Secundam methodum paululum mutare potes: instrue caching DNS in omnibus servientibus interretialibus, per quos signum ad datorum dominum ibit. TTL 60 ad hunc ingressum in DNS constituere potes. Videtur quod, si recte impleatur, modus est bonus.
  • Disceptatio cum servitio inventionis, subiunctiva usu Consulum et etc.
  • An interesting optio cum ProxySQL. Opus est ut omnia negotiatio MySQL per ProxySQL iter facias, ProxySQL ipsum determinare potest quis dominus est. Obiter legere potes de una optionum optionum pro hoc facto meo utendo articulus.

Auctor Orchestratoris in Github laborans primum consilium primum cum VIP perfecit, deinde consul in consilium convertit.

Typical infrastructure layout:

Orchestrator pro MySQL: quare propositum sine eo facere non potes
Statim exponam condiciones manifestas quae ratio habenda est:

  • Inscriptio VIP non debet adscribi in aliquo ex servers aboutconfig. Fingamus condicionem: dominus repulsa est, dum onerabat, Orchestrator in defectionem abiit et unum ex servis dominum fecit; tunc senex dominus resurrexit, et nunc VIP in duobus carris est. Hoc est malum.
  • Ad orchestratorem necesse est te scribere litteras ad dominum veterem et magistrum novum vocandum. Ad dominum veterem debes currere ifdown, et novo domino - ifup vip. Pulchrum esset etiam in hoc scripto includere quod in casu defectionis, portus in switch domini veteris declinatur simpliciter ad vitandum quodlibet alumine.
  • Postquam Orchestrator scripium tuum vocavit ut VIP et/vel portum in transitum exstingueret, et postea VIP scriptum in novum magistrum vocavit, noli oblivisci uti mandatum arping ut omnibus dicas novum VIP nunc esse. hic.
  • Omnes servi legere debent ==1 tantum, et statim ut servum ad dominum promoves, debet legere tantum=0.
  • Ne memineris aliquem servum, quem ad hoc elegimus, dominum fieri posse (Orchestrator totum praeoptare ma- chinam habet, pro quo servus in primo loco novum dominum petitorem, quem secundo loco, et uter servus sit. omnino non eligendus in aliqua re magister). si servus fuerit dominus, remanebit onus servi, et adjicietur onus domini, hoc ratio habenda est.

Cur Orchestratore opus est, si non habeas?

  • Orchestrator valde user-amica graphice interfaciem habet quae totam topologiam ostendit (vide tortor infra).
  • Orchestrator indagare potest quod servi pigri sunt, et ubi replicatio plerumque fractus est (scripta Orchestratori pro mittendis SMS mittendis).
  • Narrat Orchestrator tibi quod servi errantem GTID habent.

Orchestrator Interface:

Orchestrator pro MySQL: quare propositum sine eo facere non potes
Quid est GTID errans?

Duae praecipue requiruntur ad Orchestratorem ad operandum:

  • Necessarium est ut pseudo GTID omnibus machinis in botro MySQL efficiatur, GTID potuimus.
  • Unum genus binlogorum ubique esse necesse est, uti possis enuntiatione. Configurationem habuimus in qua dominus et plerique servi Row habuerunt, et duo historice in mixto modo manserunt. Quam ob rem Orchestrator hos servos novo domino coniungere simpliciter noluit.

Memento quod maximum est in productione servo constantiam domini. Si Transactio Global ID (GTID) in utroque domino et servo paravit, tunc functione subsecta uti potes ut scias an eaedem petitiones mutationum rerum in his machinis effectae sint. De hoc legere potes hic.

Sic Orchestrator per GTID errantem tibi res gestas in servo ostendit quae non in domino sunt. Quid hoc est?

  • Read_only=1 is not enabled on slave, someone connected and completed request to change data.
  • Super_read_solum=1 servus non datur, tunc Administrator, confusa servo, intrabat et petitionem ibi exsecutabat.
  • Si utrumque priorum puncta consideraveris, una plus stropha est: in MySQL, rogatio ut ruborem binlogs etiam ad binlogum pergat, sic in primo rubore, errans GTID in domino et omnibus servis apparebit. Quomodo hoc vitandum est? Perona-5.7.25-28 induxit praecepta binlog_silip_=I obitus, quae ruborem scribere binlogs vetat. Constitutus est unus in mysql.com website bug.

Summatim omnia supradicta. Si Orchestrator uti non vis in modo deficienti adhuc, pone modum observationis. Tunc semper ante oculos habebis tabulam commercii machinis MySQL et informationis visualium de quanam replicationum genere in singulis machinae sitis, an servi pigri sint, ac potissimum, quam constantes sint cum domino!

Patet quaestio: "Quomodo opus sit Orchestrator?" Novum dominum e servis hodiernis eligere debet et omnes servos ad illud reiungere (hoc enim opus est GTID; si vetus mechanismum cum binlog_nomine et binlog_pos uteris, servum mutans a domino currente ad novum. simpliciter est impossibile!). Antequam Orchestratorem habuimus, semel omnia manually facere debebam. Dominus senex pendebat ex buggy Adaptecorum moderatoris, habebat circiter 10 servos. Debeo VIP ex domino transferre ad unum ex servis et reconnect omnes alios servos. Quot solacia patefaciam, quot simul mandata intravi.... Exspectavi usque ad III a.m., ab omnibus servis praeter duos onus removeo, primam machinam duorum domini fac, machinam secundam statim appone. huic, reliqua omnia servis novo domino adiunge ac onere redde. Super, terribilis...

Quomodo orchestrator opus facit cum modum defectionis ingreditur? Hoc facillime illustratur exemplo condicionis in qua dominum potentem, recentiorem machinam quam nunc habemus, facere volumus.

Orchestrator pro MySQL: quare propositum sine eo facere non potes
Figura medium processuum ostendit. Quid iam hucusque factum est? Diximus nos aliquem servum novum dominum facere velle, Orchestrator omnes alios servos ad se reiungere incepit, cum novus dominus machinam transitivam ageret. Hoc schemate, nulli errori occurrunt, omnes servi operantur, Orchestrator VIP a domino veteri removet, ad novum transfert, solum =0 facit et veteris domini meminit. Omnis! The downtime of our service is VIP translation time, which is 2-3 seconds.

Haec omnia hodie sunt, tibi gratias omnes. Secundus articulus de Orchestratore mox erit. In celeberrima pellicula Sovietica "Garage," unus character dixit, "nolim cum eo explorare!" Ego igitur, Orchestrator, te speculatus volo!

Source: www.habr.com