Meilleures pratiques ZFS avec RAID matériel

30

S'il arrive qu'un matériel de qualité serveur soit à votre disposition, est-il toujours conseillé d'exécuter ZFS sur un RAID1 matériel ou quelque chose du genre? Doit-on désactiver le RAID matériel et exécuter ZFS sur un mirrorou un à la raidz zpoolplace?

Avec la fonctionnalité RAID matérielle désactivée, les contrôleurs SATA2 et SAS basés sur le matériel RAID sont-ils plus ou moins susceptibles de masquer les erreurs de lecture et d'écriture que les contrôleurs non matériels RAID?

En termes de serveurs non personnalisables, si l'on se trouve dans une situation où un contrôleur RAID matériel est effectivement neutre en termes de coûts (ou même réduit le coût de l'offre de serveur pré-construite, car sa présence améliore la probabilité que la société d'hébergement fournisse IPMI complémentaire doit-elle être évitée? Mais doit-elle être recherchée?

cnst
la source
2
@ShaneMadden, les questions sont similaires, cependant, ma question vient déjà du point de vue du raid matériel étant mauvais en termes de zfs, et je demande à quel point c'est mauvais; considérez également que la réponse acceptée à votre question liée ne répond pas du tout à ma question; ma question ressemble plus à une question de suivi à la question que vous avez liée.
cnst
"ZFS au-dessus de la mise en miroir matérielle, ou simplement mettre en miroir dans ZFS?" et cette question sont deux sujets différents. Cet autre sujet a une portée plus étroite que ce sujet.
Stefan Lasiewski
@ewwhite, ne l'avez-vous pas déjà demandé?
2015
@cnst Eh bien, il n'y a pas de réponse marquée, et les gens continuent de voter pour ma réponse. Il serait donc bon qu'il y ait une clôture de la question posée. ( c'est la chose responsable à faire )
ewwhite

Réponses:

17

L'idée avec ZFS est de lui faire savoir autant que possible comment les disques se comportent. Du pire au meilleur:

  • Raid matériel (ZFS n'a absolument aucune idée du vrai matériel),
  • Mode JBOD (le problème étant plus sur tout expander potentiel: moins de bande passante),
  • Le mode HBA étant l'idéal (ZFS sait tout sur les disques)

Comme ZFS est assez paranoïaque à propos du matériel, moins il se cache, plus il peut faire face à des problèmes matériels. Et comme l'a souligné Sammitch , les configurations de contrôleur RAID et ZFS peuvent être très difficiles à restaurer ou à reconfigurer en cas d'échec (c'est-à-dire une défaillance matérielle).

À propos du problème de matériel standardisé avec un contrôleur RAID matériel, assurez-vous simplement que le contrôleur matériel a un véritable mode d'intercommunication ou JBOD.

Ouki
la source
10
Il convient également de noter que si vous utilisez HW RAID et que votre contrôleur meurt [se produit plus que vous ne le pensez] si vous ne pouvez pas obtenir un remplacement identique ou entièrement compatible, vous êtes entouré. D'un autre côté, si vous avez donné les disques bruts à ZFS, vous pouvez rebrancher ces disques dans n'importe quel contrôleur sur n'importe quelle machine et ZFS peut reconstruire la baie et continuer comme si de rien n'était.
Sammitch
1
Les serveurs haut de gamme ont généralement des contrôleurs RAID intégrés. Par exemple, je n'ai jamais eu à remplacer un contrôleur sur un système HP ou Dell.
ewwhite
2
Cette réponse ne répond à rien. Il exprime juste l'opinion biaisée, que le fournisseur du matériel serveur et le programmeur ZFS ont fait un meilleur travail que le fournisseur du contrôleur RAID et le programmeur du firmware RAID. La communauté FreeNAS est pleine de gars qui ont tué leurs Zpools avec une mémoire de serveur défectueuse ou des blocs d'alimentation inappropriés. La chance que quelque chose de grand échoue est plus élevée que quelque chose de petit.
ceving
14

Q. S'il se trouve qu'un matériel de qualité serveur est à votre disposition, est-il jamais conseillé d'exécuter ZFS sur un RAID1 matériel ou quelque chose du genre?

A. Il est fortement préférable d'exécuter ZFS directement sur le disque et de ne pas utiliser de forme RAID entre les deux. Le fait qu'un système qui nécessite effectivement l'utilisation de la carte RAID empêche ou non l'utilisation de ZFS a plus à voir avec les AUTRES avantages de ZFS qu'avec la résilience des données. À vrai dire, s'il existe une carte RAID sous-jacente chargée de fournir un seul LUN à ZFS, ZFS n'améliorera pas la résilience des données. Si votre seule raison d'utiliser ZFS est en premier lieu l'amélioration de la résilience des données, vous venez de perdre toute raison de l'utiliser. Cependant, ZFS fournit également ARC / L2ARC, la compression, les instantanés, les clones et diverses autres améliorations que vous pourriez également souhaiter, et dans ce cas, c'est peut-être toujours votre système de fichiers de choix.

Q. Doit-on désactiver le RAID matériel et exécuter ZFS sur un miroir ou un zpool raidz à la place?

R. Oui, si possible. Certaines cartes RAID autorisent le mode d'intercommunication. Si c'est le cas, c'est la chose préférable à faire.

Q. Avec la fonctionnalité RAID matériel désactivée, les contrôleurs SATA2 et SAS basés sur le matériel RAID sont-ils plus ou moins susceptibles de masquer les erreurs de lecture et d'écriture que les contrôleurs non matériels RAID?

A. Cela dépend entièrement de la carte RAID en question. Vous devrez parcourir le manuel ou contacter le fabricant / vendeur de la carte RAID pour le savoir. Certains le font beaucoup, oui, surtout si «désactiver» la fonctionnalité RAID ne la désactive pas complètement.

Q. En termes de serveurs non personnalisables, si l'on se trouve dans une situation où un contrôleur RAID matériel est effectivement neutre en termes de coûts (ou même réduit le coût de l'offre de serveur pré-construite, car sa présence améliore les chances de la société d'hébergement fournissant accès IPMI complémentaire), faut-il l'éviter? Mais doit-elle être recherchée?

R. C'est à peu près la même question que la première. Encore une fois - si votre seul désir d'utiliser ZFS est une amélioration de la résilience des données, et que votre plate-forme matérielle choisie nécessite une carte RAID fournissant un seul LUN à ZFS (ou plusieurs LUN, mais vous avez une bande ZFS sur eux), alors vous faites rien pour améliorer la résilience des données et donc votre choix de ZFS peut ne pas être approprié. Cependant, si vous trouvez l'une des autres fonctionnalités de ZFS utile, elle l'est peut-être toujours.

Je veux ajouter une préoccupation supplémentaire - les réponses ci-dessus reposent sur l'idée que l'utilisation d'une carte RAID matérielle sous ZFS ne fait rien pour nuire à ZFS au-delà de la suppression de sa capacité à améliorer la résilience des données. La vérité est qu'il s'agit plutôt d'une zone grise. Il y a divers réglages et hypothèses dans ZFS qui ne fonctionnent pas nécessairement aussi bien lorsqu'ils reçoivent des LUN à plusieurs disques au lieu de disques bruts. La plupart de cela peut être annulé avec un réglage approprié, mais hors de la boîte, vous ne serez pas aussi efficace sur ZFS au-dessus de grands LUN RAID que vous l'auriez été au-dessus de broches individuelles.

De plus, certaines preuves suggèrent que la manière très différente dont ZFS parle aux LUN par opposition aux systèmes de fichiers plus traditionnels invoque souvent des chemins de code dans le contrôleur RAID et des charges de travail auxquelles ils ne sont pas habitués, ce qui peut conduire à des bizarreries. Plus particulièrement, vous vous rendrez probablement service en désactivant la fonctionnalité ZIL entièrement sur n'importe quel pool que vous placez au-dessus d'un seul LUN si vous ne fournissez pas également un périphérique de journal distinct, bien que je vous recommande fortement Fournissez au pool un périphérique de journal brut distinct (si ce n'est pas un LUN de la carte RAID, si possible).

Nex7
la source
9

J'exécute ZFS sur les configurations RAID HP ProLiant Smart Array assez souvent.

Pourquoi?

  • Parce que j'aime ZFS pour les partitions de données, pas les partitions de démarrage.
  • Parce que le démarrage Linux et ZFS n'est probablement pas à toute épreuve pour moi en ce moment.
  • Parce que les contrôleurs RAID HP n'autorisent pas le passage des périphériques RAW . La configuration de plusieurs volumes RAID 0 n'est pas la même chose que les disques RAW.
  • Parce que les fonds de panier des serveurs ne sont généralement pas assez flexibles pour dédier des baies de disques à un contrôleur spécifique ou répartir les tâches entre deux contrôleurs. Ces jours-ci, vous voyez le plus souvent des configurations à 8 et 16 baies. Pas toujours suffisant pour segmenter la façon dont les choses devraient être.
  • Mais j'aime toujours les capacités de gestion de volume de ZFS. Le zpool me permet de découper les choses dynamiquement et de tirer le meilleur parti de l'espace disque disponible.
  • La compression, l'ARC et le L2ARC sont des fonctionnalités qui tuent!
  • Une configuration ZFS correctement conçue au-dessus du RAID matériel donne toujours de bons avertissements et alertes de panne, mais surpasse la solution uniquement matérielle.

Un exemple:

Configuration du contrôleur RAID.

[root@Hapco ~]# hpacucli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50014380233859A0)

   array B (Solid State SATA, Unused Space: 250016  MB)
      logicaldrive 3 (325.0 GB, RAID 1+0, OK)

      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)

bloquer la liste des appareils

[root@Hapco ~]# fdisk  -l /dev/sdc

Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       42261   340788223   ee  GPT

configuration de zpool

[root@Hapco ~]# zpool  list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol1   324G  84.8G   239G    26%  1.00x  ONLINE  -

détail zpool

  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:

        NAME                                      STATE     READ WRITE CKSUM
        vol1                                      ONLINE       0     0     0
          wwn-0x600508b1001cc25fb5d48e3e7c918950  ONLINE       0     0     0

liste des systèmes de fichiers zfs

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -
ewwhite
la source
Donc, en ce qui concerne la question fermée à laquelle vous avez lié, est-ce à dire que si je veux utiliser ZFS, je ferais mieux d'éviter, par exemple, Dell PERC H200 et HP P410? N'ont-ils toujours pas de moyen de désactiver le mode raid matériel, que ce soit RAID0 ou RAID1?
FCÉN
Donc, il semble que dell.com/learn/us/en/04/campaigns/dell-raid-controllers prétend que H200 "Prend en charge non RAID", bien que h18004.www1.hp.com/products/servers/proliantstorage/ … N'est pas tout à fait clair si la fonctionnalité de raid du P410 peut ou non être désactivée.
2013
@cnst Vous ne pouvez pas désactiver la fonctionnalité RAID d'un HP Smart Array P410.
ewwhite
Est-ce toujours correct? Êtes-vous en train de dire qu'il n'y a aucun danger à exécuter ZFS sur un raid matériel?
éparse
Correct. Ce n'est pas dangereux.
ewwhite
5

En règle générale, vous ne devez jamais exécuter ZFS sur des disques configurés dans une matrice RAID. Notez que ZFS n'a pas à s'exécuter en mode RAID. Vous pouvez simplement utiliser des disques individuels. Cependant, pratiquement 99% des personnes exécutent ZFS pour la partie RAID de celui-ci. Vous pouvez simplement exécuter vos disques en mode entrelacé, mais c'est une mauvaise utilisation de ZFS. Comme d'autres affiches l'ont dit, ZFS veut en savoir beaucoup sur le matériel. ZFS ne doit être connecté qu'à une carte RAID pouvant être réglée en mode JBOD, ou de préférence connectée à un HBA. Sautez sur le canal IRC Freenode #openindiana; l'un des experts ZFS du canal vous dira la même chose. Demandez à votre hébergeur de fournir le mode JBOD s'il ne donnera pas de HBA.

chris
la source
1
Oui je suis d'accord. Mais c'est aussi une question de ce qui est disponible en stock avec la configuration qui correspond à la facture et aux spécifications. Si un serveur a un excellent processeur, beaucoup de RAM ECC, une grande bande passante et beaucoup, mais doit venir avec un RAID matériel, il n'est peut-être pas rentable de rechercher des alternatives, qui peuvent être plusieurs fois plus chères, en raison d'être dans une autre catégorie ou si, ou manquant une partie de l'entreprise des fonctionnalités telles que la RAM ECC , etc.
FCÉN
2

En bref: utiliser RAID sous ZFS tue simplement l'idée d'utiliser ZFS. Pourquoi? - Parce qu'il est conçu pour fonctionner sur des disques purs, pas sur des RAID.

poige
la source
1
Pas nécessairement. Et si je me soucie plus de la flexibilité de la gestion du volume que de l'optimisation autour de l'accès brut aux périphériques physiques. ZFS fonctionne assez bien pour mon cas d'utilisation.
ewwhite
3
@ewwhite, eh bien, quelqu'un peut conduire un vélo en marchant près de lui, disant qu'il aime marcher et aimer les vélos en général, mais la vérité est que les vélos sont faits pour être utilisés. )
poige
2

Pour vous tous ... ZFS sur n'importe quel raid est une DOULEUR totale et n'est effectué que par des personnes MAD! ... comme utiliser ZFS avec une mémoire non ECC.

Avec des échantillons, vous comprendrez mieux:

  • ZFS sur Raid1, un disque a un peu changé lorsqu'il n'était pas éteint ... faites levier, vous savez, ZFS verra des dommages ou ne dépendra pas du disque lu (le contrôleur Raid n'a pas vu ce bit changé et pense que les deux disques sont OK ) ... si l'échec est dans la partie VDEV ... tout le ZPOOL perd toutes ses données pour toujours.
  • ZFS sur Raid0, un disque a un peu changé quand il n'était pas éteint ... faites levier tout ce que vous savez, (le contrôleur Raid n'a pas vu ce bit changé et pense que les deux disques sont OK) ... ZFS verra ces dommages mais si le l'échec est dans la partie VDEV ... l'ensemble du ZPOOL perd toutes ses données pour toujours.

Là où ZFS est bon, c'est en détectant les bits qui ont changé lorsque le disque était sans alimentation (les contrôleurs RAID ne peuvent pas le faire), également quand quelque chose change sans qu'on le lui demande, etc.

C'est le même problème que lorsqu'un bit dans un module RAM change spontanément sans qu'on lui demande ... si la mémoire est ECC, la mémoire se corrige d'elle-même; sinon, ces données ont changé, de sorte que les données seront envoyées aux disques modifiés; indiquez que le changement n'est pas sur la partie UDEV, si l'échec est dans la partie VDEV ... tout le ZPOOL perd toutes ses données pour toujours.

C'est une faiblesse sur ZFS ... VDEV échoue implique que toutes les données sont perdues à jamais.

Hardware Raid et Software Raid ne peuvent pas détecter les changements de bits spontanés, ils n'ont pas de somme de contrôle, pire sur les niveaux Raid1 (mirros), ils ne lisent pas toutes les parties et les comparent, ils supposent que toutes les parties auront toujours les mêmes données, TOUJOURS (je dis il bruyamment) Raid suppose que les données n'ont pas changé par autre chose / manière ... mais les disques (comme la mémoire) sont sujets à des changements de bits spontanés.

N'utilisez jamais un ZFS sur une RAM non ECC et n'utilisez jamais ZFS sur des disques attaqués, laissez ZFS voir tous les disques, n'ajoutez pas de couche qui peut ruiner votre VDEV et votre POOL.

Comment simuler un tel échec ... éteindre le PC, sortir un disque de ce Raid1 et modifier un seul bit ... reconecter et voir comment le contrôleur Raid ne peut pas savoir que cela a changé ... ZFS peut car toutes les lectures sont testées contre la somme de contrôle et s'il ne correspond pas, lisez une autre partie ... Raid ne relit plus jamais car un échec (sauf matériel impossible, la lecture échoue) ... si Raid peut lire, il pense que les données sont OK (mais ce n'est pas dans de tels cas ) ... Raid essaie seulement de lire à partir d'un autre disque si où il lit dit "hé, je ne peux pas lire à partir de là, le matériel tombe en panne" ... ZFS lit à partir d'un autre disque si la somme de contrôle ne correspond pas aussi comme si où il lit dit "hé, je ne peux pas lire à partir de là, le matériel tombe en panne".

J'espère que je le dis très clairement ... ZFS sur n'importe quel niveau de Raid est une douleur totale et un risque total pour vos données! ainsi que ZFS sur les mémoires non ECC.

Mais ce que personne ne dit (sauf moi) est:

  • N'utilisez pas de disques avec cache interne (non seulement ceux SHDD, également certains qui ont 8 Mo à 32 Mo de cache, etc.) ... certains d'entre eux utilisent de la mémoire non ECC pour ce cache
  • N'utilisez pas SATA NCQ (un moyen de mettre en file d'attente les écritures) car cela peut ruiner ZFS en cas de coupure de courant

