Stockage des données de zone


Western Digital a récemment annoncé son initiative de stockage zonal, une initiative visant à une infrastructure de données ouverte conçue pour tirer parti des périphériques de stockage zonal.

Zoned Storage est un nouveau paradigme de stockage motivé par une croissance incroyable des données. Notre société est de plus en plus dépendante des données dans la vie quotidienne, et la gestion des données à une échelle extrême devient de plus en plus nécessaire. Déjà aujourd'hui, dans les infrastructures de traitement de données à grande échelle, des dizaines de milliers de disques durs et de disques SSD sont utilisés. Mais même ainsi, sur plus de 30 données ZB créées par an, moins de 20% restent en stockage. Le but de notre industrie est de garantir que le consommateur peut se permettre de ne pas jeter des données qui peuvent être bénéfiques.

Dans cet article, nous discuterons:

  • Que sont les périphériques de stockage zonaux et pourquoi cette technologie est-elle mise en œuvre
  • Disques durs SMR et disques SSD ZNS
  • Infrastructure de données - Ce qui est requis pour implémenter le stockage de données zonal

Que sont les périphériques de stockage de zone?


Dans leur forme la plus simple, les périphériques de stockage de zone sont des périphériques de stockage en bloc dont l'espace d'adressage est divisé en zones. ZSD impose des règles d'enregistrement non conventionnelles: les zones peuvent être enregistrées séquentiellement, uniquement à partir du début de la zone. De plus, les données d'une zone ne peuvent pas être écrasées arbitrairement.


La seule façon d'écraser une zone déjà enregistrée est de réinitialiser le pointeur d'enregistrement de zone, qui supprime efficacement toutes les données de la zone et de les écraser depuis le début de la zone. D'un autre côté, la lecture des données est largement illimitée et peut être lue de la même manière que sur les périphériques de stockage traditionnels.

Le concept des dispositifs de stockage zonal est standardisé:

  • Pour les appareils avec interface SAS, le travail avec les zones est prescrit dans la norme T10 ZBC
  • SATA également normalisé sous T13 ZAC
  • Pour les SSD NVMe, une proposition technique est en cours de développement appelée ZNS

Pourquoi le stockage zonal?


La motivation pour appliquer la technologie de stockage zonale est la haute efficacité de l'infrastructure de stockage. Grâce à cette technologie, des appareils de plus grande capacité peuvent être utilisés de manière plus économique. Plus de détails sur la façon dont cette efficacité économique est obtenue pour chaque type de dispositifs zonaux seront expliqués plus loin dans l'article.

Tout a commencé avec SMR


Au cours des dernières années, la technologie d'enregistrement magnétique en mosaïque (SMR) a été introduite dans les disques durs, ce qui a augmenté la densité d'enregistrement, augmenté la capacité et la rentabilité des disques durs. Dans SMR, contrairement à l'enregistrement conventionnel, les pistes sont enregistrées se chevauchant, comme des tuiles sur le toit d'une maison. Cela vous permet de compresser les pistes de manière plus dense et, par conséquent, offre une densité d'enregistrement plus élevée. En fait, l'utilisation de SMR nous donne des téraoctets «gratuits» de capacité: vous pouvez créer un lecteur SMR de 14 ou même 15 To sur la base d'un lecteur régulier de 12 To, sans augmenter le coût de production.


La principale limitation de cette technologie est l'incapacité d'écrire des données sur des pistes dans un ordre aléatoire. Comme nous ne pouvons pas remplacer des tuiles arbitraires sur le toit de la maison, donc avec les données dans le SMR, nous ne pouvons pas écraser arbitrairement plusieurs blocs sans accrocher les pistes adjacentes. Pour contrôler l'enregistrement, la surface du disque est divisée en zones avec un espace entre elles. Cela vous permet d'enregistrer et d'effacer chaque zone indépendamment les unes des autres (la taille de la zone dans la génération actuelle de disques est généralement de 256 Mo).

