Azure Native Qumulo Maintenant disponible dans l'UE, au Royaume-Uni et au Canada - En savoir plus

Qumulo est-il un système de fichiers à structure de journal ?

Rédigé par:
Il s'est avéré que certains des aspects innovants de la conception de Qumulo s'inspirent d'un certain nombre de techniques révolutionnaires développées au fil des ans pour les systèmes de fichiers, notamment les systèmes de fichiers à structure logarithmique. Pour expliquer cela, nous allons donner un peu d’historique sur la manière dont les systèmes de fichiers ont historiquement assuré la cohérence en cas de pannes impures telles que des pannes de courant.

On nous demande parfois si Qumulo est un système de fichiers structuré en log. La réponse courte est «non», mais il y a une histoire intéressante. Il s'est avéré que certains des aspects innovants de la conception de Qumulo s'inspirent d'un certain nombre de techniques révolutionnaires développées au fil des ans pour les systèmes de fichiers, notamment les systèmes de fichiers à structure logarithmique. Pour expliquer cela, nous donnerons un peu d’historique sur la manière dont les systèmes de fichiers ont historiquement assuré la cohérence en cas de pannes impures, telles que des pannes de courant.

Pas de temps pour l'histoire ? Télécharger la présentation de l'architecture logicielle

Ensuite, nous verrons comment les ingénieurs de Qumulo ont résolu certains des problèmes des systèmes de fichiers hérités en utilisant une nouvelle approche appelée magasin de blocs évolutif (SBS).

Bref historique des systèmes de fichiers

Les premiers systèmes de disques nécessitaient une marche complète de toutes les structures de données avec des utilitaires tels que fsck pour ramener le système de fichiers à un état cohérent après une interruption telle qu'une panne de courant. Bien que les utilitaires tels que fsck prennent du temps et maintiennent le système de fichiers hors ligne, leur approche Walk-and-Repair était acceptable car les disques étaient petits.

À mesure que la taille des disques augmentait, le temps d'interruption causé par la marche et la réparation devenait trop long. Il y avait un désir de récupération plus rapide à un état cohérent après un crash.

Systèmes de fichiers de journalisation

La première tentative de résolution du goulot d'étranglement de réparation s'est produite dans les 1980 avec l'introduction des systèmes de fichiers journalisés. Un journal est un historique des modifications récentes apportées à un système de fichiers. Les systèmes de fichiers de journalisation garantissent la cohérence du système de fichiers après une panne avec une quantité de travail beaucoup plus réduite qu'une opération de marche-réparation complète, car le journal enregistre toutes les modifications récentes. La réparation des structures de données du système de fichiers peut être effectuée rapidement car le système doit uniquement lire les dernières entrées de journal pour effectuer le travail. La journalisation a également amélioré les chances de récupérer des données récemment écrites après un plantage.

Systèmes de fichiers structurés en log

L'un des problèmes de la journalisation des systèmes de fichiers était que chaque opération d'écriture nécessitait un double effort car le système devait écrire dans le magasin de données et dans le journal. Le désir d'éliminer la double écriture a motivé certaines nouvelles approches. Par exemple, le premier système de fichiers à structure logarithmique, conçu dans 1988, a éliminé la pénalité d'écriture-écriture de la journalisation avec un journal qui était le système de fichiers. En d'autres termes, un système de fichiers à structure logarithmique était disposé sur disque en tant que grand journal séquentiel ou historique des modifications de fichiers. L'écriture dans le journal était la même opération que l'écriture dans le système de fichiers. Comme avec la journalisation, un tel système de fichiers nécessitait peu de calculs pour mettre le système dans un état cohérent après une panne. Contrairement à la journalisation, l'approche structurée par un journal ne nécessitait pas d'opérations d'écriture double.

Le système de fichiers structuré en log a également amélioré les performances en écriture sur les disques magnétiques en rotation. Comme les modifications étaient toujours ajoutées à la fin du journal, une séquence de modifications du système de fichiers pouvait être mise en mémoire tampon et écrite en une seule opération d'écriture sur disque, ce qui réduisait le temps nécessaire aux opérations de recherche. L’amélioration des performances d’écriture était nettement plus prononcée lors de l’écriture de petits fichiers.

Bien entendu, l’approche logarithmique comportait des compromis, tels que la complexité d’indexation du journal pour des performances de lecture ultérieures acceptables et la nécessité de mettre en œuvre la récupération de place automatique pour récupérer l’espace de stockage inutilisé et réduire la fragmentation.

Bien que l'approche log structurée, telle que conçue à l'origine, ne soit utilisée dans aucun système de fichiers de production aujourd'hui, son concept de base consistant à utiliser des structures de données soigneusement conçues pour éviter les incohérences et éviter les pénalités de journalisation était très important. Son influence peut être vue dans les approches «soft update» et «copy-on-write» qui ont suivi.

Mises à jour douces

À l'instar des systèmes de fichiers à structure logarithmique, les mises à jour logicielles ont été essayées comme une solution pour éviter la double écriture. Cette approche utilise un modèle restreint et soigneusement conçu de mises à jour ordonnées qui, si elles sont interrompues par un blocage, conservent toujours le système de fichiers dans un état cohérent. Les mises à jour logicielles résolvent le problème d'écriture-double mais peuvent avoir pour inconvénient de rendre inaccessible un stockage inutilisé. Pour remédier à cette fuite de stockage, les systèmes de fichiers dotés de mises à jour logicielles présentent une complexité supplémentaire appelée parfois «fsck en arrière-plan». Ils sont également extrêmement difficiles à mettre en œuvre de manière fiable.

