Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Horudhac

Muddo ka hor waxaa la ii dhiibay hawsha ah in aan sameeyo koox guuldarraysa PostgreSQL, oo ka shaqeeya dhawr xarumood oo xog ah oo ku xidhan fibre indhaha oo ku yaala hal magaalo, awoodna u leh in ay u adkeysato fashilka (tusaale, madow) hal xarun xogeed. Anigoo ah software-ka ka mas'uulka ah dulqaadka qaladka, waxaan doortay pacemakersababtoo ah tani waa xalka rasmiga ah ee RedHat ee abuurista kooxo guuldaraystay. Way fiicantahay sababtoo ah RedHat waxay siisaa taageero, sababtoo ah xalkani waa mid caalami ah (modular). Caawimadeeda, waxay suurtogal noqon doontaa in la hubiyo u dulqaadashada khaladka ma aha oo kaliya PostgreSQL, laakiin sidoo kale adeegyada kale, iyada oo la adeegsanayo qaybo caadi ah ama loo abuurayo baahiyo gaar ah.

Go'aankani waxa uu dhaliyay su'aal macquul ah: sidee ayay u dulqaadan karaan khaladaadka kooxda guuldaraystay? Si aan tan u baadho, waxaan sameeyay kursi tijaabo ah oo u ekaysiiya guuldarrooyinka kala duwan ee qanjidhada kooxda, sugaya in adeega dib loo soo celiyo, soo kabsado noodhka guuldarraystay, oo sii wada tijaabada si wareeg ah. Mashruucan markii hore waxa la odhan jiray hapgsql, laakiin muddo ka dib waxa aan ka caajisay magacaas oo ahaa hal shaqal oo keliya. Sidaa darteed, waxaan bilaabay in aan waco xog-ururinta u dulqaadan kara (iyo sabbaynaysa IP iyaga oo tilmaamaya) krogan (dabeecad ka timid ciyaarta kombuyuutarka kaas oo dhammaan xubnaha muhiimka ah lagu koobay), iyo noodhka, rucubyada iyo mashruuca laftiisa ayaa ah tuchanka ( meeraha ay ku nool yihiin krogans).

Hadda maamulka ayaa oggolaaday u fur mashruuca bulshada isha furan ee hoos timaada shatiga MIT. README ayaa dhawaan loo turjumi doonaa Ingiriisi (sababtoo ah waxaa la filayaa in macaamiisha ugu muhiimsan ay noqon doonaan horumarinta Pacemaker iyo PostgreSQL), waxaanan go'aansaday inaan soo bandhigo nuqulkii hore ee Ruushka ee README (qayb ahaan) qaabka maqaalkan.

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Kooxuhu waxa lagu rakibay mishiinada casriga ah VirtualBox. Wadarta 12 mashiinnada farsamada gacanta (36GiB guud ahaan) ayaa la hawlgelin doonaa, kuwaas oo sameeya 4 kooxood oo u dulqaadan kara cilladaha (doorashooyinka kala duwan). Labada kooxood ee ugu horreeya waxay ka kooban yihiin laba adeegayaal PostgreSQL, kuwaas oo ku yaal xarumo xogeed oo kala duwan, iyo server caadi ah. markhaati c qalab korum (oo lagu martigeliyay mashiinka farsamada ee raqiis ah ee xarun xogeed saddexaad), kaas oo xalliya hubanti la'aanta 50% / 50%, siinta codkaaga mid ka mid ah xisbiyada. Kooxda saddexaad ee saddex xarumood xogta: hal sayid, laba addoommo, maya qalab korum. Kooxda afraad waxay ka kooban tahay afar adeegayaasha PostgreSQL, laba xarun xogeed kasta: hal sayid, nuqulka intiisa kale, iyo sidoo kale adeegsada markhaati c qalab korum. Midka afaraad wuxuu u adkeysan karaa fashilka laba server ama hal xarun xogeed. Xalkan waxaa lagu qiyaasi karaa tiro badan oo nuqul ah haddii loo baahdo.

Adeeg waqti sax ah ntpd sidoo kale dib loo habeeyey si loogu dulqaado khaladaadka, laakiin waxay isticmaashaa habka laftiisa ntpd (hab agoonta). Seerfar la wadaago markhaati Waxay u shaqeysaa sidii xarun dhexe oo NTP ah, waxayna u qaybineysaa waqtigiisa dhammaan kooxaha, si ay ula mideyso dhammaan server-yada midba midka kale. Hadii markhaati guuldareysta ama noqda mid go'doon ah, ka dib mid ka mid ah server-yada kooxda (kutlada dhexdeeda) ayaa bilaabi doona qaybinta waqtigeeda. kaydinta caawimada HTTP wakiil sidoo kale kor loogu qaaday markhaati, iyada oo la kaashanayo, mashiinada kale ee farsamada ayaa marin u leh kaydka Yum. Xaqiiqda, adeegyada sida wakhtiga saxda ah iyo wakiillada waxay u badan tahay in lagu martigelin doono server-yada gaarka ah, laakiin gudaha qolka waxaa lagu martigeliyaa markhaati kaliya si loo badbaadiyo tirada mashiinada farsamada iyo booska.

Versions

v0. Waxay la shaqeysaa CentOS 7 iyo PostgreSQL 11 ee VirtualBox 6.1.

Qaab dhismeedka kooxda

Dhammaan rucubyada waxaa loo qaabeeyey inay ku yaalliin xarumo xogeed badan, oo la isku daray hal shabakad oo fidsan waana inay u adkeystaan ​​fashilka ama go'doominta shabakadeed xarun xogeed. Taasi waa sababta waa wax aan macquul ahayn u isticmaal ka hortagga kala go'a maskaxda tignoolajiyada caadiga ah ee Pacemaker oo loo yaqaan STONITH (Ku toog qaybta kale ee madaxa) ama qulqulka. Nuxurkeeda: haddii qanjidhada kooxdu ay bilaabaan inay ka shakiyaan in ay wax ka khaldan yihiin noodhka qaar ka mid ah, ma aha mid ka jawaabaya ama si khaldan u dhaqmaya, ka dibna waxay si qasab ah u damiyaan qalabka "dibadda", tusaale ahaan, kaarka xakamaynta IPMI ama UPS . Laakiin tani waxay kaliya shaqayn doontaa kiisaska, haddii ay dhacdo hal guul darro, IPMI ama UPS server-ka uu sii wado inuu shaqeeyo. Halkan waxaan ku qorsheyneynaa inaan ka ilaalino fashilaad aad u daran, marka xarunta xogta oo dhan ay fashilanto (tusaale ahaan, lumiso awoodda). Iyo diidmadan oo kale, wax walba stonithQalabka (IPMI, UPS, iwm.) sidoo kale ma shaqeyn doonaan.

Taa bedelkeeda, nidaamku wuxuu ku salaysan yahay fikradda kooramka. Dhammaan qanjidhada waxay leeyihiin cod, oo kaliya kuwa arki kara in ka badan kala bar dhammaan qanjidhada ayaa shaqayn kara. Tiradan "nus + 1" ayaa loo yaqaan tirada. Haddii kooramku aanu gaadhin, markaas noodhka ayaa go'aaminaya inay ku jirto go'doon shabakadeed oo ay tahay inay damiso agabkeeda, i.e. tani waa waxa ay tahay ilaalinta maskaxda kala go'a. Haddii software-ka ka mas'uulka ah hab-dhaqankan aanu shaqayn, markaa ilaaliye, tusaale ahaan, ku salaysan IPMI, waa inuu shaqeeyo.

Haddii tirada noodyadu ay xitaa yihiin (kutlada laba xarumood oo xog ah), markaa waxa loogu yeero hubanti la'aan ayaa laga yaabaa inay soo baxdo. 50% / 50% (konton iyo konton) marka go'doominta shabakadu u qaybiso kutlada si sax ah kala badh. Sidaa darteed, tiro siman oo nood ah, waxaan ku darnaa qalab korum waa daemon aan la rabin oo lagu bilaabi karo mashiinka farsamada ugu jaban ee xarun xogeed saddexaad. Waxa uu codkiisa siinayaa qayb ka mid ah qaybaha (oo uu arko), oo uu ku xaliyo 50%/50% hubanti la'aanta. Waxaan magacaabay server-ka uu ku furmayo aaladda kooramka markhaati (erminology ka repmgr, waan ka helay).

