ZFS vs XFS

62

Nous envisageons de construire un serveur de stockage de ~ 16 To. Pour le moment, nous considérons à la fois ZFS et XFS comme système de fichiers. Quels sont les avantages, les inconvénients? Que devons-nous rechercher? Y a-t-il une troisième meilleure option?

Tamas Czinege
la source
7
Ne les compare même pas. ZFS est un système de fichiers moderne au niveau de l'entreprise, tel que jfs2, wafl. XFS était bon il y a 10 ans, mais aujourd'hui, il ne s'agit que d'un âge de pierre.
disserman
À certains égards, vous ne pouvez pas les comparer: XFS est un système de fichiers; ZFS est un système de fichiers et bien plus encore: il remplace le système de fichiers, le gestionnaire de volumes (comme LVM) et le RAID en plus. Cependant, JFS n'est plus maintenu si la mémoire est en service. Cependant, XFS est actif, maintenu et robuste. De toute façon - ZFS ou XFS - vous ne pouvez pas vous tromper, à mon avis.
Mei
1
Je pense toujours que cette question est pertinente, alors je vais écrire notre expérience ici: XFS est simple, vous l’installez, vous l’exécutez, c’est rapide, ça marche. (Raid HW ci-dessous). ZFS est sauvegardé, compressé, mais demande beaucoup de travail pour pouvoir fonctionner aussi vite que XFS. Cela dépend donc aussi de la situation dans laquelle vous prévoyez d’exécuter le serveur. (backend du cluster. Stockage utilisateur, archive, ...)
vendredi
Il y a aussi Hammer2 dragonflybsd.org/hammer
skan

Réponses:

44

J'ai trouvé que XFS convenait mieux aux systèmes de fichiers extrêmement volumineux, pouvant contenir de nombreux fichiers volumineux. J'ai un système de fichiers XFS de 3,6 To en fonctionnement depuis plus de 2 ans sans aucun problème. Cela fonctionne certainement mieux que ext3, etc. à cette taille (surtout s’il s’agit de fichiers volumineux et de beaucoup d’E / S).

Ce que vous obtenez avec ZFS est le regroupement de périphériques, la répartition en bandes et d'autres fonctionnalités avancées intégrées au système de fichiers lui-même. Je ne peux pas parler de détails (je laisserai les autres commentaires), mais d'après ce que je peux dire, vous voudriez utiliser Solaris pour en tirer le meilleur parti. Je ne vois pas non plus à quel point ZFS peut vous aider si vous utilisez déjà un RAID matériel (comme je le suis).

Mark Renouf
la source
33
La fonctionnalité clé de ZFS que vous (généralement) n'obtenez pas ailleurs est le CRC au niveau du bloc, qui est supposé détecter (et éventuellement empêcher) la corruption de données silencieuse. La plupart des systèmes de fichiers supposent que si une écriture s'est bien déroulée, les données ont bien été écrites sur le disque. Ce n'est pas toujours le cas, surtout si un secteur commence à devenir "marginal". ZFS le détecte en comparant le CRC à l'écriture résultante.
Avery Payne
3
Et oui, j'aime beaucoup XFS. :) La seule chose à garder à l'esprit est la propension à éliminer les secteurs qui étaient "mauvais" lors de la reprise d'un journal. Dans certains cas (rares), vous pouvez vous retrouver avec une perte de données ... Trouvé ce document avec le terme de recherche Google "xfs zéros hors secteurs lors de la récupération" pages.cs.wisc.edu/~vshree/xfs.pdf
Avery Payne
3
Une des choses que j'aime chez XFS est le programme de xfs_fsr"défragmentation".
Cristian Ciupitu
1
L'utilité des CRC au niveau du bloc ZFS est discutable. Les disques durs et les disques SSD utilisent le code Hamming ECC pour corriger les erreurs sur un bit et signaler les erreurs sur deux bits. Si l'ECC ne parvient pas à corriger l'erreur de lecture physique de manière transparente, les données sont néanmoins perdues et un échec de lecture est signalé au système d'exploitation. Les CRC ne corrigent pas les erreurs. Cette fonctionnalité est considérée comme un avantage majeur de ZFS, mais la vérité est qu’elle est redondante et n’a aucune valeur. En ce qui concerne le bogue XFS zero-after-power-fail, ce problème a été corrigé il y a longtemps et n'est plus pertinent aujourd'hui.
Jody Lee Bruchon
@ JodyLeeBruchon ce que vous avez écrit est incorrect: s'il est vrai que les périphériques de stockage ont déjà un code de parité attaché aux données, cela ne signifie pas qu'ils sont capables de protéger les données de bout en bout. Pour atteindre cet objectif sans système de fichiers, vous avez besoin: a) d’une pile de stockage SAS T10 / DIF / DIX ou b) d’utiliser devicemapper dm-intégrité .
Shodanshok
75

ZFS vous donnera des avantages au-delà du logiciel RAID. La structure de commandement est très réfléchie et intuitive. Il dispose également de compression, d'instantanés, de clonage, d'envoi / réception de système de fichiers et de périphériques de cache (ces nouveaux disques SSD sophistiqués) pour accélérer l'indexation des métadonnées.

Compression:

#zfs set compression=on filesystem/home

Il prend en charge de manière simple la création d’instantanés avec copie sur écriture pouvant être montés en direct:

# zfs snapshot filesystem/home/user@tuesday
# cd filesystem/home/user/.zfs/snapshot/tuesday

Clonage du système de fichiers:

# zfs clone filesystem/home/user@tuesday filesystem/home/user2

Système de fichiers envoyer / recevoir:

# zfs send filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Envoi / réception incrémentiel:

# zfs send -i filesystem/home/user@tuesday | ssh otherserver "zfs receive -v filesystem/home/user"

Dispositifs de mise en cache:

# zpool add filesystem cache ssddev

Tout ceci n’est que la partie visible de l’iceberg. Je vous recommande vivement de vous procurer l’installation d’Open Solaris et de l’essayer.

http://www.opensolaris.org/os/TryOpenSolaris/

Edit : C’est très ancien, Open Solaris a été arrêté, la meilleure façon d’utiliser ZFS est probablement sous Linux , ou FreeBSD .


Divulgation complète: J'étais un architecte de stockage Sun, mais je n'ai pas travaillé pour eux depuis plus d'un an, je suis simplement enthousiasmé par ce produit.

Chris
la source
Ce lien n'a pas fonctionné pour moi avec www. Utilisationhttp://opensolaris.org/os/TryOpenSolaris/
Agrégat1166877
En fait, je dirais que le meilleur pari pour zfs est toujours FreeBSD. Cela fait partie du système depuis quelques années. Donc, à mon avis, il y a le moins de risques de mauvaises surprises. Bien que ce soit juste mon 0,02 $.
Fox
18

utiliser des instantanés lvm et xfs sur des systèmes de fichiers réels est une recette pour un désastre, en particulier lorsque vous utilisez des systèmes de fichiers très volumineux.

Je travaille exclusivement sur LVM2 et xfs depuis 6 ans sur mes serveurs (à la maison même si zfs-fuse est tout simplement trop lent) ...

Cependant, je ne peux plus compter les différents modes de défaillance rencontrés lors de l'utilisation d'instantanés. J'ai complètement cessé de les utiliser - c'est trop dangereux.

La seule exception que je ferai maintenant concerne mon serveur de messagerie personnel / serveur Web personnel, où je ferai des sauvegardes du jour au lendemain à l'aide d'un instantané éphémère, toujours égal à la taille du fs source, et sera immédiatement supprimé.

