Překlad článku byl vyhotoven před začátkem kurzu .
DRBD (Distributed Replicated Block Device — distribuované replikované blokové zařízení) představuje distribuované, flexibilní a univerzální řešení pro ukládání dat pro Linux. Odráží 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, aby bylo možné v případě selhání jednoho z nich použít data na druhém.
Můžeme říci, že je to něco jako 1 s disky, které jsou replikovány na různé servery. Nicméně to nefunguje vůbec jako RAID (ani síťový).
Původně byl DRBD používán především v počítačových clusterech s vysokou dostupností (HA — high availability), avšak od deváté verze jej lze použít také k nasazení cloudového úložiště.
V tomto článku si ukážeme, jak nainstalovat DRBD v CentOS a stručně demonstrujeme, jak jej používat pro replikaci úložiště (oddílu) na dvou serverech. Toto je ideální článek pro začátek práce s DRBD v Linuxu.
Testovací prostředí
Budeme používat cluster ze dvou uzlů pro tuto konfiguraci.
- Uzel 1: 192.168.56.101 – tecmint.tecmint.lan
- Uzel 2: 192.168.56.102 – server1.tecmint.lan
Krok 1: Instalace balíčků DRBD
DRBD je implementován jako modul jádra Linuxu. Představuje ovladač pro virtuální blokové zařízení, takže se nachází na samém dně zásobníku vstupu a výstupu systému.
DRBD může být nainstalován z ELRepo nebo EPEL. Začněme importem podpisového klíče balíčku ELRepo a připojením repozitáře na obou uzlech, jak je uvedeno 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é je třeba nainstalovat modul jádra DRBD a nástroje na obou uzlech pomocí:
# yum install -y kmod-drbd84 drbd84-utilsPokud máte zapnutý SELinux, musíte nastavit politiky tak, aby uvolnily procesy DRBD z kontroly SELinux.
# semanage permissive -a drbd_t
Kromě toho, pokud ve vašem systému běží firewall (firewalld), musíte přidat port DRBD 7789, aby bylo povoleno 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říprava nízkoúrovňového úložiště
Nyní, když máme nainstalováno DRBD na obou uzlech clustera, musíme na nich připravit úložiště 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ýkoliv jiný typ blokového zařízení, které máte ve svém systému.
Pro tento článek vytvoříme testovací blokové zařízení o velikosti 2 GB pomocí příkazu dd.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024Předpokládejme, že se jedná o nevyužitý 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.conf, a další konfigurační soubory lze nalézt v adresáři /etc/drbd.d.
Abychom replikovali úložiště, musíme přidat potřebné konfigurace do souboru /etc/drbd.d/global_common.conf, který obsahuje globální a společné části konfigurace DRBD, a specifikovat zdroje v .res souborech.
Vytvoříme zálohu původního souboru na obou uzlech a poté otevřeme nový soubor k úpravě (použijte textový editor podle své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 poté zavřete editor.
Na chvíli se zastavíme u řádku protocol C. DRBD podporuje tři různé režimy replikace (např. tři úrovně synchronizace replikace), konkrétně:
- protocol A: protokol asynchronní replikace; nejčastěji používán ve scénářích replikace na velké vzdálenosti.
- protocol B: protokol polusynchronní replikace nebo protokol synchronní paměti.
- protocol C: obvykle používán pro uzly v sítích na malé vzdálenosti; je to jednoznačně nejčastěji používaný replikací protokol v nastaveních DRBD.
Je důležité: výběr replikace protokolu ovlivňuje dva faktory nasazení: zajištění a latenci. Šířka pásma se naopak v zásadě nezávisí na vybraném replikace protokolu.
Krok 4. Přidání zdroje
Zdrojem (Resource) je souhrnný termín, který se vztahuje na všechny aspekty konkrétní replikované sady dat. Náš zdroj definujeme v souboru /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šimněte si názvů hostitelů, musíme uvést síťové jméno hostitele, 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 názvu hostitele: oddíl on, ke kterému se vztahuje vnořený konfigurační příkaz.
- test: to je název nového zdroje.
- device /dev/drbd0: udává nové virtuální blokové zařízení spravované DRBD.
- disk /dev/sdb1: to je oddíl blokového zařízení, který je záložním zařízením pro zařízení DRBD.
- meta-disk: určuje, kde DRBD uchovává svá metadata. Internal znamená, že DRBD ukládá svá metadata na stejném fyzickém nízkolevelovém zařízení jako skutečná data v produkci.
- address: určuje IP adresu a číslo portu příslušného uzlu.
Také si uvědomte, že pokud mají oba hostitelé stejné hodnoty parametrů, můžete je uvést přímo v sekci zdrojů.
Například, výše uvedená konfigurace může být přepracová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. Inicializace a spuštění zdroje
Pro interakci s DRBD budeme používat následující administrační nástroje (které interagují s jádrovým modulem pro nastavení a správu prostředků DRBD):
- drbdadm: vysoce úrovňový administrační nástroj DRBD.
- drbdsetup: nízkoúrovňový administrační nástroj pro připojení zařízení DRBD k jejich záložním zařízením, nastavení párů zařízení DRBD pro zrcadlení jejich záložních zařízení a pro kontrolu 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í zdroje musíme vyvolat zdroj na obou uzlech.
# drbdadm create-md test 
Inicializace úložiště metadat
Dále ho musíme spustit, což připojí zdroj k jeho záložnímu zařízení, následně nastaví parametry replikace a připojí zdroj ke svému peeru:
# drbdadm up test Nyní, pokud spustíte příkaz , všimnete si, že zařízení/tom DRBD drbd0 je spojeno se záložním zařízením /dev/sdb1:
# lsblk 
Seznam blokových zařízení
Chcete-li vypnout zdroj, spusťte:
# drbdadm down testChcete-li zkontrolovat stav zdroje, spusťte následující příkaz (mějte na paměti, že v této fázi 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 na u
záloh
Krok 6: Nastavení primárního zdroje/zdroje pro počáteční synchronizaci zařízení
V této fázi je DRBD již připraven k provozu. Nyní musíme určit, který uzel má být používán jako zdroj pro počáteční synchronizaci 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ěly být stavy obou disků UpToDate.
Krok 7: Testování nastavení DRBD
Nakonec musíme zkontrolovat, zda bude zařízení DRBD fungovat tak, jak potřebujeme pro ukládání replikovaných dat. Pamatujte, že jsme použili prázdný diskový svazek, takže musíme vytvořit souborový systém na zařízení a přimontovat ho, abychom ověřili, zda jej můžeme použít pro ukládání replikovaných dat.
Musíme vytvořit souborový systém na zařízení pomocí následujícího příkazu na uzlu, ze kterého jsme zahájili počáteční plnou synchronizaci (na kterém je zdroj s primární rolí):
# mkfs -t ext4 /dev/drbd0 
Vytváříme souborový systém na svazku Drbd
Poté jej přimontujte tak, jak je ukázáno (můžete dát bodu montování vhodné jméno):
# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/
Nyní zkopírujte nebo vytvořte nějaké soubory na výše uvedeném bodě montování a proveďte dlouhý seznam pomocí :
# cd /mnt/DRDB_PRI/
# ls -l 
Zobrazit seznam obsahu primárního svazku Drbd
Dále odmontujte zařízení (ujistěte se, že montáž není otevřená, změňte adresář po odmontování, abyste se vyhnuli chybám) a změňte roli uzlu z primárního na sekundární:
# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary testDruhý uzel (na kterém je zdroj se sekundární rolí) převeďte na primární, poté k němu připojte zařízení a proveďte dlouhý seznam bodů montování. 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 běžícího na sekundárním uzlu.
Pro další informace se obraťte na referenční stránky administrativních nástrojů:
# man drbdadm
# man drbdsetup
# man drbdmetaNápověda: .
Shrnutí
DRBD je mimořádně flexibilní a univerzální, což z něj činí ideální řešení pro replikaci úložiště, vhodné pro přidání HA prakticky do jakékoli aplikace. V tomto článku jsme ukázali, jak nainstalovat DRBD na CentOS 7, a stručně demonstrovali, jak jej používat pro replikaci úložiště. Neváhejte se s námi podělit o své názory prostřednictvím formuláře pro zpětnou vazbu níže.
Zdroj: habr.com
