Jinsi ya Kusanidi DRBD ili Kuiga Hifadhi kwenye Seva Mbili za CentOS 7


DRBD (inawakilisha Kifaa cha Kizuizi Kinachosambazwa) ni suluhu ya hifadhi iliyosambazwa, inayoweza kunyumbulika na inayotumika aina nyingi kwa ajili ya Linux. Inaakisi maudhui ya vifaa vya kuzuia kama vile diski kuu, sehemu, kiasi cha kimantiki n.k. kati ya seva. Inajumuisha nakala ya data kwenye vifaa viwili vya kuhifadhi, kwamba ikiwa moja itashindwa, data kwa nyingine inaweza kutumika.

Unaweza kuifikiria kwa kiasi fulani kama usanidi wa mtandao wa RAID 1 na diski zilizoangaziwa kwenye seva. Hata hivyo, inafanya kazi kwa njia tofauti sana na RAID na hata RAID ya mtandao.

Awali, DRBD ilitumiwa hasa katika makundi ya kompyuta ya upatikanaji wa juu (HA), hata hivyo, kuanzia na toleo la 9, inaweza kutumika kupeleka ufumbuzi wa hifadhi ya wingu.

Katika makala haya, tutaonyesha jinsi ya kusakinisha DRBD katika CentOS na kuonyesha kwa ufupi jinsi ya kuitumia kuiga hifadhi (kizigeu) kwenye seva mbili. Hili ndilo nakala kamili ya kuanza kutumia DRBD katika Linux.

Kwa madhumuni ya kifungu hiki, tunatumia nguzo mbili za nodi kwa usanidi huu.

  • Node1: 192.168.56.101 – tecmint.tecmint.lan
  • Node2: 192.168.56.102 - server1.tecmint.lan

Hatua ya 1: Kusakinisha Vifurushi vya DRBD

DRBD inatekelezwa kama moduli ya kernel ya Linux. Inajumuisha kiendeshi cha kifaa cha kuzuia mtandaoni, kwa hivyo imeanzishwa karibu na sehemu ya chini ya rafu ya I/O ya mfumo.

DRBD inaweza kusakinishwa kutoka kwa hazina za ELRepo au EPEL. Wacha tuanze kwa kuingiza ufunguo wa kusaini kifurushi cha ELRepo, na uwashe hazina kama inavyoonyeshwa kwenye nodi zote mbili.

# 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

Kisha tunaweza kusakinisha moduli ya kernel ya DRBD na huduma kwenye nodi zote mbili kwa kukimbia:

# yum install -y kmod-drbd84 drbd84-utils

Ikiwa umewasha SELinux, unahitaji kurekebisha sera ili kuondoa michakato ya DRBD kwenye udhibiti wa SELinux.

# semanage permissive -a drbd_t

Kwa kuongeza, ikiwa mfumo wako una ngome iliyowezeshwa (firewalld), unahitaji kuongeza bandari ya DRBD 7789 kwenye ngome ili kuruhusu ulandanishi wa data kati ya nodi mbili.

Endesha amri hizi kwenye nodi ya kwanza:

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

Kisha endesha amri hizi kwenye nodi ya pili:

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

Hatua ya 2: Kuandaa Hifadhi ya Kiwango cha Chini

Kwa kuwa sasa tuna DRBD iliyosakinishwa kwenye nodi mbili za nguzo, ni lazima tuandae eneo la hifadhi lenye ukubwa unaofanana kwenye nodi zote mbili. Hii inaweza kuwa kizigeu cha diski kuu (au kiendeshi kikuu kamili), kifaa cha programu ya RAID, Kiasi cha Kimantiki cha LVM au aina nyingine yoyote ya kifaa cha kuzuia kinachopatikana kwenye mfumo wako.

Kwa madhumuni ya kifungu hiki, tutaunda kifaa cha kuzuia dummy cha ukubwa wa 2GB kwa kutumia amri ya dd.

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

Tutachukulia kuwa hii ni kizigeu kisichotumiwa (/dev/sdb1) kwenye kifaa cha pili cha kuzuia (/dev/sdb) kilichounganishwa kwenye nodi zote mbili.

Hatua ya 3: Kusanidi DRBD

Faili kuu ya usanidi ya DRBD iko kwenye /etc/drbd.conf na faili za ziada za usanidi zinaweza kupatikana kwenye saraka /etc/drbd.d.

Ili kunakili hifadhi, tunahitaji kuongeza usanidi unaohitajika katika faili ya /etc/drbd.d/global_common.conf ambayo ina sehemu za kimataifa na za kawaida za usanidi wa DRBD na tunaweza kufafanua rasilimali katika faili za .res.

Hebu tufanye nakala ya faili ya awali kwenye nodes zote mbili, kisha ufungue faili mpya kwa ajili ya kuhariri (tumia mhariri wa maandishi ya kupenda kwako).

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

Ongeza mistari ifuatayo katika faili zote mbili:

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

Hifadhi faili, na kisha funga kihariri.

Hebu tuangazie kwa ufupi mwanga zaidi kwenye itifaki ya mstari C. DRBD inaauni njia tatu tofauti za urudufishaji (hivyo digrii tatu za usawazishaji wa urudufishaji) ambazo ni:

  • itifaki A: Itifaki ya urudufishaji wa Asynchronous; mara nyingi hutumika katika matukio ya uigaji wa umbali mrefu.
  • itifaki B: Itifaki ya urudufishaji wa nusu-synchronous aka Itifaki ya upatanishi wa Kumbukumbu.
  • itifaki C: hutumika sana kwa nodi katika mitandao iliyo umbali mfupi; ni kwa sasa, itifaki inayotumika sana ya urudufishaji katika usanidi wa DRBD.

Muhimu: Chaguo la itifaki ya urudufishaji huathiri vipengele viwili vya utumiaji wako: ulinzi na ucheleweshaji. Na upitishaji, kwa kulinganisha, hautegemei itifaki ya urudufishaji iliyochaguliwa.

Hatua ya 4: Kuongeza Nyenzo

Nyenzo ni neno la pamoja linalorejelea vipengele vyote vya seti fulani ya data iliyoigwa. Tutafafanua rasilimali yetu katika faili inayoitwa /etc/drbd.d/test.res.

Ongeza yaliyomo kwenye faili, kwenye nodi zote mbili (kumbuka kuchukua nafasi ya anuwai kwenye yaliyomo na maadili halisi ya mazingira yako).

Kumbuka majina ya mwenyeji, tunahitaji kutaja jina la mwenyeji wa mtandao ambalo linaweza kupatikana kwa kuendesha amri 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;
        }
}
}

wapi:

  • kwenye jina la mpangishaji: sehemu iliyo kwenye sehemu inasema ni mwenyeji gani wa taarifa zilizoambatanishwa za usanidi zitatumika.
  • jaribio: ni jina la rasilimali mpya.
  • kifaa /dev/drbd0: hubainisha kifaa kipya cha kuzuia mtandao kinachodhibitiwa na DRBD.
  • disk /dev/sdb1: ni kizigeu cha kifaa cha kuzuia ambacho ni kifaa kinachounga mkono kifaa cha DRBD.
  • meta-diski: Inafafanua mahali ambapo DRBD huhifadhi metadata yake. Kwa kutumia Internal inamaanisha kuwa DRBD huhifadhi data yake ya meta kwenye kifaa sawa cha kiwango cha chini kama data halisi ya uzalishaji.
  • anwani: inabainisha anwani ya IP na nambari ya mlango wa nodi husika.

Pia kumbuka kuwa ikiwa chaguo zina thamani sawa kwa wapangishaji wote wawili, unaweza kuzibainisha moja kwa moja katika sehemu ya rasilimali.

Kwa mfano usanidi ulio hapo juu unaweza kurekebishwa kuwa:

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

Hatua ya 5: Kuanzisha na Kuwezesha Nyenzo

Ili kuingiliana na DRBD, tutatumia zana zifuatazo za usimamizi ambazo huwasiliana na moduli ya kernel ili kusanidi na kusimamia rasilimali za DRBD:

  • drbdadm: zana ya usimamizi wa hali ya juu ya DRBD.
  • drbdsetup: zana ya usimamizi wa kiwango cha chini cha kuambatisha vifaa vya DRBD na vifaa vyake vya kuzuia, kusanidi jozi za vifaa vya DRBD ili kuakisi vifaa vyao vya kuzuia, na kukagua usanidi wa vifaa vya DRBD vinavyoendesha.
  • Drbdmeta:ndio zana ya usimamizi wa data ya meta.

