Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 poslužitelja

Prijevod članka pripremljen je uoči početka tečaja "Linux administrator. Virtualizacija i grupiranje".

DRBD (Distribuirani replicirani blok uređaj) je distribuirano, fleksibilno i univerzalno replicirano rješenje za pohranu za Linux. Odražava sadržaj blok uređaja kao što su tvrdi diskovi, particije, logički volumeni itd. između poslužitelja. Stvara kopije podataka na dva uređaja za pohranu tako da se, ako jedan od njih zakaže, mogu koristiti podaci na drugom.

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

U početku se DRBD uglavnom koristio u računalnim 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 ćemo članku objasniti kako instalirati DRBD na CentOS i ukratko pokazati kako ga koristiti za repliciranje pohrane (particije) na dva poslužitelja. Ovo je savršen članak za početak rada s DRBD-om na Linuxu.

Testno okruženje

Za ovu postavku koristit ćemo klaster s 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 modul Linux kernela. To je upravljački program za virtualni blok uređaj, tako da se nalazi na samom dnu I/O stoga sustava.

DRBD se može instalirati iz ERLepo ili EPEL. Počnimo s uvozom ključa za potpisivanje paketa ERLepo i povezivanjem repozitorija na oba čvora kao što je prikazano u nastavku.

# 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 trebate instalirati DRBD kernel modul i uslužne programe na oba čvora koristeći:

# yum install -y kmod-drbd84 drbd84-utils

Ako vam je omogućen SELinux, trebate konfigurirati pravila za izuzimanje DRBD procesa iz SELinux kontrole.

# semanage permissive -a drbd_t

Osim toga, ako vaš sustav koristi vatrozid (firewalld), morat ćete dodati DRBD port 7789 da biste omogućili sinkronizaciju 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 pohranu niske razine

Sada kada imamo instaliran DRBD na oba čvora klastera, moramo osigurati područja za pohranu približno iste veličine na njima. To može biti particija tvrdog diska (ili cijeli fizički tvrdi disk), softverski RAID uređaj, LVM logički volumen ili bilo koji drugi tip blok uređaja koji se nalazi u vašem sustavu.

Za ovaj članak izradit ćemo testni blok uređaj od 2 GB 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) spojenom na oba čvora.

Korak 3. Konfiguriranje DRBD-a

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

Da bismo replicirali pohranu, moramo dodati potrebne konfiguracije u datoteku /etc/drbd.d/global_common.conf, koji sadrži globalne i općenite odjeljke DRBD konfiguracije, a mi trebamo definirati resurse u .res datoteke.

Napravimo sigurnosnu 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 retke u obje datoteke:

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

Spremite datoteku i zatvorite uređivač.

Pogledajmo na trenutak liniju protokola C. DRBD podržava tri različita načina replikacije (to jest, tri stupnja sinkronizacije replikacije), naime:

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

To je važno: Odabir protokola replikacije utječe na dva čimbenika implementacije: sigurnost i kašnjenje. Nasuprot tome, propusnost ne ovisi značajno o odabranom replikacijskom protokolu.

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 zamijeniti varijable stvarnim vrijednostima za vaše okruženje).

Obratite pozornost na nazive računala, moramo navesti naziv računala mreže, koji 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;
        }
}
}

gdje je:

  • na naziv hosta: On odjeljak na koji se odnosi ugniježđena konfiguracijska izjava.
  • test: Ovo je naziv novog izvora.
  • uređaj /dev/drbd0: Označava novi virtualni 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 odrediti izravno u odjeljku resursa.

Na primjer, gornja konfiguracija može se restrukturirati u:

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 s DRBD-om koristit ćemo sljedeće administrativne alate (koji su u interakciji s modulom jezgre za konfiguriranje i administriranje DRBD resursa):

  • drbdadm: DRBD alat za administraciju visoke razine.
  • drbdsetup: Alat za administraciju niže razine za povezivanje DRBD uređaja s njihovim uređajima za sigurnosno kopiranje, konfiguriranje parova DRBD uređaja da odražavaju njihove uređaje za sigurnosno kopiranje 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 poslužitelja
Inicijalizacija pohrane metapodataka

Zatim ga trebamo pokrenuti, što će povezati resurs s njegovim uređajem za sigurnosno kopiranje, zatim postaviti parametre replikacije i povezati resurs s ravnopravnim uređajem:

# drbdadm up test

Sada ako pokrenete naredbu lsblk, primijetit ćete da je DRBD uređaj/volumen drbd0 povezan s uređajem za sigurnosno kopiranje /dev/sdb1:

# lsblk

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 poslužitelja
Popis blok uređaja

Da biste onemogućili resurs, pokrenite:

# drbdadm down test

Za provjeru statusa resursa, pokrenite sljedeću naredbu (imajte na umu da se status diskova očekuje u ovom trenutku 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 poslužitelja
Provjera statusa resursa na
zlo

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

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

Izvedite sljedeću naredbu na samo jednom čvoru da započnete početnu potpunu sinkronizaciju:

# drbdadm primary --force test
# drbdadm status test

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 poslužitelja
Postavljanje primarnog čvora kao početnog uređaja
Nakon što je sinkronizacija dovršena, stanje oba pogona bi trebalo biti UpToDate.

Korak 7: Testiranje postavki DRBD-a

Konačno, moramo provjeriti hoće li DRBD uređaj raditi kako je potrebno za pohranjivanje repliciranih podataka. Upamtite da smo koristili prazan volumen diska, tako da moramo stvoriti datotečni sustav na uređaju i montirati ga da provjerimo možemo li ga koristiti za pohranjivanje repliciranih podataka.

Moramo stvoriti datotečni sustav na uređaju koristeći sljedeću naredbu na čvoru gdje smo započeli početnu punu sinkronizaciju (koja ima resurs s primarnom ulogom):

# mkfs -t ext4 /dev/drbd0

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 poslužitelja
Stvaranje datotečnog sustava na Drbd volumenu

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

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

Sada kopirajte ili stvorite neke datoteke u gornjoj točki montiranja i napravite dugačak popis s njima ls naredbe:

# cd /mnt/DRDB_PRI/
# ls -l 

Postavljanje DRBD-a za replikaciju pohrane na dva CentOS 7 poslužitelja
Navedite sadržaj glavnog Drbd volumena

Zatim demontirajte uređaj (provjerite da montiranje nije otvoreno, promijenite direktorij nakon demontaže da biste izbjegli pogreš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 mu pričvrstite uređaj i izdajte dugačak popis točaka montiranja. Ako postavka radi dobro, sve datoteke pohranjene na volumenu trebale bi 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 poslužitelja
Provjera postavke DRBD-a koja se izvodi na sekundarnom čvoru.

Za više informacija pogledajte stranice za pomoć administrativnih alata:

# man drbdadm
# man drbdsetup
# man drbdmeta

Pomoć: DRBD korisnički priručnik.

Rezime

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

Saznajte više o tečaju.

Izvor: www.habr.com

Dodajte komentar