Les Systèmes de Fichiers Journalisés Motivation La Fragmentation

F. Nolot Licence d'informatique 2003-2004 1
Université de Reims Champagne-Ardenne
Les Systèmes de Fichiers Journalisés
F. Nolot Licence d'informatique 2003-2004 2
Université de Reims Champagne-Ardenne
Motivation
La capacité des disques est de plus en plus impotante
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 lecturescritures sur le disque ?
Peut-on diminuer la fragmentation interne et externe ?
F. Nolot Licence d'informatique 2003-2004 3
Université de Reims Champagne-Ardenne
La Fragmentation
Un système de fichier organise une partition en
unités d'allocations appelés bloc (logique)
Si un fichier n'est pas d'une taille exactement
égale à un multiple de la taille d'un bloc :
gaspillage de l'espace,
C'est la fragmentation interne
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 4
Université de Reims Champagne-Ardenne
La Fiabilité
Comment assurer la fiabilité ?
Prédiction : savoir ce que faisait le système de
fichier avant le crash
Atomicité : une opération est soit compléte, soit
annulé
Préservation : données enregistrées avant un
crash ne doivent jamais être endommagées par le
système de restauration
F. Nolot Licence d'informatique 2003-2004 5
Université de Reims Champagne-Ardenne
Assurer la prédiction
Le système doit ordonner les écritures quand
plusieurs doivent avoir lieu
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)
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 6
Université de Reims Champagne-Ardenne
Assurer la prédiction (2)
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)
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
F. Nolot Licence d'informatique 2003-2004 7
Université de Reims Champagne-Ardenne
Assurer la prédiction (3)
3ème solution : soft updates de Ganger. Utilisation
d'un « rolling back »
Problème commun : la vérification du disque en
cas de crash implique un parcourt de l'intégralité
du disque
Trop long
F. Nolot Licence d'informatique 2003-2004 8
Université de Reims Champagne-Ardenne
Assurer l'atomicité
Capable d'écrire complément sur le disque de
nouvelles données en une seule fois
Comment ?
Les modifications ne sont validés qu'après la
réception d'un « commit »
F. Nolot Licence d'informatique 2003-2004 9
Université de Reims Champagne-Ardenne
Assurer la préservation
En cas de crash
Soit le disque est cohérent
Soit le commit n'est pas fait :
il faut donc annuler les écritures non validées
Donc être capable de les retrouver
Pour cela : utilisation d'un journal
F. Nolot Licence d'informatique 2003-2004 10
Université de Reims Champagne-Ardenne
Le journal
Le journal = une partie de la partition
Toutes les écritures sont faites sur le journal
Après validation (commit), copie du journal sur
les blocs concernés par les modifications
En cas de crash :
Le commit n'est pas fait : rien n'a été modifié sur
le disque
Le commit est fait : on copie à nouveau le journal
sur les blocs concernés
F. Nolot Licence d'informatique 2003-2004 11
Université de Reims Champagne-Ardenne
Avantages
Réparation du système plus rapide
Plus de parcourt complet du disque
Parcourt uniquement du journal
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
F. Nolot Licence d'informatique 2003-2004 12
Université de Reims Champagne-Ardenne
Améliorer la gestion de l'espace libre
Ext2 utilise un bitmap des blocs libres : un tableau
de bits qui représente l'occupation ou pas d'un
bloc
Quand la taille des partitions devient grandes, la
taille de cette structure croit également
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 13
Université de Reims Champagne-Ardenne
Les Extents
Suite de blocs contigus
Le descripteur d'un extent : début, longueur
Améliore les performances, diminue la
fragmentation externe
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 14
Université de Reims Champagne-Ardenne
Les B+arbres
Balanced Tree (arbre équilibré)
Équilibré en hauteur : la longueur du chemin allant de la
racine vers n'importe quelle feuille est toujours la même
+ signifie que c'est une version modifié des B-arbres classiques
Dans un B-arbre, chaque noeud contient
Un pointeur vers un noeud fils (pour les noeuds internes)
Une clé
Les données correspondantes
F. Nolot Licence d'informatique 2003-2004 15
Université de Reims Champagne-Ardenne
Les B+arbres (2)
Dans un B+arbre, chaque noeud interne contient
Un pointeur
Une clé
Les données sont stockées au niveau des feuilles
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 16
Université de Reims Champagne-Ardenne
Extents + B+arbres
Nouvelle approche : couplage des 2 structures
Fabrication de B+arbres d'extents
Indexation suivant la taille des extents
Indexation suivant la position des extents
F. Nolot Licence d'informatique 2003-2004 17
Université de Reims Champagne-Ardenne
La recherche d'un fichier
Classiquement, une entrée répertoire c'est
Un numéro d'i-node et
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 18
Université de Reims Champagne-Ardenne
Augmenter la taille maximale d'un fichier
Bloqué par les i-nodes (ext2 : 12 adresses de blocs
+ 3 indirections)
Solution : indexation des blocs d'un fichier suivant
l'offset des blocs, dans un B+arbre.
F. Nolot Licence d'informatique 2003-2004 19
Université de Reims Champagne-Ardenne
Système journalisé actuelle
Ext3 (= ext2 + Journal )
Taille max. d'un système de fichier : 32 To
Taille des blocs : 1 Ko à 8 Ko
Taille max. d'un fichier : 2 To
ReiserFS
Taille max. d'un système de fichier : 16 To
Taille des blocs : 512 octets à 64 Ko
Taille max. d'un fichier : 1024 Po
F. Nolot Licence d'informatique 2003-2004 20
Université de Reims Champagne-Ardenne
Système journalisé actuelle
JFS (système de fichier 64 bits - IBM)
Taille max. d'un système de fichier : 32 Po
Taille des blocs : 512 octets à 4 Ko
Taille max. d'un fichier : de 512 To à 4 Po
XFS (système de fichier 64 bits - sgi)
Taille max. d'un système de fichier : 18 000 Po
Taille des blocs : 512 octets à 64 Ko
Taille max. d'un fichier : 9 000 Po (9 Exaoctets)
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !