Otu esi edobe DRBD ka ị megharịa nchekwa na sava CentOS 7 abụọ


DRBD (nke na-anọchi anya Ngwaọrụ Ngbochi Ekesara ekesa) bụ ihe nchekwa nchekwa ekesa, na-agbanwe ma na-agbanwe agbanwe maka Linux. Ọ na-egosipụta ọdịnaya nke ngwaọrụ ngọngọ dị ka diski ike, akụkụ, mpịakọta ezi uche wdg n'etiti sava. Ọ na-agụnye nnomi data na ngwaọrụ abụọ nchekwa, dị otú ahụ na ọ bụrụ na otu ada ada, na data na nke ọzọ nwere ike iji.

Ị nwere ike iche maka ya dị ka nhazi netwọk RAID 1 nke diski ahụ gosipụtara n'ofe sava. Otú ọ dị, ọ na-arụ ọrụ n'ụzọ dị nnọọ iche site na RAID na ọbụna netwọk RAID.

Na mbụ, a na-ejikarị DRBD na ụyọkọ kọmputa dị elu (HA), agbanyeghị, malite na ụdị 9, enwere ike iji ya wepụta ngwọta nchekwa igwe ojii.

N'isiokwu a, anyị ga-egosi otu esi etinye DRBD na CentOS ma gosipụta nkenke ka esi eji ya megharịa nchekwa (nkebi) na sava abụọ. Nke a bụ akụkọ zuru oke iji malite iji DRBD na Linux.

Maka ebumnuche nke isiokwu a, anyị na-eji ụyọkọ ọnụ abụọ maka nhazi a.

  • Ọnụ 1: 192.168.56.101 - tecmint.tecmint.lan
  • Node2: 192.168.56.102 – server1.tecmint.lan

Kwụpụ 1: Ịwụnye ngwugwu DRBD

A na-emejuputa DRBD dị ka modul kernel Linux. Ọ bụ kpọmkwem onye ọkwọ ụgbọ ala maka ngwaọrụ mgbochi mebere ya, yabụ emebere ya n'akụkụ ala nke ngwugwu I/O sistemụ.

Enwere ike itinye DRBD site na ebe nchekwa ELRepo ma ọ bụ EPEL. Ka anyị bido site na ibubata igodo nbinye aka ngwungwu ELRepo, ma mee ka ebe nchekwa dị ka egosiri na ọnụ abụọ ahụ.

# 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

Mgbe ahụ, anyị nwere ike iwunye modul kernel DRBD na akụrụngwa na ọnụ abụọ ahụ site na ịgba ọsọ:

# yum install -y kmod-drbd84 drbd84-utils

Ọ bụrụ na agbanyere SELinux, ịkwesịrị ịgbanwe usoro iwu DRBD na njikwa SELinux.

# semanage permissive -a drbd_t

Na mgbakwunye, ọ bụrụ na sistemụ gị nwere ọkụ ọkụ (firewalld), ịkwesịrị ịgbakwunye ọdụ ụgbọ mmiri DRBD 7789 na firewall iji kwe ka ịmekọrịta data n'etiti ọnụ abụọ ahụ.

Gbaa iwu ndị a na ọnụ nke mbụ:

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

Wee mee iwu ndị a na ọnụ nke abụọ:

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

Kwụpụ 2: Na-akwado Nchekwa Ọkwa Obere

Ugbu a anyị etinyela DRBD n'ọnụ ọnụ ụyọkọ abụọ ahụ, anyị ga-akwadorịrị ebe nchekwa nha na ọnụ abụọ ahụ. Nke a nwere ike ịbụ nkebi draịvụ ike (ma ọ bụ draịvụ ike anụ ahụ zuru oke), ngwaọrụ RAID ngwanrọ, olu LVM Logical Volume ma ọ bụ ụdị ngọngọ ngwaọrụ ọ bụla achọtara na sistemụ gị.

Maka ebumnuche nke edemede a, anyị ga-emepụta ngwaọrụ mgbochi nke nha 2GB site na iji iwu dd.

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

Anyị ga-eche na nke a bụ akụkụ a na-ejighị ya (/ dev/sdb1) na ngwaọrụ ngọngọ nke abụọ (/ dev/sdb) jikọtara na ọnụ abụọ ahụ.

Nzọụkwụ 3: Ịhazi DRBD

Faịlụ nhazi isi nke DRBD dị na /etc/drbd.conf na enwere ike ịhụ faịlụ nhazi ndị ọzọ na /etc/drbd.d directory.

Iji megharịa nchekwa, anyị kwesịrị ịgbakwunye nhazi ndị dị mkpa na faịlụ /etc/drbd.d/global_common.conf nke nwere akụkụ zuru ụwa ọnụ na nke nkịtị nke nhazi DRBD na anyị nwere ike ịkọwa ihe onwunwe na faịlụ .res.

Ka anyị mee ndabere nke faịlụ mbụ na ọnụ abụọ ahụ, wee mepee faịlụ ọhụrụ maka edezi (jiri ederede ederede nke mmasị gị).

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

Tinye ahịrị ndị a na faịlụ abụọ a:

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

Chekwaa faịlụ, wee mechie nchịkọta akụkọ.

Ka anyị were nwa nkenke ndokwu ọkụ na usoro ahịrị C. DRBD na-akwado ụdị mmegharị atọ dị iche iche (ya mere ogo atọ nke synchronicity replication) bụ:

  • protocol A: Asynchronous replication protocol; a na-ejikarị ya eme ihe n'ọdịdị ngbanwe dị anya.
  • protocol B: Protocol mmeghari mmekọ nke ọkara aka Memory synchronous protocol.
  • protocol C: nke a na-ejikarị eme ọnụ na netwọk dị mkpụmkpụ; ọ dị anya, usoro ngbanwe a na-ejikarị na nhazi DRBD.

Ihe dị mkpa: Nhọrọ nke protocol mmegharị na-emetụta ihe abụọ nke ntinye gị: nchedo na nkwụsị. Na mmepụta, n'ụzọ dị iche, na-adaberekarị na usoro mmegharị ahọpụtara.

Kwụpụ 4: Tinye akụrụngwa

Akụrụngwa bụ okwu mkpokọta na-ezo aka n'akụkụ niile nke otu nhazi data emegharịrị. Anyị ga-akọwapụta akụrụngwa anyị na faịlụ a na-akpọ /etc/drbd.d/test.res.

Tinye ọdịnaya ndị a na faịlụ ahụ, na ọnụ abụọ (cheta na iji ezigbo ụkpụrụ maka gburugburu gị dochie mgbanwe ndị dị na ọdịnaya).

Rịba ama aha nnabata, anyị kwesịrị ịkọwa aha nnabata netwọkụ nke enwere ike nweta site na ịme iwu uname -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;
        }
}
}

ebe:

  • na aha nnabata: na ngalaba na-ekwu nke na-akwado nkwupụta nhazi agbakwunyere na-emetụta.
  • ule: bụ aha akụrụngwa ọhụrụ.
  • ngwaọrụ/dev/drbd0: na-akọwapụta ngwaọrụ ngọngọ mebere ọhụrụ nke DRBD na-ejikwa.
  • disk /dev/sdb1: bụ ihe mgbochi ngwaọrụ nke bụ ngwaọrụ nkwado maka ngwaọrụ DRBD.
  • meta-disk: Akọwapụta ebe DRBD na-echekwa metadata ya. Iji Internal pụtara na DRBD na-echekwa meta data ya n'otu ngwaọrụ dị ala dị ka data mmepụta n'ezie.
  • adreesị: ezipụta adreesị IP na nọmba ọdụ ụgbọ mmiri nke ọnụ otu.

Marakwa na ọ bụrụ na nhọrọ ahụ nwere nha nha nha na ndị ọbịa abụọ ahụ, ịnwere ike ịkọwapụta ha ozugbo na ngalaba akụrụngwa.

Dịka ọmụmaatụ, enwere ike ịhazigharị nhazi nke dị n'elu ka ọ bụrụ:

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

Nzọụkwụ 5: Ịmalite na Ịkwanye akụrụngwa

Iji soro DRBD na-emekọrịta ihe, anyị ga-eji ngwaọrụ nchịkwa ndị a nke na-ekwurịta okwu na modul kernel iji hazie na ijikwa akụrụngwa DRBD:

  • drbdadm: ngwá ọrụ nchịkwa dị elu nke DRBD.
  • drbdsetup: ngwá ọrụ nchịkwa dị ala maka ijikọ ngwaọrụ DRBD na ngwaọrụ ha na-akwado nkwado, iji guzobe ngwaọrụ abụọ DRBD iji gosipụta ngwaọrụ mgbochi nkwado ha, yana nyochaa nhazi nke ngwaọrụ DRBD na-agba ọsọ.
  • Drbdmeta: bụ ngwa njikwa data meta.

