Supreme RAID: Rekord-Datenraten für SSD-Kombinationen - aber nur mit Geforce-Grafikkarten

19
News Valentin Sattler Als bevorzugte Quelle auf Google hinzufügen
Supreme RAID: Rekord-Datenraten für SSD-Kombinationen - aber nur mit Geforce-Grafikkarten
Quelle: Graid Technology

Supreme RAID nutzt Geforce-Grafikkarten, um die Limitierungen von bisherigen RAID-Lösungen auszuhebeln. Damit können deutlich höhere Datenraten erreicht werden.

Aktuelle PCIe-SSDs bieten bereits Datenraten, die die Ansprüche des Durchschnittsnutzers mehr als abdecken. Für manche Anwendungen kann der Datentransfer aber gar nicht schnell genug gehen - und dann müssen Sonderlösungen her. Eine solche gibt es in Form von Supreme RAID, einer RAID-Alternative von Graid Technology, die bisherige Limitierungen der Technik aushebeln soll.

Gewaltige Datenraten

Der grundsätzliche Gedankengang ist dabei derselbe: Es werden mehrere Laufwerke kombiniert und gemeinsam angesteuert. Supreme RAID nutzt dabei aber eine Geforce-GPU für die Steuerung und will so deutlich höhere Datenraten erreichen. Zum Vergleich: Während RAID-Karten maximal vier Laufwerke aufnehmen können, sind mit Supreme RAID bis zu 32 SSDs gleichzeitig möglich.

Die Website Storage Review hat ein ebensolches System aufgebaut und dafür die Graid SR-1010 genutzt. Dahinter steckt eigentlich eine Geforce RTX A2000, die mit der entsprechenden Software betrieben wird. Offenbar kann die Software aber auf nahezu allen Geforce-Karten ausgeführt werden, zumal sie keine hohen Leistungsansprüche stellt.

Zusammen mit der besagten Grafikkarten wurden anschließend 24 SSDs vom Typ Kioxia CM7-R verbaut, die 3.84 TB über ein Gen5-Interface anbinden. In der RAID5-Konfiguration konnte Supreme RAID damit im sequenziellen Lesen stolze 279 GB/s übertragen, und im Schreiben wurden 148 GB/s erreicht. Zum Vergleich: Die besten Konfigurationen auf Basis von Software-RAID, mit dem man so viele Laufwerke ebenso ansteuern kann, kamen nur auf 235 GB/s im Lesen und sogar nur 3,51 GB/s im Schreiben. Zudem liegt die GPU-Lösung auch bei den IOPS deutlich vorne. Schreibend gibt es hier 2,02M IOPS vergleichen mit maximal 205k IOPS, und im Lesen kommt das Gespann auf 28,5M IOPS im Vergleich zu 5,6M IOPS.

Ebenso spannend: PCI Express 5.0: SSD-Controller von Silicon Motion effizienter und schneller als Phisons?

Mit Blick auf Datenraten und Zugriffsgeschwindigkeit kann das System bisherige RAID-Lösungen damit offenbar deutlich übertreffen, indem die GPU statt der CPU genutzt wird. Für private Nutzer sind derartige Konstruktionen aber natürlich kaum relevant, schließlich sind die SSD-Datenraten dort nur selten ein Problem. Für Experimente und Benchmarks wäre eine breitere Verfügbarkeit der Lösung dennoch spannend, zumal offenbar nicht allzu viel GPU-Leistung benötigt wird. Zum Vergleich: Die genutzte RTX A2000 ist etwas langsamer als eine Geforce RTX 3060.

Quelle: Storage Review via Techradar

