Nastavljamo DRBD za replikacijo shrambe na dveh strežnikih CentOS 7.

Prevod članka pripremljen je uoči početka kursa «Linux Administrator. Virtualization and Clustering».

DRBD (Distributed Replicated Block Device — distribuirano replikativno blokovno napravo) je distribuirana, fleksibilna in univerzalna rešitev za shranjevanje podatkov za Linux. Odraža vsebino blokovnih naprav, kot so trdi diski, particije, logični volumni itd. med strežniki. Ustvari kopije podatkov na dveh shrambnih napravah, da se lahko v primeru okvare ene od njih uporabljajo podatki na drugi.

Lahko rečemo, da gre za nekaj podobnega omrežni konfiguraciji RAID 1 z diski, odraženimi na različne strežnike. Vendar ne deluje povsem tako kot RAID (tudi omrežni).

Sprva je bil DRBD predvsem uporabljen v računalniških grozdi visoke razpoložljivosti (HA — high availability), vendar pa se od devete verzije dalje lahko uporablja za uvajanje rešitev oblačnega shranjevanja.

V tem članku bomo opisali, kako namestiti DRBD v CentOS, in na kratko prikazali, kako ga uporabiti za replikacijo shranjevanja (particije) na dveh strežnikih. To je idealen članek za začetek dela z DRBD v Linuxu.

Testno okolje

Za to nastavitev bomo uporabili grozd dveh vozlišč.

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

Korak 1: Namestitev paketov DRBD

DRBD je implementiran kot jedrni modul Linuxa. Predstavlja gonilnik za virtualno blokovno napravo, zato se nahaja na samem dnu I/O sklada sistema.

DRBD je mogoče namestiti iz ELRepo ali EPEL. Začnimo z uvozom podpisa paketa ELRepo 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 je potrebno na obeh vozliščih namestiti DRBD jedrni modul in pripomočke z uporabo:

# yum install -y kmod-drbd84 drbd84-utils

Če imate vklopljen SELinux, morate nastaviti politike, da osvobodite procese DRBD nadzora SELinux.

# semanage permissive -a drbd_t

Poleg tega, če v vašem sistemu deluje požarni zid (firewalld), morate dodati DRBD vrata 7789, da omogočite sinhronizacijo podatkov med obema vozlišči.

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

# 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 drugo vozlišče zaženite te ukaze:

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

Korak 2. Priprava nizkonivojskega shranjevanja

Zdaj, ko imamo DRBD nameščen na obeh vozliščih grozda, moramo pripraviti shranjevanja približno enake velikosti. To je lahko particija trdnega diska (ali celoten fizični trdi disk), programska RAID naprava, logična LVM enota ali katerikoli drug tip blokovne naprave, ki je v vašem sistemu.

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

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

Predpostavimo, da je to neuporabljena particija (/dev/sdb1) na drugem blokovnem napravi (/dev/sdb), povezani z obema vozliščema.

Korak 3. Konfiguracija DRBD

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

Za replikacijo shranjevanja moramo dodati potrebne konfiguracije v datoteko /etc/drbd.d/global_common.conf, ki vsebuje globalne in skupne odseke konfiguracije DRBD, medtem ko moramo določiti vire v .res datotekah.

Naredimo varnostno kopijo izvorne datoteke na obeh vozliščih, nato pa odprite novo datoteko za urejanje (uporabite svoj najljubši urejevalnik besedil).

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

Dodajte obema datotekama naslednje vrstice:

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

Shrani datoteko in zapri urejevalnik.

Ustavimo se za trenutek pri vrstici protocol C. DRBD podpira tri različne načine replikacije (tj. tri ravni sinhronizacije replikacije), in sicer:

  • protocol A: protokol asimetrične replikacije; najpogosteje se uporablja v scenarijih replikacije na daljših razdaljah.
  • protocol B: protokol polusimetrične replikacije ali protokol sinhronizirane pomnilnika.
  • protocol C: običajno se uporablja za vozlišča v omrežju z majhnimi razdaljami; to je brez dvoma najpogosteje uporabljeni protokol replikacije v nastavitvah DRBD.

Pomembno: izbira protokola replikacije vpliva na dva dejavnika uvedbe: zaščito in zakasnitev. Prepustnost pa v nasprotju s tem ni močno odvisna od izbranega protokola replikacije.

Korak 4. Dodajanje vira

Vir (Resource) je zbirni izraz, ki se nanaša na vse vidike določenega replikiranega 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).

Upoštevajte imena gostiteljev, morali bomo navesti 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;
        }
}
}

kde:

  • na ime gostitelja: oddelek on, ki se nanaša na vgrajeni konfiguracijski operator.
  • test: to je ime novega vira.
  • device /dev/drbd0: določa novo virtualno blok napravo, ki jo upravlja DRBD.
  • disk /dev/sdb1: to je del blok naprave, ki deluje kot rezervna naprava za DRBD napravo.
  • meta-disk: določa, kje DRBD hrani svoje metapodatke. Internal pomeni, da DRBD hrani svoje metapodatke na isti fizični nizkonivojski napravi kot dejanske podatke v proizvodnji.
  • naslov: določa IP naslov in številko vrat ustreznega vozlišča.

Prav tako upoštevajte, da če sta na obeh gostiteljih parametra enaka, ju lahko navedete neposredno v oddelku virov.

Na primer, zgoraj navedena konfiguracija se lahko prestrukturira 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. Inicializacija in zagon vira

Za interakcijo z DRBD bomo uporabili naslednja orodja za upravljanje (ki delujejo z jedrskim modulom za nastavitev in upravljanje DRBD virov):

  • drbdadm: visok nivo upravljalskega orodja DRBD.
  • drbdsetup: nizko nivojsko upravljalsko orodje za povezovanje DRBD naprav z njihovimi rezervnimi napravami, nastavitev parov DRBD naprav za odsevanje njihovih rezervnih naprav in preverjanje konfiguracije delujočih DRBD naprav.
  • Drbdmeta: orodje za upravljanje metapodatkov.

Po dodajanju vseh začetnih konfiguracij vira moramo aktivirati vir na obeh vozliščih.

# drbdadm create-md test

Nastavljamo DRBD za replikacijo shrambe na dveh strežnikih CentOS 7.
Inicializacija skladišča metapodatkov

Nato ga moramo zagnati, kar bo povezalo vir z njegovo rezervno napravo, nato pa nastaviti parametre replikacije in povezati vir s svojim parom:

# drbdadm up test

Zdaj, če zažgete ukaz lsblk, boste opazili, da je naprava/tov DRBD drbd0 povezana z rezervno napravo. /dev/sdb1:

# lsblk

Nastavljamo DRBD za replikacijo shrambe na dveh strežnikih CentOS 7.
Seznam blokovnih naprav

Da izključite vir, zaženite:

# drbdadm down test

Da preverite stanje vira, izvedite naslednji ukaz (uporabite pozornost, da se pri tem pričakuje stanje diskov Neposreden/Neposreden):

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

Nastavljamo DRBD za replikacijo shrambe na dveh strežnikih CentOS 7.
Preverjanje stanja vira na u
zlah

Korak 6: Nastavitev glavnega vira/izvora začetne sinhronizacije naprav

V tem trenutku je DRBD že pripravljen za delovanje. Zdaj moramo navesti, kateri vozlišče naj se uporablja kot izvor začetne sinhronizacije naprav.

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

# drbdadm primary --force test
# drbdadm status test

Nastavljamo DRBD za replikacijo shrambe na dveh strežnikih CentOS 7.
Nastavitev glavnega vozlišča kot začetne naprave
Po zaključku sinhronizacije morata biti stanja obeh diskov UpToDate.

Korak 7: Preizkus DRBD nastavitve

Nazadnje moramo preveriti, ali bo DRBD naprava delovala tako, kot je potrebno za shranjevanje replikiranih podatkov. Ne pozabite, da smo uporabljali prazno diskovno enoto, zato moramo na napravi ustvariti datotečni sistem in ga namestiti, da preverimo, ali ga lahko uporabimo za shranjevanje replikiranih podatkov.

Moramo ustvariti datotečni sistem na napravi s pomočjo naslednjega ukaza na vozlišču, s katerega smo začeli začetno popolno sinhronizacijo (na katerem je vir z glavno vlogo):

# mkfs -t ext4 /dev/drbd0

Nastavljamo DRBD za replikacijo shrambe na dveh strežnikih CentOS 7.
Ustvarjamo datotečni sistem na Drbd volumnu

Nato ga namestite, kot je prikazano (lahko imenujete točko montaže po lastni izbiri):

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

Zdaj kopirajte ali ustvarite datoteke na navedeni točki montaže in naredite dolg seznam s pomočjo ukaza ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Nastavljamo DRBD za replikacijo shrambe na dveh strežnikih CentOS 7.
Izpišite seznam vsebine glavnega Drbd volumna

Nato razmontirajte napravo (prepričajte se, da montaža ni odprta, spremenite imenik po razmontiranju, da se izognete napakam) in spremenite vlogo vozlišča iz glavne v sekundarno:

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

Drugo vozlišče (na katerem je vir z sekundarno vlogo) postavite za glavno, nato povežite napravo in izvedite dolg seznam točk montaže. Če je nastavitev uspešna, naj bi bili vsi datoteki shranjeni na volumnu tam:

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

Nastavljamo DRBD za replikacijo shrambe na dveh strežnikih CentOS 7.
Preverjanje DRBD nastavitve, ki deluje na sekundarnem vozlišču.

Za dodatne informacije se obrnite na strani za pomoč administrativnih orodij:

# man drbdadm
# man drbdsetup
# man drbdmeta

Справка: Uporabniški priročnik DRBD.

Резюме

DRBD je izjemno prilagodljiv in vsestranski, kar ga dela idealno rešitev za replikacijo shranjevanja, primerno za dodajanje HA praktično kateremukoli aplikaciji. V tem članku smo prikazali, kako namestiti DRBD na CentOS 7, in na kratko pokazali, kako ga uporabljati za replikacijo shranjevanja. Ne oklevajte in delite svoje misli z nami preko obrazca za povratne informacije spodaj.

Izvedite več o tečaju.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster