Sette opp DRBD for lagringsreplikering på to CentOS 7-servere

Oversettelsen av artikkelen ble utarbeidet like før kursstart "Linux-administrator. Virtualisering og klynging".

DRBD (Distributed Replicated Block Device) er en distribuert, fleksibel og universelt replikerbar lagringsløsning for Linux. Det gjenspeiler innholdet i blokkenheter som harddisker, partisjoner, logiske volumer, etc. mellom servere. Den lager kopier av data på to lagringsenheter, slik at hvis en av dem svikter, kan dataene på den andre brukes.

Du kan si det er noe sånt nettverks RAID-konfigurasjon 1 med disker tilordnet forskjellige servere. Det fungerer imidlertid helt annerledes enn RAID (til og med nettverks-RAID).

Opprinnelig ble DRBD hovedsakelig brukt i datamaskinklynger med høy tilgjengelighet (HA), men fra og med versjon XNUMX kan den brukes til å distribuere skylagringsløsninger.

I denne artikkelen vil vi forklare hvordan du installerer DRBD på CentOS og kort demonstrere hvordan du bruker den til å replikere lagring (partisjon) over to servere. Dette er den perfekte artikkelen for å komme i gang med DRBD på Linux.

Test miljø

Vi vil bruke en klynge med to noder for dette oppsettet.

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

Trinn 1: Installer DRBD-pakker

DRBD er implementert som en Linux-kjernemodul. Det er en driver for en virtuell blokkenhet, så den er plassert helt nederst i systemets I/O-stabel.

DRBD kan installeres fra ELRepo eller EPEL. La oss starte med å importere ELRepo-pakkesigneringsnøkkelen og koble til 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

Deretter må du installere DRBD-kjernemodulen og verktøyene på begge noder ved å bruke:

# yum install -y kmod-drbd84 drbd84-utils

Hvis du har SELinux aktivert, må du konfigurere policyer for å frita DRBD-prosesser fra SELinux-kontroll.

# semanage permissive -a drbd_t

I tillegg, hvis systemet ditt kjører en brannmur (brannmur), må du legge til DRBD-port 7789 for å tillate datasynkronisering mellom de to nodene.

Kjør disse kommandoene for den første noden:

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

Kjør deretter disse kommandoene for den andre noden:

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

Trinn 2: Forbered lagring på lavt nivå

Nå som vi har DRBD installert på begge klyngenodene, må vi sørge for lagringsområder av omtrent samme størrelse på dem. Dette kan være en harddiskpartisjon (eller en hel fysisk harddisk), en programvare-RAID-enhet, LVM logisk volum eller en annen type blokkeringsenhet som finnes på systemet ditt.

For denne artikkelen vil vi lage en 2 GB testblokkenhet ved å bruke dd-kommandoen.

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

La oss anta at dette er en ubrukt partisjon (/dev/sdb1) på en andre blokkenhet (/dev/sdb) koblet til begge nodene.

Trinn 3. Konfigurere DRBD

DRBD hovedkonfigurasjonsfil − /etc/drbd.conf, og flere konfigurasjonsfiler kan finnes i katalogen /etc/drbd.d.

For å replikere lagringen må vi legge til de nødvendige konfigurasjonene til filen /etc/drbd.d/global_common.conf, som inneholder globale og generelle deler av DRBD-konfigurasjonen, og vi må definere ressurser i .res filer.

La oss lage en sikkerhetskopi av den originale filen på begge noder, og deretter åpne den nye filen for redigering (bruk et valgfritt tekstredigeringsprogram).

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

Legg til følgende linjer i begge filene:

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

Lagre filen og lukk deretter redigeringsprogrammet.

La oss se på protokoll C-linjen et øyeblikk. DRBD støtter tre forskjellige replikeringsmoduser (det vil si tre grader av replikeringssynkronisering), nemlig:

  • protokoll A: asynkron replikeringsprotokoll; oftest brukt i langdistanse replikeringsscenarier.
  • protokoll B: Semi-synkron replikeringsprotokoll eller synkron minneprotokoll.
  • protokoll C: brukes vanligvis for noder i nettverk med korte avstander; dette er den desidert mest brukte replikeringsprotokollen i DRBD-innstillinger.

Det er viktig: Valget av replikeringsprotokoll påvirker to distribusjonsfaktorer: sikkerhet og latens. Derimot avhenger ikke gjennomstrømningen vesentlig av den valgte replikeringsprotokollen.

Trinn 4: Legg til en ressurs

Ressurs er et paraplybegrep som refererer til alle aspekter ved et bestemt replikert datasett. Vi vil definere ressursen vår i filen /etc/drbd.d/test.res.

Legg til følgende i filen på begge noder (husk å erstatte variablene med de faktiske verdiene for miljøet ditt).

Vær oppmerksom på vertsnavnene, vi må spesifisere nettverkets vertsnavn, som kan fås ved å bruke uname-kommandoen -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;
        }
}
}

