Weboldal keresés

A DRBD beállítása a tárhely replikálására két CentOS 7 kiszolgálón


A DRBD (az Distributed Replicated Block Device rövidítése) egy elosztott, rugalmas és sokoldalú replikált tárolási megoldás Linuxhoz. A szerverek között tükrözi a blokkeszközök, például merevlemezek, partíciók, logikai kötetek stb. tartalmát. Ez magában foglalja az adatok másolatát két tárolóeszközön, így ha az egyik meghibásodik, a másikon lévő adatok használhatók.

Valahogy úgy képzelheti el, mint egy hálózati RAID 1 konfigurációt, amelyben a lemezek tükröződnek a szervereken. Ez azonban egészen más módon működik, mint a RAID, sőt a hálózati RAID.

Eredetileg a DRBD-t főleg magas rendelkezésre állású (HA) számítógép-fürtökben használták, azonban a 9-es verziótól kezdve felhőalapú tárolási megoldások telepítésére is használható.

Ebben a cikkben bemutatjuk, hogyan kell telepíteni a DRBD-t a CentOS rendszerbe, és röviden bemutatjuk, hogyan használható a tárolás (partíció) replikálására két szerveren. Ez a tökéletes cikk a DRBD Linux rendszerben való használatának megkezdéséhez.

Tesztkörnyezet

Ebben a cikkben két csomópont-fürtöt használunk ehhez a beállításhoz.

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

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

A DRBD Linux kernelmodulként van megvalósítva. Pontosan egy virtuális blokkeszköz illesztőprogramját képezi, így közvetlenül a rendszer I/O veremének alján található.

A DRBD telepíthető az ELRepo vagy az EPEL tárolókból. Kezdjük az ELRepo csomagaláíró kulcs importálásával, és engedélyezzük a lerakat, ahogy az mindkét csomóponton 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 mindkét csomópontra telepíthetjük a DRBD kernelmodult és segédprogramokat a következő futtatással:

yum install -y kmod-drbd84 drbd84-utils

Ha engedélyezve van a SELinux, módosítania kell a házirendeket, hogy mentesítse a DRBD-folyamatokat a SELinux-vezérlés alól.

semanage permissive -a drbd_t

Ezenkívül, ha a rendszeren engedélyezve van a tűzfal (tűzfal), hozzá kell adnia a DRBD portot, a 7789t a tűzfalban, hogy lehetővé tegye az adatok szinkronizálását 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: Az alsó szintű tárolás előkészítése

Most, hogy a két fürtcsomópontra telepítettük a DRBD-t, mindkét csomóponton nagyjából azonos méretű tárolóterületet kell készítenünk. Ez lehet merevlemez-partíció (vagy teljes fizikai merevlemez), szoftveres RAID-eszköz, LVM logikai kötet vagy bármely más, a rendszeren található blokkeszköz-típus.

E cikk céljaira a dd paranccsal létrehozunk egy 2 GB méretű álblokkos eszközt.

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

Feltételezzük, hogy ez egy nem használt partíció (/dev/sdb1) egy második blokkeszközön (/dev/sdb), amely mindkét csomóponthoz kapcsolódik.

3. lépés: A DRBD konfigurálása

A DRBD fő konfigurációs fájlja az /etc/drbd.conf címen található, további konfigurációs fájlok pedig az /etc/drbd.d könyvtárban találhatók.

A tárhely replikálásához hozzá kell adnunk a szükséges konfigurációkat a /etc/drbd.d/global_common.conf fájlhoz, amely tartalmazza a DRBD-konfiguráció globális és általános szakaszait, és az erőforrásokat a fájlban határozhatjuk meg. >.res fájlokat.

