Introduzzjoni
Xi żmien ilu ingħatajt il-kompitu li niżviluppa cluster ta' failover għal , li joperaw f'diversi ċentri tad-dejta konnessi b'fibra ottika f'belt waħda, u kapaċi jifilħu ħsara (pereżempju, qtugħ ta' dawl) ta' ċentru tad-dejta wieħed. Bħala s-softwer li huwa responsabbli għat-tolleranza tal-ħsarat, għażilt għaliex din hija s-soluzzjoni uffiċjali minn RedHat għall-ħolqien ta 'clusters ta' failover. Huwa tajjeb għaliex RedHat jipprovdi appoġġ għaliha, u minħabba li din is-soluzzjoni hija universali (modulari). Bl-għajnuna tagħha, se jkun possibbli li tiġi żgurata t-tolleranza tal-ħsarat mhux biss ta 'PostgreSQL, iżda wkoll ta' servizzi oħra, jew billi tuża moduli standard jew toħloqhom għal bżonnijiet speċifiċi.
Din id-deċiżjoni qajmet mistoqsija raġonevoli: kemm se jkun tolleranti għall-ħsarat cluster ta' failover? Biex tinvestiga dan, żviluppajt bank tat-test li jissimula diversi fallimenti fuq in-nodi tal-cluster, jistenna li s-servizz jiġi restawrat, jirkupra n-nodu fallut, u jkompli jittestja f'linja. Dan il-proġett oriġinarjament kien jissejjaħ hapgsql, iżda maż-żmien ddejjaq bl-isem, li kellu biss vokali waħda. Għalhekk, bdejt insejjaħ databases tolleranti għall-ħsarat (u float IP tipponta lejhom) krogan (karattru minn logħba tal-kompjuter li fiha l-organi importanti kollha huma duplikati), u nodi, clusters u l-proġett innifsu huma tuchanka (il-pjaneta fejn jgħixu l-krogans).
Issa l-maniġment ippermettiet . Il-README dalwaqt se jiġi tradott għall-Ingliż (għax huwa mistenni li l-konsumaturi ewlenin se jkunu l-iżviluppaturi Pacemaker u PostgreSQL), u ddeċidejt li nippreżenta l-verżjoni Russa l-antika tar-README (parzjalment) fil-forma ta’ dan l-artikolu.

Clusters huma skjerati fuq magni virtwali . Se jiġu skjerati total ta' 12-il magna virtwali (36GiB b'kollox), li jiffurmaw 4 clusters li jifilħu għall-ħsarat (għażliet differenti). L-ewwel żewġ gruppi jikkonsistu f'żewġ servers PostgreSQL, li jinsabu f'ċentri tad-dejta differenti, u server komuni Xhud c apparat tal-kworum (ospitat fuq magna virtwali irħisa fit-tielet ċentru tad-dejta), li ssolvi l-inċertezza 50% / 50%, billi tagħti l-vot tiegħek lil waħda mill-partijiet. It-tielet raggruppament fi tliet ċentri tad-dejta: kap wieħed, żewġ skjavi, le apparat tal-kworum. Ir-raba 'cluster jikkonsisti f'erba' servers PostgreSQL, tnejn għal kull ċentru tad-dejta: kaptan wieħed, il-bqija repliki, u juża wkoll Xhud c apparat tal-kworum. Ir-raba 'jiflaħ il-falliment ta' żewġ servers jew ċentru tad-dejta wieħed. Din is-soluzzjoni tista 'tiġi skalata għal numru akbar ta' repliki jekk meħtieġ.
Servizz ta 'ħin preċiż ikkonfigurat mill-ġdid ukoll għat-tolleranza tal-ħsarat, iżda juża l-metodu innifsu ntpd (mod orfni). Server kondiviż Xhud jaġixxi bħala server NTP ċentrali, iqassam il-ħin tiegħu lill-clusters kollha, u b'hekk jissinkronizza s-servers kollha ma 'xulxin. Jekk Xhud jonqos jew isir iżolat, allura wieħed mis-servers tal-cluster (fi ħdan il-cluster) jibda jqassam il-ħin tiegħu. Caching awżiljarju Prokura HTTP imqajma wkoll biex Xhud, bl-għajnuna tagħha, magni virtwali oħra għandhom aċċess għar-repożitorji Yum. Fir-realtà, servizzi bħal ħin preċiż u prokuri x'aktarx se jkunu ospitati fuq servers dedikati, iżda fil-kabina huma ospitati fuq Xhud biss biex tiffranka n-numru ta 'magni virtwali u spazju.
Verżjonijiet
v0. Jaħdem ma 'CentOS 7 u PostgreSQL 11 fuq VirtualBox 6.1.
Struttura tal-cluster
Il-clusters kollha huma ddisinjati biex ikunu jinsabu f'diversi ċentri tad-dejta, magħquda f'netwerk ċatt wieħed u għandhom jifilħu falliment jew iżolament tan-netwerk ta' ċentru tad-dejta wieħed. Għalhekk huwa impossibbli użu għall-protezzjoni kontra moħħ maqsum teknoloġija Pacemaker standard imsejħa STONITH (Spara L-Oħra Node Fir-Ras) jew fencing. L-essenza tagħha: jekk in-nodi fil-cluster jibdew jissuspettaw li xi ħaġa ħażina ma 'xi node, ma tkunx qed tirrispondi jew qed iġib ruħha b'mod żbaljat, imbagħad itfiha bil-forza permezz ta' apparati "esterni", pereżempju, karta ta 'kontroll IPMI jew UPS . Iżda dan jaħdem biss f'każijiet fejn, f'każ ta' falliment wieħed, is-server IPMI jew UPS ikompli jaħdem. Hawnhekk qed nippjanaw li nipproteġu kontra falliment ħafna aktar katastrofiku, meta ċ-ċentru tad-dejta kollu jfalli (pereżempju, jitlef l-enerġija). U b'tali rifjut, kollox stonith-apparati (IPMI, UPS, eċċ.) ukoll ma jaħdmux.
Minflok, is-sistema hija bbażata fuq l-idea ta 'kworum. In-nodi kollha għandhom vuċi, u dawk biss li jistgħu jaraw aktar minn nofs in-nodi kollha jistgħu jaħdmu. Dan l-ammont ta '"nofs + 1" jissejjaħ kworum. Jekk il-kworum ma jintlaħaqx, allura n-nodu jiddeċiedi li huwa f'iżolament tan-netwerk u għandu jitfi r-riżorsi tiegħu, i.e. dan huwa dak li hu protezzjoni tal-moħħ maqsum. Jekk is-softwer li huwa responsabbli għal din l-imġieba ma jaħdimx, allura għassies, pereżempju, ibbażat fuq IPMI, ikollu jaħdem.
Jekk in-numru ta 'nodi huwa ugwali (cluster f'żewġ ċentri tad-dejta), allura tista' tqum l-hekk imsejħa inċertezza 50% / 50% (ħamsin u ħamsin) meta l-iżolament tan-netwerk jaqsam il-cluster eżattament bin-nofs. Għalhekk, għal numru ugwali ta 'nodi, aħna żid apparat tal-kworum huwa daemon mhux esiġenti li jista 'jiġi mniedi fuq l-orħos magna virtwali fit-tielet ċentru tad-data. Jagħti l-vot tiegħu lil wieħed mis-segmenti (li jara), u b'hekk isolvi l-inċertezza ta' 50%/50%. Semmejt is-server li fuqu se jitnieda l-apparat tal-kworum Xhud (terminoloġija minn repmgr, għoġobni).
Ir-riżorsi jistgħu jiġu mċaqalqa minn post għall-ieħor, pereżempju, minn servers difettużi għal dawk b'saħħithom, jew fuq il-kmand tal-amministraturi tas-sistema. Sabiex il-klijenti jkunu jafu fejn jinsabu r-riżorsi li għandhom bżonn (fejn għandhom jgħaqqdu?), IP galleġġjanti (float IP). Dawn huma IPs li Pacemaker jista 'jiċċaqlaq madwar nodes (kollox jinsab fuq netwerk ċatt). Kull wieħed minnhom jissimbolizza riżorsa (servizz) u se jkun jinsab fejn għandek bżonn tikkonnettja sabiex tikseb aċċess għal dan is-servizz (fil-każ tagħna, database).
Tuchanka1 (ċirkwit b'kompattazzjoni)
Struttura

L-idea kienet li għandna ħafna databases żgħar b'tagħbija baxxa, li għalihom mhuwiex profittabbli li jinżamm server slave dedikat f'modalità ta 'standby sħun għal transazzjonijiet li jinqraw biss (m'hemmx bżonn ta' tali ħela ta 'riżorsi).
Kull ċentru tad-dejta għandu server wieħed. Kull server għandu żewġ istanzi PostgreSQL (fit-terminoloġija PostgreSQL jissejħu clusters, iżda biex tiġi evitata l-konfużjoni se nsejjaħilhom istanzi (b'analoġija ma' databases oħra), u se nsejjaħ biss clusters ta' Pacemaker). Istanza waħda topera fil-modalità master, u hija biss tipprovdi servizzi (float IP biss twassal għaliha). It-tieni istanza taħdem bħala skjav għat-tieni ċentru tad-dejta, u se tipprovdi servizzi biss jekk il-kaptan tagħha jonqos. Peress li ħafna mill-ħin istanza waħda biss minn tnejn (il-kaptan) se tipprovdi servizzi (jwettaq talbiet), ir-riżorsi kollha tas-server huma ottimizzati għall-kaptan (il-memorja hija allokata għall-cache shared_buffers, eċċ.), iżda sabiex it-tieni istanza għandu wkoll biżżejjed riżorsi (għalkemm għal operazzjoni subottimali permezz tal-cache tas-sistema tal-fajls) f'każ ta 'falliment ta' wieħed miċ-ċentri tad-dejta. L-iskjav ma jipprovdix servizzi (ma jwettaqx talbiet tal-qari biss) waqt it-tħaddim normali tal-cluster, sabiex ma jkunx hemm gwerra għar-riżorsi mal-kaptan fuq l-istess magna.
Fil-każ ta 'żewġ nodi, it-tolleranza tal-ħsarat hija possibbli biss b'replikazzjoni asinkronika, peress li b'replikazzjoni sinkronika, il-falliment ta' skjav iwassal għall-waqfien tal-kaptan.
Nuqqas ta' xhieda

Nuqqas ta' xhieda (apparat tal-kworum) Se nikkunsidra biss għall-cluster Tuchanka1, bl-oħrajn kollha se tkun l-istess storja. Jekk ix-xhud jonqos, xejn mhu se jinbidel fl-istruttura tal-cluster, kollox se jkompli jaħdem bl-istess mod kif għamel. Iżda l-kworum se jsir 2 minn 3, u għalhekk kwalunkwe falliment sussegwenti jkun fatali għall-cluster. Għad irid jiġi rranġat b'mod urġenti.
Tuchanka1 rifjut

Nuqqas ta' wieħed miċ-ċentri tad-dejta għal Tuchanka1. F'dan il-każ Xhud jitfa' l-vot tiegħu għat-tieni node fit-tieni ċentru tad-dejta. Hemmhekk, l-iskjav ta 'qabel jinbidel f'kaptan, bħala riżultat, iż-żewġ kaptani jaħdmu fuq l-istess server u ż-żewġ IP float tagħhom jindikaw lejhom.
Tuchanka2 (klassiku)
Struttura

Skema klassika ta 'żewġ nodi. Il-kaptan jaħdem fuq wieħed, l-iskjav fuq it-tieni. It-tnejn jistgħu jesegwixxu talbiet (l-iskjav jinqara biss), għalhekk it-tnejn huma indikati b'IP float: krogan2 huwa l-kaptan, krogan2s1 huwa l-iskjav. Kemm il-kaptan kif ukoll l-iskjav se jkollhom tolleranza għall-ħsarat.
Fil-każ ta 'żewġ nodi, it-tolleranza tal-ħsarat hija possibbli biss b'replikazzjoni asinkronika, minħabba li b'replikazzjoni sinkronika, il-falliment tal-iskjav iwassal għall-waqfien tal-kaptan.
Tuchanka2 rifjut

Jekk wieħed miċ-ċentri tad-dejta jfalli Xhud jivvota għat-tieni waħda. Fuq l-uniku ċentru tad-dejta li jaħdem, il-kaptan se jitqajjem, u ż-żewġ IP float se jindikaw lejh: il-kaptan u l-iskjav. Naturalment, l-istanza għandha tkun ikkonfigurata b'tali mod li jkollha biżżejjed riżorsi (limiti ta 'konnessjoni, eċċ.) Biex taċċetta simultanjament il-konnessjonijiet u t-talbiet kollha mill-float IP master u slave. Jiġifieri, waqt it-tħaddim normali għandu jkollu provvista suffiċjenti ta 'limiti.
Tuchanka4 (ħafna skjavi)
Struttura