Khayraadka waxaa loo wareejin karaa meel ilaa meel, tusaale ahaan, laga soo bilaabo server-yada khaldan oo loo wareejiyo kuwa caafimaadka qaba, ama amarka maamulayaasha nidaamka. Si ay macaamiishu u ogaadaan halka ay ku yaalaan agabka ay u baahan yihiin (halkee lagu xidhi karaa?), sabayn IP (sabayn IP). Kuwani waa IP-yada uu qalabka wadnaha ku dhaqaaqi karo hareeraha qanjidhada (wax walba waxay ku yaalliin shabakad fidsan). Mid kasta oo iyaga ka mid ah waxay astaan ​​​​u tahay kheyraad (adeeg) waxayna ku yaalliin meesha aad u baahan tahay inaad ku xirto si aad u hesho adeeggan (xaaladkeenna, database).

Tuchanka1 (wareeg leh oo isku xidhan)

Qaab-dhismeedka

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Fikradda waxay ahayd in aan haysano xog-ururin yar oo badan oo leh culeys hooseeya, taas oo aan faa'iido lahayn in la ilaaliyo server-ka addoonta ah ee loogu talagalay habka heeganka ah ee loogu talagalay akhrinta kaliya ee macaamilada (ma jirto baahi loo qabo qashinkaas oo kale).

Xarun kasta oo xogeed waxay leedahay hal server. Adeege kastaa waxa uu leeyahay laba tusaale oo PostgreSQL ah (Eray bixinta PostgreSQL waxa loogu yeedhaa kooxo, laakiin si aan iskaga ilaalino jaahwareerka waxa aan ugu yeedhi doonaa tusaaleyaal (iyaga oo la mid ah xogaha kale), waxa aan kaliya u wici doonaa kooxaha Pacemaker clusters). Mid ka mid ah tusaale ahaan wuxuu ku shaqeeyaa qaabka Master-ka, oo kaliya wuxuu bixiyaa adeegyo (kaliya IP sabaynta ayaa u horseedaysa). Tusaalaha labaad wuxuu u shaqeeyaa sidii addoon ahaan xarunta labaad ee xogta, wuxuuna bixin doonaa adeegyada kaliya haddii sayidkiisu ku guuldareysto. Maadaama waqtiga intiisa badan hal tusaale oo ka mid ah laba ka mid ah (sayidku) uu bixin doono adeegyo (fuliyo codsiyada), dhammaan agabyada server-ka ayaa loo hagaajiyay sayidkiisa (xusuusta waxaa loo qoondeeyay kaydinta share_buffers, iwm.), laakiin si tusaalaha labaad sidoo kale waxa uu leeyahay ilo ku filan (inkasta oo uu yahay hawlgal hoose iyada oo loo marayo kaydinta nidaamka faylalka) haddii ay dhacdo fashil ku yimaada mid ka mid ah xarumaha xogta. Addoonku ma bixiyo adeegyo (ma fuliyo codsiyada akhrinta oo keliya) inta lagu jiro hawlgalka caadiga ah ee kooxda, si aysan jirin dagaal loogu talagalay kheyraadka sayidkiisa ee mashiinka isku midka ah.

Marka laga hadlayo labada qanjidhada, dulqaadka ciladadu waxay suurtogal u tahay oo kaliya ku celcelinta asynchronous, maadaama ku celcelinta isku midka ah, guuldarada addoonku waxay u horseedi doontaa joogsiga sayidkiisa.

Markhaati la'aan

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Ku guuldareysiga in la marag furo (qalab korum) Waxaan tixgelin doonaa kaliya kooxda Tuchanka1, dhammaan kuwa kale waxay noqon doontaa sheeko isku mid ah. Haddii markhaatigu guuldareysto, waxba iska beddeli maayo qaab dhismeedka kooxda, wax walba waxay u sii shaqeyn doonaan si la mid ah sidii ay sameeyeen. Laakin kooramku waxa uu noqonayaa 2 ka mid ah 3-diiba, sidaa darteed guul-darrooyin kasta oo xiga waxa ay u dhiman doontaa kooxda Weli waxay noqon doontaa in si degdeg ah loo hagaajiyo.

Tuchanka1 diidmo

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Guuldarada mid ka mid ah xarumaha xogta Tuchanka1. Kiiskan markhaati waxay codkeeda u dhiibtaa marinka labaad ee xarun xogeed labaad. Halkaa, addoonkii hore wuxuu u noqdaa sayid, natiijada, labadaba sayidyadu waxay ku shaqeeyaan isla server-ka labadaba labadaba IP-yada sabbeynaya waxay tilmaamayaan iyaga.

Tuchanka2 (classical)

Qaab-dhismeedka

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Nidaamka caadiga ah ee laba nood. Sayidku wuxuu ku shaqeeyaa mid, addoonkuna kan labaad. Labaduba way fulin karaan codsiyada (addoonka waa la akhriyaa oo keliya), markaa labadaba waxaa lagu tilmaamay IP sabaynta: krogan2 waa sayidkii, krogan2s1 waa addoonka. Sayidka iyo addoonkuba waxay yeelan doonaan dulqaad khalad ah.

Marka laga hadlayo labada qanjidhada, dulqaadka khaladku wuxuu suurtogal yahay oo kaliya ku celcelinta asynchronous, sababtoo ah ku celcelinta synchronous, guuldarada addoonku waxay u horseedi doontaa joogsiga sayidkiisa.

Tuchanka2 diidmo

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Haddii mid ka mid ah xarumaha xogta ku guuldareysto markhaati codadka labaad. Xarunta xogta kaliya ee shaqada, sayidku waa la sara kicin doonaa, labadaba IP-yada sabbaynaya waxay tilmaamayaan: sayidkii iyo addoonkii. Dabcan, tusaale ahaan waa in loo habeeyaa si ay u leedahay ilo ku filan (xadadka isku xirka, iwm.) si ay isku mar u aqbalaan dhammaan xiriirada iyo codsiyada sayid iyo addoon sabayn IP. Taasi waa, inta lagu jiro hawlgalka caadiga ah waa in ay lahaataa sahay xad ku filan.

Tuchanka4 (addoomo badan)

Qaab-dhismeedka

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Durba xad dhaaf kale. Waxaa jira xog uruurin hela codsiyo badan oo akhris-kaliya ah (xaalad caadi ah oo ah goobta rarka sare leh). Tuchanka4 waa xaalad ay jiri karaan saddex ama in ka badan oo addoommo ah si ay u qabtaan codsiyada noocaas ah, laakiin weli ma badna. Iyada oo tiro aad u badan oo addoommo ah, waxay noqon doontaa lagama maarmaan in la abuuro nidaam ku celcelin heer sare ah. Xaaladda ugu yar (sawirka), mid kasta oo ka mid ah labada xarumood ee xogta ayaa leh laba server, mid kasta oo leh tusaale ahaan PostgreSQL.

Sifada kale ee nidaamkani waa in ay suurtogal tahay in la habeeyo hal ku celcelin isku mid ah. Waxaa loo habeeyey in lagu soo koobo, haddii ay suurtagal tahay, xarun xogeed kale, halkii laga beddeli lahaa nuqul ku yaal isla xarunta xogta ee sayidku. Sayidka iyo addoon kasta waxaa lagu tilmaamay by sabayn IP ah. Nasiib wanaag, inta u dhaxaysa addoommada waxay noqon doontaa lagama maarmaan in la isku dheelitiro codsiyada si uun sql wakiil, tusaale ahaan, dhinaca macmiilka. Noocyada kala duwan ee macaamiishu waxay u baahan karaan noocyo kala duwan sql wakiil, oo kaliya kuwa horumariya macmiilka ayaa yaqaan cidda u baahan. Hawshani waxa lagu fulin karaa dheeman dibadda ah ama maktabad macmiil ah (barka xidhiidhka), iwm. Waxaas oo dhami way dhaafsiisan yihiin mawduuca kutlada xogta ee fashilantay (failover SQL wakiil waxaa loo fulin karaa si madax banaan, oo ay weheliso dulqaadka khaladka macmiilka).

Tuchanka4 diidmo

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Haddii mid ka mid ah xarumaha xogta (ie, labo server) guuldareysto, markhaati codadka labaad. Natiijo ahaan, waxaa jira laba adeegayaal oo ku shaqeeya xarunta labaad ee xogta: mid ayaa ku shaqeeya master, iyo sayidku sabbeeyo IP wuxuu tilmaamayaa (helitaanka codsiyada akhris-qorista); Seerfarka labaadna waxaa ku jira addoon ku ordaya isku celcelin isku mid ah, mid ka mid ah addoonta sabayn IP-yada ayaa tilmaamaya (codsiyada akhris-kaliya).

Waxa ugu horreeya ee la xuso waa in dhammaan IP-yada sabayn addoontu ay noqon doonaan shaqaale, laakiin hal keliya. Iyo in si sax ah loola shaqeeyo waxay noqon doontaa lagama maarmaan taas sql wakiil Dhammaan codsiyada dib loo hagaajiyay IP- sabaynta kaliya ee hadhay; iyo haddii sql wakiil maya, markaa waxaad ku qori kartaa dhammaan addoommada IP-ga ee sabbaynaya ee ay ku kala qaybsan yihiin kommas URL-ka xidhiidhka. Xaaladdan oo kale, leh libpq xiriirku wuxuu noqon doonaa IP-ga ugu horreeya ee shaqeeya, tan waxaa lagu sameeyaa nidaamka tijaabada otomaatiga ah. Waxaa laga yaabaa in maktabadaha kale, tusaale ahaan, JDBC, tani ma shaqeyn doonto oo waa lagama maarmaan sql wakiil. Tan waxaa loo sameeyaa sababtoo ah IP-yada sabbeynaya ee addoommada waa ka mamnuuc in isku mar lagu kiciyo hal server, si ay si siman ugu qaybiyaan adeegayaasha addoonta haddii ay jiraan dhowr ka mid ah oo ordaya.

Midda labaad: xitaa haddii ay dhacdo in xarunta xogta ay ku guuldareysato, ku celcelinta isku midka ah ayaa la ilaalin doonaa. Xitaa haddii ay dhacdo guuldarro labaad, taas oo ah, mid ka mid ah labada server ee ku jira xarunta xogta ee hadhay ayaa guuldareysta, kooxdu, in kasta oo ay joojin doonto bixinta adeegyada, waxay weli hayn doontaa macluumaadka ku saabsan dhammaan macaamilada la go'aamiyay ee ay siisay xaqiijinta ballan-qaadka. (ma jiri doonto xog lumis haddii ay dhacdo guul darro labaad).

Tuchanka3 (3 xarumo xogeed)

Qaab-dhismeedka

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Tani waa koox koox u ah xaalad ay jiraan saddex xarumood oo xog ah oo si buuxda u shaqeeya, kuwaas oo mid walba uu leeyahay server-ka xogta oo si buuxda u shaqeeya. Kiiskan qalab korum looma baahna. Mid ka mid ah xarumaha xogta waxaa ka shaqeeya Master, labada kale waxaa ka shaqeeya addoomo. Ku celcelintu waa isku mid, nooca KASTA (addoon1, addoon2), yacni, macmiilku wuxuu heli doonaa xaqiijinta marka mid ka mid ah addoommada uu yahay kan ugu horreeya ee ka jawaaba inuu aqbalay dembiga. Khayraadka waxa lagu tilmaamay hal sabbayn IP ee sayidkii iyo laba loogu talagalay addoommada. Si ka duwan Tuchanka4, dhammaan saddexda IP-yada sabbaynaya waa kuwa u dulqaadan kara cilladaha. Si aad isugu dheelli tirto su'aalaha SQL-akhri-kaliya waxaad isticmaali kartaa sql wakiil (oo leh dulqaad gaar ah oo khalad ah), ama ku meelee hal addoon sabayn IP badh ka mid ah macaamiisha, badh kalena kan labaad.

Tuchanka3 diidmo

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Haddii mid ka mid ah xarumaha xogta ku guuldareysto, laba ayaa hadhay. Mid ka mid ah, sayidkii iyo sabayn IP ka sayidkii ayaa kor loo qaaday, in labaad - addoonka iyo labada addoon sabayn IPs (tusaale ahaan waa in ay lahaadaan kayd labanlaab ah khayraadka si ay u aqbalaan dhammaan xidhiidhada labada addoon sabayn IPs). Ku celcelinta isku midka ah ee u dhexeeya sayidyada iyo addoommada. Sidoo kale, kooxdu waxay kaydin doontaa macluumaadka ku saabsan macaamilada la sameeyay iyo kuwa la xaqiijiyay (ma jiri doonto lumin macluumaad) haddii ay dhacdo burburinta laba xarumood oo xog ah (haddii aan la burburin isku mar).

Waxaan go'aansaday inaanan ku darin sharaxaad faahfaahsan oo ku saabsan qaabka faylka iyo geynta. Qof kasta oo raba inuu ku ciyaaro wuxuu akhrin karaa dhammaan README. Kaliya waxaan bixinayaa sharraxaadda baaritaanka tooska ah.

Habka tijaabada tooska ah

Si loo tijaabiyo dulqaadka qaladka ee kutlada iyadoo la jileynayo cilladaha kala duwan, nidaam tijaabo oo toos ah ayaa la sameeyay. Lagu bilaabay qoraal test/failure. Qoraalku wuxuu u qaadan karaa cabbir ahaan tirada kooxaha aad rabto inaad tijaabiso. Tusaale ahaan amarkan:

test/failure 2 3

kaliya waxay tijaabin doontaa kooxda labaad iyo saddexaad. Haddii cabbirada aan la cayimin, markaas dhammaan kooxaha waa la tijaabin doonaa. Dhammaan rucubyada waxaa loo tijaabiyay si isbarbar socda, natiijaduna waxay ku tusinaysaa guddiga tmux. Tmux waxay isticmaashaa server tmux u go'an, sidaa darteed qoraalka waxaa laga maamuli karaa hoosta tmux, taasoo keentay tmux buul leh. Waxaan ku talinayaa inaad isticmaasho terminalka daaqad weyn iyo far yar. Kahor intaan imtixaanku bilaabmin, dhammaan mishiinnada farsamada gacanta ayaa dib loogu rogaa sawir-qaadis wakhtiga qoraalka dhammaystiran yahay setup.

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Terminalku wuxuu u qaybsan yahay tiirar iyadoo loo eegayo tirada kutlada ee la tijaabinayo; sida caadiga ah (screenshot) waxaa jira afar. Waxaan ku tilmaami doonaa waxa ku jira tiirarka aniga oo isticmaalaya tusaale Tuchanka2. Dabaqyada shaashadda ku jira waa lambar:

  1. Tirakoobka tijaabada ayaa halkan lagu muujiyay. Tiirarka:
    • guuldareysiga - magaca imtixaanka (shaqada ku jirta qoraalka) kaas oo ku dayanaya khaladka.
    • reaction - celceliska wakhtiga xisaabta ee ilbidhiqsiyo gudahood markaas oo kooxdu dib u soo ceshatay shaqadeeda. Waxa la cabbiraa laga bilaabo bilawga qoraalka isagoo ku dayanaya khalad ilaa wakhtiga kooxdu soo celiso shaqadeeda oo ay awoodo inay sii wado bixinta adeegyada. Haddii wakhtigu aad u gaaban yahay, tusaale ahaan, lix ilbiriqsi (tani waxay ku dhacdaa kooxo dhowr ah oo addoommo ah (Tuchanka3 iyo Tuchanka4)), tani waxay ka dhigan tahay in qaladku uu ku jiray addoonka asynchronous oo aan saameyn ku yeelan waxqabadka sina; dabdelayaasha gobolka.
    • leexasho - waxay muujinaysaa faafinta (saxnimada) ee qiimaha reaction iyadoo la isticmaalayo habka weecasho ee caadiga ah.
    • tirin - imisa jeer ayaa baaritaankan la sameeyay.
  2. Qoraal gaaban ayaa kuu ogolaanaya inaad qiimeyso waxa ay kooxdu hadda qabanayso. Lambarka soo noqnoqda (imtixaanka) lambarka, shaambada wakhtiga iyo magaca hawlgalka waa la soo bandhigay. Orodka dheer (> 5 daqiiqo) waxay tusinaysaa dhibaato.
  3. wadnaha (Qalbi) - waqtiga hadda. Qiimaynta muuqaalka ee waxqabadka masters Waqtigan xaadirka ah si joogto ah ayaa loogu qoraa miiska iyada oo la adeegsanayo mastarka IP-ga sabaynta. Haddii lagu guuleysto, natiijadu waxay soo bandhigaysaa guddigan.
  4. garaacid (pulse) - "waqtiga hadda", oo hore loogu duubay qoraalka wadnaha si aad u barato, hadda ka akhri addoon iyada oo loo marayo IP sabbeynteeda. Waxay kuu ogolaanaysaa inaad si muuqaal ah u qiimeyso waxqabadka addoonka iyo ku celcelinta. Tuchanka1 ma jiraan addoomo leh IP sabayn (ma jiraan addoomo bixiya adeegyo), laakiin waxaa jira laba xaaladood (DBs), markaa halkan laguma muujin doono garaacidiyo wadnaha tusaale labaad.
  5. La socodka caafimaadka kooxda iyadoo la isticmaalayo utility pcs mon. Wuxuu muujiyaa qaab-dhismeedka, qaybinta agabka noodhka iyo macluumaadka kale ee waxtarka leh.
  6. La socodka nidaamka mishiin kasta oo dalwad ah oo kutlada ku jira ayaa halkan lagu soo bandhigay. Waxaa laga yaabaa inay jiraan qaybo badan oo noocan oo kale ah iyadoo ku xiran inta mashiinada farsamada gacanta ay kooxdu leedahay. Laba garaaf Culayska CPU (mashiinada Virtual waxay leeyihiin laba processor), magaca mashiinka farsamada, Culayska Nidaamka (oo lagu magacaabo Celceliska Load sababtoo ah waxaa la isku celceliyaa in ka badan 5, 10 iyo 15 daqiiqo), habka xogta iyo qoondaynta xusuusta.
  7. Raadraaca qoraalka samaynta imtixaanka. Haddii ay dhacdo cillad - hakad degdeg ah oo shaqada ah ama wareegga sugitaanka ee aan dhammaadka lahayn - halkan waxaad ku arki kartaa sababta habdhaqankan.

Tijaabada waxa loo fuliyaa laba marxaladood. Marka hore, qoraalku wuxuu maraa dhammaan noocyada imtixaanada, isagoo si aan kala sooc lahayn u dooranaya mishiinka farsamada ee lagu dabaqi karo tijaabadan. Kadibna imtixaan wareeg ah oo aan dhamaad lahayn ayaa la sameeyaa, mishiinnada farsamada iyo cilladaha ayaa si aan kala sooc lahayn loo doortaa mar kasta. Joojinta degdega ah ee qoraalka imtixaanka (guul hoose) ama wareeg aan dhamaad lahayn oo sugitaanka shay (> 5 daqiiqo wakhtiga fulinta hal qalliin, tan waxaa lagu arki karaa raadadka) waxay muujinaysaa in qaar ka mid ah imtixaanada kooxdan ay guuldarraysteen.

Imtixaan kastaa wuxuu ka kooban yahay hawlgallada soo socda:

  1. Bilow hawl u eg khalad.
  2. Diyaar ma tahay? - sugitaanka kooxda in la soo celiyo (marka dhammaan adeegyada la bixiyo).
  3. Waxay muujisaa wakhtiga soo kabashada kooxdu (reaction).
  4. Fix - kooxda waa la "dayactirayaa." Taas ka dib waa in ay ku soo noqotaa xaalad si buuxda u shaqeysa oo ay u diyaargarowdo cilladda soo socota.

Waa kuwan liiska imtixaannada oo leh sharraxaad waxa ay qabtaan:

  • ForkBomb: Wuxuu abuuraa "Out of memory" isagoo isticmaalaya bam fargeeto ah.
  • OutOfSpace: Hard Drive-ku wuu buuxaa. Laakiin imtixaanku waa calaamad; oo leh culeyska aan muhiimka ahayn ee la abuuray inta lagu jiro tijaabada, PostgreSQL badanaa ma guuldareysto marka darawalka adag uu buuxo.
  • Postgres-DIL: dilaa PostgreSQL amarka killall -KILL postgres.
  • Postgres- JOOJI: ku dheggan amarka PostgreSQL killall -STOP postgres.
  • dami: "de-energizes" mashiinka farsamada ee amarka leh VBoxManage controlvm "Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°" poweroff.
  • Dib u celi: xad dhaafka ah mashiinka farsamada ee amarka VBoxManage controlvm "Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°" reset.
  • SBD- JOOJI: waxay laaleen jinnigii SBD amarkii killall -STOP sbd.
  • Bakhtii: waxay u soo dirtaa amar mashiinka farsamada ee SSH systemctl poweroff, nidaamku si qurux badan ayuu u xidhaa.
  • Xidhiidhka ka bixi: go'doomin shabakad, amar VBoxManage controlvm "Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°" setlinkstate1 off.

Dhammaystirka tijaabada ama adoo isticmaalaya amarka caadiga ah ee tmux "kill-window" Ctrl-b &, ama amarka "detach-client". Ctrl-b d: markan imtixaanku wuu dhamaanayaa, tmux wuu xidhmayaa, mashiinada farsamada gacanta waa la daminayaa.

Dhibaatooyinka la aqoonsaday inta lagu jiro baaritaanka

  • Waqtigan xaadirka ah jinka ilaaliye sbd wuxuu ka shaqeeyaa joojinta daemons-ka la arkay, laakiin ma qaboojinayo. Iyo, natiijadu tahay, khaladaadka u horseedaya baraf kaliya Corosync ΠΈ pacemaker, laakiin aan la deldelin sbd... Hubinta Corosync ayaa hore u lahaa PR#83 (GitHub at sbd), aqbalay dunta Master. Waxay ballanqaadeen (PR #83) inay jiri doonaan wax la mid ah Pacemaker, waxaan rajeynayaa taas Koofiyada Cas 8 waa sameeyn doonaa. Laakiin "ciladaha" noocan oo kale ah waa kuwo mala-awaal ah oo si fudud ayaa loo jili karaa iyadoo la isticmaalayo, tusaale ahaan, killall -STOP corosync, laakiin waligaa ha ku kulmin nolosha dhabta ah.

  • Π£ pacemaker in version for CentOS 7 si khaldan loo dhigay sync_timeout Ρƒ qalab korum, natiijo ahaan haddii hal nood uu guuldareysto, iyada oo ay jirto ixtimaalka qaar ka mid ah noodhka labaad ayaa sidoo kale dib loo furay, kaas oo la rabay in sayidku u guuro. Lagu daaweeyay balaadhinta sync_timeout Ρƒ qalab korum inta lagu jiro hawlgalinta (qoraalka setup/setup1). Wax ka beddelkan ma aqbalin horumariyayaashu pacemaker, taa beddelkeeda waxay ballan qaadeen inay dib u habeyn ku sameyn doonaan kaabayaasha qaab (mustaqbal aan la cayimin) in waqtigan si toos ah loo xisaabin doono.

  • Haddii qaabeynta xogta macluumaadka ay qeexayso taas LC_MESSAGES (farimaha qoraalka) Unicode waa la isticmaali karaa, tusaale; ru_RU.UTF-8, ka dibna bilowga postgres deegaan aan deegaanku ahayn UTF-8, dheh deegaan madhan (halkan xawaare+pgsqlms(paf) orda postgres), ka dibna Logu wuxuu ka koobnaan doonaa calaamado su'aal halkii uu ka ahaan lahaa xarfaha UTF-8. Horumarinta PostgreSQL kuma heshiin waxa la sameeyo kiiskan. Waa kharash, waxaad u baahan tahay inaad rakibto LC_MESSAGES=en_US.UTF-8 marka la habeynayo (samaynta) tusaale ahaan database-ka.

  • Haddii wal_receiver_timeout la dejiyay (sida caadiga ah waa 60s), ka dib inta lagu guda jiro imtixaanka PostgreSQL-STOP ee sayidyada ee tuchanka3 iyo tuchanka4 ku celcelintu dib uma xidhidhiyo sayidkii cusbaa. Ku-noqoshada waxaa jira isku-dhafan, markaa ma aha oo kaliya in addoonku istaago, laakiin sidoo kale sayidkii cusub. Ku shaqeeya agagaarka adoo dejinaya wal_receiver_timeout=0 marka la habeynayo PostgreSQL.

  • Marmar waxaan ku arkay dib u habeynta ku celcelinta PostgreSQL ee imtixaanka ForkBomb (xusuusta oo buuxdhaaftay). ForkBomb ka dib, mararka qaarkood addoomadu waxa laga yaabaa inaanay dib ugu xidhin sayidkii cusub. Waxa kaliya oo aan tan kula kulmay kooxaha tuchanka3 iyo tuchanka4, halkaas oo sayidku uu barafoobay sababtuna tahay ku celcelinta isku midka ah. Dhibaatadu iskeed ayay iska tagtay muddo dheer ka dib (ilaa laba saacadood). Cilmi baaris dheeraad ah ayaa loo baahan yahay si tan loo saxo. Calaamaduhu waxay la mid yihiin bugtii hore, taas oo ay keentay sabab kale, laakiin leh cawaaqib isku mid ah.

Sawirka Krogan oo laga soo qaaday Art Doona Qallooca, ogolaanshaha qoraaga:

Qaabaynta kooxaha guuldarraystayaasha ee ku salaysan PostgreSQL iyo Pacemaker

Source: www.habr.com

Add a comment