Készítsünk biztonsági másolatot az eredeti fájlról mindkét csomóponton, majd nyissunk meg egy új fájlt szerkesztésre (használjunk egy 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á a következő sorokat mindkét fájlhoz:

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

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

Röviden árnyékoljunk több fényt a C protokoll vonalon. A DRBD három különböző replikációs módot támogat (tehát a replikációs szinkronitás három fokát), amelyek a következők:

  • A protokoll: Aszinkron replikációs protokoll; leggyakrabban nagy távolságú replikációs forgatókönyvekben használják.
  • B protokoll: Félszinkron replikációs protokoll, más néven memória szinkron protokoll.
  • C protokoll: általánosan használt rövid távolságú hálózatok csomópontjaihoz; messze ez a leggyakrabban használt replikációs protokoll a DRBD-beállításokban.

Fontos: A replikációs protokoll kiválasztása a telepítés két tényezőjét befolyásolja: a védelem és a késleltetés. Ezzel szemben az áteresztőképesség nagymértékben független a kiválasztott replikációs protokolltól.

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

Az erőforrás az a gyűjtőfogalom, amely egy adott replikált adatkészlet minden aspektusára utal. Erőforrásunkat egy /etc/drbd.d/test.res nevű fájlban határozzuk meg.

Adja hozzá a következő tartalmat a fájlhoz mindkét csomóponton (ne felejtse el lecserélni a tartalom változóit a környezet tényleges értékeire).

Vegye figyelembe a gazdaneveket, meg kell adnunk a hálózati gazdagép nevét, amelyet az uname -n parancs futtatásával kaphat meg.

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 :

  • on hostname: azok az on szakasz állapotok, amelyekre a mellékelt konfigurációs utasítások vonatkoznak.
  • teszt: az új erőforrás neve.
  • eszköz /dev/drbd0: a DRBD által kezelt új virtuális blokkeszközt határozza meg.
  • lemez /dev/sdb1: a blokkeszköz-partíció, amely a DRBD-eszköz háttéreszköze.
  • meta-lemez: Meghatározza, hogy a DRBD hol tárolja a metaadatait. A belső használata azt jelenti, hogy a DRBD metaadatait ugyanazon a fizikai alsóbb szintű eszközön tárolja, mint a tényleges termelési adatokat.
  • cím: a megfelelő csomópont IP-címét és portszámát adja meg.

Vegye figyelembe azt is, hogy ha a beállítások mindkét gazdagépen azonos értékűek, akkor közvetlenül az erőforrás szakaszban adhatja meg őket.

Például a fenti konfiguráció átstrukturálható a következőre:

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 engedélyezése

A DRBD használatához a következő adminisztrációs eszközöket fogjuk használni, amelyek a kernelmodullal kommunikálnak a DRBD-erőforrások konfigurálásához és adminisztrálásához:

  • drbdadm: a DRBD magas szintű adminisztrációs eszköze.
  • drbdsetup: alacsonyabb szintű adminisztrációs eszköz a DRBD-eszközök és a háttérblokk-eszközök csatlakoztatásához, a DRBD-eszközpárok beállításához a háttérblokk-eszközök tükrözéséhez, valamint a futó DRBD-eszközök konfigurációjának ellenőrzéséhez.
  • Drbdmeta: a metaadat-kezelő eszköz.

Az összes kezdeti erőforrás-konfiguráció hozzáadása után elő kell hoznunk az erőforrást mindkét csomóponton.

drbdadm create-md test

Ezután engedélyeznünk kell az erőforrást, amely csatolja az erőforrást a háttéreszközével, majd beállítja a replikációs paramétereket, és összekapcsolja az erőforrást a társával:

drbdadm up test

Ha most futtatja az lsblk parancsot, észre fogja venni, hogy a drbd0 DRBD-eszköz/kötet a /dev/sdb1 háttéreszközhöz van társítva:

lsblk

Az erőforrás letiltásához futtassa:

drbdadm down test

Az erőforrás állapotának ellenőrzéséhez futtassa a következő parancsot (vegye figyelembe, hogy az Inkonzisztens/Inkonzisztens lemezállapot ezen a ponton várható):

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

6. lépés: Állítsa be a kezdeti eszközszinkronizálás elsődleges erőforrását/forrását

Ebben a szakaszban a DRBD készen áll a működésre. Most meg kell mondanunk, hogy melyik csomópontot kell használni a kezdeti eszközszinkronizálás forrásaként.

Futtassa a következő parancsot csak egy csomóponton a kezdeti teljes szinkronizálás elindításához:

drbdadm primary --force test
drbdadm status test

A szinkronizálás befejezése után mindkét lemez állapota UpToDate legyen.

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

Végül tesztelnünk kell, hogy a DRBD-eszköz jól működik-e replikált adattároláshoz. Ne feledje, hogy üres lemezkötetet használtunk, ezért létre kell hoznunk egy fájlrendszert az eszközön, és fel kell csatolni, hogy teszteljük, használható-e replikált adattárolásra.

Fájlrendszert hozhatunk létre az eszközön a következő paranccsal, azon a csomóponton, ahol a kezdeti teljes szinkronizálást elindítottuk (amelynek az elsődleges szerepe van):

mkfs -t ext4 /dev/drbd0 

Ezután rögzítse a képen látható módon (adhat megfelelő nevet a beillesztési pontnak):

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

Most másoljon vagy hozzon létre néhány fájlt a fenti csatolási pontban, és készítsen egy hosszú listát az ls paranccsal:

cd /mnt/DRDB_PRI/
ls -l 

Ezután csatlakoztassa le az eszközt (bizonyosodjon meg arról, hogy a csatlakoztatás nincs nyitva, a leválasztás után váltson könyvtárat a hibák elkerülése érdekében), és módosítsa a csomópont szerepét elsődleges-ről <-ra.másodlagos:

umount /mnt/DRDB_PRI/
cd
drbdadm secondary test

A másik csomóponton (amelynek másodlagos szerepe van az erőforrásnak) tegye azt elsődlegesnek, majd csatlakoztassa rá az eszközt, és végezze el a beillesztési pont hosszú felsorolását. Ha a beállítás jól működik, a kötetben tárolt összes fájlnak ott kell lennie:

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

További információkért tekintse meg a felhasználói terület adminisztrációs eszközeinek kézikönyvoldalait:

man drbdadm
man drbdsetup
man drbdmeta
Összegzés

A DRBD rendkívül rugalmas és sokoldalú, így tárolóreplikációs megoldássá teszi, amely alkalmas HA hozzáadására szinte bármilyen alkalmazáshoz. Ebben a cikkben bemutattuk, hogyan kell telepíteni a DRBD-t a CentOS 7 rendszerben, és röviden bemutattuk, hogyan használható a tárhely replikálására. Nyugodtan ossza meg velünk gondolatait az alábbi visszajelzési űrlapon keresztül.