Prevod članka pripremljen je uoči početka kursa .
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 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.rpmNato 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 --reloadNato 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 --reloadKorak 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, 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=1024Predpostavimo, 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 
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 , boste opazili, da je naprava/tov DRBD drbd0 povezana z rezervno napravo. /dev/sdb1:
# lsblk 
Seznam blokovnih naprav
Da izključite vir, zaženite:
# drbdadm down testDa 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 
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 
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 
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 :
# cd /mnt/DRDB_PRI/
# ls -l 
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 testDrugo 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 
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Справка: .
Резюме
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.
Izvor: habr.com
