Ukugcinwa kweqela kumaqela amancinci ewebhu esekwe kwi-drbd+ocfs2

Siza kuthetha ngantoni:
Ungathumela njani ngokukhawuleza ukugcinwa okwabelwana ngako kwiiseva ezimbini ezisekwe kwizisombululo ze-drbd+ocfs2.

Ingaba oku kuya kuba luncedo kubani:
I-tutorial iya kuba luncedo kubalawuli benkqubo kunye nabani na okhetha indlela yokuphunyezwa yokugcina okanye ufuna ukuzama isisombululo.

Zeziphi izigqibo esalayo yaye ngoba?

Amaxesha amaninzi sijongana nemeko apho kufuneka siphumeze ugcino ekwabelwana ngalo kunye nokusebenza kakuhle kokufunda-ukubhala kwiqela elincinci lewebhu. Sizame iindlela ezahlukeneyo zokuphumeza ukugcinwa okwabelwana ngako kwiiprojekthi zethu, kodwa bambalwa abakwaziyo ukusanelisa kwiimpawu ezininzi ngexesha elinye. Ngoku siza kukuxelela ukuba kutheni.

  • I-Glusterfs ayizange isanelise ngokufunda nokubhala ukusebenza; kwakukho iingxaki ngokufunda kwangaxeshanye inani elikhulu leefayile, kwaye kwakukho umthwalo ophezulu kwi-CPU. Ingxaki ngeefayile zokufunda zingasombululwa ngokufikelela kuzo ngokuthe ngqo kwizitena, kodwa oku akusoloko kusebenza kwaye ngokuqhelekileyo akuchanekanga.

  • UCeph akakuthandanga ukuntsonkotha okugqithisileyo, okunokuba yingozi kwiiprojekthi ezinamaseva angama-2-4, ngakumbi ukuba iprojekthi igcinwa emva koko. Kwakhona, kukho imida enzulu yokusebenza esinyanzela ukuba sakhe amaqela okugcina ahlukeneyo, njengakwi-glusterfs.

  • Ukusebenzisa iseva enye ye-NFS ukuphumeza ukugcinwa okwabelwanayo kuphakamisa imibuzo malunga nokunyamezela impazamo.

  • s3 sisisombululo esibalaseleyo esithandwayo kuluhlu oluthile lwemisebenzi, kodwa asiyonkqubo yefayile, ecutha umda wayo.

  • lsyncd. Ukuba sele siqalile ukuthetha "ngeenkqubo ezingezizo iifayile," ngoko kuyafaneleka ukuba sidlule kwesi sisombululo sidumileyo. Ayifanelekanga kuphela ukutshintshiselana ngeendlela ezimbini (kodwa ukuba ufuna ngokwenene, ngoko unako), ayisebenzi ngokuzinzileyo kwinani elikhulu leefayile. Ukongezwa okuhle kuyo yonke into kukuba inentambo enye. Isizathu sikulwakhiwo lwenkqubo: isebenzisa inotify ukujonga izinto zomsebenzi ekwabelayo ekuqaleni nangexesha lokuskena kwakhona. I-rsync isetyenziswa njengendlela yokudlulisa.

Isifundo: indlela yokubeka indawo yokugcina ekwabelwanayo ngayo esekwe kwi-drbd+ocfs2

Esinye sezona zisombululo ziluncedo kuthi yayilikhonkco ocfs2+drbd. Ngoku siza kukuxelela ukuba ungathumela njani ngokukhawuleza ukugcinwa okwabelwanayo kwiiseva ezimbini ezisekelwe kwisiseko sedatha. Kodwa kuqala, kancinci malunga namacandelo:

DRBD -inkqubo yokugcina ukusuka kunikezelo oluqhelekileyo lweLinux ekuvumela ukuba uphindaphinde idatha phakathi kweeseva kwiibhloko. Isicelo esiphambili kukwakha indawo yokugcina impazamo.

OCFS2 -inkqubo yefayile ebonelela ngokusetyenziswa okwabelwanayo kogcino olufanayo ngeenkqubo ezininzi. Ibandakanyiwe kunikezelo lweLinux kwaye yimodyuli yekernel kunye nezixhobo zesithuba somsebenzisi sokusebenza neFS. I-OCFS2 ayinakusetyenziswa kuphela ngaphezulu kwe-DRBD, kodwa nangaphezulu kwe-iSCSI enonxibelelwano oluninzi. Kumzekelo wethu sisebenzisa i-DRBD.

Zonke iintshukumo zenziwa kumncedisi wobuntu 18.04 kuqwalaselo oluncinci.

Inyathelo loku-1. Lungisa i-DRBD:

Kwifayile /etc/drbd.d/drbd0.res sichaza isixhobo sethu sebhloko esibonakalayo /dev/drbd0:

resource drbd0 {
    syncer { rate 1000M; }
    net {
        allow-two-primaries;
        after-sb-0pri discard-zero-changes;
        after-sb-1pri discard-secondary;
        after-sb-2pri disconnect;
    }
    startup { become-primary-on both; }
    on drbd1 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/vdb1;
        address 10.10.10.192:7789;
}
    on drbd2 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/vdb1;
        address 10.10.10.193:7789;
}
}

meta-disk yangaphakathi β€” sebenzisa izixhobo zebhloko ezifanayo ukugcina imetadata
isixhobo /dev/drbd0 -sebenzisa /dev/drbd0 njengendlela eya kumthamo we-drbd.
idiski /dev/vdb1 -sebenzisa /dev/vdb1
umngqamanisi {ireyithi ye-1000M; } -sebenzisa i-gigabit channel bandwidth
vumela-ezimbini-zokuqala - inketho ebalulekileyo evumela ukuba utshintsho lwamkelwe kwiiseva ezimbini eziphambili
emva-sb-0pri, emva-sb-1pri, emva-sb-2pri - iinketho ezijongene nezenzo ze-node xa i-splitbrain ifunyenwe. Iinkcukacha ezithe vetshe zinokufunyanwa kumaxwebhu.
ibe-phambili-kuzo zombini β€” useta zombini iindawo ukuya kwiprayimari.

Kwimeko yethu, sine-VM ezimbini ezifanayo ngokupheleleyo, kunye nenethiwekhi yenyani ezinikeleyo kunye nokuphuma kweegigabhithi ezili-10.

Kumzekelo wethu, amagama womnatha weendawo ezimbini zeqela yi-drbd1 kunye ne-drbd2. Ukuze usebenze ngokufanelekileyo, kufuneka ufanise amagama kunye needilesi ze-IP zenginginya kwi-/etc/hosts.

10.10.10.192 drbd1
10.10.10.193 drbd2

Inyathelo 2. Seta iindawo zokuhlala:

Kuzo zombini iiseva siqhuba:

drbdadm create-md drbd0

Ukugcinwa kweqela kumaqela amancinci ewebhu esekwe kwi-drbd+ocfs2

modprobe drbd
drbdadm up drbd0
cat /proc/drbd

Sifumana oku kulandelayo:

Ukugcinwa kweqela kumaqela amancinci ewebhu esekwe kwi-drbd+ocfs2

Ungaqalisa ungqamaniso. Kwi-node yokuqala kufuneka uphumeze:

drbdadm primary --force drbd0

Makhe sijonge isimo:

cat /proc/drbd

Ukugcinwa kweqela kumaqela amancinci ewebhu esekwe kwi-drbd+ocfs2

Kuhle, ungqamaniso luqalile. Silinda de kube sekupheleni kwaye sibone umfanekiso:

Ukugcinwa kweqela kumaqela amancinci ewebhu esekwe kwi-drbd+ocfs2

Inyathelo 3. Qala ungqamaniso kwindawo yesibini:

drbdadm primary --force drbd0

Sifumana oku kulandelayo:

Ukugcinwa kweqela kumaqela amancinci ewebhu esekwe kwi-drbd+ocfs2

Ngoku sinokubhalela kwi-drbd ukusuka kwiiseva ezimbini.

Inyathelo 4. Faka kwaye uqwalasele i-ocfs2.

Siza kusebenzisa ubumbeko oluncinci ngokufanelekileyo:

cluster:
     node_count = 2
     name = ocfs2cluster

node:
     number = 1
     cluster = ocfs2cluster
     ip_port = 7777
     ip_address = 10.10.10.192
     name = drbd1

node:
     number = 2
     cluster = ocfs2cluster
     ip_port = 7777
     ip_address = 10.10.10.193
     name = drbd2

Kufuneka ibhalwe phantsi /etc/ocfs2/cluster.conf kuzo zombini iindawo.

Senza iFS kwi-drbd0 kuyo nayiphi na indawo:

mkfs.ocfs2 -L "testVol" /dev/drbd0

Apha senze inkqubo yefayile eneleyibhile testVol kwi drbd0, sisebenzisa iiparameters ezingagqibekanga.

Ukugcinwa kweqela kumaqela amancinci ewebhu esekwe kwi-drbd+ocfs2

Kwi /etc/default/o2cb kufuneka usete (njengakwifayile yethu yoqwalaselo)

O2CB_ENABLED=true 
O2CB_BOOTCLUSTER=ocfs2cluster 

kwaye uphumeze kwindawo nganye:

o2cb register-cluster ocfs2cluster

Emva koko sivula kwaye songeze zonke iiyunithi esizifunayo ukwenza i-autorun:

systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2

Okunye koku kuya kuba sele kuqhutywa ngexesha lokuseta.

Inyathelo lesi-5. Yongeza iindawo zokukhwela kwi-fstab kuzo zombini iindawo:

/dev/drbd0 /media/shared ocfs2 defaults,noauto,heartbeat=local 0 0

Uluhlu /imidiya/ekwabelwana ngayo kufuneka idalwe kwangaphambili.

Apha sisebenzisa iinketho ze-noauto, okuthetha ukuba ifayile ayisayi kunyuswa ekuqaleni (ndikhetha ukunyusa iifayile zenethiwekhi nge-systemd) kunye ne-heartbeat=local, okuthetha ukusebenzisa inkonzo yokubetha kwentliziyo kwindawo nganye. Kukwakho ne-global heartbeat, efaneleke ngakumbi amaqela amakhulu.

Okulandelayo ungakhwela /imidiya/ekwabelwana ngayo kwaye ujonge ungqamaniso lomxholo.

Yenziwe! Ngenxa yoko, sifumana ukugcinwa okungaphezulu okanye okungaphantsi kokunyamezela iimpazamo kunye nokulinganisa kunye nokusebenza kakuhle.

umthombo: www.habr.com

Yongeza izimvo