Opsætning af DRBD til lagerreplikering på to CentOS 7-servere

Oversættelsen af ​​artiklen blev udarbejdet på tærsklen til kursets start Linux administrator. Virtualisering og klyngedannelse».

DRBD (Distributed Replicated Block Device) er en distribueret, fleksibel og universelt replikerbar lagringsløsning til Linux. Det afspejler indholdet af blokenheder såsom harddiske, partitioner, logiske volumener osv. mellem servere. Den opretter kopier af data på to lagerenheder, så hvis en af ​​dem fejler, kan dataene på den anden bruges.

Man kan sige, at det er sådan noget netværks RAID-konfiguration 1 med diske knyttet til forskellige servere. Det fungerer dog helt anderledes end RAID (selv netværks-RAID).

Oprindeligt blev DRBD primært brugt i computerklynger med høj tilgængelighed (HA), men fra og med version XNUMX kan den bruges til at implementere cloud storage-løsninger.

I denne artikel vil vi forklare, hvordan du installerer DRBD på CentOS og kort demonstrere, hvordan du bruger det til at replikere lager (partition) på tværs af to servere. Dette er den perfekte artikel til at komme i gang med DRBD på Linux.

Test miljø

Vi vil bruge en klynge med to knudepunkter til denne opsætning.

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

Trin 1: Installer DRBD-pakker

DRBD er implementeret som et Linux-kernemodul. Det er en driver til en virtuel blokenhed, så den er placeret helt i bunden af ​​systemets I/O-stak.

DRBD kan installeres fra ELRepo eller EPEL. Lad os starte med at importere ELRepo-pakkesigneringsnøglen og forbinde depotet på begge noder som vist nedenfor.

# 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

Derefter skal du installere DRBD-kernemodulet og hjælpeprogrammer på begge noder ved hjælp af:

# yum install -y kmod-drbd84 drbd84-utils

Hvis du har SELinux aktiveret, skal du konfigurere politikker for at fritage DRBD-processer fra SELinux-kontrol.

# semanage permissive -a drbd_t

Derudover, hvis dit system kører en firewall (firewalld), skal du tilføje DRBD-port 7789 for at tillade datasynkronisering mellem de to noder.

Kør disse kommandoer for den første node:

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

Kør derefter disse kommandoer for den anden node:

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

Trin 2: Forbered lav-level-opbevaring

Nu hvor vi har DRBD installeret på begge klynge noder, skal vi sørge for lagerområder af omtrent samme størrelse på dem. Dette kan være en harddiskpartition (eller en hel fysisk harddisk), en software-RAID-enhed, LVM logisk volumen eller enhver anden type blokenhed, der findes på dit system.

Til denne artikel vil vi oprette en 2 GB testblokenhed ved hjælp af dd-kommandoen.

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

Lad os antage, at dette er en ubrugt partition (/dev/sdb1) på en anden blokenhed (/dev/sdb) forbundet til begge noder.

Trin 3. Konfiguration af DRBD

DRBD hovedkonfigurationsfil − /etc/drbd.conf, og yderligere konfigurationsfiler kan findes i mappen /etc/drbd.d.

For at replikere lageret skal vi tilføje de nødvendige konfigurationer til filen /etc/drbd.d/global_common.conf, som indeholder globale og generelle sektioner af DRBD-konfigurationen, og vi skal definere ressourcer i .res filer.

Lad os lave en sikkerhedskopi af den originale fil på begge noder, og derefter åbne den nye fil til redigering (brug en teksteditor efter eget valg).

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

Tilføj følgende linjer til begge filer:

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

Gem filen og luk derefter editoren.

Lad os se på protokol C-linjen et øjeblik. DRBD understøtter tre forskellige replikeringstilstande (det vil sige tre grader af replikeringssynkronisering), nemlig:

  • protokol A: asynkron replikationsprotokol; bruges oftest i langdistance-replikeringsscenarier.
  • protokol B: Semi-synkron replikeringsprotokol eller synkron hukommelsesprotokol.
  • protokol C: bruges normalt til noder i netværk med korte afstande; dette er langt den mest almindeligt anvendte replikeringsprotokol i DRBD-indstillinger.

Det er vigtigt: Valget af replikeringsprotokol påvirker to implementeringsfaktorer: sikkerhed og latens. Derimod afhænger gennemløbet ikke væsentligt af den valgte replikationsprotokol.

Trin 4: Tilføj en ressource

Ressource er et paraplybegreb, der refererer til alle aspekter af et bestemt replikeret datasæt. Vi vil definere vores ressource i filen /etc/drbd.d/test.res.

Tilføj følgende til filen på begge noder (husk at erstatte variablerne med de faktiske værdier for dit miljø).

Vær opmærksom på værtsnavnene, vi skal angive netværksværtsnavnet, som kan fås ved hjælp af kommandoen 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;
        }
}
}

hvor:

  • på værtsnavn: On-sektionen, som den indlejrede konfigurationssætning gælder for.
  • prøve: Dette er navnet på den nye ressource.
  • enhed /dev/drbd0: Angiver en ny virtuel blokenhed, der administreres af DRBD.
  • disk /dev/sdb1: Dette er en blokenhedspartition, der er en backup-enhed til DRBD-enheden.
  • meta-disk: Definerer, hvor DRBD gemmer sine metadata. Intern betyder, at DRBD gemmer sine metadata på den samme fysiske lavniveauenhed som de faktiske data i produktionen.
  • adresse: Angiver IP-adressen og portnummeret for den tilsvarende node.

Bemærk også, at hvis parametrene har de samme værdier på begge værter, kan du angive dem direkte i ressourceafsnittet.

For eksempel kan ovenstående konfiguration omstruktureres til:

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;
        		}
}

Trin 5. Initialiser og start ressourcen

For at interagere med DRBD vil vi bruge følgende administrationsværktøjer (som interagerer med kernemodulet for at konfigurere og administrere DRBD-ressourcer):

  • drbdadm: DRBD administrationsværktøj på højt niveau.
  • drbdsetup: Et administrationsværktøj på lavere niveau til at forbinde DRBD-enheder til deres backup-enheder, konfigurere par af DRBD-enheder til at afspejle deres backup-enheder og til at verificere konfigurationen af ​​kørende DRBD-enheder.
  • Drbdmeta: Metadatastyringsværktøj.

Efter at have tilføjet alle de indledende ressourcekonfigurationer, skal vi kalde ressourcen på begge noder.

# drbdadm create-md test

Opsætning af DRBD til lagerreplikering på to CentOS 7-servere
Initialisering af metadatalageret

Dernæst skal vi køre den, som vil forbinde ressourcen til dens backup-enhed, derefter indstille replikeringsparametrene og forbinde ressourcen til dens peer:

# drbdadm up test

Hvis du nu kører kommandoen lsblk, vil du bemærke, at DRBD-enheden/volumen drbd0 er knyttet til backup-enheden /dev/sdb1:

# lsblk

Opsætning af DRBD til lagerreplikering på to CentOS 7-servere
Liste over blokenheder

For at deaktivere en ressource skal du køre:

# drbdadm down test

For at kontrollere status for en ressource skal du køre følgende kommando (bemærk, at status for drevene forventes på dette tidspunkt Inkonsekvent/Inkonsistent):

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

Opsætning af DRBD til lagerreplikering på to CentOS 7-servere
Kontrollerer status for en ressource på
ond

Trin 6: Indstil den primære ressource/indledende enhedssynkroniseringskilde

På dette stadium er DRBD klar til at gå. Nu skal vi specificere, hvilken node der skal bruges som kilde til indledende enhedssynkronisering.

Kør følgende kommando på kun én node for at starte den indledende fulde synkronisering:

# drbdadm primary --force test
# drbdadm status test

Opsætning af DRBD til lagerreplikering på to CentOS 7-servere
Indstilling af den primære node som den oprindelige enhed
Når synkroniseringen er fuldført, skal tilstanden for begge drev være UpToDate.

Trin 7: Test af DRBD-opsætningen

Til sidst skal vi kontrollere, om DRBD-enheden fungerer efter behov for at gemme de replikerede data. Husk, at vi brugte en tom diskenhed, så vi skal oprette et filsystem på enheden og montere det for at kontrollere, om vi kan bruge det til at gemme replikerede data.

Vi skal oprette et filsystem på enheden ved hjælp af følgende kommando på den node, hvor vi startede den indledende fulde synkronisering (som har ressourcen med den primære rolle):

# mkfs -t ext4 /dev/drbd0

Opsætning af DRBD til lagerreplikering på to CentOS 7-servere
Oprettelse af et filsystem på Drbd-diskenheden

Monter det derefter som vist (du kan give monteringspunktet et passende navn):

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

Kopier eller opret nu nogle filer i ovenstående monteringspunkt og lav en lang liste med ls kommandoer:

# cd /mnt/DRDB_PRI/
# ls -l 

Opsætning af DRBD til lagerreplikering på to CentOS 7-servere
Liste over indholdet af hoved-Drbd-volumenet

Afmonter derefter enheden (sørg for, at monteringen ikke er åben, skift mappen efter afmontering for at undgå fejl) og skift noderollen fra primær til sekundær:

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

Gør den anden node (som har en ressource med en sekundær rolle) til primær, tilslut derefter en enhed til den og udsted en lang liste af monteringspunkter. Hvis opsætningen fungerer fint, skal alle filer, der er gemt på diskenheden, være der:

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

Opsætning af DRBD til lagerreplikering på to CentOS 7-servere
Kontrollerer DRBD-opsætningen, der kører på den sekundære node.

For mere information, se hjælpesiderne til administrative værktøjer:

# man drbdadm
# man drbdsetup
# man drbdmeta

Help: DRBD brugermanual.

Resumé

DRBD er ekstremt fleksibel og alsidig, hvilket gør den til en lagringsreplikeringsløsning, der er velegnet til at tilføje HA til næsten enhver applikation. I denne artikel viste vi, hvordan man installerer DRBD på CentOS 7 og demonstrerede kort, hvordan man bruger det til lagerreplikering. Du er velkommen til at dele dine tanker med os ved at bruge feedbackformularen nedenfor.

Lær mere om kurset.

Kilde: www.habr.com

Tilføj en kommentar