Tengo un SSD que se puede configurar para informar su tamaño de sector físico a un sistema operativo de dos maneras diferentes:
Opción 1: Lógico = 512 Bytes, Físico = 512 Bytes
Opción 2: Lógico = 512 Bytes, Físico = 4096 Bytes (4K)
¿Qué beneficio obtiene un sistema operativo al ser consciente del tamaño del sector físico 4K, considerando:
El sistema operativo debe hablar con la unidad en sectores de 512 bytes independientemente
Todos los sistemas operativos modernos se alinean a 4K y utilizan 4K o múltiplos de 4K I / O independientemente
La configuración parece inútil, porque los sistemas operativos modernos ya están optimizados para unidades de sector 4K. Los sistemas operativos modernos no necesitan "preguntar" a una unidad si sus sectores son 512b o 4K, porque el sistema operativo hace todo de manera compatible con 4K de forma predeterminada.
Por ejemplo, Windows 7 alinea las particiones a 1 MB (un múltiplo de 4K), el tamaño del clúster NTFS es 4K o múltiplo de las mismas, y todas las E / S se realizan en 4K o múltiples. A Windows no le importa el disco duro que tenga, aplicará el comportamiento anterior en todos los casos.
De todos modos ... mi SSD tiene esta configuración de "tamaño de sector físico", por lo que debe estar allí por alguna buena razón ... es la razón por la que estoy buscando.
Por cierto, por lo que vale, el disco es un Intel SSD DC S3510 . La hoja de datos de la unidad dice esto (página 27):
Al usar el comando SCT 0xD801 con Estado = 0, Opción = 1, ID Word 106 se puede cambiar de 0x6003 a 0x4000 (tamaño de sector físico de 4KB a cambio de soporte de tamaño de sector físico de 512B).
fuente
Respuestas:
La emulación de 512 bytes está destinada a la compatibilidad con sistemas más antiguos. Sin embargo, las escrituras que involucran solo una parte de un sector físico de 4K pueden reducir el rendimiento porque el sector debe leerse y modificarse antes de que realmente pueda escribirse.
Cuando un sistema operativo heredado intenta escribir en un disco de formato avanzado, pueden surgir problemas de rendimiento porque los sectores lógicos escritos pueden no coincidir con los sectores físicos.
Las particiones de disco que no están alineadas con un límite de 4K también pueden causar un rendimiento degradado.
Tradicionalmente, la primera partición en un disco duro comienza en el sector 63. Windows XP y los sistemas operativos más antiguos particionan los discos de esta manera. Las versiones más recientes de Windows crearán particiones en un límite de 1 MB, asegurando una alineación adecuada con los sectores físicos. Esto se llama Alineamiento 0 .
Debido a que LBA 63 no es un múltiplo de 8 (ocho sectores heredados de 512 bytes encajan en un sector 4K), un disco de formato avanzado que está formateado de la manera anterior tendrá clústeres (la unidad más pequeña de asignación de datos del sistema de archivos, típicamente de tamaño 4K ) que no están alineados con los sectores físicos en un disco 4K, una condición llamada Alineación 1 . Como resultado, una operación de E / S que de otra manera involucra 4K de datos ahora abarca dos sectores que conducen a una operación de lectura-modificación-escritura que reduce el rendimiento.
Si bien la información sobre el tamaño del sector físico es innecesaria si el sistema operativo siempre escribe datos en un límite de 4K, esta información aún puede ser necesaria para aplicaciones que realizan E / S de bajo nivel.
Su SSD proporciona la capacidad de cambiar el tamaño del sector físico informado porque es necesario para la compatibilidad con ciertos arreglos de almacenamiento.
Los centros de datos a menudo tienen matrices de almacenamiento que consisten en unidades 512n heredadas. Las unidades 4K, incluso aquellas que emulan sectores de 512 bytes, pueden no ser compatibles con tales matrices, por lo que esta característica es necesaria para garantizar la compatibilidad. Ver este hilo del foro :
Tenga en cuenta que se logrará un mejor rendimiento en los sistemas modernos si la unidad está configurada para usar sectores 4K.
fuente
El tamaño lógico es un tamaño mínimo para transferir datos. Como se trata de un dispositivo de bloque, cualquier transferencia de datos entre la computadora host y la unidad será en múltiplos de este tamaño de bloque lógico.
El tamaño físico es un tamaño óptimo para transferir datos y refleja el tamaño de las operaciones reales de lectura y escritura a nivel del controlador / unidad.
Cuando la computadora host solicita una lectura de un sector lógico, el controlador / unidad realizará una operación de lectura del sector físico que contiene el sector lógico.
Cuando el tamaño del sector lógico es igual al tamaño del sector físico, la operación es simple. Cuando el tamaño del sector lógico es menor que el tamaño del sector físico, el controlador debe extraer el sector lógico del sector físico para transferirlo a la computadora host.
Cuando la computadora host solicita una escritura de un sector lógico, el tamaño del sector físico es importante.
Cuando el tamaño del sector lógico es igual al tamaño del sector físico, la operación de escritura es simple y puede proceder directamente. La condición de los contenidos anteriores del sector no afectará la operación de escritura.
Cuando el tamaño del sector lógico es menor que el tamaño del sector físico, el controlador primero debe realizar una operación de lectura del sector físico que contiene el sector lógico.
Si la lectura es exitosa, entonces el sector lógico se inserta en el sector físico y el sector físico se escribe en su totalidad.
Si la lectura no tiene éxito (incluso después de los reintentos), la operación de escritura no se puede completar.
Si el sistema operativo realiza las operaciones de lectura y escritura con el tamaño del sector físico (utilizando las operaciones multisectoriales disponibles en el conjunto de comandos ATAPI), las operaciones de escritura se realizarán de manera más eficiente (y sin una posibilidad innecesaria de incompleto).
Su afirmación de "sin excepciones" es incorrecta.
El conjunto de comandos ATAPI, que se introdujo con el HDD IDE, siempre ha tenido la capacidad de realizar operaciones de lectura y escritura con un
sector count
parámetro. Esto es simplemente una extensión de las interfaces de controlador de disco y disquete existentes que también eran capaces de operaciones de lectura / escritura multisectoriales (siempre que los sectores estuvieran en la misma pista).fuente
sector count
parámetro del que habla ... incluso las antiguas lecturas / escrituras de Windows XP en tamaño de bloque de E / S de8
sectores o múltiplos de los mismos. ¡Ya está completamente optimizado! Es por eso que XP funciona extremadamente bien con SSD siempre que la partición esté alineada. Es extremadamente compatible con 4K. Entonces la pregunta sigue sin respuesta. ¿Qué más puede hacer un sistema operativo sabiendo que el tamaño del sector físico es 4K? Recuerde, el sistema operativo ya está optimizado para 4K I / O.Si el sistema operativo conoce el tamaño del sector físico subyacente, puede optimizar sus consultas para requerir la menor cantidad posible de operaciones físicas. Particularmente con los SSD, el límite de operación física (límite de 4KB IOPS) es a menudo el límite final de la velocidad del dispositivo, por lo que es importante poder aprovechar al máximo esta capacidad.
fuente
Hay dos formas diferentes de acceder a una ubicación dentro de una unidad, una es el esquema CHS y la otra es el esquema LBA.
CHS significa Cilindro, Cabezal, Sector y es el método de nivel más bajo para determinar dónde leer o escribir desde la unidad. Le dice que use el cilindro x, la cabeza y y el sector z y que lea o escriba el contenido de esa ubicación hacia o desde una dirección en la memoria (un búfer). Se deriva de los componentes físicos reales de un disco duro (tradicional, óxido giratorio), donde tiene cilindros físicos y cabezales de lectura. El sector es la unidad direccionable más pequeña y tradicionalmente se fijó en 512 bytes.
LBA es un direccionamiento de bytes lógico en el que la unidad lee y escribe en una dirección de sector por su desplazamiento, por ejemplo, lee el sector 123837 en el disco o escribe esto en el sector 123734 en el disco (comenzando desde cero).
¿El problema? Cada uno de estos valores tiene un alcance limitado. De hecho, debido a cuán severamente limitado era CHS, LBA tuvo que ser introducido. Para CHS, los valores posibles para C (el cilindro) son 1023, mientras que H (cabezas) puede ser 255 como máximo, y S (sector) solo puede subir hasta 63, lo que significa que puede tener como máximo 1024 cilindros x 255 cabezas x 64 sectores x 512 bytes mapeados en formato CHS tradicional, ¡lo que le da un total de menos de 8 GiB! Con CHS, ¡simplemente no es posible acceder a un disco de más de 8 GiB!
Por lo tanto, LBA se introdujo con un límite de 32 bits que le proporciona un límite de 2 ^ 32 x 512 bytes o 2 TiB en el tamaño del disco: esta es la razón por la que un disco MBR no puede exceder 2TiB porque usa CHS y LBA para especificar tamaños de partición, y ninguno puede admite cualquier cosa por encima de 2TiB.
Se han introducido nuevas y mejores opciones, como el esquema de particionamiento GPT que extiende LBA a 64 bits, lo que le brinda muchísimo más de lo que necesitará en 2 ^ 64 x 512 bytes, pero hay una trampa: mucho legado el hardware y los sistemas operativos heredados y las implementaciones de BIOS heredadas y los controladores heredados no son compatibles con UEFI o GPT, y a muchas personas les gustaría tener algo que se pueda actualizar más fácilmente para superar el límite de 2TiB sin tener que reescribir toda la pila desde cero Y, por fin, alcanzamos el tamaño del sector 4096.
Ver, a lo largo de todas las limitaciones discutidas anteriormente, una cosa ha sido una suposición fija: el tamaño del sector. Desde el primer día, ha sido de 512 bytes y se ha mantenido así desde entonces. Pero recientemente, los fabricantes de discos duros se dieron cuenta de que existe la oportunidad de hacer algo de magia: tome el CHS tradicional o LBA de 32 bits y simplemente reemplace el tamaño del sector con 4096 (4k) en lugar de 512 bytes. Cuando un sistema operativo dice "dame el segundo sector en el disco" al solicitar LBA 1 (porque LBA 0 es el primero), no le vamos a dar los bytes 512 - 1023 sino los bytes 4096 - 8191.
De repente, nuestro límite de 2TiB se actualiza a 2 ^ 32 x 4096 bytes, o 16 TiB, sin tener que deshacerse de MBR, cambiar a UEFI o GPT, ¡ni nada!
El único inconveniente es que si el sistema operativo no es consciente de que se trata de un disco mágico que utiliza 4096 sectores en lugar de sectores de 512 bytes, habrá una falta de coincidencia. Cada vez que el sistema operativo diga "oye, tú, disco, escríbeme estos 512 bytes para compensar xxx", el disco usará hasta 4096 bytes para almacenar estos 512 bytes (el resto son ceros o datos basura, suponiendo que no termines con un desbordamiento de memoria) porque no se comunican en bytes, se comunican en sectores.
Por lo tanto, los BIOS ahora (a veces) incluyen una opción que le permite especificar manualmente que se debe usar un tamaño de sector de 512 bytes en lugar del tamaño de sector de 4096 bytes nativo que usan los discos más nuevos, con la advertencia de que no puede usarlo para acceder a más de 2TiB del disco en un sistema MBR, tal como era en los "buenos viejos tiempos". ¡Pero los sistemas operativos modernos que son conscientes de 4k pueden aprovechar todo esto para usar esta magia para leer y escribir en fragmentos de 4096 bytes y voilà!
(Una ventaja adicional es que las cosas son mucho más rápidas porque si estás leyendo y escribiendo 4096 bytes a la vez, son menos operaciones para leer o escribir, digamos, 4GiB de datos).
fuente
n
fragmentos de fragmentos de 512 bytes. Eln
es un número que, desde Windows XP, NUNCA es menor que 8, y siempre un múltiplo de 8. Lo que significa que todos los sistemas operativos desde XP en adelante, y creo que todas las distribuciones modernas de Linux, ya están optimizadas para unidades 4K. La E / S más pequeña es 4K, y todos los demás tamaños de E / S son múltiplos de eso.512/4096 = SO responsable de la alineación / optimización,
512/512 = Unidad responsable de esto
Ver también: http://support.microsoft.com/en-us/kb/2510009
fuente
Solo quería informarle sobre una situación en la que los sectores 4K son un problema para los sistemas operativos modernos.
El escritor VSS de Microsoft (Shadow Copy) no funciona bien con sectores 4K. Para hacer una copia de seguridad de una carpeta compartida DFS Replication, nuestro software de copia de seguridad "Backup Exec" necesita hacer una copia de la carpeta DFS Replicated. El trabajo falla si la carpeta de replicación DFS está en una unidad con sectores 4K debido a que VSS no funciona correctamente con sectores 4K.
Jim
fuente
Físico significa el del propio disco, mientras que el Lógico es el de las divisiones definidas dentro de él. De PC Mag's Logical vs Physical:
Para explicar esto en una forma digerible, imagina una manzana del ancho de tu mano. Ese es el tamaño físico real de la manzana. Naturalmente, una manzana entera no cabe en su boca, por lo que decide cortarla en rodajas iguales, siendo cada rebanada el ancho de su dedo. Este es el tamaño lógico, o el tamaño que utilizará su computadora.
Varias razones para esto son los cálculos de capacidad de valor real y la asignación y corrección de errores, como explica Wikipedia:
Así como no puedes tener rodajas de manzana sin la manzana en sí, tampoco puedes tener Lógico sin que el Físico sirva como base.
fuente