¿Qué sucede cuando una máquina física falla en un entorno virtual? [cerrado]
12
Estoy comenzando con la virtualización, así que tengan paciencia conmigo.
En entornos virtuales, las aplicaciones se ejecutan en una capa de hipervisor. Por lo tanto, una sola máquina física podría tener muchas máquinas virtuales que ejecutan múltiples aplicaciones.
¿Hasta ahora tan bueno?
Entonces, ¿qué sucede cuando falla una máquina física? ¿No haría eso que muchas aplicaciones fallaran desde una sola máquina?
Estoy buscando desarrollar una nube privada con OpenStack , pero primero quiero comprender completamente la virtualización.
Los detalles dependen de la solución de virtualización exacta que use, pero la idea es que tenga una granja virtual, donde haya varios hosts físicos con varias máquinas virtuales cada uno. Luego, usa parte de la eficiencia que obtuvo al no necesitar un host físico para cada VM, de modo que tenga suficiente sobrecarga para cubrir en el caso de que una máquina física se caiga.
Además, puede ubicar los VHD para cada VM en una SAN común (redundante). Los hipervisores en cada host físico se pueden configurar para hablar entre ellos y compartir memoria de diferentes máquinas virtuales. Hay algo de latencia, y gran parte de la memoria estará respaldada por un disco, pero si uno de los hosts físicos falla, ni siquiera está esperando que las máquinas virtuales de ese host se reinicien. En cambio, esas máquinas virtuales se distribuirán automáticamente entre los hosts restantes. El objetivo final es que estas máquinas se recuperen desde casi donde se quedaron., con poco o ningún tiempo de inactividad. En cierto sentido, todas sus máquinas virtuales ya se están ejecutando en al menos dos hosts físicos. En la práctica, en este momento los hipervisores solo pueden hacer este tipo de migración de una máquina a la vez, cuando saben que se produce antes de que falle el host ... pero no se equivoquen: la migración instantánea en caso de falla de hardware es el objetivo final para todos los principales hipervisores
Es por eso que a veces ve un servidor virtualizado en un solo host físico en una granja. Es posible que no obtenga ninguna eficiencia de hardware (incluso puede perder algo de rendimiento), pero lo compensa en términos de coherencia de gestión y alta disponibilidad incorporada.
Gracias por tu respuesta, Joel ... Tengo 2 preguntas ... ¿El entorno virtual considera las máquinas físicas como un único grupo de recursos? ¿eso ayuda a satisfacer el autoservicio a pedido? ¿La vitualización también ayuda a utilizar los recursos?
Sherif
1
@ Sherif: Básicamente, sí y sí. Si desea comprender esto con más detalle, eche un vistazo al artículo de Wikipedia , que aborda brevemente la migración y conmutación por error de VM. Si aún tiene preguntas, haga una pregunta más específica.
sleske
1
¿Estás seguro de la parte de memoria compartida? Según tengo entendido, una VM que falla debido a una falla de hardware se reiniciará en otro host. Esto se puede ver como un reinicio completo o una restauración del punto de control, dependiendo de la configuración del hipervisor, pero el estado de memoria original no se puede recuperar. Para vspere: vmware.com/products/vsphere/features/high-availability Como nota al margen, se iniciaron algunos proyectos para KVM para permitir la verdadera memoria compartida y redundante entre una colección de hosts de hardware , pero se abandonaron.
shodanshok
1
La migración de VM solo puede ocurrir si la máquina física tiene la posibilidad de transferir el control antes de caer. Si la máquina física falla sin ceremonias, entonces la máquina virtual tendrá que reiniciarse en una máquina diferente. Si tiene un servidor sin estado, este proceso de transferencia es trivial, porque simplemente puede activar otra máquina. Para máquinas con estados persistentes, debe tener un esquema que pueda recuperar los datos persistentes de la máquina física que falla.
Lie Ryan
13
Todos los servidores virtuales que se ejecutan en un host físico se desconectarán si el host tiene algún tipo de falla.
Dicho esto, la mayoría de las plataformas ofrecen una solución de alta disponibilidad para una sola VM. Otras veces, un sistema se construye con múltiples nodos para evitar la interrupción del servicio en caso de que un nodo se caiga.
Si dos nodos VM conforman un servicio de alta disponibilidad, es posible configurar el hipervisor para garantizar que los dos nodos no dependan de la misma infraestructura física (tolerancia a fallas). Esto podría ser algo más que la tolerancia a fallas físicas del servidor, incluidas diferentes rutas de red, hasta una ubicación geográficamente diferente.
AWS, por ejemplo, dependiendo del servicio, replica el servicio en todas las zonas de disponibilidad (áreas físicas) en caso de que haya un desastre natural en esa área que perturbe las máquinas físicas.
Michael Bailey
¿El entorno virtual considera las máquinas físicas como un único grupo de recursos? ¿eso ayuda a satisfacer el autoservicio a pedido? ¿La vitualización también ayuda a utilizar los recursos? y muchas gracias por sus esfuerzos
Sherif
5
Está en lo cierto al suponer que si la máquina física falla también las máquinas virtuales no estarán disponibles.
Pero openstack puede encargarse de eso e iniciar las máquinas virtuales del servidor físico fallido en otro servidor o puede usar un sistema de hipervisor que ya está distribuido, creo que vsphere puede hacerlo.
Con respecto a su pregunta, sí, perderá el acceso a todas las máquinas dentro de este host físico. Por supuesto, depende de qué componente falló. Si es un disco, es un problema, si es una placa base, es mucho más fácil. En general, la recuperación de hardware es más fácil ya que el hipervisor es independiente del hardware. En este momento, existen muchas tecnologías específicas de proveedores que puede utilizar para tener servicios altamente disponibles.
Agrupaciones de recursos (vmware): NO puede agregar múltiples recursos de host físico (CPU, memoria, etc.) como alguien mencionado anteriormente, por lo que si tiene 2 host físicos (digamos 1 núcleo cuádruple de CPU sin hyperthreading - 8 GBRAM cada uno) NO será posible tener 5vCPU-12Gb VM allí. Los grupos de recursos son lógicos, no pueden crear sistemas de supercomputación. En este momento, esta es una forma de controlar la utilización de los recursos.
Disponibilidad (vmware): es posible utilizar tecnologías como Alta disponibilidad (HA) que le permiten tener una recuperación automática (basada en mi experiencia dentro de 1-2 minutos ) de todas las máquinas virtuales en el clúster automáticamente, SI está utilizando Storage Array (NAS, iSCSI, FC) y mantenga todos los archivos VM allí. Más sobre HA funciona solo en caso de falla de CPU, RAM, Motherboard, es obvio que no funcionará si Storage Array se cae. Para evitar fallas de RAID / controladores, las personas usan replicación, almacenamiento de LUN, duplicación, etc.
Si la recuperación dentro de 1-2 minutos no es una opción, existen tecnologías como Fault Tolerance (FT) que permiten lograr un tiempo de inactividad CERO de VM en caso de falla al mantener una copia oculta (en ejecución) de la VM configurada. Pero esta tecnología también tiene muchas restricciones: el problema de tolerar fallas en máquinas virtuales con múltiples vCPU no está completamente resuelto.
Todos los servidores virtuales que se ejecutan en un host físico se desconectarán si el host tiene algún tipo de falla.
Dicho esto, la mayoría de las plataformas ofrecen una solución de alta disponibilidad para una sola VM. Otras veces, un sistema se construye con múltiples nodos para evitar la interrupción del servicio en caso de que un nodo se caiga.
Si dos nodos VM conforman un servicio de alta disponibilidad, es posible configurar el hipervisor para garantizar que los dos nodos no dependan de la misma infraestructura física (tolerancia a fallas). Esto podría ser algo más que la tolerancia a fallas físicas del servidor, incluidas diferentes rutas de red, hasta una ubicación geográficamente diferente.
fuente
Está en lo cierto al suponer que si la máquina física falla también las máquinas virtuales no estarán disponibles.
Pero openstack puede encargarse de eso e iniciar las máquinas virtuales del servidor físico fallido en otro servidor o puede usar un sistema de hipervisor que ya está distribuido, creo que vsphere puede hacerlo.
Debe leer la documentación de OpenStack en HA para obtener más información.
fuente
Con respecto a su pregunta, sí, perderá el acceso a todas las máquinas dentro de este host físico. Por supuesto, depende de qué componente falló. Si es un disco, es un problema, si es una placa base, es mucho más fácil. En general, la recuperación de hardware es más fácil ya que el hipervisor es independiente del hardware. En este momento, existen muchas tecnologías específicas de proveedores que puede utilizar para tener servicios altamente disponibles.
Agrupaciones de recursos (vmware): NO puede agregar múltiples recursos de host físico (CPU, memoria, etc.) como alguien mencionado anteriormente, por lo que si tiene 2 host físicos (digamos 1 núcleo cuádruple de CPU sin hyperthreading - 8 GBRAM cada uno) NO será posible tener 5vCPU-12Gb VM allí. Los grupos de recursos son lógicos, no pueden crear sistemas de supercomputación. En este momento, esta es una forma de controlar la utilización de los recursos.
Disponibilidad (vmware): es posible utilizar tecnologías como Alta disponibilidad (HA) que le permiten tener una recuperación automática (basada en mi experiencia dentro de 1-2 minutos ) de todas las máquinas virtuales en el clúster automáticamente, SI está utilizando Storage Array (NAS, iSCSI, FC) y mantenga todos los archivos VM allí. Más sobre HA funciona solo en caso de falla de CPU, RAM, Motherboard, es obvio que no funcionará si Storage Array se cae. Para evitar fallas de RAID / controladores, las personas usan replicación, almacenamiento de LUN, duplicación, etc.
Si la recuperación dentro de 1-2 minutos no es una opción, existen tecnologías como Fault Tolerance (FT) que permiten lograr un tiempo de inactividad CERO de VM en caso de falla al mantener una copia oculta (en ejecución) de la VM configurada. Pero esta tecnología también tiene muchas restricciones: el problema de tolerar fallas en máquinas virtuales con múltiples vCPU no está completamente resuelto.
En general, cada solución depende de su objetivo.
fuente