¿Qué son las máquinas virtuales (VM)?
Una máquina virtual es una representación virtual de una computadora física y las unidades de cómputo para la primera generación de computación en la nube.
Fondo negro y azul
¿Qué son las máquinas virtuales (VM)?

Una máquina virtual es una representación virtual, o emulación, de una computadora física. A menudo se refieren a ellas como "huésped" mientras la máquina física en la que se ejecutan se conoce como el "host".

La virtualización permite crear varias máquinas virtuales, cada una con su propio sistema operativo (SO) y aplicaciones en una única máquina física. Una máquina virtual no puede interactuar directamente con un sistema físico. En cambio, necesita una capa de software ligera, llamada hipervisor, para coordinarse con el hardware físico subyacente. El hipervisor asigna recursos informáticos físicos, como procesadores, memoria y almacenamiento, a cada máquina virtual. Mantiene cada máquina virtual separada de las otras para que no interfieran entre sí.

Si bien esta tecnología puede tener muchos nombres, incluidos servidor virtual, instancia de servidor virtual (VSI) y servidor privado virtual (VPS), este artículo simplemente se referirá a ellas como máquinas virtuales.

Cómo funciona la virtualización

Cuando se usa un hipervisor en una computadora o servidor físico (también conocido como servidor bare metal), permite que la computadora física separe su sistema operativo y sus aplicaciones de su hardware. Luego, puede dividirse en varias "máquinas virtuales" independientes.

Cada una de estas nuevas máquinas virtuales puede ejecutar sus propios sistemas operativos y aplicaciones de forma independiente y, al mismo tiempo, compartir los recursos originales del servidor bare metal que gestione el hipervisor. Estos recursos incluyen memoria, RAM, almacenamiento, etc.

El hipervisor actúa como una especie de policía de tráfico, dirigiendo y asignando los recursos del bare metal a cada una de las distintas máquinas virtuales nuevas, asegurándose de que no se interrumpan entre sí.

Existen dos tipos principales de hipervisores.

Los hipervisores de tipo 1 se ejecutan directamente en el hardware físico (generalmente un servidor), en lugar del sistema operativo. Normalmente, se utiliza un producto de software independiente para crear y gestionar máquinas virtuales en el hipervisor. Algunas herramientas de gestión, como vSphere de VMware, le permiten seleccionar un sistema operativo huésped para instalarlo en la máquina virtual.

Puede utilizar una VM como plantilla para otras y duplicarla para crear nuevas. En función de sus necesidades, también es posible crear varias plantillas de VM para distintos fines, como pruebas de software, bases de datos de producción y entornos de desarrollo.

Los hipervisores de tipo 2 se ejecutan como una aplicación dentro de un sistema operativo host y, por lo general, están diseñadas para plataformas de desktop o computadora portátil de un solo usuario. Con un hipervisor de tipo 2 puede crear manualmente una máquina virtual y luego instalar un sistema operativo huésped en ella. Es posible utilizar el hipervisor para asignar recursos físicos a la VM, estableciendo manualmente la cantidad de núcleos de procesador y memoria. Dependiendo de las funcionalidades del hipervisor, también es posible establecer opciones como aceleración 3D para gráficos.

El siguiente video explica los conceptos básicos de la virtualización. Vea también el artículo "5 beneficios de la virtualización".

Ventajas de las máquinas virtuales

Las máquinas virtuales ofrecen varias ventajas por sobre el hardware físico tradicional:

  • Utilización de recursos y ROI mejorado: debido a que varias máquinas virtuales se ejecutan en un único sistema físico, los clientes no tienen que comprar un nuevo servidor cada vez que quieran ejecutar otro sistema operativo, y pueden obtener más rendimiento de cada hardware que ya posean.

  • Escala: con computación en la nube, resulta fácil implementar varias copias de la misma máquina virtual para atender mejor los aumentos de carga.

  • Portabilidad: las máquinas virtuales se pueden reubicar según sea necesario entre los sistemas físicos de una red. Esto hace posible asignar cargas de trabajo a servidores que tengan potencia de computación libre. Las máquinas virtuales pueden incluso moverse entre entornos locales y en la nube, lo que las convierte en útiles para escenarios de nube híbrida en los que comparte recursos de computación entre el centro de datos y un proveedor de servicios en la nube.

  • Flexibilidad: la creación de una máquina virtual es más rápida y fácil que la instalación de un sistema operativo en un servidor físico, porque puede clonar una máquina virtual con el sistema operativo ya instalado. Los desarrolladores y los verificadores de software pueden crear nuevos entornos bajo demanda para gestionar nuevas tareas a medida que surjan.

  • Seguridad: las máquinas virtuales mejoran la seguridad de varias formas en comparación con los sistemas operativos que se ejecutan directamente en el hardware. Una VM es un archivo que un programa externo puede escanear para detectar software malicioso. Puede crear una instantánea completa de la VM en cualquier momento y, a continuación, restaurarla a ese estado si se infecta con un programa malicioso, haciendo que la VM vuelva en el tiempo de manera eficaz. La rápida y fácil creación de las VM también permite eliminar completamente una VM en riesgo y luego volver a crearla rápidamente, lo que acelera la recuperación de las infecciones de malware.
Casos de uso de máquinas virtuales

Las máquinas virtuales tienen varios usos, tanto para los administradores de TI empresariales como para los usuarios.

Computación en la nube: durante los últimos 10 años, las VM han sido la unidad fundamental de computación en la nube, lo que ha permitido que decenas de tipos diferentes de aplicaciones y cargas de trabajo se ejecuten y escalen satisfactoriamente.

Apoyo para DevOps: las máquinas virtuales son una gran manera de apoyar el trabajo de los desarrolladores empresariales, ya que pueden configurar plantillas de VM con los valores para sus procesos de desarrollo y pruebas de software. Pueden crear máquinas virtuales para tareas específicas, como análisis estático de software, incluyendo estos pasos en un flujo de trabajo de desarrollo automatizado. Todo esto ayuda a agilizar la cadena de herramientas de DevOps.

Prueba de un nuevo sistema operativo: una máquina virtual le permite probar un nuevo sistema operativo en su desktop sin afectar su sistema operativo principal.

Investigación de malware: las máquinas virtuales son útiles para los investigadores de malware que con frecuencia necesitan máquinas nuevas para probar programas maliciosos.

Ejecución de software incompatible: algunos usuarios pueden preferir un sistema operativo y seguir necesitando un programa que solo está disponible en otro. Un buen ejemplo es la gama Dragon de software de dictado de voz. Su proveedor, Nuance, ya no ofrece la versión de sistema operativo para Mac de su producto. Sin embargo, la ejecución de un hipervisor centrado en el desktop, como VMware Fusion o Parallels, le permite ejecutar Windows en una VM, lo que le brinda acceso a esa versión del software.

Navegación segura: el uso de una máquina virtual para navegar le permite visitar sitios sin preocuparse por infecciones. Puede realizar una instantánea de su máquina y luego volver a ella después de cada sesión de navegación. Esto es algo que un usuario podría configurar por sí mismo utilizando un hipervisor de desktop de tipo 2. De otro modo, un administrador podría proporcionar un desktop virtual temporal ubicado en el servidor.

Tipos de máquinas virtuales

Máquinas virtuales Windows

La mayoría de los hipervisores admiten máquinas virtuales que ejecutan el sistema operativo Windows como huésped. El hipervisor Hyper-V de Microsoft viene como parte del sistema operativo Windows. Cuando se instala, crea una partición primaria que contiene a ambos, a sí mismo y al sistema operativo Windows primario, cada uno de los cuales obtiene acceso privilegiado al hardware. Otros sistemas operativos, incluidos los huéspedes de Windows, se ejecutan en particiones secundarias que se comunican con el hardware a través de la partición primaria.

Máquinas virtuales Android

