Nastavujeme DRBD pro replikaci úložiště na dvou serverech CentOS 7

Překlad článku byl vyhotoven před začátkem kurzu «Administrátor Linux. Virtualizace a clustering».

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 síťová konfigurace RAID 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.rpm

Poté je třeba nainstalovat modul jádra DRBD a nástroje na obou uzlech pomocí:

# yum install -y kmod-drbd84 drbd84-utils

Pokud 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 --reload

Poté 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 --reload

Krok 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, logický svazek LVM 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=1024

Př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

Nastavujeme DRBD pro replikaci úložiště na dvou serverech CentOS 7
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 lsblk, všimnete si, že zařízení/tom DRBD drbd0 je spojeno se záložním zařízením /dev/sdb1:

# lsblk

Nastavujeme DRBD pro replikaci úložiště na dvou serverech CentOS 7
Seznam blokových zařízení

Chcete-li vypnout zdroj, spusťte:

# drbdadm down test

Chcete-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

Nastavujeme DRBD pro replikaci úložiště na dvou serverech CentOS 7
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

Nastavujeme DRBD pro replikaci úložiště na dvou serverech CentOS 7
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

Nastavujeme DRBD pro replikaci úložiště na dvou serverech CentOS 7
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í příkazu ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Nastavujeme DRBD pro replikaci úložiště na dvou serverech CentOS 7
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 test

Druhý 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 

Nastavujeme DRBD pro replikaci úložiště na dvou serverech CentOS 7
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 drbdmeta

Nápověda: Uživatelská příručka DRBD.

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.

Zjistit více o kurzu.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster