Teeb tsa DRBD rau kev khaws cia rov ua dua ntawm ob CentOS 7 servers

Kev txhais lus ntawm tsab xov xwm tau npaj rau hnub ua ntej ntawm kev pib kawm "Linux Administrator. Virtualization thiab clustering ".

DRBD (Distributed Replicated Block Device) yog ib qho kev faib tawm, hloov pauv tau, thiab thoob plaws ntiaj teb rov tsim kho rau Linux. Nws qhia txog cov ntsiab lus ntawm cov khoom siv thaiv xws li hard drives, partitions, logical volumes, thiab lwm yam. nruab nrab ntawm cov servers. Nws tsim cov ntawv luam ntawm cov ntaub ntawv ntawm ob lub chaw cia khoom kom yog tias ib qho ntawm lawv tsis ua haujlwm, cov ntaub ntawv thib ob tuaj yeem siv tau.

Koj tuaj yeem hais tias nws yog ib yam dab tsi zoo li network RAID configuration 1 nrog disks mapped rau txawv servers. Txawm li cas los xij, nws ua haujlwm txawv li RAID (txawm tias network RAID).

Thaum pib, DRBD tau siv feem ntau hauv cov chaw muaj ntau (HA) lub khoos phis tawj, txawm li cas los xij, pib nrog version XNUMX, nws tuaj yeem siv los xa cov huab cia daws teeb meem.

Hauv tsab xov xwm no, peb yuav piav qhia yuav ua li cas rau nruab DRBD ntawm CentOS thiab qhia luv luv yuav ua li cas siv nws los rov ua dua qhov chaw cia (sib faib) hla ob lub servers. Nov yog tsab xov xwm zoo tshaj plaws los pib nrog DRBD ntawm Linux.

Kuaj ib puag ncig

Peb yuav siv ob lub node pawg rau kev teeb tsa no.

  • Node 1: 192.168.56.101 – tecmint.tecmint.lan
  • Node 2: 192.168.56.102 – server1.tecmint.lan

Kauj ruam 1: Nruab DRBD pob

DRBD yog siv raws li Linux ntsiav module. Nws yog tus tsav tsheb rau lub tshuab thaiv virtual, yog li nws nyob rau hauv qab ntawm qhov system I / O pawg.

DRBD tuaj yeem ntsia tau los ntawm ELRepo lossis EPEL. Cia peb pib los ntawm kev xa cov ELRepo pob kos npe tus yuam sij thiab txuas lub chaw cia khoom ntawm ob lub nodes raws li qhia hauv qab no.

# 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

Tom qab ntawd koj yuav tsum nruab DRBD kernel module thiab cov khoom siv hluav taws xob ntawm ob lub nodes siv:

# yum install -y kmod-drbd84 drbd84-utils

Yog tias koj muaj SELinux enabled, koj yuav tsum teeb tsa cov cai kom zam DRBD cov txheej txheem los ntawm SELinux tswj.

# semanage permissive -a drbd_t

Tsis tas li ntawd, yog tias koj lub kaw lus tab tom khiav firewall (firewalld), koj yuav tsum tau ntxiv DRBD chaw nres nkoj 7789 kom tso cai rau cov ntaub ntawv synchronization ntawm ob lub nodes.

Khiav cov lus txib no rau thawj qhov 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

Tom qab ntawd khiav cov lus txib no rau qhov thib ob ntawm:

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

Kauj ruam 2: Npaj Tsawg-Qib Cia

Tam sim no peb muaj DRBD ntsia ntawm ob pawg ntawm pawg, peb yuav tsum muab thaj chaw cia ntawm kwv yees li qhov loj me ntawm lawv. Qhov no tuaj yeem yog qhov kev faib tawm nyuaj (lossis tag nrho lub cev lub zog), software RAID ntaus ntawv, LVM logical volume los yog lwm yam kev thaiv ntaus ntawv pom ntawm koj lub cev.

Rau tsab xov xwm no, peb yuav tsim 2GB kuaj thaiv cov cuab yeej siv dd hais kom ua.

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

Cia peb xav tias qhov no yog qhov kev faib tsis tau siv (/ dev / sdb1) ntawm qhov thib ob thaiv ntaus ntawv (/ dev / sdb) txuas rau ob leeg.

Kauj ruam 3. Configuring DRBD

DRBD lub ntsiab configuration file - /etc/drbd.conf, thiab cov ntaub ntawv configuration ntxiv tuaj yeem pom hauv phau ntawv qhia /etc/drbd.d.

Yuav kom rov ua dua qhov chaw cia, peb yuav tsum tau ntxiv qhov tsim nyog configurations rau cov ntaub ntawv /etc/drbd.d/global_common.conf, uas muaj cov ntu thoob ntiaj teb thiab dav dav ntawm DRBD teeb tsa, thiab peb yuav tsum tau txhais cov peev txheej hauv .res cov ntaub ntawv.

Cia peb ua ib daim ntawv theej ntawm cov ntawv qub ntawm ob lub nodes, thiab tom qab ntawd qhib cov ntaub ntawv tshiab rau kev kho (siv cov ntawv nyeem koj xaiv).

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

Ntxiv cov kab hauv qab no rau ob cov ntaub ntawv:

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

Txuag cov ntaub ntawv thiab ces kaw lub editor.

Cia peb saib cov txheej txheem C kab ib pliag. DRBD txhawb peb hom kev sib txawv sib txawv (uas yog, peb qib ntawm kev rov ua dua synchrony), uas yog:

  • raws tu qauv A: asynchronous replication raws tu qauv; feem ntau siv nyob rau hauv qhov kev ncua deb replication scenarios.
  • raws tu qauv B: Semi-synchronous replication raws tu qauv los yog synchronous nco raws tu qauv.
  • raws tu qauv C: feem ntau yog siv rau cov nodes hauv tes hauj lwm nrog luv nrug; qhov no yog nyob deb ntawm qhov feem ntau siv replication raws tu qauv hauv DRBD nqis.

ib qho tseem ceeb: Qhov kev xaiv ntawm replication raws tu qauv cuam tshuam rau ob yam kev xa tawm: kev ruaj ntseg thiab latency. Los ntawm qhov sib txawv, qhov kev xa tawm tsis yog nyob ntawm qhov kev xaiv replication raws tu qauv.

Kauj Ruam 4: Ntxiv cov peev txheej

Cov ntaub ntawv yog ib lub kaus uas hais txog txhua yam ntawm ib qho kev hloov pauv cov ntaub ntawv tshwj xeeb. Peb yuav txhais peb cov peev txheej hauv cov ntaub ntawv /etc/drbd.d/test.res.

Ntxiv cov hauv qab no rau cov ntaub ntawv ntawm ob lub nodes (nco ntsoov hloov cov hloov pauv nrog cov txiaj ntsig tiag tiag rau koj ib puag ncig).

Ua tib zoo mloog rau cov npe hostnames, peb yuav tsum qhia meej lub network hostname, uas tuaj yeem tau txais los ntawm kev siv uname hais kom ua -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;
        }
}
}

qhov twg:

  • ntawm hostname: Cov nqe lus ntawm cov nqe lus uas nested configuration siv.
  • xeem: Nov yog lub npe ntawm cov peev txheej tshiab.
  • ntaus /dev/drbd0: Qhia txog lub tshuab thaiv virtual tshiab uas tswj hwm los ntawm DRBD.
  • disk /dev/sdb1: Qhov no yog ib qho thaiv cov cuab yeej muab faib uas yog cov cuab yeej thaub qab rau DRBD ntaus ntawv.
  • meta-disk: Txhais qhov twg DRBD khaws nws cov metadata. Sab hauv txhais tau hais tias DRBD khaws nws cov metadata ntawm tib lub cev qis-theem ntaus ntawv raws li cov ntaub ntawv tiag tiag hauv kev tsim khoom.
  • chaw nyob: Qhia tus IP chaw nyob thiab tus lej chaw nres nkoj ntawm cov node sib raug.

Kuj tseem nco ntsoov tias yog tias qhov ntsuas tsis muaj qhov tseem ceeb ntawm ob lub tswv yim, koj tuaj yeem qhia lawv ncaj qha rau hauv cov khoom siv.

Piv txwv li, cov kev teeb tsa saum toj no tuaj yeem hloov kho rau:

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;
        		}
}

Kauj ruam 5. Pib thiab tso cov peev txheej

Txhawm rau cuam tshuam nrog DRBD peb yuav siv cov cuab yeej tswj hwm hauv qab no (uas cuam tshuam nrog kernel module los teeb tsa thiab tswj hwm DRBD cov peev txheej):

  • drbdm ua: DRBD cov cuab yeej tswj hwm qib siab.
  • drbdsetup: Cov cuab yeej tswj hwm qib qis rau kev txuas DRBD cov cuab yeej rau lawv cov khoom siv thaub qab, teeb tsa khub ntawm DRBD cov khoom siv los cuam tshuam lawv cov cuab yeej thaub qab, thiab txhawm rau txheeb xyuas qhov kev teeb tsa ntawm kev khiav DRBD li.
  • Drbdmeta: Metadata tswj cuab yeej.

Tom qab ntxiv tag nrho cov kev teeb tsa thawj zaug, peb yuav tsum hu cov peev txheej ntawm ob lub nodes.

# drbdadm create-md test

Teeb tsa DRBD rau kev khaws cia rov ua dua ntawm ob CentOS 7 servers
Pib pib Metadata Khw

Tom ntej no peb yuav tsum tau khiav nws, uas yuav txuas cov peev txheej rau nws cov cuab yeej thaub qab, tom qab ntawd teeb tsa cov kev hloov pauv thiab txuas cov peev txheej rau nws cov phooj ywg:

# drbdadm up test

Tam sim no yog tias koj khiav cov lus txib lsblk, koj yuav pom tias DRBD ntaus ntawv / ntim drbd0 cuam tshuam nrog lub cuab yeej thaub qab /dev/sdb1:

# lsblk

Teeb tsa DRBD rau kev khaws cia rov ua dua ntawm ob CentOS 7 servers
Daim ntawv teev cov khoom siv thaiv

Txhawm rau lov tes taw cov peev txheej, khiav:

# drbdadm down test

Txhawm rau txheeb xyuas cov xwm txheej ntawm cov peev txheej, khiav cov lus txib hauv qab no (nco ntsoov tias cov xwm txheej ntawm cov disks xav tau ntawm qhov no Inconsistent/tsis sib haum):

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

Teeb tsa DRBD rau kev khaws cia rov ua dua ntawm ob CentOS 7 servers
Tshawb xyuas cov xwm txheej ntawm cov peev txheej ntawm
phem

Kauj Ruam 6: Teem cov khoom siv thawj zaug / pib ntaus ntawv synchronization qhov chaw

Nyob rau theem no, DRBD npaj mus. Tam sim no peb yuav tsum tau qhia meej tias qhov twg yuav tsum tau siv los ua qhov pib ntawm cov cuab yeej synchronization.

Khiav cov lus txib hauv qab no ntawm tsuas yog ib qho los pib qhov pib tag nrho synchronization:

# drbdadm primary --force test
# drbdadm status test

Teeb tsa DRBD rau kev khaws cia rov ua dua ntawm ob CentOS 7 servers
Teem lub qhov tseem ceeb raws li qhov pib ntaus ntawv
Thaum synchronization tiav, lub xeev ntawm ob lub drives yuav tsum yog UpToDate.

Kauj ruam 7: Ntsuam xyuas DRBD teeb

Thaum kawg, peb yuav tsum xyuas seb DRBD cov cuab yeej puas yuav ua haujlwm raws li qhov xav tau los khaws cov ntaub ntawv rov ua dua. Nco ntsoov tias peb siv lub ntim khoob khoob, yog li peb yuav tsum tsim cov ntaub ntawv kaw lus ntawm lub cuab yeej thiab txuas nws los xyuas seb peb puas tuaj yeem siv nws los khaws cov ntaub ntawv rov ua dua.

Peb yuav tsum tsim kom muaj cov ntaub ntawv kaw lus ntawm lub cuab yeej siv cov lus txib hauv qab no ntawm lub node uas peb tau pib pib tag nrho sync (uas muaj cov peev txheej nrog lub luag haujlwm tseem ceeb):

# mkfs -t ext4 /dev/drbd0

Teeb tsa DRBD rau kev khaws cia rov ua dua ntawm ob CentOS 7 servers
Tsim cov ntaub ntawv kaw lus ntawm Drbd ntim

Tom qab ntawd mount nws raws li qhia (koj tuaj yeem muab lub mount taw tes rau lub npe tsim nyog):

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

Tam sim no luam los yog tsim ib co ntaub ntawv nyob rau hauv lub saum toj no mount point thiab ua ib tug ntev daim ntawv teev nrog ls lus:

# cd /mnt/DRDB_PRI/
# ls -l 

Teeb tsa DRBD rau kev khaws cia rov ua dua ntawm ob CentOS 7 servers
Sau cov ntsiab lus ntawm lub ntsiab Drbd ntim

Tom ntej no, tshem tawm cov cuab yeej (kom paub tseeb tias lub mount tsis qhib, hloov cov npe tom qab unmounting kom tsis txhob yuam kev) thiab hloov lub luag haujlwm ntawm lub hauv paus mus rau theem nrab:

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

Ua rau lwm cov node (uas muaj cov peev txheej nrog lub luag haujlwm thib ob) thawj zaug, tom qab ntawd txuas lub cuab yeej rau nws thiab muab cov npe ntev ntawm cov ntsiab lus mount. Yog tias qhov teeb tsa ua haujlwm zoo, tag nrho cov ntaub ntawv khaws cia ntawm lub ntim yuav tsum nyob ntawd:

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

Teeb tsa DRBD rau kev khaws cia rov ua dua ntawm ob CentOS 7 servers
Tshawb xyuas qhov teeb tsa DRBD khiav ntawm qhov chaw thib ob.

Yog xav paub ntxiv, mus saib cov nplooj ntawv pab cov cuab yeej tswj hwm:

# man drbdadm
# man drbdsetup
# man drbdmeta

Pab: DRBD User Manual.

Txoj kev xaus

DRBD yog qhov hloov tau yooj yim heev thiab muaj ntau yam, ua rau nws qhov kev cia khoom rov ua kom haum rau kev ntxiv HA rau yuav luag txhua daim ntawv thov. Hauv tsab xov xwm no, peb tau qhia yuav ua li cas rau nruab DRBD ntawm CentOS 7 thiab qhia luv luv yuav ua li cas siv nws rau kev khaws cia replication. Xav tias dawb los qhia koj cov kev xav nrog peb siv daim ntawv tawm tswv yim hauv qab no.

Kawm ntxiv txog chav kawm.

Tau qhov twg los: www.hab.com

Ntxiv ib saib