Kā iestatīt DRBD, lai dublētu krātuvi divos CentOS 7 serveros


DRBD (apzīmē Distributed Replicated Block Device) ir izplatīts, elastīgs un daudzpusīgs kopēts Linux atmiņas risinājums. Tas atspoguļo tādu bloku ierīču saturu kā cietie diski, nodalījumi, loģiskie sējumi utt. Starp serveriem. Tas ietver datu kopiju divās atmiņas ierīcēs, piemēram, ja viena neizdodas, var izmantot datus no otras.

Jūs varat domāt par to nedaudz kā tīkla RAID 1 konfigurāciju ar diskiem, kas atspoguļoti serveros. Tomēr tas darbojas ļoti atšķirīgi no RAID un pat tīkla RAID.

Sākotnēji DRBD galvenokārt izmantoja augstas pieejamības (HA) datoru kopās, tomēr, sākot ar 9. versiju, to var izmantot mākoņkrātuves risinājumu izvietošanai.

Šajā rakstā mēs parādīsim, kā DRBD instalēt CentOS, un īsi parādīsim, kā to izmantot, lai divos serveros atkārtotu krātuvi (nodalījumu). Šis ir ideāls raksts, lai sāktu darbu ar DRBD lietošanu Linux.

Šajā rakstā šim iestatījumam mēs izmantojam divus mezglu kopas.

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

1. darbība: DRBD pakotņu instalēšana

DRBD ir ieviests kā Linux kodola modulis. Tas precīzi veido draiveri virtuālai bloķēšanas ierīcei, tāpēc tas ir izveidots tieši sistēmas I/O kaudzes apakšā.

DRBD var instalēt no ELRepo vai EPEL krātuvēm. Sāksim ar ELRepo pakotnes parakstīšanas atslēgas importēšanu un iespējojiet repozitoriju, kā parādīts abos mezglos.

# 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

Tad mēs varam instalēt DRBD kodola moduli un utilītus abos mezglos, palaižot:

# yum install -y kmod-drbd84 drbd84-utils

Ja esat iespējojis SELinux, jums ir jāmaina politikas, lai DRBD procesus atbrīvotu no SELinux vadības.

# semanage permissive -a drbd_t

Turklāt, ja jūsu sistēmā ir iespējots ugunsmūris (firewalld), ugunsmūrī jāpievieno DRBD ports 7789, lai ļautu sinhronizēt datus starp abiem mezgliem.

Palaidiet šīs komandas pirmajā mezglā:

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

Pēc tam izpildiet šīs komandas otrajā mezglā:

# 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. darbība. Apakšējā līmeņa krātuves sagatavošana

Tagad, kad DRBD ir instalēts abos klastera mezglos, mums abos mezglos jāsagatavo aptuveni identiska izmēra krātuves zona. Tas var būt cietā diska nodalījums (vai pilns fiziskais cietais disks), programmatūras RAID ierīce, LVM loģiskais sējums vai jebkurš cits jūsu sistēmā atrasts bloķēšanas ierīces tips.

Šī raksta vajadzībām mēs izveidosim fiktīvu bloku 2GB lieluma ierīci, izmantojot komandu dd.

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

Mēs pieņemsim, ka tas ir neizmantots nodalījums (/ dev/sdb1) otrajā bloka ierīcē (/ dev/sdb), kas pievienots abiem mezgliem.

3. solis: DRBD konfigurēšana

DRBD galvenais konfigurācijas fails atrodas vietnē /etc/drbd.conf, un papildu konfigurācijas failus var atrast direktorijā /etc/drbd.d.

Lai atdarinātu krātuvi, mums /etc/drbd.d/global_common.conf failā ir jāpievieno nepieciešamās konfigurācijas, kas satur DRBD konfigurācijas globālās un kopējās sadaļas, un mēs varam definēt resursus .res failos.

Veiksim sākotnējā faila dublējumu abos mezglos, pēc tam atveriet jaunu failu rediģēšanai (izmantojiet sev tīkamu teksta redaktoru).

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

Abos failos pievienojiet šādas rindas:

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

Saglabājiet failu un pēc tam aizveriet redaktoru.

Īsi aizēnosim vairāk gaismas līnijas protokolā C. DRBD atbalsta trīs atšķirīgus replikācijas režīmus (tātad trīs replikācijas sinhronitātes pakāpes), kas ir:

  • protokols A: asinhronās replikācijas protokols; to visbiežāk izmanto tālsatiksmes replikācijas scenārijos.
  • B protokols: Daļēji sinhronas replikācijas protokols jeb Sinhronais atmiņas protokols.
  • C protokols: parasti tiek izmantots mezgliem īsos attālinātos tīklos; tas neapšaubāmi ir visbiežāk izmantotais replikācijas protokols DRBD iestatījumos.

Svarīgi: replikācijas protokola izvēle ietekmē divus izvietošanas faktorus: aizsardzību un latentumu. Un caurlaidspēja turpretī lielā mērā nav atkarīga no izvēlētā replikācijas protokola.

4. darbība: resursa pievienošana

Resurss ir kolektīvais termins, kas attiecas uz visiem konkrētās kopētās datu kopas aspektiem. Mēs definēsim savu resursu failā ar nosaukumu /etc/drbd.d/test.res.

Pievienojiet failam šādu mezglu abos mezglos (neaizmirstiet aizstāt satura mainīgos ar faktiskajām jūsu vides vērtībām).

Ievērojiet resursdatora nosaukumus, mums jānorāda tīkla resursdatora nosaukums, kuru var iegūt, palaižot komandu 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;
        }
}
}

kur:

  • uz resursdatora nosaukuma: sadaļā on norādīts, uz kuriem mitinās pievienotie konfigurācijas priekšraksti.
  • tests: ir jaunā resursa nosaukums.
  • device/dev/drbd0: norāda jauno virtuālā bloķēšanas ierīci, kuru pārvalda DRBD.
  • disks/dev/sdb1: ir bloķētās ierīces nodalījums, kas ir DRBD ierīces atbalsta ierīce.
  • metadisks: nosaka, kur DRBD glabā savus metadatus. Iekšējā izmantošana nozīmē, ka DRBD glabā savus metadatus tajā pašā fiziskajā zemāka līmeņa ierīcē kā faktiskie ražošanas dati.
  • adrese: norāda attiecīgā mezgla IP adresi un porta numuru.

Ņemiet vērā arī to, ka, ja opcijām ir vienādas vērtības abos resursdatoros, varat tās norādīt tieši resursu sadaļā.

Piemēram, iepriekšminēto konfigurāciju var pārstrukturēt šādi:

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. darbība: Resursa inicializēšana un iespējošana

Lai mijiedarbotos ar DRBD, mēs izmantosim šādus administrēšanas rīkus, kas sazinās ar kodola moduli, lai konfigurētu un administrētu DRBD resursus:

  • drbdadm: DRBD augsta līmeņa administrēšanas rīks.
  • drbdsetup: zemāka līmeņa administrēšanas rīks, lai piestiprinātu DRBD ierīces ar to atbalsta bloku ierīcēm, lai iestatītu DRBD ierīču pārus, lai atspoguļotu viņu atbalsta bloku ierīces, un pārbaudītu darbojošos DRBD ierīču konfigurāciju.
  • Drbdmeta: ir metadatu pārvaldības rīks.

Pēc visu sākotnējo resursu konfigurāciju pievienošanas mums ir jāizveido resurss abos mezglos.

# drbdadm create-md test

Pēc tam mums jāiespējo resurss, kas resursu piesaistīs ar tā atbalsta ierīci, pēc tam tas nosaka replikācijas parametrus un savieno resursu ar savu vienaudžu:

# drbdadm up test

Tagad, palaižot komandu lsblk, pamanīsit, ka DRBD ierīce/sējums drbd0 ir saistīta ar atbalsta ierīci/dev/sdb1:

# lsblk

Lai atspējotu resursu, palaidiet:

# drbdadm down test

Lai pārbaudītu resursa statusu, palaidiet šādu komandu (ņemiet vērā, ka šajā brīdī ir gaidāms nekonsekventa/nekonsekventa diska stāvoklis):

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

6. darbība: iestatiet ierīces sākotnējās sinhronizācijas primāro resursu/avotu

Šajā posmā DRBD tagad ir gatavs darbam. Tagad mums jāpasaka, kurš mezgls jāizmanto kā sākotnējās ierīces sinhronizācijas avots.

Palaidiet šo komandu tikai vienā mezglā, lai sāktu pilnu sākotnējo sinhronizāciju:

# drbdadm primary --force test
# drbdadm status test

Kad sinhronizācija ir pabeigta, abu disku statusam jābūt UpToDate.

7. darbība: DRBD iestatīšanas pārbaude

Visbeidzot, mums jāpārbauda, vai DRBD ierīce labi darbosies atkārtotu datu glabāšanā. Atcerieties, ka mēs izmantojām tukšu diska sējumu, tādēļ mums ierīcē jāizveido failu sistēma un jāpiestiprina tā, lai pārbaudītu, vai mēs to varam izmantot atkārtotu datu glabāšanai.

Mēs varam izveidot failu sistēmu ierīcē ar šādu komandu mezglā, kurā mēs sākām sākotnējo pilno sinhronizāciju (kam ir resurss ar galveno lomu):

# mkfs -t ext4 /dev/drbd0 

Pēc tam piestipriniet to, kā parādīts attēlā (pievienošanas punktam varat piešķirt atbilstošu nosaukumu):

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

Tagad kopējiet vai izveidojiet dažus failus iepriekš minētajā pievienošanas punktā un veiciet garu sarakstu, izmantojot komandu ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Pēc tam atvienojiet ierīci (pārliecinieties, vai stiprinājums nav atvērts, pēc atvienošanas mainiet direktoriju, lai novērstu kļūdas) un nomainiet mezgla lomu no primārā uz sekundāro:

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

Otrajā mezglā (kura resursam ir sekundāra loma) padariet to par primāro, pēc tam uz tā piestipriniet ierīci un veiciet ilgu pievienošanas punkta uzskaitījumu. Ja iestatīšana darbojas labi, visiem sējumā saglabātajiem failiem jābūt:

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

Lai iegūtu papildinformāciju, skatiet lietotāja telpas administrēšanas rīku rokasgrāmatas:

# man drbdadm
# man drbdsetup
# man drbdmeta

Atsauce: DRBD lietotāja rokasgrāmata.

DRBD ir ārkārtīgi elastīgs un universāls, kas padara to par krātuves replikācijas risinājumu, kas piemērots HA pievienošanai gandrīz jebkurai lietojumprogrammai. Šajā rakstā mēs parādījām, kā DRBD instalēt CentOS 7, un īsi parādījām, kā to izmantot, lai atkārtotu krātuvi. Nekautrējieties dalīties savās domās, izmantojot zemāk esošo atsauksmju veidlapu.