Soporte en hardware para el control de acceso de dispositivos de E/S en un ambiente virtualizado

Soporte en hardware para el control de acceso de dispositivos de E/S en un ambiente virtualizado

Brisbane Ovilla Martínez
 

Texto completo de la Tesis     

 


Resumen

En la actualidad las computadoras han adquirido gran capacidad de procesamiento lo cual ha permitido ejecutar aplicaciones cada vez más complejas y costosas en recursos. Sin embargo, es importante considerar que estas capacidades muchas veces no son aprovechadas al máximo, es por esta razón que en los últimos años han surgido nuevas tecnologías que permiten aprovechar de mejor manera los recursos de cómputo. Una de estas herramientas es la virtualización, que en términos computacionales, es un método para crear una versión virtual de un dispositivo o recurso mediante el uso de las llamadas Máquinas Virtuales (MV). Las MV nos permiten una combinación y repartición más eficiente de los recursos de cómputo con la finalidad de ofrecer una mayor versatilidad en la capacidad de resolución de tareas como el soporte a múltiples sistemas operativos. Debido al gran aumento de poder de cómputo en la actualidad resulta más ventajoso tener soporte de máquinas virtuales que tener físicamente máquinas separadas. Ya que algunos estudios afirman que los servidores normalmente no trabajan utilizando el 100% los recursos, sino alrededor de un 10 a un 20%. Es en estos casos que mediante el uso de la virtualización permite aprovechar hasta un 80% la capacidad del CPU y sus recursos. Entonces el virtualizar una plataforma permite lograr un mejor aprovechamiento del hardware, así como también reducir el consumo de energía y espacio y facilitar la administración gracias a la reducción del número de servidores físicos. En años recientes una línea de investigación ampliamente abordada es la seguridad en ambientes virtualizados, ya diferentes VM's pueden tener acceso a dispositivos de hardware en un mismo entorno físico. Las labores de coordinación de acceso a los recursos de hardware son hechas por un software llamado monitores de máquinas virtuales (MMV), algunas de las versiones existentes de MMV's ocupan un módulo de control de acceso (MCA) para hacer más eficiente los accesos a los recursos físicos. Sin embargo, existen dos grandes problemas en las MMV's uno de ellos es el mal manejo de la seguridad ya que en ocasiones, por la comunicación entre VM's ocurren accesos no autorizados a recursos los físicos como la memoria. El otro problema es que al virtualizar algunas aplicaciones como sistemas operativos su rendimiento decrece, principalmente a debido a que el MMV debe regular las peticiones de las MV al hardware. Una solución a estos dos problemas es la implementación del MCA directamente en hardware, y es que realizar la transferencia de control de acceso mediante software a una implementación hardware se traduce en una menor carga de trabajo al MMV y por consiguiente en una mejora en el rendimiento. Además la seguridad también se ve beneficiada debido a que el control de acceso a los dispositivos se realiza en un nivel más bajo que el software haciendo más complicado lograr un acceso no autorizado a los dispositivos físicos. En este documento se plantean los principios de diseño del módulo de control de acceso en hardware. Los requerimientos y objetivos que deben ser cubiertos por el MCA son descritos, al igual que la arquitectura del MCA en hardware y las consideraciones que fueron tomadas para su integración a una arquitectura de cómputo.

Abstract

Nowadays computers have acquired a huge processing capacity, which has allowed to create much more complex applications. However, something important to consider is that the capacities are often not completely used, as a consequence new technologies have been created to improve the usage of the computational resources. One of this applications is the virtualization, which in computational terms, is a method to create a virtual version of a hardware device by using the so called Virtual Machines (VM). The VM allows a more eficient combination and assignment of the hardware resources aiming to offer a better versatility in the task solving capacities, such as supporting multiple operative systems. Due to the increment of computational capacities, today it is more convenient having support of VM rather than physically separated computers. Moreover, there are some research which affirms that typically servers don't use a 100% of the whole hardware resources but just about a 10% to 20% of them. It Is in these cases where virtualizing allows to improve the performance by using up to 80% of the CPU capacities, including its resources. Therefore, virtualizing allows not only to improve the usage of the hardware, but also to reduce the energy and space consumption besides, it the resources administration by decrementing the number of physical servers. To take the best of physical resources, multiple VM's can run in the same computer, they also communicate and share the computer resources between them, and as a result, security has become an important research field. The access coordination tasks to hardware are done by a virtual machines monitor (VMM), some of them use a control access module (CAM) to make more eficient the access to the physical resources. However, there are two main issues with the VMM's, one of them is the security, due to communications between VM's not allowed access to physical resources like memory are likely to occur. The other issue is that virtualizing applications like operative systems reduce their performance, mainly because VMM has to regulate the hardware petitions of the VM. A plausible solution to these two problems is the implementation of the CAM directly into hardware, taking the hardware access control away from the VMM results into a reduction of tasks demands, and consequently into a improvement in the performance. Besides, the security is also improved since the hardware control access is done in a lower level than in software and so difficulting the not allowed access to the hardware devices. This document states the design principles of a CAM in hardware and describes the requirements and objectives that must be full filled by the CAM, aswell as the architecture in hardware and the considerations that were necessary to its integration into a computer architecture.