Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

fampidirana

Fotoana vitsy lasa izay dia nomena ahy ny andraikitry ny famolavolana cluster failover ho an'ny PostgreSQL, miasa amin'ny foibe data maromaro mifandray amin'ny fibre optique ao anatin'ny tanàna iray, ary mahazaka ny tsy fahombiazana (ohatra, ny fahatapahan-jiro) amin'ny foibe data iray. Amin'ny maha-rindrambaiko izay tompon'andraikitra amin'ny fandeferana ny fahadisoana, dia nisafidy aho pacemakersatria ity no vahaolana ofisialy avy amin'ny RedHat amin'ny famoronana cluster failover. Tsara izany satria ny RedHat dia manome fanohanana azy, ary satria ity vahaolana ity dia manerantany (modular). Miaraka amin'ny fanampiany dia azo atao ny miantoka ny fandeferana diso tsy amin'ny PostgreSQL ihany, fa amin'ny serivisy hafa koa, na amin'ny fampiasana maody mahazatra na mamorona azy ireo ho an'ny filana manokana.

Ity fanapahan-kevitra ity dia nametraka fanontaniana mitombina: ahoana ny fomba handeferan'ny cluster failover? Mba hanadihadiana an'izany dia nanamboatra dabilio fitsapana aho izay mamolavola ny tsy fahombiazana isan-karazany amin'ny node cluster, miandry ny famerenana amin'ny laoniny ny serivisy, mamerina ilay node tsy nahomby ary manohy ny fitsapana amin'ny loop. Ity tetikasa ity dia nantsoina hoe hapgsql tany am-boalohany, saingy rehefa nandeha ny fotoana dia leo tamin'ilay anarana aho, izay tsy nisy afa-tsy zanatsoratra iray. Noho izany dia nanomboka niantso angon-drakitra mahazaka fahadisoana aho (ary mitsingevana IP manondro azy ireo) krogan (toetra avy amin'ny lalao informatika izay anaovana kopia ny taova manan-danja rehetra), ary ny nodes, cluster ary ny tetikasa mihitsy dia tuchanka (ny planeta misy ny krogans).

Navelan’ny mpitantana izao sokafy ny tetikasa amin'ny vondrom-piarahamonina open source eo ambanin'ny lisansa MIT. Ny README dia hadika tsy ho ela amin'ny teny anglisy (satria heverina fa ny tena mpanjifa dia ny Pacemaker sy ny PostgreSQL developer), ary nanapa-kevitra ny hanolotra ny dikan-teny Rosiana taloha an'ny README (ampahany) amin'ny endriky ity lahatsoratra ity aho.

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Apetraka amin'ny milina virtoaly ny kluster VirtualBox. Miisa 12 ny milina virtoaly (36GiB amin'ny fitambarany) hapetraka, izay mamorona cluster 4 mahazaka fahadisoana (safidy samihafa). Ny cluster roa voalohany dia misy mpizara PostgreSQL roa, izay hita any amin'ny foibe data samihafa, ary mpizara mahazatra. vavolombelona c fitaovana kôlejy (ampiantranoina amin'ny milina virtoaly mora vidy ao amin'ny foibe data fahatelo), izay mamaha ny tsy fahatokisana 50% / 50%, manome ny vatonao ho an'ny iray amin'ireo antoko. Vondrona fahatelo ao amin'ny foibe data telo: tompony iray, andevo roa, tsia fitaovana kôlejy. Ny kluster fahefatra dia misy mpizara PostgreSQL efatra, roa isaky ny foibe data: master iray, ny kopia sisa, ary mampiasa ihany koa. vavolombelona c fitaovana kôlejy. Ny fahefatra dia mahatanty ny tsy fahombiazan'ny mpizara roa na ivom-baovao iray. Ity vahaolana ity dia azo ampitomboina amin'ny kopia maromaro kokoa raha ilaina.

Fanompoana fotoana marina ntpd nohavaozina ihany koa ho an'ny fandeferana diso, fa mampiasa ny fomba mihitsy ntpd (fomba kamboty). Mpizara zaraina vavolombelona miasa amin'ny maha-mpizara NTP foibe, mizara ny fotoanany amin'ny cluster rehetra, ka mampifanaraka ny mpizara rehetra. RAHA vavolombelona tsy nahomby na lasa mitoka-monina, dia hanomboka hizara ny fotoanany ny iray amin'ireo mpizara cluster (ao anatin'ny cluster). Caching fanampiny HTTP proxy natsangana koa ho vavolombelona, miaraka amin'ny fanampiany, misy milina virtoaly hafa afaka miditra amin'ny tahiry Yum. Raha ny marina, ny serivisy toy ny fotoana marina sy ny proxy dia azo inoana fa hampiantranoina amin'ny lohamilina voatokana, fa ao amin'ny trano heva no hampiantranoana azy ireo. vavolombelona mba hamonjy ny isan'ny milina virtoaly sy ny habaka.

dikan

v0. Miara-miasa amin'ny CentOS 7 sy PostgreSQL 11 amin'ny VirtualBox 6.1.

Firafitry ny cluster

Ny kluster rehetra dia natao ho hita any amin'ny foibe angon-drakitra marobe, mitambatra ho tambajotra fisaka iray ary tsy maintsy mahatohitra ny tsy fahombiazana na ny fitokanan'ny tambajotra amin'ny foibe data tokana. Izany no antony tsy azo atao ampiasaina ho fiarovana amin'ny fisarahana-atidoha teknolojia Pacemaker mahazatra antsoina hoe STONITH (Tifiro Ny Node Hafa Amin'ny Loha) na fencing. Ny maha-zava-dehibe azy: raha manomboka miahiahy ny node ao amin'ny cluster fa misy zavatra tsy mety amin'ny node sasany, dia tsy mamaly na manao fihetsika tsy mety izy, avy eo dia esoriny amin'ny alàlan'ny fitaovana "ivelany", ohatra, karatra fanaraha-maso IPMI na UPS. . Fa izany dia tsy miasa afa-tsy amin'ny tranga izay, raha misy tsy fahombiazana tokana, ny mpizara IPMI na UPS dia mbola miasa. Eto izahay dia mikasa ny hiaro amin'ny tsy fahombiazana lehibe kokoa, rehefa tsy nahomby ny foibe data manontolo (ohatra, very hery). Ary miaraka amin'ny fandavana toy izany, ny zava-drehetra stonith-tsy mandeha koa ny fitaovana (IPMI, UPS, sns.).

Fa kosa, ny rafitra dia mifototra amin'ny hevitry ny kôlejy. Manana feo avokoa ny nodes rehetra, ary ireo izay afaka mahita mihoatra ny antsasaky ny nodes rehetra ihany no afaka miasa. Ity isa "antsasaky + 1" ity dia antsoina KÔLEJY. Raha tsy tratra ny kôlejy, dia manapa-kevitra ny node fa ao anatin'ny fitokana-monina izy io ary tsy maintsy mamono ny loharanony, i.e. izao no izy fiarovana ny atidoha. Raha tsy mandeha ny rindrambaiko tompon'andraikitra amin'ity fihetsika ity, dia tsy maintsy miasa ny mpiambina iray, ohatra, mifototra amin'ny IPMI.

Raha toa ka mitovy ny isan'ny node (cluster iray ao amin'ny foibe data roa), dia mety hipoitra ilay antsoina hoe tsy fahatokisana. 50% / 50% (dimampolo amby dimampolo) rehefa mizara ny cluster amin'ny antsasany ny fitokana-monina. Noho izany, ho an'ny isan'ny nodes, dia manampy fitaovana kôlejy dia daemon tsy mitaky fitakiana izay azo atomboka amin'ny milina virtoaly mora indrindra amin'ny foibe data fahatelo. Manome ny vatony ho an'ny iray amin'ireo fizarana izy (izay hitany), ary mamaha ny tsy fahatokisana 50%/50%. Nomeko anarana ny lohamilina izay hanombohan'ny fitaovan'ny kôlejy vavolombelona (teny avy amin'ny repmgr, tiako izany).

Ny loharanon-karena dia azo afindrafindra toerana, ohatra, avy amin'ny lohamilina diso mankany amin'ny salama, na amin'ny baikon'ny mpitantana ny rafitra. Mba hahafantaran'ny mpanjifa hoe aiza no misy ny loharano ilainy (aiza no hifandraisana?), mitsingevana IP (float IP). Ireo dia IP azon'ny Pacemaker mivezivezy manodidina ny nodes (eo amin'ny tambajotra fisaka ny zava-drehetra). Ny tsirairay amin'izy ireo dia maneho loharano iray (serivisy) ary ho hita eo amin'ny toerana tokony hifandraisanao mba hahazoana fidirana amin'ity serivisy ity (raha ny anay, angon-drakitra).

Tuchanka1 (circuit misy compaction)

rafitra

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Ny hevitra dia ny hoe manana tahiry kely be dia be izahay miaraka amin'ny entana ambany, izay tsy mahasoa ny mitazona mpizara andevo natokana ho an'ny fomba fijanonana mafana ho an'ny fifampiraharahana mamaky fotsiny (tsy ilaina ny fandaniam-bola toy izany).

Ny foibe data tsirairay dia manana mpizara iray. Ny mpizara tsirairay dia manana tranga PostgreSQL roa (amin'ny teny PostgreSQL dia antsoina hoe cluster izy ireo, fa mba hisorohana ny fisafotofotoana dia hiantso azy ireo aho (amin'ny fampitahana amin'ny angon-drakitra hafa), ary ny clusters clusters Pacemaker ihany no hiantsoako azy). Ny ohatra iray dia miasa amin'ny maodely master, ary manome serivisy ihany izy (IP mitsingevana ihany no mitarika azy). Ny tranga faharoa dia miasa toy ny andevo ho an'ny foibe data faharoa, ary tsy hanome serivisy raha tsy mahomby ny tompony. Satria ny ankamaroan'ny fotoana dia iray monja amin'ny roa (ny tompony) no hanome serivisy (manatanteraka fangatahana), ny loharanon'ny mpizara rehetra dia natao ho an'ny tompony (ny fahatsiarovana dia natokana ho an'ny cache shared_buffers, sns.), fa ny faharoa kosa manana loharanon-karena ampy ihany koa (na dia ho an'ny fampandehanana suboptimal amin'ny alàlan'ny cache system fichier aza) raha toa ka tsy nahomby ny iray amin'ireo foibe data. Ny andevo dia tsy manome serivisy (tsy manao fangatahana mamaky fotsiny) mandritra ny fampandehanana ara-dalàna ny cluster, mba tsy hisian'ny ady ho an'ny loharano miaraka amin'ny tompony amin'ny milina iray ihany.

Amin'ny tranga roa node, ny fandeferana diso dia tsy azo atao afa-tsy amin'ny replication asynchronous, satria amin'ny replication synchronous, ny tsy fahombiazan'ny andevo dia hitarika amin'ny fijanonan'ny tompony.

Ny tsy fijoroana vavolombelona

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Ny tsy fijoroana vavolombelona (fitaovana kôlejy) Ho an'ny cluster Tuchanka1 ihany no hojereko, miaraka amin'ny hafa rehetra dia hitovy ny tantara. Raha tsy mahomby ny fijoroana vavolombelona dia tsy hisy fiovana ao amin'ny firafitry ny cluster, ny zava-drehetra dia hitohy amin'ny fomba toy izany. Fa ny kôlejy dia ho 2 amin'ny 3, ary noho izany ny tsy fahombiazana manaraka dia ho faty ho an'ny cluster. Mbola tsy maintsy hamboarina haingana izany.

Tuchanka1 fandavana

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Ny tsy fahombiazan'ny iray amin'ireo ivom-pahalalana momba ny Tuchanka1. Raha izany dia vavolombelona mametraka ny vatony amin'ny node faharoa ao amin'ny foibe data faharoa. Teo dia lasa tompo ilay andevo taloha, vokatr'izany dia samy miasa amin'ny lohamilina iray ny tompo ary samy manondro azy ireo ny IP mitsingevana azy.

Tuchanka2 (klasika)

rafitra

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Ny rafitra klasika amin'ny nodes roa. Ny tompony miasa amin'ny iray, ny andevo amin'ny faharoa. Samy afaka manatanteraka fangatahana (vakiana ihany ny andevo), ka samy tondroin'ny IP float: krogan2 no tompony, krogan2s1 no andevo. Na ny tompony na ny andevo dia samy hanana fandeferana amin’ny fahadisoana.

Amin'ny tranga roa, ny fandeferana diso dia tsy azo atao afa-tsy amin'ny replication asynchronous, satria miaraka amin'ny replication synchronous, ny tsy fahombiazan'ny andevo dia hitarika amin'ny fijanonan'ny tompony.

Tuchanka2 fandavana

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Raha tsy mahomby ny iray amin'ireo foibe data vavolombelona mifidy ny faharoa. Ao amin'ny foibe data miasa ihany, dia hasandratra ny tompony, ary ny IP mitsingevana dia hanondro azy: ny tompony sy ny andevo. Mazava ho azy fa ny ohatra dia tsy maintsy amboarina amin'ny fomba izay manana loharanon-karena ampy (famerana fifandraisana, sns.) Mba hanaiky ny fifandraisana rehetra sy ny fangatahana avy amin'ny tompony sy ny andevo float IP. Izany hoe, mandritra ny fandidiana ara-dalàna dia tokony hanana fetra ampy.

Tuchanka4 (andevo maro)

rafitra

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Efa extreme hafa. Misy angon-drakitra mahazo fangatahana vakiana fotsiny (tranga mahazatra amin'ny tranokala be entana). Tuchanka4 dia toe-javatra iray izay mety hisy andevo telo na mihoatra hikarakara ny fangatahana toy izany, saingy mbola tsy dia be loatra. Miaraka amin'ny andevo be dia be, dia ilaina ny mamorona rafitra replication ambaratonga. Amin'ny tranga faran'izay kely indrindra (eo amin'ny sary), ny tsirairay amin'ireo foibe angona roa dia manana mpizara roa, samy manana ohatra PostgreSQL.

Ny endri-javatra iray hafa amin'ity drafitra ity dia ny hoe efa azo atao ny mandamina replication synchronous iray. Izy io dia namboarina mba hamerenana, raha azo atao, mankany amin'ny foibe data hafa, fa tsy amin'ny kopia ao amin'ny foibe data mitovy amin'ny tompony. Ny tompony sy ny andevo tsirairay dia tondroin'ny IP mitsingevana. Soa ihany fa eo amin'ny andevo dia ilaina ny mampifandanja ny fangatahana sql proxy, ohatra, eo amin'ny lafiny mpanjifa. Ny karazana mpanjifa samihafa dia mety mitaky karazana samihafa sql proxy, ary ny mpamorona mpanjifa ihany no mahalala hoe iza no mila izany. Ity fampiasa ity dia azo ampiharina amin'ny daemon ivelany na amin'ny tranomboky mpanjifa (dobo fifandraisana), sns. Izany rehetra izany dia mihoatra ny lohahevitra momba ny cluster database failover (failover SQL proxy azo ampiharina tsy miankina, miaraka amin'ny fandeferana ny fahadisoan'ny mpanjifa).

Tuchanka4 fandavana

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Raha tsy mahomby ny ivontoerana data iray (izany hoe, mpizara roa), ny vavolombelona dia mifidy ny faharoa. Vokatr'izany dia misy mpizara roa mandeha ao amin'ny foibe data faharoa: ny iray dia mihazakazaka master, ary ny master float IP dia manondro azy (ho an'ny fandraisana ny fangatahana mamaky-manoratra); ary ao amin'ny mpizara faharoa dia misy andevo iray mihazakazaka miaraka amin'ny replication synchronous, ary ny iray amin'ireo IP float andevo dia manondro azy (ho an'ny fangatahana vakiana fotsiny).

Ny zavatra voalohany tokony homarihina dia tsy ny IP andevo rehetra dia ho mpiasa, fa iray ihany. Ary mba hiasa tsara amin'izany dia ilaina izany sql proxy navitrika ny fangatahana rehetra ho amin'ny IP mitsingevana sisa; ary raha sql proxy Tsia, azonao atao ny mitanisa ny andevo IP mitsingevana rehetra sarahan'ny faingo ao amin'ny URL mifandray. Amin'ity tranga ity, miaraka amin'ny libpq Ny fifandraisana dia ho amin'ny IP miasa voalohany, izany dia atao amin'ny rafitra fitiliana mandeha ho azy. Angamba any amin'ny trano famakiam-boky hafa, ohatra, JDBC, dia tsy mandeha izany ary ilaina sql proxy. Izany dia atao satria ny IP mitsingevana ho an'ny andevo dia voarara tsy hampiakatra miaraka amin'ny mpizara iray, mba hizarana mitovy amin'ireo mpizara andevo raha toa ka maro amin'izy ireo no mandeha.

Faharoa: na dia misy aza ny tsy fahombiazan'ny foibe data, dia hotazonina ny replication synchronous. Ary na dia misy tsy fahombiazana faharoa aza, izany hoe, ny iray amin'ireo mpizara roa ao amin'ny foibe angon-drakitra sisa tavela dia tsy nahomby, ny cluster, na dia hijanona amin'ny fanomezana serivisy aza, dia mbola hitazona ny vaovao momba ny fifampiraharahana rehetra izay nanomezany fanamafisana ny fanoloran-tena. (tsy hisy fampahalalana momba ny fatiantoka raha sendra tsy fahombiazana faharoa).

Tuchanka3 (ivontoerana data 3)

rafitra

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Ity dia cluster iray ho an'ny toe-javatra misy ivontoerana data telo miasa tanteraka, izay samy manana mpizara database miasa tanteraka. Raha izany dia fitaovana kôlejy tsy ilaina. Ny ivontoerana data iray dia misy tompo iray, ny roa hafa dia andevo. Ny replication dia synchronous, karazana ANY (slave1, slave2), izany hoe ny mpanjifa dia hahazo fanamafisana commit rehefa misy andevo no mamaly voalohany fa nanaiky ny commit izy. Ny loharanon-karena dia aseho amin'ny IP mitsingevana iray ho an'ny tompony ary roa ho an'ny andevo. Tsy toa an'i Tuchanka4, ny IP mitsingevana telo dia mandefitra amin'ny fahadisoana. Mba handanjalanjana ny fangatahana SQL vakiana fotsiny azonao ampiasaina sql proxy (miaraka amin'ny fandeferana diso misaraka), na omeo andevo iray mitsingevana IP ny antsasaky ny mpanjifa, ary ny antsasany hafa ho an'ny faharoa.

Tuchanka3 fandavana

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Raha toa ka tsy mahomby ny iray amin'ireo foibe data, dia mijanona ny roa. Ao amin'ny iray, ny tompony sy ny mitsingevana IP avy amin'ny tompony dia atsangana, amin'ny faharoa - ny andevo sy ny andevo mitsingevana IP (ny ohatra dia tsy maintsy manana tahiry avo roa heny mba hanaiky ny fifandraisana rehetra avy amin'ny IP float andevo roa). Replication synchronous eo amin'ny tompo sy ny andevo. Ary koa, ny cluster dia hitahiry vaovao momba ny fifampiraharahana natao sy voamarina (tsy hisy ny fahaverezan'ny vaovao) raha misy ny fandringanana ny ivon-toerana roa (raha tsy rava miaraka izy ireo).

Nanapa-kevitra ny tsy hampiditra famaritana amin'ny antsipiriany momba ny firafitry ny rakitra sy ny fametrahana azy aho. Izay te-hilalao dia afaka mamaky azy rehetra ao amin'ny README. Famariparitana momba ny fitiliana mandeha ho azy ihany no omeko.

Rafitra fitiliana mandeha ho azy

Mba hitsapana ny fandeferana amin'ny kluster amin'ny alàlan'ny fanaovana simulation ny lesoka isan-karazany, dia nisy rafitra fitiliana mandeha ho azy. Natomboka tamin'ny script test/failure. Ny script dia afaka maka ho masontsivana ny isan'ny cluster tianao hotsapaina. Ohatra ity baiko ity:

test/failure 2 3

hizaha toetra ny cluster faharoa sy fahatelo ihany. Raha tsy voafaritra ny paramètre, dia hosedraina ny cluster rehetra. Ny cluster rehetra dia andrana mifanitsy, ary ny vokatra dia aseho amin'ny tontonana tmux. Tmux dia mampiasa mpizara tmux voatokana, ka ny script dia azo alefa amin'ny tmux default, ka miteraka tmux nested. Manoro hevitra aho ny hampiasa ny terminal amin'ny varavarankely lehibe sy misy endritsoratra kely. Alohan'ny hanombohan'ny fitsapana, ny milina virtoaly rehetra dia averina amin'ny sary iray rehefa vita ny script setup.

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Ny terminal dia mizara ho tsanganana araka ny isan'ny kluster hosedraina amin'ny alàlan'ny default (ao amin'ny pikantsary) dia misy efatra. Holazaiko ny votoatin'ny tsanganana amin'ny fampiasana ny ohatry ny Tuchanka2. Ny takelaka ao amin'ny pikantsary dia misy laharana:

  1. Aseho eto ny antontan'isa fitsapana. Tsanganana:
    • tsy fahombiazana - ny anaran'ny fitsapana (asa ao amin'ny script) izay maka tahaka ny fahadisoana.
    • fanehoan-kevitra - fotoana antonony arithmetika ao anatin'ny segondra izay namerenan'ny cluster ny asany. Refesina manomboka amin'ny fanombohan'ny script maka tahaka ny fahadisoana ka hatramin'ny fotoana namerenan'ny cluster ny asany ary afaka manohy manome serivisy. Raha tena fohy ny fotoana, ohatra, enina segondra (izany dia mitranga amin'ny cluster miaraka amin'ny andevo maromaro (Tuchanka3 sy Tuchanka4)), midika izany fa ny lesoka dia teo amin'ny asynchronous andevo ary tsy nisy fiantraikany tamin'ny fampisehoana switch fanjakana cluster.
    • fiviliana - mampiseho ny fiparitahana (accuracy) ny sandany fanehoan-kevitra mampiasa ny fomba fanao mahazatra.
    • manisa — impiry no nanaovana io fitsapana io.
  2. Ny diary fohy dia ahafahanao manombana izay ataon'ny cluster amin'izao fotoana izao. Aseho ny laharan'ny famerimberenana (fitsapana), ny fe-potoana ary ny anaran'ny asa. Ny fandehanana lava loatra (> 5 minitra) dia manondro olana.
  3. am-po (fo) - fotoana ankehitriny. Ho an'ny fanombanana hita maso ny zava-bita tompony Ny fotoana amin'izao fotoana izao dia tsy mitsahatra voasoratra eo amin'ny latabatra mampiasa ny float IP master. Raha mahomby dia aseho amin'ity tontonana ity ny valiny.
  4. nandresy (pulse) - "fotoana ankehitriny", izay noraketin'ny script teo aloha am-po mba hifehy, izao mamaky avy MPANOMPO amin'ny alàlan'ny IP float. Mamela anao hanombantombana maso ny zava-bitan'ny andevo sy ny replication. Ao amin'ny Tuchanka1 dia tsy misy andevo manana IP mitsingevana (tsy misy andevo manome serivisy), fa misy tranga roa (DB), ka tsy haseho eto izany. nandresyary am-po ohatra faharoa.
  5. Fanaraha-maso ny fahasalaman'ny cluster amin'ny fampiasana ny utility pcs mon. Mampiseho ny rafitra, ny fitsinjarana ny loharanon-karena manerana ny nodes sy ny fampahalalana mahasoa hafa.
  6. Ny fanaraha-maso ny rafitra avy amin'ny milina virtoaly tsirairay ao amin'ny cluster dia aseho eto. Mety hisy tontonana maro kokoa arakaraka ny isan'ny milina virtoaly ananan'ny cluster. Grapika roa CPU Load (misy milina virtoaly manana processeur roa), anarana milina virtoaly, Loadan'ny rafitra (nantsoina hoe Load Average satria salan'isa mihoatra ny 5, 10 ary 15 minitra), manodina angon-drakitra sy fizarana fahatsiarovana.
  7. Trace ny script manao fitiliana. Raha sendra misy tsy fahombiazana - fahatapahana tampoka na fiandrasana tsy misy fiafarana - eto ianao dia afaka mahita ny anton'io fihetsika io.

Ny fitsapana dia atao amin'ny dingana roa. Voalohany, mandalo ny karazana fitsapana rehetra ny script, mifidy milina virtoaly iray hampiharana an'io fitsapana io. Avy eo dia atao ny tsingerin'ny fitsapana tsy misy fiafarana, ny milina virtoaly sy ny fahadisoana dia voafantina tsindraindray. Ny fampitsaharana tampoka ny script fitsapana (panneau ambany) na ny fiandrasana zavatra tsy misy farany (> 5 minitra ny fotoana famonoana ho an'ny fandidiana iray, izany dia hita ao amin'ny trace) dia manondro fa ny sasany amin'ireo fitsapana amin'ity cluster ity dia tsy nahomby.

Ny fitsapana tsirairay dia ahitana ireto asa manaraka ireto:

  1. Mandehana fiasa izay manahaka ny fahadisoana.
  2. Vonona? - miandry ny hamerenana ny cluster (rehefa omena ny serivisy rehetra).
  3. Mampiseho ny fotoana fiafaran'ny fanarenana cluster (fanehoan-kevitra).
  4. Fix - "Amboarina" ny cluster. Aorian'izay dia tokony hiverina amin'ny fanjakana miasa tanteraka izy ary ho vonona amin'ny tsy fahombiazana manaraka.

Ity misy lisitry ny fitsapana misy famaritana ny ataony:

  • ForkBomb: Mamorona "Out of memory" mampiasa baomba fork.
  • OutOfSpace: Feno ny kapila mafy. Fa ny fitsapana dia somary an'ohatra; miaraka amin'ny entana tsy misy dikany izay noforonina nandritra ny fitsapana, ny PostgreSQL dia matetika tsy mahomby rehefa feno ny fiara mafy.
  • Postgres-KILL: mamono ny PostgreSQL amin'ny baiko killall -KILL postgres.
  • Postgres-STOP: mihantona ny baiko PostgreSQL killall -STOP postgres.
  • tapaka ny herinaratra: "de-energizes" ny milina virtoaly miaraka amin'ny baiko VBoxManage controlvm "виртуалка" poweroff.
  • Reset: mameno ny milina virtoaly amin'ny baiko VBoxManage controlvm "виртуалка" reset.
  • SBD-STOP: mampiato ny demony SBD amin'ny baiko killall -STOP sbd.
  • Hidio: mandefa baiko amin'ny milina virtoaly amin'ny SSH systemctl poweroff, mihidy tsara ny rafitra.
  • Unlink: fitokanana tambajotra, baiko VBoxManage controlvm "виртуалка" setlinkstate1 off.

Mamita ny fitsapana na mampiasa ny baiko tmux mahazatra "kill-window" Ctrl-b &, na ny baiko "détach-client". Ctrl-b d: Amin'io fotoana io dia tapitra ny fitsapana, mihidy ny tmux, tapaka ny milina virtoaly.

Olana hita nandritra ny fitsapana

  • Amin'izao fotoana izao watchdog demon sbd miasa amin'ny fampitsaharana ny daemon voamarika, fa tsy mamitsaka azy ireo. Ary, vokatr'izany, lesoka izay mitarika ho amin'ny hatsiaka ihany Corosync и pacemaker, fa tsy mihantona sbd. Ho an'ny fanamarinana Corosync efa PR#83 (ao amin'ny GitHub at sbd), ekena amin'ny kofehy tompony. Nampanantena izy ireo (ao amin'ny PR #83) fa hisy zavatra mitovy amin'izany ho an'ny Pacemaker, manantena aho fa amin'ny Red Hat 8 mety. Saingy ny "malfunctions" toy izany dia manombatombana ary azo atao mora ampiasaina amin'ny fampiasana artifisialy, ohatra, killall -STOP corosync, fa tsy mifankahita amin'ny tena fiainana.

  • У pacemaker amin'ny version for CentOS 7 diso napetraka sync_timeout у fitaovana kôlejy, vokatr'izany raha toa ka tsy nahomby ny node iray, dia mety hiverina indray ny node faharoa, izay tokony hifindran'ny tompony. Sitrana amin'ny fanitarana sync_timeout у fitaovana kôlejy mandritra ny fametrahana (ao amin'ny script setup/setup1). Tsy neken'ny mpamorona ity fanitsiana ity pacemaker, fa nampanantena kosa izy ireo fa hamolavola ny fotodrafitrasa amin'ny fomba (amin'ny hoavy tsy voafaritra) ka hokajiana ho azy io fe-potoana io.

  • Raha mamaritra izany ny configuration database LC_MESSAGES (hafatra an-tsoratra) Azo ampiasaina ny Unicode, oh. ru_RU.UTF-8, avy eo amin'ny fanombohana postgres amin'ny tontolo iray izay tsy UTF-8 ny toerana, lazao amin'ny tontolo tsy misy na inona na inona (eto pacemaker+pgsqlms(paf) mihazakazaka postgres), avy eo ny log dia ahitana marika fanontaniana fa tsy litera UTF-8. Ny mpamorona PostgreSQL dia tsy nanaiky ny tokony hatao amin'ity tranga ity. Vidiny izany, mila apetraka ianao LC_MESSAGES=en_US.UTF-8 rehefa manamboatra (mamorona) ohatra momba ny database.

  • Raha napetraka ny wal_receiver_timeout (amin'ny alàlan'ny default dia 60s), dia mandritra ny fitsapana PostgreSQL-STOP amin'ny master ao amin'ny clusters tuchanka3 sy tuchanka4 replication dia tsy mifandray amin'ny tompony vaovao. Ny replication dia misy synchronous, ka tsy ny andevo ihany no mijanona, fa ny tompony vaovao ihany koa. Miasa amin'ny alàlan'ny fametrahana wal_receiver_timeout=0 rehefa manamboatra PostgreSQL.

  • Tsindraindray aho dia nahatsikaritra ny famerenam-bidy tao amin'ny PostgreSQL tamin'ny fitsapana ForkBomb (mihoatra ny fitadidiana). Aorian'ny ForkBomb, indraindray ny andevo dia mety tsy mifandray amin'ny tompony vaovao. Tao amin'ny clusters tuchanka3 sy tuchanka4 ihany no nahitako izany, izay nivaingana ny tompony noho ny replication synchronous. Nivaha ho azy ny olana rehefa elaela (adiny roa teo ho eo). Ilaina ny fikarohana bebe kokoa hanitsiana izany. Ny soritr'aretina dia mitovy amin'ny bibikely teo aloha, izay vokatry ny antony hafa, saingy mitovy ny vokany.

Krogan sary nalaina tamin'ny Deviant Art nahazoana alalana avy amin'ny mpanoratra:

Mamolavola kluster failover mifototra amin'ny PostgreSQL sy Pacemaker

Source: www.habr.com