jueves, 15 de abril de 2010

Los motivos para los sectores de 4KB en los HDDs

En una noticia publicada a principios del mes pasado en Ars Technica nos explican que los discos duros son poco fiables, ya que se basan en superficies magnéticas que no son absolutamente estables y un sólo bit puede saltar, así que se introdujeron sistemas de comprobación de redundancia en los datos para minimizar errores.

El problema es que el tamaño del sector, desde hace mucho tiempo, se estableció en 512 bytes y para evitar que la información almacenada en dicho sector se corrompa se han introducido sistemas de comprobación cíclica o información redundante, la cual a estas alturas ha crecido hasta los 40 bytes extra por sector. A esto hay que sumarle los separadores de sectores que resultan otros 40 bytes.

En definitiva, por cada sector de 512 bytes tenemos 40+40 bytes que incluyen información nula para separar sectores o para marcar el inicio del mismo, además de la información extra para comprobar la integridad. Con estos 80 bytes extras por sector perdemos alrededor del 26% de la capacidad, aunque esta cifra normalmente se calcula obviando los 40 bytes de separación entre sectores y sólo se tienen en cuenta los bytes de corrección de errores, bajando a un 13% la pérdida de espacio de nuestro disco duro.

Esos 40 bytes de redundancia nos permite corregir hasta 50 bits erróneos de los 512 bytes que hay en un sector.


A medida que ha aumentado la capacidad de los discos duros ha aumentado la densidad de los datos y cada vez es más probable que un sector contenga errores y estos 40 bytes extra no sean suficientes para que los errores puedan ser corregidos automáticamente. Incluso nos dan algunas cifras acerca de la probabilidad de error actual: según los cálculos de probabilidad de fallo de los discos duros, si disponemos de 12TB de almacenamiento lo más probable es que exista un error, no muy grave para un usuario común e improbable que afecte a ficheros cruciales, pero la probabilidad está ahí.

Así pues, a medida que avanzamos y los discos son más densos, se necesitan más bytes de redundancia. Hace una década necesitábamos 24 bytes y en 2004 pasamos a los 40 bytes y a partir de ciertos tamaños de disco duro deberíamos pasar a 80 bytes, por lo que cada vez que aumentamos la capacidad y densidad de nuestros discos duros perdemos más espacio por sector.


La solución a todo esto ya se comentó hace tiempo: aumentar el tamaño de los sectores de los discos duros a 4096 bytes o 4 kbytes, de hecho WD ya anunció discos duros con un tamaño de sector así a finales de año y a principios de febrero ya se anunciaba que así lo harían todos los fabricantes. Uno de los motivos para esta cifra de 4KB es que coincide con el tamaño habitual de bloque que fichero del sistema NTFS, el más utilizado ahora mismo. Además, la asignación de memoria de los sistemas x86 también utiliza múltiplos de 4.096, así que la cifra es redonda (y todos sabemos que en la informática las cosas que cuadran o son síncronas van un poco mejor que las cosas asíncronas).

Con el cambio de tamaño de sector de 512 bytes a 4.096 bytes mejoraremos la relación de capacidad/espacio desperdiciado. Nos dan cifras: con 4.096 bytes de datos en sectores de 512 bytes ocupamos 8 sectores, para ello en total terminamos ocupando 4.736 bytes y disponiendo de una protección para evitar 400 bits de error (50 x 8 sectores). Si cambiar a un tamaño por sector de 4.096 bytes, los separadores entre sectores seguirán siendo de 40 bytes y el espacio para la redundancia pasará a 100 bytes por sector, con lo que en total, para la misma información, ocuparemos 4.236 bytes con capacidad de corregir hasta 1.000 bits de errores.

Así pues, aumentamos seguridad ante fallos y desperdiciamos mucho menos espacio de la superficie de un disco duro, aprovechando el 96% de la capacidad real. Pongamos una tabla para que se vea mejor:


ActualidadFuturo
Tamaño sector512 bytes4.096 bytes
Separación entre sector40 bytes40 bytes
Bytes corrección por sector40 bytes100 bytes
Errores corregibles por sector50 bits1.000 bits
Espacio perdido por correcciones13%4%

Pero tal y como nos explican en la noticia de Ars Technica el paso de 512 bytes a 4KB por sector tiene sus pegas

No hay comentarios: