Conecta con nosotros

Hola, ¿qué estás buscando?

Actualidad

Virtualización y HPC

Cada vez están más de moda estas dos áreas de la informática. Siempre se ha pensado que no se debería virtualizar ningún proceso HPC. Los procesos que requieren elevado rendimiento deberían correr en metal puro y duro… ¿o no?

reality_center4

Esta pregunta de si virtualizar o no aplicaciones HPC es algo que no es fácil de contestar. Depende mucho de la aplicación, el workflow, el hardware, el volumen de datos y, muy importante, para cuándo espera el jefe los resultados ;) Por si estas eran pocas cosas a tener en cuenta, debemos tener en cuenta el software de virtualización que queremos usar. Como todo en esta vida, no hay un sí o un no definitivo.Lo primero que tenemos que saber es si nuestra aplicación es intensiva de:

  • CPU
  • RAM
  • I/O

Después, tendremos que analizar los cuellos de botella del software de virtualización, porque si nuestra aplicación es intensiva de I/O y el software de virtualización que nos gustaría usar tiene el cuello de botella en el acceso a disco … mal vamos.

¿Qué tiene que ver esto con el Software Libre y Linux? Pues muchas cosas:

  • Linux es el sistema operativo más utilizado en entornos de HPC.
  • Linux es el sistema operativo con más variedad de software de virtualización disponible.
  • Hay un proyecto de introducir KVM en el mundo de HPC.

Como podéis ver, hay ya pasos en esta dirección: juntar ambos mundos. Obviamente, el proyecto acaba de empezar y el autor está buscando gente que esté interesada y que quiera invertir. Según el autor:

AlacrityVM is a hypervisor based on the Linux KVM project which aims to serve a high-performance niche, such as required for HPC and Real-Time workloads in the Data-Center. It achieves this by utilizing a newly emerging high performance IO fabric (called Virtual-bus) developed specifically to solve the types of bottlenecks that typically keeps virtualization out of consideration in these arenas.

Por ahora parece que está más orientado al mundo HPC en la empresa, es decir, a bases de datos de alto rendimiento como pueden ser las de los bancos, aseguradoras, bolsa, compañías aéreas… Pero eso no significa que no se pueda usar en el mundo técnico/científico como es el del diseño,  física, matemática, genómica y proteómica, estudios sociales, meteorología… O incluso en el del entretenimiento como es la animación y efectos especiales, postproducción, …

¿Qué ventajas aportaría el juntar ambas áreas? Pues, por un lado, montar clusters heterogéneos sería relativamente sencillo y, por otro, recordemos que las máquinas virtuales nos permiten cosas como:

  • Instalaciones rápidas: Podemos tener imágenes de sistemas operativos ya creadas por lo que sería cuestión de clonarlas, no haría falta reinstalar todo. Sí, ya sé que el software de clustering te permite hacer instalaciones desatendidas, pero ¿y si juntamos ambas filosofías?
  • Migraciones en caliente: Esto puede ser interesante en caso de tener que parar una máquina para ampliar hardware, por ejemplo.
  • Snapshots: Nos permite guardar el estado de una máquina en un momento determinado.
  • Uso de hardware sobredimensionado: Hoy en día tenemos hardware de sobra que está infrautilizado, si creamos máquinas virtuales y utilizamos todo ese hardware que hemos pagado y que no estamos usando… mejor que mejor, ¿no?
  • Abstracción del hardware: Esto es una gran ventaja ya que cada fabricante usa un chip de red determinado o procesador determinado. Nuestra máquina virtual abstraería esa gran complejidad y variedad de hardware que hay por lo que sólo tendríamos que crear una o dos imágenes de sistema operativo/máquina virtual y la podríamos instalar/corre en cualquier hardware soportado por nuestro software de virtualización.
  • Abstracción del sistema operativo: Hay algunos software de virtualización que no son dependientes de sistema operativo, como por ejemplo Virtual Box, otros que traen ya su propio sistema operativo (como VMWare). Esto nos facilita mucho la labor ya que nos importaría poco el sistema operativo que haya por debajo.

Obviamente, esto depende mucho de los factores que he comentado al principio del post. Menos mal que ya hay gente que está investigando en este mundillo y dentro de poco será una realidad ;) Como es una idea relativamente nueva, no todo es perfecto, tengamos en cuenta que la virtualización añade una capa software más, esto trae consigo algunos problemas como son:

  • Pérdida de rendimiento.
  • Pérdida de latencias.
  • Más probabilidad de encontrar bugs/errores y más dificultad para resolverlos.

La gran pregunta es si estos inconvenientes tienen más peso que las ventajas o es al contrario.

No sólo hay gente desarrollando y diseñando software de virtualización orientado a HPC como podéis ver en un enlace anterior, sino que hay gente también haciendo pruebas de rendimiento en temas I/O y memoria.

28 Comentarios
Advertencia
Advertencia

Te recomendamos

Actualidad

El estado alemán de Schleswig-Holstein, al igual que hiciera Múnich en su día, ha tomado la decisión de cambiar las soluciones de Microsoft y...

Actualidad

El progreso hace que algunas tecnologías se queden atrás y terminen siendo marcadas como obsoletas tras pasar un tiempo. Ese es el caso del...

Actualidad

Red Hat ha anunciado a través de las listas de correo del kernel Linux la creación de Nova, un nuevo driver dirigido a las...

Actualidad

OpenELA vuelve a ser actualidad, esta vez con motivo de un proyecto de carácter independiente, el «kernel-lts Project«, con el que ampliar el soporte de...