Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Gabatarwar

Wani lokaci da ya wuce an ba ni aikin haɓaka gungu na kasawa don PostgreSQL, Yana aiki a yawancin cibiyoyin bayanai da aka haɗa ta hanyar fiber na gani a cikin birni ɗaya, kuma mai iya jure gazawar (misali, baƙar fata) na cibiyar bayanai ɗaya. A matsayin software ɗin da ke da alhakin haƙurin kuskure, na zaɓa pacemakersaboda wannan shine mafita na hukuma daga RedHat don ƙirƙirar gungu masu gazawa. Yana da kyau saboda RedHat yana ba da tallafi a gare shi, kuma saboda wannan bayani shine duniya (modular). Tare da taimakonsa, zai yiwu a tabbatar da rashin haƙuri ba kawai na PostgreSQL ba, har ma da sauran ayyuka, ko dai ta amfani da ma'auni na yau da kullum ko ƙirƙirar su don takamaiman bukatun.

Wannan shawarar ta haifar da tambaya mai ma'ana: yaya za a iya jure kuskure? Don bincika wannan, na ƙirƙiri benci na gwaji wanda ke kwatanta gazawa daban-daban akan nodes ɗin tari, na jira don a maido da sabis, na dawo da kumburin da ya gaza, kuma na ci gaba da gwaji a cikin madauki. Asali ana kiran wannan aikin hapgsql, amma bayan lokaci sai na gaji da sunan, wanda yake da wasali guda ɗaya kawai. Sabili da haka, na fara kiran bayanan bayanan da ba daidai ba (kuma IP mai ruwa yana nuna su) krogan (wani hali daga wasan kwamfuta wanda aka kwafi dukkan mahimman gabobin cikinsa), da nodes, clusters da aikin da kansa. tukanka (duniya inda krogans ke rayuwa).

Yanzu gudanarwa ta yarda bude aikin zuwa ga bude tushen al'umma karkashin lasisin MIT. Ba da daɗewa ba za a fassara README zuwa Turanci (saboda ana sa ran cewa manyan masu amfani za su kasance masu haɓakawa na Pacemaker da PostgreSQL), kuma na yanke shawarar gabatar da tsohuwar sigar Rasha ta README (wani sashi) a cikin hanyar wannan labarin.

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Ana tura gungu akan injuna masu kama-da-wane VirtualBox. Jimlar injunan kama-da-wane 12 (36GiB gabaɗaya) za a tura su, waɗanda ke samar da gungu masu jure rashin kuskure 4 (zaɓuɓɓuka daban-daban). Rukunin farko guda biyu sun ƙunshi sabar PostgreSQL guda biyu, waɗanda ke cikin cibiyoyin bayanai daban-daban, da sabar gama gari. shaida c na'urar ƙira (wanda aka shirya akan na'ura mai arha a cikin cibiyar bayanai ta uku), wanda ke warware rashin tabbas 50% / 50%, ba da kuri'un ku ga ɗaya daga cikin jam'iyyun. Tari na uku a cikin cibiyoyin bayanai guda uku: maigida ɗaya, bayi biyu, a'a na'urar ƙira. Tari na huɗu ya ƙunshi sabar PostgreSQL guda huɗu, biyu a kowace cibiyar bayanai: jagora ɗaya, sauran kwafi, kuma yana amfani da su. shaida c na'urar ƙira. Na huɗu na iya jure rashin nasarar sabar biyu ko cibiyar bayanai ɗaya. Ana iya daidaita wannan bayani zuwa adadi mafi girma na kwafi idan ya cancanta.

Madaidaicin sabis na lokaci ntpd Hakanan an sake saita shi don haƙurin kuskure, amma yana amfani da hanyar kanta ntpd (yanayin marayu). uwar garken da aka raba shaida yana aiki azaman uwar garken NTP ta tsakiya, yana rarraba lokacinsa ga duk gungu, ta haka yana daidaita duk sabar da juna. Idan shaida ya kasa ko ya zama saniyar ware, sai daya daga cikin cluster sabobin (a cikin cluster) zai fara rarraba lokacinsa. Caching na taimako HTTP wakili kuma ya tashi zuwa shaida, tare da taimakonsa, wasu injunan kama-da-wane suna samun damar zuwa wuraren ajiyar Yum. A hakikanin gaskiya, ayyuka kamar ingantaccen lokaci da proxies za a yi amfani da su a kan sabar da aka keɓe, amma a cikin rumfar an shirya su. shaida kawai don adana adadin injina da sarari.