Alors quels disques utiliser?

  • Tout disque avec batterie interne qui garantit que toute la file d'attente sera écrit sur le disque en cas de panne de courant et utilise la mémoire ECC à l'intérieur (désolé, il y en a très peu avec tout cela et coûte cher).

Mais bon, la plupart des gens ne savent pas tout cela et n'ont jamais eu de problème ... je leur dis: wow, quelle chance vous avez, achetez des billets de loterie, avant que la chance ne s'en aille.

Les risques sont là ... de telles défaillances peuvent se produire ... alors la meilleure réponse est:

  • Essayez de ne mettre aucune couche entre ZFS et où les données sont réellement stockées (RAM, Raid, NCQ, cache disque interne, etc.) ... autant que vous pouvez vous le permettre.

Que fais-je personnellement?

  • Mettez quelques couches de plus ... j'utilise chaque disque SATA III 2.500 7200 tr / min sur un boîtier USB 3.1 Gen2 type C, je connecte certains boîtiers à un concentrateur USB 3.1 Gen 2 Type A que je connecte au PC; d'autres à un autre concentrateur que je me connecte à un autre port racine sur le PC, etc.
  • Pour le système, j'utilise des connecteurs SATA internes sur un ZFS (niveau Raid0) parce que j'utilise un système Linux inmutable (comme un LiveCD), chaque démarrage démarre un contenu identique sur des disques internes ... et j'ai une image Clone du système que je peux restaurer (système inférieur à 1 Go) ... j'utilise aussi l'astuce pour avoir le système contenu dans un fichier et utiliser un lecteur mappé RAM où je le clone au démarrage, donc après le démarrage, tout le système fonctionne en RAM ... mettre ce fichier sur un DVD je peux aussi démarrer de la même manière, donc en cas de défaillance des disques internes, je démarre simplement avec le DVD et le système est à nouveau en ligne ... astuce similaire à SystemRescueCD mais un fichier ISO beacuse un peu plus complexe peut être sur le ZFS interne ou tout simplement être le vrai DVD et je ne veux pas deux versions différentes.

J'espère que je pourrais donner un peu de lumière sur ZFS contre Raid, c'est vraiment une douleur quand les choses tournent mal!

Claudio
la source
Vous dites donc que ZFS est si peu fiable que si un seul bit change, vous pouvez perdre tout le système de fichiers? Comment le SATA NCQ provoque-t-il une perte de données lorsque le lecteur avertit toujours l'hôte uniquement lorsque les secteurs ont été écrits avec succès (quoique dans un ordre peut-être différent)?
Malvineous