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.
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.
Las máquinas virtuales tienen muchos casos de uso, entre los que se incluyen:
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.
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:
Las desventajas de los contenedores son:
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.
Algunos de los softwares más populares para máquinas virtuales son:
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:
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.
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
Solicite una demostración
Descubra cómo modernizar su protección de datos en una sesión en directo