Pîrozbahiyê
Demek berê ji min re peywira pêşxistina komikek têkçûyî hate dayîn , li gelek navendên daneyê yên ku bi fîberek optîkî ve di nav bajarekî de ve girêdayî ne dixebitin, û dikarin li ber têkçûnek (mînak, reşkirina) yek navendek daneyê bisekinin. Wekî nermalava ku berpirsiyariya tolerasyona xeletiyê ye, min hilbijart ji ber ku ev çareseriya fermî ya RedHat e ji bo afirandina komên failover. Ew baş e ji ber ku RedHat piştgirî dide wê, û ji ber ku ev çareserî gerdûnî ye (modular). Bi alîkariya wê, ew ê gengaz be ku meriv ne tenê PostgreSQL, lê di heman demê de karûbarên din jî tolerasyona xeletiyê misoger bike, an modulên standard bikar bîne an jî wan ji bo hewcedariyên taybetî biafirîne.
Vê biryarê pirsek maqûl derxist holê: dê komek têkçûyî çiqasî xelet-tolerant be? Ji bo vekolîna vê yekê, min qonaxek ceribandinê pêşxist ku têkçûnên cihêreng ên li ser girêkên komê simule dike, li benda vegerandina karûbarê dimîne, girêka têkçûyî vedigerîne, û ceribandina di lûtkeyê de didomîne. Ev proje bi eslê xwe navê hapgsql bû, lê bi demê re ez ji navê ku tenê dengdêrek hebû aciz bûm. Ji ber vê yekê, min dest pê kir ku bangî databasên xelet-tolerant bikim (û IP-ya float nîşanî wan bide) krogan (karakterek ji lîstikek komputerê ku tê de hemî organên girîng têne dubare kirin), û girêk, kom û proje bixwe ne tuchanka (gerstêrka ku krogan lê dijîn).
Niha rêveberiyê destûr daye . README dê di demek nêzîk de were wergerandin Englishngilîzî (ji ber ku tê çaverêkirin ku xerîdarên sereke dê pêşdebirên Pacemaker û PostgreSQL bin), û min biryar da ku guhertoya rûsî ya kevn a README (bi qismî) di forma vê gotarê de pêşkêş bikim.

