Com configurar DRBD per replicar l'emmagatzematge en dos servidors CentOS 7


El DRBD (significa Distributed Replicated Block Device) és una solució d'emmagatzematge replicada distribuïda, flexible i versàtil per a Linux. Reflecteix el contingut de dispositius de bloc com ara discs durs, particions, volums lògics, etc. entre servidors. Implica una còpia de dades en dos dispositius d'emmagatzematge, de manera que si un falla, es poden utilitzar les dades de l'altre.

Podeu pensar-ho com una configuració de xarxa RAID 1 amb els discs reflectits en servidors. Tanmateix, funciona d'una manera molt diferent del RAID i fins i tot del RAID de xarxa.

Originalment, DRBD s'utilitzava principalment en clústers d'ordinadors d'alta disponibilitat (HA), però, a partir de la versió 9, es pot utilitzar per implementar solucions d'emmagatzematge al núvol.

En aquest article, mostrarem com instal·lar DRBD a CentOS i demostrarem breument com utilitzar-lo per replicar l'emmagatzematge (partició) en dos servidors. Aquest és l'article perfecte per començar a utilitzar DRBD a Linux.

Als efectes d'aquest article, estem utilitzant dos clústers de nodes per a aquesta configuració.

  • Node1: 192.168.56.101 – tecmint.tecmint.lan
  • Node2: 192.168.56.102 – server1.tecmint.lan

Pas 1: instal·lació de paquets DRBD

DRBD s'implementa com a mòdul del nucli Linux. Constitueix precisament un controlador per a un dispositiu de bloc virtual, de manera que s'estableix just a la part inferior de la pila d'E/S d'un sistema.

DRBD es pot instal·lar des dels repositoris ELRepo o EPEL. Comencem per importar la clau de signatura del paquet ELRepo i habilitem el dipòsit tal com es mostra als dos nodes.

# 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

A continuació, podem instal·lar el mòdul del nucli DRBD i les utilitats als dos nodes executant:

# yum install -y kmod-drbd84 drbd84-utils

Si teniu SELinux habilitat, heu de modificar les polítiques per eximir els processos DRBD del control de SELinux.

# semanage permissive -a drbd_t

A més, si el vostre sistema té un tallafoc habilitat (firewalld), heu d'afegir el port DRBD 7789 al tallafoc per permetre la sincronització de dades entre els dos nodes.

Executeu aquestes ordres al primer 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

A continuació, executeu aquestes ordres al segon 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

Pas 2: preparació d'emmagatzematge de nivell inferior

Ara que tenim DRBD instal·lat als dos nodes del clúster, hem de preparar una àrea d'emmagatzematge de mida aproximadament idèntica als dos nodes. Pot ser una partició del disc dur (o un disc dur físic complet), un dispositiu RAID de programari, un volum lògic LVM o qualsevol altre tipus de dispositiu de bloc que es trobi al vostre sistema.

Per als propòsits d'aquest article, crearem un dispositiu de bloc fictici de mida de 2 GB mitjançant l'ordre dd.

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

Assumirem que es tracta d'una partició no utilitzada (/dev/sdb1) en un segon dispositiu de bloc (/dev/sdb) connectat als dos nodes.

Pas 3: Configuració de DRBD

El fitxer de configuració principal de DRBD es troba a /etc/drbd.conf i es poden trobar fitxers de configuració addicionals al directori /etc/drbd.d.

Per replicar l'emmagatzematge, hem d'afegir les configuracions necessàries al fitxer /etc/drbd.d/global_common.conf que conté les seccions globals i comunes de la configuració DRBD i podem definir recursos en fitxers .res.

Fem una còpia de seguretat del fitxer original als dos nodes i, a continuació, obrim un fitxer nou per editar-lo (utilitzeu un editor de text que us agradi).

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

Afegiu les línies següents als dos fitxers:

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

Deseu el fitxer i tanqueu l'editor.

Ombrem breument més llum sobre el protocol de línia C. DRBD admet tres modes de replicació diferents (per tant, tres graus de sincronicitat de replicació) que són:

  • protocol A: protocol de replicació asíncrona; s'utilitza més sovint en escenaris de replicació a llarga distància.
  • protocol B: protocol de replicació semi-síncrona, també conegut com a protocol síncron de memòria.
  • protocol C: s'utilitza habitualment per a nodes de xarxes de curta distància; és, amb diferència, el protocol de rèplica més utilitzat a les configuracions DRBD.

Important: L'elecció del protocol de replicació influeix en dos factors del vostre desplegament: la protecció i la latència. I el rendiment, per contra, és en gran mesura independent del protocol de replicació seleccionat.

Pas 4: afegir un recurs

Un recurs és el terme col·lectiu que fa referència a tots els aspectes d'un conjunt de dades replicat concret. Definirem el nostre recurs en un fitxer anomenat /etc/drbd.d/test.res.

Afegiu el contingut següent al fitxer, als dos nodes (recordeu substituir les variables del contingut amb els valors reals del vostre entorn).

Preneu nota dels noms d'amfitrió, hem d'especificar el nom d'amfitrió de la xarxa que es pot obtenir executant l'ordre 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;
        }
}
}

on:

  • on nom de l'amfitrió: la secció on indica a què allotgen les declaracions de configuració adjuntes.
  • prova: és el nom del nou recurs.
  • dispositiu /dev/drbd0: especifica el nou dispositiu de bloc virtual gestionat per DRBD.
  • disk /dev/sdb1: és la partició del dispositiu de bloc que és el dispositiu de suport per al dispositiu DRBD.
  • meta-disk: defineix on DRBD emmagatzema les seves metadades. L'ús d'Intern significa que DRBD emmagatzema les seves metadades al mateix dispositiu físic de nivell inferior que les dades de producció reals.
  • adreça: especifica l'adreça IP i el número de port del node respectiu.

Tingueu en compte també que si les opcions tenen valors iguals als dos amfitrions, podeu especificar-les directament a la secció de recursos.

Per exemple, la configuració anterior es pot reestructurar per:

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

Pas 5: Inicialització i activació del recurs

Per interactuar amb DRBD, utilitzarem les següents eines d'administració que es comuniquen amb el mòdul del nucli per configurar i administrar els recursos DRBD:

  • drbdadm: una eina d'administració d'alt nivell del DRBD.
  • drbdsetup: una eina d'administració de nivell inferior per connectar dispositius DRBD amb els seus dispositius de bloc de suport, per configurar parells de dispositius DRBD per reflectir els seus dispositius de bloc de suport i per inspeccionar la configuració dels dispositius DRBD en execució.
  • Drbdmeta:és l'eina de gestió de metadades.

Després d'afegir totes les configuracions inicials de recursos, hem de mostrar el recurs als dos nodes.

# drbdadm create-md test

A continuació, hauríem d'habilitar el recurs, que connectarà el recurs amb el seu dispositiu de suport, després estableix els paràmetres de replicació i connecta el recurs al seu igual:

# drbdadm up test

Ara, si executeu l'ordre lsblk, notareu que el dispositiu DRBD/volum drbd0 està associat amb el dispositiu de suport /dev/sdb1:

# lsblk

Per desactivar el recurs, executeu:

# drbdadm down test

Per comprovar l'estat del recurs, executeu l'ordre següent (tingueu en compte que s'espera l'estat del disc inconsistent/incoherent en aquest moment):

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

Pas 6: Definiu el recurs primari/font de la sincronització inicial del dispositiu

En aquesta fase, DRBD ja està a punt per funcionar. Ara hem de dir-li quin node s'ha d'utilitzar com a font de la sincronització inicial del dispositiu.

Executeu l'ordre següent només en un node per iniciar la sincronització completa inicial:

# drbdadm primary --force test
# drbdadm status test

Un cop finalitzada la sincronització, l'estat dels dos discs hauria de ser UpToDate.

Pas 7: provant la configuració de DRBD

Finalment, hem de provar si el dispositiu DRBD funcionarà bé per a l'emmagatzematge de dades replicades. Recordeu que hem utilitzat un volum de disc buit, per tant hem de crear un sistema de fitxers al dispositiu i muntar-lo per provar si el podem utilitzar per a l'emmagatzematge de dades replicats.

Podem crear un sistema de fitxers al dispositiu amb la següent comanda, al node on hem iniciat la sincronització completa inicial (que té el recurs amb rol principal):

# mkfs -t ext4 /dev/drbd0 

A continuació, munteu-lo tal com es mostra (podeu donar un nom adequat al punt de muntatge):

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

Ara copieu o creeu alguns fitxers al punt de muntatge anterior i feu una llista llarga utilitzant l'ordre ls:

# cd /mnt/DRDB_PRI/
# ls -l 

A continuació, desmunteu el dispositiu (assegureu-vos que el muntatge no estigui obert, canvieu el directori després de desmuntar-lo per evitar errors) i canvieu el paper del node de primari a secundari:

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

A l'altre node (que té el recurs amb un paper secundari), feu-lo principal, després munteu-hi el dispositiu i feu una llista llarga del punt de muntatge. Si la configuració funciona bé, tots els fitxers emmagatzemats al volum haurien d'estar allà:

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

Per obtenir més informació, consulteu les pàgines man de les eines d'administració de l'espai d'usuari:

# man drbdadm
# man drbdsetup
# man drbdmeta

Referència: Guia de l'usuari de DRBD.

DRBD és extremadament flexible i versàtil, cosa que la converteix en una solució de replicació d'emmagatzematge adequada per afegir HA a gairebé qualsevol aplicació. En aquest article, hem mostrat com instal·lar DRBD a CentOS 7 i hem demostrat breument com utilitzar-lo per replicar l'emmagatzematge. No dubteu a compartir els vostres pensaments amb nosaltres mitjançant el formulari de comentaris a continuació.