web-dev-qa-db-fra.com

EXT4 vs. XFS vs. Btrfs vs. ZFS pour NAS=

Mon cas d'utilisation: j'ai installé Ubuntu Server 18.04 sur un SSD m.2. J'ai un disque dur 4 To je veux ajouter comme stockage. Comme il s'agit principalement des fichiers multimédias et des sauvegardes de grande taille, il ne sera pas écrit très souvent.

quel système de fichiers pensez-vous est le mieux adapté pour ce cas d'utilisation?

Mes principaux candidats sont EXT3/4, XFS, BTRFS et ZFS (n'hésitez pas à argumenter pour un autre).

Je ne demande pas "Quel est le meilleur système de fichiers?" - Il n'y a pas de "le meilleur" ' Je demande simplement aux gens qui Le système de fichiers pourrait être le plus adapté à ce cas d'utilisation. S'il vous plaît essayez d'inclure:

  • Y a-t-il des inconvénients ou des risques? J'ai entendu que XFS peut corrompre des données s'il y a une perte de puissance. Idem avec zfs sans bélier ECC.
  • Est-il possible d'ajouter RAID-1 plus tard sans perdre de données? Je n'ai pas assez d'argent pour un autre disque dur en ce moment (j'ai utilisé cela pour un lecteur externe; RAID ne remplace pas les sauvegardes), mais je peux en ajouter une plus tard. Ce n'est pas une exigence, juste quelque chose qui pourrait être gentil.
  • Quelle est la performance de lecture/écriture? BTRFS conviendrait probablement la plupart de mes besoins, mais il est très lent dans les repères de Phoronix. XFS a une performance impressionnante, mais j'ai entendu dire que cela peut causer une perte de données.

Merci pour vos conseils.

34
Alex Shaw

J'utilise généralement l'un des deux systèmes de fichiers suivants:

  • XFS pour tout ce qui ne joue pas bien avec la vache (ou pour les machines virtuelles dont le magasin de données est déjà sur un système de fichiers de vache) ou lorsque des E/S directs extrêmement rapides sont nécessaires;

  • Zfs pour autre chose.

Pour votre cas d'utilisation, j'utiliserais des ZFS, en particulier envisagant que Ubuntu 18.04 le transforme déjà. Comme vous pouvez facilement attacher une autre jambe miroir à un appareil déjà existant, ZFS convient très bien à la facture. Par exemple, nommez votre disque nvme0p1:

  • zpool create tank /dev/nvme0p1 Créez votre piscine VDEV unique;
  • zpool attach tank <newdev> /dev/nvme0p1 Active la mise en miroir.

Si, pour des raisons, vous ne pouvez pas/ne peut pas utiliser ZFS, puis MDRAID et XFS sont vos amis:

  • mdadm --create /dev/md200 -l raid1 -n 2 /dev/nvme0p1 missing Créera un tableau RAID1 avec une jambe manquante (voir n ° 1);
  • mdadm --manage /dev/md200 --add <newdev> Affiche une nouvelle jambe de miroir (formant un raid complet1, voir n ° 2)

Après avoir créé la matrice, vous pouvez le formater avec XFS via mkfs.xfs

Je fais pas suggère d'utiliser BTRFS, car les performances et la résilience sont sous-titre. Par exemple, de la Debian wiki :

Il y a actuellement (2019-07-07, Linux ≤ 5.1.16) Un bogue qui provoque un profil RAID1 à deux disques pour toujours être lu à jamais la deuxième fois qu'elle est montée dans un exemple dégradé, par exemple en raison d'une manquante/Disque de réinitialisation de liaison cassée/SATA

Veuillez également noter que le vendeur commercial NAS utilisant BTRFS (lecture: Synology) n'utilise pas sa propre fonctionnalité RAID intégrée; Ils utilisent plutôt la couche de MDRAID Linux éprouvée.

Edit: tandis que certains Mantain que XFS est sujette à la perte de données, cela n'est tout simplement pas correct. Eh bien, comparé à EXT3, XFS (et d'autres systèmes de fichiers supportant une allocation retardée) peut perdre plus de données non synchronisées en cas de propulsion incontrôlée. Mais des données synchronisées (c.-à-d.: Les écritures importantes) sont sûres à 100%. De plus, un bogue spécifique exacerbant une perte de données XFS a été corrigé il y a plus de 10 ans . That Bug Apart ,Tout ​​Délai d'attribution du système de fichiers prête (EXT4 et BTRFS inclus) volonté perdre un nombre significatif ou des données non synchronisées en cas de pulsation incontrôleur.

Comparé à EXT4, XFS a une allocation d'inode illimitée, une allocation d'allocation avancée (si vous en avez besoin) et, dans une version récente, refliquez-vous (mais ils doivent être explicitement activés dans Ubuntu 18.04, voir Page MKFS.XFS Man pour plus d'informations)


1: exemple de fichier /proc/mdstat Avec périphérique manquant:

Personalities : [raid1]
md200 : active raid1 loop0[0]
      65408 blocks super 1.2 [2/1] [U_]

unused devices: <none>

2: /proc/mdstat Fichier après ajout d'un deuxième périphérique

Personalities : [raid1]
md200 : active raid1 loop1[2] loop0[0]
      65408 blocks super 1.2 [2/2] [UU]

unused devices: <none>
20
shodanshok

Cela ressemble plus à une question pour superutilisateur que pour serverfault, mais certaines des idées sont également valables pour ce site, donc je vais faire un coup de poignard pour répondre à certaines des questions:

  • XFS a eu une réputation de ne pas aimer la perte de puissance. Beaucoup s'est produit depuis, et Redhat, Oracle et similaire l'utiliser comme système de fichiers par défaut, donc je ne serais donc pas surpris s'il s'agit d'un problème significativement plus faible qu'on ne l'avait été. Surtout si vous avez une stratégie de sauvegarde décente, si votre cas d'utilisation est du type qui voit une prestation de vitesse de ce système de fichiers, cela pourrait valoir le risque possible.
  • Zfs sans ECC RAM= a toujours une très belle fonctionnalité, mais vous courez le risque de ne pas attraper quelques cas de mauvaises données. J'ai ran zfs sans mémoire ECC pendant plusieurs années dans un cadre similaire à ce que vous avez Décrivez et n'a jamais connu une perte de données évidente, mais encore une fois, je n'ai pas conservé de données critiques sur ce volume. J'ai depuis migré vers du matériel de serveur approprié et que vous vous sentez beaucoup plus à l'aise à l'aide de mon stockage pour des choses importantes maintenant.
  • Avec ZFS, vous devriez simplement être capable d'ajouter un disque à une piscine à disque unique pour créer un miroir. Je n'ai pas essayé dans la pratique, mais je reçois plusieurs résultats de recherche réclamant le succès lors de la vérification Duckduckgo . Je ne suis pas sûr des autres systèmes, mais aussi longtemps que vous avez une sorte de gestionnaire de volume sous votre système de fichiers allant à RAID1 à partir d'un seul disque doit être trivial.
  • Les systèmes de fichiers basés sur la vache (ZFS, BTRFS) sont plus lents que moins de systèmes riches en fonctionnalités, et ils dépendent davantage de disposer de leur matériel suffisamment puissant.

Comme dans un cadre d'entreprise, je prendrais certainement le temps de faire fonctionner des points de repère avec ma charge attendue, pour obtenir une expérience de première main avec les fonctionnalités Performance VS.

5
Mikael H

J'utiliserais tout le système de fichiers de journaux que le système d'exploitation en question suggéré par défaut à moins d'avoir eu de très bonnes raisons de ne pas le faire. La dernière fois que j'ai vérifié avec Ubuntu qui était ext4.

La raison est simple: la valeur par défaut est celle qui est probablement utilisée le plus, la possibilité que des bugs aient été trouvées et que la correction est la plus grande. Les différences entre les systèmes de fichiers que vous mentionnez sont peu susceptibles de signifier beaucoup d'utilisation quotidienne. Si la performance est très importante, alors envisagez d'obtenir plus de mémoire à la place afin que votre système d'exploitation ait plus de place pour la mise en cache.

Cela dit, si vous souhaitez utiliser le lecteur "à travers" les systèmes d'exploitation, je suggérerais d'obtenir deux, ou du moins divisez celui que vous avez dans deux partitions physiques, puis utilisez NTFS ou EXFAT sur celui que vous avez des médias.

4

Si vous vous souciez de l'intégrité de vos données à long terme, je vous suggérerais de ZFS ou de BTRFS.

Je crois comprendre que ces deux sont les seuls qui vous permettent de frotter les données, de rechercher et de corriger potentiellement la pourriture de bits.

Je ne suis pas aussi familier avec ZFS, mais courez BTRFS pendant environ 5 à 6 ans. Je l'exécute à Raid1 et j'ai un gommage hebdomadaire. (Remarque: Si vous n'êtes pas en miroir, le nettoyage ne fera que marquer ces mauvais blocs au lieu de réparer!)

Le seul problème que j'ai eu est qu'il y avait un bogue où les étendants n'étaient pas libérés automatiquement pour que le disque rempli, mais n'était pas rempli.

Les deux ont la compression et le dédoué, mais la déduction BTRFS est hors ligne - que certaines personnes préfèrent.

Une autre ressource à vérifier est ce post récent qui le faisait pirate de piratage : cinq ans de BTRFS

Remarque: il semble y avoir quelques travaux en direction de XFS/EXT4

1
rrauenza

Vous pouvez créer un système de fichiers formatés XFS sur quelque chose qui est un miroir fabriqué Mdadm sans avoir un véritable miroir.

Créez la partition comme un miroir avec trois miroirs mais deux absents. Plus tard, vous pouvez ajouter les deux manquants.

1
Stefan Skoglund