VMware y Debian · 4 min read · Dec 01, 2025
Replicación y Conmutación por Error de Máquinas Virtuales con VMWare Server y Debian Etch (4.0) - Página 3
4. Configurando el paquete Heartbeat
Instalar el paquete Heartbeat habilitará la conmutación por error automática y la gestión de recursos en caso de fallo de recursos y/o hardware.
En este tutorial, usaré Heartbeat a través de la red, pero también es posible usar Heartbeat con un cable serie y otros métodos. Heartbeat verificará las actualizaciones de ambos servidores, y cuando no reciba más actualizaciones, iniciará una conmutación por error y tomará el control de los recursos especificados (en nuestro caso, DRBD y VMWare).
A MENOS QUE SE ESPECIFIQUE LO CONTRARIO, TODOS LOS COMANDOS SE REALIZAN EN AMBOS SERVIDORES
OK, pasemos a la configuración. Para su conveniencia, puede usar los siguientes archivos de configuración ya que están adaptados a este tutorial. Heartbeat necesita 3 archivos para ser configurado, a saber: “ha.cf”, “haresources” y “authkeys”. Edítalos en consecuencia con tu editor favorito:
nano /etc/ha.d/ha.cflogfile /var/log/ha-log
logfacility local0
keepalive 1
deadtime 10
warntime 10
udpport 694
bcast
eth1
auto_failback off
node server1 ## asegúrate de que ambos nombres sean accesibles - verifica /etc/hosts
node server2
ping 192.168.0.254 ## Introduce una dirección IP que sea pingable desde la red ETH0 !!
respawn hacluster /usr/lib/heartbeat/ipfailNOTA: Este archivo ha.cf habilitará la conmutación por error en caso de fallo de conexión de red en ETH0 y/o fallo general del servidor. Los problemas con ETH1 NO causarán que ocurra una conmutación por error !
Ahora editamos el archivo “authkeys”:
nano /etc/ha.d/authkeysauth 3
3 md5 failover ## esto es solo una cadena, ¡introduce lo que quieras! auth 3 md5 usa cifrado md5Pero también tenemos que cambiar los permisos de este archivo para que solo sea legible por “root”:
chmod 600 /etc/ha.d/authkeysY por último, editamos el archivo “haresources” que contiene los recursos de conmutación por error.
nano /etc/ha.d/haresourcesserver1 192.168.0.10 drbddisk::vm1 Filesystem::/dev/drbd0::/var/vm::ext3 vmstart
# Explicación:
# Nombre del Servidor Primario --> dirección IP virtual a utilizar --> recurso DRBD como se configuró en /etc/drbd.conf
# --> dónde montar el recurso DRBD y el tipo de sistema de archivos --> recurso a iniciar/detener en caso de conmutación por error
# el recurso "vmstart" es un script personalizado necesario para VMWare Server ya que no puedes dejar que heartbeat tome control de
# los servicios de vmware o te encontrarás con los temidos errores "no configurado para esta máquina" !Antes de continuar, necesitaremos crear el script personalizado “vmstart” para asegurarnos de que las Máquinas Virtuales se inicien automáticamente en el servidor en caso de conmutación por error. Con otros recursos como Apache, Mysql, NFS … podríamos simplemente haber eliminado los scripts de inicio para ellos de los directorios rc.d, pero con VMWare esto no es posible ya que son necesarios para el buen funcionamiento de los servicios. Por lo tanto, necesitamos un script personalizado para iniciar las Máquinas Virtuales en caso de conmutación por error ya que los servicios de VMWare ya estarán en funcionamiento antes de la conmutación por error !
El “vmstart” deberá residir en la carpeta “/etc/ha.d/resource.d/“ ya que es donde heartbeat lo buscará.
nano /etc/ha.d/resource.d/vmstart#!/bin/bash
case "$1" in
start)
/usr/bin/vmware-cmd -s register "/var/vm/'nombre de la máquina virtual'/'archivo de configuración de vm'.vmx" 2>/dev/null
/usr/bin/vmware-cmd "/var/vm/'nombre de la máquina virtual'/'archivo de configuración de vm'.vmx" start 2>/dev/null
;;
stop)
/usr/bin/vmware-cmd "/var/vm/'nombre de la máquina virtual'/'archivo de configuración de vm'.vmx" stop trysoft 2> /dev/null
;;
status)
if `/usr/bin/vmware-cmd "/var/vm/'nombre de la máquina virtual'/'archivo de configuración de vm'.vmx" getstate 2>/dev/null | grep -q "getstate() = on"`
then
echo "en ejecución"
else
echo "detenido"
fi
;;
*)
echo "Uso: `basename $0` 'archivo de máquina virtual' {start|stop|status}"
echo "Donde 'archivo de máquina virtual' es como /var/vm/'nombre de la máquina virtual'/'archivo de configuración de vm'.vmx"
;;
esac
exit 0Completa las directivas ‘nombre de la máquina virtual’ y ‘archivo de configuración de vm’ con la información necesaria (verifica el directorio /var/vm). Si tienes múltiples Máquinas Virtuales, simplemente copia las líneas.
Este script personalizado primero registrará la Máquina Virtual (necesario cuando se usa un servidor recién instalado!) y luego las iniciará. Tiene que hacerse de esta manera, ya que VMWare Server solo tiene la opción de iniciar automáticamente las VM en el arranque del sistema.
Ahora que has configurado todo, es hora de probar si todo está bien. Inicia el servicio Heartbeat, primero en Server1, luego en Server2.
/etc/init.d/heartbeat startSi todo está bien, deberías ver la nueva IP virtual apareciendo en tu servidor maestro.
ifconfig |moreSalida:
eth0 Link encap:Ethernet HWaddr 00:11:09:00:BB:5D
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::211:9ff:fe00:bb5d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1025774 errors:0 dropped:0 overruns:0 frame:0
TX packets:227653 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:281072399 (268.0 MiB) TX bytes:56403081 (53.7 MiB)
eth0:0 Link encap:Ethernet HWaddr 00:11:09:00:BB:5D
inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0
...Ok, si te sientes afortunado y has seguido este tutorial con un poco de sentido común, entonces ahora es el momento de desconectar ese cable de alimentación, sostener tu taza de café y ver cómo la Máquina Virtual se pone en línea en tu segundo servidor.
5. Enlaces
- Debian: http://www.debian.org
- El Proyecto de Alta Disponibilidad de Linux: http://www.linux-ha.org
- DRBD: http://www.drbd.org
- VMware Server: http://www.vmware.com/products/server
- Directorio de Appliances de VMware http://www.vmware.com/vmtn/appliances/
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.