Virtualización es un término amplio que se refiere a crear objetos virtuales a partir de objetos reales. Actualmente es un tema en gran desarrollo por los nuevos procesadores Intel-VT y AMD-V, que soportan la virtualización de la CPU. Básicamente hay dos tipos de virtualización:
- Virtualización de plataforma: se trata de simular
máquinas virtuales
para poder ejecutar varios Sistemas Operativos en una sola máquina. Hay varias tecnologías:
- Emulación del hardware: la máquina virtual simula un hardware completo permitiendo correr de forma aislada instancias de los Sistemas Operativos guest. Por ejemplo Qemu o Bochs (MS-Virtual PC en Windows).
- Virtualización a nivel de librerías: mediante librerías se consigue una capa de compatibilidad que emula un Sistema Operativo y permite ejecutar binarios de otro Sistema Operativo. Por ejemplo WINE, una implementación de la API de Windows para Linux.
- Virtualización con hypervisor:
las instancias de los Sistemas Operativos guest corren sobre el hypervisor o
VMM (Virtual Machine Monitor) que les permite acceder directamente al hardware y no a un
hardware simulado como en el caso de los emuladores.
Si no es necesario modificar el Sistema Operativo guest hablamos de virtualización completa, por ejemplo VMware en Windows.
Otro ejemplo de virtualización completa es KVM, un módulo que convierte el kernel Linux en un hypervisor.
Si es necesario modificar el Sistema Operativo guest se denomina paravirtualización, por ejemplo Xen.
Otro ejemplo de paravirtualización es User-Mode Linux, donde un kernel guest corre como una aplicación de usuario y el kernel host actúa de hypervisor.
- Virtualización a nivel de Sistema Operativo (jaulas): en este caso sólo hay un Sistema Operativo en el que se virtualizan aplicaciones (generalmente servidores) de manera que las aplicaciones que corren en el entorno guest lo ven como un sistema autónomo. Por ejemplo chroot, OpenVZ o Linux-VServer (MS-Virtual Server en Windows).
- Virtualización de aplicaciones (pseudo-code machine): la máquina virtual crea un pequeño entorno virtual que aisla las aplicaciones del hardware, del Sistema Operativo y de otras aplicaciones. Por ejemplo Java Virtual Machine, P-code machine, Parrot, Smalltalk o MS-Common Language Runtime.
- Virtualización de recursos: se trata de simular recursos, por ejemplo
combinando componentes pequeños para simular un recurso mayor o dividiendo un recurso grande
en varios más pequeños virtuales. Algunos ejemplos son:
- Clusters:
combinan múltiples computadoras en una gran metacomputadora. Los clusters son
supercomputadores baratos: un grupo de PCs construidos con hardware barato
conectados en red que se comportan como un único ordenador de gran potencia.
- Clusters tipo Beowulf
– Objetivo principal: alto rendimiento
– Se usan en: centros de cálculo
– Ejemplos: PVM, MPI, OpenMP - Clusters HA
– Objetivo principal: alta disponibilidad
– Se usan en: granjas de servidores
– Ejemplos: LVS - Clusters SSI
– Objetivo principal: balanceo de carga
– Se usan en: granjas de render
– Ejemplos: OpenMosix, Kerrighed, OpenSSI - Clusters Grid
– Objetivo principal: alto rendimiento mucho tiempo (la red es Internet)
– Se usan en: computación distribuida
– Ejemplos: Globus, BOINC
¿Qué es un supercomputador? Un supercomputador es un ordenador de muy altas prestaciones respecto a lo habitual en la época en que fue construido, con varias CPUs y que utiliza computación paralela.
¿Qué Sistema Operativo utilizan los supercomputadores? Territorio Linux: el 75% de los supercomputadores utiliza Linux (Fuente: top500.org).
¿Qué hace un supercomputador? De un supercomputador se pretende que proporcione una o varias de las siguientes características:
- Alto rendimiento (High Performance).
- Alta disponibilidad (High Availability).
- Balanceo de carga (Load Balancing).
- Escalabilidad (Scalability).
¿Cómo son los verdaderos supercomputadores? Un verdadero supercomputador es una única máquina construida con hardware especial, con múltiples CPUs comunicadas por bus de datos, que cuesta del orden de 30 mill $ (Cray, SGI, IBM…). Puede ser SMP (Symmetric Multiprocessors) o MPP (Massively Parallel Processors).
- Clusters tipo Beowulf
- Almacenamiento virtual:
- RAID (Redundant Array of Inexpensive Disks): simula un único dispositivo de almacenamiento a partir de múltiples dispositivos.
- LVM (Logical Volume Management): combina muchos discos en un gran disco lógico.
- SAN (Storage Area Network): simula dispositivos de almacenamiento locales a partir de dispositivos remotos.
- DRBD (Distributed Replicated Block Device): permite mirror remoto sobre TCP/IP (equivale a RAID 1 en red).
- Particionar un disco duro: divide un disco grande en varios discos pequeños virtuales.
- Unión de interfaces de red (channel bonding): simula un dispositivo de red único con gran ancho de banda utilizando múltiples dispositivos de red independientes.
- Red privada virtual (Virtual Private Network): OpenVPN y OpenSwan permiten crear una red virtual dentro de otra o a través de otras.
- Zoning: se divide el ancho de banda en una red de almacenamiento.
- Clusters:
combinan múltiples computadoras en una gran metacomputadora. Los clusters son
supercomputadores baratos: un grupo de PCs construidos con hardware barato
conectados en red que se comportan como un único ordenador de gran potencia.
Pues comentarte que me han gustado estos articulos
Hola. Los articulos aqui publicados me parecen de un gran valor.
Me ha costado hasta ahora encontrar información sencilla de como instalar clusters y ahora lo he encontrado.
Un par de preguntas:
Quiero montar un cluster con 3 ordenadores para virtualizar, y así aprovechar la RAM de los pcs y los procesadores.
¿Que virtualizador puedo usar?
¿Que tipo de cluster tengo que instalar?
Un saludo
¿Los procesos para renderizar 3D qué pueden soler ser? ¿multi-hilo o mono-hilo?
Gracias por vuestra ayuda ;)
Todos los contenidos son completísimos, por lo que, echo de menos la construcción de un cluster mysql. Un saludo muy buena web.
Niño impresionante documento, me encantó.
Un saludo de las canarias.
Muy útil y de gran valor para quienes comenzamos a leer de estos temas. Gracias
Dejo un tutorial paso a paso en español para empezar a virtualizar en KVM, yo lo estoy utilizando en servidores de negocio y no he tenido problemas de ninguna clase, gran performance y estabilidad. http://www.linuxito.com.ar/gnu-linux/nivel-alto/56-virtualizacion-en-centos-6-2-utilizando-kvm