DRBD y Heartbeat

Esquema funcional

Ejemplo: Proyecto Zaragoza

El propósito es que si el nodo principal (master -> drbdm-zaragoza) sufre una caida o cualquier otro percance por lo que pudiera quedar inutilizado, automáticamente esos 3 servicios pasarían a ser ofrecidos por el nodo secundario (slave -> drbds-zaragoza) sin necesidad de intervenir para nada, salvo para solucionar el problema del nodo primario, el cual una vez recuperado volverá a ofrecer los servicios.

Hay que tener en cuanta que la HA se ofrece a nivel de hardware, es decir, que si los nodos no sufren ningún percance y alguno de los servicios se quedara bloqueado, este seguiría siendo ofrecido por el primario sin pasar el control al nodo secundario, por lo que habría que solucionarlo sin estar siendo ofrecido, o bien parar heartbeat para simular la caida del nodo y que todo pasara al nodo secundario.

Hardware:
Servidores: 2 Dell R300 idénticos
Linux drbds-zaragoza 2.6.24-26-server #1 SMP Tue Dec 1 19:19:20 UTC 2009 i686 GNU/Linux
Linux drbdm-zaragoza 2.6.24-26-server #1 SMP Tue Dec 1 19:19:20 UTC 2009 i686 GNU/Linux
4 x Intel(R) Xeon(R) CPU X3363 @ 2.83GHz
4 GB RAM
2 HD 146 GB RAID 1

Software:
- SO: Ubuntu Server 8.04.4 LTS
- HA: drbd8 y heartbeat

Particiones:

- 100 MB /boot ext3 primaria
- 20 GB / ext3 primaria
- 1 GB /tmp ext3 primaria
- 2 GB swap lógica
- 33.1 GB /home lógica
- 30 GB no montar
- 30 GB no montar
- 30 GB no montar

Una vez realizadas las instalaciones básicas y securizadas las máquinas, los siguientes pasos a dar serían:

- En los 2 -

Instalar lamp: http://www.vensign.com/blog/como-instalar-servidor-lamp-ubuntu-paso-a-paso.html

#Crear estructura de replicación DRBD
cd /
mkdir drbd
cd drbd
mkdir mysql www webapps

#Instalar y configurar DRBD
apt-get install drbd8-utils build-essential module-assistant

cd /etc/

cp drbd.conf /root/etc/

vi drbd.conf

global {
  usage-count no;
}

common {
  protocol C;

  disk {
    on-io-error detach;
  }

  net {
    max-buffers 2048;
    ko-count 4;
  }

  syncer {
    rate 30M;
  }

  startup {
    wfc-timeout 0;
    degr-wfc-timeout 120; # 2 minutos.
  }
}

resource mysql {
  on drbdm-zaragoza {
    device    /dev/drbd0;
    disk      /dev/sda7;
    address   10.0.0.210:7788;
    meta-disk internal;
  }
  on drbds-zaragoza {
    device    /dev/drbd0;
    disk      /dev/sda7;
    address   10.0.0.211:7788;
    meta-disk internal;
  }
}

resource www {
  on drbdm-zaragoza {
    device    /dev/drbd1;
    disk      /dev/sda8;
    address   10.0.0.210:7789;
    meta-disk internal;
  }
  on drbds-zaragoza {
    device    /dev/drbd1;
    disk      /dev/sda8;
    address   10.0.0.211:7789;
    meta-disk internal;
  }
}

resource webapps {
  on drbdm-zaragoza {
    device    /dev/drbd2;
    disk      /dev/sda9;
    address   10.0.0.210:7790;
    meta-disk internal;
  }
  on drbds-zaragoza {
    device    /dev/drbd2;
    disk      /dev/sda9;
    address   10.0.0.211:7790;
    meta-disk internal;
  }
}

NOTA: Configurar la sincronización

El ancho de banda máximo disponible para la sincronizacion entre ambos nodos se especifica en el apartado "syncer". Es necesario dejar ancho de banda suficiente libre en la conexión eth1 para que la sincronización complete lo antes posible, dejando ancho de banda suficiente para otras tareas.

No tiene sentido sincronizar a un ritmo superior a la capacidad de escritura (I/O) del nodo secundario, ni más alta que la capacidad de la red. Una buena regla, es usar el 30% del ancho de banda disponible para replicación.

