Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 servera

Prijevod članka pripremljen je uoči početka kursa "Linux administrator. Virtuelizacija i klasterizacija».

DRBD (Distributed Replicated Block Device) je distribuirano, fleksibilno i univerzalno replicirano rješenje za skladištenje podataka za Linux. Odražava sadržaj blok uređaja kao što su tvrdi diskovi, particije, logički volumeni itd. između servera. Kreira kopije podataka na dva uređaja za pohranu, tako da ako jedan od njih pokvari, mogu se koristiti podaci na drugom.

Moglo bi se reći da je to nešto slično mrežna RAID konfiguracija 1 sa diskovima mapiranim na različite servere. Međutim, radi potpuno drugačije od RAID-a (čak i mrežnog RAID-a).

U početku, DRBD se uglavnom koristio u računarskim klasterima visoke dostupnosti (HA), međutim, počevši od verzije XNUMX, može se koristiti za implementaciju rješenja za pohranu u oblaku.

U ovom članku ćemo objasniti kako instalirati DRBD na CentOS i ukratko pokazati kako ga koristiti za repliciranje skladišta (particije) na dva servera. Ovo je savršen članak za početak rada s DRBD-om na Linuxu.

Testno okruženje

Za ovo podešavanje ćemo koristiti klaster sa dva čvora.

  • Čvor 1: 192.168.56.101 – tecmint.tecmint.lan
  • Čvor 2: 192.168.56.102 – server1.tecmint.lan

Korak 1: Instalirajte DRBD pakete

DRBD je implementiran kao Linux kernel modul. To je drajver za virtuelni blok uređaj, tako da se nalazi na samom dnu I/O steka sistema.

DRBD se može instalirati iz ELRepo ili EPEL. Počnimo sa uvozom ključa za potpisivanje ELRepo paketa i povezivanjem spremišta na oba čvora kao što je prikazano ispod.

# 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

Zatim morate instalirati DRBD kernel modul i uslužne programe na oba čvora koristeći:

# yum install -y kmod-drbd84 drbd84-utils

Ako imate omogućen SELinux, trebate konfigurirati politike da izuzmu DRBD procese iz SELinux kontrole.

# semanage permissive -a drbd_t

Dodatno, ako vaš sistem koristi zaštitni zid (firewalld), moraćete da dodate DRBD port 7789 da biste omogućili sinhronizaciju podataka između dva čvora.

Pokrenite ove naredbe za prvi čvor:

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

Zatim pokrenite ove naredbe za drugi čvor:

# 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: Pripremite skladište niskog nivoa

Sada kada imamo instaliran DRBD na oba čvora klastera, moramo obezbijediti područja skladištenja približno iste veličine na njima. To može biti particija tvrdog diska (ili cijeli fizički čvrsti disk), softverski RAID uređaj, LVM logički volumen ili bilo koju drugu vrstu blok uređaja koji se nalazi na vašem sistemu.

Za ovaj članak ćemo kreirati 2GB test blok uređaj pomoću naredbe dd.

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

Pretpostavimo da je ovo neiskorištena particija (/dev/sdb1) na drugom blok uređaju (/dev/sdb) povezanom na oba čvora.

Korak 3. Konfiguriranje DRBD-a

DRBD glavna konfiguracijska datoteka − /etc/drbd.conf, a dodatne konfiguracijske datoteke se mogu naći u direktoriju /etc/drbd.d.

Da bismo replicirali skladište, moramo dodati potrebne konfiguracije u datoteku /etc/drbd.d/global_common.conf, koji sadrži globalne i opšte sekcije DRBD konfiguracije, a mi moramo da definišemo resurse u .res datoteke.

Napravimo rezervnu kopiju originalne datoteke na oba čvora, a zatim otvorimo novu datoteku za uređivanje (koristite uređivač teksta po vašem izboru).

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

Dodajte sljedeće linije u oba fajla:

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

Sačuvajte datoteku, a zatim zatvorite uređivač.

Pogledajmo na trenutak liniju protokola C. DRBD podržava tri različita načina replikacije (tj. tri stepena sinhronizacije replikacije), naime:

  • protokol A: protokol asinhrone replikacije; najčešće se koristi u scenarijima replikacije na velike udaljenosti.
  • Protocol B: Protokol polusinhrone replikacije ili protokol sinhrone memorije.
  • protokol C: obično se koristi za čvorove u mrežama sa malim udaljenostima; ovo je daleko najčešće korišteni protokol replikacije u DRBD postavkama.

važno: Izbor protokola replikacije utiče na dva faktora implementacije: sigurnost i kašnjenje. Nasuprot tome, propusnost ne ovisi značajno o odabranom protokolu replikacije.

Korak 4: Dodajte resurs

Resurs je krovni pojam koji se odnosi na sve aspekte određenog repliciranog skupa podataka. Naš resurs ćemo definirati u datoteci /etc/drbd.d/test.res.

Dodajte sljedeće u datoteku na oba čvora (ne zaboravite da zamijenite varijable stvarnim vrijednostima za vaše okruženje).

Obratite pažnju na imena hostova, potrebno je navesti mrežno ime hosta, koje se može dobiti pomoću naredbe 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;
        }
}
}

