Un NAS DIY Linux : choix du système de fichiers

Btrfs, ZFS, ext4 ?

Le problème exposé dans ce sujet a été résolu.

Bonjour les Zesteux,

Je réfléchis en ce moment à me faire un petit NAS DIY. Je n’ai pas encore choisi le matériel mais je pense que je vais simplement récupérer des pièces dans mes vieilles machines, donc je ne me fais pas trop de souci.

Au niveau du système, j’aimerais partir sur Linux puisque je connais déjà bien et je sais l’administrer. Je n’ai pas besoin de Web GUI ou autre, un simple accès SSH (SFTP/SSHFS) et NFS me suffira amplement. (pas besoin d’un OS spécial NAS comme FreeNAS/TrueNAS, donc).

Au niveau du matos, je pense partir sur deux disques SSD en SATA et en faire un RAID1. La raison pour laquelle je privilégie le SSD n’est pas la performance mais plutôt la faible consommation et le bruit.

Le système de fichiers Btrfs a retenu mon attention, il semble présenter des caractéristiques intéressantes pour un espace de stockage :

  • bon support sous Linux ;
  • compression à la volée (et donc moins d’écritures sur le SSD pour le préserver) ;
  • snapshot et simplicité de faire un backup incrémental offsite et sur disque externe avec btrfs send | btrfs receive ;
  • support de RAID1 natif (pas besoin de mdadm) ;
  • peut fonctionner avec des disques chiffrés avec LUKS/dm-crypt (ce besoin n’est pas forcément un must have, mais un nice to have dans mon cas) ;
  • jugé assez mature, assez pour être le système de fichiers par défaut de Fedora 33, du moins…

Pour les raisons susmentionnées, Btrfs me semble idéal pour un NAS Linux. D’autres ne jurent que par ZFS comme étant idéal pour un NAS, et partageant d’ailleurs beaucoup de points forts avec Btrfs.
Je peux envisager ZFS mais deux éléments me perturbent :

  • ce système de fichiers est-il intéressant en dehors de FreeBSD ? son support sous Linux est-il assez bon ?
  • ne faut-il pas beaucoup de RAM pour profiter pleinement des forces de ZFS ? (RAM ECC conseillée qui plus est, rendant la carte mère et les barrettes plus rares et chères dans le commerce grand public).

Que pensez-vous de Btrfs et ZFS (ou autre) pour un NAS qui devra tourner 24h/24 ?

+0 -0

J’ai eu des soucis de performance de brtfs avec des disques presque pleins, liés à la fragmentation du système (je ne sais pas exactement pourquoi la fragmentation ralentit plus les choses quand le disque est presque plein); du coup je suis revenu à ext4 pour ma machine personnelle. Je fais mes backups avec rsync, donc sans utiliser de support pour l’incrémentalité dans le filesystem.

Si tu n’as pas prévu de cas d’usage courant "disque presque plein", je pense qu’aujourd’hui brtfs est assez stable pour être utilisé en production. C’est vrai que les aspects "copy on write" sont pratiques pour faire des backups (ça fait le calcul incrémental, et aussi on peut prendre un snapshot instantané de l’état sans avoir à craindre d’intérférences si tu utilises le disque en même temps).

Par contre: c’est peut-être une question naïve mais est-ce vraiment utile d’utiliser des SSDs pour le stockage externe ? J’imagine qu’en vitesse de transfert tu vas plutôt être limité par la connection entre la machine et le serveur, et qu’un bon HDD pourrait tout à faire écrire à cette vitesse (même en RAID), en coutant nettement moins cher. Le SSD a l’avantage d’être silencieux et plus résistant aux chutes matériels, mais ça fait quand même encore cher la différence (on dirait qu’en ce moment 4To HDD NAS coûte environ 120€, et 1To SSD environ 110€).

Merci pour ta réponse !

J’ai eu des soucis de performance de brtfs avec des disques presque pleins, liés à la fragmentation du système (je ne sais pas exactement pourquoi la fragmentation ralentit plus les choses quand le disque est presque plein);

Sais-tu s’il s’agissait d’une fragmentation inhérente au FS ou bien d’une fragmentation auxquels les disques SSD sont généralement soumis ? (auquel cas lancer fstrim régulièrement devrait régler le souci)

Par contre: c’est peut-être une question naïve mais est-ce vraiment utile d’utiliser des SSDs pour le stockage externe ? J’imagine qu’en vitesse de transfert tu vas plutôt être limité par la connection entre la machine et le serveur, et qu’un bon HDD pourrait tout à faire écrire à cette vitesse (même en RAID), en coutant nettement moins cher. Le SSD a l’avantage d’être silencieux et plus résistant aux chutes matériels, mais ça fait quand même encore cher la différence (on dirait qu’en ce moment 4To HDD NAS coûte environ 120€, et 1To SSD environ 110€).

gasche

Pour le disque externe de backup, je peux clairement envisager un DD. Le rsync différentiel basé sur le temps peut s’avérer long avec des périphériques à forte latence comme les DD, mais si j’utilise la sauvegarde incrémentale de Btrfs, ce n’est plus du tout un problème, même avec un DD lent (en supposant que chaque delta soit assez petit).

Pour les deux disques internes en RAID1, en revanche, je préfère rester avec des SSD silencieux car je suis en studio, donc contrainte de nuisance sonore. Mais il est vrai que le prix au To n’est pas du tout le même… (je pense avoir besoin d’un ou deux To max)

+0 -0

Salut,

J’ai eu des soucis de performance de brtfs avec des disques presque pleins, liés à la fragmentation du système

gasche

Je ne sais pas si c’est exactement ça, mais j’ai moi aussi eu des problèmes de "disque plein" avec BTRFS alors que df -h ne montrait pas de disque plein. J’ai trouvé un blog qui traite du sujet et qui explique à quoi c’est du et surtout comment régler le problème: http://marc.merlins.org/perso/btrfs/post_2014–05–04_Fixing-Btrfs-Filesystem-Full-Problems.html

Effectivement dans le domaine du stockage l’état de l’art c’est ZFS. À ma connaissance le support sur Linux est assez bon, il me semble avoir quand même entendu parler de certains soucis mais je ne sais pas à quelle échelle. Je ne saurai pas t’en dire plus hélas.

+1 pour ZFS.

BTRFS a des lacunes par rapport à ZFS.

ZFS a fait ses preuves et bénéficie d’un soutien important.

ZFS est en train d’être unifié : une même implémentation (OpenZFS) pour FreeBSD et Linux.

ne faut-il pas beaucoup de RAM pour profiter pleinement des forces de ZFS ?

ZFS aime la RAM, certes mais ça dépend ce que tu fais (déduplication, nombre de To, etc). Il en faut un minimum mais, ZFS ou non, le système utilisera toute la RAM libre pour cacher à la façon de l’ARC.

RAM ECC conseillée

Conseillé, pas obligatoire. De toute façon, ECC, hors plate-forme pro/serveur, il n’y a que certaines cartes mères AMD (qui dépendent en plus du BIOS de ce que j’ai lu sur Reddit) qui la supporteraient de manière "officieuse" mais sans garantie pour autant. C’est plus la loterie qu’autre chose en somme.

+1 -0

Merci pour vos retours. Mon cœur balance entre ZFS et Btrfs. Je vais faire des recherches appuyées sur le support de ZFS sous Linux.

Je remarque cependant que beaucoup de retours qu’on peut trouver sur ces FS supposent en général un usage généralisé dans le système (une partition montée sur / contenant ce qui concerne le système). Dans mon cas, seuls les deux disques de stockage seraient en ZFS ou en Btrfs, mais certainement pas le troisième disque bootable de l’OS qui serait sous un FS classique (ext4 sûrement). Je pense donc pouvoir passer à travers pas mal de edge cases qui mettraient en péril la stabilité du système, ce qui est rassurant.

Je tâcherai de garder cela en tête dans mes recherches.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte