Kumisikidza DRBD yekuchengetedza kudzokorora pane maviri CentOS 7 maseva

Kuturikirwa kwechinyorwa kwakagadzirirwa manheru ekutanga kwekosi "Linux Administrator. Virtualization uye clustering".

DRBD (Distributed Replicated Block Device) inogovaniswa, inochinjika, uye yepasi rose inodzokororwa yekuchengetedza mhinduro yeLinux. Iyo inoratidza zviri mukati me block zvishandiso senge hard drive, partitions, zvine musoro mavhoriyamu, nezvimwe. pakati pemaseva. Inogadzira makopi e data pamidziyo miviri yekuchengetedza kuitira kuti kana imwe yadzo ikakundikana, data pane yechipiri inogona kushandiswa.

Unogona kuti chinhu chakadai network RAID kumisikidzwa 1 ine madhisiki akamepurwa kune akasiyana maseva. Nekudaro, inoshanda zvakasiyana zvachose pane RAID (kunyangwe network RAID).

Pakutanga, DRBD yaishandiswa zvakanyanya mukuwanikwa kwepamusoro (HA) makomputa masumbu, zvisinei, kutanga neshanduro XNUMX, inogona kushandiswa kuendesa cloud storage solutions.

Muchikamu chino, tichatsanangura maitiro ekuisa DRBD paCentOS uye nekuratidza muchidimbu mashandisirwo ayo kudzokorora kuchengetedza (chikamu) pamaseva maviri. Ichi ndicho chinyorwa chakanaka chekutanga neDRBD paLinux.

Test environment

Isu tichashandisa maviri node cluster yekuseta iyi.

  • Nhamba 1: 192.168.56.101 - tecmint.tecmint.lan
  • Nhamba 2: 192.168.56.102 - server1.tecmint.lan

Nhanho 1: Isa DRBD mapakeji

DRBD inoshandiswa seLinux kernel module. Iyo mutyairi weiyo chaiyo block mudziyo, saka iri pazasi chaipo peiyo system's I/O stack.

DRBD inogona kuiswa kubva kuELRepo kana EPEL. Ngatitange nekupinza ELRepo pasuru yekusaina kiyi uye nekubatanidza repository pane ese node sezvakaratidzwa pazasi.

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

Ipapo iwe unofanirwa kuisa iyo DRBD kernel module uye zvishandiso pane ese node uchishandisa:

# yum install -y kmod-drbd84 drbd84-utils

Kana iwe uine SELinux yakagoneswa, iwe unofanirwa kugadzirisa marongero ekusunungura DRBD maitiro kubva kuSELinux control.

# semanage permissive -a drbd_t

Pamusoro pezvo, kana sisitimu yako ichimhanyisa firewall (firewalld), iwe uchafanirwa kuwedzera DRBD port 7789 kubvumira data synchronization pakati pemanodhi maviri.

Mhanya iyi mirairo yekutanga node:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Wobva wamhanya iyi mirairo kune yechipiri node:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Danho 2: Gadzirira Yakaderera-Level Kuchengeta

Zvino zvatine DRBD yakaiswa pane ese masumbu node, isu tinofanirwa kupa nzvimbo dzekuchengetera dzinenge saizi yakafanana pavari. Iyi inogona kunge iri hard drive partition (kana iyo yese yemuviri hard drive), software RAID mudziyo, LVM zvine musoro vhoriyamu kana chero imwe mhando yeblock mudziyo inowanikwa pane yako system.

Kune ichi chinyorwa, isu tichagadzira 2GB yekuedza block mudziyo tichishandisa iyo dd command.

# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

Ngatifungei ichi chikamu chisina kushandiswa (/dev/sdb1) pane yechipiri block mudziyo (/dev/sdb) yakabatana kune ese manode.

Nhanho 3. Kugadzirisa DRBD

DRBD main configuration file - /etc/drbd.conf, uye mamwe mafaera ekugadzirisa anogona kuwanikwa mudhairekitori /etc/drbd.d.

Kuti tidzokorore kuchengetedza, tinoda kuwedzera zvigadziriso zvinodikanwa kune faira /etc/drbd.d/global_common.conf, iyo ine zvikamu zvepasi rose uye zvakajairika zveDRBD kumisikidzwa, uye isu tinofanirwa kutsanangura zviwanikwa mukati .res mafaira.

Ngatitorei kopi yekudzoreredza yefaira rekutanga pane ese node, tobva tavhura iyo faira nyowani yekugadzirisa (shandisa chinyorwa chinyorwa chesarudzo yako).

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

Wedzera mitsara inotevera kune ese mafaera:

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

Sevha iyo faira uye wobva wavhara mupepeti.

Ngatitarisei mutsara weprotocol C kwekanguva. DRBD inotsigira nzira nhatu dzakasiyana dzekudzokorora (kureva, madhigirii matatu ekudzokorora synchrony), anoti:

  • protocol A: asynchronous replication protocol; inonyanya kushandiswa mumamiriro ekudzokorora kure kure.
  • protocol B: Semi-synchronous replication protocol kana synchronous memory protocol.
  • protocol C: inowanzoshandiswa kune nodes mumambure ane mapfupi marefu; iyi ndiyo inonyanya kushandiswa kudzokorora protocol muDRBD marongero.

kosha: Sarudzo yekudzokorora protocol inobata zvinhu zviviri zvekutumira: chengetedzo uye latency. Kusiyana neizvi, kuburitsa hakunei zvakanyanya pane yakasarudzwa yekudzokorora protocol.

Danho rechina: Wedzera sosi

Resource iamburera izwi rinoreva zvese zvikamu zveimwe yakadzokororwa dataset. Isu tichatsanangura yedu sosi mufaira /etc/drbd.d/test.res.

Wedzera zvinotevera kune iyo faira pane ese node (rangarira kutsiva mavhezheni neayo chaiwo maitiro enzvimbo yako).

Chenjerera kune mazita ekugamuchira, isu tinoda kutsanangura iyo network hostname, iyo inogona kuwanikwa uchishandisa iyo uname command. -n.

resource test {
        on tecmint.tecmint.lan {
 		device /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk internal;	
                	address 192.168.56.101:7789;
        }
        on server1.tecmint.lan  {
		device /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk internal;
                	address 192.168.56.102:7789;
        }
}
}

kupi:

  • on hostname: Iyo iri pachikamu iyo iyo nested configuration statement inoshanda.
  • bvunzo: Iri ndiro zita rechinhu chitsva.
  • mudziyo /dev/drbd0: Inoratidza nyowani nyowani block mudziyo inotungamirwa neDRBD.
  • dhisiki /dev/sdb1: Ichi chidimbu chemudziyo wekuvhara icho chiri chekuchengetedza mudziyo weDRBD mudziyo.
  • meta-disk: Inotsanangura uko DRBD inochengetera metadata yayo. Zvemukati zvinoreva kuti DRBD inochengeta metadata yayo pane imwecheteyo yemuviri yakaderera-level mudziyo seiyo chaiyo data mukugadzira.
  • adhiresi: Inoratidza IP kero uye nhamba yechiteshi cheiyo node inoenderana.

Ziva zvakare kuti kana iwo ma paramita aine hunhu hwakafanana pane ese ari maviri mauto, unogona kuzvitsanangura zvakananga muchikamu chezviwanikwa.

Semuenzaniso, iyo gadziriso iri pamusoro inogona kugadziridzwa ku:

resource test {
	device /dev/drbd0;
	disk /dev/sdb1;
        	meta-disk internal;	
        	on tecmint.tecmint.lan {
 		address 192.168.56.101:7789;
        	}
        	on server1.tecmint.lan  {
		address 192.168.56.102:7789;
        		}
}

Danho 5. Tanga uye tanga sosi

Kudyidzana neDRBD isu tichashandisa anotevera ekutonga maturusi (ayo anodyidzana ne kernel module kugadzirisa uye kutonga DRBD zviwanikwa):

  • drbdadm: DRBD yepamusoro-level management tool.
  • drbdsetup: Chishandiso chepasi-chikamu chekutonga chekubatanidza maDRBD zvishandiso kumidziyo yavo yekuchengetedza, kugadzirisa mapeya emidziyo yeDRBD kuratidza midziyo yavo yekuchengetedza, uye yekuona magadzirirwo ekushandisa DRBD zvishandiso.
  • Drbdmeta: Metadata manejimendi chishandiso.

Mushure mekuwedzera ese ekutanga zvigadziriso zvigadziriso, isu tinofanirwa kukumbira sosi pane ese node.

# drbdadm create-md test

Kumisikidza DRBD yekuchengetedza kudzokorora pane maviri CentOS 7 maseva
Kutanga iyo Metadata Store

Tevere isu tinoda kuimhanyisa, iyo ichabatanidza sosi kune yayo backup mudziyo, wobva waisa iyo yekudzokorora paramita uye batanidza sosi kune vezera rayo:

# drbdadm up test

Zvino kana iwe uchimhanya murairo lsblk, iwe uchaona kuti DRBD mudziyo/vhoriyamu drbd0 yakabatana neiyo backup mudziyo /dev/sdb1:

# lsblk

Kumisikidza DRBD yekuchengetedza kudzokorora pane maviri CentOS 7 maseva
Rondedzero yemidziyo yeblock

Kuti udzime chitubu, mhanya:

# drbdadm down test

Kuti utarise chimiro chechishandiso, mhanya unotevera kuraira (ona kuti mamiriro emadhisiki anotarisirwa panguva ino. Kusaenderana/Kusaenderana):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status

Kumisikidza DRBD yekuchengetedza kudzokorora pane maviri CentOS 7 maseva
Kutarisa mamiriro echinhu chiri pa
zvakaipa

Nhanho 6: Seta yekutanga sosi / yekutanga mudziyo wekuwiriranisa sosi

Panguva ino, DRBD yakagadzirira kuenda. Zvino isu tinoda kutsanangura kuti ndeipi node inofanira kushandiswa sesosi yekutanga mudziyo kuwiriranisa.

Mhanya unotevera kuraira pane imwechete node kuti utange yekutanga kuzara kwakazara:

# drbdadm primary --force test
# drbdadm status test

Kumisikidza DRBD yekuchengetedza kudzokorora pane maviri CentOS 7 maseva
Kuisa yekutanga node sechinhu chekutanga
Kana kuwiriraniswa kwapera, mamiriro emadhiraivha ese ari maviri anofanira kunge ari UpToDate.

Nhanho yechinomwe: Kuedza iyo DRBD setup

Chekupedzisira, isu tinofanirwa kutarisa kuti mudziyo weDRBD uchashanda sezvinodiwa kuchengetedza data rakadzokororwa. Rangarira kuti isu takashandisa isina dhisiki vhoriyamu, saka isu tinofanirwa kugadzira faira sisitimu pane mudziyo toiisa kuti titarise kana tichigona kuishandisa kuchengeta yakadzokororwa data.

Isu tinofanirwa kugadzira faira sisitimu pamudziyo tichishandisa murairo unotevera pane node patakatanga iyo yekutanga sync yakazara (iyo ine sosi ine basa rekutanga):

# mkfs -t ext4 /dev/drbd0

Kumisikidza DRBD yekuchengetedza kudzokorora pane maviri CentOS 7 maseva
Kugadzira faira system pane Drbd vhoriyamu

Wobva waiisa sezvakaratidzwa (unogona kupa gomo zita rakakodzera):

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

Ikozvino kopira kana gadzira mamwe mafaera mugomo repamusoro uye gadzira runyorwa rurefu ne ls mirairo:

# cd /mnt/DRDB_PRI/
# ls -l 

Kumisikidza DRBD yekuchengetedza kudzokorora pane maviri CentOS 7 maseva
Nyora zviri mukati meiyo huru Drbd vhoriyamu

Tevere, bvisa mudziyo (ita shuwa kuti gomo harina kuvhurika, shandura dhairekitori mushure mekudonha kuti udzivise zvikanganiso) uye shandura iyo node basa kubva yekutanga kuenda yechipiri:

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

Gadzira imwe node (iyo ine sosi ine chikamu chechipiri) yekutanga, wobva waisa mudziyo pairi uye woburitsa runyorwa rurefu rwemapoinzi. Kana iyo setup ichishanda zvakanaka, mafaera ese akachengetwa pavhoriyamu anofanira kunge aripo:

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

Kumisikidza DRBD yekuchengetedza kudzokorora pane maviri CentOS 7 maseva
Kutarisa iyo DRBD setup inomhanya pane yechipiri node.

Kuti uwane rumwe ruzivo, ona mapeji ekubatsira maturusi ekutonga:

# man drbdadm
# man drbdsetup
# man drbdmeta

Rubatsiro: DRBD User Manual.

Summary

DRBD inochinjika zvakanyanya uye inoshanda zvakasiyana-siyana, zvichiita kuti ive yekuchengetera kudzokorora mhinduro yakakodzera kuwedzera HA kune chero application. Muchinyorwa chino, takaratidza nzira yekuisa DRBD paCentOS 7 uye takaratidza muchidimbu mashandisirwo ayo kuchengetedza kudzokorora. Inzwa wakasununguka kugovera pfungwa dzako nesu uchishandisa fomu remhinduro riri pazasi.

Dzidza zvakawanda nezvekosi.

Source: www.habr.com

Voeg