En este caso, nuestro sistema I/O es capaz de mantener una transferencia de 175MB/s, con una conexión gigabit, capaz de mantener una transferencia de 100MB/s, por lo tanto:

Syncer rate example, 100MB/s effective available bandwidth:

100 * 0.3 = 30 MB/s

Para averiguar la capacidad de nuestro sistema I/O se ha utilizado el siguiente comando:

time dd if=/dev/sda of=/dev/null bs=10M count=100

- En drbdm-zaragoza -

#Permitir conexiones entre ambos nodos
vi /etc/hosts

10.0.0.211      drbds-zaragoza.luismido.com        drbds-zaragoza

vi /etc/shorewall/rules

#
# ACCEPT drbds-zaragozaI
#

ACCEPT  eth1:10.0.0.211/32    $FW     tcp     7788
ACCEPT  eth1:10.0.0.211/32    $FW     tcp     7789
ACCEPT  eth1:10.0.0.211/32    $FW     tcp     7790

- En drbds-zaragoza -

#Permitir conexiones entre ambos nodos
vi /etc/hosts

10.0.0.210      drbdm-zaragoza.luismido.com        drbdm-zaragoza

vi /etc/shorewall/rules

#
# ACCEPT drbdr-zaragoza
#

ACCEPT  eth1:10.0.0.210/32    $FW     tcp     7788
ACCEPT  eth1:10.0.0.210/32    $FW     tcp     7789
ACCEPT  eth1:10.0.0.210/32    $FW     tcp     7790

- En los 2 -

#Formatear las particiones por si no fuera una instalación inicial
/etc/init.d/shorewall restart

dd if=/dev/zero bs=1M count=1 of=/dev/sda7; sync
dd if=/dev/zero bs=1M count=1 of=/dev/sda8; sync
dd if=/dev/zero bs=1M count=1 of=/dev/sda9; sync

drbdadm create-md all
/etc/init.d/drbd start

- En drbdm-zaragoza -

#Establecer que será el principal
drbdsetup /dev/drbd0 primary -o
drbdsetup /dev/drbd1 primary -o
drbdsetup /dev/drbd2 primary -o

- En los 2 -

#Visualizar la sincronización
watch -n 1 cat /proc/drbd

IMPORTANTE

En la 2ª instalación, porque había que cambiar las ips, me daba error: "Split-Brain detected, dropping connection!"

Para solucionarlo:

#En drbds-zaragoza:
drbdadm secondary all
drbdadm -- --discard-my-data connect all

#En drbdm-zaragoza:
drbdadm connect all

- En drbdm-zaragoza -

#Crear sistema de ficheros
mkfs.ext3 /dev/drbd0
mkfs.ext3 /dev/drbd1
mkfs.ext3 /dev/drbd2
mount /dev/drbd0 /drbd/mysql
mount /dev/drbd1 /drbd/www
mount /dev/drbd2 /drbd/webapps

- En los 2 -

#Instalar heartbeat
apt-get install heartbeat

- En drbdm-zaragoza -

#Configurar heartbeat
cd /usr/share/doc/heartbeat/
cp haresources.gz authkeys ha.cf.gz /etc/ha.d

cp logd.cf /etc/ # Si no está no pasa nada ya que lo editamos mas abajo...

cd /etc/ha.d

gunzip ha.cf.gz
gunzip haresources.gz

vi authkeys

auth 3
3 md5 drbdm-drbds-zaragoza

chmod 600 authkeys

vi ha.cf

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility     local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
bcast   eth1
auto_failback on
node    drbdm-zaragoza
node    drbds-zaragoza

#Permitir conexión entre ambos nodos
vi /etc/shorewall/rules

#
# ACCEPT Heartbeat drbds-zaragoza
#

ACCEPT  eth1:10.0.0.211/32      $FW     udp     694

#Establecer quién será el nodo principal, los resources a controlar, el tipo de sistema de ficheros, donde montarlos, la ipv sobre la que llegarán las peticiones y qué servicios controlar.
vi haresources

drbdm-zaragoza drbddisk::mysql Filesystem::/dev/drbd0::/drbd/mysql::ext3 drbddisk::www Filesystem::/dev/drbd1::/drbd/www::ext3 drbddisk::webapps Filesystem::/dev/drbd2::/drbd/webapps::ext3 IPaddr2::10.0.0.213/24/eth1 tomcat5.5 apache2 mysql