gde:

  • na hostname: On odjeljak na koji se primjenjuje ugniježđena konfiguracijska izjava.
  • test: Ovo je naziv novog resursa.
  • uređaj /dev/drbd0: Označava novi virtuelni blok uređaj kojim upravlja DRBD.
  • disk /dev/sdb1: Ovo je particija blok uređaja koja je rezervni uređaj za DRBD uređaj.
  • meta-disk: Definira gdje DRBD pohranjuje svoje metapodatke. Interno znači da DRBD pohranjuje svoje metapodatke na istom fizičkom uređaju niske razine kao i stvarni podaci u proizvodnji.
  • adresa: Označava IP adresu i broj porta odgovarajućeg čvora.

Također imajte na umu da ako parametri imaju iste vrijednosti na oba hosta, možete ih navesti direktno u odjeljku resursa.

Na primjer, gornja konfiguracija bi se mogla restrukturirati na:

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. Inicijalizirajte i pokrenite resurs

Za interakciju sa DRBD-om koristit ćemo sljedeće administrativne alate (koji komuniciraju s modulom kernela za konfiguriranje i administriranje DRBD resursa):

  • drbdadm: DRBD alat za administraciju visokog nivoa.
  • drbdsetup: Administrativni alat nižeg nivoa za povezivanje DRBD uređaja sa njihovim rezervnim uređajima, konfigurisanje parova DRBD uređaja da odražavaju njihove rezervne uređaje i za provjeru konfiguracije pokrenutih DRBD uređaja.
  • Drbdmeta: Alat za upravljanje metapodacima.

Nakon dodavanja svih početnih konfiguracija resursa, moramo pozvati resurs na oba čvora.

# drbdadm create-md test

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 servera
Inicijalizacija skladišta metapodataka

Zatim ga trebamo pokrenuti, koji će povezati resurs s njegovim backup uređajem, zatim postaviti parametre replikacije i povezati resurs sa svojim ravnopravnim uređajem:

# drbdadm up test

Sada ako pokrenete naredbu lsblk, primijetit ćete da je DRBD uređaj/volumen drbd0 pridružen rezervnom uređaju /dev/sdb1:

# lsblk

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 servera
Lista blok uređaja

Da onemogućite resurs, pokrenite:

# drbdadm down test

Da biste provjerili status resursa, pokrenite sljedeću naredbu (imajte na umu da se u ovom trenutku očekuje status diskova Nedosljedno/Nedosljedno):

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

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 servera
Provjera statusa resursa uključena
zlo

Korak 6: Postavite primarni resurs/početni izvor sinhronizacije uređaja

U ovoj fazi, DRBD je spreman za rad. Sada moramo odrediti koji čvor treba koristiti kao izvor početne sinhronizacije uređaja.

Pokrenite sljedeću naredbu na samo jednom čvoru da započnete početnu punu sinhronizaciju:

# drbdadm primary --force test
# drbdadm status test

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 servera
Postavljanje primarnog čvora kao početnog uređaja
Kada se sinhronizacija završi, stanje oba diska treba da bude UpToDate.

Korak 7: Testiranje DRBD podešavanja

Na kraju, moramo provjeriti da li će DRBD uređaj raditi kako je potrebno za pohranjivanje repliciranih podataka. Zapamtite da smo koristili prazan volumen diska, tako da moramo kreirati sistem datoteka na uređaju i montirati ga kako bismo provjerili možemo li ga koristiti za pohranjivanje repliciranih podataka.

Moramo kreirati sistem datoteka na uređaju koristeći sljedeću naredbu na čvoru gdje smo započeli početnu punu sinhronizaciju (koji ima resurs sa primarnom ulogom):

# mkfs -t ext4 /dev/drbd0

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 servera
Kreiranje sistema datoteka na Drbd volumenu

Zatim ga montirajte kao što je prikazano (tački montiranja možete dati odgovarajući naziv):

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

Sada kopirajte ili kreirajte neke datoteke u gornjoj tački montiranja i napravite dugačku listu sa ls komande:

# cd /mnt/DRDB_PRI/
# ls -l 

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 servera
Navedite sadržaj glavnog drbd volumena

Zatim isključite uređaj (uvjerite se da mount nije otvoren, promijenite direktorij nakon demontaže da biste izbjegli greške) i promijenite ulogu čvora iz primarne u sekundarnu:

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

Učinite drugi čvor (koji ima resurs sa sekundarnom ulogom) primarnim, zatim priključite uređaj na njega i izdajte dugu listu tačaka montiranja. Ako postavka radi dobro, sve datoteke pohranjene na tom volumenu trebaju biti tamo:

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

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 servera
Provjera DRBD postavke koja radi na sekundarnom čvoru.

Za više informacija pogledajte stranice pomoći za administrativne alate:

# man drbdadm
# man drbdsetup
# man drbdmeta

Pomoć: DRBD korisnički priručnik.

Rezime

DRBD je izuzetno fleksibilan i svestran, što ga čini rješenjem za replikaciju pohrane pogodnim za dodavanje HA gotovo svakoj aplikaciji. U ovom članku smo pokazali kako instalirati DRBD na CentOS 7 i ukratko demonstrirali kako ga koristiti za replikaciju pohrane. Slobodno podijelite svoje misli s nama koristeći obrazac za povratne informacije ispod.

Saznajte više o kursu.

izvor: www.habr.com

Dodajte komentar