¿La virtualización revive la idea de la computación en tándem?

No exactamente.

En la verdadera computación en tándem, hay al menos dos, y preferiblemente tres procesadores ejecutándose en el paso de bloqueo completo. Eso requiere que estén esclavos en el mismo reloj, los mismos dispositivos de E / S, etc. Las memorias pueden ser comunes o replicadas.

Después de cada operación, se comparan los resultados. Si no son idénticos, eso indica una falla. Si hay tres procesadores, entonces el resultado correcto es el que coinciden dos de los procesadores.

La virtualización no proporciona este nivel de confiabilidad y disponibilidad. Realiza la migración a un nuevo hardware más fácil, pero las fallas dentro de una VM aún pueden provocar una interrupción importante del servicio mientras la VM se mueve a otra ubicación.

Un paso intermedio entre estos dos es una disposición de espera activa, en la que un procesador no computa de manera redundante, pero está disponible para reanudar el servicio si falla el procesador primario.

La computación en tándem es solo una forma de lograr el objetivo real, que es tener sistemas informáticos tolerantes a fallas. Hay toda una ciencia en torno a la informática confiable, el modelo de computación en tándem es solo una forma de resolver el problema …

Mi primer encuentro con este espacio problemático fue cuando fui seleccionado para diseñar el entorno informático y de red para lo que eventualmente se convirtió en la Estación Espacial Internacional. (eso no fue tan bien, detalles en la respuesta de Stan Hanks a What Was It Like to X ?: ¿Cómo fue ver en vivo los desastres del transbordador espacial Challenger o Columbia?)

Alguien en MITRE o NASA había establecido un requisito para la tolerancia a fallas bizantinas, lo cual fue emocionante para mí, ya que el documento seminal tenía solo unos pocos años y había mucho espacio para la investigación sobre cómo lograr esto de manera efectiva.

Esencialmente, BFT requiere que un grupo de computadoras, resolviendo el mismo problema, acuerden la solución antes de continuar con los siguientes pasos. Por lo tanto, si uno (o más) está defectuoso, no terminas accidentalmente haciendo lo incorrecto, y tienes un mecanismo para hacer que un humano mire, repare, etc.

La línea real de productos NonStop de Tandem Computers funcionó de la manera descrita por Tony Li. Era una verdadera arquitectura de “nada compartido”, donde los procesadores pasaban mensajes a través de una estructura de mensajes confiable y tomaban instantáneas periódicas para que pudiera detener y “revertir” un cálculo si se detectaba un error. Se amplió muy bien, hasta el límite de la estructura del interruptor, que creo que era 4k nodos.

La virtualización es en realidad un paso en la OTRA dirección. En un sistema virtualizado, realmente está compartiendo todo (o casi todo). Cada instancia de VM “parece” ser única e independiente, pero depende de los componentes compartidos con otras VM. Por lo tanto, es MUCHO más difícil hacer una plataforma informática confiable sobre un entorno virtualizado.

Ahora, PUEDES hacer algo con la virtualización que es mucho más difícil con otras plataformas, digamos que tengo un grupo de servidores en Ashburn, y otro en Chicago y otro en Nueva York, y estoy ejecutando un hipervisor que permite la migración entre grupos.

Si tengo las cosas correctas en su lugar, podría perder Ashburn por completo y nunca notarlo, salvo un breve retraso mientras el sistema vuelve a ordenar mis máquinas virtuales en nuevas “ranuras” en otras ubicaciones.

Por lo tanto, puedo hacer que cada instancia de VM sea más resistente frente a una falla de infraestructura subyacente, a expensas de una menor tolerancia a fallas sistémicas.

Probablemente hay un buen papel o dos allí, diseccionando la mecánica.