Konfigurera DRBD för lagringsreplikering pÄ tvÄ CentOS 7-servrar

ÖversĂ€ttningen av artikeln Ă€r framtagen inför kursstarten «Linux-administratör. Virtualisering och klustring».

DRBD (Distributed Replicated Block Device — distribuerad replikerad blockenhet) Ă€r en distribuerad, flexibel och universellt replikerande lagringslösning för Linux. Den speglar innehĂ„llet i blockenheter, sĂ„som hĂ„rddiskar, partitioner, logiska volymer etc., mellan servrar. Den skapar kopior av data pĂ„ tvĂ„ lagringsenheter sĂ„ att vid ett fel pĂ„ en av dem kan data anvĂ€ndas frĂ„n den andra.

Man kan sÀga att det Àr nÄgot som ett nÀtverks RAID-konfiguration 1 med diskar som speglas pÄ olika servrar. Men det fungerar inte alls som RAID (Àven inte nÀtverks RAID).

Ursprungligen anvĂ€ndes DRBD frĂ€mst i högverksamma datorkluster (HA — high availability), men sedan version nio kan det anvĂ€ndas för att implementera lösningar för molnlagring.

I denna artikel kommer vi att berÀtta hur man installerar DRBD pÄ CentOS och kort visa hur man anvÀnder det för att replikera lagring (partition) pÄ tvÄ servrar. Detta Àr den perfekta artikeln för att komma igÄng med DRBD i Linux.

Testmiljö

Vi kommer att anvÀnda ett kluster med tvÄ noder för denna installation.

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

Steg 1: Installation av DRBD-paket

DRBD implementeras som en kÀrnmodul i Linux. Den fungerar som en drivrutin för en virtuell blockenhet, sÄ den ligger lÀngst ner i systemets in- och utdata-stapel.

DRBD kan installeras frÄn ELRepo eller EPEL. LÄt oss börja med att importera signaturnyckeln för ELRepo-paketet och aktivera repositoryt pÄ bÄda noderna, som visas nedan.

# 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

DÀrefter behöver du installera DRBD-kÀrnmodulen och verktygen pÄ bÄda noderna med hjÀlp av:

# yum install -y kmod-drbd84 drbd84-utils

Om du har SELinux aktiverat behöver du justera policyerna sÄ att frigöra DRBD-processerna frÄn SELinux-kontrollen.

# semanage permissive -a drbd_t

Dessutom, om din system har en brandvÀgg (firewalld) som körs, mÄste du lÀgga till DRBD-port 7789 för att tillÄta datasyntonisering mellan de tvÄ noderna.

Kör dessa kommandon för den första 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

Kör dessa kommandon för den andra 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

Steg 2. Förbered lÄg nivÄ lagring

Nu nÀr vi har installerat DRBD pÄ bÄda noderna i klustret, mÄste vi förbereda lagringsomrÄden pÄ dem av ungefÀr samma storlek. Detta kan vara en partition pÄ en hÄrddisk (eller en helt fysisk hÄrddisk), en mjukvaru RAID-enhet, logisk volym LVM eller nÄgon annan typ av blockenhet som finns i ditt system.

För den hÀr artikeln kommer vi att skapa en testblockenhet pÄ 2 GB med hjÀlp av kommandot dd.

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

Anta att detta Àr en oanvÀnd partition (/dev/sdb1) pÄ den andra blockenheten (/dev/sdb), som Àr ansluten till bÄda noder.

Steg 3. Konfigurera DRBD

Huvudkonfigurationsfilen för DRBD - /etc/drbd.conf, medan ytterligare konfigurationsfiler kan hittas i katalogen /etc/drbd.d.

För att replikera lagring mÄste vi lÀgga till nödvÀndiga konfigurationer i filen /etc/drbd.d/global_common.conf, som innehÄller globala och gemensamma avsnitt för DRBD-konfigurationen, medan vi mÄste definiera resurser i .res filer.

Vi gör en sÀkerhetskopia av den ursprungliga filen pÄ bÄda noderna och öppnar sedan en ny fil för redigering (anvÀnd en textredigerare av ditt val).

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

LÀgg till följande rader i bÄda filerna:

global {
 anvÀndningsrÀkning ja;
}
gemensam {
 nÀtverk {
  protokoll C;
 }
}

Spara filen och stÀng sedan redigeraren.

LÄt oss stanna kvar vid raden protokoll C. DRBD stöder tre olika replikationslÀgen (dvs. tre grader av replikationssynkronisering), nÀmligen:

  • protokoll A: protokoll för asynkron replikation; anvĂ€nds oftast i replikationsscenarier över lĂ„nga avstĂ„nd.
  • protokoll B: protokoll för halv-synkron replikation eller protokoll för synkron minne.
  • protokoll C: anvĂ€nds vanligtvis för noder i nĂ€tverk med korta avstĂ„nd; det Ă€r utan tvekan det mest anvĂ€nda replikationsprotokollet i DRBD-konfigurationer.

Det Àr viktigt: valet av replikationsprotokoll pÄverkar tvÄ distributionsfaktorer: skydd och latens. Bandbredden, Ä sin sida, pÄverkas inte i stor utstrÀckning av det valda replikationsprotokollet.

Steg 4. LĂ€gga till resurs

En resurs (Resource) Àr en samlande term som hÀnvisar till alla aspekter av en specifik replikabel uppsÀttning data. Vi kommer att definiera vÄr resurs i filen /etc/drbd.d/test.res.

LÀgg till följande i filen pÄ bÄda noderna (glöm inte att ersÀtta variablerna med faktiska vÀrden för din miljö).

Observera vÀrdnamnen, vi behöver ange det nÀtverksnamn som kan fÄs med kommandot uname -n.

resurs test {
        pÄ tecmint.tecmint.lan {
 		enhet /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk intern;	
                	adress 192.168.56.101:7789;
        }
        pÄ server1.tecmint.lan  {
		enhet /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk intern;
                	adress 192.168.56.102:7789;
        }
}
}

dÀr:

  • pĂ„ vĂ€rdnamn: avsnitt som den inbĂ€ddade konfigurationsoperatorn hör till.
  • test: namnet pĂ„ den nya resursen.
  • device /dev/drbd0: anger en ny virtuell blockenhet som hanteras av DRBD.
  • disk /dev/sdb1: detta Ă€r blockenhetens partition som Ă€r en reserv för DRBD-enheten.
  • meta-disk: definierar var DRBD lagrar sin metadata. Internal betyder att DRBD lagrar sin metadata pĂ„ samma fysiska lĂ„g-nivĂ„ enhet som sjĂ€lva produktionen.
  • address: angiver IP-adressen och portnumret för den aktuella noden.

Observera ocksÄ att om parametrarna har samma vÀrden pÄ bÄda vÀrdarna kan du ange dem direkt i resurssektionen.

Till exempel kan ovanstÄende konfiguration omstruktureras till:

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

Steg 5. Initiering och start av resursen

För att interagera med DRBD kommer vi att anvÀnda följande administrationsverktyg (som interagerar med kÀrnmodulen för att konfigurera och administrera DRBD-resurser):

  • drbdadm: hög nivĂ„ administrationsverktyg för DRBD.
  • drbdsetup: lĂ€gre nivĂ„ administrationsverktyg för att koppla DRBD-enheter till sina backup-enheter, konfigurera par av DRBD-enheter för att spegla sina backup-enheter och kontrollera konfigurationen av aktiva DRBD-enheter.
  • Drbdmeta: metadatahanteringsverktyg.

Efter att ha lagt till alla initiala konfigurationer av resursen mÄste vi aktivera resursen pÄ bÄda noderna.

# drbdadm create-md test

Konfigurera DRBD för lagringsreplikering pÄ tvÄ CentOS 7-servrar
Initiering av metadata-lagring

DÀrefter mÄste vi starta den, vilket kopplar resursen till sin backup-enhet, stÀller in replikeringsinstÀllningarna och kopplar resursen till sin peer:

# drbdadm up test

Om du nu kör kommandot lsblk, kommer du att mÀrka att enheten/tomten DRBD drbd0 Àr kopplad till backup-enheten /dev/sdb1:

# lsblk

Konfigurera DRBD för lagringsreplikering pÄ tvÄ CentOS 7-servrar
Lista över blockenheter

För att koppla bort resursen, anvÀnd:

# drbdadm down test

För att kontrollera resursens status, kör följande kommando (notera att vid detta stadium förvÀntas diskarnas tillstÄnd Inconsistent/Inconsistent):

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

Konfigurera DRBD för lagringsreplikering pÄ tvÄ CentOS 7-servrar
Kontrollerar resursens status pÄ
noder

Steg 6: Installera primÀr resurs/kÀlla för enhetens initiala synkronisering

Vid det hÀr laget Àr DRBD redan klart att anvÀndas. Nu mÄste vi ange vilken nod som ska anvÀndas som kÀlla för den initiala synkroniseringen av enheterna.

Kör följande kommando endast pÄ en nod för att pÄbörja den första fullstÀndiga synkroniseringen:

# drbdadm primary --force test
# drbdadm status test

Konfigurera DRBD för lagringsreplikering pÄ tvÄ CentOS 7-servrar
SĂ€tta huvudnoden som den initiala enheten.
NÀr synkroniseringen Àr klar bör statusen för bÄda diskarna vara UpToDate.

Steg 7: Testning av DRBD-instÀllningen.

Slutligen behöver vi kontrollera om DRBD-enheten fungerar som avsett för lagring av replikerade data. Kom ihÄg att vi anvÀnde ett tomt diskvolym, sÄ vi mÄste skapa ett filsystem pÄ enheten och montera det för att kontrollera om vi kan anvÀnda det för lagring av replikerade data.

Vi behöver skapa ett filsystem pÄ enheten med följande kommando pÄ noden som vi började den initiala fullstÀndiga synkroniseringen (dÀr resursen har huvudrollen):

# mkfs -t ext4 /dev/drbd0

Konfigurera DRBD för lagringsreplikering pÄ tvÄ CentOS 7-servrar
Skapar ett filsystem pÄ Drbd-volymen.

Montera sedan detta som visas (du kan ge monteringspunkten ett lÀmpligt namn):

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

Kopiera eller skapa nÄgra filer i den angivna monteringspunkten ovan och gör en lÄng lista med hjÀlp av kommandot ls.:

# cd /mnt/DRDB_PRI/
# ls -l 

Konfigurera DRBD för lagringsreplikering pÄ tvÄ CentOS 7-servrar
Visa innehÄllet i huvudvolymen Drbd.

DÀrefter avmontera enheten (se till att monteringen inte Àr öppen, byt katalog efter avmontering för att undvika fel) och Àndra nodens roll frÄn primÀr till sekundÀr:

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

Gör den andra noden (dÀr resursen har sekundÀr roll) till primÀr, koppla sedan enheten till den och utför en lÄng lista över monteringspunkter. Om instÀllningen fungerar som den ska, bör alla filer som lagras pÄ volymen finnas dÀr:

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

Konfigurera DRBD för lagringsreplikering pÄ tvÄ CentOS 7-servrar
Kontroll av DRBD-instÀllningen som körs pÄ den sekundÀra noden.

För mer information hÀnvisa till administrationsverktygens referenssidor:

# man drbdadm
# man drbdsetup
# man drbdmeta

HÀnvisning: DRBD anvÀndarmanual..

Sammanfattning

DRBD Àr oerhört flexibelt och mÄngsidigt, vilket gör det till en lösning för lagringsreplikering, lÀmplig för att lÀgga till HA i praktiskt taget varje applikation. I denna artikel har vi visat hur man installerar DRBD pÄ CentOS 7 och kort demonstrerat hur man anvÀnder det för lagringsreplikering. Tveka inte att dela dina tankar med oss via feedbackformulÀret nedan.

LĂ€s mer om kursen.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster