Suche

Erasure Code - das bessere RAID

2021-09-21
116
0

Pit’s IT Architecture Talk

#16 Erasure Code – das bessere RAID

Hinweis: Die in diesem Artikel zum Ausdruck gebrachten Ansichten und Meinungen sind die des Autors und spiegeln nicht notwendigerweise die offizielle Politik, Position, Produkte und Technologien der Huawei Deutschland GmbH wider. Wenn Sie mehr über die Produkte und Technologien der Huawei Technologies Deutschland GmbH erfahren möchten, besuchen Sie bitte unsere Produktseiten oder kontaktieren Sie uns.


Erasure Code (EC) bietet viele Vorteile gegenüber traditionellem RAID. Der wesentliche Unterschied ist, dass EC eine Abstraktion von der darunter liegenden Hardware-Plattform darstellt. Damit fallen viele Grenzen, die bei traditionellen RAID-Systemen heute immer noch gegeben sind.

EC ist eine Foward-Error-Correction und kommt aus dem Bereich der Kommunikation. Ziel ist es, Fehler bei der Datenübertragung auf der Empfänger-Seite zu beheben. Damit werden häufige Übertragungswiederholungen vermieden, die Latenz reduziert und damit die Bandbreite erhöht. Einfach erklärt, ohne die Mathematik zu strapazieren, werden Datenpakete aufgeteilt und über Funktionen kodiert. Diese kodierten Blöcke werden anschließend, mit einer dem Algorithmus entsprechenden Redundanz übertragen. Wenn einzelne Blöcke auf der Empfängerseite nicht ankommen, können die Daten aus den empfangenen Blöcken wiederhergestellt werden. Auf den Storage übertragen heißt das, dass man die Daten wie oben beschrieben kodiert und auf mehrere physikalische Disks aufteilt. Man erkennt gleich, dass es auf die Effizienz der Algorithmen ankommt. Genau hier liegt das Know-how bei Huawei. Schließlich kommt Huawei aus dem Kommunikationssektor. Für den elastic EC von Huawei bedeutet das 91,6% bei der physikalischen Storageausnutzung. Ceph, mit vergleichbaren drei Kopien, erreicht gerade 33% und bei einer virtuellen SAN-Implementation (4+2) sind es nur 66%.

RAID gibt es bereits seit Ende der 80er-Jahre. Ziel war es, größeren Festplattenspeicher mit günstigeren kleinen Festplatten bereitzustellen. Dabei sollte sowohl die Verfügbarkeit als auch die Leistung gesteigert werden. Das Prinzip ist, dass mehrere Festplatten oder SSDs zusammengefasst und Daten darüber i.d.R. redundant gespeichert werden. Die verschiedenen Implementationen wurden über RAID-Level definiert. Sie unterscheiden sich in Bezug auf Performanz und Redundanz. Häufig werden die RAID-Level 5 und 6 eingesetzt. Bei RAID-5 erhält man eine einfache Redundanz, d.h. im Disk-Verbund kann ein Laufwerk ohne Datenverlust ausfallen, bei RAID-6 sind es zwei Disks also doppelte Parität. Die Nachteile von RAID-Systemen ergeben sich aus der Hardware-Affinität. Alle Disks sollten die gleiche Größe haben. Diese RAID-Gruppen werden i.d.R. in Storage-Systemen zu Storage-Pools zusammengefasst. Damit sollten alle enthaltenen RAID-Gruppen eine vergleichbare Performanz liefern, was bedeutet, dass sie die gleiche Anzahl von Disks nutzen. Erweiterungen sollten hier immer über ganze RAID-Gruppen vorgenommen werden. Ansonsten entsteht das Risiko von Hotspots. Dabei werden nur noch einzelne Disks im Storage-Pool genutzt und die Performanz sinkt dramatisch. Für das Storage-Management bedeutet dies große Herausforderungen. Zusätzliche Probleme entstehen, wenn die verwendeten Disks nicht mehr verfügbar sind. Damit müssen dann ganze Storage-Pools oder Storage-Systeme umorganisiert und Terabytes an Daten kopiert werden. Die zunehmende Größe der verfügbaren Festplatten und SSDs ist eine weitere Herausforderung. Beim Ausfall einer dieser Disks müssen die Daten von den bestehenden Datenträgern im RAID-Verbund wiederhergestellt werden. Bei Größen von 16 oder 32 TB kann das schon mal Tage dauern und dies bei reduzierter Redundanz und Performanz.

Erasure Code kann diese Nachteile von RAID wirkungsvoll beheben. Systeme können auch mit einzelnen Disks erweitert werden. Die Daten werden dabei so verteilt, dass keine Hotspots entstehen. Beim Ausfall von Disks werden die Daten in Rekordverdächtigen 15 Minuten/Terrabyte wiederhergestellt. Da Compute-Kapazität in den Smart-Enclosures zur Verfügung steht und viele Disks an der Wiederherstellung beteiligt sind, ist die Leistungseinbuße für die produktiven Workloads kaum messbar.

Gerne wird EC ein hoher Compute-Bedarf nachgesagt. Bei einigen Implementierungen, z.B. im Virtualisierungs-Umfeld, ist dies auch ordentlich spürbar. Der Huawei elastic Erasure Code wurde speziell darauf angepasst. Zum einen wurden bestimmte Funktionen in Hardware implementiert und zum anderen die Algorithmen dafür optimiert. Die Leitungsfähigkeit lässt sich an 0.05 ms Latenz und 21 Millionen SPC-1 IOPS™ bei den Huawei OceanStor Dorado Storage-Systemen eindrucksvoll ablesen.

Erasure Code behebt somit die Nachteile von traditionellen RAID-Systemen. Es bietet eine wesentlich höhere Kapazitätsausnutzung und viel mehr Flexibilität. Dies erleichtert den Betrieb der Storage-Systeme und minimiert den administrativen Aufwand.

Bis bald!

Pit



TOP