Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Entwodiksyon

Kèk tan de sa, mwen te bay travay la nan devlope yon gwoup failover pou Postgrèskl, opere nan plizyè sant done ki konekte pa fib optik nan yon sèl vil, epi ki kapab reziste yon echèk (pa egzanp, blakawout) nan yon sant done. Kòm lojisyèl an ki responsab pou tolerans fòt, mwen te chwazi pesmekèpaske sa a se solisyon ofisyèl RedHat pou kreye grap failover. Li bon paske RedHat bay sipò pou li, epi paske solisyon sa a se inivèsèl (modil). Avèk èd li, li pral posib asire tolerans fay pa sèlman nan PostgreSQL, men tou nan lòt sèvis, swa lè l sèvi avèk modil estanda oswa kreye yo pou bezwen espesifik.

Desizyon sa a te soulve yon kesyon rezonab: ki jan yon gwoup failover pral toleran? Pou mennen ankèt sou sa a, mwen devlope yon ban tès ki simulation divès kalite echèk sou nœuds gwoup yo, tann pou sèvis yo dwe retabli, rekipere nœuds ki echwe a, epi kontinye tès nan yon bouk. Pwojè sa a te orijinal rele hapgsql, men sou tan mwen te anwiye ak non an, ki te gen sèlman yon vwayèl. Se poutèt sa, mwen te kòmanse rele baz done ki toleran fay (ak flote IP lonje dwèt sou yo) krogan (yon karaktè ki soti nan yon jwèt sou òdinatè kote tout ògàn enpòtan yo kopi), ak nœuds, grap ak pwojè a li menm yo se tuchanka (planèt kote krogan yo ap viv).

Koulye a, jesyon an te pèmèt louvri pwojè a bay kominote sous louvri anba lisans MIT la. README a pral byento ap tradui nan lang angle (paske li espere ke konsomatè prensipal yo pral devlopè Pacemaker ak PostgreSQL), epi mwen deside prezante ansyen vèsyon Ris README a (pasyèlman) nan fòm atik sa a.

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Gwoup yo deplwaye sou machin vityèl VirtualBox. Yo pral deplwaye yon total de 12 machin vityèl (36GiB an total), ki fòme 4 gwoup ki toleran fay (opsyon diferan). De premye gwoup yo konpoze de de sèvè PostgreSQL, ki sitiye nan diferan sant done, ak yon sèvè komen temwen c aparèy kowòm (Akomode sou yon machin vityèl bon mache nan yon twazyèm sant done), ki rezoud ensètitid 50% / 50%, bay youn nan pati yo vòt ou. Twazyèm gwoup nan twa sant done: yon mèt, de esklav, non aparèy kowòm. Katriyèm gwoup la konsiste de kat sèvè PostgreSQL, de pou chak sant done: yon sèl mèt, rès kopi yo, epi tou li itilize temwen c aparèy kowòm. Katriyèm lan ka kenbe tèt ak echèk de serveurs oswa yon sant done. Solisyon sa a ka monte nan yon pi gwo kantite kopi si sa nesesè.

Sèvis tan egzat ntpd tou rekonfigire pou tolerans fòt, men li sèvi ak metòd la tèt li ntpd (mòd òfelen). Sèvè pataje temwen aji kòm yon sèvè NTP santral, distribye tan li nan tout grap, kidonk senkronize tout sèvè youn ak lòt. Si temwen echwe oswa vin izole, Lè sa a, youn nan sèvè gwoup yo (nan gwoup la) ap kòmanse distribye tan li yo. Cache oksilyè HTTP prokurasyon tou leve soti vivan nan temwen, avèk èd li, lòt machin vityèl gen aksè a depo Yum. An reyalite, sèvis tankou tan egzat ak prokurasyon yo pral gen plis chans yo òganize sou sèvè devwe, men nan izolwa a yo òganize sou temwen sèlman pou konsève pou kantite machin vityèl ak espas.

Vèsyon

v0. Travay ak CentOS 7 ak PostgreSQL 11 sou VirtualBox 6.1.

Estrikti Cluster

Tout grap yo fèt pou yo sitiye nan plizyè sant done, konbine nan yon sèl rezo plat epi yo dwe kenbe tèt ak echèk oswa izolasyon rezo nan yon sèl sant done. Se poutèt sa se enposib itilize pou pwoteksyon kont fann-sèvo estanda Pacemaker teknoloji rele STONITH (Tire Lòt Ne nan Tèt la) oswa kloti. Sans li yo: si nœuds yo nan gwoup la kòmanse sispèk ke yon bagay ki mal ak kèk ne, li pa reponn oswa konpòte li mal, Lè sa a, yo fòse fèmen li nan aparèy "ekstèn", pou egzanp, yon kat kontwòl IPMI oswa UPS. . Men, sa a pral sèlman travay nan ka kote, nan evènman an nan yon sèl echèk, IPMI oswa UPS sèvè a kontinye ap travay. Isit la nou planifye pou pwoteje kont yon echèk pi plis katastwofik, lè tout sant done a echwe (pa egzanp, pèdi pouvwa). E ak yon refi konsa, tout bagay stonith-aparèy (IPMI, UPS, elatriye) p ap travay tou.

Olye de sa, sistèm nan baze sou lide kowòm. Tout nœuds gen yon vwa, epi sèlman moun ki ka wè plis pase mwatye nan tout nœuds ka travay. Yo rele kantite "mwatye + 1" sa a kowòm. Si yo pa rive jwenn kowòm, lè sa a ne a deside ke li se nan izolasyon rezo epi li dwe fèmen resous li yo, i.e. sa a se sa li ye pwoteksyon fann nan sèvo. Si lojisyèl an ki responsab konpòtman sa a pa travay, Lè sa a, yon watchdog, pou egzanp, ki baze sou IPMI, ap gen nan travay.

Si kantite nœuds se menm (yon gwoup nan de sant done), Lè sa a, sa yo rele ensètitid ka leve. 50% / 50% (senkant-senkant) lè izolasyon rezo a divize gwoup la egzakteman an mwatye. Se poutèt sa, pou yon kantite menm nan nœuds, nou ajoute aparèy kowòm se yon demon san egzijans ki ka lanse sou machin vityèl ki pi bon mache nan yon twazyèm sant done. Li bay vòt li nan youn nan segman yo (ki li wè), epi kidonk rezoud ensètitid 50%/50%. Mwen te nonmen sèvè kote yo pral lanse aparèy kowòm lan temwen (tèminoloji soti nan repmgr, mwen te renmen li).

Resous yo ka deplase soti nan yon kote nan yon kote, pou egzanp, soti nan sèvè defo pou moun ki an sante, oswa sou lòd administratè sistèm yo. Pou kliyan yo konnen ki kote resous yo bezwen yo ye (kote yo konekte?), k ap flote IP (flote IP). Sa yo se IP ke Pacemaker ka deplase nan nœuds (tout se sou yon rezo plat). Chak nan yo senbolize yon resous (sèvis) epi yo pral lokalize kote ou bezwen konekte yo nan lòd yo jwenn aksè nan sèvis sa a (nan ka nou an, yon baz done).

Tuchanka1 (sikwi ak konpaksyon)

Estrikti

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Lide a te ke nou gen anpil ti baz done ak chaj ki ba, pou ki li pa pwofitab kenbe yon sèvè esklav dedye nan mòd sibstiti cho pou tranzaksyon li sèlman (pa gen okenn bezwen pou tankou yon fatra nan resous).

Chak sant done gen yon sèvè. Chak sèvè gen de enstans PostgreSQL (nan tèminoloji PostgreSQL yo rele yo grap, men pou evite konfizyon mwen pral rele enstans yo (pa analoji ak lòt baz done), epi mwen pral sèlman rele grap Pacemaker grap). Yon egzanp opere nan mòd mèt, epi sèlman li bay sèvis (se sèlman flote IP mennen nan li). Dezyèm egzanp lan travay kòm yon esklav pou dezyèm sant done a, epi li pral bay sèvis sèlman si mèt li echwe. Piske pi fò nan tan sèlman yon sèl egzanp sou de (mèt la) ap bay sèvis (fè demann), tout resous sèvè yo optimize pou mèt la (yo bay memwa pou kachèt shared_buffers, elatriye), men pou dezyèm egzanp lan. tou gen ase resous (kwake pou operasyon suboptimal nan kachèt sistèm fichye a) nan ka echèk nan youn nan sant done yo. Esklav la pa bay sèvis (pa fè demann li sèlman) pandan operasyon nòmal gwoup la, pou pa gen lagè pou resous ak mèt la sou menm machin nan.