Cluster li ser makîneyên virtual têne bicîh kirin . Dê bi tevahî 12 makîneyên virtual (bi tevahî 36GiB) werin bicîh kirin, ku 4 komên xelet-tolerant (vebijarkên cihêreng) pêk tînin. Du komikên pêşîn ji du serverên PostgreSQL, ku di navendên daneyên cihêreng de cih digirin, û serverek hevpar pêk tê. şahîd c cîhaza quorumê (li ser makîneyek virtual ya erzan a li navendek daneya sêyemîn hatî mêvandar kirin), ku nezelaliyê çareser dike % 50 / 50%, dengê xwe bidin yek ji partiyan. Koma sêyemîn di sê navendên daneyê de: yek master, du xulam, na cîhaza quorumê. Koma çaremîn ji çar pêşkêşkerên PostgreSQL, du ji her navenda daneyê pêk tê: yek master, kopiyên mayî, û her weha bikar tîne. şahîd c cîhaza quorumê. Ya çaremîn dikare têkçûna du server an yek navendek daneyê bisekine. Ger hewce be ev çareserî dikare bi hejmareke mezin a kopiyan were pîvandin.
Xizmeta wextê rast di heman demê de ji bo tolerasyona xeletiyê ji nû ve hatî saz kirin, lê ew rêbazê bixwe bikar tîne ntpd (moda sêwî). server Shared şahîd wekî serverek NTP-ya navendî tevdigere, dema xwe li hemî koman belav dike, bi vî rengî hemî pêşkêşkeran bi hev re hevdeng dike. Ger şahîd têk diçe an îzole dibe, wê hingê yek ji pêşkêşkerên komê (di nav komê de) dê dest bi belavkirina dema xwe bike. Auxiliary caching HTTP proxy jî rakir şahîd, bi alîkariya wê, makîneyên din ên virtual xwe bigihînin depoyên Yum. Di rastiyê de, karûbarên wekî wextê rast û proxies bi îhtîmalek mezin dê li ser serverên veqetandî werin mêvan kirin, lê di stûnê de ku ew li ser têne mêvan kirin şahîd tenê ji bo rizgarkirina hejmara makîneyên virtual û cîh.
Versiyon
v0. Li ser VirtualBox 7 bi CentOS 11 û PostgreSQL 6.1 re dixebite.
Struktura komê
Hemî kom têne sêwirandin ku di gelek navendên daneyê de werin bicîh kirin, di yek torê de bêne hev kirin û divê li ber têkçûn an veqetandina torê ya yek navendek daneyê bisekinin. Li rê da nabe ji bo parastinê bikar bînin perçe-mejî teknolojiya Pacemaker standard bi navê STONITH (Girêka Din Di Serê Bikin) an berbiçav. Esasê wê: heke girêkên di komê de dest bi gumanê bikin ku tiştek bi hin nodek re xelet e, ew bersiv nade an xelet tevdigere, wê hingê ew bi zorê wê bi navgîniya cîhazên "derve" veqetînin, mînakî, qerta kontrolê ya IPMI an UPS. . Lê ev ê tenê di rewşên ku, di bûyerek yek têkçûn de, servera IPMI an UPS-ê xebata xwe berdewam dike de bixebite. Li vir em plan dikin ku li hember têkçûnek pir felaketkar biparêzin, dema ku tevahiya navenda daneyê têk diçe (mînak, hêz winda dike). Û bi redkirina weha, her tişt stonith- cîhazên (IPMI, UPS, hwd.) jî dê nexebitin.
Di şûna wê de, pergal li ser bingeha ramana quorumê ye. Hemî girêk xwedî deng in, û tenê yên ku dikarin zêdetirî nîvê hemî girêkan bibînin dikarin bixebitin. Ji vê mîqdara "nîv + 1" re tê gotin quorum. Ger hejmar negihîje, wê hingê girê biryar dide ku ew di veqetandina torê de ye û divê çavkaniyên xwe qut bike, ango. ev çi ye parastina perçe-mejî. Ger nermalava ku ji vê tevgerê berpirsiyar e nexebite, wê hingê çavdêriyek, mînakî, li ser bingeha IPMI-yê, neçar e ku bixebite.
Ger hejmara girêkan jî be (komek di du navendên daneyê de), wê hingê dibe ku bi navê nezelaliyê derkeve. % 50 / 50% (pêncî û pêncî) dema ku veqetandina torê komê tam di nîvî de dabeş dike. Ji ber vê yekê, ji bo hejmareke zewacê ya girêkan, em lê zêde dikin cîhaza quorumê şeydanek bêdawî ye ku dikare li ser makîneya virtual ya herî erzan a di navendek daneya sêyemîn de were destpêkirin. Ew dengê xwe dide yek ji beşan (ya ku ew dibîne), û bi vî rengî 50% / 50% nezelaliyê çareser dike. Min navê servera ku dê cîhaza quorumê li ser were destpêkirin da şahîd (termînolojiya ji repmgr, min jê hez kir).
Çavkanî dikarin ji cîhek cîhek din werin veguheztin, mînakî, ji serverên xelet berbi yên saxlem, an jî bi fermana rêvebirên pergalê. Ji ber vê yekê ku xerîdar zanibin ku çavkaniyên ku ew hewce ne li ku ne (li ku derê ve girêdidin?), IP-ya herikîn (float IP). Vana IP-yên ku Pacemaker dikare li dora girêkan bigere (her tişt li ser torgilokek zevî ye). Her yek ji wan çavkaniyek (xizmetek) sembolîze dike û dê li cîhê ku hûn hewce ne ku pê ve girêdayî bin ji bo ku hûn bigihîjin vê karûbarê (di rewşa me de, databasek) de cih digirin.
Tuchanka1 (cirkuya bi tevlihevkirinê)
avahiya

