Quels systèmes de fichiers choisir entre EXT4, Btrfs et ZFS pour les serveurs

Choisir le bon système de fichiers à utiliser sur un Serveur NAS est une décision très importante, selon l'utilisation que nous allons lui donner, nous pouvons choisir un système de fichiers ou un autre, car il pourrait nous fournir des performances plus élevées, une meilleure intégrité des données et d'autres fonctionnalités. Généralement, les systèmes d'exploitation de serveur NAS comme QNAP, Asustor ou Synology prennent en charge le système de fichiers populaire EXT4 mais aussi Btrfs et même ZFS. Quel système de fichiers dois-je choisir pour mon serveur NAS domestique ou professionnel ?

Qu'est-ce qu'un système de fichiers et à quoi servent-ils ?

EXT4, Btrfs et ZFS pour les serveurs

Tous les systèmes d'exploitation intègrent un système de fichiers, ou plusieurs systèmes de fichiers différents, pour contrôler comment les informations sont stockées et récupérées à partir de différents médias , tels que les disques durs, SSD lecteurs, ainsi que des lecteurs de stockage amovibles tels que des clés USB ou des cartes mémoire. Mémoire. Si nous n'avions pas de système de fichiers, le système d'exploitation ne saurait pas où se termine une certaine donnée enregistrée et où commence la suivante, c'est donc l'un des aspects les plus importants que nous devons prendre en compte.

Les principales fonctions de tout système de fichiers sont d'allouer de l'espace aux différents fichiers, de gérer l'espace libre, de structurer les informations enregistrées pour qu'elles soient facilement et rapidement accessibles. Un autre aspect très important que nous devons prendre en compte sont les secteurs, plus précisément leur taille, dans ces secteurs où sont stockées les informations. Les autres caractéristiques des systèmes de fichiers sont qu'ils fournissent des méthodes pour créer, copier, déplacer, renommer et même supprimer les fichiers et répertoires que nous avons sur le support. Les systèmes de fichiers intègrent également des fonctionnalités très importantes telles que les listes de contrôle d'accès (ACL) pour contrôler les autorisations, les mécanismes pour éviter ou atténuer la fragmentation, la possibilité d'avoir une journalisation (améliore l'intégrité du système de fichiers) et la possibilité de configurer des quotas de disque entre autres. fonctionnalités.

Nous avons actuellement un total de trois systèmes de fichiers différents qui sont largement utilisés dans les serveurs NAS de différents fabricants, et bien sûr dans Linux/Unix et les systèmes d'exploitation basés sur FreeBSD pour le stockage de données sur des serveurs, ces systèmes de fichiers sont EXT4, Btrfs et ZFS, les trois systèmes de fichiers ont des caractéristiques différentes et certains fonctionnent mieux dans différents scénarios.

Ext4

EXT4 est le système de fichiers principal de tout système d'exploitation basé sur Linux, ce système de fichiers est transactionnel (avec journalisation) et intègre des améliorations très importantes par rapport à ses prédécesseurs telles que la prise en charge de volumes plus importants, Processeur l'utilisation et l'amélioration de la vitesse de lecture et d'écriture. Certaines caractéristiques très importantes d'EXT4 sont qu'il permet la réservation d'espace disque sans avoir besoin de tout remplir de zéros, ce qui était généralement fait dans d'autres systèmes de fichiers. De plus, cet espace réservé est généralement contigu afin d'éviter ou d'atténuer les fragmentation du système de fichiers, cette fonction est liée à « Allocate-on-flush » ou appelée réservation de mémoire différée, elle consiste à réserver le bloc de mémoire juste au moment où il est sur le point d'être écrit sur le disque, cela améliore les performances et réduit la fragmentation.

EXT4 a des techniques pour éviter la fragmentation comme celle que nous avons expliquée, mais il a aussi un outil pour défragmenter des fichiers individuels ou le volume entier sans avoir besoin de démonter le disque, bien que logiquement, pendant qu'il est en cours de défragmentation, nous aurons un système de fichiers plus lent.

Ce système de fichiers a les caractéristiques et limites suivantes :

  • Taille de fichier maximale : 16 To en utilisant des blocs de 4 K.
  • Nombre maximum de fichiers : 4 milliards
  • Taille maximale du nom de fichier : 255 octets
  • Taille maximale du volume : 1EiB
  • Cryptage transparent des données : oui
  • Copie sur écriture : non
  • Compression transparente : non
  • Déduplication transparente : non

Une fois que nous aurons connu les principales fonctionnalités d'EXT4, nous allons parler de Btrfs, qui est connu comme le successeur naturel du système de fichiers EXT4.

Btrfs

Le système de fichiers Btrfs est né comme un successeur naturel d'EXT4, son objectif est de le remplacer en éliminant un maximum de ses limitations, notamment en ce qui concerne la taille maximale des fichiers. Les principales caractéristiques de ce système de fichiers sont qu'il est orienté principalement vers les serveurs, il a une allocation dynamique des inodes, il n'est pas nécessaire de définir un nombre maximum lors de la création du système de fichiers comme c'est le cas avec EXT4, il permet de configurer des volumes dans un très avancé, avec la possibilité de configurer des instantanés ou des instantanés inscriptibles et permet également des instantanés d'instantanés. D'autres fonctionnalités sont qu'il permet la mise en miroir et le striping au niveau cible si nous avons plusieurs disques durs, il est capable d'effectuer une vérification des données et des métadonnées en temps réel pour maximiser l'intégrité des données.

Ce système de fichiers utilise la copie sur écriture du registre de toutes les données et métadonnées, il permet également la compression en ligne pour économiser de l'espace disque. Btrfs est capable de vérifier le système de fichiers sans avoir à le démonter, et si nous le démontons, la vérification est très rapide, bien sûr, il dispose d'un mode optimisé pour les disques SSD et permet de le défragmenter sans le démonter.

Ce système de fichiers a les caractéristiques et limites suivantes :

  • Taille de fichier maximale : 16 EiB.
  • Nombre maximum de fichiers : 18 XNUMX milliards.
  • Taille maximale du nom de fichier : 255 octets
  • Taille maximale du volume : 16 EiB.
  • Cryptage transparent des données : non
  • Copie sur écriture : oui
  • Compression transparente : oui
  • Déduplication : oui

Maintenant que vous connaissez les principales fonctionnalités de Btrfs, parlons de ZFS, l'un des systèmes de fichiers les plus avancés disponibles pour les systèmes d'exploitation Linux et Unix.

ZFS

Le système de fichiers ZFS est l'un des plus avancés qui existent aujourd'hui, il se distingue par sa grande capacité, par sa grande sécurité en ce qui concerne l'intégrité des données et par ses grandes performances en lecture et en écriture. ZFS utilise des « pools de stockage » ou également appelés vdevs, contrairement aux systèmes de fichiers traditionnels qui sont placés au-dessus d'un périphérique matériel tel qu'un disque dur, et nécessitent donc un gestionnaire de volume distinct. Grâce à ces vdevs, nous pouvons configurer différents « pools » de type simple, miroir ou utiliser le populaire RAID-Z pour fournir à la fois une redondance des données et des performances supérieures. De plus, le système de fichiers ZFS peut être équipé de disques SSD qui serviront de cache, ou également connus sous le nom de « ZFS Intent Log » ou « ZIL » pour améliorer encore les performances.

Ce système de fichiers utilise un modèle transactionnel de copie sur écriture, cela signifie que les données actives ne sont jamais écrasées, mais sont copiées à un autre endroit et les données modifiées y sont écrites, dans le but d'améliorer considérablement l'intégrité du fichier dans en cas de panne de courant. Nous devons également tenir compte du fait que pour réduire la surcharge, le ZIL est utilisé lorsque des écritures synchrones sont nécessaires. La partie négative de CoW est que nous aurons une fragmentation élevée, et actuellement ZFS n'a aucune méthode pour défragmenter le système de fichiers, bien que dans les prochaines versions nous travaillons à améliorer cet aspect.

Une autre caractéristique de ZFS est que le système de fichiers est appelé un ensemble de données, qui se trouve à l'intérieur d'un « pools de stockage », cet ensemble de données peut être du type de système de fichiers qui ressemble à un volume normal et actuel, ou aussi à un zvol qui serait un périphérique de blocs. Selon nos besoins, nous devrons créer un type de jeu de données ou un autre. Une autre caractéristique très importante des ensembles de données sont les instantanés ou également appelés instantanés. Le système de fichiers ZFS est capable de prendre un total de 281 milliards d'instantanés. De plus, ils sont créés en temps réel en raison de la façon dont ce système de fichiers est créé en interne.

Ce système de fichiers nous permet de configurer la compression en ligne, en utilisant différents algorithmes de compression pour améliorer la vitesse de lecture et d'écriture ou pour améliorer la compression et économiser plus d'espace. Nous pouvons également configurer la fonction de déduplication, une fonctionnalité qui nous permettra d'économiser beaucoup d'espace disque, le point négatif est qu'elle consomme une grande quantité de RAM, vous n'êtes donc peut-être pas trop intéressé par l'activation de cette fonctionnalité.

Ce système de fichiers a les caractéristiques et limites suivantes :

  • Taille de fichier maximale : 16 EiB.
  • Nombre maximum de fichiers : 281 milliards.
  • Taille maximale du nom de fichier : 255 octets
  • Taille maximale du volume : 16 EiB.
  • Cryptage des données : oui
  • Copie sur écriture : oui
  • Compression transparente transparente : oui
  • Déduplication transparente : oui

Dans cet article, nous avons expliqué en détail ce système de fichiers ZFS, à la fois ses caractéristiques et sa configuration dans différents systèmes d'exploitation orientés vers les serveurs NAS. Maintenant que nous savons quels sont les trois systèmes de fichiers les plus utilisés pour les serveurs NAS, examinons leurs forces et leurs faiblesses.

Quel système de fichiers choisir pour mon NAS ?

Une fois que nous avons vu les principales caractéristiques des différents systèmes de fichiers que nous pouvons utiliser dans un serveur NAS domestique et/ou professionnel, nous allons voir les avantages et les inconvénients de chacun d'eux.

Le système de fichiers EXT4 est le plus ancien de tous, et il est plus que prouvé, donc ce système de fichiers est très stable, en fait, c'est toujours le système de fichiers par défaut pour la grande majorité des distributions Linux comme Debian, Ubuntu ou les systèmes d'exploitation de QNAP, Synology et Asustor. Si vous avez besoin de stocker une grande quantité de données, de créer un RAID et tout ce que cela implique, et d'obtenir les meilleures performances de lecture/écriture avec la consommation de ressources la plus faible possible, EXT4 répond sûrement à tous vos besoins. Ce système de fichiers intègre la journalisation, vous ne devriez donc pas avoir de perte de données en cas de panne de courant, cependant, Btrfs et ZFS à cet égard sont clairement meilleurs.

Btrfs améliore de nombreux aspects négatifs d'EXT4, tels que les limitations de taille de fichier et plus, ce système de fichiers utilise la copie sur écriture et a été conçu pour de très gros serveurs où nous allons stocker beaucoup d'informations, par conséquent, nous avons de nombreuses fonctionnalités avancées que EXT4 n'intègre pas, comme le cryptage, la compression et la déduplication transparents des données. Nous devons également tenir compte du fait qu'il intègre des instantanés intégrés, ce que EXT4 n'a pas, il prend en charge le RAID et une allocation flexible des inodes. Cependant, il a été vérifié que ce système de fichiers Btrfs consomme plus de ressources système qu'EXT4, de plus, nous obtiendrons moins de vitesse de lecture et d'écriture dans les mêmes conditions (même matériel et même type de fichiers à transférer).

Le système de fichiers ZFS est l'un des plus avancés qui existe actuellement, ce système de fichiers est similaire à Btrfs mais intègre des fonctionnalités vraiment intéressantes telles que la possibilité d'ajouter de nouveaux périphériques au stockage actuel et d'ajouter immédiatement du nouvel espace, rendant le « RAID » qui nous avions dans les autres systèmes de fichiers. ZFS est synonyme d'évolutivité, de grande capacité de stockage de données, de protection contre la corruption des données (intégrité) et de capacités efficaces de compression de données, de déduplication et d'instantanés rapides. D'autres fonctionnalités sont qu'il vous permet de vérifier l'intégrité de manière continue et d'effectuer une réparation automatique de manière totalement transparente. Le point négatif de ZFS est qu'il consomme beaucoup de ressources, notamment de mémoire RAM, de plus, si vous activez la déduplication vous aurez une consommation de RAM supplémentaire assez importante.

Si vous avez un serveur NAS bas de gamme, il est clair que le système de fichiers que vous devez utiliser est EXT4, dans le cas d'un NAS milieu de gamme ou haut de gamme, vous pouvez choisir Btrfs ou ZFS, selon que votre le système d'exploitation le prend en charge. Si vous allez utiliser ZFS, vous devez garder à l'esprit que la déduplication consomme une grande quantité de RAM, c'est un handicap qu'il faut payer pour économiser une grande quantité d'espace de stockage.