Nan ka de nœuds, tolerans fay se sèlman posib ak replikasyon asynchrone, depi ak replikasyon synchrone, echèk la nan yon esklav ap mennen nan sispann nan mèt la.

Si w pa temwen

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Si w pa temwen (aparèy kowòm) Mwen pral konsidere sèlman pou gwoup la Tuchanka1, ak tout lòt yo se pral menm istwa a. Si temwen echwe, anyen p ap chanje nan estrikti gwoup la, tout bagay ap kontinye travay menm jan li te fè a. Men, kowòm nan ap vin 2 sou 3, epi kidonk nenpòt echèk ki vin apre yo pral fatal pou gwoup la. Li pral toujou gen yo dwe fiks ijan.

Tuchanka1 refi

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Echèk nan youn nan sant done yo pou Tuchanka1. Nan ka sa temwen voye vòt li nan yon dezyèm ne nan yon dezyèm sant done. La, ansyen esklav la vin tounen yon mèt, kòm yon rezilta, tou de mèt travay sou menm sèvè a ak tou de nan IP flote yo montre yo.

Tuchanka2 (klasik)

Estrikti

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Konplo klasik nan de nœuds. Mèt la ap travay sou youn, esklav la sou dezyèm lan. Tou de ka egzekite demann (esklav la li sèlman), kidonk tou de yo pwente sou pa flote IP: krogan2 se mèt la, krogan2s1 se esklav la. Tou de mèt la ak esklav la pral gen tolerans fòt.

Nan ka de nœuds, tolerans fay se sèlman posib ak replikasyon asynchrone, paske ak replikasyon synchrone, echèk la nan esklav la ap mennen nan sispann nan mèt la.

Tuchanka2 refi

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Si youn nan sant done yo echwe temwen vòt pou dezyèm lan. Sou sèlman sant done k ap travay, mèt la ap leve, epi tou de IP flote pral lonje dwèt sou li: mèt la ak esklav la. Natirèlman, egzanp lan dwe configuré nan yon fason ke li gen ase resous (limit koneksyon, elatriye) ansanm aksepte tout koneksyon ak demann soti nan mèt la ak esklav flote IP. Sa vle di, pandan operasyon nòmal li ta dwe gen yon rezèv ase nan limit.

Tuchanka4 (anpil esklav)

Estrikti

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Deja yon lòt ekstrèm. Gen baz done ki resevwa yon anpil nan demann lekti sèlman (yon ka tipik nan yon sit ki gen gwo chaj). Tuchanka4 se yon sitiyasyon kote ka gen twa oswa plis esklav pou okipe demann sa yo, men yo toujou pa twòp. Avèk yon gwo kantite esklav, li pral nesesè yo envante yon sistèm replikasyon yerarchize. Nan ka minimòm lan (nan foto a), chak nan de sant done yo gen de sèvè, yo chak ak yon egzanp PostgreSQL.

Yon lòt karakteristik nan konplo sa a se ke li deja posib yo òganize yon sèl replikasyon synchrone. Li se configuré pou replike, si sa posib, nan yon lòt sant done, olye ke nan yon kopi nan menm sant done ak mèt la. Mèt la ak chak esklav yo pwente pa yon IP flote. Erezman, ant esklav li pral nesesè balans demann yon jan kanmenm sql proxy, pou egzanp, sou bò kliyan an. Diferan kalite kliyan ka mande diferan kalite sql proxy, epi sèlman devlopè kliyan konnen ki moun ki bezwen ki. Fonksyonalite sa a ka aplike swa pa yon demon ekstèn oswa pa yon bibliyotèk kliyan (pisin koneksyon), elatriye. Tout bagay sa yo ale pi lwen pase sijè a nan yon gwoup baz done failover (failover SQL prokurasyon ka aplike poukont yo, ansanm ak tolerans fay kliyan).

Tuchanka4 refi

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Si yon sant done (sa vle di, de sèvè) echwe, temwen vote pou dezyèm lan. Kòm yon rezilta, gen de sèvè k ap kouri nan dezyèm sant done a: youn ap kouri yon mèt, ak IP flote mèt la lonje dwèt sou li (pou resevwa demann lekti-ekri); ak sou dezyèm sèvè a gen yon esklav kouri ak replikasyon synchrone, ak youn nan IP flote esklav yo lonje dwèt sou li (pou demann lekti sèlman).

Premye bagay ou sonje se ke se pa tout IP flote esklav yo pral travayè, men se yon sèl. Ak travay avèk li kòrèkteman li pral nesesè ke sql proxy redireksyon tout demann nan sèlman IP flote ki rete a; e si sql proxy non, Lè sa a, ou ka lis tout esklav flote IP separe pa vigil nan URL koneksyon an. Nan ka sa a, avèk libpq koneksyon an pral nan premye IP k ap travay, sa a se fè nan sistèm nan tès otomatik. Petèt nan lòt bibliyotèk, pou egzanp, JDBC, sa a pa pral travay epi li nesesè sql proxy. Sa a se fè paske IP flote pou esklav yo entèdi pou yo leve ansanm sou yon sèl sèvè, pou yo distribye egalman nan mitan sèvè esklav si gen plizyè nan yo ap kouri.

Dezyèm: menm nan evènman an nan yon echèk sant done, yo pral kenbe replikasyon synchrone. E menm si yon echèk segondè rive, se sa ki, youn nan de sèvè yo nan sant done ki rete a echwe, gwoup la, byenke li pral sispann bay sèvis, ap toujou kenbe enfòmasyon sou tout tranzaksyon komèt pou ki li te bay konfimasyon komèt la. (pa pral gen okenn enfòmasyon pèt nan ka ta gen echèk segondè).

Tuchanka3 (3 sant done)

Estrikti

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Sa a se yon gwoup pou yon sitiyasyon kote gen twa sant done konplètman fonksyone, chak nan yo ki gen yon sèvè baz done konplètman fonksyone. Nan ka sa aparèy kowòm pa nesesè. Yon sant done se yon mèt anplwaye, de lòt yo anplwaye pa esklav. Replikasyon an se synchrone, tape ANY (esklav1, esklav2), sa vle di, kliyan an ap resevwa yon konfimasyon konfimasyon lè nenpòt nan esklav yo se premye moun ki reponn ke li te aksepte komèt la. Resous yo endike pa yon IP flote pou mèt la ak de pou esklav. Kontrèman ak Tuchanka4, tout twa IP flote yo toleran fay. Pou balanse demann SQL lekti sèlman ou ka itilize sql proxy (ak tolerans fay separe), oswa bay yon IP flote esklav nan mwatye nan kliyan yo, ak lòt mwatye a nan dezyèm lan.

Tuchanka3 refi

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Si youn nan sant done yo echwe, de rete. Nan youn, mèt la ak flote IP soti nan mèt la leve soti vivan, nan dezyèm lan - esklav la ak tou de IP flote esklav (egzanp lan dwe gen yon rezèv doub nan resous yo nan lòd yo aksepte tout koneksyon soti nan tou de IP flote esklav). Replikasyon synchrone ant mèt ak esklav. Epitou, gwoup la pral sove enfòmasyon sou tranzaksyon komèt ak konfime (pa pral gen okenn pèt enfòmasyon) nan evènman an nan destriksyon nan sant done (si yo pa detwi ansanm).

Mwen deside pa mete yon deskripsyon detaye sou estrikti dosye a ak deplwaman. Nenpòt moun ki vle jwe ka li tout nan README la. Mwen sèlman bay yon deskripsyon tès otomatik yo.

Sistèm tès otomatik

Pou teste tolerans fay grap yo pa simulation defo divès kalite, yo te kreye yon sistèm tès otomatik yo. Te lanse pa script test/failure. Script la ka pran kòm paramèt kantite grap ke ou vle teste. Pa egzanp kòmandman sa a:

test/failure 2 3

