Configuración DRBD · 5 min read · Jan 28, 2026
Configuración de muestra de DRBD en CentOS 4.5
Configuración de muestra de DRBD en CentOS 4.5
¿Qué es DRBD?
DRBD es una abreviatura de Distributed Replicated Block Device. DRBD es un dispositivo de bloque diseñado para construir clústeres de alta disponibilidad. Esto se hace mediante la replicación de un dispositivo de bloque completo a través de una red (dedicada). Se puede ver como un RAID1 en red.
Requisitos previos de configuración:
Utilicé dos nodos con la siguiente configuración del sistema:
- cnode1.rnd (nombre de host) con la dirección IP 172.16.4.80. Sistema operativo CentOS 4.5, dos discos duros SCSI de 18 GB. En cuanto a la partición, utilicé el siguiente esquema en cnode1.rnd: /dev/sda1 / 13257MB ext3 primaria /dev/sda2 4095MB swap primaria /dev/sdb1 sin montar 128MB ext3 primaria (para los metadatos de DRBD) /dev/sdb2 sin montar 4306MB ext3 primaria (utilizado como Disco de DRBD)
- cnode2.rnd (nombre de host) con la dirección IP 172.16.4.81. Sistema operativo CentOS 4.5, un disco IDE de 10 GB. El siguiente esquema de partición se utilizó en cnode2.rnd: /dev/hda1 / 4503MB ext3 primaria /dev/hda2 769MB swap primaria /dev/hda3 sin montar 128MB ext3 primaria (para los metadatos de DRBD) /dev/hda4 sin montar 4306MB ext3; primaria (utilizado como Disco de DRBD)
Los tamaños y nombres de las particiones pueden variar según la capacidad del disco y los discos duros utilizados. Puede definir un esquema de partición según sus requisitos.
Mi archivo /etc/hosts en ambos nodos (cnode1.rnd y cnode2.rnd) se ve así:
127.0.0.1 localhost.localdomain localhost
172.16.4.80 cnode1.rnd cnode2
172.16.4.81 cnode2.rnd cnode3
Instalación de DRBD:
Instale el software DRBD y el módulo del kernel de DRBD en cnode1.rnd y cnode2.rnd:
yum install -y kmod-drbd drbd Cargue el módulo del kernel de DRBD con insmod:
insmod /lib/modules/2.6.9-55.0.9.EL/extra/drbd.ko Verifique con lsmod que el módulo esté cargado. Si ve DRBD, entonces pase a la sección de configuración de muestra.
Configuración de DRBD:
El archivo de configuración de DRBD es /etc/drbd.conf. Así que editaremos este archivo y haremos los siguientes cambios en él y lo copiaremos al otro nodo ( /etc/drbd.conf será el mismo en ambos nodos).
En cnode1.rnd edite este archivo con cualquier editor. Estoy usando vi:
vi /etc/drbd.conf resource r0 {
protocol C;
incon-degr-cmd "halt -f";
startup {
degr-wfc-timeout 120; # 2 minutos.
}
disk {
on-io-error detach;
}
net {
}
syncer {
rate 3M;
group 1;
al-extents 257;
}
on cnode1.rnd {
device /dev/drbd0;
disk /dev/sdb2;
address 172.16.4.80:7789;
meta-disk /dev/sdb1[0];
}
on cnode2.rnd {
device /dev/drbd0;
disk /dev/hda4;
address 172.16.4.81:7789;
meta-disk /dev/hda3[0];
}
}
Guarde sus cambios y cópielo al otro nodo (cnode2.rnd):
scp /etc/drbd.conf [email protected]:/etc/ Ahora vamos a iniciar el demonio DRBD en ambos nodos, pero antes de esto queremos iniciar el demonio DRBD en el próximo reinicio. Para esto utilizaremos el comando chkconfig en ambos nodos.
chkconfig --level 235 drbd on /etc/init.d/drbd start Descubrirá que DRBD ha comenzado el proceso de sincronización. Puede verlo en ejecución:
/etc/init.d/drbd status o
cat /proc/drbd Detalles técnicos de configuración de drbd.conf:
Protocolos:
- Una operación de escritura se completa tan pronto como los datos se escriben en el disco y se envían a la red.
- Una operación de escritura B se completa tan pronto como llega un reconocimiento de recepción.
- Una operación de escritura C se completa tan pronto como llega un reconocimiento de escritura.
Nombre de host:
Debe coincidir exactamente con la salida de
uname -n Dispositivo:
El nodo de dispositivo a usar: /dev/drbd0 - dispositivo de bloque DRBD.
Dirección, Puerto:
La dirección inet y el puerto a los que vincularse localmente, o a los que conectarse al nodo asociado.
Meta-disco:
Los discos para almacenar metadatos. DRBD le permite colocar sus metadatos en el mismo dispositivo de respaldo donde coloca los datos de producción utilizables (metadatos internos), o en un dispositivo de bloque separado (metadatos externos). He asignado 128 MB para metadatos en un dispositivo de bloque de metadatos externo. Sin embargo, puede consultar la tabla a continuación para estimar los tamaños de metadatos
| Tamaño del dispositivo de bloque | Metadatos de DRBD |
| 1 GB | 2 MB |
| 100 GB | 5 MB |
| 1 TB | 33 MB |
| 4 TB | 128 MB |
incon-degr-cmd:
¿Qué se debe hacer en caso de que el clúster se inicie en modo degradado, pero sepa que tiene datos inconsistentes (el dispositivo de nivel inferior informa un error de io)?
on-io-error detach:
Si el dispositivo de nivel inferior informa un error de io, el nodo elimina su dispositivo de almacenamiento de respaldo y continúa en modo sin disco.
degr-wfc-timeout:
Esperar el tiempo de espera de conexión, si este nodo era un clúster degradado. Esto se utiliza en lugar de wfc-timeout (esperar el tiempo de espera del clúster).
Syncer:
Limitar el ancho de banda utilizado por el proceso de resynchronización.
grupo:
Todos los dispositivos en un grupo se resynchronizan en paralelo. La resynchronización de grupos se realiza de forma serial en orden ascendente.
Al-extents:
Realiza automáticamente la detección de áreas calientes. Con este parámetro controla cuán grande puede ser el área caliente. Cada extensión marca 4M del almacenamiento de respaldo (=dispositivo de nivel inferior). En caso de que un nodo primario abandone el clúster inesperadamente, las áreas cubiertas por el conjunto activo deben ser resincronizadas al volver a unirse el nodo fallido. La estructura de datos se almacena en el área de metadatos, por lo tanto, cada cambio de conjunto activo es una operación de escritura en el dispositivo de metadatos. Un número mayor de extensiones da tiempos de resincronización más largos pero menos actualizaciones a los metadatos.
Lo que se debe y no se debe hacer:
No intente montar un DRBD en estado secundario. ¡Una vez que configure DRBD, nunca lo eluda ni acceda directamente al dispositivo subyacente!
Probar DRBD:
Haga que cnode1.rnd sea primario y monte el dispositivo de bloque del nodo primario (cnode1.rnd) en /mnt/disk:
drbdsetup /dev/drbd0 primary --do-what-I-say mount /dev/drbd0 /mnt/disk Copie algunos archivos y carpetas en él:
cp -r /root/documents /mnt/disk Ahora desmonte el dispositivo de bloque de DRBD y haga que el nodo primario sea “secundario”:
umount /mnt/disk/ drbdadm secondary all Haga que cnode2.rnd sea primario y monte el dispositivo de bloque en /mnt/disk:
drbdsetup /dev/drbd0 primary --do-what-I-say mount /dev/drbd0 /mnt/diskDescubrirá que los documentos existen en cnode2.rnd.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.