DRBD instellen voor opslagreplicatie op twee CentOS 7-servers

De vertaling van het artikel is gemaakt aan de vooravond van de start van de cursus "Linux-beheerder. Virtualisatie en clustering".

DRBD (Distributed Replicated Block Device) is een gedistribueerde, flexibele en universeel repliceerbare opslagoplossing voor Linux. Het weerspiegelt de inhoud van blokapparaten zoals harde schijven, partities, logische volumes, enz. tussen servers. Het maakt kopieën van gegevens op twee opslagapparaten, zodat als een van beide uitvalt, de gegevens op de tweede kunnen worden gebruikt.

Je zou kunnen zeggen dat het zoiets is netwerk RAID-configuratie 1 met schijven toegewezen aan verschillende servers. Het werkt echter totaal anders dan RAID (zelfs netwerk-RAID).

Aanvankelijk werd DRBD voornamelijk gebruikt in computerclusters met hoge beschikbaarheid (HA), maar vanaf versie XNUMX kan het worden gebruikt om cloudopslagoplossingen te implementeren.

In dit artikel leggen we uit hoe je DRBD op CentOS installeert en demonstreren we kort hoe je het kunt gebruiken om opslag (partitie) over twee servers te repliceren. Dit is het perfecte artikel om aan de slag te gaan met DRBD op Linux.

Test omgeving

Voor deze opstelling gebruiken we een cluster met twee knooppunten.

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

Stap 1: Installeer DRBD-pakketten

DRBD is geïmplementeerd als een Linux-kernelmodule. Het is een driver voor een virtueel blokapparaat en bevindt zich dus helemaal onderaan de I/O-stack van het systeem.

DRBD kan worden geïnstalleerd vanuit ELRepo of EPEL. Laten we beginnen met het importeren van de handtekeningsleutel van het ELRepo-pakket en het verbinden 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.rpm

Vervolgens moet u de DRBD-kernelmodule en hulpprogramma's op beide knooppunten installeren met behulp van:

# yum install -y kmod-drbd84 drbd84-utils

Als je SELinux hebt ingeschakeld, moet je beleid configureren om DRBD-processen uit te sluiten van SELinux-controle.

# semanage permissive -a drbd_t

Als uw systeem bovendien een firewall (firewalld) gebruikt, moet u DRBD-poort 7789 toevoegen om gegevenssynchronisatie tussen de twee knooppunten mogelijk te maken.

Voer deze opdrachten uit voor het eerste knooppunt:

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

Voer vervolgens deze opdrachten uit voor het tweede knooppunt:

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

Stap 2: Bereid opslag op laag niveau voor

Nu we DRBD op beide clusterknooppunten hebben geïnstalleerd, moeten we daarop opslaggebieden van ongeveer dezelfde grootte inrichten. Dit kan een harde schijfpartitie zijn (of een volledige fysieke harde schijf), een software RAID-apparaat, LVM logisch volume of een ander type blokkeerapparaat dat op uw systeem wordt aangetroffen.

Voor dit artikel maken we een testblokapparaat van 2 GB met behulp van de opdracht dd.

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

Laten we aannemen dat dit een ongebruikte partitie (/dev/sdb1) is op een tweede blokapparaat (/dev/sdb) dat met beide knooppunten is verbonden.

Stap 3. DRBD configureren

DRBD hoofdconfiguratiebestand − /etc/drbd.conf, en aanvullende configuratiebestanden zijn te vinden in de directory /etc/drbd.d.

Om de opslag te repliceren, moeten we de benodigde configuraties aan het bestand toevoegen /etc/drbd.d/global_common.conf, die globale en algemene secties van de DRBD-configuratie bevat, en we moeten bronnen definiëren in .res bestanden.

Laten we op beide knooppunten een reservekopie maken van het originele bestand en vervolgens het nieuwe bestand openen om te bewerken (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 toe aan beide bestanden:

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

Sla het bestand op en sluit vervolgens de editor.

Laten we even kijken naar de regel van protocol C. DRBD ondersteunt drie verschillende replicatiemodi (dat wil zeggen drie graden van replicatiesynchronisatie), namelijk:

  • protocol A: asynchrone replicatieprotocol; het vaakst gebruikt in replicatiescenario's over lange afstanden.
  • protocol B: Semi-synchrone replicatieprotocol of synchroon geheugenprotocol.
  • protocol C: meestal gebruikt voor knooppunten in netwerken met korte afstanden; dit is veruit het meest gebruikte replicatieprotocol in DRBD-instellingen.

Het is belangrijk: De keuze van het replicatieprotocol heeft invloed op twee implementatiefactoren: beveiliging en latentie. Daarentegen is de doorvoer niet significant afhankelijk van het geselecteerde replicatieprotocol.

Stap 4: Voeg een bron toe

Resource is een overkoepelende term die verwijst naar alle aspecten van een bepaalde gerepliceerde dataset. We zullen onze bron in het bestand definiëren /etc/drbd.d/test.res.

Voeg het volgende toe aan het bestand op beide knooppunten (vergeet niet om de variabelen te vervangen door de werkelijke waarden voor uw omgeving).

Let op de hostnamen. We moeten de hostnaam van het netwerk specificeren, 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;
        }
}
}

waar:

  • op hostnaam: De on-sectie waarop de geneste configuratie-instructie van toepassing is.
  • proef: Dit is de naam van de nieuwe bron.
  • apparaat /dev/drbd0: Geeft een nieuw virtueel blokapparaat aan dat wordt beheerd door DRBD.
  • schijf /dev/sdb1: dit is een blokapparaatpartitie die een back-upapparaat is voor het DRBD-apparaat.
  • meta-schijf: definieert waar DRBD zijn metagegevens opslaat. Intern betekent dat DRBD zijn metagegevens opslaat op hetzelfde fysieke apparaat op laag niveau als de daadwerkelijke gegevens in productie.
  • adres: Geeft het IP-adres en poortnummer van het overeenkomstige knooppunt aan.

