Red Hat entwickelt ein neues NVFS-Dateisystem, das für den NVM-Speicher effizient ist

Mikuláš Patočka, einer der Entwickler von LVM und Autor mehrerer Erfindungenim Zusammenhang mit der Optimierung von Speichersystemen, arbeitend bei Red Hat, eingeführt neues Dateisystem auf der Linux-Kernel-Entwickler-Mailingliste NVFS, mit dem Ziel, einen kompakten und schnellen FS für nichtflüchtige Speicherchips (NVM, nichtflüchtiger Speicher, zum Beispiel NVDIMM) zu schaffen, der RAM-Leistung mit der Fähigkeit zur dauerhaften Speicherung von Inhalten kombiniert.

Bei der Entwicklung des NVFS wurden die Erfahrungen des FS berücksichtigt NOVA, 2017 speziell für NVM-Speicher erstellt, aber nicht in den Linux-Kernel akzeptiert und begrenzt Unterstützung für Linux-Kernel von 4.13 bis 5.1.
Das vorgeschlagene FS NVFS ist viel einfacher als NOVA (4972 Codezeilen gegenüber 21459), bietet das fsck-Dienstprogramm, hat eine höhere Leistung, unterstützt erweiterte Attribute (xattrs), Sicherheitsetiketten, ACLs und Kontingente, unterstützt jedoch keine Snapshots. Die Architektur NVFS ist nah dran
Das Ext4-Dateisystem passt gut in das Modell der Dateisysteme, die auf dem VFS-Subsystem basieren, wodurch Sie die Anzahl der Schichten minimieren und mit einem Modul auskommen können, das keine Patches für den Kernel erfordert.

NVFS verwendet die Kernel-Schnittstelle DAX für den direkten Zugriff auf persistente Speichergeräte unter Umgehung des Seitencaches. Um den Betrieb des byteadressierten NVM-Speichers zu optimieren, werden die Inhalte des Laufwerks dem linearen Adressraum des Kernels zugeordnet, ohne dass eine herkömmliche Blockgeräteschicht und ein Zwischencache verwendet werden müssen. Wird zum Speichern von Verzeichnisinhalten verwendet Basisbaum (Basisbaum), in dem jeder Dateiname gehasht wird und der Hashwert beim Durchsuchen des Baums verwendet wird.

Die Datenintegrität wird durch „Soft-Updates"(wie in UFS von FreeBSD und FFS von OpenBSD) ohne Verwendung von Journaling. Um Dateibeschädigungen in NVFS zu vermeiden, werden Datenänderungsvorgänge so gruppiert, dass ein Absturz nicht zum Verlust von Blöcken oder Inodes führen kann und die Integrität von Strukturen mithilfe des Dienstprogramms fsck wiederhergestellt wird. Das Dienstprogramm fsck arbeitet im Multithread-Modus und bietet eine Brute-Force-Leistung von 1.6 Millionen Inodes pro Sekunde.

В Leistungstests NVFS führte den Kopiervorgang des Linux-Kernel-Quellbaums im NVM-Speicher etwa 10 % schneller als NOVA, 30 % schneller als ext4 und 37 % schneller als XFS durch. Im Datenabruftest war NVFS um 3 % schneller als NOVA und ext4 und XFS um 15 % (bei aktivem Festplatten-Cache war NOVA jedoch 15 % langsamer).
Im Millionen-Verzeichnisoperationstest übertraf NVFS NOVA um 40 %, ext4 um 22 % und XFS um 46 %. Bei der Simulation der DBMS-Aktivität übertraf das NVFS-Dateisystem NOVA um 20 %, ext4 um das 18-fache und XFS um das Fünffache. Im fs_mark-Test lag die Leistung von NVFS und NOVA ungefähr auf dem gleichen Niveau, während ext5 und XFS etwa dreimal zurückblieben.

Die Verzögerung herkömmlicher Dateisysteme im NVM-Speicher ist darauf zurückzuführen, dass sie nicht für die Byteadressierung ausgelegt sind, die im nichtflüchtigen Speicher verwendet wird, der wie normaler RAM aussieht. Das Lesen von herkömmlichen Laufwerken gewährleistet die Atomizität des Vorgangs auf der Lese-/Schreibebene des Sektors, während der NVM-Speicher den Zugriff auf der Ebene einzelner Maschinenwörter ermöglicht. Darüber hinaus versuchen herkömmliche Dateisysteme, die Intensität des Zugriffs auf die Medien zu reduzieren, die als offensichtlich langsamer gelten als RAM, und versuchen außerdem, Vorgänge zu gruppieren, um bei der Verwendung von Festplatten ein sequentielles Lesen sicherzustellen, Anforderungswarteschlangen zu verarbeiten, Fragmentierung zu bekämpfen und die zu trennen Prioritäten verschiedener Operationen. . Für NVM-Speicher sind solche Komplikationen unnötig, da die Geschwindigkeit des Datenzugriffs mit der von RAM vergleichbar ist und die Zugriffsreihenfolge keine Rolle spielt.

Source: opennet.ru

Kommentar hinzufügen