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.