Sei sulla pagina 1di 7

Preguntas Orientadoras Capítulo 12:

1. ¿Para qué sirve la tecnología de virtualización en los computadores?


 La Tecnología de virtualización permite que una sola PC o servidor ejecute simultáneamente
varios sistemas operativos o múltiples sesiones de un solo sistema operativo.
 Aprovechar mejor los recursos del hardware.
 Aprovechar mejor los recursos del software (no duplicar).
 Aislamiento de Aplicaciones.
 Disminuye complejidad de sistemas operativos (IBM), consolidación de servidores (Ahorro
de energía, de espacio, de administración, migración de sistemas, tolerancia a los fallos,
etc.).
 Ejecutar aplicaciones para distintos SO en una misma máquina física.
 Ejecutar aplicaciones de SO obsoletos.
2. ¿Qué es una máquina virtual, desde el punto de vista de tecnología de virtualización?
Una máquina virtual tiene las características de un SO particular y, en algunos versiones de
virtualización, las características de una plataforma de hardware en particular. Como cada máquina
virtual es idéntica al verdadero hardware, cada una puede ejecutar cualquier sistema operativo que
se ejecute directamente sólo en el hardware. Una Máquina Virtual es una construcción de software que
imita las características de un servidor físico. Está configurado con un cierto número de procesadores,
una cantidad de RAM, recursos de almacenamiento y conectividad a través de los puertos de red.
3. ¿Qué es lo que permite que se pueda hacer esta virtualización?

La solución que permite la virtualización es un monitor de máquina virtual (VMM) o comúnmente


conocido hoy como hipervisor. Este software se encuentra entre el hardware y las máquinas
virtuales, actuando como intermediario de recursos. En pocas palabras, permite múltiples VM para
coexistir de forma segura en un único servidor físico y compartir los recursos de ese host.

4. ¿Por qué se dice que Microsoft controla las organizaciones de servidores?

Las organizaciones que sufren por tener muchos servidores debido a una estrategia que controla
Microsoft Windows: "una aplicación, un servidor".

5. ¿Por qué se dice que los servidores están infrautilizados?

Los servidores consumen menos del 5% de los recursos disponibles en cada servidor, porque la
mayoría de los servidores usan mucha E/S y poca CPU.

6. ¿Qué diferencia hay entre el concepto “virtual” que tiene un proceso (direccionamiento en
memoria virtual, system, call, etc.) con esta virtualización?

A diferencia de los sistemas operativos, estas máquinas virtuales no son máquinas extendidas,
con archivos y otras características adecuadas. En vez de ello, son copias exactas del hardware,
incluyendo el modo kernel/ usuario, la E/S, las interrupciones y todo lo demás que tiene la máquina
real.
7. Explique cómo trabajaba un mainframe como el IBM 370
El corazón del sistema, que se conoce como monitor de máquina virtual, se ejecuta en el hardware
solamente y realiza la multiprogramación, proporcionando no una, sino varias máquinas virtuales a
la siguiente capa hacia arriba. En el sistema VM/370 original, algunas ejecutaban OS/360 o uno de los
otros sistemas operativos extensos de procesamiento por lotes o de procesamiento de transacciones,
mientras que otros ejecutaban un sistema interactivo de un solo usuario llamado CMS (Conversational
Monitor System; Sistema monitor conversacional) para los usuarios interactivos de tiempo
compartido. Este último fue popular entre los programadores.
Cuando un programa de CMS ejecutaba una llamada al sistema, ésta quedaba atrapada para el
sistema operativo en su propia máquina virtual, no para VM/370, de igual forma que si se ejecutara
en una máquina real, en vez de una virtual. Después, CMS emitía las instrucciones normales de E/S
de hardware para leer su disco virtual o lo que fuera necesario para llevar a cabo la llamada. Estas
instrucciones de E/S eran atrapadas por la VM/370, que a su vez las ejecutaba como parte de su
simulación del hardware real. Al separar por completo las funciones de multiprogramación y
proporcionar una máquina extendida, cada una de las piezas podían ser más simples, más flexibles
y mucho más fáciles de mantener.
8. ¿A qué se denomina “consolidación de servidores”?.¿Cuáles son las ventajas de la consolidación?

La virtualización del servidor enmascara los recursos del servidor a los usuarios, incluido el número
y la identidad de servidores físicos individuales, procesadores y Sistemas operativos. Esto hace
posible dividir un único host (anfitrión) en múltiples servidores independientes, conservando los
recursos de hardware. Se trata de unificar (consolidar) los servidores físicos en uno sólo virtual.

