Oversættelsen af artiklen blev udarbejdet på tærsklen til kursets start
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
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,
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
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 /dev/sdb1
:
# lsblk
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
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
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
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
# cd /mnt/DRDB_PRI/
# ls -l
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
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:
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.
Kilde: www.habr.com