#1 Líder mundial en resiliencia de datos
Guía de Veeam para los clientes afectados por la actualización de contenido de CrowdStrike

¿Qué es una máquina virtual?

Una máquina virtual, o VM, es exactamente lo que su nombre sugiere, una forma de computadora virtual. El software de virtualización permite que una sola computadora "anfitrión" ejecute varias máquinas virtuales "invitado" en su hardware. Cada invitado ejecuta su propio sistema operativo y se comporta independientemente de los demás invitados. Es posible que los invitados ejecuten un sistema operativo diferente al del host. Por ejemplo, un host de macOS podría tener máquinas virtuales de Windows o Linux ejecutándose en él.

¿Cómo funciona una máquina virtual?

El proceso de creación de máquinas virtuales para que se ejecuten en un host se conoce como virtualización. El hardware del equipo host ejecuta el sistema operativo del host. El software de virtualización se ejecuta dentro del sistema operativo del host y asigna recursos a cada invitado. Cada invitado tiene su propio sistema operativo y su propio conjunto de bibliotecas y archivos binarios necesarios para ejecutar las aplicaciones deseadas. El OS guest se comporta como un ordenador físico equipado con la potencia de procesamiento, la memoria, el espacio de almacenamiento y otros recursos de computación que se le han asignado.

Los dos tipos de máquinas virtuales

Hay dos tipos de máquinas virtuales: máquinas virtuales de proceso y máquinas virtuales de sistema. La diferencia clave entre estos es su tamaño y el caso de uso previsto.

¿Qué es una máquina virtual de proceso?

Una máquina virtual de proceso es una VM especializada diseñada para permitir que un único proceso se ejecute como una aplicación en el host. Un ejemplo común de esto es la máquina virtual de Java. Las aplicaciones escritas en Java son independientes de la plataforma y pueden ejecutarse en cualquier hardware y sistema operativo que admita la máquina virtual de Java. En lugar de que los desarrolladores tengan que preocuparse por la compatibilidad del hardware y el sistema operativo, simplemente escriben para la máquina virtual de Java, que se encarga de cualquier problema específico del host y permite que el código Java se ejecute en cualquier sistema operativo compatible como si se hubiera escrito de forma nativa para ese sistema operativo.

¿Qué es una máquina virtual de sistema?

Las máquinas virtuales del sistema son una forma de virtualización a gran escala. Una VM de sistema es una réplica completa de una máquina física. Es posible ejecutar varias VMs en un equipo host potente, con cada guest ejecutando su propio sistema operativo. Para ello, el host debe ejecutar un hipervisor.

Parte del software del hipervisor se ejecuta sobre un sistema operativo del host. Estos se conocen como hipervisores de tipo 2 y ofrecen comodidad y facilidad de uso a expensas de cierta latencia y consumo de recursos adicionales. Otras soluciones pueden ejecutarse directamente en el hardware del host, o "Bare Metal". Este tipo de hipervisor se conoce como hipervisor de tipo 1. Dado que los hipervisores de tipo 1 se ejecutan directamente en el hardware del host, son una solución de baja latencia y alto rendimiento y son populares en entornos empresariales donde el uso eficiente de los recursos es esencial.

Los hipervisores permiten que cada máquina funcione de manera independiente, asignando dinámicamente memoria, capacidad de la red, almacenamiento y recursos del procesador, mientras aíslan las VM alojadas unas de otras para evitar problemas de seguridad.

Los hipervisores facilitan la puesta en marcha de nuevas máquinas virtuales según sea necesario y permiten un uso eficaz del hardware del host. Las imágenes de máquinas virtuales creadas para un hipervisor específico, como VMware ESXi u Oracle VM VirtualBox, son altamente portátiles en el sentido de que se pueden implementar en cualquier hardware que admita el software del hipervisor y tenga suficientes recursos del sistema disponibles. Esta portabilidad, combinada con el poder del software de replicación, hace que la virtualización sea una parte importante de cualquier plan de continuidad del negocio. Veeam Backup y Replicación puede utilizarse para administrar máquinas virtuales alojadas en la nube y en las instalaciones, protegiendo los datos de su organización y ayudándolo a volver a funcionar rápidamente en caso de una interrupción o fallo de hardware.

¿Para qué se utiliza una máquina virtual?

Las máquinas virtuales tienen muchos casos de uso, entre los que se incluyen:

  • Ejecutar diferentes sistemas operativos para probar compilaciones multiplataforma
  • Ejecutar software específico del sistema operativo en un dispositivo/plataforma para el que no fue diseñado
  • Acceder a datos desde máquinas infectadas con virus o ransomware
  • Creación de un entorno de desarrollo para pruebas/compilaciones automatizadas
  • Hacer backup de la configuración de una máquina existente para una reimplementación rápida
  • Implementación de aplicaciones en la nube
  • Dividir un servidor web poderoso en varios servidores virtuales para que un proveedor de hosting los revenda

¿Por qué usar una máquina virtual?

Las máquinas virtuales tienen varias ventajas clave. Permiten ejecutar múltiples entornos de sistema operativo en un solo dispositivo. Esto los convierte en una forma económica y eficiente de poner en marcha múltiples servidores, probar las compilaciones de la aplicación en una amplia variedad de configuraciones de OS diferentes o ejecutar una aplicación tradicional. Por ejemplo, una empresa que se basa en un sistema de cuentas de cliente que se escribió para una versión muy antigua de Windows puede proporcionar una máquina virtual que contenga esa aplicación en lugar de tener hardware más antiguo dedicado para ejecutar el software.

El hipervisor proporciona un entorno aislado (sandbox) para cada invitado. Esto hace que las VM sean útiles desde una perspectiva de seguridad porque los sistemas operativos alojados no tienen acceso directo a los sistemas de archivos o a la memoria de los demás. Si un virus infecta una máquina virtual, cualquier daño debe ser contenido. Si una máquina virtual se bloquea debido a un programa que no se comporta correctamente, el host y otras máquinas virtuales no deberían verse afectados.

Otra característica útil de las máquinas virtuales es la facilidad con la que se puede hacer backup de ellas, mover y recuperar. Realizar backups de una máquina virtual es simplemente cuestión de hacer una copia de seguridad de los archivos de configuración y de la imagen del disco. En un escenario de recuperación ante desastres, restaurar esos archivos en un nuevo host y encender de nuevo las VM permite a una organización volver a ponerse en marcha con mayor facilidad. Dado que las máquinas virtuales son independientes del hardware, las copias de seguridad se pueden restaurar en cualquier servidor que tenga los recursos adecuados para ejecutar el invitado. 

Sin embargo, la naturaleza de espacio aislado y altamente portátil de las máquinas virtuales tiene un costo. Cada VM alojada ejecuta una copia completa del sistema operativo. La ejecución de varias máquinas virtuales en un servidor físico puede causar problemas de estabilidad si el servidor no es lo suficientemente potente. Dependiendo del uso que se le quiera dar a las VM, puede haber una manera más eficiente de lograr sus objetivos, como los contenedores.

Contenedores vs. máquinas virtuales

Los contenedores son una forma de tecnología de virtualización que tiene muchas similitudes con las máquinas virtuales, pero con una finalidad ligeramente diferente. Mientras que las máquinas virtuales simulan una máquina completa, incluida la capa de hardware y sistema operativo, los contenedores virtualizan solo las capas de software que se ejecutan sobre el sistema operativo. El IEEE describe los contenedores como una alternativa ligera a las máquinas virtuales.

Mientras que las máquinas virtuales se ejecutan sobre un hipervisor que puede ejecutarse directamente sobre el hardware o dentro de un sistema operativo, los contenedores se ejecutan en un motor de contenedor. Cada contenedor tendrá sus propias copias de los binarios y bibliotecas necesarios para ejecutar el software que contiene, pero el contenedor no necesita sus propias copias del sistema operativo. Los contenedores comparten el hardware en el que se ejecutan, aunque tendrán acceso restringido al sistema de archivos.

Entre los software de gestión de contenedores más populares se encuentran Docker, Google Kubernetes Engine, LXC y Portainer. Los contenedores se usan a menudo en plataformas de computación en la nube como una forma de implementar rápidamente todo lo necesario para ejecutar un script o microservicio.

Algunos de los beneficios de los contenedores incluyen:

  • Son ligeros, ya que contienen solo los binarios y las bibliotecas que son absolutamente necesarias para que se ejecuten.
  • Son fáciles de poner en marcha y gestionar.

Las desventajas de los contenedores son:

  • No es posible combinar sistemas operativos en un solo host con contenedores.
  • Los contenedores sin estado son fáciles de crear, pero gestionar contenedores con control de estado requiere una mayor planificación.
  • Dado que los contenedores no están completamente aislados, a menudo se consideran menos seguros que las máquinas virtuales.

La cuestión de la seguridad de los contenedores es compleja, y los contenedores configurados correctamente ofrecen una seguridad sólida. Las aplicaciones en contenedores están aisladas unas de otras, lo que las hace más seguras que ejecutar las aplicaciones individuales directamente en la máquina host. Además, cada contenedor tiene una superficie de ataque más pequeña que una VM en toda regla. Algunos contenedores son sin estado, por lo que cada vez que se inician, el contenedor es un "borrón y cuenta nueva" con la misma configuración. Los contenedores sin estado son útiles para ciertos tipos de microservidores, y la falta de almacenamiento persistente puede verse como una característica de seguridad en algunas situaciones.

Sin embargo, los contenedores sin estado no son adecuados para ejecutar servicios más complejos o servicios en los que es importante poder conservar el estado de las aplicaciones al recuperarse de una interrupción. Además, los contenedores comparten un sistema operativo, por lo que si un contenedor se ve comprometido, el atacante tiene la oportunidad de poner en peligro otros contenedores que se ejecutan en la misma máquina. En el caso de las máquinas virtuales, si una VM se ve comprometida, el atacante no puede usar ese acceso para poner en peligro otras VM en el mismo host.  

Cuándo elegir contenedores en lugar de VM

En general, es una buena idea usar máquinas virtuales si necesita ejecutar varios sistemas operativos en una sola máquina, o si necesita poder hacer snapshots de la máquina en diferentes estados con fines de backup. Tener máquinas virtuales listas para implementar hace que le resulte más fácil escalar su sistema operativo y puede ser beneficioso desde el punto de vista de la recuperación ante desastres

Los contenedores son útiles para implementar microservicios más pequeños o como parte de una canalización de DevOps. En un artículo para EPR Today, Daniel Riedel explica la diferencia de filosofía como "mascotas vs ganado". Los contenedores son como ganado que debe ser tratado como mercancía y puesto en marcha según la demanda, mientras que los servicios monolíticos tienen más probabilidades de ejecutarse en VM y ser atendidos con cuidado, al igual que las mascotas.

Cómo configurar una máquina virtual

Algunos de los softwares más populares para máquinas virtuales son:

  • VMware ESXi
  • Oracle VM VirtualBox
  • Máquinas virtuales de Azure Spot
  • Linux KVM

El proceso para configurar una máquina virtual variará según el software de virtualización utilizado. Herramientas como VMware y Oracle VM VirtualBox ofrecen configuraciones guiadas para ayudar a los usuarios a configurar el hardware e instalar el sistema operativo para la VM a través de una interfaz gráfica de usuario (GUI). Dado que son una solución basada en la nube, la gama de VM dedicadas y Spot de Azure también ofrece opciones de configuración relativamente fáciles.

La configuración de Linux KVM mediante la línea de comandos requiere un conocimiento más profundo de las redes y del hardware de la máquina. Herramientas como Kimchi y Proxmox facilitan a los administradores de sistemas la gestión de implementaciones de múltiples máquinas virtuales en un único host.

Algunas consideraciones importantes a la hora de configurar una máquina virtual son:

  • Asignación de hardware: El invitado debe tener acceso a suficiente memoria y núcleos/subprocesos del procesador para garantizar un buen rendimiento.
  • Recursos disponibles: Si el host va a ejecutar varios sistemas operativos invitados, debe tener los recursos adecuados para que cada VM funcione correctamente.
  • Límites de ráfaga: Permitir que la máquina virtual supere temporalmente su asignación habitual de recursos puede mejorar la estabilidad y el rendimiento durante breves períodos de carga pesada.
  • Espacio en la unidad: asegúrese de que el sistema operativo invitado tenga asignado suficiente espacio de almacenamiento. Puede ser un único archivo grande o dividirse en varios archivos para mayor portabilidad y facilidad de backup.
  • Licencias de software: tenga en cuenta los requisitos de licencia de cualquier software que implemente en su VM. Cada instancia de una máquina virtual en ejecución puede contar como un "puesto" a efectos de licencias de software.

Si ya tiene una máquina física configurada de la manera que le gustaría que fuera su VM, es posible crear una copia del disco duro de esa VM como un disco de VM Hyper-V, mediante lo que se conoce como conversión de físico a virtual (P2V). Una vez que haya hecho una copia de la unidad, se puede cargar en una máquina virtual configurada con el mismo tipo de virtualización de hardware y ponerla en marcha según sea necesario. Luego, puede proteger los datos de la máquina virtual ejecutando backups virtuales con Veeam.

Una vez configurada la máquina virtual, puede ejecutarse desde el SO host como si fuera una aplicación más. La VM puede controlarse a través del teclado y el ratón del host o a través de SSH/KVM remoto si el servidor se ejecuta en modo desacoplado.

Si desea obtener más información sobre las soluciones de backup para máquinas virtuales de Veeam y cómo podemos ayudarlo a proteger sus datos, ¿por qué no prueba usted mismo Veeam Backup and Replication? Descargue una versión de prueba gratis hoy mismo.

Recursos destacados

Protección de datos

Tendencias de protección de datos 2022

El informe más completo de la industria sobre protección de datos elaborado con más de 3000 responsables de TI

Icono de partner

Solicite una demostración

Descubra cómo modernizar su protección de datos en una sesión en directo

Icono de contacto

Contáctenos

Obtener ayuda para elegir la solución adecuada para su organización