-
"Erasure Coding" = RAID auf Anwendungsebene
Autor: Slartie 09.07.19 - 13:58
Also wenn das hier ein Schulaufsatz gewesen wäre, würde ich sagen: Thema verfehlt.
Das ist doch letztlich derselbe Wein in neuen Schläuchen: RAID ist auch nur eine "Darreichungsform" eines Kodierungsalgorithmus, der durch Parity-Informationen den Ausfall einer Menge von Speicherelementen kompensieren kann, die der Anzahl der mit Parity-Informationen beaufschlagten Speicherelementen entspricht. In der Darreichungsform RAID ist das Ganze eben innerhalb eines Rechners aufgezogen, und das Speicherelement ist in der Regel eine physische Festplatte.
Natürlich kann man das Konzept auch ein paar Abstraktionsebenen hochziehen und "den RAID-Algorithmus" in seiner Anwendung implementieren und "das RAID" über mehrere Server hinweg aufziehen. Nix anderes ist das, was im Artikel beschrieben wird - nur, dass man hier als Leser den Eindruck erhält, das wäre irgendwie was völlig anderes. Ist es aber nicht - es hat sogar dieselben Downsides, die ja im Artikel schön plakativ als Skalierungsproblem von RAID dargestellt werden: ob's jetzt eine Festplatte oder ein ganzer "Storage Pod" ist, die bzw. der ausfällt, in jedem Fall muss das System danach eine Zeit lang im "degraded" Modus bei jedem Zugriff Daten rekonstruieren und im Hintergrund parallel dazu eine lang dauernde Recovery-Phase durchlaufen, in der die fehlenden Daten auf eine neue "Speichereinheit" (Platte oder "Storage Pod") wiederhergestellt werden. Krachen mir während dieser Phase hoher Belastung mehr Speichereinheiten weg, als ich an Redundanz vorgesehen habe, sind meine Daten gehimmelt.
Da ist nix mit "skaliert besser" - zu "skaliert besser" kommt man erst, wenn man innerhalb der Storage Pods auch nochmal ne weitere Redundanz-Ebene reinzieht, um Ausfälle einzelner Platten dadurch zu kompensieren und zu verhindern, dass gleich der ganze Pod weg ist, wenn mal eine von 50 Platten spinnt (ein statistisch sehr wahrscheinliches Problem). Diese Redundanz-Ebene könnte z.B. RAID sein ;-) dann liegt der Witz aber in den mehreren Redundanz-Ebenen übereinander begründet, und nicht im Verfahren, mit dem die Anwendung die Daten wiederherstellt (das Verfahren ist nämlich bei allen RAID-Level über RAID0&1 dasselbe, es ist daher witzlos).
Wenn also "Das Ende von RAID durch Mathematik" kommen soll, dann frage ich mich, wie denn der Anfang von RAID 5 & 6 gekommen ist. -
Re: "Erasure Coding" = RAID auf Anwendungsebene
Autor: Eheran 09.07.19 - 14:03
Schön ausformuliert, +1
-
Re: "Erasure Coding" = RAID auf Anwendungsebene
Autor: zwergmaster 09.07.19 - 15:04
Es ist eben keine Ebene höher gezogen (könnte man natürlich machen).
Innerhalb eines Storagesystems kann man mit vielen Platten "variabel" verteilte Parität/Redundanz erhalten, z.B. 35% Parität und 65% Daten. Das geht mit RAID z.B. nicht. Bei RAID 5 ist die Nettokapazität n-1 und bei RAID 6 n-2. Hier schließt es eine Lücke, die man vorher nur umständlich handhaben konnte.
Auch ist es keine Ebene höher, wzB. bei ZFS auf Dateisystemebene. Auch RAID verwendet verschiene mathematische Operationen, um die Parität zu berechnen, z.B. XOR.
Natürlich kann man auf mehrere Storagsysteme mit Reed-Solomon wiederrum Reed-Solomon anwenden, um auch auf Systemebene Redundanz zu erreichen. Da sind wir dann aber wieder z.B. bei ZFS :) -
Re: "Erasure Coding" = RAID auf Anwendungsebene
Autor: elcaron 09.07.19 - 15:28
Der Autor verriet sich ja selbst, als er schrieb, RAID6 nutze SR. Die Frage ist nicht RAID oder Erasure Coding, sondern
RAID ohne Erasure Coding, RAID mit Erasure Coding oder Erasure Coding außerhalb von RAID.
Und dann kann man noch diskutieren, ob man RAIDZn zu RAID zählt oder nicht. Wenn man das tut, kann man praktisch direkt sagen:
- Wenn man eine Machine hat, RAIDZn
- Wenn man mehrere Machinen hat, Erasure Coding, z.B. Ceph.
Eher selten dürfte die gute Antwort heute "Hardware RAID" sein. -
Re: "Erasure Coding" = RAID auf Anwendungsebene
Autor: nachgefragt 09.07.19 - 16:12
Ich glaub man muss den Artikel auch nicht komplett verstehen.
Spätestens hier wusste ich gar nicht mehr was los ist und wovon geredet wird:
"Prozessoren wie der Pentium 3 von Intel hatten einen einzelnen Kern und schon genug mit der Paritätsberechnung von Raid-1- oder Raid-5-Systemen zu tun."
Redet er im Artikel die ganze Zeit von Soft-Raid, Fake-Raid (Billighardware) oder was meinte er damit.
Bei uns wurde die Paritätenberechnung zu der Zeit nämlich vom Hardware-RAID-Controller berechnet. Der hatte seine eigene "CPU" dafür, grade deshalb. Für 100 Mark gabs das allerdings auch zu der Zeit nicht.
5 mal bearbeitet, zuletzt am 09.07.19 16:21 durch nachgefragt. -
Re: "Erasure Coding" = RAID auf Anwendungsebene
Autor: blub19 09.07.19 - 17:13
Er redet davon, das NAS heutzutage normale CPUs haben. Dass historisch für RAIDs ASICs verwendet wurden ist dem Autor anscheinend nicht klar. Allerdings ist RS einiges aufwändiger als die Methoden, die in die älteren RAIDs wir 1 und 5 verwendet werden. Die ASICs zu P3 Zeiten für RS hat es entweder nicht gegeben oder waren wirklich wirklich teuer.
-
Re: "Erasure Coding" = RAID auf Anwendungsebene
Autor: Tiggr 09.07.19 - 17:32
+1
-
Re: "Erasure Coding" = RAID auf Anwendungsebene
Autor: bmaehr1 09.07.19 - 20:52
Ich glaube es müsste heißen: Das was heute als Raid 1,5,6 bekannt ist, ist eine vereinfachte Variante von Erasure Coding.
-
Re: "Erasure Coding" = RAID auf Anwendungsebene
Autor: ultra79 11.07.19 - 14:38
elcaron schrieb:
--------------------------------------------------------------------------------
> Eher selten dürfte die gute Antwort heute "Hardware RAID" sein.
Definiere "Hardware RAID" - also was ist das?