Tareas #6171

Tareas #6159: Diseño de la solución tecnológica

Tareas #6167: Diseño de los servicios

Investigar alternativas para virtualización de sistema operativo

Added by Victor Alem 8 months ago. Updated 6 months ago.

Status:RechazadaStart date:04/04/2019
Priority:NormalDue date:
Assignee:Sebastián Rijo% Done:

0%

Category:-Spent time:-
Target version:-

Description

Investigar alternativas para virtualización de sistema operativo

virtualizacion1.png (85.7 KB) Sebastián Rijo, 04/10/2019 08:18 PM

hipervisor.png (27.5 KB) Sebastián Rijo, 04/10/2019 08:33 PM

mame32.jpg (133 KB) Sebastián Rijo, 04/10/2019 08:46 PM

virtualbox.png (231 KB) Sebastián Rijo, 04/10/2019 08:51 PM

vmware.jpg (10.4 KB) Sebastián Rijo, 04/10/2019 08:51 PM

proxmox.png (120 KB) Sebastián Rijo, 04/10/2019 09:40 PM

4083
4084
4085
4086
4087
4088

History

#1 Updated by Sebastián Rijo 8 months ago

  • Status changed from Nueva to En curso
  • Assignee changed from TLecom to Sebastián Rijo

#2 Updated by Sebastián Rijo 8 months ago

Virtualización de Sistemas Operativos

Introducción

La virtualización es tecnología que permite crear múltiples entornos simulados o recursos dedicados desde un solo sistema de hardware físico. El software llamado "hipervisor" se conecta directamente con el hardware y permite dividir un sistema en entornos separados, distintos y seguros, conocidos como "máquinas virtuales" (VM). Estas VM dependen de la capacidad del hipervisor de separar los recursos de la máquina del hardware y distribuirlos adecuadamente.

Hipervisores

El software denominado hipervisores separa los recursos físicos de los entornos virtuales, es decir, todo lo que necesitan los recursos. Los hipervisores pueden conformarse como elementos principales de un sistema operativo (como una computadora portátil) o se pueden instalar directamente en el hardware (como un servidor), que es la forma en que la mayoría de las empresas virtualizan. Los hipervisores toman los recursos físicos y los dividen de manera tal que los entornos virtuales puedan usarlos.

Fuente:

https://www.redhat.com/es/topics/virtualization

#3 Updated by Sebastián Rijo 8 months ago

#4 Updated by Sebastián Rijo 8 months ago

#5 Updated by Sebastián Rijo 8 months ago

Tipos de Virtualización

1. Emulación o simulación del hardware a nivel de aplicación

Una aplicación simula el hardware completo, permitiendo la ejecución de sistemas operativos sin modificar. La ejecución se hace bajo el control del emulador que simula el sistema completo, incluyendo la ejecución de las instrucciones a nivel de CPU. El emulador simula la ejecución de código binario para una CPU concreta en un sistema real que usa un procesador y un juego de instrucciones diferente al del sistema emulado. El inconveniente de este modelo de virtualización es que la simulación es muy lenta (para cada instrucción del sistemaemulado puede ser necesario ejecutar entre 100 y 1000 instrucciones a la CPU real), a pesar de que en algunos casos no es un problema grande (por ejemplo la emulación de sistemas de los años 80 en hardware actual funciona mucho más rápidaque en los equipos originales).


Por ejemplo: Mame (Emulador)

https://www.mamedev.org/

2. Virtualización completa o nativa sin apoyo hardware

Este tipo de sistemas usan una máquina virtual que hace de intermediaria entre el sistema invitado y el hardware real. El software de virtualización es conocido generalmente como monitor de máquina virtual(VMM, Virtual Machine Monitor) o hipervisor(hypervisor). En este tipo de sistemas el hipervisor se encarga de emular un sistema completo y analiza dinámicamente el código que quiere ejecutar el sistema invitado, reemplazando las instrucciones críticas (las que hace falta virtualizar) por nuevas secuencias de instrucciones que tienen el efecto deseado en el hardware virtual, mientras que las instrucciones no críticasse ejecutan tal cual en la CPU real.Este tipo de sistemas permiten la ejecución de sistemas operativos sin modificar.

Por ejemplo VirtualBox y VM Ware

https://www.virtualbox.org/

https://www.vmware.com/latam.html

3. Virtualización completa o nativa con apoyo hardware

Este tipo de sistemas funcionan de manera similar a los sistemas de virtualización completa sin apoyo hardware, pero aprovechan tecnologías incorporadas a las nuevas generaciones de microprocesadores como las deIntel(Intel-VT, VT-xpara 32 bit y VT-y para 64 bit) yAMD(AMD-V), de forma que es posible ejecutar el código del sistema operativoinvitadosin modificarlo.

En estos sistemas lo que se hace es ejecutar el hipervisor con el máximo nivel de acceso a la CPU (máxima prioridad)y los sistemas invitados se ejecutan a un nivel inferior, que era el máximo nivel de ejecución cuando los procesadores no incorporaban apoyo para la virtualización.

Ejemplos: KVM

https://www.linux-kvm.org/page/Main_Page

4. Paravirtualización

Son sistemas similares a los de virtualización completa, que ejecutan el sistema invitadocon un hipervisor que se ejecuta sobre el sistema real. La diferencia con el modelo anterior es que en este tipo de virtualización se modifica el sistema operativo invitado para incluir instrucciones relacionadas con la virtualización, de forma que en lugar que el hipervisor capture las instrucciones problemáticas, es el sistema invitado quién llama directamente al hipervisor cuando es necesario. Evidentemente, con independencia de las modificaciones del núcleo del sistema invitado, los programas de usuario sepueden ejecutar sin ningún cambio.

Ejemplo:

https://xenproject.org/

5. Virtualización a nivel de sistema operativo

En este tipo de sistemas sólo ejecutamos un núcleo (el delanfitrión) y este núcleo crea entornos de ejecución que las aplicaciones ven como máquinas virtuales. En principio en este tipo de sistemas no hace falta emular el hardware a bajo nivel, puesto que en realidad es el mismo sistema operativo quién controla los dispositivos físicos. Lo que sí se suele hacer es incluir apoyo para tener dispositivosvirtuales como discos o tarjetas de red dentro de cada entorno de ejecución.

Ejemplo:

https://openvz.org/

Fuente:

https://www.uv.es/sto/charlas/2010_CIM/hvl-cim-2010.pdf

#6 Updated by Sebastián Rijo 8 months ago

Proxmox

Software Libre para Virtualización de Servidores

Proxmox Virtual Environment es una solución de gestión de virtualización de servidor de código abierto basada en QEMU / KVM y LXC. Puede administrar máquinas virtuales, contenedores, clústeres de alta disponibilidad, almacenamiento y redes con una interfaz web integrada y fácil de usar o mediante CLI. El código de Proxmox VE está licenciado bajo la Licencia pública general de GNU Affero, versión 3. El proyecto está desarrollado y mantenido por Proxmox Server Solutions GmbH.

Fuente:

https://pve.proxmox.com/wiki/Main_Page

#9 Updated by Sebastián Rijo 8 months ago

  • Status changed from En curso to Resuelta

#10 Updated by Victor Alem 8 months ago

Gracias por el laburo, Sebastián, lo comentamos en clase.

#11 Updated by Victor Alem 8 months ago

Sebastián, mencionaste varios software para virtualizar: openvz, virtualbox, proxmox, qemu-kvm... De lo que buscaste, ¿qué te parece lo mejor y por qué?

#12 Updated by Victor Alem 6 months ago

  • Status changed from Resuelta to Rechazada

Also available in: Atom PDF