Systèmes de fichiers

Le Linux Filesystems Workshop [1] qui s'est tenu en juillet a présenté les axes d'évolution des futurs systèmes de fichiers. Voici quelques éléments sur les systèmes de fichiers afin de vous permettre de lire plus facilement cet article très intéressant et surtout pour choisir votre futur système pour Linux.

Si vous êtes pressé d'installer votre Linux, allez de suite au dernier paragraphe de cet article. Sinon vous pouvez aller jeter un oeil au Filesystems HOWTO [2] qui regroupe des informations sur de très nombreux systèmes de fichiers. Beaucoup sont des systèmes propriétaires liés au système d'exploitation. Par exemple VFAT est le système de fichiers des anciens Windows, BeFS celui de BeOS. D'autres systèmes sont spécifiques à un support matériel. ISO9660 est le système de fichiers des CDROM, UDF celui des DVD. Il y a aussi un certain nombre de systèmes "historiques". Minix est le système utilisé pour le système d'exploitation du même nom. Et Ext est la première version du système de fichier de Linux.

Une première sélection est possible avec la présence ou non d'une journalisation. La journalisation est un mécanisme qui enregistre les opérations en cours dans un journal. En cas de problème, il suffit de terminer ces opérations journalisées pour revenir à un système de fichiers sans erreurs. On évite ainsi la fastidieuse vérification du disque. Ext2 est le système de fichiers classique de Linux et n'est pas journalisé. Ext3 est une reprise de Ext2 avec l'ajout de la journalisation. XFS et Reiserfs sont deux autres systèmes avec journalisation. La journalisation induit bien sûr une baisse des performances et peut même se révéler trop coûteuse sur de petites machines. Donc si vous voulez les performances avant tout, choisissez Ext2. Sinon lisez le paragraphe suivant.

Vous voulez un système journalisé, mais lequel choisir. Ext3 est une reprise de Ext2. Si vous avez déjà des systèmes sous Ext2, c'est un bon choix : il vous suffit de créer un journal pour migrer en Ext3, pas besoin de tout reformater. Si vous utilisez de nombreux petits fichiers, vous opterez pour Reiserfs qui offre d'excellentes performances en temps d'accès et aussi en gain de place pour des fichiers en dessous de la taille d'un bloc (4Ko). A l'inverse XFS est bien adapté au stockage de gros fichiers. Ses performances ne se dégradent pas quand la taille des fichiers augmente.

Vous avez choisi le système de fichiers adapté à vos besoins, mais vous souhaitez pouvoir facilement redimensionner vos partitions ou les sauvegarder à chaud, c'est-à-dire pendant leur utilisation par d'autres applications. Il vous faut un Volume Manager, comme LVM ou VxVM. Ceux-ci virtualisent l'espace disque en segments qui peuvent être agencés dynamiquement pour composer des partitions. On peut ensuite installer le système de fichiers de son choix sur ces partitions. Très utiles pour de gros systèmes devant être fréquemment modifiés, ils ne font que rajouter de la complexité pour des machines classiques.

Hans Ivers effectue un travail très intéressant en effectuant des tests comparatifs entre Ext3, ReiserFS, JFS et XFS [3]. Ses tests visent à se placer au plus près de conditions réelles d'utilisation du système de fichiers. Voici sa conclusion : "XFS semble être le système de fichiers le plus approprié à installer sur un serveur de fichiers pour les besoins d'un particulier ou d'une petite entreprise".

[1] http://linuxfr.org/2006/07/23/21124.html
[2] http://tldp.org/HOWTO/Filesystems-HOWTO.html
[3] http://www.debian-administration.org/articles/388