Nastavitev DRBD za replikacijo shranjevanja na dveh strežnikih CentOS 7

Prevod članka je bil pripravljen na predvečer začetka tečaja "Linux Administrator. Virtualizacija in grozdenje".

DRBD (Distributed Replicated Block Device) je porazdeljena, prilagodljiva in univerzalno replicirana rešitev za shranjevanje za Linux. Odraža vsebino blokovnih naprav, kot so trdi diski, particije, logični nosilci itd. med strežniki. Ustvari kopije podatkov na dveh napravah za shranjevanje, tako da se lahko v primeru okvare ene uporabijo podatki na drugi.

Lahko bi rekli, da je nekaj takega konfiguracijo omrežja RAID 1 z diski, preslikanimi na različne strežnike. Deluje pa povsem drugače kot RAID (celo omrežni RAID).

Sprva se je DRBD uporabljal predvsem v računalniških gručih z visoko razpoložljivostjo (HA), od različice XNUMX dalje pa se lahko uporablja za uvajanje rešitev za shranjevanje v oblaku.

V tem članku bomo razložili, kako namestiti DRBD na CentOS in na kratko prikazali, kako ga uporabiti za podvajanje pomnilnika (particije) na dveh strežnikih. To je popoln članek za začetek uporabe DRBD v Linuxu.

Testno okolje

Za to nastavitev bomo uporabili gručo z dvema vozliščema.

  • Vozlišče 1: 192.168.56.101 – tecmint.tecmint.lan
  • Vozlišče 2: 192.168.56.102 – server1.tecmint.lan

1. korak: Namestite pakete DRBD

DRBD je implementiran kot modul jedra Linuxa. Je gonilnik za navidezno blokovno napravo, zato se nahaja čisto na dnu sistemskega V/I sklada.

DRBD je mogoče namestiti iz ERLepo ali EPEL. Začnimo z uvozom ključa za podpisovanje paketa ERLepo in povezovanjem repozitorija na obeh vozliščih, kot je prikazano spodaj.

# 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

Nato morate namestiti modul jedra DRBD in pripomočke na obe vozlišči z uporabo:

# yum install -y kmod-drbd84 drbd84-utils

Če imate omogočen SELinux, morate konfigurirati pravilnike za izvzetje procesov DRBD iz nadzora SELinux.

# semanage permissive -a drbd_t

Poleg tega, če vaš sistem izvaja požarni zid (firewalld), boste morali dodati vrata DRBD 7789, da omogočite sinhronizacijo podatkov med obema vozliščema.

Zaženite te ukaze za prvo vozlišče:

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

Nato zaženite te ukaze za drugo vozlišče:

# 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. korak: Pripravite pomnilnik nizke ravni

Zdaj, ko imamo DRBD nameščen na obeh vozliščih gruče, moramo na njiju zagotoviti območja za shranjevanje približno enake velikosti. To je lahko particija trdega diska (ali celoten fizični trdi disk), programska naprava RAID, Logični nosilec LVM ali katero koli drugo vrsto blokovne naprave, ki jo najdete v vašem sistemu.

Za ta članek bomo z ukazom dd ustvarili testno blokovno napravo velikosti 2 GB.

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

Predpostavimo, da je to neuporabljena particija (/dev/sdb1) na drugi blokovni napravi (/dev/sdb), ki je povezana z obema vozliščema.

3. korak. Konfiguracija DRBD

Glavna konfiguracijska datoteka DRBD − /etc/drbd.conf, dodatne konfiguracijske datoteke pa lahko najdete v imeniku /etc/drbd.d.

Za ponovitev pomnilnika moramo v datoteko dodati potrebne konfiguracije /etc/drbd.d/global_common.conf, ki vsebuje globalne in splošne odseke konfiguracije DRBD, v katerem moramo definirati vire .res datoteke.

Naredimo varnostno kopijo izvirne datoteke na obeh vozliščih in nato odprimo novo datoteko za urejanje (uporabite urejevalnik besedil po vaši izbiri).

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

V obe datoteki dodajte naslednje vrstice:

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

Shranite datoteko in zaprite urejevalnik.

Za trenutek poglejmo vrstico protokola C. DRBD podpira tri različne načine podvajanja (to je tri stopnje sinhronizacije podvajanja), in sicer:

  • protokol A: protokol za asinhrono podvajanje; se najpogosteje uporablja v scenarijih podvajanja na dolge razdalje.
  • protokol B: Polsinhroni protokol podvajanja ali protokol sinhronega pomnilnika.
  • protokol C: običajno se uporablja za vozlišča v omrežjih s kratkimi razdaljami; to je daleč najpogosteje uporabljen protokol podvajanja v nastavitvah DRBD.

Pomembno je,: Izbira protokola podvajanja vpliva na dva dejavnika uvajanja: varnost in zakasnitev. Nasprotno pa prepustnost ni bistveno odvisna od izbranega protokola podvajanja.

4. korak: dodajte vir

Vir je krovni izraz, ki se nanaša na vse vidike določenega podvojenega nabora podatkov. Naš vir bomo definirali v datoteki /etc/drbd.d/test.res.

Dodajte naslednje v datoteko na obeh vozliščih (ne pozabite zamenjati spremenljivk z dejanskimi vrednostmi za vaše okolje).

Bodite pozorni na imena gostiteljev, določiti moramo omrežno ime gostitelja, ki ga lahko pridobite z ukazom 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;
        }
}
}