Houd er ook rekening mee dat als de parameters op beide hosts dezelfde waarden hebben, u deze rechtstreeks in de bronnensectie kunt opgeven.

De bovenstaande configuratie kan bijvoorbeeld worden geherstructureerd naar:

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. Initialiseer en start de bron

Voor interactie met DRBD zullen we de volgende beheertools gebruiken (die samenwerken met de kernelmodule om DRBD-bronnen te configureren en te beheren):

  • drbdm: DRBD-beheertool op hoog niveau.
  • drbdsetup: een beheertool op een lager niveau voor het verbinden van DRBD-apparaten met hun back-upapparaten, het configureren van paren DRBD-apparaten om hun back-upapparaten weer te geven, en voor het verifiëren van de configuratie van actieve DRBD-apparaten.
  • Drbdmeta: Tool voor het beheren van metadata.

Nadat we alle initiële resourceconfiguraties hebben toegevoegd, moeten we de resource op beide knooppunten aanroepen.

# drbdadm create-md test

DRBD instellen voor opslagreplicatie op twee CentOS 7-servers
Het metadata-archief initialiseren

Vervolgens moeten we het uitvoeren, waardoor de bron wordt verbonden met het back-upapparaat, vervolgens de replicatieparameters worden ingesteld en de bron wordt verbonden met zijn peer:

# drbdadm up test

Als u nu de opdracht uitvoert lsblk, zult u merken dat het DRBD-apparaat/volume drbd0 is gekoppeld aan het back-upapparaat /dev/sdb1:

# lsblk

DRBD instellen voor opslagreplicatie op twee CentOS 7-servers
Lijst met blokapparaten

Om een ​​bron uit te schakelen, voert u het volgende uit:

# drbdadm down test

Om de status van een bron te controleren, voert u de volgende opdracht uit (merk op dat de status van de schijven op dit punt wordt verwacht Inconsistent/inconsistent):

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

DRBD instellen voor opslagreplicatie op twee CentOS 7-servers
De status van een bron controleren op
kwaadaardig

Stap 6: Stel de synchronisatiebron van de primaire bron/initiële apparaat in

In dit stadium is DRBD klaar voor gebruik. Nu moeten we specificeren welk knooppunt moet worden gebruikt als bron voor de initiële apparaatsynchronisatie.

Voer de volgende opdracht uit op slechts één knooppunt om de eerste volledige synchronisatie te starten:

# drbdadm primary --force test
# drbdadm status test

DRBD instellen voor opslagreplicatie op twee CentOS 7-servers
Het primaire knooppunt instellen als het initiële apparaat
Zodra de synchronisatie is voltooid, moet de status van beide schijven UpToDate zijn.

Stap 7: Testen van de DRBD-installatie

Ten slotte moeten we controleren of het DRBD-apparaat naar behoefte zal werken om de gerepliceerde gegevens op te slaan. Houd er rekening mee dat we een leeg schijfvolume hebben gebruikt, dus we moeten een bestandssysteem op het apparaat maken en dit koppelen om te controleren of we het kunnen gebruiken om gerepliceerde gegevens op te slaan.

We moeten een bestandssysteem op het apparaat maken met behulp van de volgende opdracht op het knooppunt waar we de eerste volledige synchronisatie zijn gestart (die een bron heeft met de primaire rol):

# mkfs -t ext4 /dev/drbd0

DRBD instellen voor opslagreplicatie op twee CentOS 7-servers
Een bestandssysteem maken op het Drbd-volume

Monteer hem vervolgens zoals afgebeeld (je kunt het mountpunt een passende naam geven):

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

Kopieer of maak nu enkele bestanden in het bovenstaande mountpunt en maak er een lange lijst mee ls-opdrachten:

# cd /mnt/DRDB_PRI/
# ls -l 

DRBD instellen voor opslagreplicatie op twee CentOS 7-servers
Maak een lijst van de inhoud van het hoofdvolume van Drbd

Ontkoppel vervolgens het apparaat (zorg ervoor dat de koppeling niet open is, wijzig de map na het ontkoppelen om fouten te voorkomen) en verander de knooppuntrol van primair naar secundair:

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

Maak het andere knooppunt (dat een bron met een secundaire rol heeft) primair, koppel er vervolgens een apparaat aan en geef een lange lijst met koppelpunten uit. Als de installatie goed werkt, zouden alle bestanden die op het volume zijn opgeslagen daar moeten zijn:

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

DRBD instellen voor opslagreplicatie op twee CentOS 7-servers
Controleren van de DRBD-installatie die op het secundaire knooppunt wordt uitgevoerd.

Voor meer informatie, zie de helppagina's van de beheertools:

# man drbdadm
# man drbdsetup
# man drbdmeta

Help: DRBD-gebruikershandleiding.

Beknopt

DRBD is uiterst flexibel en veelzijdig, waardoor het een oplossing voor opslagreplicatie is die geschikt is voor het toevoegen van HA aan vrijwel elke toepassing. In dit artikel hebben we laten zien hoe u DRBD op CentOS 7 kunt installeren en kort hebben gedemonstreerd hoe u het kunt gebruiken voor opslagreplicatie. Deel gerust uw mening met ons via het onderstaande feedbackformulier.

Lees meer over de cursus.

Bron: www.habr.com

Voeg een reactie