Kuidas seadistada DRBD kahele CentOS 7 serverile salvestusruumi kopeerimiseks


DRBD (tähistab hajutatud paljundatud plokiseadet) on Linuxi jaoks hajutatud, paindlik ja mitmekülgne paljundatud salvestuslahendus. See peegeldab selliste plokkseadmete sisu nagu kõvakettad, sektsioonid, loogilised mahud jms serverite vahel. See hõlmab kahes mäluseadmes olevate andmete koopiat, nii et kui üks ebaõnnestub, saab kasutada teise andmeid.

Võite mõelda sellest mõnevõrra nagu võrgu RAID 1 konfiguratsioon, kus kettad peegelduvad serverites. See töötab aga hoopis teistmoodi kui RAID ja isegi võrgu RAID.

Algselt kasutati DRBD-d peamiselt kõrge kättesaadavusega (HA) arvutiklastrites, kuid alates versioonist 9 saab seda kasutada pilvemälu lahenduste juurutamiseks.

Selles artiklis me näitame, kuidas DRBD CentOS-i installida, ja demonstreerime lühidalt, kuidas seda kahes serveris mäluruumi (sektsiooni) kopeerimiseks kasutada. See on ideaalne artikkel, et alustada Linuxis DRBD kasutamist.

Selle artikli eesmärgil kasutame selle seadistuse jaoks kahte sõlmede klastrit.

  • sõlm1: 192.168.56.101 - tecmint.tecmint.lan
  • sõlm2: 192.168.56.102 - server1.tecmint.lan

1. samm: installige DRBD-paketid

DRBD on rakendatud Linuxi kernelmoodulina. See moodustab täpselt virtuaalse blokeerimisseadme draiveri, seega on see loodud süsteemi sisend-/väljundkogumi põhja lähedal.

DRBD-d saab installida ELRepo või EPEL hoidlatest. Alustame ELRepo paketi allkirjastamisvõtme importimisega ja lubage hoidla, nagu on näidatud mõlemas sõlmes.

# 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

Seejärel saame installida DRBD kerneli mooduli ja utiliidid mõlemasse sõlme, käivitades:

# yum install -y kmod-drbd84 drbd84-utils

Kui teil on SELinux lubatud, peate poliitikaid muutma, et DRBD-protsessid SELinuksi juhtimisest vabastada.

# semanage permissive -a drbd_t

Lisaks, kui teie süsteemis on lubatud tulemüür (tulemüür), peate tulemüüri lisama DRBD-pordi 7789, et võimaldada andmete kahe sünkroonimise vahel sünkroonimist.

Käivitage need käsud esimeses sõlmes:

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

Seejärel käivitage need käsud teises sõlmes:

# 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. samm: madalama taseme salvestusruumi ettevalmistamine

Nüüd, kui DRBD on kahele klastrisõlmele installitud, peame mõlemas sõlmes ette valmistama umbes ühesuguse suurusega salvestusala. See võib olla kõvaketta sektsioon (või täielik füüsiline kõvaketas), tarkvara RAID-seade, LVM-i loogiline maht või mõni muu teie süsteemist leitud plokiseadme tüüp.

Selle artikli jaoks loome käsuga dd näivblokiseadme suurusega 2 GB.

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

Eeldame, et see on mõlema sõlme külge kinnitatud teise plokiseadme (/ dev/sdb1) kasutamata sektsioon.

3. samm: DRBD seadistamine

DRBD peamine konfiguratsioonifail asub aadressil /etc/drbd.conf ja täiendavad konfiguratsioonifailid leiate kataloogist /etc/drbd.d.

Salvestusruumi kopeerimiseks peame lisama vajalikud konfiguratsioonid faili /etc/drbd.d/global_common.conf, mis sisaldab DRBD konfiguratsiooni globaalseid ja ühiseid jaotisi, ning saame määratleda ressursse .res failides.

Teeme algsest failist varukoopia mõlemas sõlmes, seejärel avage redigeerimiseks uus fail (kasutage oma meeltmööda tekstiredaktorit).

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

Lisage mõlemasse faili järgmised read:

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

Salvestage fail ja sulgege redaktor.

Varjutame lühidalt rohkem valgust liiniprotokollile C. DRBD toetab kolme erinevat replikatsioonirežiimi (seega kolme replikatsiooni sünkroonsuse astet), mis on:

  • protokoll A: asünkroonse replikatsiooni protokoll; seda kasutatakse kõige sagedamini pikamaa replikatsiooni stsenaariumides.
  • protokoll B: poolsünkroonse replikatsiooni protokoll ehk mälu sünkroonprotokoll.
  • protokoll C: kasutatakse tavaliselt lühikese kaugusega võrkude sõlmede jaoks; see on DRBD seadistustes ülekaalukalt kõige sagedamini kasutatav replikatsiooniprotokoll.

Tähtis: replikatsiooniprotokolli valik mõjutab teie juurutamise kahte tegurit: kaitse ja latentsus. Ja läbilaskevõime on seevastu suuresti valitud replikatsiooniprotokollist sõltumatu.

4. samm: ressursi lisamine

Ressurss on koondmõiste, mis viitab konkreetse kopeeritud andmekogumi kõigile aspektidele. Me määratleme oma ressursi failis nimega /etc/drbd.d/test.res.