kjer je:

  • na ime gostitelja: razdelek on, za katerega velja ugnezdeni konfiguracijski stavek.
  • Test: To je ime novega vira.
  • naprava /dev/drbd0: Označuje novo virtualno blokovno napravo, ki jo upravlja DRBD.
  • disk /dev/sdb1: To je particija blokovne naprave, ki je rezervna naprava za napravo DRBD.
  • meta-disk: Določa, kje DRBD shranjuje svoje metapodatke. Notranje pomeni, da DRBD shranjuje svoje metapodatke na isti fizični napravi nizke ravni kot dejanski podatki v proizvodnji.
  • Naslov: Označuje naslov IP in številko vrat ustreznega vozlišča.

Upoštevajte tudi, da če imajo parametri enake vrednosti na obeh gostiteljih, jih lahko določite neposredno v razdelku virov.

Na primer, zgornjo konfiguracijo bi lahko prestrukturirali v:

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

Korak 5. Inicializirajte in zaženite vir

Za interakcijo z DRBD bomo uporabili naslednja skrbniška orodja (ki sodelujejo z modulom jedra za konfiguracijo in skrbništvo virov DRBD):

  • drbdadm: skrbniško orodje DRBD na visoki ravni.
  • drbdsetup: Skrbniško orodje nižje ravni za povezovanje naprav DRBD z njihovimi rezervnimi napravami, konfiguriranje parov naprav DRBD, da odražajo njihove rezervne naprave, in za preverjanje konfiguracije delujočih naprav DRBD.
  • Drbdmeta: Orodje za upravljanje metapodatkov.

Ko dodamo vse začetne konfiguracije virov, moramo poklicati vir na obeh vozliščih.

# drbdadm create-md test

Nastavitev DRBD za replikacijo shranjevanja na dveh strežnikih CentOS 7
Inicializacija shrambe metapodatkov

Nato ga moramo zagnati, kar bo povezalo vir z njegovo rezervno napravo, nato pa nastavilo parametre podvajanja in povezalo vir z enakovrednim:

# drbdadm up test

Zdaj, če zaženete ukaz Lsblk, boste opazili, da je naprava DRBD/nosilec drbd0 povezana z napravo za varnostno kopiranje /dev/sdb1:

# lsblk

Nastavitev DRBD za replikacijo shranjevanja na dveh strežnikih CentOS 7
Seznam blokovnih naprav

Če želite onemogočiti vir, zaženite:

# drbdadm down test

Če želite preveriti stanje vira, zaženite naslednji ukaz (upoštevajte, da se na tej točki pričakuje stanje diskov Nedosledno/Nedosledno):

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

Nastavitev DRBD za replikacijo shranjevanja na dveh strežnikih CentOS 7
Preverjanje statusa vira na
zlo

6. korak: Nastavite primarni vir/vir sinhronizacije začetne naprave

Na tej stopnji je DRBD pripravljen za uporabo. Zdaj moramo določiti, katero vozlišče naj bo uporabljeno kot vir začetne sinhronizacije naprave.

Zaženite naslednji ukaz na samo enem vozlišču, da začnete začetno popolno sinhronizacijo:

# drbdadm primary --force test
# drbdadm status test

Nastavitev DRBD za replikacijo shranjevanja na dveh strežnikih CentOS 7
Nastavitev primarnega vozlišča kot začetne naprave
Ko je sinhronizacija končana, mora biti stanje obeh pogonov UpToDate.

7. korak: Preskušanje nastavitve DRBD

Končno moramo preveriti, ali bo naprava DRBD delovala, kot je potrebno za shranjevanje podvojenih podatkov. Ne pozabite, da smo uporabili prazen nosilec diska, zato moramo ustvariti datotečni sistem v napravi in ​​ga namestiti, da preverimo, ali ga lahko uporabimo za shranjevanje podvojenih podatkov.

V napravi moramo ustvariti datotečni sistem z naslednjim ukazom na vozlišču, kjer smo zagnali začetno popolno sinhronizacijo (ki ima vir s primarno vlogo):

# mkfs -t ext4 /dev/drbd0

Nastavitev DRBD za replikacijo shranjevanja na dveh strežnikih CentOS 7
Ustvarjanje datotečnega sistema na nosilcu Drbd

Nato ga namestite, kot je prikazano (točki namestitve lahko daste ustrezno ime):

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

Zdaj kopirajte ali ustvarite nekaj datotek v zgornji točki priklopa in naredite dolg seznam z njimi ls ukazi:

# cd /mnt/DRDB_PRI/
# ls -l 

Nastavitev DRBD za replikacijo shranjevanja na dveh strežnikih CentOS 7
Navedite vsebino glavnega nosilca Drbd

Nato odklopite napravo (prepričajte se, da napenjanje ni odprto, po odklopu spremenite imenik, da se izognete napakam) in spremenite vlogo vozlišča iz primarne v sekundarno:

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

Drugo vozlišče (ki ima vir s sekundarno vlogo) naredite kot primarno, nato nanj priključite napravo in izdajte dolg seznam točk priklopa. Če nastavitev deluje dobro, bi morale biti tam vse datoteke, shranjene na nosilcu:

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

Nastavitev DRBD za replikacijo shranjevanja na dveh strežnikih CentOS 7
Preverjanje nastavitve DRBD, ki se izvaja na sekundarnem vozlišču.

Za več informacij si oglejte strani s pomočjo za skrbniška orodja:

# man drbdadm
# man drbdsetup
# man drbdmeta

Pomoč: Uporabniški priročnik DRBD.

Povzetek

DRBD je izjemno prilagodljiv in vsestranski, zaradi česar je rešitev za replikacijo shranjevanja, ki je primerna za dodajanje HA skoraj vsaki aplikaciji. V tem članku smo pokazali, kako namestiti DRBD na CentOS 7 in na kratko pokazali, kako ga uporabiti za replikacijo pomnilnika. Svoje misli lahko delite z nami prek spodnjega obrazca za povratne informacije.

Izvedite več o tečaju.

Vir: www.habr.com

Dodaj komentar