19
    • Kommentare (19)

      Zur Diskussion im Forum
      • Von empy Lötkolbengott/-göttin
        Zitat von PCGH_Torsten
        Wenn das RAID deiner Meinung nach erst bei 1.500 kB die volle Leistung ausfahren und unterhalb eins 24tels davon, also unter 64 kB gar nichts davon bringen kann, was sagt das über sensationelle RAID-Performance-Ergebnisse bei Zugriffen von im Schnitt 10 kB? Reine Parallelität auf Zugriffsebene, die ein JBOD genauso schnell abgearbeitet hätte?
        Wenn sich die Zugriffe gleichmäßig über alle Laufwerke verteilen, ist ein JBOD sogar schneller, weil keine Parität existiert. Das ist aber typischerweise weniger Wahrscheinlich, schon weil doch recht oft der Fokus auf einzelnen Dateien liegt und Dateisysteme versuchen, die Dateien möglichst am Stück zu halten und so alle Zugriffe auf eine Datei in einem JBOD immer nur von einem Laufwerk bedient werden können. In so einem Szenario gewinnt Striping und mit genug Laufwerken im RAID auch mit Parität.
      • Von empy Lötkolbengott/-göttin
        Zitat von PCGH_Torsten
        Wenn das RAID deiner Meinung nach erst bei 1.500 kB die volle Leistung ausfahren und unterhalb eins 24tels davon, also unter 64 kB gar nichts davon bringen kann, was sagt das über sensationelle RAID-Performance-Ergebnisse bei Zugriffen von im Schnitt 10 kB? Reine Parallelität auf Zugriffsebene, die ein JBOD genauso schnell abgearbeitet hätte?
        Wenn sich die Zugriffe gleichmäßig über alle Laufwerke verteilen, ist ein JBOD sogar schneller, weil keine Parität existiert. Das ist aber typischerweise weniger Wahrscheinlich, schon weil doch recht oft der Fokus auf einzelnen Dateien liegt und Dateisysteme versuchen, die Dateien möglichst am Stück zu halten und so alle Zugriffe auf eine Datei in einem JBOD immer nur von einem Laufwerk bedient werden können. In so einem Szenario gewinnt Striping und mit genug Laufwerken im RAID auch mit Parität.
      • Von PCGH_Torsten Kokü-Junkie (m/w)
        Wenn das RAID deiner Meinung nach erst bei 1.500 kB die volle Leistung ausfahren und unterhalb eins 24tels davon, also unter 64 kB gar nichts davon bringen kann, was sagt das über sensationelle RAID-Performance-Ergebnisse bei Zugriffen von im Schnitt 10 kB? Reine Parallelität auf Zugriffsebene, die ein JBOD genauso schnell abgearbeitet hätte?

        Bezüglich meiner low-Level-Spinnerei: Mainboard-Hardware-Assisted-RAIDs machen nichts weiter als die RAID-Organisation auf Firmware- statt Treiber-Ebene durchzuführen, arbeiten aber letztlich wie (alte/primitive) Software-RAIDs. Hat(te) den Vorteil, dass man Betriebssystem-transparent war und somit den RAID-Verbund als Systemlaufwerk nutzen konnte und kein Datenverlust durch Software-Fehler oder -Manipulation möglich ist und den Nachteil, dass die Firmware zum RAID-Setup kompatibel bleiben muss. Wobei ich da Hersteller-intern gute Erfahrungen gemacht habe und schon zweimal mit bestehendem RAID-Verbund das Mainboard gewechselt habe. Beide Male wurden dabei fünf Generationen übersprungen und es gab exakt null Probleme. Ich schlage aber einen noch tiefer gehenden, Mainboard-unabhängigen Ansatz vor, bei dem die NVME-Laufwerke selbst auf PCI-E-Package-Ebene zumindest die Lese-Parallelität organisieren und dabei direkt von logischem RAID- auf internen Flash-Block gehen können. (Schreibend bräuchte es einen korrespondierenden Treiber, der auch Paritätsberechnungen über die CPU laufen lassen könnte.)
      • Von empy Lötkolbengott/-göttin
        Zitat von PCGH_Torsten
        Bin mit modernen Software-RAIDs nicht vertraut, aber früher/bei Hardware-Lösungen wurde/wird meinem wissen nach die logische Struktur eines Laufwerks nachgebildet. Dass heißt das Dateisystem sieht in dem RAID eine fortlaufende Sturktur kontinuierlicher Blöcke und kann beispielsweise eine Datei, die in Block 5 beginnt und in Block 8 endet, durch einen kontinuierlichen Lesezugriff von 5 bis 8 aufrufen. Aber in der Realität führt hierfür der RAID-Controller mehrere Laufwerkszugriffe durch und lädt zumindest vier einzelne Blöcke von beispielsweise vier unterschiedlichen Laufwerken, die er dann in der korrekten Reihenfolge ausgibt, so als wären sie am Stück gelesen worden.
        Prinzipiell ist es genau so, nur dass nicht festgelegt ist, dass immer nur ein Block am Stück auf einem Laufwerk liegt, sondern eben eine Reihe Blöcke als Chunk. Das ist wohl einfach Performancetuning und was da die optimale Anzahl ist, hängt von den verwendeten Laufwerken, dem Anwendungsszenario und dem RAID-Level ab. Ich denke mal, man hat Chunks eingeführt, um die Vorteile von sequentiellen Zugriffen bei Festplatten besser nutzen zu können. Ansonsten denke ich, dass Zugriffe auch parallel abgesetzt werden und so auch parallel von den Laufwerken bearbeitet werden können. Ich denke, dass auch NCQ hauptsächlich dazu eingeführt wurde, dass man bei Festplatten nicht mehr auf Programmseite darauf achten muss, dass man Daten in der richtigen Reihenfolge abfragt, weil man sonst den Durchsatz minimiert.
        Zitat von PCGH_Torsten
        Bei einem so extremen RAID wie hier hätte ich eine weitere Komplexitätsebene erwarten, habe selbst aber keine Erfahrung:
        Ich denke RAID ist RAID. Große RAIDs gibt es ja schon länger, die Laufwerke waren halt langsamer, so dass geringere Performanceanforderungen an die Ansteuerung gestellt waren, die Funktionsweise hat sich aber nicht geändert.
        Zitat von PCGH_Torsten
        Früher hatte man 500er Sektoren auf den Laufwerken und 4k logische Blöcke, dass heißt selbst bei achtfacher Parallelität konnte ein logischer Block aus ganzen Sektoren zusammengesetzt werden.
        Es ist wohl so, dass Laufwerke physisch 4K-Blöcke haben, darauf aber 512B-Blöcke emulieren.
        Zitat von PCGH_Torsten
        Aber bei 24 4k-Laufwerken hat man entweder eine viel gröbere Granularität. Da muss man entweder auf 96k logische Blöcke aus Sicht des Dateisystems hoch, wovon ich aber noch nie etwas gehört hätte. Oder aber man hat bei kleineren Zugriffen, wie sie im Beispiel erfolgen, gar keine Parallelität mehr, sondern ein JBOD, dass die Zugriffe gemäß der physischen Blöcke abarbeitet, aber nicht die versprochene Leistung bieten kann.
        Wie gesagt, die Blöcke bleiben gleich groß. Die Granularität ist so, dass beim Lesen einer Datei einfach nur Dateigröße/Chunksize Laufwerke diesen Vorgang bedienen. Wenn eine Datei also komplett innerhalb eines Chunks liegt, hat man tatsächlich keine Parallelität. Bei SSDs empfehlen sich auch kleinere Chunksizes, weil man viel weniger als bei Festplatten einen Trade-Off hat. Bei Festplatten ist die optimale Chunksize genau Dateigröße/Laufwerke, so dass jedes Laufwerk die von ihm zu liefernden Daten sequentiell lesen kann. Wählt man sie kleiner müssen mehrere Suchläufe durchgeführt werden, wählt man sie größer opfert man Parallelität, da sind SSDs flexibler.
        Zitat von PCGH_Torsten
        Meine Erwartung war daher, das gerade so ein super-intelligentes System die logischen Blöcke aus Fragmenten der physischen Sektoren zusammensetzt. Ein 48k-Zugriff des Dateisystems auf 12 logische Blöcke bestünde dann beispielsweise aus 24 Laufwerksoperationen, es wird aber jeweils nur die erste Hälfte der 24 gelesenen physischen 4k-Sektoren verwendet.
        Das klingt erst mal intuitiv sinnvoll, um maximale Parallelität zu erreichen, führt aber zu jeder Menge Overhead. Es ist aber eigentlich gar nicht notwendig so eine feingranulare Parallelität zu erreichen. Der Durchsatz skaliert mit der Dateigröße immer noch sehr schnell auf das Maximum (ich lese im Zusammenhang mit SSDs oft was von einer empfohlenen Chunksize von 64K, bei 24 Laufwerken im RAID5 also ab einer Dateigröße von ~1,5MB), alles andere ist auch schnell übertragen (würde mich nicht wundern, wenn da die Zugriffszeit selbst bei SSDs noch den Löwenanteil der Zeit verschlingt) und so ein System nutzt man vermutlich da, wo schon insgesamt genug Zugriffe zusammenkommen, um die Laufwerke zu beschäftigen.
        Zitat von PCGH_Torsten
        Obwohl es in Zeiten von PCI-E-Verschaltungen eigentlich eine coole Idee wäre, beide Ebenen zu verknüpfen und so die ohnehin vorhandene Laufwerkseletronik in einem dezentralen RAID-Controller zu verwandeln, zumindest für 0 und 1.)
        Naja, gibt ja durchaus Mainboards mit RAID-Funktion, Hardware-RAIDs haben aber nach meinem letzten Stand auch einen entscheidenden Nachteil: Sie sind nicht zwingend frei portierbar. Man braucht also einen zum bisher genutzten Controller kompatiblen Ersatz, um das RAID weiternutzen zu können. Wenn man jetzt viele Maschinen und eine entsprechende Ersatzteilinfrastruktur hat, ist das eine Sache, wenn man aber nur sein Mainboard hat, wäre es blöd, wenn man da drauf achten müsste, wenn man es ersetzen will oder muss.
      • Von PCGH_Torsten Kokü-Junkie (m/w)
        Bin mit modernen Software-RAIDs nicht vertraut, aber früher/bei Hardware-Lösungen wurde/wird meinem wissen nach die logische Struktur eines Laufwerks nachgebildet. Dass heißt das Dateisystem sieht in dem RAID eine fortlaufende Sturktur kontinuierlicher Blöcke und kann beispielsweise eine Datei, die in Block 5 beginnt und in Block 8 endet, durch einen kontinuierlichen Lesezugriff von 5 bis 8 aufrufen. Aber in der Realität führt hierfür der RAID-Controller mehrere Laufwerkszugriffe durch und lädt zumindest vier einzelne Blöcke von beispielsweise vier unterschiedlichen Laufwerken, die er dann in der korrekten Reihenfolge ausgibt, so als wären sie am Stück gelesen worden.

        Bei einem so extremen RAID wie hier hätte ich eine weitere Komplexitätsebene erwarten, habe selbst aber keine Erfahrung: Früher hatte man 500er Sektoren auf den Laufwerken und 4k logische Blöcke, dass heißt selbst bei achtfacher Parallelität konnte ein logischer Block aus ganzen Sektoren zusammengesetzt werden. Aber bei 24 4k-Laufwerken hat man entweder eine viel gröbere Granularität. Da muss man entweder auf 96k logische Blöcke aus Sicht des Dateisystems hoch, wovon ich aber noch nie etwas gehört hätte. Oder aber man hat bei kleineren Zugriffen, wie sie im Beispiel erfolgen, gar keine Parallelität mehr, sondern ein JBOD, dass die Zugriffe gemäß der physischen Blöcke abarbeitet, aber nicht die versprochene Leistung bieten kann. Meine Erwartung war daher, das gerade so ein super-intelligentes System die logischen Blöcke aus Fragmenten der physischen Sektoren zusammensetzt. Ein 48k-Zugriff des Dateisystems auf 12 logische Blöcke bestünde dann beispielsweise aus 24 Laufwerksoperationen, es wird aber jeweils nur die erste Hälfte der 24 gelesenen physischen 4k-Sektoren verwendet. Die hinteren Hälften, die für das Dateisystem erst die folgenden 12 logischen Blöcke bilden würden, müssten vom Controller als Mittelsmann zwischen logischer und physischer Ebene herausgeschnitten werden. ("Physisch" in dem Fall gleichbedeutend mit "auf Laufwerksebene". Dass die Laufwerke ihrerseits die gesamte Struktur nur simulieren und transparent und in Echtzeit zwischen ihrem tatsächlichen physischen Aufbau und dieser eigentlich-auch-nur-logischen Simulation übersetzen, spielt für den Controller ja keine Rolle. Obwohl es in Zeiten von PCI-E-Verschaltungen eigentlich eine coole Idee wäre, beide Ebenen zu verknüpfen und so die ohnehin vorhandene Laufwerkseletronik in einem dezentralen RAID-Controller zu verwandeln, zumindest für 0 und 1.)
      • Von empy Lötkolbengott/-göttin
        Zitat von PCGH_Torsten
        Die Chunks sind aber nicht automatisch mit Dateistrukturen allignend und sie setzen sich nicht selbst zusammen. Hier wurde von einem RAID mit 24 Laufwerken gesprochen, abzüglich Parität hat man also 23 Fragmente einer Datei
        Man hat immer nur Fragmente einer Datei. Hier werden die einzelnen Fragmente nur von mehreren Laufwerken gelesen, wenn die Datei groß genug ist. Man kann aus der logischen Adresse eines Blocks, der Anzahl an Laufwerken, der Block- und Chunkgröße und dem RAID-Level das Laufwerk und die Adresse auf diesem Laufwerk errechnen und greift dann einfach darauf zu. Auf einem normalen Laufwerk stehen einfach alle Blöcke hintereinander, bei einem RAID werden sie verteilt, dennoch ist jeder Block genau so beschaffen, wie beim Einzellaufwerk und das Dateisystem kann darauf genau so aufsetzen und damit genau so umgehen. Das RAID ist vor dem Dateisystem komplett abstrahiert.
        Zitat von PCGH_Torsten
        Bezüglich Datenmenge beim Schreiben: Bei einem Schreib-Benchmark gehe ich erstmal vom einfachsten Fall, also von einem leeren Ziel aus. Somit müssen keine bestehenden Daten und Paritäten berücksichtigt werden.
        Ich glaube nicht, dass das so funktioniert, leere Daten sind auch Daten, das Dateisystem weiß nichts von dem RAID und umgekehrt. Normalerweise ist die erste Amtshandlung eines RAIDs, dass es einen sauberen Zustand herstellt. Verschiedene Operationen aus Basis der Länge eines Schreibbefehls und in Abhängigkeit zum Alignment mit den Stripes gibt es meines Wissens nach nicht, Operationen sollten weiterhin blockweise geschehen.
        Zitat von PCGH_Torsten
        Da der Controller strengenommen nur alle Daten lesen und nur die Paritätsinformationen schreiben muss, entspricht der maximale Nutzdatenstrom also der realen PCI-E-Leistung nach Overhead-Abzug.
        Theoretisch möglich, aber aus den oben genannten Gründen wohl nicht praxistauglich.
        Zitat von PCGH_Torsten
        Wenn bestehende Blöcke geändert werden müssen, wird die Angelegenheit natürlich komplizierter, aber es wird auch kein sauberer Faktor 3 drei sein. Was immer bei Lesevorgängen Sub-Chunks ausspuckt, könnte (je nach Aufbau des Algorithmus) auch nicht für den betrachteten Paritätsabschnitt relevante Block-Inhalte ausfiltern, bei mehreren Zugriffen in die gleichen Blöcke würden Caches eine große Rolle spielen, bei größeren Zugriffen könnten erneut ganze Blöcke clean überschrieben werden und ein (ach-so-)schlauer Controller schreibt gegebenfalls auch erst in leere Bereiche und konsolidiert die erhaltenswerten Reste in nur teilweise veralteten Blöcken später.
        Normalerweise ist es ein Faktor vier. Man benötigt zwei Lese- (alter Blockinhalt und alte Parität) und zwei Schreibzugriffe (neuer Blockinhalt und neue Parität) verteilt auf zwei Laufwerke pro Schreibzugriff auf das RAID. Das wäre durch die Bidirektionalität von PCIe in dem Fall ein Faktor zwei, weil empfangen und senden parallel geschehen kann. Allerdings braucht die GPU im Gegensatz zur CPU zusätzlich noch Datenrate für den neuen Blockinhalt, wodurch sich meiner Meinung nach ein Faktor drei ergibt. Mit Caching ergibt sich im Idealfall ein Szenario, in dem die GPU nur den neuen Blockinhalt empfangen und den zusammen mit der neuen Parität senden muss. In dem Fall könnte man die Nutzdaten parallel noch mal an der GPU vorbei direkt an die Laufwerke übertragen, so dass die nicht von der GPU gesendet werden müssen. Das würde dann wohl ungefähr dem von dir oben beschriebenen Szenario entsprechen: Die GPU empfängt nur die Nutzdaten und sendet nur die Parität und man hätte einen Faktor 1.
      Direkt zum Diskussionsende
  • Print / Abo
    Apps
    PCGH Magazin 07/2026 PC Games 07/2026 play5 07/2026 N-Zone 07/2026 Linux Magazin 07/2026 LinuxUser 07/2026 Raspberry Pi Geek 07/2026
    PC Games Hardware PC Games Linux Magazin Raspberry Pi Geek Computec Kiosk