Azure Native Qumulo jetzt in der EU, im Vereinigten Königreich und in Kanada verfügbar – Erfahren Sie mehr

So implementieren Sie Erasure Coding

Geschrieben von:

Diese Geschichte kommt zu Ihnen als Teil 2 von 2 in einer kurzen Serie über Erasure Coding und RAID, zwei der bekanntesten Methoden zur Datensicherung in Speichersystemen. Im Folgenden erklären wir, wie das verteilte Dateisystem von Qumulo die Speichermethoden für die Erasure-Codierung mit blockbasiertem Schutz modernisiert, und wir untersuchen, wie die Erasure-Codierung in einem Dateispeichersystem implementiert wird. 

Qumulo Core, der Grundlage des verteilten Dateisystems von Qumulo, bietet eine äußerst zuverlässige Datenspeicherung (gemessen in Zehntausenden von Jahren Zuverlässigkeit). Dies erreichen wir zum Teil durch eine effiziente Erasure Coding, die einer von vielen Datendiensten ist, die standardmäßig mit Qumulo Core geliefert werden und darauf ausgelegt sind, Ihre Daten zu schützen.

Implementierung von Erasure Coding in Dateispeichersystemen

Bei der Umsetzung sind viele praktische Überlegungen zu berücksichtigen Löschcodierung in Dateispeichersystemen. Um das Schreiben der erforderlichen Paritätsblöcke zu vereinfachen (und um Daten wiederherzustellen, wenn eine Festplatte ausfällt), Skalierbarer Blockspeicher (SBS) teilt seinen virtuellen Adressraum von 4K-Paritätsblöcken in logische Segmente auf, die als geschützte Speicher oder pstores bezeichnet werden.

 

SBS verwaltet jeden Pstore einzeln, wodurch das Zuordnungsschema, das den geschützten Adressraum den Platten zuordnet, flexibler wird. Alle Pstores sind gleich groß. Der Datenschutz ist vollständig auf pstore-Ebene des Systems implementiert. Ein pstore kann man sich als eine Tabelle vorstellen, die Bereiche geschützter virtueller Blockadressen zusammenhängenden Speicherbereichen zuordnet, die sich auf virtuellen Festplatten der Knoten des Qumulo-Clusters befinden.

Die angrenzenden Regionen werden als bstores bezeichnet. Die Zuordnung von pstores zu bstores wird von jedem Knoten des Clusters gespeichert.

pstore gegen bstore, was ist der Unterschied?
  • pstore: Virtueller Adressraum, unterteilt in 4K-Blöcke.
  • bstore: Aneinandergrenzende Bereiche der virtuellen Blöcke. (pstores-Karte zu bstores.)[/box]

Aus Gründen der Zuverlässigkeit verwenden die Knoten des Clusters einen verteilten Algorithmus namens Paxos, um einen Konsens über global geteiltes Wissen wie die Pstore-to-Bstore-Map aufrechtzuerhalten. Der Cluster bildet ein Quorum von Knoten, um die Sicherheit der kritischen Datenstrukturen des Clusters zu gewährleisten. Jeder bstore verwendet ein Segment einer bestimmten virtuellen Festplatte (d. h. der bstore ist einem bestimmten SSD- und HDD-Paar zugeordnet).

Jedem bstore wird zusammenhängender Speicherplatz auf seinem zugeordneten HDD zugewiesen, während Speicherplatz auf dem zugeordneten SDD des bstore dynamisch zugewiesen wird. Metadaten zu einem bstore sind auch auf der zugehörigen SSD vorhanden. Bstore-Metadaten enthalten Informationen wie die verwendeten Adressen und eine Zuordnung, die angibt, welche Blockadressen im bstore-Referenz-SSD-Speicher und welche auf der HDD liegen.

Während eines Lese- oder Schreibvorgangs wird der pstore verwendet, um zu entscheiden, auf welche bstores zugegriffen werden muss. Wenn ein Client des Dateisystems einen Schreibvorgang initiiert, geht er als Rohdatenstrom in SBS. Das System ermittelt, in welche bstores die Daten geschrieben werden sollen, berechnet die Paritätsdaten und schreibt sowohl die Rohdaten als auch die Paritätsdaten gleichzeitig auf die SSDs, selbst wenn sich die SSDs auf vielen verschiedenen Knoten befinden. Sobald die Daten geschrieben sind, erhält der Client eine Bestätigung, dass der Schreibvorgang stattgefunden hat.

Datenblöcke, die Nutzdaten enthalten, und Paritätsblöcke werden beide in bstores geschrieben. Ein bestimmter bstore enthält während seiner Lebensdauer entweder Paritätsblöcke oder Datenblöcke, aber nicht beides. Da die Löschcodierung auf der pstore-Schicht von SBS implementiert ist, verhalten sich bstores, die Paritätsblöcke enthalten, und bstores, die Datenblöcke enthalten, identisch. Die einem bstore zugewiesene Speichermenge hängt von dem vorhandenen Löschcodierungsschema ab. Um die pstore-Größe konsistent zu halten, ändert sich die bstore-Größe des Systems gemäß dem Codierungsschema. Wenn der pstore beispielsweise 70 GB groß ist, ist bei einer 6,4-Kodierung jeder bstore etwa 17.5 GB groß, was den pstore in 4 bstores aufteilt. Bei einer 10,8-Kodierung sind die bstores etwa halb so groß.

In der Cloud verwendet Qumulo mit einer Ausnahme dasselbe Datenschutzschema wie lokal. Lokal erfordert das Datenschutzschema, dass mindestens vier Knoten in einem Cluster vorhanden sind. In der Cloud ist ein Single-Node-Cluster möglich, da das Dateisystem von Qumulo die integrierte Spiegelung verwenden kann, die sich in jedem elastischen Speicherblock befindet. Single-Node-Qumulo-Cluster in der Cloud verwenden 5,4 Erasure Coding.

Niemals runter für die Zählung

Die Qumulo-Rebuild-Zeiten werden in Stunden gemessen. Im Gegensatz dazu weisen Legacy-Speichersysteme, die für Workloads mit weit weniger Daten entwickelt wurden, Wiederherstellungszeiten auf, die in Tagen gemessen werden, und einige länger.

Eine große Anzahl von Dateien, gemischte Workloads und eine zunehmende Festplattendichte haben alle zu der Krise der Wiederherstellungszeiten für ältere Speichergeräte beigetragen. Der dramatische Vorteil von Qumulo ist ein direktes Ergebnis des fortschrittlichen blockbasierten Schutzes von SBS. Blockbasierter Schutz ist ideal für die modernen Workloads von heute mit Petabyte an Daten und Millionen oder Milliarden von Dateien, viele davon sind klein.

Das SBS-Schutzsystem muss keine zeitaufwändigen Baumwanderungen oder Datei-für-Datei-Wiederherstellungsvorgänge durchführen. Stattdessen arbeiten die Wiederherstellungsoperationen auf den pstores. Das Ergebnis ist, dass die Rebuild-Zeiten nicht von der Dateigröße beeinflusst werden. Kleine Dateien werden genauso effizient gehandhabt wie große Dateien, und der Schutz von Milliarden von Dateien ist vollständig machbar. Darüber hinaus ist das Dateisystem von Qumulo so konzipiert, dass die Rebuild-Zeiten nicht durch die Clustergröße beeinträchtigt werden. Tatsächlich ist das Gegenteil der Fall. Mit Qumulo haben größere Cluster tatsächlich schnellere Wiederherstellungszeiten als kleinere Cluster.

[box type=“shadow“]Anmerkungen: Im Gegensatz zu Legacy-Speicher verteilt Qumulo den Wiederherstellungsaufwand auf alle Knoten im Cluster, was zu schnelleren Wiederherstellungszeiten als bei Legacy-Speicher führt. Und je größer der Cluster, desto schneller erfolgt der Wiederaufbau.[/box]

Der Grund dafür ist, dass SBS den Berechnungsaufwand für den Neuaufbau auf die Knoten des Clusters verteilt. Je mehr Knoten, desto weniger Arbeit muss jeder Knoten während eines Neuaufbaus leisten. Bei älteren Speicheranwendungen mit langsamen Wiederherstellungszeiten besteht die Gefahr von Datenverlusten, wenn sie während der Zeit, in der das System bereits während eines längeren Wiederherstellungsprozesses anfällig ist, zusätzliche Fehler verursachen.

Mit anderen Worten, langsame Wiederherstellungszeiten wirken sich negativ auf die Zuverlässigkeit aus. Normalerweise kompensieren Administratoren dies durch Überprovisionierung (d. h. durch Verringerung der Effizienz durch Hinzufügen von Datenredundanz). Mit den schnellen Rebuild-Zeiten von Qumulo können Administratoren ihre Mittlere Zeit bis zum Datenverlust (MTTDL) ohne große Datenredundanz, was Geld und Zeit spart.

Wiederherstellung der pstores bei Laufwerksausfall

Wenn ein Datenträger ausfällt, ist der geschützte Speicher weiterhin vorhanden. Es kann immer gelesen und geschrieben werden. Einige pstores haben jedoch fehlende oder beschädigte bstores. Diese werden als degradierte Pstores bezeichnet. Aufgrund der Erasure Coding können Sie die beeinträchtigten Pstores weiterhin lesen, aber die Daten sind nicht mehr vollständig geschützt. Mit anderen Worten, Sie haben beim ersten Fehler immer noch die Datenintegrität, sind es aber Laufwerksausfall näher am Datenverlust. Um die Daten erneut zu schützen, arbeitet das System pstore für pstore (anstatt Datei für Datei in älteren RAID-Systemen), um die bstores zu rekonstruieren, die sich auf dem ausgefallenen Plattenlaufwerk befanden.

SBS weist eine kleine Menge zusätzlichen Speicherplatzes zu, sodass genügend Platz dafür vorhanden ist. Dies wird als Sparen bezeichnet. Da die globale pstore-zu-bstore-Zuordnung die ID der zugehörigen virtuellen Festplatte des bstore enthält, können Sie anhand dieser Informationen leicht erkennen, welche pstores verarbeitet werden müssen, wenn eine bestimmte Festplatte ausfällt. Da die Zuordnung, die pstores mit bstores verknüpft, klein genug ist, um sich im Speicher jedes Knotens zu befinden, können Knoten virtuelle Blockadressen schnell von pstore in bstore übersetzen.

Während des Neuerstellungsprozesses liest und schreibt SBS bstores sequentiell. Da bstores zusammenhängend auf der Platte angeordnet sind, können degradierte pstores sehr schnell wiederhergestellt werden. Sequentielle Operationen sind viel schneller als viele kleine I/O-Operationen, die langsam sein können und Festplattenkonflikte verursachen können. Der Wiederherstellungsprozess von SBS ist effizient – ​​Festplatten sind während des Wiederherstellungsprozesses an genau einem Lese- oder Schreibstrom gleichzeitig beteiligt. Es ist keine zufällige E/A erforderlich.

Außerdem sind bstores klein genug, damit die Arbeit zum erneuten Schützen effizient über den gesamten Cluster verteilt wird.

Business as usual – auch bei Umbauten

In Legacy-Dateisystemen wirken sich Sperrenkonflikte auf die Neuerstellungszeiten aus und verlangsamen die Standard-Dateisystemoperationen während der Neuerstellung. Dies liegt daran, dass diese Dateioperationen mit den Neuaufbau-/Neuschutz-Threads konkurrieren. Qumulo verwendet Schreibschichten mit unabhängigen Sperrschemata, damit Wiederherstellungsvorgänge nicht mit der normalen Verwendung des Dateisystems in Konflikt geraten.

Wenn ein Fehler auftritt, macht es keinen Sinn, in den unvollständigen Satz von bstores in den herabgesetzten pstores zu schreiben. Die neuen Schreibvorgänge wären nicht vollständig geschützt und würden die Rekonstruktionsarbeiten von bstore erschweren. Der Cluster darf jedoch während des Neuerstellungsvorgangs keine Ausfallzeit erleiden, und folglich können benutzerinitiierte Schreibvorgänge nicht warten, bis ein Pstore erneut geschützt wird. Um diese Schreibvorgänge durchzuführen, fügt das System eine neue Schicht virtueller bstores zum degradierten pstore hinzu. Dies wird als "eine Ebene verschieben" bezeichnet. Schreibvorgänge gehen an die neue Schicht von bstores und Lesevorgänge kombinieren die Werte von jeder Schicht.

Neue Schreibvorgänge gehen in die oberste Schicht von bstores. Ein Read kombiniert die Werte aus der oberen Schicht und der unteren Schicht unter Verwendung von Erasure Coding. Sobald der bstore rekonstruiert ist, verschwindet die Push-Schicht. Die Schichten sind unter Verwendung von Komponenten des Transaktionssystems von SBS so aufgebaut, dass sie nicht blockieren.

Effizienz beim Speichern kleiner Dateien

Da das Qumulo-Dateisystem blockbasierten Schutz verwendet, sind kleine Dateien genauso effizient wie große Dateien.

Sie können Stripes mit anderen Dateien teilen, und sie können den Schutz teilen. Jede Datei besteht aus den Datenblöcken, mindestens einem Inode-Block und allen anderen benötigten Blöcken. Sehr kleine Dateien werden in den Inode-Block eingefügt. Das System verwendet 4K-Blöcke und alle Blöcke sind mit dem Systemschutzverhältnis geschützt.

Qumulo's Speichereffizienz mit kleinen Dateien ist ein großer Vorteil im Vergleich zu älteren Speichergeräten, die eine ineffiziente Spiegelung für kleine Dateien und Systemmetadaten verwenden. Legacy-Speichersysteme verwenden auch eine Blockgröße von 8K, was bei kleinen Dateien zu großen Ineffizienzen führen kann.

Es ist dein Speicher – nutze 100 % davon

Qumulo-Benutzerdateien können belegen 100 Prozent der bereitgestellten Kapazität, während beim älteren Scale-out nur 80 bis 85 Prozent empfohlen werden. Der blockbasierte Schutz von Qumulo erfordert keine vom Benutzer bereitgestellte Kapazität für den erneuten Schutz, abgesehen von einer geringen Menge an Speicherplatz, die von der vom Benutzer bereitgestellten Kapazität ausgeschlossen ist.

Im Gegensatz dazu implementieren Legacy-Speichergeräte den Schutz entweder mit festen RAID-Gruppen oder mit Erasure Coding auf Datei-für-Datei-Basis, was bedeutet, dass der erneute Schutz auch auf Dateiebene erfolgt und für die Wiederherstellung vom Benutzer bereitgestellte Kapazitäten erforderlich sind. (Sehen Erasure Coding vs RAID erklärt für weitere Details.) Darüber hinaus meldet das Qumulo-Dateisystem die für Benutzerdateien verfügbare Kapazität genau.

Auch diese Vorhersagbarkeit ist eine Folge des blockbasierten Schutzes. In Legacy-Systemen hängt die Speichernutzung von der Dateigröße ab, sodass diese Systeme nur über den Rohspeicher berichten können – Administratoren müssen raten, wie viel Speicherplatz sie tatsächlich haben. Wenn Sie Qumulo mit Legacy-Systemen vergleichen, sollten Sie berücksichtigen, wie viel vom Benutzer bereitgestellte Kapazität tatsächlich in jedem Systemtyp zur Verfügung steht.

Anmerkung der Redaktion: Diese Geschichte wurde ursprünglich am 11. November 2021 veröffentlicht und wurde aus Gründen der Genauigkeit und Vollständigkeit aktualisiert.

Verwandte Artikel

Nach oben scrollen