Erhöhung der Datenverarbeitungs- und Übertragungsgeschwindigkeit für NVMe-Speichergeräte

Projekt in Kürze: Wir haben die Leistung des Speichersystems unseres Kunden um 30 % verbessert, indem wir DPDK-Bibliotheken mit dem ZFS-Dateisystem auf NVMe-Laufwerken verbunden haben. Diese Leistungssteigerung kann einen wichtigen Wettbewerbsvorteil für den Speichermarkt bieten. Diese Fallstudie beschreibt den ingenieurtechnischen Aspekt dieses Vorteils. 

Kunde & Herausforderung

 In Zusammenarbeit mit einem Anbieter von NVMe-basierten Speichern haben wir uns darauf konzentriert, bewährte Methoden zur Entwicklung von NAS-Systemen zu finden, die die Leistung und die Datenübertragungsraten verbessern können.

Lösung 

1. Entwicklung des Konzepts

Um die Geschwindigkeit der Datenverarbeitung und -aufzeichnung zu bewerten, testeten wir NVMe-Laufwerke, die in einem RAID-Array mit ZFS (Zettabyte File System) kombiniert waren. ZFS ermöglicht bereits eine mehrfache Steigerung der Datenaufzeichnungsgeschwindigkeit. Wir planten zudem Tests mit dem DPDK-Bibliothekensatz, um die Möglichkeit einer weiteren Leistungssteigerung zu bewerten. 

