GSmartControl y cualquier otra herramienta de línea de comandos (como fdisk
, smartctl
, cat /sys/block/sd*/queue/hw_sector_size
, cat /sys/block/sd*/queue/physical_block_size
) que había utilizado el mismo informe para mis dos discos:
Sector Size: 512 bytes logical/physical
Esta es una instalación predeterminada de Ubuntu 18.10 (más tarde actualizada a 19.04). Sin embargo, el stat -f
comando en ambos discos informa:
Block size: 4096 Fundamental block size: 4096
Mis dos discos son SSD y los discos AFAIK SSD requieren un tamaño de sector de 4K . ¿Está bien o me falta algo? ¿La información devuelta por stat
(= 4K) garantiza que el sistema operativo siempre enviará E / S al disco en múltiplos de 4K y estos bloques nunca cruzarán los límites de 4K (los bloques de E / S siempre estarán alineados a 4K)?
Tenga en cuenta la siguiente salida ( sdb2
es mi partición raíz , sda
es mi /home
disco):
# fdisk -l /dev/sd?
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: SanDisk SDSSDH35
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Disk model: ADATA SU800NS38
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: xxxx....
Device Start End Sectors Size Type
/dev/sdb1 2048 1050623 1048576 512M EFI System
/dev/sdb2 1050624 500117503 499066880 238G Linux filesystem
# df / /home
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb2 244568380 17799136 214276188 8% /
/dev/sda 479670976 129685112 325550152 29% /home
fuente
fdisk -l
para verificar problemas de alineación. Y aparentemente los SSD funcionan ligeramente diferente, debido a su construcción física, pero no soy un experto en esa área.Respuestas:
En los viejos tiempos, los sectores de 512 bytes eran la norma para los discos. El sistema solía leer / escribir sectores solo un sector a la vez, y eso era lo mejor que podían hacer los viejos discos duros.
Ahora, con las unidades modernas tan densas, tan rápidas y tan inteligentes, los sectores de lectura / escritura solo un sector a la vez realmente ralentizan el rendimiento total.
El truco fue ... ¿cómo acelerar el rendimiento total, pero aún mantener la compatibilidad con los subsistemas de disco antiguos / estándar? Crea un tamaño de bloque 4096 que se compone de ocho sectores físicos de 512 bytes. 4096 es ahora la transferencia mínima de lectura / escritura hacia / desde el disco, pero se entrega en mandriles de 512 bytes compatibles al SO.
Esto significa que incluso si el sistema solo necesita un sector de información de 512 bytes, la unidad lee ocho sectores de 512 bytes para obtenerlo. Sin embargo, si el sistema necesita los siguientes siete sectores, ya los ha leído, por lo que no es necesario que ocurra E / S de disco ... de ahí un aumento de la velocidad en el rendimiento total.
Los sistemas operativos modernos pueden aprovechar al máximo los tamaños de bloque 4K nativos de las unidades modernas.
fuente
parted
mostrar el tamaño del sector lógico y físico.grub
coloca código adicional en el primer Mibibyte para arrancar en modo BIOS. (En un GPT,grub
necesita una pequeña partición con labios_grub
bandera para que ese código arranque en modo BIOS).Según Wikipedia, "el formato avanzado (AF) es cualquier formato de sector de disco utilizado para almacenar datos en unidades de disco que excedan 512, 520 o 528 bytes por sector, como los sectores de 4096 bytes de una unidad de formato avanzado (AFD)". El formato avanzado (AF) es un formato de disco que utiliza de forma nativa un tamaño de sector de 4.096 bytes en lugar de 512 bytes. Para mantener la compatibilidad con los sistemas heredados, los discos AF emulan un tamaño de sector de 512 bytes.
Obtuve los mismos resultados que obtuviste al ejecutar
stat -f
ysmartctl
en dos SSD. El sistema operativo reconoció automáticamente ambos SSD cuando se instalaron y requirió una configuración cero, por lo que parece que los datos que obtuvo son las configuraciones predeterminadas para el tamaño de bloque y el tamaño de sector.fuente
El hardware y los sistemas operativos antiguos usaban sectores de 512 bytes, desde 2011 (casi) todo el hardware de almacenamiento tiene 4096 (o más ) sectores de bytes; pero parte del hardware admite la emulación de sectores de 512 bytes para sistemas heredados. Hay excepciones, el Samsung 840 EVO SSD tiene bloques de tamaño 2048 KB .
Se calcula un Código de corrección de errores (ECC) para cada fragmento de 512 bytes y, como puede imaginar, los datos de ECC también requieren espacio de almacenamiento. No hace falta decir que un sector de 4096 bytes requiere menos información de ECC que ocho fragmentos de 512 bytes si los algoritmos de ECC permanecen sin cambios. Al final, la capacidad de almacenamiento total de un disco duro aumenta como resultado de una menor sobrecarga de datos ECC.
El uso de sectores 4K tiene sentido desde un punto de vista arquitectónico, ya que otras figuras clave (como páginas de memoria x86 y muchos grupos de sistemas de archivos) también emplean el tamaño de 4 KB. El formato avanzado permite algoritmos ECC más robustos, lo cual es importante a la luz de las capacidades cada vez mayores. Los controladores emplean técnicas adicionales más allá de la corrección de errores mediante la comprensión de las características de error de la memoria flash NAND y el comportamiento de la carga de trabajo.
El formato avanzado (AF) es cualquier formato de sector de disco utilizado para almacenar datos en discos magnéticos en unidades de disco duro (HDD) que excede 512, 520 o 528 bytes por sector, como 4096, 4112, 4160 y 4224 bytes ( 4 KB) sectores de una unidad de formato avanzado (AFD). Los sectores más grandes permiten la integración de algoritmos de corrección de errores más fuertes para mantener la integridad de los datos a mayores densidades de almacenamiento.
Para los discos SCSI (SAS), el tamaño del bloque RAID es mayor que el tamaño de un bloque JBOD debido a los campos de integridad de datos estandarizados SCSI T10 junto con la comprobación lógica de bloques defectuosos almacenados en cada bloque con los datos. Los adaptadores RAID SAS admiten bloques de disco basados en 512 bytes de datos o 4K bytes de datos. El tamaño del bloque RAID para los 512 discos es 528 Bytes por sector y el tamaño del bloque RAID para los discos 4K es 4224 bytes por sector.
Debido a que está escribiendo en la memoria y no en un disco giratorio, el tamaño del sector físico tiene menos efecto que asegurarse de que sus particiones estén alineadas con el tamaño del bloque de borrado . Aun así, es mejor tener software y hardware actualizados y usar un tamaño de sector 4K.
Intel recomienda el tamaño de sector más grande: " Obtenga un rendimiento óptimo mediante cambios en el tamaño del sector físico de SSD ".
fuente