vi /etc/logd.cf
logfacility     daemon

#Copiamos los archivos de configuración al otro nodo.
scp -i /home/ldiaz/.ssh/id_rsa -P 2222 authkeys haresources ha.cf ldiaz@192.168.1.198:~
scp -i /home/ldiaz/.ssh/id_rsa -P 2222 ../logd.cf  ldiaz@192.168.1.198:~

- En drbds-zaragoza -

#Archivos de configuración del heartbeat
cd /home/ldiaz/
chown root:root haresources ha.cf authkeys logd.cf
mv haresources ha.cf authkeys /etc/ha.d/
mv logd.cf /etc/

#Permitir comunicación entre ambos nodos
vi /etc/shorewall/rules

#
# ACCEPT Heartbeat drbdr-zaragoza
#

ACCEPT  eth1:10.0.0.210/32      $FW     udp     694

- En los 2 -

#Instalar tomcat5.5 y configurarlo para que trabaje con apache2
http://luismido.wikidot.com/apache2-y-tomcat5-5-conectados

#Permisos y propietarios en la estructura de apache
chown ulysse:ulysse /drbd
cd /drbd/
cp /var/www/index.html www/.
chown ulysse:www-data -R www/
chmod 2750 -R www/
chmod 0750 -R www/

#Adecuarlo a los dominios que se tengan
vi /etc/apache2/sites-enabled/000-default

DocumentRoot /drbd/www/
<Directory /drbd/www/>

/etc/init.d/apache2 restart

#Comprobar que apache funciona
http://192.168.1.197/
http://192.168.1.198/

#Permisos y propietarios en la estructura de tomcat
chown tomcat55:www-data -R webapps/
chmod 2750 -R webapps/
chmod 0750 -R webapps/

cd /usr/share/tomcat5.5/
mv webapps webapps.`date +%d%m%g`
ln -s /drbd/webapps

cd /var/lib/tomcat5.5/
mv webapps webapps.`date +%d%m%g`
ln -s /drbd/webapps

/etc/init.d/tomcat5.5 restart

#Comprobar que tomcat funciona
http://192.168.1.197:8180/
http://192.168.1.198:8180/

#Estructura de mysql
/etc/init.d/mysql stop

