A cikk fordítása a kurzus megkezdése előtt készült .
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ó 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.rpmEzutá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-utilsHa 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 --reloadEzutá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 --reload2. 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, 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=1024Tegyü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 
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 , észre fogja venni, hogy a DRBD eszköz/partíció drbd0 összekapcsolódott a tartalék eszközzel. /dev/sdb1:
# lsblk 
Blokkeszközök listája
A forrás kikapcsolásához indítsa el:
# drbdadm down testA 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 
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 
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 
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 :
# cd /mnt/DRDB_PRI/
# ls -l 
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 testA 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 
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 drbdmetaSúgó: .
Ö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.
Forrás: habr.com
