Kuinka asentaa DRBD kopioimaan tallennustilaa kahdelle CentOS 7 -palvelimelle


DRBD (lyhenne sanoista Distributed Replicated Block Device) on hajautettu, joustava ja monipuolinen monistettu tallennusratkaisu Linuxille. Se heijastaa palvelinlaitteiden, kuten kiintolevyjen, osioiden, loogisten asemien jne., Sisältöä. Siihen sisältyy kopio kahdesta tallennuslaitteesta olevasta datasta siten, että jos toinen epäonnistuu, toisen dataa voidaan käyttää.

Voit ajatella sitä jonkin verran kuin verkon RAID 1 -kokoonpano, jossa levyt peilataan palvelimien yli. Se toimii kuitenkin hyvin eri tavalla kuin RAID ja jopa verkon RAID.

Alun perin DRBD: tä käytettiin pääasiassa korkean käytettävyyden (HA) tietokoneryhmissä, mutta versiosta 9 alkaen sitä voidaan kuitenkin käyttää pilvitallennusratkaisujen käyttöönottoon.

Tässä artikkelissa näytetään, kuinka DRBD asennetaan CentOS: iin, ja osoitamme lyhyesti, kuinka sitä voidaan käyttää kopioimaan tallennustila (osio) kahdelle palvelimelle. Tämä on täydellinen artikkeli DRBD: n käytön aloittamiseen Linuxissa.

Tätä artikkelia varten käytämme tässä asetuksessa kahta solmujoukkoa.

  • Solmu1: 192.168.56.101 - tecmint.tecmint.lan
  • Solmu2: 192.168.56.102 - server1.tecmint.lan

Vaihe 1: DRBD-pakettien asentaminen

DRBD on toteutettu Linux-ytimen moduulina. Se on tarkalleen ohjain virtuaaliselle estolaitteelle, joten se on perustettu aivan järjestelmän I/O-pinon pohjalle.

DRBD voidaan asentaa ELRepo- tai EPEL-arkistoista. Aloitetaan tuomalla ELRepo-paketin allekirjoitusavain ja ottamalla käyttöön arkisto molempien solmujen osoittamalla tavalla.

# 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 voimme asentaa DRBD-ytimen moduulin ja apuohjelmat molempiin solmuihin suorittamalla:

# yum install -y kmod-drbd84 drbd84-utils

Jos SELinux on käytössä, sinun on muutettava käytäntöjä vapauttamaan DRBD-prosessit SELinux-ohjauksesta.

# semanage permissive -a drbd_t

Lisäksi, jos järjestelmässäsi on palomuuri käytössä (palomuuri), sinun on lisättävä DRBD-portti 7789 palomuuriin, jotta tiedot voidaan synkronoida kahden solmun välillä.

Suorita nämä komennot ensimmäisessä solmussa:

# 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 toisessa solmussa:

# 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: Alemman tason tallennustilan valmistelu

Nyt kun DRBD on asennettu kahteen klusterisolmuun, meidän on valmisteltava karkeasti saman kokoinen tallennustila molemmille solmuille. Tämä voi olla kiintolevyosio (tai koko fyysinen kiintolevy), ohjelmisto-RAID-laite, LVM-looginen taltio tai jokin muu järjestelmällesi löydetty laitetyyppi.

Tätä artikkelia varten luomme 2 gigatavun nuken estolaitteen dd-komennolla.

 
# 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 kiinnitetty molempiin solmuihin.

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

DRBD: n päämääritystiedosto sijaitsee osoitteessa /etc/drbd.conf, ja lisäasetustiedostot löytyvät hakemistosta /etc/drbd.d.

Tallennuksen kopioimiseksi meidän on lisättävä tarvittavat kokoonpanot tiedostoon /etc/drbd.d/global_common.conf, joka sisältää DRBD-kokoonpanon yleiset ja yleiset osat, ja voimme määrittää resursseja .res-tiedostoissa.

Tehdään varmuuskopio alkuperäisestä tiedostosta molempiin solmuihin ja avataan sitten uusi tiedosto muokkausta varten (käytä mieltymystesi mukaista 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 editori.

Varjostetaan hetkeksi enemmän valoa linjaprotokolla C.

  • protokolla A: Asynkroninen replikointiprotokolla; sitä käytetään useimmiten pitkän matkan replikointiskenaarioissa.
  • protokolla B: Puolisynkroninen replikointiprotokolla eli synkroninen muistiprotokolla.
  • protokolla C: käytetään yleisesti solmuissa lyhyissä etäisissä verkoissa; se on ylivoimaisesti yleisimmin käytetty replikointiprotokolla DRBD-asetuksissa.

Tärkeää: Replikointiprotokollan valinta vaikuttaa käyttöönoton kahteen tekijään: suojaukseen ja viiveeseen. Ja suorituskyky sitä vastoin on suurelta osin riippumaton valitusta replikointiprotokollasta.

Vaihe 4: Resurssin lisääminen

Resurssi on yhteinen termi, joka viittaa tietyn replikoidun tietojoukon kaikkiin näkökohtiin. Määritämme resurssimme tiedostossa nimeltä /etc/drbd.d/test.res.

Lisää seuraava sisältö tiedostoon molemmissa solmuissa (muista korvata sisällön muuttujat ympäristön todellisilla arvoilla).

Ota huomioon isäntänimet, meidän on määritettävä verkon isäntänimi, joka voidaan saada suorittamalla komento 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;
        }
}
}

missä:

  • isäntänimessä: on-osiossa ilmoitetaan, mihin isännöi oheiset määrityslausekkeet.
  • testi: on uuden resurssin nimi.
  • device/dev/drbd0: määrittää DRBD: n hallinnoiman uuden virtuaalilohkolaitteen.
  • disk/dev/sdb1: on lohkolaiteosio, joka on DRBD-laitteen taustalaite.
  • metalevy: Määrittää, mihin DRBD tallentaa metatietonsa. Sisäisen käyttö tarkoittaa, että DRBD tallentaa metatietonsa samaan fyysiseen alemman tason laitteeseen kuin varsinainen tuotantotieto.
  • osoite: määrittää vastaavan solmun IP-osoitteen ja portin numeron.

Huomaa myös, että jos vaihtoehdoilla on samat arvot molemmissa koneissa, voit määrittää ne suoraan resurssiosassa.

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

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: Resurssien alustaminen ja käyttöönotto

Vuorovaikutuksessa DRBD: n kanssa käytämme seuraavia hallintatyökaluja, jotka kommunikoivat ytimoduulin kanssa DRBD-resurssien määrittämiseksi ja hallinnoimiseksi:

  • drbdadm: DRBD: n korkean tason hallintatyökalu.
  • drbdsetup: alemman tason hallintatyökalu DRBD-laitteiden kiinnittämiseen taustalohkolaitteisiin, DRBD-laiteparien asettamiseen taustalohkolaitteidensa peittämiseksi ja käynnissä olevien DRBD-laitteiden kokoonpanon tarkastamiseksi.
  • Drbdmeta: on metatiedonhallintatyökalu.

Kun olet lisännyt kaikki alkuperäiset resurssikokoonpanot, meidän on tuotava resurssi molempiin solmuihin.

# drbdadm create-md test

Seuraavaksi meidän tulisi ottaa käyttöön resurssi, joka kiinnittää resurssin tukilaitteellaan, asettaa sitten replikointiparametrit ja yhdistää resurssin vertaisiinsa:

# drbdadm up test

Nyt kun suoritat komennon lsblk, huomaat, että DRBD-laite/-taltio drbd0 liittyy taustalaitteeseen/dev/sdb1:

# lsblk

Poista resurssi käytöstä suorittamalla:

# drbdadm down test

Voit tarkistaa resurssin tilan suorittamalla seuraavan komennon (huomaa, että tässä vaiheessa odotetaan olevan epäjohdonmukainen/epäjohdonmukainen levytila):

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

Vaihe 6: Määritä ensisijainen resurssi/alkuperäisen laitteen synkronoinnin lähde

Tässä vaiheessa DRBD on nyt käyttövalmis. Meidän on nyt kerrottava sille, mitä solmua tulisi käyttää laitteen alkuperäisen synkronoinnin lähteenä.

Suorita seuraava komento vain yhdessä solmussa aloittaaksesi ensimmäisen täyden synkronoinnin:

# drbdadm primary --force test
# drbdadm status test

Kun synkronointi on valmis, molempien levyjen tilan tulisi olla UpToDate.

Vaihe 7: DRBD-asennuksen testaus

Lopuksi meidän on testattava, toimiiko DRBD-laite hyvin replikoitujen tietojen tallentamiseen. Muista, että käytimme tyhjää levytilavuutta, joten meidän on luotava laitteeseen tiedostojärjestelmä ja asennettava se testaamaan, voimmeko käyttää sitä replikoituun datan tallentamiseen.

Voimme luoda tiedostojärjestelmän laitteelle seuraavalla komennolla, solmussa, josta aloitimme ensimmäisen täyden synkronoinnin (jolla on resurssi ensisijaisella roolilla):

# mkfs -t ext4 /dev/drbd0 

Asenna sitten se kuvan osoittamalla tavalla (voit antaa kiinnityspisteelle oikean nimen):

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

Kopioi tai luo nyt joitain tiedostoja yllä olevaan kiinnityskohtaan ja tee pitkä luettelo ls-komennolla:

# cd /mnt/DRDB_PRI/
# ls -l 

Seuraavaksi irrota laite (varmista, että kiinnitys ei ole auki, vaihda hakemistoa purkamisen 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 toissijaisella roolilla) ensisijainen, asenna sitten laite siihen ja suorita pitkä luettelo kiinnityskohdasta. Jos asennus toimii hyvin, kaikkien levylle tallennettujen tiedostojen tulisi olla siellä:

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

Lisätietoja on käyttäjätilan hallintatyökalujen man-sivuilla:

# man drbdadm
# man drbdsetup
# man drbdmeta

Viite: DRBD: n käyttöopas.

DRBD on erittäin joustava ja monipuolinen, mikä tekee siitä tallennuksen replikointiratkaisun, joka soveltuu HA: n lisäämiseen melkein mihin tahansa sovellukseen. Tässä artikkelissa olemme osoittaneet, kuinka DRBD asennetaan CentOS 7: een, ja osoitimme lyhyesti, miten sitä käytetään kopioimaan tallennustilaa. Voit vapaasti jakaa ajatuksiasi kanssamme alla olevan palautelomakkeen kautta.