Le journal
Journaliser le système de fichiers résout le problème fsck en ajoutant une
nouvelle structure de données appelée journal. Ce journal est une
structure située sur le disque. Avant que le driver du système de fichier ne
modifie la meta-data, il écrit une entrée dans ce journal. Cette entrée décrit
ce qu'il s'apprête a faire. Il effectue ensuite la modification de la meta-data.
En faisant cela, un système de fichiers journalisé maintient un log des dernières
modifications de sa meta-data. Ceci s'avère très pratique sur un système de
fichiers mal démonté lorsque le check de cohérence va prendre du temps.
Le principe utilisé provient du monde des gestionnaire de base de données
(SGBD) qui utilisent en effet, un système permettant de différer l'écriture des
données à l'aide d'instructions comme BEGIN et COMMIT. Ainsi, il est possible de
réduire les opérations d'entrée/sortie sous la forme de transaction. Une
transaction ne sera donc effective que lorsque l'ordre COMMIT sera exprimé. Et
cela permet en même temps de conserver un log complet de toutes les transactions
conservé sous forme de journal.
La journalisation en action
Donc, que fait fsck avec un système de fichier journalise?
En fait, il ne
fait rien. Il ignore simplement le système de fichiers et le considère comme montable.

La clé de la restauration rapide d'un système de fichiers à un état stable se
trouve dans le driver Linux du system de fichiers lui même. Lorsque le système de
fichiers est monté, le driver vérifie si il est OK. Si pour quelques raisons que
ce soit cela n'était pas le cas, alors la meta-data nécessiterait être vérifie,
mais au lieu d'effectuer un scan intégral de la meta-data (comme fsck le
ferait), il regarde dans le journal. Comme ce journal contient les dernières
modifications de la meta-data dans l'ordre chronologique, il inspecte tout
simplement les plus récemment modifiées. Par conséquent, il est capable de
restaurer en quelques secondes le système de fichiers dans un état cohérent. Et
à la différence du fonctionnement traditionnel de fsck, cette relecture du
journal ne prend pas plus de temps sur les gros systèmes de fichiers. Grâce au
journal, une meta-data d'un filesystem d'une centaine de Go est répare
quasi-instantanément.
(Suite)
|