De vertaling van het artikel is voorbereid ter voorbereiding op de start van de cursus .
DRBD (Distributed Replicated Block Device) is een flexibele en veelzijdige oplossing voor datareplicatie op Linux. Het spiegelt de inhoud van blokapparaten zoals harde schijven, partities, logische volumes, enz. tussen servers. Het maakt kopieƫn van gegevens op twee opslagapparaten, zodat in het geval van een storing gegevens op het tweede apparaat beschikbaar zijn.
Je kunt het beschouwen als een soort 1 met schijven die op verschillende servers worden gespiegeld. Het werkt echter helemaal niet zoals RAID (zelfs niet netwerk-RAID).
Aanvankelijk werd DRBD voornamelijk gebruikt in computerclusters voor hoge beschikbaarheid (HA ā high availability), maar sinds versie negen kan het ook worden ingezet voor de implementatie van cloudopslagoplossingen.
In dit artikel leggen we uit hoe je DRBD op CentOS installeert en tonen we kort hoe je het gebruikt voor opslagreplicatie (partitie) op twee servers. Dit is een ideaal artikel om aan de slag te gaan met DRBD in Linux.
Testomgeving
We gaan een cluster met twee knooppunten voor deze setup gebruiken.
- Knoop 1: 192.168.56.101 ā tecmint.tecmint.lan
- Knoop 2: 192.168.56.102 ā server1.tecmint.lan
Stap 1: DRBD-pakketten installeren
DRBD is geĆÆmplementeerd als een Linux-kernelmodule. Het is een stuurprogramma voor een virtueel blokapparaat, en daarom bevindt het zich onderaan de input-output stack van het systeem.
DRBD kan vanuit ELRepo of EPEL worden geĆÆnstalleerd. Laten we beginnen met het importeren van de pakketondertekeningssleutel van ELRepo en het toevoegen van de repository op beide knooppunten, zoals hieronder weergegeven.
# 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.rpmInstalleer vervolgens de DRBD-kernelmodule en hulpprogramma's op beide knooppunten met behulp van:
# yum install -y kmod-drbd84 drbd84-utilsAls je SELinux hebt ingeschakeld, moet je de beleidsregels configureren om DRBD-processen vrij te stellen van SELinux-controle.
# semanage permissive -a drbd_t
Bovendien, als er een firewall (firewalld) op je systeem draait, moet je poort DRBD 7789 toevoegen om gegevenssynchronisatie tussen de twee knooppunten toe te staan.
Voer deze commando's uit voor de eerste knoop:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reloadVoer vervolgens deze commando's uit voor de tweede knoop:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reloadStap 2. Voorbereiding van low-level opslag
Nu we DRBD op beide cluster-nodes hebben geĆÆnstalleerd, moeten we opslagruimtes voorbereiden van ongeveer dezelfde grootte. Dit kan een schijfpartitie zijn (of een hele fysieke schijf), een software RAID-apparaat, of een ander soort blokapparaat dat in uw systeem aanwezig is.
Voor dit artikel zullen we een test blokapparaat van 2 GB creƫren met de dd-commando.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024Laten we aannemen dat dit een ongebruikte partitie (/dev/sdb1) is op het tweede blokapparaat (/dev/sdb), aangesloten op beide nodes.
Stap 3. DRBD configureren
Het hoofdconfiguratiebestand van DRBD is /etc/drbd.conf, en aanvullende configuratiebestanden zijn te vinden in de map /etc/drbd.d.
Om de opslag te repliceren, moeten we de noodzakelijke configuraties in het bestand toevoegen /etc/drbd.d/global_common.conf, dat globale en gemeenschappelijke secties van de DRBD-configuratie bevat, terwijl we de middelen moeten definiƫren in .res -bestanden.
Laten we een back-up maken van het oorspronkelijke bestand op beide nodes en vervolgens een nieuw bestand openen voor bewerking (gebruik een teksteditor naar keuze).
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf Voeg de volgende regels aan beide bestanden toe:
global {
usage-count yes;
}
common {
net {
protocol C;
}
}Sla het bestand op en sluit vervolgens de editor.
Laten we even stilstaan bij de regel protocol C. DRBD ondersteunt drie verschillende replicatiemodi (d.w.z. drie niveaus van synchronisatie), namelijk:
- protocol A: asynchrone replicatieprotocol; wordt het vaakst gebruikt in replicatiescenario's over lange afstanden.
- protocol B: half-synchrone replicatieprotocol of synchrone geheugenprotocol.
- protocol C: meestal gebruikt voor nodes in netwerken met korte afstanden; dit is zonder twijfel het meest gebruikte replicatieprotocol in DRBD-configuraties.
Belangrijk: De keuze van het replicatieprotocol heeft invloed op twee implementatiefactoren: bescherming en vertraging. De bandbreedte hangt daarentegen niet sterk af van het gekozen replicatieprotocol.
Stap 4. Hulpbron toevoegen
Een resource (Hulpbron) is een verzamelterm die verwijst naar alle aspecten van een specifieke set van gerepliceerde gegevens. We zullen onze resource definiƫren in het bestand /etc/drbd.d/test.res.
Voeg het volgende toe aan het bestand op beide nodes (vergeet niet de variabelen te vervangen door de werkelijke waarden voor uw omgeving).
Let op de hostnamen, we moeten de netwerkomgeving van de host opgeven, die kan worden verkregen met de opdracht 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;
}
}
}waarbij:
- op hostname: sectie on, waar de geneste configuratie-instructie betrekking op heeft.
- test: dit is de naam van de nieuwe resource.
- device /dev/drbd0: geeft een nieuw virtueel blokapparaat aan dat door DRBD wordt beheerd.
- disk /dev/sdb1: dit is de partitie van het blokapparaat die een reserveapparaat is voor het DRBD-apparaat.
- meta-disk: definieert waar DRBD zijn metadata opslaat. Internal betekent dat DRBD zijn metadata opslaat op hetzelfde fysieke lage niveau-apparaat als de echte gegevens in productie.
- address: geeft het IP-adres en poortnummer van de overeenkomstige knooppunt aan.
Houd er ook rekening mee dat als beide hosts dezelfde waarden hebben, je deze direct in het resource-gedeelte kunt opgeven.
Bijvoorbeeld, de bovenstaande configuratie kan worden herstructureren in:
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;
}
}Stap 5. Initialisatie en opstarten van de resource
Voor interactie met DRBD gebruiken we de volgende beheertools (die communiceren met de kernmodule voor het configureren en beheren van DRBD-resources):
- drbdadm: een hoog-niveau administratie tool voor DRBD.
- drbdsetup: een laag-niveau administratie tool om DRBD-apparaten aan hun reserveapparaten te koppelen, het instellen van apparaatparen van DRBD voor spiegeling van hun reserveapparaten en het controleren van de configuratie van actieve DRBD-apparaten.
- Drbdmeta: een hulpmiddel voor het beheer van metadata.
Na het toevoegen van alle initiƫle configuraties van de resource moeten we de resource op beide knooppunten oproepen.
# drbdadm create-md test 
Initialisatie van de metadata-opslag
Vervolgens moeten we deze starten, wat de resource aan zijn reserveapparaat koppelt, daarna de replicatieparameters instelt en de resource aan zijn peer verbindt:
# drbdadm up test Nu, als je de opdracht uitvoert , zul je opmerken dat het DRBD apparaat/volume drbd0 is verbonden met het reserveapparaat /dev/sdb1:
# lsblk 
Lijst van blokapparaten
Om de resource uit te schakelen, voert u in:
# drbdadm down testOm de status van de resource te controleren, voert u de volgende opdracht uit (let op, op dit moment wordt de status van de schijven verwacht Inconsistent/Inconsistent):
# drbdadm status test
OR
# drbdsetup status test --verbose --statistics #for a more detailed status 
Controleer de status van de resource op de
schijven
Stap 6: Het instellen van de primaire resource/bron voor de initiƫle synchronisatie van apparaten
Op dit moment is DRBD al klaar voor gebruik. Nu moeten we aangeven welke node als bron voor de initiƫle synchronisatie van apparaten moet worden gebruikt.
Voer de volgende opdracht alleen op ƩƩn node uit om de initiƫle volledige synchronisatie te starten:
# drbdadm primary --force test
# drbdadm status test 
Stel de primaire node in als het initiƫle apparaat
Zodra de synchronisatie is voltooid, moet de status van beide schijven UpToDate zijn.
Stap 7: Testen van de DRBD-configuratie
Tot slot moeten we controleren of het DRBD-apparaat werkt zoals nodig voor het opslaan van de gerepliceerde gegevens. Vergeet niet dat we een lege schijfvolume hebben gebruikt, dus we moeten een bestandssysteem op het apparaat creƫren en het monteren om te controleren of we het kunnen gebruiken voor het opslaan van gerepliceerde gegevens.
We moeten een bestandssysteem op het apparaat maken met behulp van de volgende opdracht op de node van waaruit we de initiƫle volledige synchronisatie zijn gestart (waar een resource met de primaire rol is):
# mkfs -t ext4 /dev/drbd0 
We maken een bestandssysteem op het Drbd-volume
Monteer het vervolgens zoals weergegeven (u kunt de montagemap een geschikte naam geven):
# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/
Kopieer of maak nu enkele bestanden in de hierboven genoemde montagemap en geef een lange lijst weer met de :
# cd /mnt/DRDB_PRI/
# ls -l 
Toon de inhoudslijst van het primaire Drbd-volume
Ontkoppel vervolgens het apparaat (zorg ervoor dat het niet meer gemonteerd is, verander de map na het ontkoppelen om fouten te voorkomen) en verander de rol van de node van primair naar secundair:
# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary testMaak de andere node (waar een resource met de secundaire rol is) primair, sluit het apparaat aan en voer een lange lijst van montagemappen uit. Als de configuratie goed werkt, moeten alle bestanden die op het volume zijn opgeslagen daar zijn:
# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls -l 
Controleer de DRBD-configuratie die draait op de secundaire node.
Voor meer informatie kunt u de documentatiepagina's van de beheerhulpmiddelen raadplegen:
# man drbdadm
# man drbdsetup
# man drbdmetaHelp: .
Samenvatting
DRBD is extreem flexibel en veelzijdig, waardoor het een oplossing voor opslagreplicatie is die HA praktisch aan elke applicatie kan toevoegen. In dit artikel hebben we laten zien hoe je DRBD in CentOS 7 installeert en kort gedemonstreerd hoe je het kunt gebruiken voor opslagreplicatie. Voel je vrij om je gedachten met ons te delen via het feedbackformulier hieronder.
Bron: habr.com
