Les Systèmes de Fichiers Journalisés Motivation La Fragmentation
Transcription
Les Systèmes de Fichiers Journalisés Motivation La Fragmentation
Université de Reims Champagne-Ardenne Université de Reims Champagne-Ardenne Motivation La capacité des disques est de plus en plus impotante Les Systèmes de Fichiers Journalisés La vérification de l'intégrité est donc de plus en plus longue Augmenter la taille maximale des partitions et des fichiers ? Systèmes de fichiers classiques ne sont plus appropriés au capacité actuelle (>100 Go) Être capable de supporter les capacités futures fichiers > 8Go et disque > 1To Peut-on être sûr de ne jamais perdre les données enregistrés sur le disque, même en cas de crash lors d'une écriture ? Peut-on accélérer les lectures/écritures sur le disque ? Peut-on diminuer la fragmentation interne et externe ? F. Nolot Licence d'informatique 2003-2004 1 Université de Reims Champagne-Ardenne F. Nolot Licence d'informatique 2003-2004 2 Université de Reims Champagne-Ardenne La Fragmentation La Fiabilité Un système de fichier organise une partition en unités d'allocations appelés bloc (logique) Comment assurer la fiabilité ? Prédiction : savoir ce que faisait le système de fichier avant le crash Si un fichier n'est pas d'une taille exactement égale à un multiple de la taille d'un bloc : gaspillage de l'espace, Atomicité : une opération est soit compléte, soit annulé C'est la fragmentation interne Préservation : données enregistrées avant un crash ne doivent jamais être endommagées par le système de restauration Un fichier peut être réparti sur plusieurs blocs discontigus de la partition C'est la fragmentation externe F. Nolot Licence d'informatique 2003-2004 3 Université de Reims Champagne-Ardenne F. Nolot 4 Université de Reims Champagne-Ardenne Assurer la prédiction Assurer la prédiction (2) Le système doit ordonner les écritures quand plusieurs doivent avoir lieu 2ème solution : assurer l'ordre des données entre le buffer disque en mémoire et le disque. A chaque écriture, vérifier que toutes les données précédentes sont bien écrites sur le disque (deferred ordered write) 1ère solution : attendre que les 1ères écritures soient terminés avant de soumettre les autres au driver disque (c'est le synchronous metadata update de BSD Fast File System) Problème : déplacement d'un fichier d'un répertoire A vers B et en même temps, d'un autre fichier de B vers A Mais lent, une I/O par écriture Pour écrire 10 fichiers dans un répertoire, 10 I/O doivent être faites F. Nolot Licence d'informatique 2003-2004 Licence d'informatique 2003-2004 5 F. Nolot Licence d'informatique 2003-2004 6 Université de Reims Champagne-Ardenne Université de Reims Champagne-Ardenne Assurer la prédiction (3) Assurer l'atomicité 3ème solution : soft updates de Ganger. Utilisation d'un « rolling back » Capable d'écrire complément sur le disque de nouvelles données en une seule fois Problème commun : la vérification du disque en cas de crash implique un parcourt de l'intégralité du disque Comment ? Les modifications ne sont validés qu'après la réception d'un « commit » Trop long F. Nolot Licence d'informatique 2003-2004 7 Université de Reims Champagne-Ardenne F. Nolot Licence d'informatique 2003-2004 Université de Reims Champagne-Ardenne Assurer la préservation Le journal En cas de crash Le journal = une partie de la partition Soit le disque est cohérent Toutes les écritures sont faites sur le journal Soit le commit n'est pas fait : il faut donc annuler les écritures non validées Après validation (commit), copie du journal sur les blocs concernés par les modifications Donc être capable de les retrouver En cas de crash : Pour cela : utilisation d'un journal F. Nolot 8 Licence d'informatique 2003-2004 Le commit n'est pas fait : rien n'a été modifié sur le disque 9 Université de Reims Champagne-Ardenne F. Nolot Le commit est fait : on copie à nouveau le journal sur les blocs concernés Licence d'informatique 2003-2004 10 Université de Reims Champagne-Ardenne Avantages Améliorer la gestion de l'espace libre Réparation du système plus rapide Ext2 utilise un bitmap des blocs libres : un tableau de bits qui représente l'occupation ou pas d'un bloc Plus de parcourt complet du disque Parcourt uniquement du journal Quand la taille des partitions devient grandes, la taille de cette structure croit également Performance accrue du système de fichier Données temporaires sont toujours stockées au même endroit sur le disque, indépendemment des données permanentes Utilisation d'un algorithme séquentiel pour parcourir ce tableau (compléxité O(n), n taille du tableau) Solution : les extents et les B+arbres F. Nolot Licence d'informatique 2003-2004 11 F. Nolot Licence d'informatique 2003-2004 12 Université de Reims Champagne-Ardenne Université de Reims Champagne-Ardenne Les Extents Les B+arbres Balanced Tree (arbre équilibré) Suite de blocs contigus Équilibré en hauteur : la longueur du chemin allant de la racine vers n'importe quelle feuille est toujours la même Le descripteur d'un extent : début, longueur Améliore les performances, diminue la fragmentation externe + signifie que c'est une version modifié des B-arbres classiques Dans un B-arbre, chaque noeud contient Mais leur taille doit être > à celle d'un bloc, sinon, perte d'espace disque (on doit stoker 2 informations pour décrire un extent) F. Nolot Licence d'informatique 2003-2004 Un pointeur vers un noeud fils (pour les noeuds internes) Une clé Les données correspondantes 13 Université de Reims Champagne-Ardenne F. Nolot Licence d'informatique 2003-2004 14 Université de Reims Champagne-Ardenne Les B+arbres (2) Extents + B+arbres Dans un B+arbre, chaque noeud interne contient Nouvelle approche : couplage des 2 structures Un pointeur Fabrication de B+arbres d'extents Une clé Indexation suivant la taille des extents Les données sont stockées au niveau des feuilles Indexation suivant la position des extents Sur chaque niveau, les clés sont ordonnées La recherche est donc beaucoup rapide que dans une liste F. Nolot Licence d'informatique 2003-2004 15 Université de Reims Champagne-Ardenne F. Nolot Licence d'informatique 2003-2004 16 Université de Reims Champagne-Ardenne La recherche d'un fichier Augmenter la taille maximale d'un fichier Classiquement, une entrée répertoire c'est Bloqué par les i-nodes (ext2 : 12 adresses de blocs + 3 indirections) Un numéro d'i-node et Solution : indexation des blocs d'un fichier suivant l'offset des blocs, dans un B+arbre. un nom de répertoire Pour chercher un fichier, il faut parcourir les entrées puis les i-nodes référencés par chaque entrée Solution : indexation de toutes les entrées répertoires suivant leur nom dans des B+arbres F. Nolot Licence d'informatique 2003-2004 17 F. Nolot Licence d'informatique 2003-2004 18 Université de Reims Champagne-Ardenne Université de Reims Champagne-Ardenne Système journalisé actuelle Système journalisé actuelle Ext3 (= ext2 + Journal ) JFS (système de fichier 64 bits - IBM) Taille max. d'un système de fichier : 32 To Taille max. d'un système de fichier : 32 Po Taille des blocs : 1 Ko à 8 Ko Taille des blocs : 512 octets à 4 Ko Taille max. d'un fichier : 2 To Taille max. d'un fichier : de 512 To à 4 Po ReiserFS XFS (système de fichier 64 bits - sgi) Taille max. d'un système de fichier : 16 To Taille max. d'un système de fichier : 18 000 Po Taille des blocs : 512 octets à 64 Ko Taille des blocs : 512 octets à 64 Ko Taille max. d'un fichier : 1024 Po F. Nolot Licence d'informatique 2003-2004 Taille max. d'un fichier : 9 000 Po (9 Exaoctets) 19 F. Nolot Licence d'informatique 2003-2004 20