Baada ya kuongeza usanidi wote wa awali wa rasilimali, lazima tulete rasilimali kwenye nodi zote mbili.

# drbdadm create-md test

Ifuatayo, tunapaswa kuwezesha rasilimali, ambayo itaunganisha rasilimali na kifaa chake cha kuunga mkono, kisha inaweka vigezo vya kurudia, na kuunganisha rasilimali kwa rika lake:

# drbdadm up test

Sasa ukiendesha lsblk amri, utagundua kuwa kifaa cha DRBD/volume drbd0 kinahusishwa na kifaa cha kuunga mkono /dev/sdb1:

# lsblk

Ili kuzima rasilimali, endesha:

# drbdadm down test

Kuangalia hali ya rasilimali, endesha amri ifuatayo (kumbuka kuwa hali ya diski Isiyoendana/Isiyoendana inatarajiwa katika hatua hii):

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

Hatua ya 6: Weka Nyenzo Msingi/Chanzo cha Usawazishaji wa Kifaa cha Awali

Katika hatua hii, DRBD sasa iko tayari kwa kazi. Sasa tunahitaji kuiambia ni nodi gani inapaswa kutumika kama chanzo cha maingiliano ya awali ya kifaa.

Tekeleza amri ifuatayo kwenye nodi moja tu ili kuanza maingiliano kamili ya awali:

# drbdadm primary --force test
# drbdadm status test

Mara baada ya maingiliano kukamilika, hali ya diski zote mbili inapaswa kuwa UpToDate.

Hatua ya 7: Kujaribu Usanidi wa DRBD

Hatimaye, tunahitaji kujaribu ikiwa kifaa cha DRBD kitafanya kazi vyema kwa hifadhi ya data iliyojirudia. Kumbuka, tulitumia kiasi cha diski tupu, kwa hivyo ni lazima tuunde mfumo wa faili kwenye kifaa, na kuuweka, ili kujaribu ikiwa tunaweza kuutumia kwa hifadhi ya data iliyoiga.

Tunaweza kuunda mfumo wa faili kwenye kifaa na amri ifuatayo, kwenye nodi ambapo tulianza maingiliano kamili ya awali (ambayo ina rasilimali iliyo na jukumu la msingi):

# mkfs -t ext4 /dev/drbd0 

Kisha kuiweka kama inavyoonyeshwa (unaweza kuipa eneo la mlima jina linalofaa):

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

Sasa nakili au unda faili zingine kwenye sehemu ya juu ya mlima na ufanye orodha ndefu kwa kutumia ls amri:

# cd /mnt/DRDB_PRI/
# ls -l 

Ifuatayo, ondoa kifaa (hakikisha kuwa kilima hakijafunguliwa, badilisha saraka baada ya kuiondoa ili kuzuia makosa yoyote) na ubadilishe jukumu la nodi kutoka msingi hadi sekondari:

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

Kwenye nodi nyingine (ambayo ina rasilimali iliyo na jukumu la pili), ifanye iwe ya msingi, kisha weka kifaa juu yake na ufanye orodha ndefu ya sehemu ya mlima. Ikiwa usanidi unafanya kazi vizuri, faili zote zilizohifadhiwa kwa sauti zinapaswa kuwepo:

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

Kwa habari zaidi, angalia kurasa za mtu za zana za usimamizi wa nafasi ya mtumiaji:

# man drbdadm
# man drbdsetup
# man drbdmeta

Rejea: Mwongozo wa Mtumiaji wa DRBD.

DRBD ni rahisi kunyumbulika na inafanya kazi nyingi, ambayo inafanya kuwa suluhisho la uhifadhi wa rudufu linalofaa kwa kuongeza HA kwa takriban programu yoyote. Katika makala haya, tumeonyesha jinsi ya kusakinisha DRBD katika CentOS 7 na tukaonyesha kwa ufupi jinsi ya kuitumia ili kunakili hifadhi. Jisikie huru kushiriki mawazo yako nasi kupitia fomu ya maoni iliyo hapa chini.