Diġà estrem ieħor. Hemm databases li jirċievu ħafna talbiet li jinqraw biss (każ tipiku ta 'sit ta' tagħbija għolja). Tuchanka4 hija sitwazzjoni fejn jista 'jkun hemm tliet skjavi jew aktar biex jimmaniġġaw tali talbiet, iżda xorta mhux wisq. B'numru kbir ħafna ta 'skjavi, ikun meħtieġ li tivvinta sistema ta' replikazzjoni ġerarkika. Fil-każ minimu (fl-istampa), kull wieħed miż-żewġ ċentri tad-dejta għandu żewġ servers, kull wieħed b'istanza PostgreSQL.
Karatteristika oħra ta 'din l-iskema hija li diġà huwa possibbli li tiġi organizzata replikazzjoni sinkronika waħda. Huwa kkonfigurat biex jirreplika, jekk possibbli, għal ċentru tad-dejta ieħor, aktar milli għal replika fl-istess ċentru tad-dejta bħall-kaptan. Il-kaptan u kull skjav huma indikati minn IP float. Fortunatament, bejn l-iskjavi se jkun meħtieġ li t-talbiet jiġu bbilanċjati b'xi mod prokura sql, pereżempju, fuq in-naħa tal-klijent. Tipi differenti ta 'klijenti jistgħu jeħtieġu tipi differenti prokura sql, u l-iżviluppaturi tal-klijenti biss jafu min jeħtieġ liema. Din il-funzjonalità tista' tiġi implimentata jew minn daemon estern jew minn librerija tal-klijenti (pool ta' konnessjoni), eċċ. Dan kollu jmur lil hinn mis-suġġett ta' cluster ta' database ta' failover (failover prokura SQL jistgħu jiġu implimentati b'mod indipendenti, flimkien mat-tolleranza tal-ħtija tal-klijent).
Tuchanka4 rifjut

Jekk ċentru tad-dejta wieħed (jiġifieri żewġ servers) ifalli, ix-xhud jivvota għat-tieni. Bħala riżultat, żewġ servers qed jaħdmu fit-tieni ċentru tad-dejta: wieħed qed iħaddem master, u l-IP float kaptan jindika lejh (biex jirċievi talbiet ta 'qari u kitba); u fuq it-tieni server hemm skjav jaħdem b'replikazzjoni sinkronika, u wieħed mill-IPs float slave jipponta lejh (għal talbiet li jinqraw biss).
L-ewwel ħaġa li għandek tinnota hija li mhux l-IPs float tal-iskjavi kollha se jkunu ħaddiema, iżda wieħed biss. U biex taħdem magħha b'mod korrett ikun meħtieġ li prokura sql idderieġa t-talbiet kollha lejn l-uniku IP float li kien fadal; u jekk prokura sql le, allura tista' telenka l-iskjavi IP float kollha separati b'virgoli fil-URL tal-konnessjoni. F'dan il-każ, bil libpq il-konnessjoni se tkun għall-ewwel IP tax-xogħol, dan isir fis-sistema tal-ittestjar awtomatiku. Forsi f'libreriji oħra, pereżempju, JDBC, dan mhux se jaħdem u huwa meħtieġ prokura sql. Dan isir minħabba li float IPs għall-iskjavi huma pprojbiti milli jitqajmu simultanjament fuq server wieħed, sabiex ikunu mqassma b'mod ugwali fost servers slave jekk ikun hemm diversi minnhom jaħdmu.
It-tieni: anki fil-każ ta 'falliment taċ-ċentru tad-dejta, se tinżamm replikazzjoni sinkronika. U anki jekk isseħħ falliment sekondarju, jiġifieri, wieħed miż-żewġ servers fiċ-ċentru tad-dejta li jifdal ifalli, il-cluster, għalkemm se jieqaf jipprovdi servizzi, xorta jżomm informazzjoni dwar it-tranżazzjonijiet kollha impenjati li għalihom ikun ta konferma tal-impenn. (ma jkunx hemm informazzjoni dwar it-telf f'każ ta' falliment sekondarju).
Tuchanka3 (3 ċentri tad-dejta)
Struttura

Dan huwa raggruppament għal sitwazzjoni fejn hemm tliet ċentri tad-dejta li jiffunzjonaw bis-sħiħ, li kull wieħed minnhom għandu server tad-database li jaħdem bis-sħiħ. F'dan il-każ apparat tal-kworum mhux meħtieġ. Ċentru tad-dejta wieħed huwa mħaddem minn kaptan, it-tnejn l-oħra huma mħaddma minn skjavi. Ir-replikazzjoni hija sinkronika, ittajpja KWALUNKWE (slave1, slave2), jiġifieri, il-klijent jirċievi konferma tal-kommit meta xi wieħed mill-iskjavi jkun l-ewwel li jwieġeb li jkun aċċetta l-kommit. Ir-riżorsi huma indikati b'IP float wieħed għall-kaptan u tnejn għall-iskjavi. B'differenza minn Tuchanka4, it-tliet IP float huma tolleranti għall-ħsarat. Biex tibbilanċja mistoqsijiet SQL li jinqraw biss tista' tuża prokura sql (b'tolleranza ta 'ħsara separata), jew jassenja slave float IP għal nofs il-klijenti, u n-nofs l-ieħor għat-tieni.
Tuchanka3 rifjut

Jekk wieħed miċ-ċentri tad-dejta jfalli, jibqgħu tnejn. F'wieħed, il-kaptan u l-float IP mill-kaptan huma mqajma, fit-tieni - l-iskjav u ż-żewġ slave float IPs (l-istanza għandu jkollha riżerva doppja ta 'riżorsi sabiex taċċetta l-konnessjonijiet kollha miż-żewġ slave float IPs). Replikazzjoni sinkronika bejn kaptani u skjavi. Ukoll, il-cluster se jiffranka informazzjoni dwar transazzjonijiet impenjati u kkonfermati (mhux se jkun hemm telf ta 'informazzjoni) fil-każ tal-qerda ta' żewġ ċentri tad-dejta (jekk ma jinqerdux simultanjament).
Iddeċidejt li ma ninkludix deskrizzjoni dettaljata tal-istruttura tal-fajl u l-iskjerament. Kull min irid jilgħab jista’ jaqra dan kollu fil-README. Qed nipprovdi biss deskrizzjoni tal-ittestjar awtomatizzat.
Sistema ta 'ttestjar awtomatiku
Biex tittestja t-tolleranza tal-ħsarat tal-clusters billi tissimula diversi difetti, inħolqot sistema ta 'ttestjar awtomatiku. Imniedi mill-iskript test/failure. L-iskrittura tista' tieħu bħala parametri n-numri ta' raggruppamenti li trid tittestja. Per eżempju dan il-kmand:
test/failure 2 3se jittestja biss it-tieni u t-tielet cluster. Jekk il-parametri mhumiex speċifikati, allura l-clusters kollha jiġu ttestjati. Il-clusters kollha huma ttestjati b'mod parallel, u r-riżultat jintwera fil-pannell tat-tmux. Tmux juża server tmux iddedikat, għalhekk l-iskript jista 'jitħaddem minn taħt tmux default, li jirriżulta f'tmux ibbed. Nirrakkomanda li tuża t-terminal f'tieqa kbira u b'tipa żgħira. Qabel ma jibda l-ittestjar, il-magni virtwali kollha jitreġġgħu lura għal snapshot fil-ħin li jitlesta l-iskrittura setup.

It-terminal huwa maqsum f'kolonni skont in-numru ta 'clusters li qed jiġu ttestjati b'mod awtomatiku (fil-screenshot) hemm erbgħa; Se niddeskrivi l-kontenut tal-kolonni billi tuża l-eżempju ta 'Tuchanka2. Il-pannelli fil-screenshot huma nnumerati:
- L-istatistika tat-test tidher hawn. Kolonni:
- falliment — l-isem tat-test (funzjoni fl-iskript) li jimita l-ħsara.
- reazzjoni — ħin medju aritmetiku f'sekondi li matulu l-cluster irkupra l-funzjonalità tiegħu. Huwa mkejjel mill-bidu tal-iskript li jimita ħsara sal-mument meta l-cluster jerġa 'jġib il-funzjonalità tiegħu u jkun jista' jkompli jipprovdi s-servizzi. Jekk il-ħin huwa qasir ħafna, per eżempju, sitt sekondi (dan jiġri fi gruppi b'diversi skjavi (Tuchanka3 u Tuchanka4)), dan ifisser li t-tort kien fuq l-iskjav mhux sinkroniku u ma affettwa l-prestazzjoni bl-ebda mod kien hemm; swiċċijiet tal-istat tal-cluster.
- devjazzjoni — turi l-firxa (eżattezza) tal-valur reazzjoni bl-użu tal-metodu tad-devjazzjoni standard.
- għadd — kemm-il darba sar dan it-test.
- Ġurnal qasir jippermettilek tevalwa dak li qed jagħmel il-cluster bħalissa. In-numru tal-iterazzjoni (test), it-timbru taż-żmien u l-isem tal-operazzjoni jintwerew. It-tħaddim twil wisq (> 5 minuti) jindika problema.
- qalb (qalb) - ħin kurrenti. Għall-valutazzjoni viżwali tal-prestazzjoni kaptani Il-ħin kurrenti huwa kontinwament miktub fuq it-tabella tiegħu bl-użu tal-float IP master. Jekk jirnexxi, ir-riżultat jintwera f'dan il-panel.
- taħbit (polz) - "ħin kurrenti", li qabel kien irreġistrat mill-iskript qalb biex kaptan, issa aqra minn skjav permezz tal-float IP tagħha. Jippermettilek tivvaluta viżwalment il-prestazzjoni tal-iskjav u r-replikazzjoni. F'Tuchanka1 m'hemm l-ebda skjavi b'IP float (l-ebda skjavi li jipprovdu servizzi), iżda hemm żewġ każijiet (DBs), għalhekk mhux se jintwera hawn taħbitU qalb it-tieni istanza.
- Monitoraġġ tas-saħħa tal-cluster bl-użu tal-utilità
pcs mon. Juri l-istruttura, id-distribuzzjoni tar-riżorsi fuq in-nodi u informazzjoni utli oħra. - Il-monitoraġġ tas-sistema minn kull magna virtwali fil-cluster huwa muri hawn. Jista 'jkun hemm aktar pannelli bħal dawn skond kemm għandu magni virtwali l-cluster. Żewġ graffs Tagħbija tas-CPU (magni virtwali għandhom żewġ proċessuri), isem tal-magna virtwali, Tagħbija tas-Sistema (imsemmi Tagħbija Medja minħabba li hija medja fuq 5, 10 u 15-il minuta), ipproċessa data u allokazzjoni tal-memorja.
- Traċċa tal-iskrittura li twettaq l-ittestjar. F'każ ta 'malfunzjoni - interruzzjoni f'daqqa ta' tħaddim jew ċiklu ta 'stennija bla tarf - hawn tista' tara r-raġuni għal din l-imġieba.
L-ittestjar isir f'żewġ stadji. L-ewwel, l-iskrittura tgħaddi minn kull tip ta 'testijiet, billi tagħżel b'mod każwali magna virtwali li għaliha tapplika dan it-test. Imbagħad isir ċiklu bla tarf ta 'ttestjar, il-magni virtwali u t-tort jintgħażlu b'mod każwali kull darba. Terminazzjoni f'daqqa tal-iskrittura tal-ittestjar (pannell tal-qiegħ) jew linja bla tarf ta 'stennija għal xi ħaġa (> ħin ta' eżekuzzjoni ta '5 minuti għal operazzjoni waħda, dan jista' jidher fit-traċċa) jindika li xi wħud mit-testijiet fuq dan il-cluster fallew.
Kull test jikkonsisti fl-operazzjonijiet li ġejjin:
- Tnedija funzjoni li timita ħsara.
- Lesti? — stennija li r-raggruppament jiġi restawrat (meta jiġu pprovduti s-servizzi kollha).
- Juri l-timeout tal-irkupru tal-cluster (reazzjoni).
- Waħħal — il-cluster qed jiġi "imsewwi." Wara dan għandu jerġa 'lura għal stat kompletament operattiv u jkun lest għall-ħsara li jmiss.
Hawnhekk hawn lista ta 'testijiet b'deskrizzjoni ta' dak li jagħmlu:
- ForkBomb: Joħloq "Minn memorja" bl-użu ta' bomba bil-furketta.
- Barra mill-Ispazju: Il-hard drive hija mimlija. Iżda t-test huwa pjuttost simboliku bit-tagħbija insinifikanti li tinħoloq waqt l-ittestjar, PostgreSQL normalment ma jfallix meta l-hard drive tkun mimlija.
- Postgres-QATTA: joqtol lil PostgreSQL bil-kmand
killall -KILL postgres. - Postgres-STOP: hangs kmand PostgreSQL
killall -STOP postgres. - Itfi: "de-energizes" il-magna virtwali bil-kmand
VBoxManage controlvm "виртуалка" poweroff. - Irrisettja: jgħabbi żejjed il-magna virtwali bil-kmand
VBoxManage controlvm "виртуалка" reset. - SBD-WAQQAF: tissospendi d-dimostrazzjoni SBD bil-kmand
killall -STOP sbd. - Għalaq: jibgħat kmand lill-magna virtwali permezz ta' SSH
systemctl poweroff, is-sistema tagħlaq bil-grazzja. - Unlink: iżolament tan-netwerk, kmand
VBoxManage controlvm "виртуалка" setlinkstate1 off.
Tlestija tal-ittestjar jew bl-użu tal-kmand standard tmux "kill-window" Ctrl-b &, jew il-kmand "detach-client". Ctrl-b d: f'dan il-punt jispiċċa l-ittestjar, tmux jagħlaq, il-magni virtwali jintfew.
Problemi identifikati waqt l-ittestjar
F'dan il-mument watchdog demon sbd jaħdem biex iwaqqaf id-daemons osservati, iżda mhux jiffriżahom. U, bħala riżultat, ħsarat li jwasslu għall-iffriżar biss Corosync и pacemaker, iżda mhux imdendlin sbd. Għall-kontroll Corosync diġà għandhom , aċċettati għall-ħajta kaptan. Wegħdu (fil-PR#83) li jkun hemm xi ħaġa simili għal Pacemaker, nispera li sa Red Hat 8 se tagħmel. Iżda "ħsarat" bħal dawn huma spekulattivi u jistgħu jiġu simulati faċilment b'mod artifiċjali bl-użu, pereżempju,
killall -STOP corosync, iżda qatt ma jiltaqgħu fil-ħajja reali.У pacemaker fil-verżjoni għal CentOS 7 issettjat ħażin sync_timeout у apparat tal-kworum, b'riżultat ta 'dan , li l-kaptan suppost kellu jiċċaqlaq. Vulkanizzat bit-tkabbir sync_timeout у apparat tal-kworum waqt l-iskjerament (fl-iskrittura
setup/setup1). Din l-emenda ma ġietx aċċettata mill-iżviluppaturi pacemaker, minflok wegħdu li se jiddisinjaw mill-ġdid l-infrastruttura b'tali mod (f'xi futur mhux speċifikat) li dan iż-żmien ta' skadenza jiġi kkalkulat awtomatikament.Jekk il-konfigurazzjoni tad-database tispeċifika dak
LC_MESSAGES(messaġġi) Unicode jista’ jintuża, eż.ru_RU.UTF-8, imbagħad fl-istartjar postgres f'ambjent fejn il-locale mhuwiex UTF-8, ngħidu aħna f'ambjent vojt (hawn paċemaker+pgsqlms(paf) runs postgres), allura . L-iżviluppaturi PostgreSQL ma qablux dwar x'għandhom jagħmlu f'dan il-każ. Tiswa, għandek bżonn tinstallaLC_MESSAGES=en_US.UTF-8meta tikkonfigura (toħloq) istanza tad-database.Jekk wal_receiver_timeout huwa stabbilit (b'mod awtomatiku huwa 60s), allura waqt it-test PostgreSQL-STOP fuq il-kaptan fil-clusters tuchanka3 u tuchanka4 . Ir-replikazzjoni hemm sinkronika, għalhekk mhux biss l-iskjav jieqaf, iżda wkoll il-kaptan il-ġdid. Taħdem madwar billi tistabbilixxi wal_receiver_timeout=0 meta tikkonfigura PostgreSQL.
Kultant osservajt l-iffriżar tar-replikazzjoni f'PostgreSQL fit-test ForkBomb (overflow tal-memorja). . Iltqajt ma' dan biss fir-raggruppamenti tuchanka3 u tuchanka4, fejn il-kaptan ffriżat minħabba replikazzjoni sinkronika. Il-problema spiċċat waħedha wara żmien twil (madwar sagħtejn). Hemm bżonn ta' aktar riċerka biex tikkoreġi dan. Is-sintomi huma simili għall-bug preċedenti, li huwa kkawżat minn raġuni differenti, iżda bl-istess konsegwenzi.
Stampa Krogan meħuda minn bil-permess tal-awtur:

Sors: www.habr.com