9. ¿Cuál es la función de un Hypervisor (monitor de la máquina virtual)?

Al igual que un sistema operativo abstrae los comandos de E/S de disco a un usuario a través del
uso de capas de programas e interfaces, la virtualización abstrae el hardware físico a las máquinas
virtuales que soporta. El monitor de máquina virtual, o hypervisor, es el software que proporciona
esta abstracción. Actúa como un representante autorizado, como un proxy (procurador) para los
invitados (máquinas virtuales) cuando solicitan y consumen los recursos del anfitrión físico.

10. Muestre las diferencias entre un hypervisor y una máquina virtual.

El monitor de máquina virtual, o hypervisor, es el software que realiza la multiprogramación. Una


Máquina Virtual es una construcción de software que imita las características de un servidor físico.

11. ¿Qué tienen que ver las máquinas virtuales con los archivos?

Las máquinas virtuales están construidas de archivos. Una máquina virtual típica puede consistir de
sólo unos pocos archivos.

12. Muestre las funciones de cada archivo.

Hay un archivo de configuración que describe los atributos de la máquina. Contiene la definición del
servidor, cuántos procesadores virtuales (vCPUs) se asignan a esta máquina virtual, cuánta RAM se
asigna, qué dispositivos de E/S tiene acceso la VM, cuántas tarjetas de interfaz de red (NIC) están en
el servidor virtual, y más. También describe el almacenamiento al que puede acceder la VM. A
menudo, el almacenamiento se presenta como discos virtuales que existen como archivos
adicionales en el sistema físico de archivos.

13. ¿Qué significa “instanciar una máquina virtual”?


Cuando una máquina virtual se enciende o es “instanciada”, los archivos adicionales se crean para
la autenticación, para la paginación de memoria y otras funciones.
14. ¿Cuáles son las ventajas de que una máquina virtual sean archivos?

Que una VM consista de archivos hace que ciertas funciones en un entorno virtual sean mucho más
simples y rápidas que en un entorno físico. Desde los primeros días de las computadoras, el
respaldo de datos ha sido una función crítica. Ya que las máquinas virtuales son archivos, copiarlos,
no sólo produce una copia de seguridad de los datos, sino también una copia de todo el servidor, el
sistema operativo, las aplicaciones y la propia configuración del hardware.

15. ¿Qué son las plantillas de máquinas virtuales?

Otro método para suministrar rápidamente nuevas máquinas virtuales es a través del uso de
plantillas. Las plantillas son máquinas virtuales que no se pueden encender, define la configuración
del servidor virtual, y tiene todo el sistema operativo y posiblemente incluso el software de
aplicación instalado.

16. Distinga las ventajas de las máquinas virtuales: consolidación, aprovisionamiento, disponibilidad,
migración.

La ventaja es que una falla en una máquina virtual no ocasiona que las demás fallen de manera
automática. En un sistema virtualizado, se pueden ejecutar distintos servidores en diferentes
máquinas virtuales, con lo cual se mantiene el modelo parcial de fallas que tiene una computadora,
pero a un costo mucho menor y con una administración más sencilla. Claro que consolidar los
servidores de esta forma es como poner todos los huevos en una canasta.
Si falla el servidor que ejecuta todas las máquinas virtuales, el resultado es aún más catastrófico
que cuando falla un solo servidor dedicado. Sin embargo, la razón por la que la virtualización puede
funcionar es que la mayoría de las fallas en los servicios no se deben a un hardware defectuoso,
sino al software presuntuoso, poco confiable y lleno de errores, en especial los sistemas operativos.
Con la tecnología de máquinas virtuales, el único software que se ejecuta en el modo kernel es el
hipervisor, el cual tiene 100 veces menos líneas de código que un sistema operativo completo, y por
ende tiene 100 veces menos errores.
La ejecución de software en las máquinas virtuales tiene otras ventajas además de un sólido
aislamiento.
Una de ellas es que al tener menos máquinas físicas hay un ahorro en hardware y electricidad, y se
ocupa menos espacio en la oficina. Para una compañía como Amazon, Yahoo, Microsoft o Google,
que puede tener cientos de miles de servidores que realizan una enorme variedad de tareas
distintas, la reducción de las demandas físicas en sus centros de datos representa un enorme
ahorro en los costos. Por lo general, en las empresas grandes los departamentos individuales o
grupos piensan en una idea interesante y después van y compran un servidor para implementarla.
Si la idea tiene éxito y se requieren cientos o miles de servidores, se expande el centro de datos
corporativo. A menudo es difícil mover el software a las máquinas existentes, debido a que cada
aplicación necesita con frecuencia una versión distinta del sistema operativo, sus propias
bibliotecas, archivos de configuración y demás. Con las máquinas virtuales, cada aplicación puede
tener su propio entorno.

Consolidación: elimina el costo, con menos servidores físicos, menos energía consumida, menos
energía de enfriamiento y menos cables, menos switches (conmutadores) de red, menos espacio
ocupado. La consolidación de Servidores se convirtió, y continúa haciéndolo, una herramienta
tremendamente valiosa de resolver costos y derroche de consumos. Con la tecnología de máquinas
virtuales, el único software que se ejecuta en el modo kernel es el hipervisor, el cual tiene 100
veces menos líneas de código que un sistema operativo completo, y por ende tiene 100 veces
menos errores

El aprovisionamiento puede tomar semanas o incluso meses dependiendo de los procesos que
sean necesarios hacer. Puesto que una VM consiste de archivos, duplicando esos archivos, en un
ambiente virtual, se puede hacer una copia perfecta del servidor disponible en cuestión de minutos.
Hay algunos cambios de configuraciones por hacer: el nombre del servidor y la dirección IP por
nombrar dos, pero los administradores rutinariamente levantan nuevas máquinas virtuales en
minutos u horas, a diferencia de meses.

Disponibilidad (tolerancia a los fallos): La ventaja es que una falla en una máquina virtual no
ocasiona que las demás fallen de manera automática. Recuperar un servidor virtual puede llevar
minutos, en cambio uno físico puede llevar días. En las máquinas virtuales es mucho más fácil usar
puntos de comprobación.

Migración de datos: migrar datos entre una máquina virtual y otra (por ejemplo, para balancear la
carga entre varios servidores) que migrar procesos que se ejecutan en un sistema operativo normal.
En este último caso, se mantiene una cantidad considerable de información crítica de estado sobre
cada proceso en las tablas del sistema operativo, incluyendo la información relacionada con la
apertura de archivos, las alarmas, los manejadores de señales y demás. Al migrar una máquina
virtual, todo lo que hay que mover es la imagen de memoria, ya que todas las tablas del sistema
operativo se mueven también.
17. ¿Cuál es la diferencia entre los hypervisores tipo 1 y tipo 2?

Hipervisor de tipo 1. Se ejecuta sobre el hardware directamente. En realidad es el sistema


operativo, ya que es el único programa que se ejecuta en modo del kernel. Su trabajo es soportar
varias copias del hardware actual, conocidas como máquinas virtuales, de una manera similar a los
procesos que soporta un sistema operativo normal. IBM 370 (1974) tenía este modelo, porque el
ISA le permitía (tenía instrucciones privilegiadas, privilegiadas-sensibles y de usuario). INTEL y AMD
recién en el 2005 introdujeron este ISA, por lo que a partir de ahí se puede construir hipervisores
tipo 1.

Hipervisor de tipo 2. El primero de estos hipervisores fue VMWare (Adams y Agesen, 2006; y
Waldspurger, 2002), el fruto del proyecto de investigación DISCO en la Universidad de Stanford
(Bugnion y colaboradores, 1997). VMWare se ejecuta como un programa de usuario ordinario
encima de un sistema operativo anfitrión como Windows o Linux. Cuando se inicia por primera vez,
actúa como una computadora que se acaba de iniciar y espera encontrar en la unidad de CD-ROM
un disco que contenga un sistema operativo.
Después instala el sistema operativo en su disco virtual (que en realidad sólo es un archivo de
Windows o Linux), para lo cual ejecuta el programa de instalación que se encuentra en el
CD-ROM. Una vez que se instala el sistema operativo invitado en el disco virtual, se puede iniciar
al ejecutarlo.
Ahora veamos cómo funciona VMWare con un poco más de detalle. Al ejecutar un programa
binario del Pentium, que puede obtener del CD-ROM de instalación o del disco virtual, primero
explora el código para buscar bloques básicos; es decir, ejecuciones de instrucciones seguidas que
terminan en un salto, una llamada, una interrupción o alguna instrucción que modifica el flujo de
control. Por definición, ningún bloque básico contiene una instrucción que modifique el contador
del programa, excepto el último. Se inspecciona el bloque básico para ver si contiene instrucciones
sensibles (en el sentido de Popek y Goldberg). De ser así, cada una de estas instrucciones se
sustituye con una llamada a un procedimiento de VMWare que la maneja. La instrucción final
también se sustituye con una llamada a VMWare.
Una vez que se realicen estos pasos, el bloque básico se coloca en la caché de VMWare y después
se ejecuta. Un bloque básico que no contenga instrucciones sensibles se ejecutará con la misma
rapidez bajo VMWare que en la máquina básica (ya que se está ejecutando en esa máquina).
Las instrucciones sensitivas se atrapan y emulan de esta manera. A esta técnica se le conoce como
traducción binaria. Una vez que el bloque básico haya completado su ejecución, el control se
regresa a VMWare, que localiza a su sucesor. Si ya se ha traducido el sucesor, se puede ejecutar de
inmediato. Si no, primero se traduce, se coloca en la caché y después se ejecuta. En un momento
dado, la mayor parte del programa estará en la caché y se ejecutará casi a la velocidad completa. Se
utilizan varias optimizaciones; por ejemplo, si un bloque básico termina al saltar (o llamar) a otro, se
puede sustituir la instrucción final mediante un salto o llamada directamente al bloque básico
traducido, con lo cual se elimina toda la sobrecarga asociada con la búsqueda del bloque sucesor.
Además, no hay necesidad de sustituir las instrucciones sensibles en los programas de usuario; el
hardware las ignorará de todas formas.
Ahora debe estar claro por qué funcionan los hipervisores de tipo 2, incluso en hardware que
no se puede virtualizar: todas las instrucciones sensibles se sustituyen mediante llamadas a
procedimientos que emulan estas instrucciones. El verdadero hardware nunca ejecuta las
instrucciones sensibles que emite el sistema operativo invitado. Se convierten en llamadas al
hipervisor, quien a su vez las emula.
Tal vez podríamos esperar que las CPUs con VT tuvieran un rendimiento mucho mayor que las
técnicas de software que se utilizan en los hipervisores de tipo 2, pero las mediciones muestran
otra cosa (Adams y Agesen, 2006). Resulta ser que el método de atrapar y emular que utiliza el
hardware con VT genera muchas interrupciones, y éstas son muy costosas en el hardware moderno,
debido a que arruinan las cachés de las CPUs, los TLBs y las tablas de predicción de bifurcación
internas para la CPU. Por el contrario, cuando las instrucciones sensibles se sustituyen mediante
llamadas a procedimientos de VMWare dentro del proceso que está en ejecución, no se produce
sobrecarga debido a este cambio de contexto. Como muestran Adams y Agesen, algunas veces el
software vence al hardware, dependiendo de la carga de trabajo. Por esta razón, algunos
hipervisores de tipo 1 realizan la traducción binaria por cuestiones de rendimiento, aun cuando el
software se ejecute de manera correcta sin ella.
18. Ventajas de uno sobre otro.
Básicamente: Hipervisor tipo 1 tiene mejor performance (no tiene tantas traducciones). Se tiene
más control de los programas que se ejecutan sobre las máquinas virtuales.
Hipervisor tipo 2: No hace falta tener CPUs con instrucciones VT. No hace falta eliminar el SO
anfitrión, se carga sobre él. Se puede ganar mucho tiempo de traducción/interpretación con el
software adaptado (a veces tiene mejor rendimiento que el tipo 1).

19. ¿Qué es la Paravirtualización? ¿Qué limitaciones tiene?


La paravirtualización es una técnica de virtualización asistida por software que utiliza APIs
especializadas para vincular las máquinas virtuales con el hipervisor para optimizar su rendimiento.
El sistema operativo en la máquina virtual, Linux o Microsoft Windows, cuenta con un soporte
especializado para la virtualización como parte del núcleo, así como drivers de paravirtualización
que permiten que el SO y el hipervisor trabajen juntos más eficientemente con la mínima
sobrecarga de las traducciones del hipervisor. Esta virtualización asistida por software ofrece
soporte de virtualización optimizado en servidores con o sin procesadores que proporcionan
extensiones de virtualización. El apoyo de la paravirtualización ha sido ofrecido como parte de
muchas de las distribuciones generales de Linux desde 2008. Del mismo modo, los fabricantes AMD e
Intel han diseñado para sus procesadores mejoras en el rendimiento para los hipervisores.
Desde 2006 Intel y AMD ofrecen soporte asistido por hardware que no requiere un sistema
operativo modificado en contraste con paravirtualización