Lisage faili järgmine sisu mõlemas sõlmes (pidage meeles, et sisu muutujad asendage oma keskkonna tegelike väärtustega).

Pange tähele hostinimed, peame määrama võrgu hostinime, mille saab käsu uname -n käivitamisega.

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

kus:

  • hostinimes: jaotises on märgitud, millised hostivad lisatud konfiguratsioonilaused.
  • test: on uue ressursi nimi.
  • device/dev/drbd0: määrab uue virtuaalse plokiseadme, mida haldab DRBD.
  • disk/dev/sdb1: on plokiseadme sektsioon, mis on DRBD-seadme tugiseade.
  • metaketas: määrab, kuhu DRBD oma metaandmeid salvestab. Sisemise kasutamine tähendab, et DRBD salvestab oma metaandmed samasse füüsilisse madalama taseme seadmesse kui tegelikud tootmisandmed.
  • aadress: määrab vastava sõlme IP-aadressi ja pordi numbri.

Pange tähele ka seda, et kui suvanditel on mõlemal hostil võrdsed väärtused, saate need otse ressursi jaotises määrata.

Näiteks saab ülaltoodud konfiguratsiooni ümber korraldada järgmiselt:

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. samm: ressursi lähtestamine ja lubamine

DRBD-ga suhtlemiseks kasutame DRBD-ressursside konfigureerimiseks ja haldamiseks järgmisi haldustööriistu, mis suhtlevad kerneli mooduliga:

  • drbdadm: DRBD kõrgetasemeline haldustööriist.
  • drbdsetup: madalama taseme haldustööriist DRBD-seadmete kinnitamiseks nende tugiplokkide seadmetega, DRBD-seadmepaaride seadistamiseks nende tugiplokkide seadmete peegeldamiseks ja töötavate DRBD-seadmete konfiguratsiooni kontrollimiseks.
  • Drbdmeta: on metaandmete haldamise tööriist.

Pärast kõigi algsete ressursikonfiguratsioonide lisamist peame ressursi mõlemas sõlmes üles tooma.

# drbdadm create-md test

Järgmisena peaksime lubama ressursi, mis kinnitab ressursi oma tugiseadmega, määrab seejärel replikatsiooniparameetrid ja ühendab ressursi eakaaslasega:

# drbdadm up test

Kui käivitate käsu lsblk, märkate, et DRBD-seade/köide drbd0 on seotud tugiseadmega/dev/sdb1:

# lsblk

Ressursi keelamiseks käivitage:

# drbdadm down test

Ressursi oleku kontrollimiseks käivitage järgmine käsk (pange tähele, et selles punktis on eeldatav ebajärjekindel/ebajärjekindel ketta olek):

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

6. samm: määrake seadme esmase sünkroonimise esmane ressurss/allikas

Selles etapis on DRBD nüüd töövalmis. Nüüd peame talle ütlema, millist sõlme tuleks seadme esmase sünkroonimise allikana kasutada.

Esmase täieliku sünkroonimise alustamiseks käivitage järgmine käsk ainult ühes sõlmes:

# drbdadm primary --force test
# drbdadm status test

Kui sünkroonimine on lõpule jõudnud, peaks mõlema ketta olek olema UpToDate.

7. samm: DRBD seadistamise testimine

Lõpuks peame testima, kas DRBD-seade töötab paljundatud andmete salvestamiseks hästi. Pidage meeles, et kasutasime tühja kettamahtu, seetõttu peame seadmesse looma failisüsteemi ja selle ühendama, et testida, kas saame seda kasutada paljundatud andmete salvestamiseks.

Saame seadmes failisüsteemi luua järgmise käsuga sõlmes, kus alustasime esmast täielikku sünkroonimist (millel on esmase rolliga ressurss):

# mkfs -t ext4 /dev/drbd0 

Seejärel ühendage see nagu näidatud (võite anda ühenduspunktile sobiva nime):

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

Nüüd kopeerige või looge mõned failid ülaltoodud ühenduspunktis ja tehke pikk nimekiri käsuga ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Järgmisena eemaldage seade (veenduge, et kinnitus pole avatud, vigade vältimiseks muutke kataloogi pärast lahtiühendamist) ja muutke sõlme rolli primaarsest sekundaarseks:

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

Teisel sõlmel (millel on ressurss teisejärgulise rolliga) tehke see esmaseks, seejärel ühendage seade sellele ja tehke pika liitumispunkti loend. Kui seadistamine töötab hästi, peaksid kõik köites salvestatud failid seal olema:

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

Lisateavet leiate kasutajaruumi haldustööriistade manulehtedelt:

# man drbdadm
# man drbdsetup
# man drbdmeta

Viide: DRBD kasutusjuhend.

DRBD on äärmiselt paindlik ja mitmekülgne, mistõttu on see salvestusreplikatsiooni lahendus, mis sobib HA lisamiseks peaaegu igale rakendusele. Selles artiklis oleme näidanud, kuidas DRBD CentOS 7-sse installida, ja demonstreerinud lühidalt, kuidas seda mälu kopeerimiseks kasutada. Jagage julgelt oma mõtteid meiega allpool oleva tagasiside vormi kaudu.