pral sèlman teste dezyèm ak twazyèm gwoup la. Si paramèt yo pa espesifye, Lè sa a, tout grap yo pral teste. Tout grap yo teste an paralèl, epi rezilta a parèt nan panèl tmux la. Tmux sèvi ak yon sèvè tmux dedye, kidonk script la ka kouri nan anba tmux default, sa ki lakòz yon tmux enbrike. Mwen rekòmande pou itilize tèminal la nan yon gwo fenèt ak yon ti font. Anvan tès la kòmanse, tout machin vityèl yo retounen nan yon snapshot nan moman script la fini. setup.

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Tèminal la divize an kolòn dapre kantite grap yo teste; pa default (nan ekran an) gen kat. Mwen pral dekri sa ki nan kolòn yo lè l sèvi avèk egzanp Tuchanka2. Panno yo nan ekran an nimewote:

  1. Estatistik tès yo parèt isit la. Kolòn:
    • echèk — non tès la (fonksyon nan script la) ki imite fay la.
    • reyaksyon — tan mwayèn aritmetik an segonn pandan gwoup la te refè fonksyonalite li yo. Li mezire depi nan kòmansman script la imite yon fay jiska moman kote gwoup la retabli fonksyonalite li yo epi li kapab kontinye bay sèvis yo. Si tan an trè kout, pou egzanp, sis segonn (sa rive nan grap ak plizyè esklav (Tuchanka3 ak Tuchanka4)), sa vle di ke fay la te sou esklav la asynchrone epi li pa te afekte pèfòmans lan nan okenn fason; pa te gen okenn switch eta gwoup.
    • devyasyon — montre pwopagasyon (presizyon) valè a reyaksyon lè l sèvi avèk metòd devyasyon estanda a.
    • konte — konbyen fwa yo te fè tès sa a.
  2. Yon jounal kout pèmèt ou evalye sa gwoup la ap fè kounye a. Yo montre nimewo iterasyon (tès), timestamp ak non operasyon an. Kouri twò lontan (> 5 minit) endike yon pwoblèm.
  3. (kè) - tan aktyèl la. Pou evalyasyon vizyèl nan pèfòmans mèt Tan aktyèl la toujou ap ekri sou tab li yo lè l sèvi avèk mèt IP flote. Si yo reyisi, rezilta a parèt nan panèl sa a.
  4. bat (batman kè) - "tan aktyèl", ki te deja anrejistre pa script la metrize, kounye a li nan esklav atravè IP flote li yo. Pèmèt ou vizyèlman evalye pèfòmans esklav la ak replikasyon. Nan Tuchanka1 pa gen okenn esklav ki gen IP flote (pa gen esklav bay sèvis), men gen de ka (DB), kidonk li pa pral montre isit la. batAk dezyèm egzanp.
  5. Siveyans sante gwoup lè l sèvi avèk sèvis piblik la pcs mon. Montre estrikti, distribisyon resous atravè nœuds ak lòt enfòmasyon itil.
  6. Siveyans sistèm nan chak machin vityèl nan gwoup la parèt isit la. Ka gen plis panno sa yo depann de konbyen machin vityèl gwoup la genyen. De graf CPU chaj (machin vityèl gen de processeurs), non machin vityèl, Chaj Sistèm (yo rele Chaj Mwayèn paske li se yon mwayèn sou 5, 10 ak 15 minit), done pwosesis ak alokasyon memwa.
  7. Tras nan script la fè tès. Nan evènman an nan yon fonksyone byen - yon entèripsyon toudenkou nan operasyon oswa yon sik ap tann kontinuèl - isit la ou ka wè rezon ki fè konpòtman sa a.

Tès la fèt an de etap. Premyèman, script la ale nan tout kalite tès, owaza chwazi yon machin vityèl pou aplike tès sa a. Lè sa a, yon sik kontinuèl nan tès fèt, machin yo vityèl ak fay la yo chwazi owaza chak fwa. Revokasyon toudenkou nan script tès la (panèl anba a) oswa yon bouk kontinuèl nan ap tann pou yon bagay (> 5 minit tan ekzekisyon pou yon operasyon, sa ka wè nan tras la) endike ke kèk nan tès yo sou gwoup sa a te echwe.

Chak tès konsiste de operasyon sa yo:

  1. Lanse yon fonksyon ki imite yon fay.
  2. Pare? — ap tann pou gwoup la retabli (lè tout sèvis yo bay).
  3. Montre delè pou rekiperasyon gwoup la (reyaksyon).
  4. Ranje — gwoup la ap “repare”. Apre sa, li ta dwe retounen nan yon eta konplètman operasyonèl epi yo dwe pare pou pwochen fonksyone byen.

Men yon lis tès ak yon deskripsyon sou sa yo fè:

  • ForkBomb: Kreye "Soti nan memwa" lè l sèvi avèk yon bonm fouchèt.
  • OutOfSpace: Disk di a plen. Men, tès la se pito senbolik; ak chaj ensiyifyan ki kreye pandan tès la, PostgreSQL anjeneral pa echwe lè kondwi difisil la plen.
  • Postgres-KILL: touye PostgreSQL ak lòd la killall -KILL postgres.
  • Postgres-STOP: pann kòmand PostgreSQL killall -STOP postgres.
  • pouvwa koupe: "de-energize" machin vityèl la ak lòd la VBoxManage controlvm "виртуалка" poweroff.
  • Reyajiste: surcharge machin vityèl la ak lòd la VBoxManage controlvm "виртуалка" reset.
  • SBD-STOP: sispann move lespri SBD la ak lòd la killall -STOP sbd.
  • Fèmen: voye yon lòd nan machin vityèl la atravè SSH systemctl poweroff, sistèm nan fèmen ak grasyeuz.
  • Dekonekte: rezo izòlman, kòmand VBoxManage controlvm "виртуалка" setlinkstate1 off.

Ranpli tès la swa lè l sèvi avèk estanda tmux kòmand "kill-window" Ctrl-b &, oswa "detach-client" kòmandman an Ctrl-b d: nan pwen sa a tès fini, tmux fèmen, machin vityèl yo etenn.

Pwoblèm yo idantifye pandan tès la

  • Nan moman sa a watchdog demon sbd travay sou kanpe demon yo obsève, men pa konjelasyon yo. Epi, kòm yon rezilta, defo ki mennen nan konjelasyon sèlman Corosync и pesmekè, men pa pandye sbd... Pou tcheke Corosync deja genyen PR#83 (sou GitHub nan sbd), aksepte fil la mèt. Yo te pwomèt (nan PR#83) ke ta gen yon bagay ki sanble pou Pacemaker, mwen espere ke pa Chapo Wouj 8 pral fè. Men, "malfonksyònman" sa yo se spéculatif epi yo ka fasilman simulation atifisyèlman lè l sèvi avèk, pou egzanp, killall -STOP corosync, men pa janm rankontre nan lavi reyèl.

  • У pesmekè nan vèsyon an pou Santos 7 mal mete sync_timeout у aparèy kowòm, kòm yon rezilta si yon sèl ne echwe, ak kèk pwobabilite dezyèm ne tou rdemare, kote mèt la te sipoze deplase. Geri pa elajisman sync_timeout у aparèy kowòm pandan deplwaman (nan script setup/setup1). Amannman sa a pa te aksepte pa devlopè yo pesmekè, olye de sa yo te pwomèt yo redesign enfrastrikti a nan yon fason (nan kèk avni ki pa espesifye) ke tan sa a ta dwe kalkile otomatikman.

  • Si konfigirasyon baz done a presize sa LC_MESSAGES (mesaj tèks) Unicode ka itilize, pa egzanp. ru_RU.UTF-8, Lè sa a, nan demaraj postgres nan yon anviwònman kote lokal la pa UTF-8, di nan yon anviwònman vid (isit la pesmekè+pgsqlms(paf) kouri postgres) Lè sa a ,. boutèy demi lit la ap genyen mak kesyon olye de lèt UTF-8. Devlopè PostgreSQL yo pa dakò sou sa yo dwe fè nan ka sa a. Li koute, ou bezwen enstale LC_MESSAGES=en_US.UTF-8 lè konfigirasyon (kreye) yon egzanp baz done.

  • Si wal_receiver_timeout mete (pa default li se 60s), Lè sa a, pandan tès PostgreSQL-STOP sou mèt la nan grap tuchanka3 ak tuchanka4. replikasyon pa rekonekte ak nouvo mèt la. Replikasyon gen synchrone, kidonk pa sèlman esklav la sispann, men tou, nouvo mèt la. Travay alantou pa mete wal_receiver_timeout = 0 lè konfigirasyon PostgreSQL.

  • Okazyonèlman mwen obsève jele replikasyon nan PostgreSQL nan tès ForkBomb (memwa debòde). Apre ForkBomb, pafwa esklav pa ka rekonekte ak nouvo mèt la. Mwen te rankontre sèlman sa a nan grap tuchanka3 ak tuchanka4, kote mèt la te jele akòz replikasyon synchrone. Pwoblèm nan disparèt poukont li apre yon bon bout tan (apeprè de zè de tan). Plis rechèch ki nesesè pou korije sa. Sentòm yo sanble ak ensèk anvan an, ki te koze pa yon rezon diferan, men ki gen menm konsekans yo.

Krogan foto pran nan detounen Atizay ak pèmisyon otè a:

Modélisation nan grap failover ki baze sou PostgreSQL ak Pacemaker

Sous: www.habr.com

Add nouvo kòmantè