¿Son las máquinas virtuales tan fiables con los sistemas anfitriones?

En 2016 una persona me preguntó acerca de la fiabilidad de las máquinas virtuales. Esta persona necesitaba una plataforma realmente estable para un proyecto que se traía entre manos. Y ya que he iniciado una serie de artículos en los que he ido explicando cosas acerca de la fiabilidad, ahora veremos lo relativo a una MV.

Es una pregunta algo complicada de contestar, ya que existen varios tipos de virtualización (paravirtualización, virtualización completa, contenedores,…), e incluso varios proyectos de software para implementar hipervisores, diferentes extensiones para asistencia por hardware, etc. Pero intentaré dar algunas claves para aquellos que necesiten usar máquinas virtuales para entornos de producción o les preocupe este tema…

¡Ojo! No confundas la virtualización con la emulación…

¿Hay algo que no se debe virtualizar?

maquinas virtuales, contenedores
Grounded ship Rena on the Astrolabe reef

La virtualización se ha transformado en una solución solida y con multitud de beneficios en cuanto a ahorro de gastos, aprovechamiento de recursos de hardware, fencing entre máquinas virtuales, y ciertas facilidades en cuanto a administración. Algo que ha irrumpido en las empresas y centros de datos con fuerza.

Pero… ¿hay algunas aplicaciones que no deberías virtualizar? La verdad es que hay cosas que puedes hacer, pero eso no quiere decir que sea una buena idea. Por ejemplo, mejor no uses máquinas virtuales para:

  • Cuando el sistema a virtualizar necesita algún dongle o hardware físico no soportado en el entorno de virtualización. Parece obvio, pero ha habido algunos intentos de hacerlo y aplicar soluciones algo chapuceras para que esos sistemas funcionen sin resultados positivos. Por ejemplo, algunos sistemas firewall que usan ASICs específicos para soportar ciertas funciones, ciertas aplicaciones de control de seguridad y sistemas biométricos, etc.
  • Aplicaciones críticas o que necesitan de un rendimiento extremo. En esos casos, interponer capas, como ocurre en las máquinas virtuales, no es una buena idea. Es cierto que existen algunos hipervisores bare-metal para ciertos sistemas críticos, pero este no sería el caso de otros casos más genéricos. Además, ten en cuenta que en una máquina virtual estás usando discos duros virtuales con parte de la capacidad de almacenamiento total de la máquina física, vCPU (cada una se corresponde con un núcleo físico o lógico de las disponibles en la máguina), parte de la RAM, etc., por lo que no estás aprovechando todo el potencial máximo. Entre otras cosas, porque si usas una MV para usar todos los recursos, la MV carecería de mucho sentido…

Existen algunas excepciones donde se usa virtualización incluso en sistemas críticos, como los aeroespaciales. Véase el caso de XtratuM de fentISS, eso sí, en este caso es un hipervisor «bare-metal».

  • Aplicaciones y/o sistemas operativos con acuerdos de licencia que incluyan cláusulas en las licencias que no permitan virtualización. Que los hay… En algunos casos puede que se puedan usar, pero eso limite o anule el soporte, lo que sería un problema si ocurre algún problema.
  • Cualquier cosa no probada sobre máquinas virtuales para entornos de producción o sistemas críticos. No intentes ser el primero, o te puede salir el tiro por la culata…
  • Algunos casos donde la seguridad sea vital, ya que se pueden conseguir restringir el acceso a las máquinas virtuales para evitar el acceso de ciertos usuarios. Pero si alguien puede tener acceso y privilegios al anfitrión, podría realizar ciertas acciones que comprometerían al sistema virtualizado.
  • Sistemas que sean críticos y dependan de la sincronización. Desajustes en las horas de las máquinas virtuales podría terminar con un malfuncionamiento de ciertos sistemas. No obstante, esto se puede resolver siempre que te asegures de que el anfitrión usa NTP y tiene conexión para sincronizarse con los servidores apropiados.
  • Sistemas demasiado longevos. En algunas ocasiones, podrías encontrarte con sistemas carentes de soporte técnico que podrían generar problemas en ciertos entornos, o sistemas que se han ido «deteriorando» en cuanto a rendimiento debido a parches que se han ido agregando durante años y ahora solo suponen una sobrecarga para la CPU, etc.
  • Por último, la virtualización anidada (nested virtualization), es una opción. Puede ser muy útil en algunos casos, pero no es lo mejor en cuanto a eficiencia y fiabilidad.

Fiabilidad de las máquinas virtuales

servidor, centro de datos - granja de servidores

Las extensiones de hardware para dar soporte a la virtualización, y el software para virtualización, ha avanzado. Hechos que han conseguido que las máquinas virtuales sean realmente fiables. Por ello, en la nube es frecuente que se usen VPS (Virtual Private Servers), incluso para entornos de producción. Eso te debe dar una idea de cuán fiable ha llegado a ser este tipo de entornos.

Ahora bien, ¿son tan fiables como los sistemas físicos? En principio no, ya que mientras más capas, más cosas que pueden fallar. Por tanto, se podría pensar que cuando más simple sea un sistema, mucho más fiable será.

La fiabilidad de la MV es el producto de la suma de la fiabilidad de la máquina física, o anfitrión, y de la fiabilidad del propio software de virtualización. Esto quiere decir que el anfitrión depende de la fiabilidad propia del sistema operativo+aplicaciones y la del hardware sobre el que se ejecuta. Mientras que el huésped va a depender de eso mismo y, además, de la fiabilidad del hipervisor o software que use para la virtualización y de la propia fiabilidad del sistema operativo huésped+sus apps.

Pese a eso, es verdad que las máquinas virtuales han logrado ser tan fiables como los sistemas físicos en algunos casos, e incluso más en algunas configuraciones. Pero esto no te debe llevar a la confusión de pensar que las máquinas virtuales son por lo general más fiables que un sistema anfitrión.

Además de lo comentado de esas capas extras, si el sistema anfitrión se actualiza y dicha actualización afecta de alguna manera al software que mantiene las máquinas virtuales, como el hipervisor, entonces las máquinas virtuales fallarán aunque el anfitrión permanezca funcionando. Pero también puede ocurrir lo contrario, si el hardware del anfitrión falla, se puede migrar la MV fácilmente a otro…

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto:

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar