Red Hat développe un nouveau système de fichiers NVFS efficace pour la mémoire NVM

Mikuláš Patočka, l'un des développeurs de LVM et auteur de plusieurs ouvrages inventionslié à l'optimisation des systèmes de stockage, travaillant chez Red Hat, представил nouveau système de fichiers sur la liste de diffusion des développeurs du noyau Linux NVFS, visant à créer un FS compact et rapide pour les puces de mémoire non volatile (NVM, mémoire non volatile, par exemple NVDIMM), combinant les performances de la RAM avec la possibilité de stocker du contenu en permanence.

L'expérience du FS a été prise en compte lors du développement de NVFS NOUVEAU, créé spécifiquement pour la mémoire NVM en 2017, mais non accepté dans le noyau Linux et limité prise en charge des noyaux Linux de 4.13 à 5.1.
Le FS NVFS proposé est beaucoup plus simple que NOVA (4972 lignes de code contre 21459), fournit l'utilitaire fsck, a des performances plus élevées, prend en charge les attributs étendus (xattrs), les étiquettes de sécurité, les ACL et les quotas, mais ne prend pas en charge les instantanés. Architecture NVFS est proche de
Le système de fichiers Ext4 s'intègre bien dans le modèle de système de fichiers basé sur le sous-système VFS, ce qui permet de minimiser le nombre de couches et de se contenter d'un module qui ne nécessite pas de correctifs au noyau.

NVFS utilise l'interface du noyau DAX pour un accès direct aux périphériques de mémoire persistante, en contournant le cache des pages. Pour optimiser le fonctionnement de la mémoire NVM adressable par octets, le contenu du lecteur est mappé sur l'espace d'adressage linéaire du noyau sans utiliser de couche de périphérique bloc traditionnelle ni de cache intermédiaire. Utilisé pour stocker le contenu du répertoire arbre de base (arbre de base) dans lequel chaque nom de fichier est haché et la valeur de hachage est utilisée lors de la recherche dans l'arborescence.

L’intégrité des données est assurée grâce au « mises à jour logicielles"(comme dans UFS de FreeBSD et FFS d'OpenBSD) sans utiliser de journalisation. Pour éviter la corruption des fichiers dans NVFS, les opérations de modification de données sont regroupées de manière à ce qu'un crash ne puisse pas entraîner la perte de blocs ou d'inodes, et l'intégrité des structures est restaurée à l'aide de l'utilitaire fsck. L'utilitaire fsck fonctionne en mode multithread et offre des performances de force brute de 1.6 million d'inodes par seconde.

В des tests de performance NVFS a effectué l'opération de copie de l'arborescence des sources du noyau Linux sur la mémoire NVM environ 10 % plus rapide que NOVA, 30 % plus rapide que ext4 et 37 % plus rapide que XFS. Dans le test de récupération de données, NVFS était plus rapide que NOVA de 3 % et ext4 et XFS de 15 % (mais avec le cache disque actif, NOVA était 15 % plus lent).
Dans le test du million d'opérations d'annuaire, NVFS a surpassé NOVA de 40 %, ext4 de 22 % et XFS de 46 %. Lors de la simulation de l'activité du SGBD, le système de fichiers NVFS a surpassé NOVA de 20 %, ext4 de 18 fois et XFS de 5 fois. Dans le test fs_mark, les performances de NVFS et NOVA se sont avérées être à peu près au même niveau, tandis qu'ext4 et XFS étaient en retard d'environ 3 fois.

Le retard des systèmes de fichiers traditionnels sur la mémoire NVM est dû au fait qu'ils ne sont pas conçus pour l'adressage d'octets, qui est utilisé dans la mémoire non volatile, qui ressemble à de la RAM ordinaire. La lecture à partir de disques conventionnels garantit l'atomicité de l'opération au niveau de lecture/écriture du secteur, tandis que la mémoire NVM fournit un accès au niveau des mots machine individuels. De plus, les systèmes de fichiers traditionnels tentent de réduire l'intensité de l'accès au support, considéré comme évidemment plus lent que la RAM, et tentent également de regrouper les opérations pour assurer une lecture séquentielle lors de l'utilisation des disques durs, traiter les files d'attente de requêtes, lutter contre la fragmentation et séparer les fichiers. priorités des différentes opérations. . Pour la mémoire NVM, de telles complications sont inutiles, car la vitesse d'accès aux données est comparable à celle de la RAM et l'ordre d'accès n'a pas d'importance.

Source: opennet.ru

Ajouter un commentaire