Has comprado un disco SSD? Planeas particionarlo? Veamos cuál es la mejor forma de configurar las particiones en un disco SSD -- y los sistemas de archivos resultantes -- alinear los page boundaries, mejorando así el rendimiento y minimizando el número de ciclos de re-escritura.
Manos a la obra
Para esta prueba se adquirió un disco SSD de 64 GB en una tienda Microcenter, el cual utiliza un controlador SandForce 1222. Anteriormente se ha probado el rendimiento de este controlador en pruebas de compresión de datos en tiempo real. Pero ya que finalmente tenemos el disco, primeramente vamos a configurarlo correctamente.
El reto que se enfrenta es que estas particiones se encuentran en los límites de los cilindros (tomando en cuenta que fdisk en Linux utiliza “heads” y “tracks” para definir los cilindros). Si ese límite de cilindro no está alineado con la página de un SSD, entonces el SSD puede hacer trabajo extra en los ciclos de lectura/modificación/escritura, causando ciclos de escritura extras que merman el rendimiento. Si en tu caso no vas a particionar el disco SSD no necesitas preocuparte por esto porque no sería afectado dicho disco.
Por defecto, fdisk de Linux utiliza una geometría de 255 cabezas, 63 sectores/tracks, y, todavía, sectores de 512-bytes. Esto da como resultado 16,065, sectores de 512-bytes por cilindro (2,008.125 páginas de 4KB). Estas no están alineadas en páginas de 4KB. Entonces necesitamos ajustar la geometría para alinear los límites de los cilindros a páginas de 4KB para que las particiones estén alineadas con los límites de página.
En Internet podemos encontrar algunas recomendaciones geométricas para nuestros discos SSD, como por ejemplo la de Theodore Ts’o, líder de ext4, en su blog, recomienda:
224 heads (32*7)
56 sectors per track (8*7)
Esto resulta en 12,544 sectors por cylinder (256 * 49). Utilizando 56 sectores por track tenemos 56*512 bytes o 28,762 bytes por track. Esto es lo mismo que 7 blocks de 4KB en cada cilindro, por lo que tendremos un número entero de páginas de 4KB por cylinder. Por lo tanto cualquier partición éstará alineada. Este es un ejemplo de cómo hacerlo.
[root@test64 ~]# fdisk -H 224 -S 56 /dev/sdd
he number of cylinders for this disk is set to 9345.TThere is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:sions of LILO) 2) booting and partitioning software from other1) software that runs at boot time (e.g., old ve rOSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): n Command action e extended2 Last cylinder or +size or +p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-9345, default 1) :sizeM or +sizeK (2-9345, default 9345): Using default value 9345 Command (m for help): wdisks.The partition table has been altered! Calling ioctl() to re-read partition table. Syncing
Notemos que se comenzó en el segundo cilindro para asegurarnos de que la partición /dev/sdd1 inicia en un límite de cilindro.
Podemos verificar el particionamiento con la opción “-l” de fdisk.
[root@test64 ~]# fdisk -l /dev/sdd
isk /dev/sdd: 60.0 GB, 60022480896 bytesD224 heads, 56 sectors/track, 9345 cylindersUnits = cylinders of 12544 * 512 = 6422528 bytesDevice Boot Start End Blocks Id System/dev/sdd1 2 9345 58605568 83 Linux
Además podemos dar un vistazo al número de sectores utilizando la opción “-lu”.
[root@test64 ~]# fdisk -lu /dev/sdd
isk /dev/sdd: 60.0 GB, 60022480896 bytesD224 heads, 56 sectors/track, 9345 cylinders, total 117231408 sectorsUnits = sectors of 1 * 512 = 512 bytesBlocks Id System /dev/sdd1 12544 117223679Device Boot Start End58605568 83 Linux
La partición comienza en el sector 12,544 (256 * 49) y termina en el final del dispositivo.
32 heads
32 sectors per track
El resultado es 1,024 sectores por cilindro (32 * 32). Con sectores de 512-bytes resulta en cilindros de 512KB los cuales pueden ser alineados en límites de página de 4KB (128 páginas por cilindro). Un ejemplo de esto en el mismo dispositivo (/dev/sdd):.
[root@test64 ~]# fdisk -H 32 -S 32 /dev/sdd
he number of cylinders for this disk is set to 114483.TThere is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:sions of LILO) 2) booting and partitioning software from other1) software that runs at boot time (e.g., old ve rOSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): n Command action e extended): 2 Last cylinder or +size orp primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-114483, default 1 +sizeM or +sizeK (2-114483, default 114483): Using default value 114483 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
El pariticionamiento podemos verlo con fdisk -l.
[root@test64 ~]# fdisk -l /dev/sdd
isk /dev/sdd: 60.0 GB, 60022480896 bytesD32 heads, 32 sectors/track, 114483 cylindersUnits = cylinders of 1024 * 512 = 524288 bytesDevice Boot Start End Blocks Id System/dev/sdd1 2 114483 58614784 83 Linux
Notemos que las unidades para esta geometría es 512KB (524,288 Bytes) y tiene un número mayor de cilindros que en el primer ejemplo. También podemos ver los sectores con la opción “-lu”.
[root@test64 ~]# fdisk -lu /dev/sdd
isk /dev/sdd: 60.0 GB, 60022480896 bytesD32 heads, 32 sectors/track, 114483 cylinders, total 117231408 sectorsUnits = sectors of 1 * 512 = 512 bytesBlocks Id System /dev/sdd1 1024 117230591Device Boot Start End58614784 83 Linux
Como comenzamos en el sector 1,024 el cual, utilizando sectores de 512-Bytes, significa que la partición está alineada con 512KB.
Cuál opción es mejor? Esto depende de varios factores, especialmente en cómo trabaja el disco SSD y cómo trabaja el controlador o firmware. Una vez más afirmamos que si no vas a particionar el disco no necesitar preocuparte por todos estos pasos – solamente utiliza el disco completo (/dev/sdd) y todo debería estar bien. Pero si vas a particionar el disco deberías considerar una de estas dos opciones para asegurarte de que las particiones estén alineadas para un mayor rendimiento y longevidad del disco.
Fuente: LinuxMag
Fuente: LinuxMag
No hay comentarios:
Publicar un comentario