Nastavenie DRBD na replikáciu úložiska na dvoch serveroch CentOS 7

Preklad článku bol pripravený v predstihu pred začiatkom kurzu "Správca Linuxu. Virtualizácia a klastrovanie".

DRBD (Distributed Replicated Block Device) je distribuované, flexibilné a univerzálne replikovateľné úložné riešenie pre Linux. Odráža obsah blokových zariadení, ako sú pevné disky, oddiely, logické zväzky atď. medzi servermi. Vytvára kópie údajov na dvoch pamäťových zariadeniach, takže ak jedno z nich zlyhá, môžu sa použiť údaje na druhom.

Dalo by sa povedať, že je to niečo podobné konfigurácia sieťového RAID 1 s diskami namapovanými na rôzne servery. Funguje však úplne inak ako RAID (aj sieťový RAID).

Spočiatku sa DRBD používalo najmä v počítačových klastroch s vysokou dostupnosťou (HA), avšak počnúc verziou XNUMX sa dá použiť na nasadenie riešení cloudových úložísk.

V tomto článku vysvetlíme, ako nainštalovať DRBD na CentOS a stručne ukážeme, ako ho použiť na replikáciu úložiska (partície) na dvoch serveroch. Toto je ideálny článok, ako začať s DRBD v systéme Linux.

Testovacie prostredie

Na toto nastavenie použijeme klaster s dvoma uzlami.

  • Uzol 1: 192.168.56.101 – tecmint.tecmint.lan
  • Uzol 2: 192.168.56.102 – server1.tecmint.lan

Krok 1: Nainštalujte balíky DRBD

DRBD je implementovaný ako modul jadra Linuxu. Je to ovládač pre virtuálne blokové zariadenie, takže sa nachádza na úplnom spodku systémového I/O zásobníka.

DRBD je možné nainštalovať z ELRepo alebo EPEL. Začnime importovaním podpisového kľúča balíka ELRepo a pripojením úložiska na oboch uzloch, ako je znázornené nižšie.

# 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

Potom musíte nainštalovať modul jadra DRBD a pomocné programy na oba uzly pomocou:

# yum install -y kmod-drbd84 drbd84-utils

Ak máte povolený SELinux, musíte nakonfigurovať politiky na vyňatie procesov DRBD z kontroly SELinuxu.

# semanage permissive -a drbd_t

Okrem toho, ak váš systém používa bránu firewall (firewall), budete musieť pridať port DRBD 7789, aby ste umožnili synchronizáciu údajov medzi týmito dvoma uzlami.

Spustite tieto príkazy pre prvý uzol:

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

Potom spustite tieto príkazy pre druhý uzol:

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

Krok 2: Pripravte úložisko nízkej úrovne

Teraz, keď máme DRBD nainštalované na oboch klastrových uzloch, musíme na nich poskytnúť úložné oblasti približne rovnakej veľkosti. Môže to byť oblasť pevného disku (alebo celý fyzický pevný disk), softvérové ​​zariadenie RAID, LVM logický zväzok alebo akýkoľvek iný typ blokového zariadenia nájdeného vo vašom systéme.

Pre tento článok vytvoríme 2GB testovacie zariadenie pomocou príkazu dd.

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

Predpokladajme, že ide o nepoužívaný oddiel (/dev/sdb1) na druhom blokovom zariadení (/dev/sdb) pripojenom k ​​obom uzlom.

Krok 3. Konfigurácia DRBD

Hlavný konfiguračný súbor DRBD − /etc/drbd.confa ďalšie konfiguračné súbory nájdete v adresári /etc/drbd.d.

Na replikáciu úložiska musíme do súboru pridať potrebné konfigurácie /etc/drbd.d/global_common.conf, ktorý obsahuje globálnu a všeobecnú časť konfigurácie DRBD a musíme definovať zdroje v .res súbory.

Urobme záložnú kópiu pôvodného súboru na oboch uzloch a potom otvorme nový súbor na úpravu (použite textový editor podľa vlastného výberu).

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

Pridajte nasledujúce riadky do oboch súborov:

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

Uložte súbor a potom zatvorte editor.

Pozrime sa na chvíľu na linku protokolu C. DRBD podporuje tri rôzne režimy replikácie (teda tri stupne synchronizácie replikácie), konkrétne:

  • protokol A: protokol asynchrónnej replikácie; najčastejšie používané v scenároch replikácie na veľké vzdialenosti.
  • protokol B: Semi-synchrónny replikačný protokol alebo synchrónny pamäťový protokol.
  • protokol C: zvyčajne sa používa pre uzly v sieťach s krátkymi vzdialenosťami; toto je zďaleka najbežnejšie používaný replikačný protokol v nastaveniach DRBD.

Je to dôležité,: Výber replikačného protokolu ovplyvňuje dva faktory nasadenia: bezpečnosť a latenciu. Naproti tomu priepustnosť významne nezávisí od zvoleného replikačného protokolu.

Krok 4: Pridajte zdroj

Zdroj je zastrešujúci pojem, ktorý sa vzťahuje na všetky aspekty konkrétneho replikovaného súboru údajov. V súbore zadefinujeme náš zdroj /etc/drbd.d/test.res.

Pridajte nasledujúce do súboru na oboch uzloch (nezabudnite nahradiť premenné skutočnými hodnotami pre vaše prostredie).

Venujte pozornosť názvom hostiteľov, musíme zadať názov hostiteľa siete, ktorý je možné získať pomocou príkazu 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 meno hostiteľa: Sekcia on, na ktorú sa vzťahuje vnorený konfiguračný príkaz.
  • test: Toto je názov nového zdroja.
  • zariadenie /dev/drbd0: Označuje nové virtuálne blokové zariadenie spravované DRBD.
  • disk /dev/sdb1: Toto je oddiel blokového zariadenia, ktorý je záložným zariadením pre zariadenie DRBD.
  • meta-disk: Definuje, kde DRBD ukladá svoje metadáta. Interné znamená, že DRBD ukladá svoje metadáta na rovnakom fyzickom nízkoúrovňovom zariadení ako aktuálne dáta vo výrobe.
  • adresa: Označuje IP adresu a číslo portu príslušného uzla.

Upozorňujeme tiež, že ak majú parametre rovnaké hodnoty na oboch hostiteľoch, môžete ich zadať priamo v sekcii zdrojov.

Vyššie uvedená konfigurácia môže byť napríklad reštrukturalizovaná 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;
        		}
}

Krok 5. Inicializujte a spustite zdroj

Na interakciu s DRBD použijeme nasledujúce nástroje na správu (ktoré spolupracujú s modulom jadra na konfiguráciu a správu prostriedkov DRBD):

  • drbdadm: Nástroj na administráciu vysokej úrovne DRBD.
  • drbdsetup: Nástroj na správu nižšej úrovne na pripojenie zariadení DRBD k ich záložným zariadeniam, konfiguráciu párov zariadení DRBD tak, aby odrážali ich záložné zariadenia, a na overenie konfigurácie spustených zariadení DRBD.
  • Drbdmeta: Nástroj na správu metadát.

Po pridaní všetkých počiatočných konfigurácií prostriedkov musíme prostriedok vyvolať na oboch uzloch.

# drbdadm create-md test

Nastavenie DRBD na replikáciu úložiska na dvoch serveroch CentOS 7
Inicializácia úložiska metadát

Ďalej ho musíme spustiť, čím sa pripojí zdroj k jeho záložnému zariadeniu, potom sa nastavia parametre replikácie a pripojí sa zdroj k svojmu partnerovi:

# drbdadm up test

Teraz, ak spustíte príkaz lsblk, zistíte, že DRBD zariadenie/zväzok drbd0 je spojený so záložným zariadením /dev/sdb1:

# lsblk

Nastavenie DRBD na replikáciu úložiska na dvoch serveroch CentOS 7
Zoznam blokovaných zariadení

Ak chcete zakázať zdroj, spustite:

# drbdadm down test

Ak chcete skontrolovať stav prostriedku, spustite nasledujúci príkaz (všimnite si, že v tomto bode sa očakáva stav diskov Nekonzistentné/Nekonzistentné):

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

Nastavenie DRBD na replikáciu úložiska na dvoch serveroch CentOS 7
Kontrola stavu zdroja zapnutá
zlý

Krok 6: Nastavte primárny zdroj/zdroj synchronizácie počiatočného zariadenia

V tejto fáze je DRBD pripravené. Teraz musíme určiť, ktorý uzol sa má použiť ako zdroj počiatočnej synchronizácie zariadenia.

Spustite nasledujúci príkaz len na jednom uzle, aby ste začali úvodnú úplnú synchronizáciu:

# drbdadm primary --force test
# drbdadm status test

Nastavenie DRBD na replikáciu úložiska na dvoch serveroch CentOS 7
Nastavenie primárneho uzla ako počiatočného zariadenia
Po dokončení synchronizácie by mal byť stav oboch diskov UpToDate.

Krok 7: Testovanie nastavenia DRBD

Nakoniec musíme skontrolovať, či zariadenie DRBD bude fungovať podľa potreby na ukladanie replikovaných údajov. Pamätajte, že sme použili prázdny diskový zväzok, takže musíme na zariadení vytvoriť súborový systém a pripojiť ho, aby sme skontrolovali, či ho môžeme použiť na ukladanie replikovaných údajov.

Potrebujeme vytvoriť súborový systém na zariadení pomocou nasledujúceho príkazu v uzle, kde sme spustili úvodnú úplnú synchronizáciu (ktorá má zdroj s primárnou rolou):

# mkfs -t ext4 /dev/drbd0

Nastavenie DRBD na replikáciu úložiska na dvoch serveroch CentOS 7
Vytvorenie systému súborov na zväzku Drbd

Potom ho pripojte podľa obrázka (bodu pripojenia môžete dať vhodný názov):

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

Teraz skopírujte alebo vytvorte nejaké súbory vo vyššie uvedenom bode pripojenia a vytvorte dlhý zoznam s ls príkazy:

# cd /mnt/DRDB_PRI/
# ls -l 

Nastavenie DRBD na replikáciu úložiska na dvoch serveroch CentOS 7
Vypíšte obsah hlavného zväzku Drbd

Potom odpojte zariadenie (uistite sa, že pripojenie nie je otvorené, po odpojení zmeňte adresár, aby ste predišli chybám) a zmeňte rolu uzla z primárneho na sekundárny:

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

Nastavte druhý uzol (ktorý má zdroj so sekundárnou rolou) ako primárny, potom k nemu pripojte zariadenie a vytvorte dlhý zoznam bodov pripojenia. Ak nastavenie funguje správne, mali by tam byť všetky súbory uložené na zväzku:

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

Nastavenie DRBD na replikáciu úložiska na dvoch serveroch CentOS 7
Kontrola nastavenia DRBD spusteného na sekundárnom uzle.

Ďalšie informácie nájdete na stránkach pomocníka nástrojov na správu:

# man drbdadm
# man drbdsetup
# man drbdmeta

FAQ: Používateľská príručka DRBD.

Zhrnutie

DRBD je mimoriadne flexibilné a všestranné, čo z neho robí riešenie replikácie úložiska vhodné na pridávanie HA do takmer akejkoľvek aplikácie. V tomto článku sme ukázali, ako nainštalovať DRBD na CentOS 7 a stručne sme si ukázali, ako ho použiť na replikáciu úložiska. Neváhajte sa s nami podeliť o svoje myšlienky pomocou formulára spätnej väzby nižšie.

Zistite viac o kurze.

Zdroj: hab.com

Pridať komentár