miércoles, 4 de mayo de 2022

Hyper-V en RAID es lento... ¿Por qué?

Por qué Hyper-V puede ser lento en un RAID

El RAID rayado combina varios discos duros en uno solo almacenando bloques consecutivos en el siguiente disco duro del array.

Por ejemplo, si utiliza cuatro discos duros en una matriz rayada, los bloques 1 y 5 están en el disco duro 1, y los bloques 2 y 6 están en el disco 2.

Ahora bien, cuando se copian archivos esta disposición es bastante eficiente porque el sistema operativo leerá bloque tras bloque en secuencia y la controladora RAID puede cargar los siguientes cuatro bloques simultáneamente, lo que le proporciona la velocidad multiplicada (4x) que está buscando.

Sin embargo, los discos virtuales de Hyper-V suelen almacenar máquinas virtuales con Exchange y SQL Server y otros servicios de acceso aleatorio orientados a bloques.

Entender el acceso aleatorio es la clave aquí. El acceso aleatorio significa que el sistema no leerá necesariamente los bloques en secuencia; por lo tanto, su rendimiento real puede no ser mejor que cuando se utiliza un solo disco duro.

¿Cómo puede ser esto? La disposición de RAID en bandas supone un acceso secuencial, bloque tras bloque. Sólo así puede ofrecer una mejora útil de la velocidad. Cuando el sistema lee el bloque nº 1 seguido del nº 101 y ambos están en el mismo disco, es imposible que acelere las cosas. Además, los controladores RAID pueden leer una franja entera a la vez, que suele ser un múltiplo de 4KB para optimizar el tamaño de los sectores del disco duro moderno.

Sin embargo, el antiguo formato VHD utiliza 512 sectores e Hyper-V puede estar "saltando" aleatoriamente dentro de un VHD en pasos de 512 bytes. En algunas configuraciones RAID, puede que haya que leer una franja entera debido a la forma en que se gestiona internamente el RAID. Esto significa que puede ocurrir que las cuatro unidades estén ocupadas para leer una pequeña fracción de un bloque del disco duro nº 3.
Qué hacer

Hay tres factores principales en Hyper-V que empeoran las cosas:

    Usar discos de expansión dinámica. Un gran no-no si quieres rendimiento. La expansión de los discos hará que los cabezales del disco se muevan como locos eventualmente porque los bloques del disco virtual no se almacenan realmente de forma secuencial en el disco
    Usar puntos de control, también conocidos como instantáneas de Hyper-V. Estos resultan en discos diferenciados que también requieren "saltos" adicionales de un sector de disco a otro. Estos movimientos de cabeza consumen mucho tiempo
    Fragmentación del disco, causada principalmente por los dos elementos anteriores. A medida que los discos virtuales dinámicos en expansión crecen, también causan fragmentación en el host. Más fragmentos de archivos significa más tiempo perdido saltando de sector en sector, y también se pierde tiempo en buscar dónde está almacenado el siguiente bloque en el disco.

La recomendación es por tanto:

    No utilizar discos de expansión dinámica
    No utilizar Checkpoints / Snapshots de Hyper-V
    Utilizar VHDX de tamaño fijo sobre VHD para obtener una alineación de bloques de 4KB
    No haga la franja RAID demasiado larga
    Desfragmentar el host antes de crear el VHDX
    Considere si un grupo de pequeños RAIDs espejo de dos discos duros usando discos duros rápidos puede ser una mejor opción
    ¿Utilizar discos SSD? Pueden ser menos fiables y mucho más caros, pero eliminan el gasto del movimiento de la cabeza del disco duro. Sin embargo, no son tan fiables como los medios magnéticos y el tiempo de la CPU seguiría siendo un problema cuando se utilizan discos de diferenciación o expansión. Sin embargo, la sobrecarga de la CPU es mucho menor que el tiempo necesario para que una unidad mecánica mueva sus cabezales

¿Y qué hay de su copia de seguridad de Hyper-V? ¿Tiene una solución de copia de seguridad de Hyper-V fiable?


No hay comentarios:

Publicar un comentario