chown -R mysql.mysql mysql/
mv /var/lib/mysql/* mysql/
cd /var/lib
rmdir mysql
ln -s /drbd/mysql/

#Si existe /etc/apparmor/usr.sbin.mysqld:

# vim:syntax=apparmor
# Last Modified: Tue Jun 19 17:37:30 2007
#include <tunables/global>

/usr/sbin/mysqld {
  #include <abstractions/base>
  #include <abstractions/nameservice>
  #include <abstractions/user-tmp>
  #include <abstractions/mysql>

  capability dac_override,
  capability setgid,
  capability setuid,

  /etc/hosts.allow r,
  /etc/hosts.deny r,

  /etc/group              m,
  /etc/passwd             m,

  /etc/mysql/*.pem r,
  /etc/mysql/conf.d/ r,
  /etc/mysql/conf.d/* r,
  /etc/mysql/my.cnf r,
  /usr/sbin/mysqld mr,
  /usr/share/mysql/** r,
  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,
  /var/log/mysql/ r,
  /var/log/mysql/* rw,
  /var/run/mysqld/mysqld.pid w,
  /var/run/mysqld/mysqld.sock w,
  /drbd/mysql/ r,
  /drbd/mysql/** rwk,
}

/etc/init.d/apparmor restart

#Si no:

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove

#Comprobar que mysql funciona
/etc/init.d/mysql restart
mysql -u root -p

#Como heartbeat se encarga de levantar los servicios, eliminamos sus arranques:
update-rc.d -f mysql remove
update-rc.d -f apache2 remove
update-rc.d -f tomcat5.5 remove

#Comprobar que los servicios no se arrancan al iniciar el servidor
apt-get install sysv-rc-conf
sysv-rc-conf

IMPORTANTE

Al crear la estructura para mysql por 2ª vez se han corrompido los permisos del usuario debian-sys-maint y no permite parar el servicio:

"error: ‘Access denied for user ‘debian-sys-maint’@'localhost’ (using password: YES)’"

para solucionarlo:
http://www.linuxquestions.org/questions/linux-software-2/mysql-debian-sys-maint-password-changed-accident-possible-change-back-216586/

GRANT SHUTDOWN ON *.* TO 'debian-sys-maint'@'localhost';
GRANT SELECT ON `mysql`.`user` TO 'debian-sys-maint'@'localhost';

- En drbdm-zaragoza -

#Paramos todo
/etc/init.d/apache stop
/etc/init.d/tomcat5.5 stop
/etc/init.d/mysql stop
umount /drbd/mysql
umount /drbd/www
umount /drbd/webapps
/etc/init.d/drbd stop
/etc/init.d/heartbeat stop

- En drbds-zaragoza -

#Paramos todo
/etc/init.d/apache stop
/etc/init.d/tomcat5.5 stop
/etc/init.d/mysql stop
/etc/init.d/drbd stop
/etc/init.d/heartbeat stop

- En los 2 -

reboot

Ejemplo: Proyecto Mieres

Hardware:
Servidores: 2 Dell R310 idénticos
Linux mieres1 2.6.32-21-server #32-Ubuntu SMP Fri Apr 16 09:17:34 UTC 2010 x86_64 GNU/Linux
Linux mieres2 2.6.32-21-server #32-Ubuntu SMP Fri Apr 16 09:17:34 UTC 2010 x86_64 GNU/Linux
4 x Intel(R) Xeon(R) CPU X3430 @ 2.40GHz
4 GB RAM
2 HD 500 GB RAID 1

Software:
- SO: Ubuntu 10.04 LTS
- HA: drbd8 y heartbeat

Particiones:

- 100 MB /boot ext3 primaria
- 20 GB / ext3 primaria
- 50 GB /var ext3 primaria
- 1 GB /tmp ext3 lógica
- 50 GB /home lógica
- 8 GB swap lógica
- 50 GB no montar
- 50 GB no montar
- 200 GB no montar
- 70 GB /usr ext3 lógica

Una vez realizadas las instalaciones básicas y securizadas las máquinas, los siguientes pasos a dar serían:

- En los 2 -

Instalar lamp: http://www.vensign.com/blog/como-instalar-servidor-lamp-ubuntu-paso-a-paso.html

#Crear estructura de replicación DRBD
cd /
mkdir drbd
cd drbd
mkdir mysql www webapps

#Instalar y configurar DRBD
apt-get install drbd8-utils build-essential module-assistant

cd /etc/

cp -a drbd.d/ /root/etc/
cp -a drbd.conf /root/etc/

vi drbd.conf

#include "drbd.d/*.res";

vi drbd.d/global_common.conf

global {
  usage-count no;
}

common {
  protocol C;

  disk {
    on-io-error detach;
  }

  net {
    max-buffers 2048;
    ko-count 4;
  }

  syncer {
    rate 30M;
  }

  startup {
    wfc-timeout 0;
    degr-wfc-timeout 120; # 2 minutos.
  }
}

resource mysql {
  on mieres1 {
    device    /dev/drbd0;
    disk      /dev/sda8;
    address   10.0.0.210:7788;
    meta-disk internal;
  }
  on mieres2 {
    device    /dev/drbd0;
    disk      /dev/sda8;
    address   10.0.0.211:7788;
    meta-disk internal;
  }
}

resource www {
  on mieres1 {
    device    /dev/drbd1;
    disk      /dev/sda9;
    address   10.0.0.210:7789;
    meta-disk internal;
  }
  on mieres2 {
    device    /dev/drbd1;
    disk      /dev/sda9;
    address   10.0.0.211:7789;
    meta-disk internal;
  }
}

resource webapps {
  on mieres1 {
    device    /dev/drbd2;
    disk      /dev/sda10;
    address   10.0.0.210:7790;
    meta-disk internal;
  }
  on mieres2 {
    device    /dev/drbd2;
    disk      /dev/sda10;
    address   10.0.0.211:7790;
    meta-disk internal;
  }
}

NOTA: Configurar la sincronización

El ancho de banda máximo disponible para la sincronizacion entre ambos nodos se especifica en el apartado "syncer". Es necesario dejar ancho de banda suficiente libre en la conexión eth1 para que la sincronización complete lo antes posible, dejando ancho de banda suficiente para otras tareas.

No tiene sentido sincronizar a un ritmo superior a la capacidad de escritura (I/O) del nodo secundario, ni más alta que la capacidad de la red. Una buena regla, es usar el 30% del ancho de banda disponible para replicación.

En este caso, nuestro sistema I/O es capaz de mantener una transferencia de 175MB/s, con una conexión gigabit, capaz de mantener una transferencia de 100MB/s, por lo tanto:

Syncer rate example, 100MB/s effective available bandwidth:

 100 * 0.3 = 30 MB/s

Para averiguar la capacidad de nuestro sistema I/O se ha utilizado el siguiente comando:

 time dd if=/dev/sda of=/dev/null bs=10M count=100

- En mieres1 -

#Permitir conexiones entre ambos nodos
vi /etc/hosts

10.0.0.211      mieres2.luismido.com        mieres2

vi /etc/shorewall/rules

#
# ACCEPT apache y tomcat
#

ACCEPT  eth1    $FW     tcp     http
ACCEPT  eth1    $FW     tcp     8080
ACCEPT  eth1    $FW     tcp     8009

#
# ACCEPT mieres2
#

ACCEPT  eth1:10.0.0.211/32    $FW     tcp     7788
ACCEPT  eth1:10.0.0.211/32    $FW     tcp     7789
ACCEPT  eth1:10.0.0.211/32    $FW     tcp     7790

- En mieres2 -

#Permitir conexiones entre ambos nodos
vi /etc/hosts

10.0.0.210      mieres1.luismido.com        mieres1

vi /etc/shorewall/rules

#
# ACCEPT apache y tomcat
#

ACCEPT  eth1    $FW     tcp     http
ACCEPT  eth1    $FW     tcp     8080
ACCEPT  eth1    $FW     tcp     8009

#
# ACCEPT mieres1
#

ACCEPT  eth1:10.0.0.210/32    $FW     tcp     7788
ACCEPT  eth1:10.0.0.210/32    $FW     tcp     7789
ACCEPT  eth1:10.0.0.210/32    $FW     tcp     7790

- En los 2 -

#Reiniciar Shorewall
/etc/init.d/shorewall restart

#Formatear las particiones por si no fuera una instalación inicial
dd if=/dev/zero bs=1M count=1 of=/dev/sda8; sync
dd if=/dev/zero bs=1M count=1 of=/dev/sda9; sync
dd if=/dev/zero bs=1M count=1 of=/dev/sda10; sync

drbdadm create-md all
/etc/init.d/drbd start

- En mieres1 -

#Establecer que será el principal
drbdsetup /dev/drbd0 primary -o
drbdsetup /dev/drbd1 primary -o
drbdsetup /dev/drbd2 primary -o

- En los 2 -

#Visualizar la sincronización
watch -n 1 cat /proc/drbd

- En mieres1 -

#Crear sistema de ficheros
mkfs.ext3 /dev/drbd0
mkfs.ext3 /dev/drbd1
mkfs.ext3 /dev/drbd2
mount /dev/drbd0 /drbd/mysql
mount /dev/drbd1 /drbd/www
mount /dev/drbd2 /drbd/webapps

- En los 2 -

#Instalar heartbeat
apt-get install heartbeat

- En mieres1 -

#Configurar heartbeat
cd /usr/share/doc/heartbeat/
cp haresources.gz authkeys ha.cf.gz /etc/ha.d

cd /etc/ha.d

gunzip ha.cf.gz
gunzip haresources.gz

vi authkeys

auth 3
3 md5 mieres1_to_mieres2

chmod 600 authkeys

vi ha.cf

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility     local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
bcast   eth1
auto_failback off
node    mieres1
node    mieres2

#Permitir conexión entre ambos nodos
vi /etc/shorewall/rules

#
# ACCEPT Heartbeat mieres2
#

ACCEPT  eth1:10.0.0.211/32      $FW     udp     694

#Establecer quién será el nodo principal, los resources a controlar, el tipo de sistema de ficheros, donde montarlos, la ipv sobre la que llegarán las peticiones y qué servicios controlar.
vi haresources

mieres1 drbddisk::mysql Filesystem::/dev/drbd0::/drbd/mysql::ext3 drbddisk::www Filesystem::/dev/drbd1::/drbd/www::ext3 drbddisk::webapps Filesystem::/dev/drbd2::/drbd/webapps::ext3 IPaddr2::10.0.0.213/24/eth1 mysql tomcat5.5 apache2

#Copiamos los archivos de configuración al otro nodo.
scp -i /home/ldiaz/.ssh/id_rsa -P 2222 authkeys haresources ha.cf ldiaz@192.168.1.18:~

- En mieres2 -

#Archivos de configuración del heartbeat
cd /home/ldiaz/
chown root:root haresources ha.cf authkeys
mv haresources ha.cf authkeys /etc/ha.d/

#Permitir comunicación entre ambos nodos
vi /etc/shorewall/rules

#
# ACCEPT Heartbeat mieres1
#

ACCEPT  eth1:10.0.0.210/32      $FW     udp     694

- En los 2 -

#Instalar tomcat6 y configurarlo para que trabaje con apache2

#Permisos y propietarios en la estructura de apache
chown ulysse:ulysse /drbd
cd /drbd/
cp /var/www/index.html www/
chown ulysse:www-data -R www/
chmod 2750 -R www/
chmod 0750 -R www/

#Adecuarlo a los dominios que se tengan
vi /etc/apache2/sites-enabled/000-default

DocumentRoot /drbd/www/
<Directory /drbd/www/>

/etc/init.d/apache2 restart

#Comprobar que apache funciona
http://192.168.1.197/
http://192.168.1.198/

#Permisos y propietarios en la estructura de tomcat
chown tomcat6:www-data -R webapps/
chmod 2750 -R webapps/
chmod 0750 -R webapps/

cd /usr/share/tomcat6/
mv webapps webapps.`date +%d%m%g`
ln -s /drbd/webapps

cd /var/lib/tomcat6/
mv webapps webapps.`date +%d%m%g`
ln -s /drbd/webapps

/etc/init.d/tomcat6 restart

#Comprobar que tomcat funciona
http://192.168.1.197:8080/
http://192.168.1.198:8080/

#Estructura de mysql
/etc/init.d/mysql stop

chown -R mysql.mysql mysql/
mv /var/lib/mysql/* mysql/
cd /var/lib
rmdir mysql
ln -s /drbd/mysql/

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove

#Comprobar que mysql funciona
service mysql restart
mysql -u root -p

#Como heartbeat se encarga de levantar los servicios, eliminamos sus arranques:
update-rc.d -f mysql remove
update-rc.d -f apache2 remove
update-rc.d -f tomcat6 remove

#Comprobar que los servicios no se arrancan al iniciar el servidor
apt-get install sysv-rc-conf
sysv-rc-conf

IMPORTANTE

Al crear la estructura para mysql por 2ª vez se han corrompido los permisos del usuario debian-sys-maint y no permite parar el servicio:

"error: ‘Access denied for user ‘debian-sys-maint’@'localhost’ (using password: YES)’"

para solucionarlo:
http://www.linuxquestions.org/questions/linux-software-2/mysql-debian-sys-maint-password-changed-accident-possible-change-back-216586/

GRANT SHUTDOWN ON *.* TO 'debian-sys-maint'@'localhost';
GRANT SELECT ON `mysql`.`user` TO 'debian-sys-maint'@'localhost';

- En mieres1 -

#Paramos todo
/etc/init.d/apache2 stop
/etc/init.d/tomcat6 stop
service mysql stop
umount /drbd/mysql
umount /drbd/www
umount /drbd/webapps
/etc/init.d/drbd stop
/etc/init.d/heartbeat stop

- En mieres2 -

#Paramos todo
/etc/init.d/apache2 stop
/etc/init.d/tomcat6 stop
/etc/init.d/mysql stop
/etc/init.d/drbd stop
/etc/init.d/heartbeat stop

- En los 2 -

reboot

NOTA

En mieres tuvimos un problema con la conexión entre ambas máquinas, el cable cruzado directo entre ellas daba problemas y al cambiarlo el drbd dejó de ver a la otra máquina, es decir, mieres1 estaba como primaria sin ver a mieres2 y miere2 estaba como secundaria sin ver a mieres1. En este artículo explican como solucionarlo.

http://www.wbitt.com/my-howtos/85-drbd-trouble-shooting-primaryunknown-problem.html
http://www.drbd.org/users-guide/s-resolve-split-brain.html

En resumen:

mieres2:

drbdadm -- --discard-my-data connect all

mieres1:

drbdadm connect all

De esta forma se vuelven a sincronizar quedando en plenas condiciones de alta disponibilidad.

« Linux

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License