Download Virtualización Virtualización rendimiento de rendimiento

Document related concepts

VMware wikipedia , lookup

VHD (formato de archivo) wikipedia , lookup

Hipervisor wikipedia , lookup

Máquina virtual wikipedia , lookup

VMware ESXi wikipedia , lookup

Transcript
Virtualización
y
rendimiento de
discos
Virtualización y rendimiento de discos
1
Introducción:
Dado que las tecnologías de virtualización tienen muchas aplicaciones específicas,
comenzaremos presentando las correspondientes definiciones.
Definición: Virtualización
Virtualizar algo es, básicamente, hacer que algo que no existe (físicamente) parezca que
existe. Piense en el contexto de realidad virtual. Veamos un ejemplo rápido de algo con
lo que todos en el mundo de la informática estamos familiarizados: un PC con 4
volúmenes lógicos (C, D, E y F). En realidad, dicho escritorio tiene una unidad de disco
físico dividido en 4 volúmenes. Un volumen lógico es, en este caso, una unidad virtual.
A continuación definiremos dos aplicaciones recientes y muy populares de la tecnología de
virtualización.
Definición: Virtualización de servidor1 / Equipo virtual
La virtualización de servidor describe la
creación de una o varias instancias de un
sistema operativo “huésped”, bien sobre un
sistema operativo “host” o anfitrión
(arquitectura alojada) o directamente sobre una
capa de software especializado denominado
hipervisor (arquitectura de hipervisor).
En ambas arquitecturas, la virtualización del
sistema host de otros sistemas operativos se
consigue mediante software propio del
fabricante (por ejemplo, Virtual Server™,
VMware™, Virtuozzo™), que reside entre el
hardware físico (CPU, memoria, etc.) y los
sistemas operativos "huéspedes". Cada sistema
operativo huésped o host ejecuta sus propias
aplicaciones de manera independiente como si
se tratara del único sistema que opera en el hardware.
Imagen 1 (equipos virtuales)
En un entorno host/huésped, cada instancia de un sistema operativo huésped almacena un
archivo denominado disco virtual (por ejemplo, .vhd, .vmdk) en el sistema host. Esta es
una implementación de la virtualización de equipos muy habitual hoy en día.
1
En este documento, la virtualización de servidor incluye también la virtualización de PC (estación de trabajo).
Virtualización y rendimiento de discos
2
La arquitectura de hipervisor elimina la necesidad de un sistema “host”. Con un
hipervisor, los equipos virtuales se ejecutan en una capa delgada de software de
abstracción del hardware. Dicha capa de software, el hipervisor, se encarga de las
comunicaciones de hardware de todos los sistemas virtuales existentes en el equipo. El
hipervisor representa el futuro de la tecnología de equipos virtuales.
Definición: Virtualización del almacenamiento
La virtualización del almacenamiento
implica la creación de un contenedor lógico
de datos, generalmente de gran tamaño, que,
mediante software, aparenta estar
físicamente situado completamente en un
único servidor. En realidad, los datos
pueden estar situados en cientos de discos
físicos repartidos por decenas de servidores.
Este es el concepto que implementan las
SAN (Storage Area Networks: redes de área
de almacenamiento). Para lograr el máximo
Imagen 2 (virtualización del
rendimiento, estos contenedores de
almacenamiento)
almacenamiento requieren desfragmentación
automática de discos de la misma forma que la requiere una unidad de disco duro
independiente. La desfragmentación automática se implementa desde servidores que
administran los correspondientes volúmenes de disco lógicos.
Nuestra última definición es una explicación a grandes rasgos de la fragmentación de discos.
Definición: Fragmentación de discos
La fragmentación de disco es un estado en el que las distintas partes que conforman
archivos concretos y el espacio libre de un disco no son contiguas sino que están
fragmentadas y repartidas por todo el disco. Esto exige que la unidad de disco duro
localice todos los fragmentos de
un archivo. Recabar todos los
fragmentos de un archivo de
numerosos lugares en lugar de
hacerlo de un solo lugar provoca
que el acceso sea
significativamente más lento de
lo que debiera. La grabación de
archivos en el espacio libre
fragmentado también lleva más tiempo y puede aumentar la probabilidad de que se
fragmenten los nuevos archivos.
Imagen 3 (fragmentación de disco)
Virtualización y rendimiento de discos
3
El efecto de la fragmentación de los discos es un rendimiento más lento del sistema,
mayor uso de los recursos de E/S y más situaciones graves, además de fiabilidad
reducida, que puede originar fenómenos como los bloqueos de aplicaciones y del sistema.
Descripción general:
Dependiendo de la perspectiva que adoptemos, el objetivo de la virtualización es permitir la
divergencia y la convergencia. Permite la división de objetos lógicos que deben estar separados
y/o la consolidación de objetos que deben estar agrupados.
La eclosión reciente de esta tecnología coincide con la tendencia hacia la consolidación de los
sistemas en un menor número de equipos de hardware pero más potentes. Con un hardware más
robusto, la consolidación tiene sentido en lo que se refiere a la efectividad de los costes. Y ante la
tendencia a la consolidación, cuyo fin es reducir las necesidades de administración y aumentar la
eficiencia de la utilización del hardware, la virtualización resulta más que interesante.
El objetivo de la desfragmentación es consolidar los fragmentos de los archivos en una única
pieza para aumentar la velocidad de acceso, además de reducir los fragmentos de espacio libre a
tan sólo unos pocos trozos grandes.
La virtualización tiene sus riesgos, ya que somete los recursos físicos a un mayor nivel de estrés.
Aunque la infrautilización de la CPU puede ser un factor que anime a la virtualización de los
servidores, otros recursos de hardware pueden sufrir una sobreexplotación. Dado que un sistema
host tiene una capacidad limitada (que depende de la aplicación) para paginar la memoria
utilizada por los sistemas huéspedes, el cuello de botella más reconocible que debe atajarse es la
memoria física (la RAM). Las opciones que permiten mitigar los embotellamientos de la
memoria de manera programática tienen como contrapartida efectos negativos en el rendimiento
cuando el disco es reintroducido. Otro componente principal que quizá no se reconoce tan
fácilmente es el subsistema de disco. En muchos casos, dependiendo del objetivo y la aplicación
de los sistemas huésped/virtual, el embotellamiento en los discos es el obstáculo más importante
para lograr un alto rendimiento.
El resto de este documento describe la importancia creciente del rendimiento de los discos.
El disco es el eslabón débil:
Las CPU y la memoria operan a velocidades muy superiores a las de las unidades de disco duro
mecánicas. Cuanto más lento es el disco, más lento es todo el sistema.
Aunque los profesionales del sector conocen bien esta realidad, merece ser reiterada, ya que el
problema se hace patente cuando se pide a los discos que den más de sí. Esto es lo que sucede
con la virtualización, en la que el hardware tiene que dar apoyo a numerosos sistemas operativos
simultáneamente.
Otro factor fundamental que debe tenerse en cuenta es que la virtualización de los servidores
puede aumentar la fragmentación de los discos y, como ya se ha indicado anteriormente, la
fragmentación de los discos reduce el rendimiento del disco.
Virtualización y rendimiento de discos
4
La fragmentación se produce normalmente en unidades de disco lógicas, que los controladores
de dispositivos traducen en sectores físicos de un disco. Puede ilustrarse como una serie de
piezas de un archivo almacenadas de manera no contigua (Imagen 4). En el caso de los sistemas
virtuales, el volumen lógico queda enmascarado por la tecnología, lo que se conoce como disco
virtual. Estos discos virtuales residen en discos lógicos en forma de contenedores de archivos.
Estos archivos de discos virtuales pueden fragmentarse del mismo modo que cualquier otro
archivo, dando como resultado un disco duro virtual fragmentado “lógicamente” (Imagen 5), que
continúa conteniendo la típica fragmentación de archivos.
Imagen 4 (unidad fragmentada)
Imagen 5 (disco virtual fragmentado)
La Imagen 5 aparecería en la lista de “Archivos fragmentados” de un informe de análisis de
desfragmentación ejecutado desde un sistema operativo Windows host como
“VirtualServer1.vhd, con un tamaño de 4 GB en 6 trozos”.
Imagen 6 (Fragmentación de disco jerárquica)
Esto se traduce en fragmentación
jerárquica o, dicho de otro modo, en
fragmentación dentro de la
fragmentación. Las líneas negras de la
Imagen 6 (izquierda) representan las
asignaciones de E/S de disco de los
fragmentos de archivos de disco virtual
al sistema host en una arquitectura
alojada. La unidad más pequeña de
acceso a datos en un equipo virtual
suele ser de 128 sectores o 64 KB. Por
ello, si las unidades de acceso (llamadas
granos en VMware) se fragmentan, el
rendimiento se resiente.
Virtualización y rendimiento de discos
5
Imagen 7 (E/S de disco en niveles a un archivo fragmentado
en un disco virtual fragmentado
La Imagen 7 (derecha) ilustra un archivo
fragmentado (“Fragmented Word doc in Virtual
Server.doc”) que reside en un disco virtual, que
a su vez es un archivo fragmentado del sistema
operativo host. El diseño actual de la
virtualización de servidores basada en software
requiere que el sistema host capture y procese
todas las E/S de disco generadas por los
sistemas operativos huéspedes, lo que añade una
nueva capa a la pila de procesamiento de E/S.
Virtualización y rendimiento de discos
6
Arquitecturas de virtualización de equipos y E/S:
Ante las dos arquitecturas de
virtualización predominantes (alojada
o de hipervisor), recuerde que los
equipos virtuales emulan el hardware
y pueden no emular las
especificaciones exactas. Por ejemplo,
una tarjeta de vídeo de gama alta
puede no ser emulada en el sistema
host con todas sus prestaciones
avanzadas.
Imagen 8 (Virtualización de hipervisor)
La arquitectura de hipervisor (derecha)
elimina la necesidad de un sistema operativo host y mejora el rendimiento global de los sistemas
virtuales.
Como se ha demostrado anteriormente, las E/S de disco generadas por sistemas virtuales
(arquitectura alojada) pueden verse afectadas por el aumento del procesamiento en la pila de
software. Esto significa que la E/S de
disco tiene que subir y bajar capas de
software que se abstraen del hardware
físico. En una arquitectura alojada, una
petición de disco de bajo nivel en un
sistema huésped se traduce en una
llamada de nivel de usuario en el sistema
host. Con la probable pérdida del caché
de disco a nivel de huésped
(consideración relativa al soporte de
Imagen 9 (Virtualización alojada)
hardware) y la capacidad limitada de
puesta en cola, este proceso no será tan rápido como una llamada directa de hardware físico
realizada por el sistema host.
En resumen, la virtualización de servidores establece una relación simbiótica, por lo que
conviene recordar que la generación de E/S de disco en un equipo virtual ralentiza la E/S del
disco de otros sistemas virtuales, con independencia de la arquitectura de que se trate. La
fragmentación es cada vez más importante en entornos de equipos virtuales (jerárquica en la
arquitectura alojada) y aumenta más el embotellamiento en los discos que en sistemas
convencionales (recurso compartido).
En el futuro, la apertura de los formatos propios para el desarrollo por parte de terceros, el
hardware apto para virtualización de Intel y AMD (soporte y acceso de hardware mejorados), los
avances en los sistemas operativos (el hipervisor formará parte de Windows Longhorn) y las
asociaciones de colaboración tecnológica, como la establecida entre Diskeeper y Microsoft,
persiguen la mejora continua en el rendimiento de los discos conforme la virtualización gana
terreno en la informática del día a día.
Virtualización y rendimiento de discos
7
Mejora del rendimiento de los discos en servidores virtuales:
1. Ejecute desfragmentación automática avanzada en el sistema operativo host y en todos los
sistemas operativos huéspedes. Asegúrese de que el software sea cuidadoso con los recursos de
disco, ya que la desfragmentación intrusiva con herramientas manuales o básicas puede provocar
más problemas de los que resuelve.
2. Utilice herramientas básicas incorporadas o de terceros más avanzadas (como FragShield de
Diskeeper) para ajustar adecuadamente la configuración de la MFT y del archivo de paginación
en los sistemas operativos host y/o huésped.
3. Incorpore las siguientes estrategias de subsistema de discos y partición recomendadas para el
sector:
•
•
•
•
•
•
Para minimizar la fragmentación de los discos virtuales, preasigne su tamaño si es
posible (simplemente supervise la cuota de espacio en disco).
Separe el sistema operativo host en un disco físico independiente (eje).
Mantenga el archivo de paginación host en un disco físico (eje) independiente de
los de los discos virtuales.
Cree particiones lógicas independientes en el sistema host por cada sistema
virtual. Esto es especialmente importante para permitir la expansión dinámica de
los discos duros virtuales.
Utilice discos duros SCSI de alto rendimiento y, preferiblemente, un backend
SAN o RAID.
Compacte los discos duros virtuales. Asegúrese de que ataja la fragmentación
como parte del proceso de compactación, tanto antes como después de ésta.
Referencias de prácticas recomendadas:
VM Performance Tips (Sugerencias sobre rendimiento de VM) – (Michael Otey - Windows IT
Pro): http://www.windowsitpro.com/Article/ArticleID/48726/48726.html
How to Improve Disk I/O Performances with VMware Workstation 5 (Cómo mejorar el rendimiento de E/S de
disco con VMware Workstation 5) – (Alessandro Perilli): http://www.virtualization.info/2005/11/howto-improve-disk-io-performances.html
Virtual Server Improving Performance (Mejora del rendimiento de Virtual Server) – Microsoft
Corporation:
http://www.microsoft.com/technet/prodtechnol/virtualserver/2005/proddocs/vs_operate_using_p
erfTune_tune.mspx?mfr=true
Configuring Hard Disk Storage in a Virtual Machine (Configuración del almacenamiento en
disco duro en un equipo virtual) – VMware Inc.:
http://www.vmware.com/support/ws45/doc/disks_config_ws.html
Diskeeper and Microsoft Collaborate to Offer Advanced Virtual Server Performance (Diskeeper
y Microsoft colaboran para ofrecer rendimiento avanzado en Virtual Server) – Microsoft
Corporation: http://www.microsoft.com/presspass/features/2006/apr06/0403virtualizationqa.mspx
Virtualización y rendimiento de discos
8
Virtual Server 2005 Best Practices (Prácticas recomendadas para Virtual Server 2005) –
Microsoft Corporation:
http://www.microsoft.com/technet/prodtechnol/virtualserver/2005/proddocs/vs_deploy_reqs.msp
x?mfr=true
VMware Workstation and GSX Performance and Configuration (Rendimiento y configuración
de VMware Workstation y GSX):
http://www.vmug.net/download.aspx?file=23
Diskeeper Corporation Europe,
Kings House, Cantelupe Road,
East Grinstead, West Sussex,
RH19 3BE
www.DiskeeperEurope.com
© 2006 Diskeeper Corporation. Reservados todos los derechos. Diskeeper, The Number One Automatic Defragmenter y Frag Shield son
marcas comerciales o marcas registradas de Diskeeper Corporation. Microsoft, Windows y Virtual Server son marcas registradas o
comerciales de Microsoft Corporation en los Estados Unidos de América y/o en otros países. VMware es una marca comercial de
VMware, Inc. Virtuozzo es una marca comercial de SWsoft, Inc. El resto de marcas comerciales pertenecen a sus respectivos propietarios.
Virtualización y rendimiento de discos
9