Systèmes de fichiers de copie sur écriture

À l'instar des systèmes de fichiers à structure logarithmique, les systèmes de fichiers de copie sur écriture écrivent toujours les données hors de propos, c'est-à-dire sur les nouveaux blocs de stockage, afin d'éviter les mises à jour sur place des métadonnées de fichiers. La différence réside dans le fait que les systèmes de fichiers à structure logarithmique écrivent séquentiellement dans un journal, tandis que les systèmes de copie sur écriture utilisent la magie du pointeur non destructive pour incorporer les nouvelles données dans une nouvelle version du système de fichiers. Pour ce faire, ils utilisent des structures de données connues (confuses) comme des structures de données persistantes (ou comme des structures de données immuables) pour représenter les métadonnées du système de fichiers. WAFL et ZFS sont des exemples de systèmes de fichiers utilisant des techniques de copie en écriture.

Où le système de fichiers Qumulo s'intègre

De manière générale, Qumulo suit l’esprit des systèmes de fichiers à structure logarithmique et des systèmes de fichiers de copie sur écriture en évitant le problème de double écriture des systèmes de fichiers journalisés. Dans Qumulo, toutes les nouvelles données sont écrites dans de nouveaux blocs. Les anciens blocs ne sont pas écrasés. Les systèmes de fichiers à structure logarithmique, les systèmes de fichiers de copie sur écriture et Qumulo partagent tous la caractéristique d'écrire de nouvelles données à leur place. Cependant, c'est à peu près là que s'arrêtent les similitudes.

Contrairement aux systèmes de fichiers structurés en journaux et aux systèmes de fichiers de copie sur écriture, Qumulo a été conçu dès le départ pour être distribué sur de nombreux ordinateurs pour des performances et une capacité évolutives, avec une protection des données intégrée basée sur des codage d'effacement. En conséquence, le système de fichiers Qumulo repose sur une couche virtuelle transactionnelle de blocs de stockage protégés appelée Scalable Block Store (SBS).

Le SBS définit des régions de stockage contiguës qui résident sur des disques virtuels des nœuds du cluster Qumulo. Ces régions sont appelées bstores. Les bstores sont principalement constitués de deux composants, un arbre de blocs et un journal WAL (Write Forward Log). Qumulo écrit initialement sur le WAL dans le cadre d'une transaction. Tous les blocs de données sont écrits hors de propos. Lorsque la transaction est terminée et qu'il est temps de vérifier les données du WAL, Qumulo met à jour l'arborescence en tant que structure de données persistante. La mise à jour de l'arborescence de blocs s'apparente conceptuellement à la création d'une nouvelle version du système de fichiers complet, mais est implémentée à un coût très faible. Les blocs du WAL ne sont pas copiés dans l'arborescence de blocs, mais simplement référencés.

Le WAL est une liste liée (pas une véritable structure de données persistante), mais lorsque SBS ajoute au WAL, elle ne remplace que la valeur NULL terminale. L'écrasement de la queue du WAL en tant qu'opération atomique est dans l'esprit des mises à jour logicielles car l'ordre d'écriture est soigneusement conçu pour ne provoquer aucune corruption de données si les écritures sont interrompues par une panne de courant. Les écritures vivent dans le WAL pendant une courte période jusqu'à ce que les modifications apportées à l'arborescence soient terminées.

Toutes les écritures dans Qumulo vont aux SSD, ce qui signifie que le Qumulo SBS peut attribuer des blocs de manière arbitraire sans que la performance du disque ne soit réduite. Lorsque le nombre de blocs libres sur les disques SSD du système devient faible, le système SBS utilise les disques durs en tant que magasin de sauvegarde (sauf, bien sûr, dans les environnements 100% Flash). Lors de la hiérarchisation entre SSD et HDD, le SBS utilise des modèles d'écriture séquentiels très efficaces qui optimisent les performances des disques durs.

Ainsi, à certains égards, les magasins BST de Qumulo SBS sont similaires aux systèmes de fichiers basés sur des journaux, sauf qu’ils allouent des blocs arbitrairement dans le SSD et n’ont pas besoin de maintenir un tampon circulaire. D’autres manières, les bstores de Qumulo sont similaires aux systèmes de copie sur écriture, sauf qu’ils fonctionnent au niveau du bloc et non au niveau du fichier, et qu’ils écrivent sur des blocs virtuels toujours dirigés par des disques SSD. Enfin, SBS WAL utilise des techniques similaires aux mises à jour logicielles pour fournir une protection en cas d’interruption inattendue, telle que la perte de puissance. Nous nous tenons, comme on dit, sur les épaules des géants.

Pour découvrir comment fonctionne le SBS, téléchargez le Présentation technique de Qumulo File Data Platform.

Contactez-nous ici si vous souhaitez organiser une réunion ou demander une démonstration. Et Abonnez-vous à notre blog pour des meilleures pratiques et ressources plus utiles!

Articles Similaires

Remonter en haut