Překlad článku byl připraven v předvečer zahájení kurzu .
DRBD (Distributed Replicated Block Device) je distribuované, flexibilní a univerzálně replikované úložné řešení pro LinuxZrcadlí obsah blokových zařízení, jako jsou pevné disky, oddíly, logické svazky atd., mezi servery. Vytváří kopie dat na dvou úložných zařízeních, takže pokud jedno selže, lze použít data na druhém.
Dalo by se říct, že je to něco podobného 1 s disky namapovanými na různé servery. Funguje však úplně jinak než RAID (i síťový RAID).
Zpočátku se DRBD používalo hlavně v počítačových clusterech s vysokou dostupností (HA), ale počínaje verzí 9 jej lze použít k nasazení řešení cloudových úložišť.
V tomto článku vám řekneme, jak nainstalovat DRBD v CentOSa stručně si ukážeme, jak jej použít k replikaci úložiště (oddílu) mezi dvěma servery. Toto je perfektní článek pro začátek s DRBD v... Linux.
Testovací prostředí
Pro toto nastavení použijeme cluster se dvěma uzly.
- Uzel 1: 192.168.56.101 – tecmint.tecmint.lan
- Uzel 2: 192.168.56.102 – server1.tecmint.lan
Krok 1: Nainstalujte balíčky DRBD
DRBD je implementován jako modul jádra. LinuxJe to ovladač pro virtuální blokové zařízení, takže se nachází úplně na dně I/O zásobníku systému.
DRBD lze nainstalovat z ELRepo nebo EPEL. Začněme importem podpisového klíče balíčku ELRepo a připojením úložiště na obou uzlech, jak je znázorněno níže.
# 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.rpmPoté musíte nainstalovat modul jádra DRBD a nástroje na oba uzly pomocí:
# yum install -y kmod-drbd84 drbd84-utilsPokud máte připojeno SELinux, je třeba nakonfigurovat zásady pro vynětí procesů DRBD z kontroly SELinux.
# semanage permissive -a drbd_t
Kromě toho, pokud váš systém používá firewall (firewall), budete muset přidat port DRBD 7789, abyste umožnili synchronizaci dat mezi dvěma uzly.
Spusťte tyto příkazy pro první uzel:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reloadPoté spusťte tyto příkazy pro druhý uzel:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reloadKrok 2: Připravte nízkoúrovňové úložiště
Nyní, když máme DRBD nainstalované na obou uzlech clusteru, musíme na nich zřídit úložné oblasti přibližně stejné velikosti. Může to být oddíl pevného disku (nebo celý fyzický pevný disk), softwarové zařízení RAID, nebo jakýkoli jiný typ blokového zařízení nalezeného ve vašem systému.
Pro tento článek vytvoříme 2GB testovací blokové zařízení pomocí příkazu dd.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024Předpokládejme, že se jedná o nepoužívaný oddíl (/dev/sdb1) na druhém blokovém zařízení (/dev/sdb) připojeném k oběma uzlům.
Krok 3. Konfigurace DRBD
Hlavní konfigurační soubor DRBD − /etc/drbd.confa další konfigurační soubory lze nalézt v adresáři /etc/drbd.d.
Abychom úložiště replikovali, musíme do souboru přidat potřebné konfigurace /etc/drbd.d/global_common.conf, který obsahuje globální a obecné části konfigurace DRBD a my potřebujeme definovat zdroje v .res soubory.
Udělejme záložní kopii původního souboru na obou uzlech a poté otevřeme nový soubor pro úpravy (použijme textový editor dle vlastního výběru).
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf Přidejte do obou souborů následující řádky:
global {
usage-count yes;
}
common {
net {
protocol C;
}
}Uložte soubor a zavřete editor.
Podívejme se na chvíli na řadu protokolu C DRBD podporuje tři různé režimy replikace (tj. tři stupně synchronizace replikace), konkrétně:
- protokol A: protokol asynchronní replikace; nejčastěji používané ve scénářích replikace na dlouhé vzdálenosti.
- protokol B: Semisynchronní replikační protokol nebo synchronní paměťový protokol.
- protokol C: obvykle se používá pro uzly v sítích s krátkými vzdálenostmi; toto je zdaleka nejběžněji používaný replikační protokol v nastavení DRBD.
Je to důležité,: Volba replikačního protokolu ovlivňuje dva faktory nasazení: zabezpečení a latenci. Naproti tomu propustnost významně nezávisí na zvoleném replikačním protokolu.
Krok 4: Přidejte zdroj
Zdroj je zastřešující termín, který odkazuje na všechny aspekty konkrétní replikované datové sady. V souboru definujeme náš zdroj /etc/drbd.d/test.res.
Přidejte následující do souboru na obou uzlech (nezapomeňte nahradit proměnné skutečnými hodnotami pro vaše prostředí).
Věnujte pozornost názvům hostitelů, musíme zadat název hostitele sítě, který lze získat pomocí pří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 jméno hostitele: Sekce on, na kterou se vztahuje příkaz vnořené konfigurace.
- test: Toto je název nového zdroje.
- zařízení /dev/drbd0: Označuje nové virtuální blokové zařízení spravované DRBD.
- disk /dev/sdb1: Toto je oddíl blokového zařízení, který je záložním zařízením pro zařízení DRBD.
- meta-disk: Definuje, kam DRBD ukládá svá metadata. Interní znamená, že DRBD ukládá svá metadata na stejné fyzické nízkoúrovňové zařízení jako skutečná data v produkci.
- adresa: Označuje IP adresu a číslo portu odpovídajícího uzlu.
Všimněte si také, že pokud mají parametry stejné hodnoty na obou hostitelích, můžete je zadat přímo v sekci zdrojů.
Výše uvedená konfigurace může být například restrukturalizována 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 spusťte prostředek
Pro interakci s DRBD použijeme následující nástroje pro správu (které spolupracují s modulem jádra za účelem konfigurace a správy prostředků DRBD):
- drbdadm: Nástroj pro správu na vysoké úrovni DRBD.
- drbdsetup: Nástroj pro správu nižší úrovně pro připojení zařízení DRBD k jejich zálohovacím zařízením, konfiguraci párů zařízení DRBD tak, aby odrážela jejich záložní zařízení, a pro ověření konfigurace běžících zařízení DRBD.
- Drbdmeta: Nástroj pro správu metadat.
Po přidání všech počátečních konfigurací prostředků musíme prostředek vyvolat na obou uzlech.
# drbdadm create-md test 
Inicializace úložiště metadat
Dále jej musíme spustit, čímž se prostředek připojí k jeho záložnímu zařízení, poté nastavíme parametry replikace a připojíme prostředek k jeho peer:
# drbdadm up test Nyní, pokud spustíte příkaz , zjistíte, že zařízení DRBD/svazek drbd0 je spojeno se zálohovacím zařízením /dev/sdb1:
# lsblk 
Seznam blokových zařízení
Chcete-li zakázat prostředek, spusťte:
# drbdadm down testChcete-li zkontrolovat stav prostředku, spusťte následující příkaz (všimněte si, že v tomto okamžiku se očekává stav disků Nekonzistentní/Nekonzistentní):
# drbdadm status test
OR
# drbdsetup status test --verbose --statistics #for a more detailed status 
Kontrola stavu zdroje zapnuta
zlo
Krok 6: Nastavte primární zdroj/zdroj synchronizace počátečního zařízení
V této fázi je DRBD připraveno jít. Nyní musíme určit, který uzel by měl být použit jako zdroj počáteční synchronizace zařízení.
Spusťte následující příkaz pouze na jednom uzlu, abyste zahájili počáteční úplnou synchronizaci:
# drbdadm primary --force test
# drbdadm status test 
Nastavení primárního uzlu jako počátečního zařízení
Po dokončení synchronizace by měl být stav obou jednotek UpToDate.
Krok 7: Testování nastavení DRBD
Nakonec musíme zkontrolovat, zda zařízení DRBD bude fungovat podle potřeby pro ukládání replikovaných dat. Pamatujte, že jsme použili prázdný diskový svazek, takže musíme na zařízení vytvořit souborový systém a připojit jej, abychom zkontrolovali, zda jej můžeme použít k ukládání replikovaných dat.
Potřebujeme vytvořit souborový systém na zařízení pomocí následujícího příkazu v uzlu, kde jsme spustili počáteční úplnou synchronizaci (který má prostředek s primární rolí):
# mkfs -t ext4 /dev/drbd0 
Vytvoření systému souborů na svazku Drbd
Poté jej připojte podle obrázku (bodu připojení můžete dát vhodný název):
# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/
Nyní zkopírujte nebo vytvořte nějaké soubory ve výše uvedeném bodu připojení a vytvořte dlouhý seznam s :
# cd /mnt/DRDB_PRI/
# ls -l 
Vypište obsah hlavního svazku Drbd
Dále odpojte zařízení (ujistěte se, že připojení není otevřené, po odpojení změňte adresář, abyste předešli chybám) a změňte roli uzlu z primárního na sekundární:
# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary testNastavte druhý uzel (který má zdroj se sekundární rolí) jako primární, pak k němu připojte zařízení a zadejte dlouhý seznam přípojných bodů. Pokud nastavení funguje správně, měly by tam být všechny soubory uložené na svazku:
# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls -l 
Kontrola nastavení DRBD spuštěného na sekundárním uzlu.
Další informace naleznete na stránkách nápovědy nástrojů pro správu:
# man drbdadm
# man drbdsetup
# man drbdmetaFAQ: .
Shrnutí
DRBD je extrémně flexibilní a všestranné, což z něj činí řešení replikace úložiště vhodné pro přidání HA prakticky do jakékoli aplikace. V tomto článku jsme ukázali, jak nainstalovat DRBD v CentOS 7 a stručně jsme ukázali, jak jej použít pro replikaci úložiště. Neváhejte se s námi podělit o své názory pomocí níže uvedeného formuláře pro zpětnou vazbu.
Zdroj: www.habr.com
