Almacenamiento
Los discos ópticos y sus sistemas de ficheros, la geometría y el direccionamiento de un disco duro, las celdas de un SSD, y toda la familia de interfaces que los conecta, desde el viejo PATA hasta NVMe sobre PCI Express.
Soportes ópticos y sus sistemas de ficheros
Un soporte óptico guarda la información como marcas que lee un láser. Cuanto más corta es la longitud de onda de ese láser, más pequeñas pueden ser las marcas y más cabe en la misma superficie: de ahí la escalera del CD con 700 MB, el DVD con 4,7 GB y 8,5 en doble capa, y el Blu-ray con 25 y 50, que el BDXL estira hasta 128. El HVD, holográfico, iba a aprovechar el volumen del disco y no solo su superficie, pero se quedó en propuesta y nunca se comercializó.
Encima del soporte va el sistema de ficheros, que es lo que dice dónde empieza cada archivo. En el mundo óptico hay dos. ISO 9660 es el del CD-ROM, y tiene dos extensiones que caen mucho: Joliet, que permite nombres de fichero largos, y El Torito, que hace el disco arrancable. UDF es el de DVD y Blu-ray, y el que permite grabar por sesiones.
El Torito es lo que hace que un disco pueda arrancar el ordenador. Joliet solo resuelve los nombres largos. Se confunden porque los dos son extensiones de ISO 9660.
Para el examen
ISO 9660: el sistema de ficheros del CD
Joliet y El Torito: nombres largos y disco arrancable
UDF: el de DVD y Blu-ray
Capacidades: CD 700 MB, DVD 4,7 y 8,5 GB, Blu-ray 25 y 50 GB, BDXL 100 y 128 GB
El disco duro: geometría y direccionamiento
Un disco duro, HDD o disco mecánico, guarda la información magnetizando la superficie de unos platos que giran, mientras un brazo mueve las cabezas de lectura y escritura sobre ellos. Su organización física se describe con tres coordenadas.
| Elemento | Qué es |
|---|---|
| Pista | Cada una de las circunferencias concéntricas de la superficie de un plato |
| Cilindro | El conjunto de las pistas que quedan verticalmente alineadas en todos los platos |
| Cabeza | El elemento de lectura y escritura; hay uno por cara utilizable, y elegir cabeza equivale a elegir cara |
| Sector | La porción de pista que es la unidad mínima que el disco lee o escribe de una vez |
Con esas coordenadas se construyó el direccionamiento original, CHS, que localiza un dato diciendo literalmente cilindro, cabeza y sector. Funcionaba mientras la geometría era real y pequeña, pero topaba con límites absurdos en cuanto los discos crecieron, y además dejó de ser cierta: los discos actuales no tienen el mismo número de sectores en las pistas de fuera que en las de dentro.
La solución es LBA, direccionamiento lógico de bloques: se olvida la geometría y se numeran todos los sectores del disco de forma lineal, del 0 al último. El sistema operativo pide el bloque número tal y es la electrónica del disco la que sabe dónde está físicamente. Ese desacoplamiento es también lo que permite que el disco reasigne sectores defectuosos sin que nadie se entere.
Sector y clúster no son lo mismo, aunque se citen juntos. El sector es la unidad física del disco: 512 bytes en los discos clásicos y 4096 bytes en los de Formato Avanzado. El clúster o unidad de asignación es la unidad mínima que reserva el sistema de ficheros, y agrupa uno o varios sectores. Por eso un fichero de 1 byte ocupa un clúster entero en disco.
El sector lo decide el fabricante del disco; el clúster lo decide el sistema de ficheros al formatear.
Para el examen
CHS: localiza por cilindro, cabeza y sector
LBA: numera los bloques linealmente; es lo que se usa hoy
Sector: unidad física: 512 o 4.096 bytes
Clúster: unidad de asignación del sistema de ficheros
El SSD y sus celdas de memoria
Un SSD, unidad de estado sólido, no tiene piezas móviles: guarda la información en memoria flash de tipo NAND. Eso le quita el tiempo de búsqueda del brazo mecánico, que es lo que hace que su latencia sea de otro orden de magnitud, y le hace inmune a los golpes en funcionamiento.
Una celda flash guarda carga eléctrica. Si solo distingue dos estados, guarda un bit; si distingue más niveles de carga, guarda más bits en el mismo espacio físico. De ahí salen las cuatro tecnologías de fabricación, y de ahí sale también su compromiso: más bits por celda abarata el gigabyte pero exige distinguir voltajes más juntos, lo que reduce la velocidad y el número de ciclos de escritura que la celda aguanta.
| Tecnología | Bits por celda | Estados que distingue | Consecuencia práctica |
|---|---|---|---|
| SLC | 1 | 2 | La más rápida y duradera, y la más cara por gigabyte |
| MLC | 2 | 4 | Equilibrio; hoy queda sobre todo en gama profesional |
| TLC | 3 | 8 | El grueso del mercado de consumo |
| QLC | 4 | 16 | La más barata por gigabyte y la de menos ciclos de escritura |
Las siglas van por bits, no por calidad: SLC es simple, MLC múltiple, TLC triple y QLC cuádruple. Cada bit añadido dobla el número de niveles de carga que hay que distinguir dentro de la misma celda.
Para el examen
SLC: 1 bit por celda
MLC: 2 bits
TLC: 3 bits
QLC: 4 bits
Regla: más bits abaratan el gigabyte y restan velocidad y ciclos de escritura
Las interfaces paralelas: IDE/PATA y SCSI
Durante años la forma de ir más rápido fue enviar varios bits a la vez por cables distintos. Eso es un bus paralelo, y a él pertenecen las dos interfaces históricas de almacenamiento: IDE, después llamada PATA, y SCSI en su versión clásica.
El planteamiento tiene un techo físico. Cuando la frecuencia sube, los bits enviados por cables distintos ya no llegan a la vez, porque basta con que un hilo sea unos milímetros más largo o esté peor apantallado. A ese problema se le llama desviación de sincronía, y es la razón de que todas las interfaces modernas sean serie: es más fácil enviar un solo bit muy rápido que dieciséis bits perfectamente alineados.
| Interfaz | Tipo | Cuántos dispositivos | Dónde se usaba |
|---|---|---|---|
| IDE / PATA | Paralela | Dos por canal, configurados como maestro y esclavo | Discos y lectores ópticos del PC doméstico hasta mediados de los 2000 |
| SCSI | Paralela | De 7 a 15 dispositivos, cada uno con su identificador en el bus | Servidores, estaciones de trabajo y escáneres profesionales |
La horquilla de SCSI se entiende sola: el bus tenía 8 o 16 identificadores según su anchura, y uno de ellos lo consume siempre la propia controladora. De ahí salen los 7 dispositivos de la versión estrecha y los 15 de la ancha.
IDE y PATA son el mismo estándar con dos nombres: la letra P de PATA se le añadió a posteriori, cuando apareció SATA, para poder distinguir el paralelo del serie.
Para el examen
IDE/PATA: dos dispositivos por canal: maestro y esclavo
SCSI paralelo: 7 o 15 dispositivos, cada uno con su identificador
Las interfaces serie: SATA y SAS
SATA es el sucesor serie de PATA y el estándar del almacenamiento doméstico: un cable fino, un dispositivo por puerto y conexión en caliente. SAS es el sucesor serie de SCSI y el estándar del servidor: mantiene el juego de órdenes de SCSI, pero lo transporta por un enlace serie.
| Generación | SATA | SAS |
|---|---|---|
| 1 | 1,5 Gbps | 3 Gbps |
| 2 | 3 Gbps | 6 Gbps |
| 3 | 6 Gbps | 12 Gbps |
| 4 | No existe: SATA se detuvo en 6 Gbps | 22,5 Gbps |
| 5 | No existe | 45 Gbps, en desarrollo |
Esa tabla explica por qué se dice que SATA tiene una limitación de velocidad: se quedó en 6 Gbps y no ha tenido cuarta generación, de modo que cualquier SSD moderno satura el enlace y hay que salir de SATA para aprovecharlo. SAS, en cambio, siguió doblando.
Cada dispositivo SAS lleva además un identificador único de fábrica, el WWN o nombre mundial, que es lo que permite localizarlo sin ambigüedad dentro del dominio SAS. Un dominio se amplía con expansores, y la cifra que se maneja como techo clásico es de 16.384 dispositivos, muy lejos de los 15 de SCSI paralelo.
La compatibilidad entre las dos familias existe, pero va en un solo sentido: una controladora SAS puede manejar discos SATA, porque encapsula sus órdenes, mientras que una controladora SATA no puede manejar discos SAS. Los conectores están diseñados precisamente para que el error no sea posible: un disco SATA entra en una bahía SAS, y uno SAS no entra en una bahía SATA.
SATA se enfrenta a PATA y SAS a SCSI: en las dos parejas el cambio es el mismo, pasar de paralelo a serie conservando la idea.
Para el examen
Velocidades de SATA: 1,5, 3 y 6 Gbps, y ahí se quedó
Velocidades de SAS: 3, 6, 12 y 22,5 Gbps
Identificador de SAS: WWN por dispositivo
Compatibilidad: una controladora SAS admite discos SATA; una SATA no admite discos SAS
M.2, NVMe y U.2: formato, protocolo y bus
Aquí está la confusión más rentable del tema, y se resuelve separando tres preguntas que suenan parecidas: qué forma tiene la unidad, por qué bus circulan los datos y con qué lenguaje se le dan las órdenes.
| Nombre | Qué es en realidad | Explicación |
|---|---|---|
| M.2 | Un formato físico | Una tarjeta que se atornilla en la placa base, sustituta de mSATA. Un M.2 2280 mide 22 mm de ancho por 80 de largo |
| PCI Express | Un bus | El camino serie por el que viajan los datos, organizado en líneas o carriles |
| NVMe | Un protocolo | El juego de órdenes pensado para memoria no volátil, que se transporta sobre PCI Express |
| U.2 | Un formato físico | Unidad de 2,5 pulgadas con conector para bahía de servidor, con NVMe sobre PCI Express y extracción en caliente |
Lo importante de esa separación es que una ranura M.2 puede llevar dentro dos cosas distintas: una unidad M.2 SATA, que por dentro sigue siendo un disco SATA con otra forma y por tanto sigue topando en 6 Gbps, y una unidad M.2 NVMe, que habla NVMe sobre PCI Express y normalmente usa cuatro líneas. Dos tarjetas físicamente casi iguales pueden diferir en un orden de magnitud de rendimiento.
PCI Express es hoy el bus universal de la placa base, y sustituyó a los antiguos PCI y AGP, ambos obsoletos. Su enlace se mide en líneas, y las anchuras habituales van de una a dieciséis: la tarjeta gráfica ocupa dieciséis y un SSD NVMe, cuatro.
M.2 y U.2 son formas; PCI Express es el camino; NVMe es el idioma. La pregunta «¿es más rápido M.2 o NVMe?» está mal planteada, y por eso aparece en los exámenes.
Para el examen
M.2 y U.2: son FORMATOS físicos
PCI Express: es el BUS
NVMe: es el PROTOCOLO
Trampa: existen M.2 SATA, limitadas a 6 Gbps
Por qué NVMe rinde más, y qué son los GT/s
La velocidad de un enlace serie se expresa en transferencias por segundo, y con los números actuales en gigatransferencias por segundo, GT/s. No es lo mismo que gigabits por segundo de datos útiles: en cada transferencia viajan también bits de control y de sincronización, así que la velocidad efectiva siempre es menor que la nominal.
| Generación de PCI Express | Por línea | Codificación |
|---|---|---|
| 1.0 | 2,5 GT/s | 8b/10b, un 20 % de sobrecarga |
| 2.0 | 5 GT/s | 8b/10b |
| 3.0 | 8 GT/s | 128b/130b, sobrecarga casi nula |
| 4.0 | 16 GT/s | 128b/130b |
| 5.0 | 32 GT/s | 128b/130b |
| 6.0 | 64 GT/s | PAM4 con corrección de errores |
| 7.0 | 128 GT/s | PAM4 con corrección de errores |
Ahí se ve por qué el salto de PCI Express 3.0 fue tan grande pese a subir solo de 5 a 8 GT/s: cambió la codificación y dejó de tirarse uno de cada cinco bits. Ese es exactamente el motivo de que SATA, que usa 8b/10b, entregue unos 600 MB/s reales sobre un enlace nominal de 6 Gbps.
El ancho de banda del bus, sin embargo, no es la única razón de que NVMe rinda más que SATA. La otra es el protocolo: la interfaz de los discos SATA está pensada para un cabezal mecánico que solo puede estar en un sitio, así que trabaja con una única cola de órdenes de profundidad reducida. NVMe nació para memoria flash, donde miles de operaciones pueden atenderse a la vez, y admite muchísimas colas simultáneas, una por núcleo si hace falta. Con una carga de trabajo de muchas operaciones pequeñas la diferencia se nota más que en la velocidad de transferencia bruta.
GT/s mide señalización, no datos útiles. Para pasar a datos hay que descontar la codificación del enlace.
Para el examen
Progresión de PCIe por línea: 2,5, 5, 8, 16, 32, 64 y 128 GT/s
Cambio de codificación: PCIe 3.0 pasó a 128b/130b
Por qué NVMe rinde más: por ancho de banda Y por protocolo: muchas colas frente a una sola de SATA