Ayoyin

v0. Yana aiki tare da CentOS 7 da PostgreSQL 11 akan VirtualBox 6.1.

Tsarin tari

An ƙera dukkan tari don kasancewa a cikin cibiyoyin bayanai da yawa, haɗe su zuwa cibiyar sadarwa mai lebur kuma dole ne su yi tsayayya da gazawa ko keɓewar cibiyar sadarwa na cibiyar bayanai guda ɗaya. Shi ya sa ba shi yiwuwa amfani don kariya daga tsaga-kwakwalwa daidaitaccen fasahar bugun jini da ake kira STONITH (Harba Da Sauran Kumburi A Kan) ko wasan zinare. Mahimmancinsa: idan nodes a cikin gungu sun fara zargin cewa wani abu ba daidai ba ne tare da wasu kumburi, ba ya amsawa ko kuma yana yin kuskure, to sai su kashe shi ta hanyar na'urorin "na waje", misali, katin kula da IPMI ko UPS. . Amma wannan zai yi aiki ne kawai a lokuta inda, a cikin yanayin rashin nasara ɗaya, uwar garken IPMI ko UPS ya ci gaba da aiki. Anan muna shirin kare kariya daga gazawar da ta fi girma, lokacin da duk cibiyar bayanai ta kasa (misali, ta rasa iko). Kuma tare da irin wannan ƙi, komai stonith-na'urori (IPMI, UPS, da dai sauransu) kuma ba za su yi aiki ba.

Maimakon haka, tsarin yana dogara ne akan ra'ayin quorum. Duk nodes suna da murya, kuma waɗanda kawai ke iya ganin fiye da rabin duk nodes suna iya aiki. Ana kiran wannan adadin "rabi + 1". kuri'a. Idan ba a kai ga ƙima ba, to, kumburin ya yanke shawarar cewa yana cikin keɓewar hanyar sadarwa kuma dole ne ya kashe albarkatunsa, watau. wannan shi ne abin da yake tsaga-kwakwalwa kariya. Idan software da ke da alhakin wannan hali ba ta aiki ba, to, mai sa ido, misali, bisa IPMI, zai yi aiki.

Idan adadin nodes ko da (gungu a cikin cibiyoyin bayanai guda biyu), to abin da ake kira rashin tabbas na iya tasowa. 50% / 50% (hamsin da hamsin) lokacin da keɓewar hanyar sadarwa ta raba gungu daidai da rabi. Saboda haka, don madaidaicin adadin nodes, muna ƙarawa na'urar ƙira Daemon ne mara buƙatuwa wanda za'a iya ƙaddamar dashi akan injin kama-da-wane mafi arha a cibiyar bayanai ta uku. Ya ba da kuri'arsa ga ɗaya daga cikin sassan (wanda yake gani), kuma ta haka ne ya warware 50%/50% rashin tabbas. Na sanya sunan uwar garken da za a ƙaddamar da na'urar ƙira a kanta shaida (kalmomi daga repmgr, Ina son shi).

Ana iya matsar da albarkatu daga wuri zuwa wuri, alal misali, daga sabar mara kyau zuwa masu lafiya, ko kuma a umarnin masu gudanar da tsarin. Don abokan ciniki su san inda albarkatun da suke buƙata suke (inda za a haɗa?), mai iyo IP (ruwa IP). Waɗannan su ne IPs waɗanda na'urar bugun zuciya ke iya motsawa a kusa da nodes (komai yana kan hanyar sadarwa mai lebur). Kowannen su yana wakiltar wata hanya (sabis) kuma za a kasance a inda kake buƙatar haɗawa don samun dama ga wannan sabis ɗin (a cikin yanayinmu, bayanan bayanai).

Tuchanka1 (zagaye tare da compaction)

tsarin

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Manufar ita ce cewa muna da ƙananan ƙananan bayanai tare da ƙananan kaya, wanda ba shi da amfani don kula da uwar garken bawa mai sadaukarwa a cikin yanayin jiran aiki mai zafi don karantawa kawai ma'amaloli (babu buƙatar irin wannan ɓarna na albarkatu).

Kowace cibiyar bayanai tana da uwar garken guda ɗaya. Kowane uwar garken yana da misalin PostgreSQL guda biyu (a cikin kalmomin PostgreSQL ana kiran su clusters, amma don guje wa rudani zan kira su misali (ta hanyar kwatankwacin sauran bayanan bayanai), kuma zan kira gungu na Pacemaker kawai. Misali ɗaya yana aiki a cikin babban yanayin, kuma kawai yana ba da sabis (kawai IP mai iyo kawai yana kaiwa gare shi). Misali na biyu yana aiki a matsayin bawa na cibiyar bayanai na biyu, kuma zai ba da sabis ne kawai idan ubangidansa ya gaza. Tunda mafi yawan lokaci misali ɗaya ne kawai daga cikin biyu (maigidan) zai ba da sabis (yi buƙatun), duk kayan aikin uwar garken an inganta su don maigidan (an ware ƙwaƙwalwar ajiya don share_buffers cache, da sauransu), amma don misali na biyu. Har ila yau yana da isassun albarkatu (duk da cewa yana aiki mafi kyau ta hanyar cache tsarin fayil) idan akwai gazawar ɗaya daga cikin cibiyoyin bayanan. Bawan ba ya ba da sabis (ba ya yin buƙatun karantawa kawai) yayin aiki na yau da kullun na gungu, don haka babu yaƙi don albarkatu tare da maigidan akan wannan na'ura.

A cikin yanayin nodes guda biyu, haƙurin kuskure yana yiwuwa ne kawai tare da maimaita asynchronous, tunda tare da kwafin aiki tare, gazawar bawa zai kai ga dakatar da maigidan.

Rashin shaida

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Rashin shaida (na'urar ƙira) Zan yi la'akari kawai don gungu na Tuchanka1, tare da duk sauran zai zama labari iri ɗaya. Idan shaida ya kasa, babu abin da zai canza a cikin tsarin gungu, komai zai ci gaba da aiki kamar yadda ya yi. Amma yawan kuri'un zai zama 2 cikin 3, saboda haka duk wani gazawar da zai biyo baya zai zama mai kisa ga gungu. Har yanzu za a gyara shi cikin gaggawa.

Tuchanka1 ƙi

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Rashin nasarar ɗayan cibiyoyin bayanai na Tuchanka1. A wannan yanayin shaida ya jefa kuri'arsa zuwa kulli na biyu a cibiyar bayanai ta biyu. A can, tsohon bawa ya juya ya zama maigidan, sakamakon haka, duka masters suna aiki a kan uwar garken guda ɗaya kuma duka IPs ɗin su na iyo suna nuna su.

Tuchanka2 (na gargajiya)

tsarin

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Classic makirci na biyu nodes. Maigida yana aiki akan ɗaya, bawa akan na biyu. Dukansu suna iya aiwatar da buƙatun (ana karanta bawan kawai), don haka duka biyu ana nuna su ta hanyar ruwa IP: krogan2 shine maigidan, krogan2s1 bawa ne. Maigida da bawa duka za su yi haƙuri.

Game da nodes guda biyu, haƙurin kuskure ba zai yiwu ba ne kawai tare da maimaita asynchronous, saboda tare da maimaita aiki tare, gazawar bawa zai kai ga dakatar da maigidan.

Tuchanka2 ƙi

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Idan ɗaya daga cikin cibiyoyin bayanai ya gaza shaida kuri'u na biyu. A kan cibiyar bayanan aiki kawai, za a tada maigidan, kuma duka IPs masu iyo za su nuna shi: maigidan da bawa. Tabbas, misali dole ne a daidaita shi ta yadda yana da isassun albarkatu (iyakan haɗi, da sauransu) don karɓar duk haɗin gwiwa da buƙatun lokaci guda daga maigidan da bawa mai iyo IP. Wato, yayin aiki na yau da kullun ya kamata ya sami isasshen wadatar iyakoki.

Tuchanka4 (Bayi da yawa)

tsarin

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Tuni wani matsananci. Akwai ma'ajin bayanai waɗanda ke karɓar buƙatun karantawa kawai (alal misali na rukunin yanar gizo mai nauyi). Tuchanka4 wani yanayi ne da za a iya samun bayi uku ko fiye da za su gudanar da irin waɗannan buƙatun, amma har yanzu ba su da yawa. Tare da adadi mai yawa na bayi, zai zama dole don ƙirƙira tsarin kwafi na matsayi. A cikin ƙaramin ƙarami (a cikin hoton), kowane ɗayan cibiyoyin bayanan biyu yana da sabobin guda biyu, kowannensu yana da misalin PostgreSQL.

Wani fasalin wannan makircin shine cewa an riga an riga an yi yuwuwar tsara kwafi guda ɗaya. An saita shi don yin kwafi, idan zai yiwu, zuwa wata cibiyar bayanai, maimakon kwafi a cibiyar bayanai iri ɗaya da maigidan. Maigidan da kowane bawa ana nuna su ta IP mai iyo. Abin farin ciki, tsakanin bayi zai zama dole don daidaita buƙatun ko ta yaya sql wakili, misali, a gefen abokin ciniki. Daban-daban na abokan ciniki na iya buƙatar nau'ikan daban-daban sql wakili, kuma masu haɓaka abokin ciniki kawai sun san wanda ke buƙatar wane. Ana iya aiwatar da wannan aikin ko dai ta hanyar daemon na waje ko ta wurin ɗakin karatu na abokin ciniki (wakin haɗin gwiwa), da sauransu. Duk wannan ya wuce batun tarin tarin bayanai na kasala (failover SQL wakili za a iya aiwatar da kansa, tare da haƙurin kuskuren abokin ciniki).

Tuchanka4 ƙi

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Idan cibiyar bayanai ɗaya (watau sabar biyu) ta kasa, shaida kuri'un na biyu. A sakamakon haka, akwai sabar guda biyu da ke gudana a cikin cibiyar bayanai ta biyu: ɗayan yana gudanar da masters, kuma maigidan ya yi nuni da shi (don karɓar buƙatun karantawa); kuma akan uwar garken na biyu akwai bawan da ke gudana tare da maimaitawa na aiki tare, kuma ɗayan bawan da ke iyo IPs yana nuni da shi (don buƙatun karantawa kawai).

Abu na farko da za a lura shi ne cewa ba duk IPs masu iyo ba zai zama ma'aikata ba, amma ɗaya kawai. Kuma don yin aiki da shi daidai zai zama dole cewa sql wakili tura duk buƙatun zuwa IP ɗin da ta rage kawai; kuma idan sql wakili a'a, to zaku iya jera duk bayin IP masu ruwa da aka raba ta waƙafi a cikin URL ɗin haɗin gwiwa. A wannan yanayin, tare da libpq haɗin zai kasance zuwa farkon IP mai aiki, ana yin wannan a cikin tsarin gwaji ta atomatik. Wataƙila a wasu ɗakunan karatu, alal misali, JDBC, wannan ba zai yi aiki ba kuma ya zama dole sql wakili. Ana yin haka ne saboda an hana tashe IPs na ruwa na bayi a lokaci guda a kan sabar guda ɗaya, ta yadda za a rarraba su daidai tsakanin sabar bayi idan akwai da yawa daga cikinsu suna gudana.

Na biyu: ko da a yanayin gazawar cibiyar bayanai, za a kiyaye kwafi na aiki tare. Kuma ko da gazawar ta biyu ta faru, wato ɗaya daga cikin sabobin biyu da ke ragowar cibiyar bayanai ta kasa, cluster, duk da cewa za ta daina ba da sabis, duk da haka za ta ci gaba da riƙe bayanai game da duk wani ciniki da aka yi wanda ya ba da tabbacin ƙaddamar da aikin. (ba za a sami bayanin asara ba idan akwai gazawar sakandare).

Tuchanka3 (Cibiyoyin bayanai 3)

tsarin

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Wannan gungu ne don yanayin da akwai cibiyoyin bayanai guda uku masu cikakken aiki, kowannensu yana da cikakken sabar bayanai. A wannan yanayin na'urar ƙira ba a bukata. Daya cibiyar data kasance master, sauran biyun kuma bayi. Maimaitawa yana aiki tare, rubuta KOWANE (bawa1, bawa2), wato, abokin ciniki zai sami tabbaci lokacin da wani daga cikin bayi ya fara amsa cewa ya karɓi aikatawa. Ana nuna albarkatun ta hanyar IP mai ruwa guda ɗaya don maigidan da biyu don bayi. Ba kamar Tuchanka4 ba, duk IPs masu ruwa guda uku suna da haƙuri. Don daidaita tambayoyin SQL masu karantawa kawai zaka iya amfani da su sql wakili (tare da keɓancewar kuskure), ko sanya bawa ɗaya mai iyo IP zuwa rabin abokan ciniki, da sauran rabin zuwa na biyu.

Tuchanka3 ƙi

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

Idan ɗaya daga cikin cibiyoyin bayanan ya gaza, saura biyu. A cikin ɗayan, maigidan da mai iyo IP daga maigidan suna ɗagawa, a cikin na biyu - bawa da duka bawa da ke iyo IPs (misali dole ne ya sami ajiyar albarkatu biyu don karɓar duk haɗin gwiwa daga duka IPs ɗin bayi). Maimaita aiki tare tsakanin iyayengiji da bayi. Har ila yau, tarin zai adana bayanai game da aikatawa da tabbatar da ma'amaloli (ba za a sami asarar bayanai ba) a yayin da aka lalata cibiyoyin bayanai guda biyu (idan ba a lalata su a lokaci guda).

Na yanke shawarar kada in haɗa da cikakken bayanin tsarin fayil da turawa. Duk mai son yin wasa zai iya karanta shi duka a cikin README. Ina ba da bayanin gwaji na atomatik kawai.

Tsarin gwaji ta atomatik

Don gwada haƙurin kuskuren gungu ta hanyar kwaikwayon kurakurai daban-daban, an ƙirƙiri tsarin gwaji ta atomatik. An ƙaddamar da rubutun test/failure. Rubutun na iya ɗauka azaman sigogin lambobi na gungu waɗanda kuke son gwadawa. Misali wannan umarni:

test/failure 2 3

kawai zai gwada tari na biyu da na uku. Idan ba a ƙayyade sigogi ba, to duk gungu za a gwada. Ana gwada duk gungu a layi daya, kuma ana nuna sakamakon a cikin tmux panel. Tmux yana amfani da sabar tmux da aka keɓe, don haka ana iya gudanar da rubutun daga ƙarƙashin tsoho tmux, yana haifar da tmux gida. Ina ba da shawarar yin amfani da tasha a cikin babban taga kuma tare da ƙaramin rubutu. Kafin a fara gwaji, duk injunan kama-da-wane ana juya su zuwa hoto a lokacin da rubutun ya ƙare setup.

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

An raba tashar zuwa ginshiƙai bisa ga adadin gungu da ake gwadawa; ta tsohuwa (a cikin hoton allo) akwai guda huɗu. Zan bayyana abubuwan da ke cikin ginshiƙan ta amfani da misalin Tuchanka2. An ƙididdige bangarorin da ke cikin hoton:

  1. Ana nuna kididdigar gwaji anan. ginshiƙai:
    • gazawar - sunan gwajin (aiki a cikin rubutun) wanda yayi kama da laifin.
    • dauki - matsakaicin lokacin lissafin lissafi a cikin daƙiƙa wanda gungu ya dawo da aikinsa. Ana auna shi daga farkon rubutun yana kwaikwayon kuskure har zuwa lokacin da tarin ya dawo da aikinsa kuma ya sami damar ci gaba da ba da sabis. Idan lokaci ya yi takaice sosai, misali, dakika shida (wannan yana faruwa a cikin gungu tare da bayi da yawa (Tuchanka3 da Tuchanka4)), wannan yana nufin cewa laifin ya kasance akan bawa asynchronous kuma bai shafi aikin ta kowace hanya ba; babu cluster state switches.
    • karkacewa - yana nuna yaduwar (daidai) na ƙimar dauki ta yin amfani da daidaitattun hanyar karkacewa.
    • ƙidaya - sau nawa aka yi wannan gwajin.
  2. Wani ɗan gajeren lokaci yana ba ku damar kimanta abin da tari ke yi a halin yanzu. Ana nuna lambar maimaitawa (gwaji), tambarin lokaci da sunan aikin. Yin tsayi da yawa (> mintuna 5) yana nuna matsala.
  3. zuciya (zuciya) - halin yanzu. Don ƙima na gani na aiki masters Lokaci na yanzu ana rubuta shi akai-akai zuwa teburin sa ta amfani da maginin IP mai iyo. Idan an yi nasara, ana nuna sakamakon a cikin wannan rukunin.
  4. duka (pulse) - "lokacin yanzu", wanda rubutun ya rubuta a baya zuciya don master, yanzu karanta daga bawa ta hanyar IP na ruwa. Yana ba ku damar tantance aikin bawa da kwafi a gani. A cikin Tuchanka1 babu bayi tare da IP mai iyo (babu bayi da ke ba da sabis), amma akwai lokuta biyu (DBs), don haka ba za a nuna a nan ba. dukada kuma zuciya misali na biyu.
  5. Kula da lafiyar gungu ta amfani da kayan aiki pcs mon. Yana nuna tsari, rarraba albarkatu a cikin nodes da sauran bayanai masu amfani.
  6. Ana nuna tsarin sa ido daga kowane injin kama-da-wane a cikin tari anan. Akwai yuwuwar samun ƙarin irin waɗannan bangarori dangane da nawa injunan kama-da-wane da gungun ke da su. Hotuna biyu Load ɗin CPU (Virtual Machines suna da processor guda biyu), sunan injin kama-da-wane, Load System (mai suna Load Average saboda an daidaita shi sama da mintuna 5, 10 da 15), aiwatar da bayanai da rarraba ƙwaƙwalwar ajiya.
  7. Alamar rubutun yin gwaji. A cikin yanayin rashin aiki - kwatsam katsewar aiki ko kuma sake zagayowar jira mara iyaka - a nan zaka iya ganin dalilin wannan hali.

Ana yin gwaji a matakai biyu. Na farko, rubutun yana shiga cikin kowane nau'in gwaje-gwaje, ba da gangan ba yana zaɓar injin kama-da-wane wanda za a yi amfani da wannan gwajin. Sa'an nan kuma za a yi zagaye na gwaji mara iyaka, ana zaɓar injunan kama-da-wane da laifin da ba a so kowane lokaci. Ƙarshen rubutun gwajin kwatsam (panel na ƙasa) ko madauki mara iyaka na jiran wani abu (> Lokacin aiwatar da minti 5 don aiki ɗaya, ana iya ganin wannan a cikin alamar) yana nuna cewa wasu gwaje-gwajen kan wannan gungu sun gaza.

Kowace gwaji ta ƙunshi ayyuka masu zuwa:

  1. Ƙaddamar da aikin da ke kwaikwayon kuskure.
  2. Shirya? - jira don dawo da gungu (lokacin da aka samar da duk sabis).
  3. Yana nuna lokacin dawowar tari (dauki).
  4. Gyara - ana "gyara" gungu. Bayan haka ya kamata ya koma cikin cikakken aiki kuma ya kasance a shirye don rashin aiki na gaba.

Ga jerin gwaje-gwaje tare da bayanin abin da suke yi:

  • ForkBomb: Ƙirƙirar "Ba a ƙwaƙwalwar ajiya" ta amfani da bam mai yatsa.
  • OutOfSpace: Hard ɗin ya cika. Amma gwajin alama ce; tare da ƙarancin nauyi wanda aka ƙirƙira yayin gwaji, PostgreSQL yawanci ba ya kasawa lokacin da rumbun kwamfutarka ta cika.
  • Postgres-KISAN: yana kashe PostgreSQL tare da umarnin killall -KILL postgres.
  • Postgres-TSAYA: yana rataye umarnin PostgreSQL killall -STOP postgres.
  • kashe wuta: "de-ergizes" na'urar kama-da-wane tare da umarni VBoxManage controlvm "виртуалка" poweroff.
  • Sake saita: overloads da kama-da-wane inji tare da umurnin VBoxManage controlvm "виртуалка" reset.
  • SBD-TSAYA: ya dakatar da aljanin SBD da umarnin killall -STOP sbd.
  • Rufewa: yana aika umarni zuwa injin kama-da-wane ta hanyar SSH systemctl poweroff, tsarin yana rufe da kyau.
  • Cire haɗin gwiwa: warewar hanyar sadarwa, umarni VBoxManage controlvm "виртуалка" setlinkstate1 off.

Kammala gwaji ko dai ta amfani da daidaitaccen umarnin tmux "kill-window" Ctrl-b &, ko kuma umurnin "detach-client". Ctrl-b d: a wannan lokacin gwaji ya ƙare, tmux yana rufe, ana kashe injunan kama-da-wane.

Matsalolin da aka gano yayin gwaji

  • A wannan lokacin aljani mai tsaro sbd yana aiki akan dakatar da daemons, amma baya daskarewa. Kuma, a sakamakon haka, kurakuran da ke haifar da daskarewa kawai Corosync и pacemaker, amma ba rataye ba sbd... Domin dubawa Corosync ya riga ya Farashin PR#83 (a GitHub a sbd), yarda da zaren master. Sun yi alkawari (a cikin PR # 83) cewa za a sami wani abu makamancin haka ga Ma'aunin bugun jini, Ina fatan hakan ta Jar hula 8 za yi. Amma irin wannan "malfunctions" suna da hasashe kuma ana iya yin su cikin sauƙi ta hanyar wucin gadi ta amfani da, misali, killall -STOP corosync, amma kada ku hadu a rayuwa ta gaske.

  • У pacemaker a cikin sigar don CentOS 7 saita kuskure sync_timeout у na'urar ƙiraa sakamakon haka idan kumburi ɗaya ya gaza, tare da wasu yuwuwar kumburin na biyu shima ya sake kunnawa, wanda ya kamata maigidan ya matsa. Magance ta hanyar haɓakawa sync_timeout у na'urar ƙira lokacin turawa (a cikin rubutun setup/setup1). Masu haɓaka ba su karɓi wannan gyara ba pacemaker, maimakon haka sun yi alkawarin sake fasalin kayan aikin ta hanyar (a wasu lokuta da ba a bayyana ba) cewa za a ƙididdige wannan lokacin ta atomatik.

  • Idan tsarin tsarin bayanai ya ƙayyade hakan LC_MESSAGES (saƙonnin rubutu) Ana iya amfani da Unicode, misali. ru_RU.UTF-8, sannan a farawa matsayi a cikin yanayin da yankin ba UTF-8 ba ne, a ce a cikin mahalli mara komai (a nan na'urar bugun zuciya+pgsqlms(paf) gudu matsayi), to log ɗin zai ƙunshi alamun tambaya maimakon haruffa UTF-8. Masu haɓakawa na PostgreSQL ba su yarda kan abin da za su yi a wannan yanayin ba. Kudinsa, kuna buƙatar shigarwa LC_MESSAGES=en_US.UTF-8 lokacin saita (ƙirƙirar) misali na bayanai.

  • Idan wal_receiver_timeout aka saita (ta tsohuwa yana da 60s), to yayin gwajin PostgreSQL-STOP akan maigida a cikin tuchanka3 da tuchanka4 clusters maimaitawa baya sake haɗawa da sabon maigidan. Maimaitawa akwai synchronous, don haka ba kawai bawa ya tsaya ba, har ma da sabon maigidan. Yana aiki a kusa da saita wal_receiver_timeout = 0 lokacin daidaitawa PostgreSQL.

  • Lokaci-lokaci na ga kwafi yana daskarewa a cikin PostgreSQL a cikin gwajin ForkBomb (ƙwaƙwalwar ƙwaƙwalwar ajiya). Bayan ForkBomb, wani lokacin bayi bazai sake haɗawa da sabon maigidan ba. Na ci karo da wannan kawai a cikin gungu na tuchanka3 da tuchanka4, inda maigidan ya daskare saboda kwafin aiki tare. Matsalar ta tafi da kanta bayan dogon lokaci (kimanin awa biyu). Ana buƙatar ƙarin bincike don gyara wannan. Alamun suna kama da kwaro na baya, wanda ke haifar da wani dalili daban, amma tare da sakamako iri ɗaya.

Hoton Krogan daga karkatacciya Art tare da izinin marubuci:

Samfuran gungu masu gazawa dangane da PostgreSQL da Pacemaker

source: www.habr.com

Add a comment