Mgbe agbakwunyere nhazi akụrụngwa mbụ niile, anyị ga-ebulite akụrụngwa na ọnụ abụọ ahụ.

# drbdadm create-md test

Ọzọ, anyị kwesịrị ime ka akụ ahụ, nke ga-ejikọta akụ ahụ na ngwaọrụ nkwado ya, mgbe ahụ ọ na-edozi paramita replication, ma jikọta akụ ahụ na ndị ọgbọ ya:

# drbdadm up test

Ugbu a ọ bụrụ na ị na-agba ọsọ lsblk iwu, ị ga-achọpụta na DRBD ngwaọrụ/olu drbd0 na-ejikọta na ngwaọrụ nkwado/dev/sdb1:

# lsblk

Iji gbanyụọ akụrụngwa, gbaa ọsọ:

# drbdadm down test

Iji lelee ọnọdụ akụrụngwa, mee iwu na-esonụ (rịba ama na a na-atụ anya ọnọdụ diski na-ekwekọghị ekwekọ/na-ekwekọghị ekwekọ n'oge a):

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

Kwụpụ 6: Tọọ ihe enyemaka/isi mmalite nke mmekọrịta ngwaọrụ mbụ

N'oge a, DRBD adịla njikere ịrụ ọrụ. Ugbu a anyị kwesịrị ịgwa ya ọnụ nke kwesịrị iji dị ka isi mmalite nke mmekọrịta ngwaọrụ mbụ.

Gbaa iwu a na naanị otu ọnụ ka ịmalite mmekọrịta mbụ zuru oke:

# drbdadm primary --force test
# drbdadm status test

Ozugbo mmekọrịta ahụ mechara, ọnọdụ diski abụọ ahụ kwesịrị ịbụ UpToDate.

Kwụpụ 7: Na-anwale nhazi DRBD

N'ikpeazụ, anyị kwesịrị ịnwale ma ngwaọrụ DRBD ga-arụ ọrụ nke ọma maka nchekwa data oyiri. Cheta, anyị jiri olu diski efu, yabụ anyị ga-emepụta sistemu faịlụ na ngwaọrụ ahụ, ma bulie ya, iji nwalee ma anyị nwere ike iji ya maka nchekwa data emegharịgharị.

Anyị nwere ike ịmepụta sistemụ faịlụ na ngwaọrụ ahụ site na iwu na-esonụ, na ọnụ ebe anyị malitere mmekọrịta mbụ zuru oke (nke nwere akụrụngwa nwere ọrụ mbụ):

# mkfs -t ext4 /dev/drbd0 

Mgbe ahụ, bulie ya dị ka egosiri (ị nwere ike ịnye ebe ugwu aha kwesịrị ekwesị):

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

Ugbu a detuo ma ọ bụ mepụta ụfọdụ faịlụ na ebe ugwu dị n'elu wee mee ndepụta ogologo site na iji iwu ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Na-esote, kpọtuo ngwaọrụ ahụ (hụ na ugwu adịghị emeghe, gbanwee akwụkwọ ndekọ mgbe ewepụsịrị ya iji gbochie njehie ọ bụla) wee gbanwee ọrụ ọnụ site na isi gaa na nke abụọ:

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

N'akụkụ nke ọzọ (nke nwere akụrụngwa nwere ọrụ nke abụọ), mee ya ka ọ bụrụ nke mbụ, wee tinye ngwaọrụ na ya wee rụọ ndepụta ogologo nke ebe ugwu. Ọ bụrụ na nhazi ahụ na-arụ ọrụ nke ọma, faịlụ niile echekwara na olu kwesịrị ịdị ebe ahụ:

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

Maka ozi ndị ọzọ, hụ ibe nwoke nke ngwaọrụ nchịkwa ohere onye ọrụ:

# man drbdadm
# man drbdsetup
# man drbdmeta

Ntụaka: Ntuziaka onye ọrụ DRBD.

DRBD na-agbanwe agbanwe ma na-agbanwe agbanwe, nke na-eme ka ọ bụrụ ihe ngwọta nchekwa nchekwa kwesịrị ekwesị maka ịgbakwunye HA na ngwa ọ bụla. N'ime edemede a, anyị egosila otu esi etinye DRBD na CentOS 7 wee gosipụta nkenke ka esi eji ya megharịa nchekwa. Enwere onwe gị ịkọrọ anyị echiche gị site na mpempe nzaghachi n'okpuru.