Fikir ev bû ku me gelek databasên piçûk ên bi barkirina kêm hene, ji bo ku ji bo danûstendinên tenê xwendinê ne hewce ye ku meriv serverek xulamê veqetandî di moda standby-ya germ de biparêze (ne hewce ye ku çavkaniyek wusa winda bike).
Her navendek daneyê yek serverek heye. Her serverek du mînakên PostgreSQL hene (di termînolojiya PostgreSQL de ji wan re komik têne gotin, lê ji bo ku tevliheviyê nekim ez ê ji wan re mînakan bibêjim (bi analogî bi databasên din re), û ez ê tenê ji komikên Pacemaker re bibêjim kom). Mînakek di moda masterê de dixebite, û tenê ew karûbar peyda dike (tenê IP-ya float ber bi wê ve diçe). Mînaka duyemîn wekî xulamek ji bo navenda daneya duyemîn dixebite, û dê karûbaran peyda bike tenê ger axayê wê têk biçe. Ji ber ku pir caran tenê yek mînakek ji du (master) dê karûbaran peyda bike (daxwazan pêk bîne), hemî çavkaniyên serverê ji bo masterê xweşbîn (bîr ji bo cache shared_buffers, hwd.) têne veqetandin, lê bi vî rengî mînaka duyemîn di heman demê de di bûyera têkçûna yek ji navendên daneyê de çavkaniyên têra xwe jî heye (her çend ji bo operasyona nebaş bi navgîniya cache pergala pelan de). Xulam di dema xebata normal a komê de karûbaran peyda nake (daxwazên tenê xwendinê pêk nayîne), da ku li ser heman makîneyê bi masterê re şer ji bo çavkaniyan nebe.
Di doza du girêkan de, tolerasyona xeletiyê tenê bi dubarekirina asînkronî re gengaz e, ji ber ku bi dubarekirina hevdemî, têkçûna xulamê dê bibe sedema rawestandina masterê.
Nebûna şahidiyê

Nebûna şahidiyê (cîhaza quorumê) Ez ê tenê ji bo koma Tuchanka1 bihesibînim, bi hemî yên din re ew ê heman çîrok be. Ger şahid têk neçe, dê tiştek di avahiya komê de neguhere, dê her tişt bi heman awayê ku kir berdewam bike. Lê jimar dê bibe 2 ji 3, û ji ber vê yekê her têkçûnek paşê dê ji bo komê kujer be. Dê hîn jî bi lezgînî were sererast kirin.
Tuchanka1 redkirin

Têkçûna yek ji navendên daneyê ji bo Tuchanka1. Di vê rewşê de şahîd dengê xwe dide girêka duyemîn di navendek daneya duyemîn de. Li wir, xulamê berê vediguhere axayek, di encamê de, her du axayan li ser heman serverê dixebitin û her du IP-yên float wan ji wan re destnîşan dikin.
Tuchanka2 (klasîk)
avahiya

Plana klasîk a du girêkan. Axayî li ser yekî, kole li ser ya duyem dixebite. Her du jî dikarin daxwazan pêk bînin (xulam tenê tê xwendin), ji ber vê yekê her du jî ji hêla IP-ya float ve têne destnîşan kirin: krogan2 serwer e, krogan2s1 xulam e. Xwedî û xulam hem dê xwedîyê xeletiyê bin.
Di rewşa du girêkan de, tolerasyona xeletiyê tenê bi dubarekirina asynkronî re gengaz e, ji ber ku bi dubarekirina hevdemî re, têkçûna xulam dê bibe sedema rawestandina masterê.
Tuchanka2 redkirin

Ger yek ji navendên daneyê têk biçe şahîd deng dide ya duyem. Li ser yekane navenda daneya xebatê, master dê were rakirin, û her du IP-yên float wê nîşan bidin: master û xulam. Bê guman, pêdivî ye ku mînak bi vî rengî were mîheng kirin ku têra wê çavkaniyên (sînorên pêwendiyê, hwd.) hebe ku bi hevdemî hemî girêdan û daxwazên ji master û xulamê float IP-yê qebûl bike. Ango, di dema xebata normal de pêdivî ye ku têra xwe bi sînor hebe.
Tuchanka4 (gelek kole)
avahiya

