DRBD configureren voor opslagreplicatie op twee CentOS 7-servers

De vertaling van het artikel is voorbereid ter voorbereiding op de start van de cursus «Linux Beheerder. Virtualisatie en Clustering».

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 netwerk RAID-configuratie 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.rpm

Installeer vervolgens de DRBD-kernelmodule en hulpprogramma's op beide knooppunten met behulp van:

# yum install -y kmod-drbd84 drbd84-utils

Als 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 --reload

Voer 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 --reload

Stap 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, een logische LVM-volume 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=1024

Laten 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

DRBD configureren voor opslagreplicatie op twee CentOS 7-servers
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 lsblk, zul je opmerken dat het DRBD apparaat/volume drbd0 is verbonden met het reserveapparaat /dev/sdb1:

# lsblk

DRBD configureren voor opslagreplicatie op twee CentOS 7-servers
Lijst van blokapparaten

Om de resource uit te schakelen, voert u in:

# drbdadm down test

Om 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

DRBD configureren voor opslagreplicatie op twee CentOS 7-servers
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

DRBD configureren voor opslagreplicatie op twee CentOS 7-servers
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

DRBD configureren voor opslagreplicatie op twee CentOS 7-servers
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 opdracht ls:

# cd /mnt/DRDB_PRI/
# ls -l 

DRBD configureren voor opslagreplicatie op twee CentOS 7-servers
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 test

Maak 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 

DRBD configureren voor opslagreplicatie op twee CentOS 7-servers
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 drbdmeta

Help: DRBD-gebruikershandleiding.

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.

Meer informatie over de cursus.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster