Artikkelin käännös valmistettiin kurssin alkamisen aattona
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
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,
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
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 /dev/sdb1
:
# lsblk
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
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
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
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
# cd /mnt/DRDB_PRI/
# ls -l
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
Toissijaisessa solmussa käynnissä olevan DRBD-asennuksen tarkistaminen.
Lisätietoja on hallintatyökalujen ohjesivuilla:
# man drbdadm
# man drbdsetup
# man drbdmeta
Ohje:
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.
Lähde: will.com