Jixwe ekstremek din. Databas hene ku gelek daxwazên tenê-xwendewariyê werdigirin (dozek tîpîk a malperek bargiraniyek bilind). Tuchanka4 rewşek e ku dibe ku sê an bêtir xulam hebin ku daxwazên weha bicîh bînin, lê dîsa jî ne pir zêde ne. Digel hejmareke pir mezin a koleyan, pêdivî ye ku meriv pergalek dubarekirina hiyerarşîk îcad bike. Di rewşa herî kêm de (di wêneyê de), her du navendên daneyê du server hene, her yek bi mînakek PostgreSQL.
Taybetmendiyek din a vê nexşeyê ev e ku jixwe gengaz e ku meriv yek dubarekirina hevdemî organîze bike. Ew tête mîheng kirin ku, heke gengaz be, ji navendek daneya din re were dubare kirin, ne ji kopiyek di heman navenda daneyê ya masterê de. Serwer û her xulam ji hêla IP-ya float ve têne destnîşan kirin. Bi bextewarî, di navbera koleyan de dê hewce be ku bi rengekî daxwazan hevseng bikin sql proxy, ji bo nimûne, li aliyê muwekîlê. Cûreyên cûda yên xerîdar dibe ku cûreyên cûda hewce bike sql proxy, û tenê pêşdebirên xerîdar dizanin ku kî hewce dike. Ev fonksiyon dikare ji hêla daemonek derveyî ve an jî ji hêla pirtûkxaneyek xerîdar (hewza girêdanê) ve were bicîh kirin. Hemî ev ji mijara komek databasa têkçûyî wêdetir e (failover proxy SQL dikare serbixwe, bi hev re bi tolerasyona xeletiya xerîdar re were bicîh kirin).
Tuchanka4 redkirin

Ger navendek daneyê (ango, du server) têk biçin, şahid ji bo ya duyemîn deng dide. Wekî encamek, du pêşkêşker hene ku di navenda daneya duyemîn de dixebitin: yek masterek dimeşîne, û IP-ya masterê float wê nîşan dide (ji bo wergirtina daxwazên xwendin-nivîsandinê); û li ser servera duyemîn xulamek heye ku bi dubarekirina hevdem ve dimeşe, û yek ji IP-yên float-ê xulam jê re destnîşan dike (ji bo daxwazên tenê xwendinê).
Yekem tiştê ku divê were zanîn ev e ku ne hemî IP-yên float ên xulam dê karker bin, lê tenê yek. Û ji bo ku bi wê re rast bixebitin, ew ê hewce bike sql proxy hemî daxwazan beralî kir tenê IP-ya float ya mayî; û eger sql proxy na, wê hingê hûn dikarin hemî xulamên IP-ya float-ê ku di URL-ya girêdanê de bi koman têne veqetandin navnîş bikin. Di vê rewşê de, bi libpq girêdan dê bi IP-ya yekem a xebatê re be, ev di pergala ceribandina otomatîkî de tête kirin. Dibe ku di pirtûkxaneyên din de, mînakî, JDBC, ev ê nexebite û pêdivî ye sql proxy. Ev tê kirin ji ber ku IP-yên float ji bo koleyan qedexe ye ku bi hevdemî li ser yek serverek werin rakirin, da ku heke çend ji wan dixebitin ew bi rengek wekhev di nav pêşkêşkerên xulam de têne belav kirin.
Duyemîn: Tewra di bûyera têkçûna navenda daneyê de, dê dubarekirina hevdemî were domandin. Û tewra heke têkçûnek duyemîn çêbibe, ango yek ji du serverên di navenda daneya mayî de têk biçe, kom, her çend ew ê pêşkêşkirina karûbaran rawestîne, lê dîsa jî dê agahdariya li ser hemî danûstendinên pabendî yên ku ji bo wan pejirandina sozê daye bigire. (di doza têkçûna duyemîn de dê agahdariya windabûnê tune be).
Tuchanka3 (3 navendên daneyê)
avahiya

Ev komek ji bo rewşek e ku sê navendên daneyê bi tevahî kar dikin hene, ku her yek ji wan serverek databasa bi tevahî bikêrhatî heye. Di vê rewşê de cîhaza quorumê ne hewce ye. Navendek daneyê ji hêla masterek ve tê xebitandin, duyên din ji hêla koleyan ve têne xebitandin. Berberî hevdem e, binivîsin ANY (slave1, slave2), ango dema ku yek ji xulaman yekem be ku bersivê bide ku wî soz qebûl kiriye, dê xerîdar erêkirina peywirê werbigire. Çavkanî bi yek IP-ya float ji bo master û du ji bo koleyan têne destnîşan kirin. Berevajî Tuchanka4, her sê IP-yên float-toleransê xelet in. Ji bo balansa pirsên SQL-tenê xwendinê hûn dikarin bikar bînin sql proxy (bi tolerasyona xeletiya cûda), an IP-ya xulamê float ji nîvê xerîdaran re, û nîvê din jî ji ya duyemîn re destnîşan bikin.
Tuchanka3 redkirin

Ger yek ji navendên daneyê têk biçe, du dimînin. Di yekê de, IP-ya master û float ji masterê têne rakirin, di ya duyemîn de - IP-yên koledar û hem jî koledar ên float (nimûne pêdivî ye ku rezervek ducarî ya çavkaniyan hebe da ku hemî girêdan ji her du IP-yên float ên koledar qebûl bike). Di navbera axa û koleyan de dubarekirina hevdem. Di heman demê de, kom dê di bûyera hilweşandina du navendên daneyê de (heke ew di hevdemî de neyên hilweşandin) agahdariya di derheqê danûstendinên pabend û pejirandî de tomar bike (dê windabûna agahdarî tune be).
Min biryar da ku ez ravek hûrgulî ya sazûman û bicîhkirina pelê negirim. Her kesê ku bixwaze li dora xwe bilîze dikare hemî di README de bixwîne. Ez tenê şiroveyek ceribandina otomatîkî pêşkêşî dikim.
Pergala ceribandina otomatîkî
Ji bo ceribandina tolerasyona xeletiya koman bi simulkirina xeletiyên cihêreng, pergalek ceribandina otomatîkî hate afirandin. Ji hêla senaryoyê ve hatî destpêkirin test/failure. Skrîpt dikare wekî parametre hejmarên komikên ku hûn dixwazin ceribandinê bigirin. Mînak ev ferman:
test/failure 2 3dê tenê koma duyemîn û sêyemîn biceribîne. Ger parametre neyên diyar kirin, wê hingê dê hemî kom bêne ceribandin. Hemî kom bi paralel têne ceribandin, û encam di panelê tmux de tê xuyang kirin. Tmux serverek tmux-ê veqetandî bikar tîne, ji ber vê yekê skrîpt dikare ji binê tmux-a xwerû were xebitandin, û di encamê de tmux-ya hêlîn çêbibe. Ez pêşniyar dikim ku termînalê di pencereyek mezin û bi tîpek piçûk de bikar bînin. Berî ku ceribandin dest pê bike, dema ku nivîs temam dibe, hemî makîneyên virtual vedigerin wêneyek setup.

Termînalê li gorî hejmara komên ku têne ceribandin li stûnan tê dabeş kirin; ji hêla xwerû (di dîmenê de) çar hene. Ez ê naveroka stûnan bi mînaka Tuchanka2 vebêjim. Panelên di dîmenderê de têne jimartin:
- Statîstîkên testê li vir têne xuyang kirin. Stûn:
- têkçûnî - navê testê (fonksiyona di skrîptê de) ku xeletiyê dike.
- bersivî - Dema navînî ya hejmarî di çirkeyan de ku komê fonksiyona xwe vedigire. Ew ji destpêka skrîptê de ku xeletiyek emel dike heya dema ku kom fonksiyona xwe sererast dike û karibe peydakirina karûbaran bidomîne tê pîvan. Ger dem pir kurt be, wek nimûne, şeş saniye (ev di komên bi çend xulaman de pêk tê (Tuchanka3 û Tuchanka4)), ev tê vê wateyê ku xeletî li ser xulamê asynchronous bû û bi ti awayî bandor li performansê nekir; tunebûn guheztinên dewleta komê.
- ferq - belavbûna (rastbûna) nirxê nîşan dide bersivî bikaranîna rêbaza veqetandina standard.
- jimartin - ev ceribandin çend caran hate kirin.
- Têketinek kurt dihêle hûn binirxînin ka kom niha çi dike. Hejmara dubarekirinê (ceribandin), nîşana demjimêr û navê operasyonê têne xuyang kirin. Zêde dirêj xebitîn (> 5 hûrdem) pirsgirêkek nîşan dide.
- dil (dil) - dema niha. Ji bo nirxandina dîtbarî ya performansê mamoste Dema niha bi domdarî bi karanîna master IP-ya float li ser maseya xwe tê nivîsandin. Ger serketî be, encam di vê panelê de tê xuyang kirin.
- lêdan (puls) - "dema niha", ku berê ji hêla senaryoyê ve hatî tomar kirin dil ji bo master, niha ji xwendin xûlam bi rêya IP-ya wê ya float. Destûrê dide we ku hûn bi dîtbarî performansa xulam û dubarekirinê binirxînin. Li Tuchanka1 xulamên bi IP-ya float tune (tu xulam karûbaran peyda nakin), lê du mînak (DB) hene, ji ber vê yekê ew ê li vir neyê xuyang kirin lêdanû dil mînaka duyemîn.
- Çavdêriya tenduristiya komê bi karanîna karûbar
pcs mon. Struktura, belavkirina çavkaniyan li ser girêkan û agahdariya kêrhatî ya din nîşan dide. - Çavdêriya pergalê ji her makîneya virtual ya di komê de li vir tê xuyang kirin. Dibe ku li gorî çend makîneyên virtual yên komê hene, panelên weha zêdetir hebin. Du grafîk Barkirina CPU (makîneyên virtual du pêvajo hene), navê makîneya virtual, Pergala Barkirinê (navê Load Average tê gotin ji ber ku ew di nav 5, 10 û 15 hûrdeman de navînî ye), daneya pêvajoyê û dabeşkirina bîranînê.
- Şopa senaryoyê ku ceribandinê dike. Di bûyera xirabûnê de - qutbûnek ji nişka ve an çerxek bendewariya bêdawî - li vir hûn dikarin sedema vê tevgerê bibînin.
Testkirin di du qonaxan de tê kirin. Pêşîn, skrîpt di her cûre ceribandinan re derbas dibe, bi rasthatinî makîneyek virtual hildibijêre ku tê de vê ceribandinê bicîh bîne. Dûv re çerxek bêdawî ya ceribandinê tête kirin, makîneyên virtual û xeletî her carê bi rengek bêkêmasî têne hilbijartin. Ji nişka ve bidawîkirina skrîpta ceribandinê (panela jêrîn) an dorpêkek bêdawî ya li benda tiştekî (> 5 hûrdem dema darvekirinê ji bo yek operasyonê, ev di şopê de tê dîtin) destnîşan dike ku hin ceribandinên li ser vê komê têk çûne.
Her test ji operasyonên jêrîn pêk tê:
- Fonksiyonek ku xeletiyek emulate dike dest pê bikin.
- Amade? - li benda vegerandina komê ne (gava ku hemî karûbar têne peyda kirin).
- Dema vegerandina komê nîşan dide (bersivî).
- Pêvekirin - komik tê "tamîrkirin". Piştî vê yekê divê ew vegere rewşek bi tevahî xebitandinê û ji bo xirabûna din amade be.
Li vir navnîşek îmtîhanan e ku bi şirovekirina tiştên ku ew dikin hene:
- ForkBomb: Bi bikaranîna bombeya qalikê "Ji bîrê" diafirîne.
- OutOfSpace: Hîsp tijî ye. Lê ceribandin pir sembolîk e; digel barkirina ne girîng a ku di dema ceribandinê de tê afirandin, PostgreSQL bi gelemperî gava ku dîska hişk tije ye têk naçe.
- Postgres-KILL: PostgreSQL bi fermanê dikuje
killall -KILL postgres. - Postgres-STOP: Fermana PostgreSQL daliqandiye
killall -STOP postgres. - hêz jêkirin: Bi fermanê makîneya virtual "de-enerjî dike".
VBoxManage controlvm "виртуалка" poweroff. - reset bike: bi fermanê makîneya virtual zêde bar dike
VBoxManage controlvm "виртуалка" reset. - SBD-STOP: bi fermanê cinê SBD rawestîne
killall -STOP sbd. - Temirandin: bi rêya SSH fermanek ji makîneya virtual re dişîne
systemctl poweroff, pergal bi kerem diteqe. - UnLink: îzolekirina torê, ferman
VBoxManage controlvm "виртуалка" setlinkstate1 off.
Temamkirina ceribandinê an bi karanîna fermana tmux standard "kuştin-pencereyê" Ctrl-b &, an fermana "veqetandin-muwekîlê". Ctrl-b d: Di vê gavê de ceribandin bi dawî dibe, tmux diqede, makîneyên virtual têne girtin.
Pirsgirêkên ku di dema ceribandinê de têne naskirin
Di vê kêliyê de nobedar cin sbd li ser rawestandina şeytanên çavdêrîkirî dixebite, lê ne cemidandina wan. Û, di encamê de, xeletiyên ku tenê dibe sedema cemidandinê Corosync и aştîkaran, lê ne daleqandî sbd... Ji bo kontrolê Corosync jixwe heye , li ser mijarê qebûl kirin mamoste. Wan soz da (di PR # 83 de) ku dê ji bo Pacemaker tiştek wusa hebe, ez hêvî dikim ku ji hêla Red Hat 8 dê bike. Lê "xerabiyên" weha spekulatîf in û dikarin bi hêsanî bi rengek sûnî werin simul kirin, mînakî,
killall -STOP corosync, lê di jiyana rast de tu carî hev nabînin.У aştîkaran di guhertoya ji bo CentOS 7 xelet danîn sync_timeout у cîhaza quorumê, di encamê da , ku diviya bû ku axayê wê biçûya. Bi mezinbûnê tê derman kirin sync_timeout у cîhaza quorumê di dema sazkirinê de (di skrîptê de
setup/setup1). Ev guhertin ji hêla pêşdebiran ve nehat qebûl kirin aştîkaran, di şûna wê de wan soz da ku binesaziyê bi rengekî ji nû ve dîzayn bikin (di pêşerojek ne diyar de) ku ev dem dê bixweber were hesibandin.Ger veavakirina databasê diyar dike ku
LC_MESSAGES(peyamên nivîsê) Unicode dikare were bikar anîn, mînak.ru_RU.UTF-8, paşê di destpêkê de postgres li hawîrdorek ku cîh ne UTF-8 e, li hawîrdorek vala bêje (li vir aştîkaran+pgsqlms(paf) direve postgres), wê hingê . Pêşdebirên PostgreSQL li hev nekirine ku di vê rewşê de çi bikin. Mesref e, hûn hewce ne ku saz bikinLC_MESSAGES=en_US.UTF-8dema mîhengkirin (çêkirina) mînakek databasê.Ger wal_receiver_timeout were danîn (bi xwerû ew 60s e), wê hingê di dema ceribandina PostgreSQL-STOP de li ser masterê di komikên tuchanka3 û tuchanka4 de. . Li wir dubarekirin hevdem e, ji ber vê yekê ne tenê xulam disekine, lê di heman demê de axayê nû jî disekine. Dema ku PostgreSQL mîheng dike, wal_receiver_timeout=0 saz dike.
Car carinan min di ceribandina ForkBomb de (zêdebûna bîrê) di PostgreSQL de qeşakirina dubarekirinê dît. . Min tenê di komikên tuchanka3 û tuchanka4 de bi vê yekê re rû bi rû maye, li cihê ku master ji ber dubarekirina hevdemî cemidiye. Pirsgirêk piştî demek dirêj (nêzîkî du saetan) bi serê xwe çû. Ji bo rastkirina vê yekê bêtir lêkolîn hewce ye. Nîşan dişibin buga berê, ku ji ber sedemek cûda çêdibe, lê bi heman encaman.
Wêneya Krogan ji hatî kişandin bi destûra nivîskar:

Source: www.habr.com