der:

  • på vertsnavn: On-delen som den nestede konfigurasjonssetningen gjelder for.
  • test: Dette er navnet på den nye ressursen.
  • enhet /dev/drbd0: Indikerer en ny virtuell blokkenhet administrert av DRBD.
  • disk /dev/sdb1: Dette er en blokkenhetspartisjon som er en sikkerhetskopienhet for DRBD-enheten.
  • meta-disk: Definerer hvor DRBD lagrer metadataene sine. Intern betyr at DRBD lagrer metadataene sine på samme fysiske lavnivåenhet som de faktiske dataene i produksjon.
  • adresse: Indikerer IP-adressen og portnummeret til den tilsvarende noden.

Vær også oppmerksom på at hvis parameterne har samme verdier på begge vertene, kan du spesifisere dem direkte i ressursdelen.

For eksempel kan konfigurasjonen ovenfor 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;
        		}
}

Trinn 5. Initialiser og start ressursen

For å samhandle med DRBD vil vi bruke følgende administrasjonsverktøy (som samhandler med kjernemodulen for å konfigurere og administrere DRBD-ressurser):

  • drbdadm: DRBD administrasjonsverktøy på høyt nivå.
  • drbdsetup: Et administrasjonsverktøy på lavere nivå for å koble DRBD-enheter til sikkerhetskopieringsenhetene deres, konfigurere par med DRBD-enheter for å gjenspeile sikkerhetskopieringsenhetene deres, og for å bekrefte konfigurasjonen av kjørende DRBD-enheter.
  • Drbdmeta: Verktøy for administrasjon av metadata.

Etter å ha lagt til alle de innledende ressurskonfigurasjonene, må vi påkalle ressursen på begge noder.

# drbdadm create-md test

Sette opp DRBD for lagringsreplikering på to CentOS 7-servere
Initialiserer metadatalageret

Deretter må vi kjøre den, som vil koble ressursen til sikkerhetskopienheten, deretter angi replikeringsparameterne og koble ressursen til sin likeperson:

# drbdadm up test

Nå hvis du kjører kommandoen lsblk, vil du legge merke til at DRBD-enheten/volumet drbd0 er knyttet til sikkerhetskopienheten /dev/sdb1:

# lsblk

Sette opp DRBD for lagringsreplikering på to CentOS 7-servere
Liste over blokkeringsenheter

For å deaktivere en ressurs, kjør:

# drbdadm down test

For å sjekke statusen til en ressurs, kjør følgende kommando (merk at statusen til diskene forventes på dette tidspunktet Inkonsekvent/Inkonsekvent):

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

Sette opp DRBD for lagringsreplikering på to CentOS 7-servere
Kontrollerer statusen til en ressurs på
ond

Trinn 6: Angi den primære ressursen/den første enhetssynkroniseringskilden

På dette stadiet er DRBD klar til å gå. Nå må vi spesifisere hvilken node som skal brukes som kilde for innledende enhetssynkronisering.

Kjør følgende kommando på bare én node for å starte den første fulle synkroniseringen:

# drbdadm primary --force test
# drbdadm status test

Sette opp DRBD for lagringsreplikering på to CentOS 7-servere
Angi primærnoden som den første enheten
Når synkroniseringen er fullført, skal statusen til begge stasjonene være UpToDate.

Trinn 7: Testing av DRBD-oppsettet

Til slutt må vi sjekke om DRBD-enheten vil fungere etter behov for å lagre de replikerte dataene. Husk at vi brukte et tomt diskvolum, så vi må lage et filsystem på enheten og montere det for å sjekke om vi kan bruke det til å lagre replikerte data.

Vi må opprette et filsystem på enheten ved å bruke følgende kommando på noden der vi startet den første fullsynkroniseringen (som har en ressurs med hovedrollen):

# mkfs -t ext4 /dev/drbd0

Sette opp DRBD for lagringsreplikering på to CentOS 7-servere
Opprette et filsystem på Drbd-volumet

Monter den deretter som vist (du kan gi monteringspunktet et passende navn):

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

Kopier eller lag noen filer i monteringspunktet ovenfor og lag en lang liste med ls kommandoer:

# cd /mnt/DRDB_PRI/
# ls -l 

Sette opp DRBD for lagringsreplikering på to CentOS 7-servere
Liste innholdet i hoved-Drbd-volumet

Deretter avmonterer du enheten (sørg for at monteringen ikke er åpen, endre katalogen etter avmontering for å unngå feil) og endre noderollen fra primær til sekundær:

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

Gjør den andre noden (som har en ressurs med en sekundær rolle) til primær, koble deretter en enhet til den og utsted en lang liste med monteringspunkter. Hvis oppsettet fungerer bra, bør alle filer som er lagret på volumet være der:

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

Sette opp DRBD for lagringsreplikering på to CentOS 7-servere
Kontrollerer DRBD-oppsettet som kjører på den sekundære noden.

For mer informasjon, se hjelpesidene for administrative verktøy:

# man drbdadm
# man drbdsetup
# man drbdmeta

Hjelp: DRBD brukerhåndbok.

Oppsummering

DRBD er ekstremt fleksibel og allsidig, noe som gjør den til en lagringsreplikeringsløsning som er egnet for å legge til HA til nesten alle applikasjoner. I denne artikkelen viste vi hvordan du installerer DRBD på CentOS 7 og demonstrerte kort hvordan du bruker den til lagringsreplikering. Del gjerne tankene dine med oss ​​ved å bruke tilbakemeldingsskjemaet nedenfor.

Lær mer om kurset.

Kilde: www.habr.com

Legg til en kommentar