Zona de almacenamiento de datos


Western Digital anunció recientemente su iniciativa de almacenamiento zonal, una iniciativa dirigida a una infraestructura de datos abiertos diseñada para aprovechar los dispositivos de almacenamiento zonal.

Zoned Storage es un nuevo paradigma de almacenamiento motivado por un increíble crecimiento de datos. Nuestra sociedad depende cada vez más de los datos en la vida cotidiana, y la gestión de datos en una escala extrema es cada vez más necesaria. Hoy en día, en las infraestructuras de procesamiento de datos a gran escala, se utilizan decenas de miles de discos duros y unidades de estado sólido. Pero aun así, de más de 30 datos ZB que se crean por año, menos del 20% permanece almacenado. El objetivo de nuestra industria es garantizar que el consumidor pueda permitirse no tirar datos que puedan ser beneficiosos.

En este artículo discutiremos:

  • ¿Qué son los dispositivos de almacenamiento zonal y por qué se implementa esta tecnología?
  • Discos duros SMR y unidades de estado sólido ZNS
  • Infraestructura de datos: qué se requiere para implementar el almacenamiento de datos zonales

¿Qué son los dispositivos de almacenamiento de zona?


En su forma más simple, los dispositivos de almacenamiento de zona son dispositivos de almacenamiento en bloque cuyo espacio de direcciones se divide en zonas. ZSD impone reglas de grabación no convencionales: las zonas se pueden grabar secuencialmente, solo comenzando desde el comienzo de la zona. Además, los datos dentro de una zona no se pueden sobrescribir arbitrariamente.


La única forma de sobrescribir una zona ya grabada es restablecer el puntero de registro de zona, que elimina efectivamente todos los datos en la zona y sobrescribirlo desde el comienzo de la zona. Por otro lado, la lectura de datos es en gran medida ilimitada y puede leerse de la misma manera que en los dispositivos de almacenamiento tradicionales.

El concepto de dispositivos de almacenamiento zonal está estandarizado:

  • Para dispositivos con interfaz SAS, el trabajo con zonas se prescribe en el estándar T10 ZBC
  • SATA también estandarizado bajo T13 ZAC
  • Para los SSD NVMe, se está desarrollando una propuesta técnica llamada ZNS

¿Por qué almacenamiento zonal?


La motivación para aplicar la tecnología de almacenamiento zonal es la alta eficiencia de la infraestructura de almacenamiento. Gracias a esta tecnología, los dispositivos de mayor capacidad se pueden utilizar de una manera más económica. Más adelante en el artículo se explicarán más detalles sobre cómo se logra esta eficiencia económica para cada tipo de dispositivos zonales.

Todo comenzó con SMR


En los últimos años, la tecnología de grabación magnética en mosaico (SMR) se ha introducido en los discos duros, lo que ha aumentado la densidad de grabación, aumenta la capacidad y la rentabilidad de los discos duros. En SMR, a diferencia de la grabación convencional, las pistas se graban superpuestas, como las tejas en el techo de una casa. Esto le permite empaquetar pistas más densamente y, por lo tanto, proporciona una mayor densidad de grabación. De hecho, el uso de SMR nos da una capacidad de terabytes "gratis": puede hacer una unidad SMR de 14 o incluso 15 TB en base a una unidad normal de 12 TB, sin aumentar el costo de producción.


La principal limitación de esta tecnología es la incapacidad de escribir datos en pistas en orden aleatorio. Como no podemos reemplazar las tejas arbitrarias en el techo de la casa, con los datos en el SMR, no podemos sobrescribir arbitrariamente varios bloques sin enganchar las pistas adyacentes. Para controlar la grabación, la superficie del disco se divide en zonas con un espacio entre ellas. Esto le permite grabar y borrar cada zona de forma independiente (el tamaño de la zona en la generación actual de discos suele ser de 256 MB).

Se pueden usar varios enfoques para controlar la restricción de grabación. El enfoque tradicional (manejado por el disco - controlado por el propio disco) asume que el dispositivo procesa las restricciones internas de escritura por sí mismo usando algoritmos en microcódigo y memorias intermedias, y proporciona una interfaz normal al host. Este tipo de SMR se usa comúnmente en dispositivos cliente como discos duros portátiles. Sin embargo, para sistemas corporativos o en la nube a gran escala, donde el rendimiento y la utilización del espacio deben ser predecibles, no es posible confiar en el disco para controlar la grabación secuencial: el rendimiento "flota" demasiado dependiendo de la estructura y la intensidad de la carga y la plenitud del búfer.

El SMR administrado por el host es un requisito casi obligatorio para los grandes sistemas de almacenamiento de datos y es la opción preferida para los centros de datos.

El control de SMR del host está estandarizado en INCITS T10 / T13 como parte de los estándares de dispositivo Zone Block Command (ZBC) y Zone ATA (ZAC) para SAS y SATA, respectivamente.

NVMe y espacios de nombres de zona en unidades de estado sólido


Para las unidades de estado sólido (SSD), la restricción de la presencia de regiones que solo pueden escribirse secuencialmente (páginas NAND) y deben eliminarse antes de escribir nuevos datos (bloques NAND) es una propiedad integral de la operación de la memoria flash NAND.

Cuando se introdujeron los SSD, introdujeron un sistema de administración interno, llamado Flash Translation Layer (FTL), que podía manejar esta limitación de grabación. FTL permitió el uso de unidades de estado sólido en lugar de discos duros sin la necesidad de reescribir inmediatamente la pila de software. Para el usuario final, el SSD parece un disco duro con acceso aleatorio rápido a la información, y este es el mérito de FTL.

Sin embargo, el control local dentro de un SSD está lejos de ser ideal en términos de eficiencia. En particular, hay factores como:

  • Amplificación de escritura: para hacer frente a las limitaciones de no sobrescribir datos, el SSD debe mover los datos por sí solo para borrar las áreas de almacenamiento no utilizadas llamadas Recolección de basura (GC). El proceso de recolección de basura, cuando el FTL "juega etiqueta" con bloques de datos, causa múltiples grabaciones de la misma información (de ahí el término "grabación en exceso"), lo que conduce a un mayor desgaste en la memoria flash y acorta la vida útil de la unidad de estado sólido. El coeficiente WA muestra cuántas operaciones de escritura deben realizarse dentro del disco para una operación de escritura recibida del host.



  • (overprovisioning — OP): ( 28% ) .
  • DRAM : FTL - DRAM. , DRAM . — 1 SSD. , SSD 15.36 — 16 «» . , !
  • QoS, . FTL , , , .

Estas deficiencias fueron aceptables en la primera ola de la introducción de unidades de estado sólido, ya que las pilas de software y las interfaces fueron diseñadas para discos duros, y el tiempo de respuesta al HDD fue mucho más largo. Para el usuario final, el cambio de HDD a SSD todavía era una aceleración notable.

Sin embargo, con el tiempo, la industria ha pasado a crear interfaces y pilas de software más eficientes que pueden aprovechar una menor latencia y un mayor ancho de banda de flash. En particular, se creó la especificación de interfaz NVMe (Non-Volatile Memory Express) y se desarrolló la correspondiente pila de software de bajo costo.

El estado actual de la industria es tal que las optimizaciones locales que ocurrieron en el SSD FTL ahora son perjudiciales para el despliegue de la infraestructura de datos. En particular, muchos clientes tienen el deseo de crear una carga de trabajo secuencial impulsada por el host que coincida con el tamaño de los bloques flash NAND. En respuesta, NVMe estandariza los espacios de nombres de zona (ZNS), lo que permite al host dirigir la E / S para compartir las cargas de trabajo, al tiempo que mejora la latencia, el ancho de banda y la rentabilidad al mover el control principal al host.

Si hablamos de eficiencia económica, la transición a ZNS SSD reducirá el costo de la unidad al usar una menor cantidad de NAND (reducción de redundancia), la posibilidad de usar QLC en unidades de servidor, reduciendo la cantidad de DRAM en los controladores SSD.

Infraestructura de datos: implementación de un almacén de datos zonal


Ya hemos descubierto que los dispositivos de bloque zonal aumentan la eficiencia de almacenamiento, sin embargo, para aprovechar estos nuevos dispositivos, se requieren algunos esfuerzos, ya que no tienen compatibilidad con la pila de programas de bloque habitual. Mientras que los dispositivos de almacenamiento tradicionales no tienen restricciones de grabación, los dispositivos de bloqueo de zona tienen restricciones de grabación que deben ser consistentes dentro de la zona. La principal consecuencia de esto es la necesidad de actualizar la pila de software.

El primer componente que debe actualizarse es el sistema operativo. Esta no es una tarea trivial en los sistemas operativos multitarea modernos que se ejecutan en servidores multi-core y multi-socket típicos de centros de datos. La comunidad de Linux ha realizado importantes esfuerzos para admitir dispositivos de bloqueo de zona en general, y SMR en particular.

Además de admitir el kernel de Linux, hay varias utilidades y aplicaciones que admiten dispositivos de bloqueo de zona, como fio, Blktests y util-linux.

Kernel de Linux y dispositivos de bloqueo de zona


El trabajo de soporte para el almacenamiento de zona en el kernel de Linux comenzó en 2014 con la menor cantidad de soporte integrado en el kernel 3.18. La primera versión del kernel con soporte funcional para comandos ZBC / ZAC fue el kernel 4.10 a principios de 2017. El soporte continúa mejorando y los núcleos más recientes tienen soporte para mostrar dispositivos de zona en forma de bloque / dev / sd, así como soporte para algunos sistemas de archivos (f2fs, btrfs).

La siguiente figura muestra una imagen de alto nivel de la estructura del kernel de Linux y cómo los dispositivos de zona se pueden integrar con los dispositivos de bloque tradicionales. El soporte en el kernel de Linux se implementó modificando algunos componentes existentes, introduciendo nuevas interfaces, como la interfaz ZBD a nivel de bloque, e introduciendo nuevos componentes, como el mapeador de dispositivos dm-zoned.


Como se muestra en la figura, hay muchas formas en que la implementación de una infraestructura de datos puede usar dispositivos de bloqueo de zona. Por ejemplo (i) Usando el viejo sistema de archivos en la parte superior del volumen LVM zonificado dm, (ii) usando el sistema de archivos habilitado para ZBC, (iii) usando aplicaciones habilitadas para ZBD que interactúan directamente con dispositivos de bloque a través de bibliotecas de usuario como libzbc, y etc.

Iniciativa de almacenamiento de área: promoción de un apoyo más amplio y la implementación de tecnologías aplicadas


A pesar de los éxitos logrados por la comunidad de desarrolladores de código abierto en el soporte de dispositivos de bloqueo de zona, los ingenieros de tecnología de la información y los desarrolladores de aplicaciones todavía están haciendo esfuerzos para usar esta tecnología, por ejemplo, para descubrir qué nivel de soporte existe en cada versión del núcleo de Linux, qué versiones de aplicaciones tienen el soporte necesario y qué versión del núcleo es necesaria para su trabajo.

La iniciativa de almacenamiento zonal se lanzó en parte para abordar este problema y promover un mayor soporte de aplicaciones para tecnologías de almacenamiento zonal. Puede visitar el sitio ZonedStorage.iopara obtener más información sobre las tecnologías de almacenamiento zonal y el uso de SSD ZNS y SMR ZBC / ZAC. Allí encontrará información sobre los siguientes problemas:

  • Dispositivos de bloqueo de zona
  • Guías de inicio
  • Soporte y características del kernel de Linux
  • Aplicaciones y Bibliotecas
  • Emulación de dispositivo de zona de forma regular
  • Pruebas de rendimiento
  • Pruebas de cumplimiento del sistema

Con esta plataforma, los ingenieros de infraestructura y los desarrolladores de aplicaciones de almacenamiento ahora tienen una ubicación centralizada para obtener toda la información y los recursos necesarios para usar las tecnologías de almacenamiento de área.

Estás listo


Visite ZonedStorage.io y vea si sus servidores están listos para trabajar con unidades de zona. Intente implementar la emulación de software en un dispositivo normal, y puede resultar que la estructura de carga de su aplicación se adapte bien al concepto de almacenamiento zonal, y debería considerar implementar un entorno de prueba.

All Articles