20. ¿En qué puede apoyar el hardware a la virtualización? ¿Qué hicieron Intel y AMD?
AMD-V e Intel VT-x son extensiones de virtualización asistida por hardware que los hipervisores
pueden aprovechar durante el procesamiento. Los procesadores Intel ofrecen un conjunto de
instrucciones adicionales llamado Virtual Machine Extensions (VMX). Al tener algunas de estas
instrucciones como parte del procesador, los hipervisores ya no necesitan mantener estas
funciones como parte de su código base. El código en sí puede ser más pequeño y más eficiente, y
las operaciones que admiten son mucho más rápidas, ya que ocurren por completo en el
procesador.

21. ¿Cuáles son los dos enfoques o estrategias de una máquina virtual para proporcionar recursos de
procesador?

El primero es emular un chip como software y proporcionar acceso a ese recurso.

El segundo modelo realmente no virtualiza procesadores, pero proporciona segmentos de tiempo de


procesamiento en los procesadores físicos (pCPUs) del anfitrión (host) de virtualización a los
procesadores virtuales de las máquinas virtuales alojado en el servidor físico. Esto bien planificado
tiene un buen desempeño.

22. ¿Cómo se debería encarar el tema de asignación de procesadores a las máquinas virtuales?
De menor a mayor y controlando rendimiento.
23. ¿A qué se les denomina anillos o Ring, en los procesadores? ¿Para qué sirven en la virtualización?
A los niveles de privilegio o modos de operación: 0 más privilegiado, 1 menos, 2 mucho menos y 3
el menos. Si hay hipervisor 1, éste ejecuta en anillo 0, los SO invitados en anillo 1 y las aplicaciones
en anillo 3. Si hay hipervisor tipo 2, el SO anfitrión en anillo 0, el hipervisor en anillo 1, el SO
invitado en anillo 2 y las aplicaciones en anillo 3.
24. ¿Cómo se debe configurar la memoria asignada a una máquina virtual?
En porciones de tamaño menor que la memoria física, porque se pierde mucho tiempo en
intercambios. Hay que ir probando rendimientos.
25. ¿Cómo administra la memoria un hipervisor, si sobre él hay máquinas virtuales con la misma
versión de SO?
La comparte entre los SO y también si hay aplicaciones repetidas.
26. ¿Cómo trabaja la técnica de Ballooning en la administración de memoria?
Para optimizar el uso de la memoria y recuperar memoria asignada de más. Infla y desinfla “globos”
para “swappear” procesos.
27. ¿Cómo se resuelven las E/S virtuales?
Se arman colas de peticiones. El hipervisor controla y supervisa las solicitudes.
28. ¿Qué ventajas posee la virtualización de E/S?

Las ventajas de virtualizar la carga de trabajos de E/S son muchas. Permite independencia del
hardware mediante la abstracción de los controladores específicos de las versiones que se ejecutan
en el hipervisor. Una máquina virtual que se ejecuta en un servidor IBM como un host puede
migrarse en vivo a un servidor HP blade, sin preocuparse sobre incompatibilidades de hardware o
desajustes de versiones. Esta abstracción permite una de las mayores fortalezas de la
disponibilidad: la migración en VIVO (en caliente).

29. Mencione algunas de las soluciones tecnológicas de hardware que mejoran el rendimiento de la E/S
virtual.
Algunas empresas de hardware disponen de dispositivos aceleradores de placas controladoras-
memoria.
30. Identifique las diferencias entre las máquinas virtuales vistas en este capítulo y la Java VM.
Una máquina virtual generada por un hipervisor genera una copia exacta del hardware. La máquina
virtual Java es sólo válida para una aplicación y tiene un intérprete que se adecua al SO y al
hardware.

31. Adicional: Investigue el trabajo (paper) de requisitos de hardware para virtualización (Popek y
Goldberg).
Concretamente, se trata de requisitos de un hipervisor tipo 1. Si se ejecuta una instrucción de E/S
desde un SO que ejecuta en modo NO privilegiado, el hardware no ignora ni rechaza ese código,
porque dispone de INSTRUCCIONES SENSIBLES, que son un subconjunto de las INSTRUCCIONES
PRIVILEGIADAS. En INTEL, esto es un anillo 1.

Potrebbero piacerti anche