Instalación de DRBD
Introducción
Distributed Replicated Block Device (DRBD) é un sistema de replicación distribuído similar ao RAID 1 entre dispositivos de bloques (discos, particións, volumes lóxicos...) en rede. Normalmente únicamente un nodo está activo, mentras que o outro está en modo pasivo copiando os cambios realizados no nodo activo, aínda que tamén se pode configurar un modo dual primary, no que é posible ler e escribir simultáneamente nos dous nodos, o que require sistemas de arquivos especiais como OCFS2 ou GFS2. No noso caso, configuraremos un sistema single primary no que únicamente un nodo poderá acceder ao recurso nun instante determiñado.
Creación do sistema DRBD
En primeiro lugar precisamos instalar as utilidades DRBD, xa que o resto ven de serie nos últimos núcleos Linux:
apt-get install drbd8-utils
DRBD soporta tres modos de replicación:
- Modo A - Asíncrono. Unha vez escritos os datos no nodo principal se considera a operación finalizada.
- Modo B - Síncrono na memoria. Se considera finalizada a operación unha vez escritos os datos no nodo principal e recibidos no nodo secundario
- Modo C - Síncrono. Se considera finalizada a operación cando os datos se escriban nos dous nodos.
Utilizaremos o protocolo C por ser o máis seguro, aínda que probablemente co modo B obteríamos un maior rendimento con pouca perda de seguridade.
A configuración debe ser idéntica nos dous nodos, e se realiza no directorio /etc/drbd.d. O ficheiro global-common.conf conten configuracións globais do sistema DRBD para todos os recursos configurados (deixaremos os seus valores por defecto), e para cada recurso que queiramos crear editaremos un ficheiro nomerecurso.res, no que indicaremos a configuración para o recurso. No noso caso, a configuración nos dous nodos gandalf.iesrodeira.com e earendil.iesrodeira.com estará nun ficheiro r0.res:
resource r0 {
net {
#on-congestion pull-ahead;
#congestion-fill 1G;
#congestion-extents 3000;
#sndbuf-size 1024k;
sndbuf-size 0;
max-buffers 8000;
max-epoch-size 8000;
timeout 60;
}
disk {
#no-disk-barrier;
#no-disk-flushes;
no-md-flushes;
}
syncer {
c-plan-ahead 20;
c-fill-target 50k;
c-min-rate 10M;
al-extents 3833;
rate 35M;
use-rle;
}
startup {
become-primary-on gandalf.iesrodeira.com ;
#wfc-timeout 30;
#degr-wfc-timeout 15;
}
protocol C;
device minor 1;
meta-disk internal;
on gandalf.iesrodeira.com {
address 172.21.1.200:7801;
disk /dev/Gandalf/servers;
device /dev/drbd0;
}
on earendil.iesrodeira.com {
address 172.21.1.100:7801;
disk /dev/Earendil/servers;
device /dev/drbd0;
}
}
Os dispositivos de bloques que formarán o DRBD deben ser do mesmo tamaño. En este caso serán os volumes lóxicos LVM /dev/Gandalf/servers e /dev/Earendil/servers, que formarán o dispositivo /dev/drbd0 mediante o que accederemos ao recurso no nodo activo, que será gandalf.iesrodeira.com.
Cando creamos o dispositivo DRBD é necesario almacenar información sobre o mesmo. Esta información pode almacenarse no propio dispositivo (internal metadata) ou nun dispositivo externo (external metadata). No noso caso empregamos internal metadata.