Zonendatenspeicherung


Western Digital hat kürzlich seine Initiative für Zonenspeicher angekündigt, die auf eine offene Dateninfrastruktur abzielt, mit der Zonenspeichergeräte genutzt werden sollen.

Zoned Storage ist ein neues Speicherparadigma, das durch ein unglaubliches Datenwachstum motiviert ist. Unsere Gesellschaft ist im Alltag zunehmend auf Daten angewiesen, und Datenmanagement in extremem Umfang wird immer notwendiger. Bereits heute werden in großen Datenverarbeitungsinfrastrukturen Zehntausende von Festplatten und Solid-State-Laufwerken verwendet. Trotzdem bleiben von mehr als 30 ZB-Daten, die pro Jahr erstellt werden, weniger als 20% gespeichert. Das Ziel unserer Branche ist es sicherzustellen, dass es sich der Verbraucher leisten kann, keine Daten zu verwerfen, die von Vorteil sein können.

In diesem Artikel werden wir diskutieren:

  • Was sind zonale Speichergeräte und warum wird diese Technologie implementiert?
  • SMR-Festplatten und ZNS-Solid-State-Laufwerke
  • Dateninfrastruktur - Was ist erforderlich, um die zonale Datenspeicherung zu implementieren?

Was sind Zonenspeichergeräte?


In ihrer einfachsten Form sind Zonenspeichergeräte Blockspeichergeräte, deren Adressraum in Zonen unterteilt ist. ZSD schreibt unkonventionelle Aufzeichnungsregeln vor: Zonen können nacheinander aufgezeichnet werden, beginnend mit dem Beginn der Zone. Außerdem können Daten innerhalb einer Zone nicht willkürlich überschrieben werden.


Die einzige Möglichkeit, eine bereits aufgezeichnete Zone zu überschreiben, besteht darin, den Zonendatensatzzeiger zurückzusetzen, der effektiv alle Daten in der Zone löscht, und sie vom Anfang der Zone an zu überschreiben. Andererseits ist das Lesen von Daten weitgehend unbegrenzt und kann auf die gleiche Weise wie auf herkömmlichen Speichergeräten gelesen werden.

Das Konzept der zonalen Speichergeräte ist standardisiert:

  • Für Geräte mit SAS-Schnittstelle ist die Arbeit mit Zonen im ZBC-Standard T10 vorgeschrieben
  • SATA auch unter T13 ZAC standardisiert
  • Für NVMe-SSDs wird derzeit ein technischer Vorschlag namens ZNS entwickelt

Warum zonale Speicherung?


Die Motivation für die Anwendung der zonalen Speichertechnologie ist die hohe Effizienz der Speicherinfrastruktur. Dank dieser Technologie können Geräte mit höherer Kapazität wirtschaftlicher eingesetzt werden. Weitere Einzelheiten darüber, wie diese Wirtschaftlichkeit für jeden Typ von Zonengeräten erreicht wird, werden später in diesem Artikel erläutert.

Alles begann mit SMR


In den letzten Jahren wurde die Technologie der gekachelten magnetischen Aufzeichnung (SMR) in Festplatten eingeführt, die die Aufzeichnungsdichte erhöht, die Kapazität und die Kosteneffizienz von Festplatten erhöht. In SMR werden Spuren im Gegensatz zu herkömmlichen Aufnahmen überlappend aufgezeichnet, wie Ziegel auf einem Hausdach. Dies ermöglicht es Ihnen, Spuren dichter zu packen, und bietet daher eine höhere Aufnahmedichte. Durch die Verwendung von SMR erhalten wir „freie“ Terabyte Kapazität: Sie können ein 14- oder sogar 15-TB-SMR-Laufwerk auf der Basis eines regulären 12-TB-Laufwerks herstellen, ohne die Produktionskosten zu erhöhen.


Die Hauptbeschränkung dieser Technologie ist die Unfähigkeit, Daten in zufälliger Reihenfolge auf Spuren zu schreiben. Da wir keine beliebigen Ziegel auf dem Dach des Hauses ersetzen können, können wir mit den Daten im SMR nicht mehrere Blöcke willkürlich überschreiben, ohne benachbarte Gleise einzuhaken. Zur Steuerung der Aufnahme wird die Disc-Oberfläche in Zonen mit einem Abstand zwischen ihnen unterteilt. Auf diese Weise können Sie jede Zone unabhängig voneinander aufzeichnen und löschen (die Größe der Zone in der aktuellen Festplattengeneration beträgt normalerweise 256 MB).

Es können verschiedene Ansätze verwendet werden, um die Aufzeichnungsbeschränkung zu steuern. Der herkömmliche Ansatz (Laufwerk verwaltet - vom Laufwerk selbst gesteuert) setzt voraus, dass das Gerät die internen Schreibbeschränkungen mithilfe von Algorithmen in Mikrocode und Puffern selbst verarbeitet und eine normale Schnittstelle zum Host bereitstellt. Diese Art von SMR wird häufig in Clientgeräten wie Laptop-Festplatten verwendet. Bei großen Unternehmens- oder Cloud-Systemen, bei denen Leistung und Speicherplatznutzung vorhersehbar sein sollten, ist es jedoch nicht möglich, sich bei der Steuerung der sequentiellen Aufzeichnung auf die Disc selbst zu verlassen. Die Leistung „schwankt“ je nach Struktur und Intensität der Last und der Pufferfülle zu stark.

Host-verwaltetes SMR ist eine fast obligatorische Anforderung für große Datenspeichersysteme und die bevorzugte Option für Rechenzentren.

Die Host-SMR-Steuerung ist in INCITS T10 / T13 als Teil der Gerätestandards Zone Block Command (ZBC) und Zone ATA (ZAC) für SAS bzw. SATA standardisiert.

NVMe- und Zonennamensräume in Solid State Drives


Bei Solid-State-Laufwerken (SSDs) ist die Einschränkung des Vorhandenseins von Regionen, die nur sequentiell geschrieben werden können (NAND-Seiten) und vor dem Schreiben neuer Daten gelöscht werden müssen (NAND-Blöcke), eine integrale Eigenschaft des NAND-Flash-Speicherbetriebs.

Bei der Einführung von SSDs wurde ein internes Managementsystem namens Flash Translation Layer (FTL) eingeführt, das diese Aufzeichnungsbeschränkung bewältigen kann. FTL ermöglichte die Verwendung von Solid-State-Laufwerken anstelle von Festplatten, ohne dass der Software-Stack sofort neu geschrieben werden musste. Für den Endbenutzer sieht die SSD wie eine Festplatte mit schnellem wahlfreiem Zugriff auf Informationen aus - und das ist der Vorteil von FTL.

Die lokale Steuerung innerhalb einer SSD ist jedoch hinsichtlich der Effizienz alles andere als ideal. Insbesondere gibt es Faktoren wie:

  • Schreibverstärkung: Um die Einschränkungen zu bewältigen, Daten nicht zu überschreiben, muss die SSD die Daten selbst verschieben, um nicht verwendete Speicherbereiche zu löschen, die als Garbage Collection (GC) bezeichnet werden. Der Speicherbereinigungsprozess verursacht, wenn die FTL mit Datenblöcken "Tag spielt", mehrere Aufzeichnungen derselben Information (daher der Begriff "übermäßige Aufzeichnung"), was zu einem erhöhten Verschleiß des Flash-Speichers führt und die Lebensdauer des Solid-State-Laufwerks verkürzt. Der WA-Koeffizient gibt an, wie viele Schreibvorgänge innerhalb des Laufwerks für eine vom Host empfangene Schreiboperation ausgeführt werden müssen.



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

Diese Mängel waren in der ersten Welle der Einführung von Solid-State-Laufwerken akzeptabel, da die Software-Stacks und -Schnittstellen für Festplatten ausgelegt waren und die Reaktionszeit auf die Festplatte viel länger war. Für den Endbenutzer war der Wechsel von Festplatte zu SSD immer noch eine spürbare Beschleunigung.

Im Laufe der Zeit hat die Branche jedoch effizientere Schnittstellen und Software-Stacks entwickelt, die von einer geringeren Latenz und einer höheren Flash-Bandbreite profitieren können. Insbesondere wurde die NVMe-Schnittstellenspezifikation (Non-Volatile Memory Express) erstellt und der entsprechende kostengünstige Software-Stack entwickelt.

Der aktuelle Stand der Branche ist derart, dass die lokalen Optimierungen, die in der FTL-SSD vorgenommen wurden, sich jetzt nachteilig auf die Bereitstellung der Dateninfrastruktur auswirken. Insbesondere haben viele Kunden den Wunsch, eine hostgesteuerte sequentielle Arbeitslast zu erstellen, die der Größe der NAND-Flash-Blöcke entspricht. Als Reaktion darauf standardisiert NVMe Zonen-Namespaces (ZNSs), die es dem Host ermöglichen, E / A zur gemeinsamen Nutzung von Workloads zu leiten und gleichzeitig die Latenz, Bandbreite und Kosteneffizienz zu verbessern, indem das Hauptsteuerelement auf den Host verlagert wird.

Wenn wir über Wirtschaftlichkeit sprechen, wird der Übergang zu ZNS-SSD die Kosten des Laufwerks senken, indem eine geringere Menge an NAND (Reduzierung der Redundanz) verwendet wird, die Möglichkeit der Verwendung von QLC in Server-Laufwerken und die Menge an DRAM in SSD-Controllern.

Dateninfrastruktur - Implementierung eines zonalen Data Warehouse


Wir haben bereits herausgefunden, dass zonale Blockgeräte die Speichereffizienz erhöhen. Um diese neuen Geräte nutzen zu können, sind jedoch einige Anstrengungen erforderlich, da sie nicht abwärtskompatibel mit dem üblichen Blockprogrammstapel sind. Während herkömmliche Speichergeräte keine Aufzeichnungsbeschränkungen haben, haben Zonenblockgeräte Aufzeichnungsbeschränkungen, die innerhalb der Zone konsistent sein müssen. Die Hauptfolge davon ist die Notwendigkeit, den Software-Stack zu aktualisieren.

Die erste Komponente, die aktualisiert werden muss, ist das Betriebssystem. Dies ist in modernen Multitasking-Betriebssystemen, die auf für Rechenzentren typischen Multi-Core- und Multi-Socket-Servern ausgeführt werden, keine triviale Aufgabe. Die Linux-Community hat erhebliche Anstrengungen unternommen, um Zonenblockgeräte im Allgemeinen und SMR im Besonderen zu unterstützen.

Neben der Unterstützung des Linux-Kernels gibt es eine Reihe von Dienstprogrammen und Anwendungen, die Zone Block-Geräte unterstützen, z. B. fio, Blktests und util-linux.

Linux-Kernel- und Zonenblockgeräte


Die Arbeiten zur Unterstützung des Zonenspeichers im Linux-Kernel begannen bereits 2014 mit der geringsten Unterstützung, die im 3.18-Kernel integriert ist. Die erste Kernel-Version mit funktionaler Unterstützung für ZBC / ZAC-Befehle war der Kernel 4.10 Anfang 2017. Die Unterstützung wird weiter verbessert, und die neuesten Kernel unterstützen die Anzeige von Zonengeräten in Form von block / dev / sd sowie die Unterstützung einiger Dateisysteme (f2fs, btrfs).

Die folgende Abbildung zeigt ein allgemeines Bild der Struktur des Linux-Kernels und wie Zonengeräte in herkömmliche Blockgeräte integriert werden können. Die Unterstützung im Linux-Kernel wurde implementiert, indem einige vorhandene Komponenten geändert, neue Schnittstellen wie die ZBD-Schnittstelle auf Blockebene und neue Komponenten wie der Device-Mapper dm-zoned eingeführt wurden.


Wie in der Abbildung gezeigt, gibt es viele Möglichkeiten, wie bei der Bereitstellung einer Dateninfrastruktur Zonenblockgeräte verwendet werden können. Zum Beispiel (i) Verwenden des alten Dateisystems über dem LVM-Volume mit dm-Zonen, (ii) Verwenden des ZBC-fähigen Dateisystems, (iii) Verwenden von ZBD-fähigen Anwendungen, die über Benutzerbibliotheken wie libzbc direkt mit Blockgeräten interagieren, und usw.

Area Storage Initiative - Förderung einer breiteren Unterstützung und Implementierung angewandter Technologien


Trotz der Erfolge der Open-Source-Community von Entwicklern bei der Unterstützung von Zone Block-Geräten bemühen sich Ingenieure der Informationstechnologie und Anwendungsentwickler weiterhin, diese Technologie zu verwenden, um beispielsweise herauszufinden, welcher Grad an Unterstützung in jeder Version des Linux-Kernels vorhanden ist. Welche Versionen von Anwendungen haben die erforderliche Unterstützung und welche Version des Kernels ist für ihre Arbeit erforderlich.

Die Zonenspeicherinitiative wurde teilweise gestartet, um dieses Problem anzugehen und eine breitere Anwendungsunterstützung für Zonenspeichertechnologien zu fördern. Sie können die Website ZonedStorage.io besuchenErfahren Sie mehr über zonale Speichertechnologien und die Verwendung von ZNS-SSDs und ZBC / ZAC-SMRs. Dort finden Sie Informationen zu folgenden Themen:

  • Zonenblockgeräte
  • Erste Schritte Anleitungen
  • Unterstützung und Funktionen des Linux-Kernels
  • Anwendungen und Bibliotheken
  • Regelmäßige Emulation von Zonengeräten
  • Leistungstest
  • Systemkonformitätstests

Mithilfe dieser Plattform verfügen Infrastrukturingenieure und Entwickler von Speicheranwendungen jetzt über einen zentralen Standort, an dem alle Informationen und Ressourcen abgerufen werden können, die für die Verwendung von Speichertechnologien in Bereichen erforderlich sind.

Sind Sie bereit


Besuchen Sie ZonedStorage.io und prüfen Sie, ob Ihre Server für die Arbeit mit Zonenlaufwerken bereit sind. Wenn Sie versuchen, die Softwareemulation über ein normales Gerät bereitzustellen, stellt sich möglicherweise heraus, dass die Laststruktur Ihrer Anwendung gut zum Konzept des zonalen Speichers passt. Sie sollten die Bereitstellung einer Testumgebung in Betracht ziehen.

All Articles