DRBD konfigurálása tároló replikálására két CentOS 7 szerveren

A cikk fordítása a kurzus megkezdése előtt készült Linux Adminisztrátor. Virtualizálás és klaszterezés.

A DRBD (Distributed Replicated Block Device — elosztott replikált blokkeszköz) egy elosztott, rugalmas és univerzálisan replikálható tárolási megoldás Linuxra. Tükrözi a blokkeszközök, például merevlemezek, partíciók, logikai kötetek stb. tartalmát a szerverek között. Másolatokat készít az adatokból két tárolóeszközön, hogy az egyik hibája esetén a másodikra lehessen támaszkodni.

Mondhatni, hogy ez valami hasonló a RAID hálózati konfigurációhoz 1, ahol a lemezek különböző szerverekre vannak tükrözve. Azonban nem úgy működik, mint a RAID (még a hálózati is).

Eredetileg a DRBD-t főként magas rendelkezésre állású (HA — high availability) számítástechnikai klaszterekben használták, de a kilencedik verzió óta felhőalapú tárolási megoldások telepítésére is használható.

Ebben a cikkben bemutatjuk, hogyan lehet DRBD-t telepíteni CentOS-ra, és röviden bemutatjuk, hogyan használható tároló (partíció) replikálására két szerveren. Ez a cikk ideális kezdés a DRBD-vel Linuxon.

Tesztkörnyezet

Kettő csomópontú klasztert használunk ehhez a beállításhoz.

  • Csomópont 1: 192.168.56.101 – tecmint.tecmint.lan
  • Csomópont 2: 192.168.56.102 – server1.tecmint.lan

1. lépés: DRBD csomagok telepítése

A DRBD Linux kernel moduljaként valósul meg. Ez egy virtuális blokkeszköz meghajtója, ezért a rendszer I/O verem legalsó szintjén helyezkedik el.

A DRBD az ELRepo vagy az EPEL-ből telepíthető. Kezdjük az ELRepo csomag aláíró kulcsának importálásával és a tároló csatlakoztatásával mindkét csomópontban, ahogy az alább látható.

# 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

Ezután telepítenünk kell a DRBD kernel modult és az eszközöket mindkét csomópontban a következő paranccsal:

# yum install -y kmod-drbd84 drbd84-utils

Ha SELinux van engedélyezve, be kell állítani a politikákat, hogy mentesüljön a DRBD folyamatok SELinux általi ellenőrzése alól.

# semanage permissive -a drbd_t

Továbbá, ha a rendszere tűzfalat (firewalld) működtet, hozzá kell adni a DRBD 7789 portot, hogy lehetővé váljon az adatok szinkronizálása a két csomópont között.

Futtassa ezeket a parancsokat az első csomóponton:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Ezután futtassa ezeket a parancsokat a második csomóponton:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

2. lépés. Alacsony szintű tároló előkészítése

Most már, hogy a DRBD telepítve van mindkét klaszternódon, fel kell készítenünk egy körülbelül azonos méretű tárolóterületet. Ez lehet egy merevlemez-partíció (vagy egy teljes fizikai merevlemez), RAID szoftveres eszköz, logikai LVM kötet vagy bármilyen más típusú blokkeszköz, amely a rendszerében található.

Ebben a cikkben létrehozunk egy 2 GB méretű tesztblokkeszközt a dd parancs segítségével.

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

Tegyük fel, hogy ez egy felhasználatlan partíció (/dev/sdb1) a második blokkeszközön (/dev/sdb), amely mindkét csomóponthoz csatlakozik.

3. lépés. A DRBD beállítása

A DRBD fő konfigurációs fájlja — /etc/drbd.conf, további konfigurációs fájlok pedig a következő mappában találhatók: /etc/drbd.d.

A tároló replikálásához szükséges konfigurációkat hozzá kell adnunk a /etc/drbd.d/global_common.conffájlhoz, amely a DRBD globális és közös konfigurációs szakaszait tartalmazza, míg az erőforrásokat a következő fájlokban kell meghatároznunk: .res fájlok.

Hozzunk létre biztonsági másolatot az eredeti fájlokról mindkét nódon, majd nyissunk meg egy új fájlt szerkesztésre (használjon tetszőleges szövegszerkesztőt).

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

Adja hozzá mindkét fájlhoz a következő sorokat:

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

Mentse el a fájlt, majd zárja be a szerkesztőt.

Nézzük meg röviden a "protocol C" sort. A DRBD három különböző replikálási módot támogat (vagyis három fokozatot a replikálás szinkronizálásában), nevezetesen:

  • protocol A: asszinkron replikálási protokoll; leggyakrabban hosszú távolságú replikálási forgatókönyvekben használják.
  • protocol B: félszinkron replikálási protokoll vagy szinkron memória protokoll.
  • protocol C: jellemzően rövid távolságú hálózatokban használt; ez határozottan a leggyakrabban használt replikálási protokoll a DRBD beállításokban.

Fontos: A replikálási protokoll kiválasztása két telepítési tényezőre hat: a védelmi szintre és a késleltetésre. A sávszélesség viszont nem függ lényegében a választott replikálási protokolltól.

4. lépés. Erőforrás hozzáadása

Az erőforrás (Resource) egy gyűjtőfogalom, amely a konkrét replikált adathalmazon belüli összes aspektusra utal. Az erőforrást a /etc/drbd.d/test.res.

fájlban határozzuk meg, és a következőket adja hozzá mindkét nódon (ne felejtse el a változókat a környezetének megfelelően aktualizálni).

Figyeljen a hosztnevekre, meg kell adni a hálózati hosztnevet, amelyet az uname parancs segítségével kaphatunk. -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;
        }
}
}

ahol:

  • hosztnév alapján: az on részhez tartozik, amely a konfigurációs állítást tartalmazza.
  • teszt: ez az új erőforrás neve.
  • device /dev/drbd0: az új virtuális blokkeszköz, amelyet a DRBD kezel, megadására szolgál.
  • disk /dev/sdb1: ez a blokkeszköz partíció, amely a DRBD eszköz tartalék eszköze.
  • meta-disk: megadja, hogy a DRBD hol tárolja a metaadatokat. Az internal azt jelenti, hogy a DRBD a metaadatokat ugyanazon a fizikai alacsony szintű eszközön tárolja, mint a tényleges adatokat a termelés során.
  • address: megadja a megfelelő csomópont IP-címét és portszámát.

Ne feledje, hogy ha mindkét hoszton az értékek azonosak, akkor azokat közvetlenül az erőforrás szakaszban adhatja meg.

Például a fenti konfiguráció átszerkeszthető így:

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;
        		}
}

5. lépés: Az erőforrás inicializálása és elindítása

A DRBD-vel való interakcióhoz a következő adminisztrációs eszközöket fogjuk használni (amelyek interakcióba lépnek a kernelmodullal az erőforrások DRBD-beállításához és adminisztrálásához):

  • drbdadm: a DRBD magas szintű adminisztrációs eszköze.
  • drbdsetup: alacsony szintű adminisztrációs eszköz a DRBD eszközök csatlakoztatására a tartalék eszközeikhez, a DRBD eszközpárok beállítására a tartalék eszközeik tükrözésére és a működő DRBD eszközök konfigurációjának ellenőrzésére.
  • Drbdmeta: a metaadatok kezelésére szolgáló eszköz.

Miután hozzáadtuk az összes kezdeti erőforrás-beállítást, mindkét csomóponton el kell indítanunk az erőforrást.

# drbdadm create-md test

DRBD konfigurálása tároló replikálására két CentOS 7 szerveren
A metaadat-tároló inicializálása

Ezután el kell indítanunk, ami csatlakoztatja az erőforrást a tartalék eszközéhez, majd beállítja a replikációs paramétereket, és csatlakoztatja az erőforrást a peerjéhez:

# drbdadm up test

Most, ha futtatja a parancsot lsblk, észre fogja venni, hogy a DRBD eszköz/partíció drbd0 összekapcsolódott a tartalék eszközzel. /dev/sdb1:

# lsblk

DRBD konfigurálása tároló replikálására két CentOS 7 szerveren
Blokkeszközök listája

A forrás kikapcsolásához indítsa el:

# drbdadm down test

A forrás állapotának ellenőrzéséhez futtassa a következő parancsot (vegye figyelembe, hogy ezen a ponton a lemezek állapotát várjuk) Inkonzisztens/Inkonzisztens):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status

DRBD konfigurálása tároló replikálására két CentOS 7 szerveren
A forrás állapotának ellenőrzése az
állapotok

6. lépés: Az alapértelmezett forrás/szinkronizálási forrás beállítása az eszközök kezdeti szinkronizálásához

Ezen a ponton a DRBD már készen áll a működésre. Most meg kell határoznunk, hogy melyik csomópontot kell használni az eszközök kezdeti szinkronizálásának forrásaként.

Futtassa a következő parancsot csak egy csomóponton, hogy megkezdje a kezdeti teljes szinkronizálást:

# drbdadm primary --force test
# drbdadm status test

DRBD konfigurálása tároló replikálására két CentOS 7 szerveren
A fő csomópont beállítása kezdeti eszközként
A szinkronizálás befejezése után mindkét lemez állapotának UpToDate-nak kell lennie.

7. lépés: A DRBD beállítás tesztelése

Végül ellenőriznünk kell, hogy a DRBD eszköz úgy működik-e, ahogyan a replikált adatok tárolásához szükséges. Ne feledje, hogy üres lemezt használtunk, ezért fájlrendszert kell létrehoznunk az eszközön és csatlakoztatnunk kell, hogy ellenőrizzük, használni tudjuk-e az adatok tárolására.

Fájlrendszert kell létrehoznunk az eszközön a következő parancs segítségével azon a csomóponton, ahonnan a kezdeti teljes szinkronizálást kezdtük (ahol a fő szereppel rendelkező forrás található):

# mkfs -t ext4 /dev/drbd0

DRBD konfigurálása tároló replikálására két CentOS 7 szerveren
Fájlrendszer létrehozása a Drbd kötetén

Ezután csatlakoztassa az eszközt a következő módon (a csatlakozási ponthoz megfelelő nevet adhat):

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

Most másoljon vagy hozzon létre fájlokat a fent megadott csatlakozási ponton, és készítsen hosszú listát a ls parancs segítségével:

# cd /mnt/DRDB_PRI/
# ls -l 

DRBD konfigurálása tároló replikálására két CentOS 7 szerveren
A fő Drbd kötet tartalmának listázása

Ezután távolítsa el az eszközt (győződjön meg arról, hogy a csatlakozás nincs megnyitva, változtassa meg a könyvtárt a leválasztás után, hogy elkerülje a hibákat) és változtassa meg a csomópont szerepét elsődlegesről másodlagosra:

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

A másik csomópontot (ahol a másodlagos szereppel rendelkező forrás található) tegye elsődlegessé, majd csatlakoztassa az eszközt és hajtson végre hosszú listát a csatlakozási pontokról. Ha a beállítás jól működik, az összes fájl, amely a köteten található, ott kell legyen:

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

DRBD konfigurálása tároló replikálására két CentOS 7 szerveren
A DRBD beállítás ellenőrzése, amely a másodlagos csomóponton működik.

További információkért keresse fel az adminisztratív eszközök súgó oldalait:

# man drbdadm
# man drbdsetup
# man drbdmeta

Súgó: DRBD felhasználói útmutató.

Összefoglaló

A DRBD rendkívül rugalmas és sokoldalú, így megfelelő megoldást kínál a tárolás replikációjára, amely szinte bármely alkalmazáshoz hozzáadja a HA-t. Ebben a cikkben bemutattuk, hogyan lehet telepíteni a DRBD-t CentOS 7-re, és röviden ismertettük, hogyan használjuk tárolás replikációjára. Kérjük, ossza meg velünk véleményét az alábbi visszajelzési űrlapon.

További információ a tanfolyamról.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster