Zuverlässiger IT-Betrieb braucht redundante Datenhaltung. Die letzten 30 Jahre nutze man dazu RAID-Systeme, die Technologie ist ausgereift und war bisher völlig ausreichend. Mit zunehmenden Festplattengrößen und dem Einzug von All-Flash-Arrays sowie verteilten Dateisystemen ist eine „einfache“ Redundanz wie sie RAID-Mechanismen bieten nicht mehr ausreichend. Erasure Coding schafft hier Abhilfe. In unserem nächsten Webinar zeigen wir Ihnen, wie Erasure Coding grundsätzlich funktioniert. Wir beleuchten Vorteile aber auch Herausforderungen beim Einsatz von Erasure Coding. Schließlich zeigen wir beispielhaft einige bereits heute übliche Anwendungen für Erasure Coding.
2. § Gegründet 1992 – 24 Jahre Innovation
§ Supermicros ältester & größter globaler Partner — seit über 20 Jahren
§ Lösungshersteller mit Fokus auf Technologie (First-to-Market Strategie)
§ London HQ, Niederlassungen in London City, München, Mumbai,
Bangalore, New York. Weitere Expansion geplant.
§ Experten im Lösungs- und HPC-System-Design unter Verwendung von
Premium-Komponenten von Supermicro und ausgewählten Partnern
§ Supermicros Fastest Growing Partner
Über uns
3. § Ganz ohne Mathematik geht es nicht
Historie, Grundlagen, Begriffe
§ Einsatzgebiete und Grenzen des Erasure Coding
Rechenbeispiele und das Repair Problem
§ Anwendungen und Literaturhinweise
Agenda
4. § Kodierungstheorie, fehlertolerante Codes
Gebiet der Zahlentheorie (Mathematik)
1960 Coding Theory
Reed Solomon, Berlekamp-Massey
(CD, DVD, digitale Datenübertragung)
1990 RAID-6 (Evenodd, RDP, X-Code) ➛ Storage
LDPC-Codes (Tornado, Raptor, LT) ➛ Netzwerk
2000 EC in Computernetzwerken zur Datenübertragung
Regenerating Codes
2010 Non-MDS Codes (Cloud, Recovery)
Woher kommt Erasure Coding?
5. Grundlagen
Aufgabe: Daten so auf Storage Nodes verteilen, dass bei Ausfall von
einzelnen Knoten alle Daten noch benutzbar bzw. rekonstruierbar sind.
Daten Storage Nodes
6. Grundlagen
Aufgabe: Daten so auf Storage Nodes verteilen, dass bei Ausfall von
einzelnen Knoten alle Daten noch benutzbar bzw. rekonstruierbar sind.
Daten Storage Nodes
7. Von k, n und m (I)
Wie beschreibt man n Disks mit k gleich großen Datenbrocken +
Codierung, um einen Plattenausfall zu überleben?
k gleich große Stücke Daten insgesamt n Disks / Storage Nodes
8. Von k, n und m (II) — Horizontal Codes
Horizontal Erasure Code: k Data Nodes/Disks, m Coding od. Parity Nodes/
Disks. Coding/parity ist auf getrennten Nodes/Disks.
k gleich große Stücke Daten insgesamt n Disks / Storage Nodes
n = k + m
mcodingdisks
9. Von k, n und m (III) — Vertical Codes
Vertical Erasure Code: Code und Parity-Information liegen gemeinsam auf
einem Node/einer Disk.
k gleich große Stücke Daten insgesamt n Disks / Storage Nodes
10. Von k, n und m (IV) — Erasure Codes
Plattenausfall ➛ Daten auf ausgefallenen Platten werden unbrauchbar
bzw. korrupt. Dieser Fehlerzustand heißt „erasure“➛ Erasure Coding
k gleich große Stücke Daten insgesamt n Disks / Storage Nodes
n = k + m
mcodingdisks
11. Von k, n und m (V) — MDS
Kann der angewendete EC Algorithmus den Ausfall von m Platten
rekonstruieren, ist das ein Maximum Distance Separable Code (MDS).
k gleich große Stücke Daten insgesamt n Disks / Storage Nodes
n = k + m
mcodingdisks
12. § EC(n,k), RS(n,k)
n ➛ Gesamtzahl der Nodes/Platten
k ➛ Anzahl der Datennodes/-platten
m ➛ Anzahl der Paritynodes/-platten (m=n-k)
§ Beispiel: EC(8,5)
5 Datenplatten, 3 Parityplatten
MDS = 3 (n-k)
Overhead = 8/5 (1,6) (n/k)
Notation
k n
m
13. § Anforderung: hohe Redundanz bei vertretbarem Overhead
- mehrfache Replikation braucht viel Plattenplatz ➛ großer Overhead
§ robuste Skalierung über viele Nodes (Performance)
- RAID-5 oder RAID-6 mit >20 Platten ➛ unzuverlässig, hohe Rebuild-Zeiten
- RAID-5: m=1; RAID-6: m=2
- große Storage-Cluster (m>10)
§ häufig bei Object Storage, eher selten (noch?) bei Block Storage
§ nicht sinnvoll: sehr viele sehr kleine Files
➛ Overhead wird zu groß
Virtualisierung/Cloud: Container, Images, >50MB
Wann ist Erasure Coding sinnvoll?
16. Aber! Repair Problem (II)
§ je nach Algorithmus müssen
mehrere bis viele Chunks bewegt
werden
- innerhalb Storage-System tolerierbar
- in Cloud ➛ Netzwerklast
§ Ziel: Optimum aus (n,k) und EC-
Algorithmus
§ im Einzelfall „secret sauce“ des
Herstellers
A1+A2+B2
A2+B1
A2+B2
A1+B1B1
B2
A1
A2
A1➛?
A2➛?
B2
A2+B2
A1+A2+B2
18. § Erasure Coding ist ein mathematisches Verfahren, um Daten mit
Redundanz zu versehen.
§ Erasure Coding bringt hohe Redundanz bei vergleichsweise
geringem Platz-Overhead.
§ EC(20,16) bedeutet, dass 16 Daten-Chunks auf 20 Speicher-Chunks
verteilt werden. Es können bis zu 4 Speicher-Chunks gleichzeitig
ausfallen, ohne dass Daten korrumpieren.
§ Die Reparatur per Erasure Coding kann CPU-intensiv sein und
vergleichsweise hohe I/O-Last bzw. Netzwerklast erzeugen.
Was Sie von heute mitnehmen sollten
19. § Wikipedia (englisch) zu Erasure Coding und Foreward Error Correction
https://en.wikipedia.org/wiki/Erasure_code
https://en.wikipedia.org/wiki/Forward_error_correction
§ Paper: Repairing Erasure Codes, Dimitris S. Papailiopoulos
https://www.usenix.org/legacy/event/fast11/posters_files/Papailiopoulos.pdf
§ The Repair Problem (Erasure Coding for Distributed Storage Wiki)
http://storagewiki.ece.utexas.edu/doku.php?id=wiki:definitions:repair_problem
§ Tutorial on Erasure Coding for Storage Applications, James S. Plank
http://web.eecs.utk.edu/~plank/plank/papers/2013-02-11-FAST-Tutorial.pdf
Zum Weiterlesen