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

publicité
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
Téléchargement