En el artículo de hoy os explicaré como implementar VMware Fault Tolerance o FT. Es una tecnología que no está en todas las licencias de vSphere y no todo el mundo la usa ya sea por el tema de licencia, recursos o necesidad. Básicamente lo que nos permite hacer Fault Tolerance es tener una copia exacta en live de una máquina virtual. Es decir, los cambios que hagamos en una se realizan al instante en la otra. Las ventajas de Fault Tolerance entre otras son que tenemos HA de una máquina virtual sin downtime. Si la máquina virtual de origen fallase, la copia seguiría funcionando en cuestión de escasos segundos o menos. Esta función tan buena tiene sus limitaciones y sus inconvenientes.
Recomiendo leer el artículo de VMware donde explica toda la información sobre FT. https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1013428
He realizado bastantes pruebas con FT y para que funcione correctamente tenemos que tener buena conectividad con el Storage, mínima latencia y muy buena conectividad entre hosts ( muy recomendado usar 10GB SW y habilitar Jumbo frames para la red de FT) .
Bueno, vamos al lío y os muestro como implementar VMware Fault Tolerance en nuestra infraestructura virtual. Para ello tenemos que crear un VMkernel port específico para FT. Iremos a nuestro vCenter y crearemos un adaptador de VMKernel nuevo.
En este caso crearé un virtual switch nuevo solamente para FT, pero se podría usar uno existente.
El tipo de VMKernel será Fault Tolerance logging y le ponemos un label y vlan si fuera necesario.
A continuación añadiremos la IP para el VMkernel, la máscara de subred y el Gateway.
Una vez finalicemos el asistente, ya tenemos creada nuestra red de FT. Recomiendo usar una NIC dedicada para éste tráfico y a poder ser con puertos de 10GB y jumbo frames.
Para activar FT en una máquina virtual es tan simple como hacer botón derecho sobre la máquina virtual en cuestión -> Fault Tolerance -> Turn on Fault Tolerance.
A continuación sale un asistente en el cual tendremos que seleccionar los datastores para la máquina de destino o réplica. Recomiendo usar un datastore exclusivo sólo para FT. Si no pudiéramos nos serviría cualquiera.
En mi caso selecciono un datastore específico para FT llamado FT_NFS.
Seguidamente nos pide en qué host vamos a alojar la máquina réplica o destino. Seleccionaremos el host y pulsaremos Next. ( ignorar los warnings que muestras los host de la imagen ).
El asistente nos muestra el resumen y pulsaremos Finish.
Antes de activar FT en el Sumario de nuestras máquina virtual vemos la información de hardware, políticas, HA, etc… y nada sobre FT.
Una vez hemos activado FT veremos en la barra de tareas como empieza a iniciar Fault Tolerance para esa máquina virtual, el proceso tarda algunos segundos.
Nuestra máquina virtual mostrará un warning mientras no está Protected, eso significa que estará sincronizando datos con la máquina de destino.
Una vez finalizado, veremos que el icono de nuesta máquina virtual cambia a un color azul fuerte y en el sumario aparece una caja con Fault Tolerance y la información de FT así como su estado Protected.
Como veréis, vSphere no te muestra en ningún momento la máquina de destino, pero si nos vamos al host que tiene la máquina de destino de FT la podremos ver con la palabra (secondary).
Si no tenemos bien preparada nuestra infraestructura para FT, veremos que nuestra máquina virtual con Fault Tolerance tendrá más latencia. Lo podemos comprobar simplemente haciendo un ping a la máquina. Esto se debe a que está sincronizando constantemente la información con la de destino. En modo de test he quitado la red a la máquina de origen y vemos que la latencia baja.
Es decir, estoy haciendo un ping a la VM ORIGEN que está sincronizando datos con la VM DESTINO. Le quito la red a la VM ORIGEN y sin perder ningún paquete contesta la VM DESTINO bajando la latencia ya que ya no hay sincronización de datos. Únicamente tenemos la máquina de destino.
En cuanto le vuelvo a conectar la red a la VM_ORIGEN, en este caso pierdo un paquete y aumenta la latencia debido a que vuelve a sincronizar datos entre las dos.
Como veis Implementar VMware Fault Tolerance es más sencillo de lo que parece y muy útil para servidores críticos que siempre tienen que estar online.
Como requisitos para Implementar VMware Fault Tolerance serían:
- HA habilitado en el clúster de vSphere.
- FT está en licencias Standard, Enterprise y Enterprise Plus.
- FT necesitará almacenamiento compartido,
- Red dedicada para FT.
Como recomendaciones para Implementar VMware Fault Tolerance:
- Usar jumbo frames para la red de FT
- ESXi de origen y destino con mismas versiones de vSphere
- Configurar NTP en los dos ESXi y que estén sincronizados.
- Aislar tráfico de FT de vMotion por ejemplo.
Saludos
Norman trabaja como Administrador de Sistemas con más de 12 años de experiencia en entornos Windows, Linux, VMware, SAN, Redes. | MCSA | CCNA | VCP-DCV | vExpert