Iki CentOS 7 serwerinde ammary köpeltmek üçin DRBD-i nädip sazlamaly


DRBD (paýlanan köpeldilen blok enjamyny aňladýar) Linux üçin paýlanan, çeýe we köpugurly köpeldilen saklaýyş çözgüdi. Serwerleriň arasynda gaty diskler, bölekler, logiki göwrümler we ş.m. ýaly blok enjamlarynyň mazmunyny görkezýär. Iki sany ammar enjamyndaky maglumatlaryň göçürmesini öz içine alýar, eger biri şowsuz bolsa, beýlekisindäki maglumatlar ulanylyp bilner.

Serwerlerde aýnalanan diskler bilen tor RAID 1 konfigurasiýasy ýaly birneme pikir edip bilersiňiz. Şeýle-de bolsa, RAID-den we hatda RAID ulgamyndan düýpgöter başgaça işleýär.

Ilkibaşda DRBD esasan ýokary elýeterlilik (HA) kompýuter toparlarynda ulanylýardy, ýöne 9-njy wersiýasyndan başlap, bulut saklaýyş çözgütlerini ýerleşdirmek üçin ulanylyp bilner.

Bu makalada, CentOS-da DRBD-ni nädip gurmalydygyny görkezeris we iki serwerde ammary (bölümi) köpeltmek üçin nädip ulanmalydygyny gysgaça görkezeris. Linux-da DRBD ulanyp başlamak üçin iň oňat makala.

Bu makalanyň maksady üçin, bu gurnama üçin iki düwün toparyny ulanýarys.

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

1-nji ädim: DRBD paketlerini gurmak

DRBD Linux ýadrosy moduly hökmünde amala aşyrylýar. Wirtual blok enjamy üçin takyk sürüjini emele getirýär, şonuň üçin ulgamyň I/O bukjasynyň düýbünde ýerleşýär.

DRBD ELRepo ýa-da EPEL ammarlaryndan gurup bolýar. Geliň, ELRepo paketine gol çekmek açaryny import edip başlalyň we ammarlary iki düwünde görkezilişi ýaly işledeliň.

# 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

Soňra DRBD ýadro modulyny we kömekçi enjamlary iki düwünde işledip gurup bileris:

# yum install -y kmod-drbd84 drbd84-utils

SELinux açyk bolsa, DRBD amallaryny SELinux dolandyryşyndan boşatmak üçin syýasaty üýtgetmeli.

# semanage permissive -a drbd_t

Mundan başga-da, ulgamyňyzda gorag diwary açyk bolsa (firewalld), iki düwüniň arasynda maglumatlary sinhronlamak üçin gorag diwaryna DRBD porty 7789 goşmaly.

Bu buýruklary birinji düwünde işlediň:

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

Soňra bu buýruklary ikinji düwünde işlediň:

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

2-nji ädim: Aşaky derejeli ammar taýýarlamak

Iki klaster düwüninde DRBD gurlandan soň, iki düwünde takmynan birmeňzeş ululykdaky ammar taýýarlamaly. Bu gaty disk bölümi (ýa-da doly fiziki gaty disk), programma üpjünçiligi RAID enjamy, LVM Logical Volume ýa-da ulgamyňyzda tapylan başga bir blok enjamy bolup biler.

Bu makalanyň maksady üçin, dd buýrugyny ulanyp, 2 Gb ululykdaky blok blok enjamyny dörederis.

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

Munuň iki düwün bilen birikdirilen ikinji blok enjamynda (/ dev/sdb) ulanylmaýan bölüm (/ dev/sdb1) bolandygyny kabul ederis.

3-nji ädim: DRBD sazlamak

DRBD-iň esasy konfigurasiýa faýly /etc/drbd.conf ýerleşýär we goşmaça konfigurasiýa faýllaryny /etc/drbd.d katalogyndan tapyp bilersiňiz.

