NILFS
# NILFS

NILFS (New Implementation of a Log-structured File System ou Nouvelle Implantation d'un Système de Fichiers structuré par la Journalisation) est un système de fichiers qui est conçu autour du mécanisme de journalisation des écritures. Il est distribué sous licence GNU GPL et destiné aux systèmes basés sur GNU/Linux.

NILFS2 a été inclus dans le noyau Linux 2.6.30 (RC-1).

## Fonctionnement

NILFS est conçu et entièrement architecturé autour du mécanisme de journalisation des données, ce qui signifie que le contenu des fichiers (les données) et les méta-données associées sont entièrement écrits dans le journal des écritures sur le disque. Ceci par opposition aux systèmes de fichiers journalisés conventionnels qui utilisent un journal comme mécanisme annexe permettant de contrôler/sécuriser les données écrites par ailleurs.

Les intérêts d'un tel système sont multiples :

* L'écriture journalisée est linéaire au lieu d'être aléatoirement répartie sur toute la surface du disque, ce qui en améliore les performances.
* Puisque toute écriture est journalisée, il devient possible de récupérer n'importe quel état antérieur ou d'y accéder en parallèle (en lecture seule). La restauration d'un état cohérent du système de fichiers après un crash est ainsi extrêmement rapide, et indépendante de la taille des données.

L'inconvénient principal de ce système est qu'il nécessite un mécanisme sophistiqué de « ramasse-miettes » pour éviter que le journal ne remplisse complètement le stockage : les plus vieux points de contrôle doivent être régulièrement analysés et consolidés pour libérer de la place dans le journal.

NILFS permet de marquer certains points de contrôle pour en faire des instantanés, récupérables n'importe quand.

