DRBD:n määrittäminen tallennusreplikointia varten kahdella CentOS 7 -palvelimella

Artikkelin käännös valmistettiin kurssin alkamisen aattona "Linux-järjestelmänvalvoja. Virtualisointi ja klusterointi".

DRBD (Distributed Replicated Block Device) on hajautettu, joustava ja yleisesti toistettavissa oleva tallennusratkaisu Linuxille. Se heijastaa lohkolaitteiden sisältöä, kuten kiintolevyt, osiot, loogiset asemat jne. palvelimien välillä. Se luo kopiot tiedoista kahdelle tallennuslaitteelle, jotta jos toinen niistä epäonnistuu, toisen tietoja voidaan käyttää.

Voisi sanoa, että se on jotain sellaista verkon RAID-kokoonpano 1 levyillä, jotka on yhdistetty eri palvelimille. Se toimii kuitenkin täysin eri tavalla kuin RAID (jopa verkko-RAID).

Alun perin DRBD:tä käytettiin pääasiassa korkean käytettävyyden (HA) tietokoneklustereissa, mutta versiosta XNUMX alkaen sitä voidaan käyttää pilvitallennusratkaisujen käyttöönotossa.

Tässä artikkelissa selitämme, kuinka DRBD asennetaan CentOS:ään, ja osoitamme lyhyesti, kuinka sitä käytetään tallennustilan (osion) replikoimiseen kahden palvelimen välillä. Tämä on täydellinen artikkeli DRBD:n aloittamiseen Linuxissa.

Testiympäristössä

Käytämme tässä asennuksessa kahden solmun klusteria.

  • Solmu 1: 192.168.56.101 – tecmint.tecmint.lan
  • Solmu 2: 192.168.56.102 – server1.tecmint.lan

Vaihe 1: Asenna DRBD-paketit

DRBD on toteutettu Linux-ydinmoduulina. Se on virtuaalilohkolaitteen ohjain, joten se sijaitsee järjestelmän I/O-pinon alaosassa.

DRBD voidaan asentaa ELReposta tai EPEL:stä. Aloitetaan tuomalla ELRepo-paketin allekirjoitusavain ja yhdistämällä arkisto molemmissa solmuissa alla olevan kuvan mukaisesti.

# 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

Sitten sinun on asennettava DRBD-ydinmoduuli ja apuohjelmat molempiin solmuihin käyttämällä:

# yum install -y kmod-drbd84 drbd84-utils

Jos SELinux on käytössä, sinun on määritettävä käytännöt vapauttamaan DRBD-prosessit SELinux-ohjauksesta.

# semanage permissive -a drbd_t

Lisäksi, jos järjestelmässäsi on palomuuri (palomuuri), sinun on lisättävä DRBD-portti 7789 tietojen synkronoinnin mahdollistamiseksi kahden solmun välillä.

Suorita nämä komennot ensimmäiselle solmulle:

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

Suorita sitten nämä komennot toiselle solmulle:

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

Vaihe 2: Valmistele matalatasoinen tallennustila

Nyt kun DRBD on asennettu molempiin klusterin solmuihin, meidän on varattava niille suunnilleen samankokoisia tallennusalueita. Tämä voi olla kiintolevyosio (tai kokonainen fyysinen kiintolevy), ohjelmisto-RAID-laite, LVM looginen tilavuus tai mikä tahansa muu järjestelmästäsi löytyvä estolaite.

Tätä artikkelia varten luomme 2 Gt:n testilohkolaitteen käyttämällä dd-komentoa.

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

Oletetaan, että tämä on käyttämätön osio (/dev/sdb1) toisessa lohkolaitteessa (/dev/sdb), joka on yhdistetty molempiin solmuihin.

Vaihe 3. DRBD:n määrittäminen

DRBD:n pääasetustiedosto − /etc/drbd.conf, ja muita asetustiedostoja löytyy hakemistosta /etc/drbd.d.

Tallennustilan replikointia varten meidän on lisättävä tiedostoon tarvittavat asetukset /etc/drbd.d/global_common.conf, joka sisältää DRBD-kokoonpanon yleiset ja yleiset osat, ja meidän on määritettävä resurssit .res tiedostot.

Tehdään varmuuskopio alkuperäisestä tiedostosta molemmissa solmuissa ja avataan sitten uusi tiedosto muokkausta varten (käytä valitsemaasi tekstieditoria).

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

Lisää seuraavat rivit molempiin tiedostoihin:

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

Tallenna tiedosto ja sulje sitten editori.

Katsotaanpa hetki protokollan C riviä. DRBD tukee kolmea erilaista replikointitilaa (eli kolmea replikointisynkronian astetta), nimittäin:

  • protokolla A: asynkroninen replikointiprotokolla; käytetään useimmiten pitkän matkan replikointiskenaarioissa.
  • protokolla B: Puolisynkroninen replikointiprotokolla tai synkroninen muistiprotokolla.
  • protokolla C: käytetään yleensä solmuihin verkoissa, joilla on lyhyitä etäisyyksiä; tämä on ylivoimaisesti yleisimmin käytetty replikointiprotokolla DRBD-asetuksissa.

On tärkeää: Replikointiprotokollan valinta vaikuttaa kahteen käyttöönottotekijään: tietoturvaan ja latenssiin. Sitä vastoin suorituskyky ei riipu merkittävästi valitusta replikointiprotokollasta.

Vaihe 4: Lisää resurssi

Resurssi on kattotermi, joka viittaa tietyn replikoidun tietojoukon kaikkiin aspekteihin. Määrittelemme resurssimme tiedostossa /etc/drbd.d/test.res.

Lisää seuraava molempien solmujen tiedostoon (muista korvata muuttujat ympäristösi todellisilla arvoilla).

Kiinnitä huomiota isäntänimiin, meidän on määritettävä verkon isäntänimi, joka saadaan komennolla uname -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;
        }
}
}

jos:

  • isäntänimellä: On-osio, jota sisäkkäinen määrityskäsky koskee.
  • testi: Tämä on uuden resurssin nimi.
  • laite /dev/drbd0: Ilmaisee uuden virtuaalisen lohkolaitteen, jota DRBD hallitsee.
  • levy /dev/sdb1: Tämä on lohkolaiteosio, joka on DRBD-laitteen varmuuskopiointilaite.
  • meta-levy: Määrittää, mihin DRBD tallentaa metatietonsa. Sisäinen tarkoittaa, että DRBD tallentaa metatietonsa samaan fyysiseen matalan tason laitteeseen kuin varsinaiset tiedot tuotannossa.
  • osoite: Ilmaisee vastaavan solmun IP-osoitteen ja portin numeron.

Huomaa myös, että jos parametreilla on samat arvot molemmissa isännissä, voit määrittää ne suoraan resurssit-osiossa.

Esimerkiksi yllä oleva kokoonpano voidaan järjestää uudelleen seuraavasti:

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

Vaihe 5. Alusta ja käynnistä resurssi

Vuorovaikutuksessa DRBD:n kanssa käytämme seuraavia hallintatyökaluja (jotka ovat vuorovaikutuksessa ydinmoduulin kanssa DRBD-resurssien määrittämiseen ja hallintaan):

  • drbdadm: DRBD korkean tason hallintatyökalu.
  • drbdsetup: Alemman tason hallintatyökalu DRBD-laitteiden yhdistämiseen varmuuskopiolaitteisiin, DRBD-laitteiden parien määrittämiseen varmuuskopiointilaitteidensa mukaan ja käynnissä olevien DRBD-laitteiden kokoonpanon tarkistamiseen.
  • Drbdmeta: Metatietojen hallintatyökalu.

Kun kaikki alkuperäiset resurssimääritykset on lisätty, meidän on kutsuttava resurssi molemmissa solmuissa.

# drbdadm create-md test

DRBD:n määrittäminen tallennusreplikointia varten kahdella CentOS 7 -palvelimella
Metatietovaraston alustus

Seuraavaksi meidän on suoritettava se, joka yhdistää resurssin sen varmuuskopiolaitteeseen, asettaa sitten replikointiparametrit ja yhdistää resurssin vertaiseen:

# drbdadm up test

Jos nyt suoritat komennon lsblk, huomaat, että DRBD-laite/volume drbd0 on liitetty varmuuskopiolaitteeseen /dev/sdb1:

# lsblk

DRBD:n määrittäminen tallennusreplikointia varten kahdella CentOS 7 -palvelimella
Luettelo lohkolaitteista

Voit poistaa resurssin käytöstä suorittamalla:

# drbdadm down test

Tarkistaaksesi resurssin tilan suorittamalla seuraava komento (huomaa, että asemien tilaa odotetaan tässä vaiheessa Epäjohdonmukainen/epäjohdonmukainen):

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

DRBD:n määrittäminen tallennusreplikointia varten kahdella CentOS 7 -palvelimella
Käynnissä olevan resurssin tilan tarkistaminen
paha

Vaihe 6: Aseta ensisijainen resurssi/alkuperäinen laitteen synkronointilähde

Tässä vaiheessa DRBD on valmis menemään. Nyt meidän on määritettävä, mitä solmua tulee käyttää laitteen alkuperäisen synkronoinnin lähteenä.

Suorita seuraava komento vain yhdelle solmulle aloittaaksesi alkuperäinen täydellinen synkronointi:

# drbdadm primary --force test
# drbdadm status test

DRBD:n määrittäminen tallennusreplikointia varten kahdella CentOS 7 -palvelimella
Ensisijaisen solmun asettaminen alkuperäiseksi laitteeksi
Kun synkronointi on valmis, molempien asemien tilan tulee olla UpToDate.

Vaihe 7: DRBD-asetusten testaus

Lopuksi meidän on tarkistettava, toimiiko DRBD-laite tarpeen mukaan replikoitujen tietojen tallentamiseksi. Muista, että käytimme tyhjää levytilaa, joten meidän on luotava tiedostojärjestelmä laitteeseen ja liitettävä se tarkistaaksemme, voimmeko käyttää sitä replikoitujen tietojen tallentamiseen.

Meidän on luotava tiedostojärjestelmä laitteelle käyttämällä seuraavaa komentoa solmuun, josta aloitimme alkuperäisen täyden synkronoinnin (jolla on resurssi, jolla on ensisijainen rooli):

# mkfs -t ext4 /dev/drbd0

DRBD:n määrittäminen tallennusreplikointia varten kahdella CentOS 7 -palvelimella
Tiedostojärjestelmän luominen Drbd-taltiolle

Asenna se sitten kuvan mukaisesti (voit antaa asennuspisteelle sopivan nimen):

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

Kopioi tai luo nyt joitain tiedostoja yllä olevaan liitoskohtaan ja tee pitkä luettelo ls komennot:

# cd /mnt/DRDB_PRI/
# ls -l 

DRBD:n määrittäminen tallennusreplikointia varten kahdella CentOS 7 -palvelimella
Luettele pääasiallisen Drbd-taltion sisältö

Irrota seuraavaksi laite (varmista, että liitin ei ole auki, vaihda hakemistoa irrottamisen jälkeen virheiden välttämiseksi) ja vaihda solmun rooli ensisijaisesta toissijaiseksi:

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

Tee toisesta solmusta (jolla on resurssi, jolla on toissijainen rooli) ensisijainen, liitä sitten laite siihen ja anna pitkä luettelo liitoskohdista. Jos asennus toimii hyvin, kaikkien levylle tallennettujen tiedostojen pitäisi olla siellä:

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

DRBD:n määrittäminen tallennusreplikointia varten kahdella CentOS 7 -palvelimella
Toissijaisessa solmussa käynnissä olevan DRBD-asennuksen tarkistaminen.

Lisätietoja on hallintatyökalujen ohjesivuilla:

# man drbdadm
# man drbdsetup
# man drbdmeta

Ohje: DRBD käyttöopas.

Yhteenveto

DRBD on erittäin joustava ja monipuolinen, mikä tekee siitä tallennusreplikointiratkaisun, joka sopii HA:n lisäämiseen lähes kaikkiin sovelluksiin. Tässä artikkelissa osoitimme, kuinka DRBD asennetaan CentOS 7:ään, ja osoitimme lyhyesti, kuinka sitä käytetään tallennustilan replikointiin. Voit vapaasti jakaa ajatuksesi kanssamme alla olevalla palautelomakkeella.

Lue lisää kurssista.

Lähde: will.com

Lisää kommentti