2. Beschreibung der Hardware-Plattform

     Folgende Komponenten bildeten die Hardware-Plattform für unsere Tests: 

    • 4 NVMe-Laufwerke mit hoher Kapazität von Samsung, Modell MZQL27T6HBLA-00A07.
    • Eine Platine zur Verbindung der vier NVMe-Laufwerke.
    • PC-Systemmodell: Ampere Altra Developer Platform.
    • PC-RAM: 6x32 (192GiB) DIMM DDR4 2933 MHz.
    • PC-CPU: ARMv8 von ARM (Q64-22).
    • PC-Motherboard: COM-HPC Ampere Altra Module. 

    3. Beschreibung der Software-Plattform

      Wir verwendeten die folgenden Softwarekomponenten für die Tests: 

      • Betriebssystem Ubuntu Server Version 22.04.4 LTS mit ARM 64 Architektur.
         
      • Zpool-Utility zur Erstellung, Konfiguration und Optimierung eines ZFS-RAID-Arrays.
         
      • TestBench-Software zur Leistungsbewertung. Diese Software simuliert Datenübertragungsoperationen mit 16 Gbps pro Dateneinheit und misst die Kopiergeschwindigkeiten.
         
      • DPDK 23.07 Bibliothekensatz zur Verbesserung der Leistung während der Tests. 

      4. Beschreibung der Testmethodik

        Wir führten die NVMe-Tests mit vier Konfigurationseinstellungen durch: 

        1. Benchmarking der Standardeinstellungen des ZFS-Pools. Diese Konfiguration dient als Basistest zur Messung der Leistung des ZFS-Pools mit seinen Standardeinstellungen. Dazu gehört das Aktivieren der LZ4-Komprimierung, die helfen kann, Speicherplatz durch Datenkomprimierung zu sparen. 
           
        2. Benchmarking des ZFS-Pools mit empfohlenen Einstellungen für NVMe-Laufwerke. Diese Konfiguration optimiert den ZFS-Pool für NVMe, indem die physische Blockgröße auf 4K-Sektoren eingestellt und die Aufzeichnungsgröße auf 1 Megabyte für effiziente sequentielle Ein-/Ausgabe-Operationen angepasst wird. 
           
        3. Benchmarking des ZFS-Pools mit spezifischen Optimierungsoptionen und „Direct IO“. Diese Konfiguration konzentriert sich auf die Feinabstimmung des ZFS-Pools für maximale Leistung. Kompression und Deduplizierung werden deaktiviert, um die Verarbeitungsbelastung zu verringern, und weitere Optimierungen wie das Deaktivieren von Zugriffszeitaktualisierungen (atime) und das Optimieren des Extended Attribute Storage (xattr=sa) werden vorgenommen. 
           
        4. Benchmarking mehrerer ZFS-Pools, die jeweils aus einem NVMe-Laufwerk bestehen. Hierbei wird für jedes NVMe-Laufwerk ein separater ZFS-Pool erstellt, um die Leistung einzelner Laufwerke und Pools zu bewerten. Die Tuning-Optionen und „Direct IO“-Einstellungen aus Konfiguration 3 werden auf jeden Pool angewendet.
           

        Die Tests wurden wie folgt durchgeführt: 

        • Das System wurde gemäß den Konfigurationseinstellungen eingerichtet.
           
        • Wir generierten einen Datenstrom mit dem TestBench-Programm und maßen die Schreibgeschwindigkeit auf RAID.
           
        • Wir führten die gleichen Tests erneut durch, jedoch mit der zusätzlichen Lz4-Datenkomprimierungsoption für zpool. 

         
        Wir wiederholten die Tests jeder Konfiguration dreimal mit 4, 8 und 16 Datenverarbeitungs-Threads. Die Ergebnisse sind in der Tabelle unten aufgeführt, einschließlich der Datenübertragungsgeschwindigkeit mit der zusätzlichen Komprimierungsoption:
         

        Konfiguration Nr.

        4 Threads (1x16GB pro Thread), Mbps

        8 Threads (1x16GB pro Thread), Mbps

        16 Threads (1x16GB pro Thread), Mbps

        Konfiguration 1 

        5293 

        7589 

        8511 

        5274 

        7790

        8797 

        Konfiguration 2 

        5175 

        7494 

        8963 

        5353 

        7560 

        8874 

        Konfiguration 3 

        5579 

        7920 

        9556 

        5403 

        7691 

        9069 

        Konfiguration 4 

        5476 

        8272 

        9785 

        5161 

        7655 

        9098 


        5. Ergebnisse

           Die Ergebnisse ermöglichen folgende Schlussfolgerungen: 

          • Die Schreibgeschwindigkeit steigt mit der Anzahl der Threads: Wenn mehr Spuren zur gleichzeitigen Datenverarbeitung verwendet werden, kann das System Daten schneller in den ZFS-Pool schreiben. Die Systemleistung hängt von der Parallelität der Datenverarbeitung ab.
          • Die optimale Leistung wird erzielt, indem vier NVMe-Geräte an das System angeschlossen und als vier separate ZFS-Pools konfiguriert werden. Diese Konfiguration verbessert die Fähigkeit des Systems, die Datenverarbeitung auf mehreren Festplatten zu parallelisieren, und verbessert die Schreibgeschwindigkeit im Vergleich zu anderen Konfigurationen.
          • Die Datenkompression mit dem Lz4-Algorithmus kann situativ die Schreibgeschwindigkeit erhöhen oder geringfügig verringern. Der Einfluss auf die Schreibgeschwindigkeit kann von der Art der zu komprimierenden Daten und der Gesamtbelastung des Systems abhängen.
             

          Geschäftswert 

          Wir haben unserem Kunden geholfen, ein Speichersystem zu entwickeln, das die Leistung um 30 % gegenüber ähnlichen Produkten auf dem Markt verbessert hat.

          Mit dem aufgerüsteten NAS-System wird unser Kunde seine Marktreichweite erweitern und mehr Kunden aus verschiedenen Branchen anziehen können, in denen hohe Schreib- und Lesegeschwindigkeiten von Speichersystemen entscheidend sind: 

          • Finanzwesen und E-Commerce, wo Leistungssteigerungen und Datenverarbeitungsgeschwindigkeiten effizientere Transaktionsverarbeitung, verbesserte Datenanalysen und Compliance ermöglichen;
             
          • Cloud-Service-Anbieter, bei denen eine effiziente Speicherinfrastruktur leistungsstarke Rechenressourcen bietet, die Datensicherheit verbessert und Dienste skaliert werden, um den wachsenden Kundenbedürfnissen gerecht zu werden;
             
          • Streaming-Medien, bei denen eine optimierte Speicherinfrastruktur die Latenz verringert und einen reibungslosen Streaming-Betrieb gewährleistet.
             

          Weitere Leistungen zur Leistungssteigerung

          • SPDK und DPDK-Lösungen: Erfahren Sie mehr über unsere Expertise im Design von Hochgeschwindigkeits-Datenübertragungslösungen – bis zu 10-mal schneller als der Linux-Kernel-Netzwerkstack. 
          • Enterprise NAS: Eine Fallstudie über die Entwicklung eines Enterprise-Network-Attached-Storage-Systems mit DPDK/SPDK-Unterstützung. 
          • TCP PEP und QoS-Softwaremodule: Erfahren Sie, wie wir Software entwickelt haben, um die Leistung von Kommunikationssystemen über geostationäre Satelliten zu verbessern.

          Andere Fallstudien

          Erzählen Sie uns von Ihrem Projekt

          Alle übermittelten Informationen werden vertraulich behandelt.