El sistema operativo Android de código abierto de Google es común en dispositivos móviles y dispositivos domésticos conectados, como dispositivos de entretenimiento en el hogar. El sistema operativo Android solo se ejecuta en la arquitectura de procesador ARM que es común en estos dispositivos, pero es posible que los fanáticos, los jugadores de Android o los desarrolladores de software deseen ejecutarlo en PC.

Esto es un problema, ya que las PC se ejecutan en una arquitectura de procesador x86 completamente diferente y un hipervisor de virtualización de hardware solo pasa instrucciones entre la VM y la CPU. No los traduce para procesadores con diferentes conjuntos de instrucciones. Hay varios proyectos para abordar este problema.

Algunos proyectos, como Shashlik o Genymotion, utilizan un emulador que vuelve a crear la arquitectura ARM en software. Una alternativa, el proyecto Android-x86, migra el Android a la arquitectura x86. Para ejecutarlo, hay que instalar el programa Android-x86 como una máquina virtual utilizando el hipervisor VirtualBox de tipo 2. Otra alternativa, Anbox, ejecuta el sistema operativo Android en el kernel de un sistema operativo Linux host.

Máquinas virtuales Mac

Apple solo permite que su sistema macOS se ejecute en hardware de Apple, y prohíbe a las personas que lo ejecuten en un hardware que no sea de Apple como una VM o de otro modo, bajo su acuerdo de licencia de usuario final. Es posible utilizar hipervisores de tipo 2 en un hardware Mac para crear máquinas virtuales con un huésped de macOS.

Máquinas virtuales iOS

Actualmente, no es posible ejecutar iOS en una máquina virtual porque Apple controla estrictamente su sistema operativo iOS y no permite que se ejecute en otros dispositivos que no sean iOS.

Lo más parecido a una VM de iOS es el simulador de iPhone que se envía con el entorno de desarrollo integrado Xcode, que simula todo el sistema de iPhone en software.

Máquinas virtuales Java

La plataforma Java es un entorno de ejecución para programas escritos en el lenguaje de desarrollo de software de Java. La promesa de Java era la funcionalidad de "escribir una vez y ejecutar en cualquier lugar". Esto significa que cualquier programa Java puede ejecutarse en cualquier hardware que ejecute la plataforma Java. Para conseguirlo, la plataforma Java incluye una máquina virtual Java (JVM).

Los programas Java contienen bytecode, que son instrucciones para la JVM. La JVM compila este código de bytes en el código de máquina, que es el idioma de nivel inferior utilizado por la computadora host. La JVM en la plataforma Java de una plataforma de computación creará un conjunto diferente de instrucciones de código de máquina para la JVM en otra, basándose en el código de máquina que espera el procesador.

Por lo tanto, la JVM no ejecuta un sistema operativo completo y no utiliza un hipervisor como otras máquinas virtuales. En su lugar, traduce programas de software de nivel de aplicación para ejecutar en un hardware particular.

Para obtener más información acerca de Java, vea "Java: una guía completa".

Máquinas virtuales de Python

Al igual que la JVM, la VM de Python no se ejecuta en un hipervisor y no contiene un sistema operativo huésped. Es una herramienta que permite que los programas escritos en el lenguaje de programación Python se ejecuten en diversas CPU.

Similar a Java, Python traduce sus programas en un formato intermedio llamado bytecode y lo almacena en un archivo listo para su ejecución. Cuando se ejecuta el programa, la VM de Python convierte el código de bytes en código de máquina para obtener una ejecución rápida.

Máquinas virtuales Linux

Linux es un sistema operativo huésped común utilizado en muchas máquinas virtuales. También es un sistema operativo host común utilizado para ejecutar máquinas virtuales e incluso tiene su propio hipervisor llamado máquina virtual basada en kernel (KVM). El kernel principal de Linux ha incluido la KVM desde 2007. Aunque es un proyecto de código abierto, Red Hat ahora es propietario de la compañía original que desarrolló la KVM.

Máquinas virtuales VMware

VMware fue un proveedor de software de virtualización temprano y ahora es un proveedor popular tanto de hipervisor de tipo 1 como de hipervisor de tipo 2 y software de VM para clientes empresariales.

"VMware: una guía completa" proporciona una visión general completa de todo lo relacionado con VMware.

Máquinas virtuales Ubuntu

Ubuntu es una distribución de Linux producida por Canonical. Está disponible en versiones de desktop y de servidor, que se pueden instalar como VM. Ubuntu se puede implementar como sistema operativo huésped en Microsoft Hyper-V. Proporciona una versión optimizada de Ubuntu Desktop que funciona bien en el modo de sesión mejorado de Hyper-V, lo que proporciona una estrecha integración entre el host de Windows y la VM de Ubuntu. Incluye soporte para la integración de portapapeles, redimensionamiento dinámico de desktop, carpetas compartidas y movimiento del ratón entre los desktop host y huésped.

Multi-inquilino vs. inquilino único

En la computación en la nube, las máquinas virtuales se ofrecen normalmente tanto en variaciones de inquilino único como de multi-inquilino.

Las máquinas virtuales públicas, o de multi-inquilino, son máquinas virtuales en las que múltiples usuarios comparten una infraestructura física común. Este es el abordaje más rentable y escalable para el suministro de máquinas virtuales, pero carece de algunas de las características de aislamiento que pueden preferir las organizaciones con estrictos mandatos de seguridad o conformidad.

Dos de los modelos para máquinas virtuales de inquilino único son hosts dedicados e instancias dedicadas.

Un host dedicado implica el alquiler de una máquina física completa y el mantenimiento del acceso y el control sostenidos sobre dicha máquina, su hardware y el software que esté instalado en ella. Este modelo proporciona la máxima flexibilidad y transparencia de hardware, control y colocación de carga de trabajo, y también ofrece algunas ventajas para determinado software bajo el modelo de "bring-your-own license" (incorpore su propia licencia).

Una instancia dedicada ofrece el mismo aislamiento que el enfoque de inquilino único y el mismo control sobre la colocación de la carga de trabajo, pero no está acompañada de una máquina física específica. Así, por ejemplo, si se reinicia una instancia dedicada, podría terminar en una nueva máquina física, una máquina dedicada a la cuenta individual, pero una nueva máquina de todas formas, posiblemente en una ubicación física diferente.

Modelos de precios para máquinas virtuales

Los modelos de precios más comunes para las máquinas virtuales en la nube son de pago por uso (por hora o segundo), instancias transitorias/puntuales, instancias reservadas y hosts dedicados.

  • Pago por uso: en el modelo pago por uso, no hay costos iniciales para la máquina virtual y los usuarios simplemente pagan por lo que utilizan. Normalmente se factura por hora o segundo, según el proveedor y el tipo de instancia.

  • Instancias transitorias/puntuales: el modelo de menor costo de VM. Las instancias transitorias y puntuales se aprovechan del exceso de capacidad de un proveedor, pero el proveedor puede reclamarlas en cualquier momento. Normalmente son útiles para aplicaciones que no necesitan estar siempre activas o que son exorbitantemente costosas en cualquier otro modelo.

  • Instancias reservadas: a diferencia de los modelos de pago por uso, las instancias reservadas vienen con un compromiso de término explícito, generalmente de entre uno y tres años, pero también vienen con grandes descuentos.

  • Hosts dedicados: en el caso de los hosts dedicados, un usuario normalmente asume el costo del servidor físico total y se le facturan los incrementos que el proveedor ofrezca para los servidores dedicados, normalmente por hora o por mes.
Máquinas virtuales vs. servidores bare metal

Elegir una máquina virtual sobre una física, también conocida como servidor bare metal, tiene menos que ver con las capacidades de la competencia y más con saber lo que necesita y cuando lo necesita.

Los servidores bare metal tratan acerca de hardware, alimentación y aislamiento. Son servidores físicos de inquilino único completamente libres de ciclos de hipervisor (software de virtualización) y totalmente dedicados a un único cliente: usted.

Las cargas de trabajo que priorizan el rendimiento y el aislamiento, como las aplicaciones de uso intensivo de datos y los mandatos de conformidad regulatoria, suelen ser los más adecuados para los servidores bare metal, especialmente cuando se implementan durante periodos de tiempo prolongados.

Las aplicaciones de comercio electrónico, ERP, CRM, SCM y servicios financieros son solo algunas de las cargas de trabajo ideales para servidores bare metal.

Entonces, ¿cuándo se colocaría un hipervisor sobre el hardware bare metal para hacer una máquina virtual? Cuando las cargas de trabajo exijan máxima flexibilidad y escalabilidad.

Las máquinas virtuales aumentan sin esfuerzo la capacidad del servidor y aumentan la utilización, lo que es ideal para mover datos de una máquina virtual a otra, cambiar el tamaño de los conjuntos de datos y dividir las cargas de trabajo dinámicas.

Máquinas virtuales vs. contenedores

La forma más fácil de comprender un contenedor es entender en qué se diferencia de una máquina virtual tradicional. En la virtualización tradicional, ya sea en las instalaciones o en la nube, se aprovecha un hipervisor para virtualizar el hardware físico. Cada VM contiene un SO huésped, una copia virtual del hardware que el sistema operativo necesita para ejecutarse, junto con una aplicación y sus bibliotecas y dependencias asociadas.

En lugar de virtualizar el hardware subyacente, los contenedores virtualizan el sistema operativo (normalmente Linux) para que cada contenedor individual contenga solo la aplicación y sus bibliotecas y dependencias. La ausencia del sistema operativo huésped es el motivo por el que los contenedores son tan ligeros y, por lo tanto, rápidos y portátiles.

Los contenedores y el motor de orquestación que los gestiona, Kubernetes, son adecuados para las arquitecturas modernas, nativas de la nube y de microservicios. Y aunque los contenedores se asocian más comúnmente con servicios sin estado, también pueden ser demandados por servicios con estado.

Los contenedores también se están volviendo más comunes en escenarios de nube híbrida porque pueden ejecutarse de manera consistente en computadoras portátiles, en la nube y en TI tradicional local.

Puede obtener más información en la publicación del blog "Contenedores vs. máquinas virtuales: ¿cuál es la diferencia?".

El siguiente video desglosa los conceptos básicos de la creación de contenedores y cómo se compara con el uso de máquinas virtuales:

Cómo elegir un proveedor de máquinas virtuales

La selección de una máquina virtual y un proveedor de nube no tiene que ser un desafío, siempre y cuando sepa qué buscar. La máquina virtual necesita adaptarse a sus necesidades de carga de trabajo y al presupuesto del negocio, por supuesto, pero otros factores juegan un papel clave entre usted y su entorno de virtualización. A continuación se presentan diez cosas a tener en cuenta al elegir un proveedor de servicios de máquina virtual.

Soporte confiable. Asegúrese de que haya servicio de atención al cliente 24/7 por teléfono, correo electrónico y chat. Si no, no vale la pena. Debería tener acceso a una persona real en el otro extremo de la línea que le ayude a resolver situaciones críticas de TI. También es importante tener en cuenta qué proveedores de nube ofrecen servicios adicionales para un obtener un respaldo más práctico.

Opciones gestionadas. ¿El proveedor de nube ofrece soluciones gestionadas y no gestionadas? Si no conoce los detalles de la tecnología de virtualización, considere un proveedor que será responsable de la configuración, el mantenimiento y la supervisión del rendimiento en curso.

Integración de software. ¿El entorno de máquina virtual trabajará bien con otros? Los sistemas operativos, el software de terceros, la tecnología de código abierto y las aplicaciones ayudan a ofrecer más soluciones en toda su empresa. Querrá un proveedor de máquinas virtuales con soporte y con una robusta alianza con los proveedores de software más utilizados de la industria. Nota: evite depender de ciertos proveedores.

Red e infraestructura de alta calidad. ¿Qué tan actualizada está la infraestructura en la que se ejecutará la nueva máquina virtual? Esto incluye servidores bare metal confiables, centros de datos modernos y red troncal. Un proveedor de nube debe ser capaz de cumplir su parte del acuerdo con hardware de última generación y tecnología de red de alta velocidad.

Ubicación, ubicación, ubicación. Cuanto más cerca estén los usuarios de sus datos, menos acciones deberán llevarse a cabo para evitar la latencia, mejorar la seguridad y mejorar la entrega oportuna de servicios. Una buena red global de centros de datos dispersos y ubicaciones POP son fundamentales para tener datos donde y cuando más los necesite.

Copia de seguridad y recuperación. ¿Qué plan tiene el proveedor de nube para mantener las máquinas virtuales en funcionamiento frente a eventos inesperados? ¿También proporciona opciones de copia de seguridad y redundancia adicionales para su entorno virtualizado? La operación continua es algo que debe tomar en serio.

Facilidad de escalabilidad. ¿Qué tan rápido y fácil será para usted poner a punto, controlar, reservar, pausar y actualizar su máquina virtual? El término que más se quiere escuchar cuando se trata de la escalabilidad de la máquina virtual es "bajo demanda".

Variadas configuraciones de CPU. Cuantas más configuraciones, mejor. No todas las configuraciones de máquinas virtuales se ajustan a cada carga de trabajo durante cada temporada de uso. Asegúrese de buscar un proveedor de máquina virtual que ofrezca paquetes de configuración diversos para los requisitos de inquilino único y multi-inquilino.

Capas de seguridad. Pregúntele a su proveedor sobre ellas y, a continuación, asegúrese de que existan. Los datos empresariales son dinero en su expresión más pura, especialmente cuando se trata de información confidencial del cliente. Las líneas de red privada, las opciones del centro de datos federal, las funciones de cifrado incorporadas y el cumplimiento de la conformidad regulatoria son esenciales para proteger su activo más valioso.

Soporte de migración sin interrupciones. Sus prioridades de TI siempre evolucionarán. Esto lo sabemos todos. Cualquier proveedor de máquina virtual debe ser capaz de ayudarle a cambiar entre entornos híbridos, locales y externos. Busque opciones el consumo de datos completo, migración a través de la red y migración guiada por aplicaciones.

Soluciones relacionadas
IBM Cloud

IBM Cloud with Red Hat ofrece seguridad líder en el mercado, escalabilidad empresarial e innovación abierta para desplegar todo el potencial de la nube y de la IA.

Explore IBM Cloud
Soluciones VMware

IBM Cloud for VMware Solutions está diseñado para ayudarle a mover cargas de trabajo de VMware locales hacia IBM Cloud.

Explore las soluciones de IBM Cloud for VMware
Servidores virtuales

IBM Cloud Virtual Servers son servidores virtuales públicos y dedicados que se suministran y escalan bajo demanda, con opciones de facturación mensual y por hora.

Explore los servidores virtuales
Recursos ¿Qué es computación en la nube?

La computación en la nube transforma la infraestructura de TI en un servicio, lo que le permite "conectarse" a los recursos y aplicaciones de computación a través de Internet, sin instalarlos ni mantenerlos en las instalaciones.

¿Qué es una nube híbrida?

La nube híbrida integra servicios de nube pública, servicios de nube privada e infraestructura local en un único entorno informático distribuido.

¿Qué es DevOps?

DevOps acelera la entrega de software de mayor calidad combinando y automatizando el trabajo de los equipos de desarrollo de software y de operaciones de TI.

Dé el siguiente paso

IBM® Cloud Virtual Server for VPC ofrece capacidad informática de suministro rápido con las velocidades de red más altas y los recursos de red definidos por software más seguros disponibles en IBM Cloud. Basada en IBM Cloud Virtual Private Cloud (VPC) y con potentes procesadores Intel® Xeon® de segunda generación, esta infraestructura fácil de usar para desarrolladores ayuda a impulsar las cargas de trabajo modernas de forma más rápida y sencilla, con perfiles de instancia preestablecidos, implementación rápida y control de red privada en un entorno ágil de nube pública. Elija multi-inquilino o dedicado, agregue GPU y pague por hora de uso.

Explore IBM Cloud Virtual Server for VPC