Les aspects les plus importants à garder à l'esprit:

  1. si vous avez un gros système de fichiers (ish) avec un instantané, les performances en écriture sont horriblement dégradées
  2. Si vous avez un système de fichiers volumineux (ish) avec un instantané, le temps de démarrage sera retardé littéralement de plusieurs dizaines de minutes, tandis que le disque sera retourné lors de l'importation du groupe de volumes. Aucun message ne sera affiché. Cet effet est particulièrement horrible si la racine est sur lvm2 (car l'attente du périphérique racine expirera et le système ne démarrera pas)
  3. si vous avez un instantané, il est très facile de manquer d'espace. Lorsque vous manquez d'espace, la capture instantanée est corrompue et ne peut pas être réparée.
  4. Les instantanés ne peuvent pas être annulés / fusionnés pour le moment (voir http://kerneltrap.org/Linux/LVM_Snapshot_Merging ). Cela signifie que le seul moyen de restaurer les données d'un instantané est de les copier (rsync?). DANGER: vous ne pas vouloir faire cela si la capacité de capture instantanée est pas au moins la taille de la source fs; Si vous ne le faites pas, vous allez bientôt toucher le mur de briques et vous retrouver avec le fs source et le snapshot corrompus. (J'ai été là!)
voir
la source
1
Comme il arrive, que quelqu'un a confirmé aujourd'hui que le vg avec instantané - pas à boot-linux est toujours d' actualité: bugs.launchpad.net/lvm2/+bug/360237
sehe
Revisiter ce bug, ils pensent encore que les problèmes de démarrage abyssales avec snaphots sont « un comportement normal pour lvm »: bugs.launchpad.net/lvm2/+bug/360237/comments/7 (sur 2012-01-07)
sehe
1
Mise à jour: même état. Seulement maintenant, cela fait 7 ans de plus.
Voir
14

Un couple de choses supplémentaires à penser.

  • Si un lecteur meurt dans une matrice RAID matérielle, quel que soit le système de fichiers utilisé, tous les blocs du périphérique doivent être reconstruits. Même ceux qui ne détiennent aucune donnée. D'autre part, ZFS est le gestionnaire de volume, le système de fichiers, et gère la redondance des données et la répartition. Ainsi, il ne peut reconstruire intelligemment que les blocs contenant des données. Cela se traduit par des temps de reconstruction plus rapides que lorsque le volume est plein à 100%.

  • ZFS effectue un nettoyage en arrière-plan qui garantit la cohérence de vos données sur le disque et répare tout problème rencontré avant que les données ne soient perdues.

  • Les systèmes de fichiers ZFS sont toujours dans un état cohérent, il n’est donc pas nécessaire de recourir à fsck.

  • ZFS offre également plus de flexibilité et de fonctionnalités avec ses instantanés et ses clones par rapport aux instantanés offerts par LVM.

Avoir exécuté des pools de stockage volumineux pour la production vidéo grand format sur une pile Linux, LVM ou XFS. D'après mon expérience, il est facile de tomber dans la micro-gestion de votre stockage. Cela peut entraîner de grandes quantités d'espace et de temps alloués non utilisés avec la gestion de vos volumes logiques. Ce n'est peut-être pas grave si vous avez un administrateur de stockage à temps plein chargé de la micro-gestion du stockage. Mais j'ai constaté que l'approche de stockage en pool de ZFS résout ces problèmes de gestion.

3fluence
la source
8

ZFS est absolument incroyable. Je l'utilise comme serveur de fichiers domestique pour un serveur de fichiers HD de 5 x 1 To. Je l'utilise également en production avec près de 32 To d'espace disque. Il est rapide, facile à utiliser et contient l'une des meilleures protections contre la corruption des données.

Nous utilisons OpenSolaris sur ce serveur en particulier parce que nous voulions avoir accès à de nouvelles fonctionnalités et qu’il fournissait le nouveau système de gestion des paquets et le moyen de mise à niveau.

X-Istence
la source
7

Quel système d'exploitation envisagez-vous d'utiliser? Ou est-ce une autre partie de la considération? Si vous utilisez Solaris, XFS n'est même pas une option à ma connaissance. Si vous n'exécutez pas Solaris, comment envisagez-vous d'utiliser ZFS? Le support est limité sur les autres plateformes.

Si vous parlez d'un serveur Linux, je garderais personnellement Ext3, ne serait-ce que parce qu'il reçoit le plus de tests. zfs-fuse est encore très jeune. De plus, j'ai eu des problèmes avec XFS une fois, lorsqu'un bogue a endommagé les données après une mise à jour du noyau. Les avantages de XFS par rapport à Ext3 ne compensaient certainement pas les coûts liés à la restauration de la machine, située dans un centre de données distant.

Kjetil Limkjær
la source
6
FreeBSD a un port natif mature de ZFS
Brian Gianforcaro le
7
wiki.freebsd.org/ZFSKnownProblems Je pense que votre définition de mature peut être différente de la mienne :-) Je le considérerais peut-être après la publication de la version 8.0.
Kjetil Limkjær
9
ext3 avec 16 To? Non non Non. Ne fais pas ça. Tu vas pleurer. ZFS ou XFS sont les meilleurs systèmes de fichiers disponibles à mon avis. Utilisez ZFS si vous le pouvez (ne l’exécutez pas sous Linux). Je dis cela avec beaucoup d'expérience sur les grands volumes sous Linux et Solaris depuis 5 ans.
Thomas
3
FreeBSD 7.2 après 20090601 a rendu la plupart des problèmes de ZFSKnownProblems discutables. Si vous exécutez la version AMD64 du système d'exploitation, il est maintenant stable. En 8.0, FreeBSD a marqué ZFS comme suffisamment stable pour la production.
Walter
3
ZFS sur Linux est disponible maintenant ( zfsonlinux.org )
James Moore
7

Je ne pense pas que vous devriez vous concentrer sur la performance. Vos données sont-elles en sécurité avec XFS, ext4, etc.? Non. Lisez ces thèses de doctorat et travaux de recherche:

XFS n’est pas protégé contre la corruption des données: pages.cs.wisc.edu/~vshree/xfs.pdf

Et ni ext3, JFS, ReiserFS, etc. de Vijayan Prabhakaran, IRON File Systems, qui analyse comment cinq systèmes de fichiers de journalisation de produits de base - NTFS, ext3, ReiserFS, JFS et XFS - traitent les problèmes de stockage.

En résumé, il a constaté que tous les systèmes de fichiers ont

. . . failure policies that are often inconsistent, sometimes buggy, and generally inadequate in their ability to recover from partial disk failures. "

Mais ZFS protège avec succès vos données. Voici un article de recherche sur ceci: zdnet.com/blog/storage/zfs-data-integrity-tested/811


la source
5

Pas une réponse orientée FS, pardon, mais sachez qu'un certain nombre de contrôleurs de disque ne gérera pas les disques LUN / logiques> 2 To. Cela peut limiter un peu la manière dont vous organisez votre stockage. Je voulais simplement que vous soyez au courant afin que vous puissiez vérifier votre système de bout en bout pour vous assurer qu'il traitera avec 16 To tout au long.

Chopper3
la source
1

Cela dépend des fonctionnalités que vous voulez ..., les deux choix raisonnables sont xfs et zfs, comme vous l'avez dit, le code xfs est assez bien testé. Je l'ai utilisé pour la première fois il y a 8 ans sous IRIX

Il est possible d’obtenir des instantanés de xfs (en utilisant lvm et xfs_freeze)

Il est possible d'avoir un périphérique de journalisation séparé, par exemple SSD

mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1

Les grands xfs ont traditionnellement besoin de beaucoup de mémoire pour vérifier

Le problème avec l'apparition de zéros était une fonction de "sécurité" qui, je pense, a disparu il y a quelque temps.

James
la source
1

Mis à part ce qui a déjà été mentionné, d’un point de vue performances, le raid de base de xfs sur MD fonctionne mieux que celui de zfs sur du contenu multimédia en continu. J'ai utilisé exactement le même matériel pendant une demi-décennie avec xfs et à peu près le même temps avec zfs sur mon serveur de médias. Sur Intel Atom 330 avec xfs, je ne rencontre jamais stuter. Sur zfs dans des scènes complexes, le même matériel ne peut pas suivre et commence à perdre des images.

utilisateur718960
la source
0

Plutôt que de construire le vôtre, une alternative est le Sun 7410, alias Toro. Il contient des logiciels très utiles fournis avec la solution.

Jauder Ho
la source
0

Eh bien les gars, n'oublions pas la dernière addition à zfs: la déduplication. Et parlons à la volée du partage iscsi, nfs ou smb. Comme d'autres l'ont déjà dit, les exportations de systèmes de fichiers zfs, d'instantanés, de la somme de contrôle du bloc raidz (= raid5), de la largeur de bande dynamique, de la gestion du cache, etc. Je vote pour zfs.

PiL
la source