Plusieurs approches peuvent être utilisées pour contrôler la restriction d'enregistrement. L'approche traditionnelle (gérée par le lecteur - contrôlée par le lecteur lui-même) suppose que le périphérique traite lui-même les restrictions d'écriture internes à l'aide d'algorithmes dans le microcode et les tampons, et fournit une interface normale à l'hôte. Ce type de SMR est couramment utilisé dans les appareils clients tels que les disques durs portables. Cependant, pour les systèmes d'entreprise ou cloud à grande échelle, où les performances et l'utilisation de l'espace doivent être prévisibles, il n'est pas possible de s'appuyer sur le disque lui-même pour contrôler l'enregistrement séquentiel - les performances «flottent» trop en fonction de la structure et de l'intensité de la charge et de la saturation du tampon.

Le SMR géré par l'hôte est une exigence presque obligatoire pour les grands systèmes de stockage de données et est l'option préférée pour les centres de données.

Le contrôle SMR de l'hôte est normalisé dans INCITS T10 / T13 dans le cadre des normes de périphérique Zone Block Command (ZBC) et Zone ATA (ZAC) pour SAS et SATA, respectivement.

Espaces de noms NVMe et Zone dans les disques SSD


Pour les disques SSD, la restriction de la présence de régions qui ne peuvent être écrites que séquentiellement (pages NAND) et doivent être supprimées avant l'écriture de nouvelles données (blocs NAND) fait partie intégrante du fonctionnement de la mémoire flash NAND.

Lorsque les SSD ont été introduits pour la première fois, ils ont introduit un système de gestion interne, appelé Flash Translation Layer (FTL), qui traitait de cette limitation d'enregistrement. FTL a permis l'utilisation de disques SSD au lieu de disques durs sans avoir à réécrire immédiatement la pile logicielle. Pour l'utilisateur final, le SSD ressemble à un disque dur avec un accès aléatoire rapide aux informations - et c'est le mérite de FTL.

Cependant, le contrôle local au sein d'un SSD est loin d'être idéal en termes d'efficacité. En particulier, il existe des facteurs tels que:

  • Amplification d'écriture: pour faire face aux limitations de ne pas écraser les données, le SSD doit déplacer les données de lui-même pour effacer les zones de stockage inutilisées appelées Garbage Collection (GC). Le processus de collecte des ordures, lorsque le FTL "joue la balise" avec des blocs de données, provoque plusieurs enregistrements des mêmes informations (d'où le terme "enregistrement excessif"), ce qui entraîne une usure accrue de la mémoire flash et raccourcit la durée de vie du disque SSD. Le coefficient WA indique combien d'opérations d'écriture doivent être effectuées à l'intérieur du lecteur pour une opération d'écriture reçue de l'hôte.



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

Ces lacunes étaient acceptables dans la première vague de l'introduction des disques SSD, car les piles de logiciels et les interfaces étaient conçues pour les disques durs, et le temps de réponse au disque dur était beaucoup plus long. Pour l'utilisateur final, le passage du disque dur au SSD était encore une accélération notable.

Au fil du temps, cependant, l'industrie est passée à la création d'interfaces plus efficaces et de piles de logiciels qui peuvent tirer parti d'une latence plus faible et d'une bande passante flash plus élevée. En particulier, la spécification d'interface NVMe (Non-Volatile Memory Express) a été créée et la pile logicielle à faible coût correspondante a été développée.

L'état actuel de l'industrie est tel que les optimisations locales qui se sont produites dans le SSD FTL sont désormais préjudiciables au déploiement de l'infrastructure de données. En particulier, de nombreux clients souhaitent créer une charge de travail séquentielle pilotée par l'hôte qui correspond à la taille des blocs flash NAND. En réponse, NVMe standardise les espaces de noms de zone (ZNS), ce qui permet à l'hôte de diriger les E / S pour partager les charges de travail, tout en améliorant la latence, la bande passante et la rentabilité en déplaçant le contrôle principal vers l'hôte.

Si nous parlons d'efficacité économique, la transition vers ZNS SSD réduira le coût du disque en utilisant une plus petite quantité de NAND (réduction de la redondance), la possibilité d'utiliser QLC dans les lecteurs de serveur, réduisant la quantité de DRAM dans les contrôleurs SSD.

Infrastructure de données - Implémentation d'un entrepôt de données zonal


Nous avons déjà découvert que les périphériques de blocs zonaux augmentent l'efficacité du stockage, cependant, pour tirer parti de ces nouveaux périphériques, certains efforts sont nécessaires, car ils n'ont pas de compatibilité descendante avec la pile de programmes de blocs habituelle. Alors que les périphériques de stockage traditionnels n'ont pas de restrictions d'enregistrement, les périphériques de bloc de zone ont des restrictions d'enregistrement qui doivent être cohérentes dans la zone. La principale conséquence de cela est la nécessité de mettre à jour la pile logicielle.

Le premier composant à mettre à jour est le système d'exploitation. Ce n'est pas une tâche triviale dans les systèmes d'exploitation multitâches modernes fonctionnant sur des serveurs multicœurs et multiprises typiques des centres de données. La communauté Linux a fait des efforts importants pour prendre en charge les périphériques de bloc de zone en général, et SMR en particulier.

En plus de prendre en charge le noyau Linux, il existe un certain nombre d'utilitaires et d'applications qui prennent en charge les périphériques de bloc de zone, tels que fio, Blktests et util-linux.

Noyau Linux et périphériques de bloc de zone


Les travaux sur la prise en charge du stockage de zone dans le noyau Linux ont commencé en 2014 avec la plus petite quantité de prise en charge intégrée dans le noyau 3.18. La première version du noyau avec prise en charge fonctionnelle des commandes ZBC / ZAC était le noyau 4.10 début 2017. La prise en charge continue de s'améliorer et les derniers noyaux prennent en charge l'affichage des périphériques de zone sous forme de bloc / dev / sd, ainsi que la prise en charge de certains systèmes de fichiers (f2fs, btrfs).

La figure ci-dessous montre une image de haut niveau de la structure du noyau Linux et comment les périphériques de zone peuvent être intégrés aux périphériques de blocs traditionnels. La prise en charge dans le noyau Linux a été mise en œuvre en modifiant certains composants existants, en introduisant de nouvelles interfaces, telles que l'interface ZBD au niveau du bloc, et en introduisant de nouveaux composants, tels que le mappeur de périphériques dm-zoned.


Comme le montre la figure, il existe de nombreuses façons dont le déploiement d'une infrastructure de données peut utiliser des périphériques de bloc de zone. Par exemple (i) en utilisant l'ancien système de fichiers au-dessus du volume LVM zoné dm, (ii) en utilisant le système de fichiers compatible ZBC, (iii) en utilisant des applications compatibles ZBD qui interagissent directement avec les périphériques de bloc via des bibliothèques utilisateur telles que libzbc, et etc.

Initiative de stockage de zone - Promouvoir un soutien plus large et la mise en œuvre des technologies appliquées


Malgré les succès remportés par la communauté de développeurs open source dans la prise en charge des périphériques de bloc de zone, les ingénieurs des technologies de l'information et les développeurs d'applications s'efforcent toujours d'utiliser cette technologie, par exemple, pour savoir quel niveau de support existe dans chaque version du noyau Linux, quelles versions des applications ont le support nécessaire et quelle version du noyau est nécessaire pour leur travail.

L'initiative de stockage zonal a été lancée en partie pour résoudre ce problème et promouvoir un support d'application plus large pour les technologies de stockage zonal. Vous pouvez visiter le site ZonedStorage.iopour en savoir plus sur les technologies de stockage zonal et l'utilisation des SSD ZNS et des SMR ZBC / ZAC. Vous y trouverez des informations sur les problèmes suivants:

  • Périphériques de bloc de zone
  • Guides de mise en route
  • Prise en charge et fonctionnalités du noyau Linux
  • Applications et bibliothèques
  • Émulation de périphérique de zone sur une base régulière
  • Test de performance
  • Tests de conformité du système

Grâce à cette plateforme, les ingénieurs d'infrastructure et les développeurs d'applications de stockage disposent désormais d'un emplacement centralisé pour obtenir toutes les informations et les ressources nécessaires à l'utilisation des technologies de stockage local.

Es-tu prêt


Visitez ZonedStorage.io et voyez si vos serveurs sont prêts à fonctionner avec des lecteurs de zone. Essayez de déployer l'émulation logicielle sur un appareil standard, et il se peut que la structure de charge de votre application corresponde bien au concept de stockage zonal, et vous devriez envisager de déployer un environnement de test.

All Articles