Alineación de discos y problemas de rendimiento

Este es un problema que podemos encontrarnos a veces, sobre todo con la proliferación de entornos virtuales (aunque es aplicable a discos físicos).

 

Un poco de teoría:

En el principio de los tiempos los discos IDE/ATA utilizaban un modelo CHS (Cilindro, Head,Sector) para leer y escribir los datos, esto evoluciono hasta los actuales discos SATA que utilizan modelo diferente para direccionar los datos, el LBA.

 

LBA (Logical Bloc Addressing) divide el disco en sectores referenciados desde 0 hasta el tamaño máximo del disco, donde cada uno de estos sectores tiene un número único que lo identifica.

Todos los sistemas operativos modernos usan LBA para acceder y escribir la información en disco.

Como solución temporal de compatibilidad para la adopción de este nuevo modelo de direccionamiento aparecieron discos que emulaban un tamaño de sector de 512 bytes, mientras que por debajo usaban los comandos ATA/SCSI para acceder a los datos, resultando en que a efectos prácticos tenemos dos tipos de sector:

  • Logical sector:  se utiliza para direccionar bloques de datos y es la unidad mínima de información a leer/escribir que aceptara nuestro almacenamiento.
  • Physical sector: es la unidad mínima de información que nuestro dispositivo (disco) es capaz de leer o escribir e una única operación.

¿En que se tradujo todo esto?

En que el mercado termino inundado por dos tipos de discos con los que los sistemas operativos debían lidiar:

  • 4 KB nativos: tamaño lógico de sector de 4KB
  • 512e: emulación de 512 bytes

y cada sistema operativo soporta esto de una manera diferente, por ejemplo para el caso de Windows

block_Size_Windowspodemos ver que sistemas operativos como Windows 7, 2008, 2008 R2, usan sectores lógicos de 512B.

Con tamaños de sector lógicos de 512B tenemos que un sector físico de 4KB contendrá 8 sectores lógicos

emulacion_disco_4-512

el problema es que sistemas operativos relativamente recientes (versiones de windows anteriores a la 7, RHEL 5.x, etc.) y que podemos encontrar en múltiples instalaciones, creaban la primera partición a partir del LBA 63, produciendo una desalineación que penalizaba las operaciones de lectura / escritura

Desalineación

¿y todo esto realmente importa?

Si, la realidad es que tener no alineadas las particiones pueda ocasionar perdidas significativas de rendimiento, esto en entornos virtuales puede ser realmente sangrante, con caídas de rendimiento de alrededor de un 30-40%

Os recomiendo leer el siguiente artículo, de donde se han extraído las imágenes y la mayoría de la información. Es realmente bueno y podéis encontrarlo aquí.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *