GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat DRBD na CentOS Linux

Co je DRBD?

DRBD (Distributed Replicated Block Device) je softwarový balíček pro systémy založené na Linuxu. Používá se k replikaci úložných zařízení z jednoho uzlu do druhého po síti.

Může poskytnout pomoc při řešení zotavení po havárii a selhání. DRBD lze chápat jako vysokou dostupnost hardwaru a lze na něj pohlížet jako na náhradu sdíleného síťového úložiště.

Jak funguje DRBD?

Předpokládejme, že chceme klastrovat úložný oddíl na dvou systémech CentOS, potřebujeme blokové zařízení (jako /dev/sdb1) na obou systémech. Tyto systémy jsou definovány jako primární uzel a sekundární uzel (může přepínat primární a sekundární uzel).

DRBD používá virtuální blokové zařízení (jako drbd0) ke sdílení blokových zařízení /dev/sdb1 obou systémů. Primární uzel je ten, kde je připojen virtuální disk drbd0 za účelem čtení/zápisu.

Nejprve musíme nainstalovat balíčky DRBD, které se používají k vytvoření virtuálního disku drbd0. Můžeme jej naformátovat jako souborový systém xfs nebo ext3 pro použití zařízení /dev/drbd0. Zařízení drbd0 je nakonfigurováno pro použití blokových zařízení /dev/sdb1 na obou systémech. Nyní pracujeme pouze na zařízení drbd0.

Vzhledem k tomu, že drbd0 lze připojit pouze k primárnímu uzlu, je obsah současně přístupný pouze z primárního uzlu. Každopádně pokud dojde k selhání primárního systému, můžeme přijít o systémové soubory, ale virtuální zařízení drbd0 bude k dispozici. Můžeme přepnout původně sekundární uzel jako primární a můžeme znovu přistupovat k jeho obsahu.

Používání DRBD v systému CentOS

Tento tutoriál byl proveden na CentOS 7, ale měl by fungovat i pro ostatní verze CentOS. Přečtěte si, jak zjistit verzi CentOS.

Požadavky

  • Dva nainstalované systémy CentOS
  • Bezplatné blokové zařízení jako /dev/sdb1 v obou systémech (preferujeme stejnou velikost)
  • Selinux Permisivní nebo zakázán
  • port 7788 povolen na firewallu
  • Uzly musí být ve stejné síti.

Instalace

Zde následujeme instalaci přidáním úložiště epel, protože balíčky drbd nejsou dostupné v distribucích CentOS.

$ rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

Přidejte také klíč GPG na oba uzly. GPG klíč je veřejný klíč používaný k šifrování komunikace mezi uzly.

$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org

Nyní můžeme použít yum k instalaci balíčků drbd. Musíme identifikovat verze drbd podporované naším jádrem. Zkontrolujte dostupné verze drbd pro vaše jádro:

$ yum info *drbd* | grep Name

Výstup je podobný:

Nyní nainstalujte požadovanou verzi drbd spolu s nezbytnými moduly jádra.

$ yum -y install drbd84-utils kmod-drbd84

Ověřte, zda je modul jádra načten nebo ne.

$ lsmod | grep -i drbd

Pokud odezva výše uvedeného příkazu dává prázdný výstup, moduly jádra se nenačtou. Musíte restartovat systém a zkusit:

$ modprobe drbd

modprobe je příkaz, který inteligentně přidává nebo odebírá moduly z jádra Linuxu. Chcete-li, aby byly moduly načteny při každém spouštění, systemd-modules-load služba je využívána. Vytvořte tedy soubor s názvem drbd.conf v /etc/modulesload.d.

$ echo drbd > /etc/modules-load.d/drbd.conf

Konfigurace DRBD

Konfigurační soubory DRBD jsou umístěny na /etc/drbd.d/

Ve výchozím nastavení je globálně dostupný soubor /etc/drbd.d/global_common.conf, který obsahuje globální nebo hlavní konfigurace. Ostatní konfigurační soubory se nazývají zdrojové soubory s příponou *.res.

Nyní vytvoříme konfigurační soubory prostředků na obou uzlech pro použití drbd pro naše specifikovaná bloková zařízení.

Vytvořme zdrojový soubor s názvem linuxhandbook.res

$ vi /etc/drbd.d/linuxhandbook.res

zkopírujte a vložte níže uvedený obsah do souboru zdroje

resource linuxhandbook {
protocol C;          
on node1 {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 10.20.222.14:7788;
                meta-disk internal;
                }
on node2 {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 10.20.222.15:7788;
                meta-disk internal;
                }
} 

Tady,

  • linuxhandbook je název zdroje. Názvy zdrojů musí být vždy jedinečné.
  • protokol C se používá pro synchronní komunikaci. Je to plně synchronní replikační protokol. Další dostupné protokoly jsou protokol A a protokol B.
  1. protokol A :Asynchronní replikační protokol. Obecně se upřednostňuje pro uzly v sítích na dlouhé vzdálenosti.
  2. protokol B :Semisynchronní replikační protokol. Nazývá se také jako Memory synchronous protocol.
  3. protokol C :preferováno pro uzly v sítích na krátké vzdálenosti.
  • uzel 1 a uzel2 jsou názvy hostitele jednotlivých uzlů. Používejte pouze k identifikaci bloků.
  • zařízení /dev/drbd0 je logické zařízení vytvořené k použití jako zařízení.
  • disk /dev/sdb1 je fyzické blokové zařízení, které bude drbd0 zabírat.
  • Adresa 10.20.222.14:7788 a adresa 10.20.222.15:7788 jsou IP adresy dvou příslušných uzlů  s otevřeným tcp portem 7788.
  • meta-interní disk se používá k definování použití interních metadat disku.

Konfigurace musí být na obou uzlech stejná.

Nyní musíme inicializovat úložiště metadat na každém uzlu:

$ drbdadm create-md linuxhandbook

Pokud se zobrazí chybová zpráva, musíte vytvořit fiktivní datový soubor ručně a poté příkaz try výše.

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

Příkaz dd se používá k vytvoření náhodného souboru zadané paměti. Příkaz create-md musí být úspěšný poté.

Až bude logické zařízení použitelné, připojte zařízení drbd0 k disku sdb1 na obou uzlech. Podívejte se na výstup lsblk

$ lsblk

výstup by měl být takto

Pokud ne, připojte zařízení drbd0 k disku sdb1 prostřednictvím souboru prostředků.

$ drbdadm attach linuxhandbook
or
$ drbdadm up linuxhandbook

Once again try,
$ lsblk

Spusťte a povolte službu drbd na obou uzlech.

$ systemctl start drbd
$ systemctl enable drbd

Jestliže drbd může být rychlý pro jeden uzel a nějaký čas pro jiný uzel.

Nastavení primárních a sekundárních uzlů

DRDB používá vždy pouze jeden uzel jako primární uzel, kde lze provádět čtení a zápis.

Nejprve určíme uzel 1 jako primární uzel.

$ drbdadm primary linuxhandbook --force

Zkontrolujte stav procesu drbd:

$ cat /proc/drbd 
or 
$ drbd-overview

Výstup vypadá takto:

Zde jsou informace, které můžeme získat:

  • který uzel je v současnosti primární a který sekundární.
  • proces synchronizace dat.
  • Stav zařízení drbd jako:Nekonzistentní, Aktualizováno, Bez disku.

Další uzel, uzel2, je automaticky nastaven jako sekundární uzel. Podívejte se na stav procesu přehledu drbd.

Hlavním krokem, který jsme ještě neprovedli, je naformátování zařízení drbd0. To lze provést pouze na jednom z uzlů.

Zde naformátujeme drbd0 jako ext3 pomocí příkazu mkfs. Systém souborů xfs také funguje. Je lepší použít stejný typ disku jako /dev/sdb1.

$ mkfs -t ext3 /dev/drbd0

Nyní  opět na primárním uzlu (například v tomto tutoriálu je to uzel1) musíme připojit zařízení drbd0, abychom na něm mohli pracovat.

$ mount /dev/drbd0  /mnt 

you can select your required mount point instead of /mnt. for example, I can mount the /dev/drbd0 device to /var/lib/mysql to use it for mysql database drbd.

POZNÁMKA :Vždy pamatujte na proces. Nejprve byste měli nastavit uzel jako primární pro DRBD. Poté připojte zařízení drbd0 k vašemu systému a budete moci na zařízení provádět akce. Bez nastavení uzel jako primárního nemůžete připojit zařízení drb0 nemůže používat obsah tohoto zařízení.

Testování procesu DRBD

Po nastavení drbd na obou uzlech a jednom uzlu se stane primárním. Zařízení jsme namontovali na místo /mnt. Nyní vytvořte soubor pro testování synchronizace uzlů drbd.

$ touch  /mnt/drbdtest.txt
$ ll /mnt/

Poté nastavíme uzel1 jako sekundární a uzel2 jako primární. Proces je podobně zrcadlený. V uzlu 1 (v primárním uzlu instance) odpojte zařízení /dev/drbd0 a udělejte jej jako sekundární. Na node2 (v instanci sekundární uzel), udělejte z něj primární uzel a připojte se k požadovanému umístění.

v uzlu 1:

$ umount  /mnt
$ drbdadm secondary linuxhandbook

v uzlu 2:

$ drbdadm primary linuxhandbook
$ mount /dev/drbd0  /mnt

Po úspěšném připojení na node2 zkontrolujte soubory ve složce /mnt. Musíte vidět soubor drbdtest.txt (vytvořený na node1).

$ ll  /mnt/

Pokud chcete mít GUI rozhraní pro správu a vizualizaci uzlů clusteru drbd, můžete použít LCMC (Linux Cluster Management Console).

A je to! Úspěšně jste implementovali DRBD ve vašem systému. Pokud přetrvávají nějaké dotazy, můžete je komentovat níže v sekci komentářů.

Autor :Rishi Raj Gautam je milovník Linuxu a aktivista open-source.


Linux
  1. Jak debootstrap na CentOS Linux

  2. Jak nainstalovat Ansible na CentOS 8 Linux

  3. Jak nainstalovat PHP 8 na CentOS 8 Linux

  1. Jak nainstalovat redmine na RHEL 8 / CentOS 8 Linux

  2. Jak nainstalovat Erlang na Rocky Linux/Alma Linux/CentOS 8

  3. Jak nainstalovat Linux Kernel 5.0 na CentOS 7

  1. Jak nainstalovat hvězdičku na RHEL 8 / CentOS 8 Linux

  2. Jak nainstalovat wireshark na RHEL 8 / CentOS 8 Linux

  3. Jak nainstalovat Javu na RHEL 8 / CentOS 8 Linux