Preklad článku bol pripravený v predstihu pred začiatkom kurzu
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é
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,
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.conf
a ď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
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 /dev/sdb1
:
# lsblk
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
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 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
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
# cd /mnt/DRDB_PRI/
# ls -l
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
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:
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.
Zdroj: hab.com