Saklamagy köpeltmek üçin, DRBD konfigurasiýasynyň global we umumy bölümlerini öz içine alýan /etc/drbd.d/global_common.conf faýlyna zerur konfigurasiýalary goşmaly we .res faýllaryndaky çeşmeleri kesgitläp bileris.

Geliň, iki düwünde asyl faýlyň ätiýaçlyk nusgasyny edeliň, soňra redaktirlemek üçin täze faýl açalyň (halaýan tekst redaktoryňyzy ulanyň).

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

Iki faýlda aşakdaky setirleri goşuň:

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

Faýly ýazdyryň we redaktory ýapyň.

Çyzyk protokolyna has az ýagtylyk bereliň C. DRBD üç sany köpeltmek reesimini goldaýar (şeýlelik bilen üç derejeli köpeltmek sinhroniýasy):

  • protokol A: Asynkron köpeltmek protokoly; köplenç uzak aralyk köpeltmek ssenarilerinde ulanylýar.
  • protokol B: -arym sinhron köpeltmek protokoly aka oryadyň sinhron protokoly.
  • protokol C: gysga aralyk torlardaky düwünler üçin köplenç ulanylýar; DRBD sazlamalarynda iň köp ulanylýan köpeltmek protokoly.

Üns beriň: Köpeltmek protokolyny saýlamak, ýerleşdirmegiň iki faktoryna täsir edýär: gorag we gijä galmak. Geçiriş, tersine, saýlanan köpeltmek protokolyna esasan garaşsyz.

4-nji ädim: Resurs goşmak

Çeşme, belli bir köpeldilen maglumatlar toplumynyň ähli taraplaryny aňladýan köpçülikleýin termin. Çeşmämizi /etc/drbd.d/test.res atly faýlda kesgitläris.

Iki düwünde-de faýla aşakdaky mazmuny goşuň (mazmundaky üýtgeýänleri daşky gurşawyňyz üçin hakyky bahalar bilen çalyşmagy ýatdan çykarmaň).

Baş atlara üns beriň, uname -n buýrugyny işletmek arkaly alyp boljak tor host adyny görkezmeli.

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

nirede:

  • host adynda: ýapyk konfigurasiýa jümlelerini ýerleşdirýän bölümde görkezilýär.
  • synag: täze çeşmäniň ady.
  • enjam/dev/drbd0: DRBD tarapyndan dolandyrylýan täze wirtual blok enjamyny kesgitleýär.
  • disk/dev/sdb1: DRBD enjamy üçin goldaw enjamy bolan blok enjam bölümi.
  • meta-disk: DRBD-iň meta-maglumatyny nirede saklaýandygyny kesgitleýär. Içerki ulanmak, DRBD-iň meta maglumatlaryny hakyky önümçilik maglumatlary bilen fiziki pes derejeli enjamda saklaýandygyny aňladýar.
  • salgy: degişli düwüniň IP adresini we port belgisini görkezýär.

Şeýle hem, opsiýalaryň ikisinde-de deň bahalar bar bolsa, olary göni çeşme bölüminde görkezip bilersiňiz.

Mysal üçin ýokardaky konfigurasiýany üýtgedip bolar:

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

5-nji ädim: Resursy işe girizmek we işletmek

DRBD bilen täsirleşmek üçin, DRBD çeşmelerini sazlamak we dolandyrmak üçin ýadro moduly bilen aragatnaşyk saklaýan aşakdaky dolandyryş gurallaryny ulanarys:

  • drbdadm: DRBD-iň ýokary derejeli dolandyryş guraly.
  • drbdsetup: DRBD enjamlaryny arka blok enjamlary bilen birikdirmek, arka blok enjamlaryny aýna etmek üçin DRBD enjam jübütlerini gurmak we işleýän DRBD enjamlarynyň konfigurasiýasyny barlamak üçin aşaky derejeli dolandyryş guraly.
  • Drbdmeta: meta maglumatlary dolandyryş guralydyr.

Resourcehli başlangyç çeşme konfigurasiýalaryny goşanymyzdan soň, çeşmäni iki düwünde getirmeli.

# drbdadm create-md test

Ondan soň, çeşmäni goldaýan enjamy bilen birikdirjek, soň bolsa köpeltmek parametrlerini kesgitleýän we çeşmesini deň-duşlary bilen baglanyşdyrýan çeşmäni işjeňleşdirmeli:

# drbdadm up test

Indi lsblk buýrugyny işledseňiz, DRBD enjamynyň/ses drbd0 goldaw enjamy/dev/sdb1 bilen baglanyşyklydygyny görersiňiz:

# lsblk

Çeşmäni öçürmek üçin işlediň:

# drbdadm down test

Çeşmäniň ýagdaýyny barlamak üçin aşakdaky buýrugy işlediň (şu wagt gabat gelmeýän/gabat gelmeýän disk ýagdaýyna garaşylýar):

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

6-njy ädim: Başlangyç enjamy sinhronlamagyň başlangyç çeşmesini/çeşmesini düzüň

Bu etapda DRBD indi işe taýyn. Indi enjamyň başlangyç sinhronlamasynyň çeşmesi hökmünde haýsy düwüniň ulanylmalydygyny aýtmalydyrys.

Ilkinji doly sinhronlamany başlamak üçin aşakdaky buýrugy diňe bir düwünde işlediň:

# drbdadm primary --force test
# drbdadm status test

Sinhronizasiýa tamamlanandan soň, iki diskiň ýagdaýy UpToDate bolmaly.

7-nji ädim: DRBD gurnamasyny barlamak

Netijede, DRBD enjamynyň köpeldilen maglumatlary saklamak üçin gowy işlejekdigini barlamaly. Diskatdan çykarmaň, boş disk göwrümini ulandyk, şonuň üçin enjamda faýl ulgamyny döretmeli we köpeldilen maglumatlary saklamak üçin ulanyp biljekdigimizi barlamak üçin ony gurnamaly.

Aşakdaky buýruk bilen enjamda faýl ulgamyny döredip bileris, başlangyç doly sinhronlamany başlan düwünimizde (esasy roly bolan çeşmä eýe):

# mkfs -t ext4 /dev/drbd0 

Soňra görkezilişi ýaly guruň (gurnama nokadyna degişli at berip bilersiňiz):

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

Indi ýokardaky gurnama nokadynda käbir faýllary göçüriň ýa-da dörediň we ls buýrugyny ulanyp uzyn sanaw ýazyň:

# cd /mnt/DRDB_PRI/
# ls -l 

Ondan soň enjamy aýyryň (gurnamagyň açyk däldigine göz ýetiriň, ýalňyşlyklaryň öňüni almak üçin aýyranyňyzdan soň katalogy üýtgediň) we düwüniň roluny başlangyçdan ikinji derejä üýtgediň:

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

Beýleki düwünde (ikinji derejeli roly bar) ony esasy edip düzüň, soňra enjamy onuň üstüne dakyň we gurnama nokadynyň uzyn sanawyny ýerine ýetiriň. Eger gurnama gowy işleýän bolsa, sesde saklanýan ähli faýllar şol ýerde bolmaly:

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

Has giňişleýin maglumat üçin ulanyjy giňişligini dolandyryş gurallarynyň adam sahypalaryna serediň:

# man drbdadm
# man drbdsetup
# man drbdmeta

Salgylanma: DRBD ulanyjy gollanmasy.

DRBD diýseň çeýe we köptaraply, bu ony islendik programma HA-ny goşmak üçin amatly köpeltmek çözgüdi edýär. Bu makalada, CentOS 7-de DRBD-ni nädip gurmalydygyny görkezdik we ammary köpeltmek üçin nädip ulanmalydygyny gysgaça görkezdik. Aşakdaky seslenme formasy arkaly pikirleriňizi biziň bilen paýlaşyp bilersiňiz.