Pour L2ARC et ZIL: est-il préférable d'avoir un gros SSD pour les deux ou deux petits SSD?

22

Références principales

ZFS L2ARC (Brendan Gregg) (2008-07-22) et ZFS et le concept de stockage hybride (Anatol Studler's Blog) (2008-11-11) incluent le diagramme suivant:

une vue pyramidale ZFS d'ARC, L2ARC, ZIL et un pool de stockage sur disque

Question

Dois-je interpréter la ligne blanche verticale - au niveau de la couche SSD - comme une préférence pour utiliser des SSD séparés -

  • une préférence pour ne pas mélanger L2ARC et ZIL sur un seul disque?

Contexte (réponse aux commentaires)

Personnellement, à la maison, il est peu probable que j'utilise L2ARC ou ZIL avec un ordinateur à ma disposition. (Mon ordinateur de tous les jours est un MacBookPro5,2 avec 8 Go de mémoire et un Seagate ST750LX003-1AC154 hybride. Il n'est pas prévu de remplacer le lecteur optique par un SSD.)

Ailleurs: au travail, il y aura une certaine réaffectation du kit, mais je n'ai pas de date ni de détails complets. (Xserve RAID x2 dans le mix… pour le moment, je n'imagine pas les donner à ZFS, mais je garde l'esprit ouvert.)

Ma curiosité à propos des meilleures pratiques SSD pour L2ARC et ZIL a commencé tout en suivant les discussions liées aux performances dans la zone ZEVO - en particulier le sujet mentionné ci-dessous, où un utilisateur a à la fois L2ARC et ZIL sur un seul disque.

Autres références et discussions

Captures d'écran de L2ARC (Brendan Gregg) (2009-01-30)

Captures d'écran du SLOG (Brendan Gregg) (2009-06-26)

[zfs-discuter] Sauvegarde racine ZFS / récupération "après sinistre" et déplacement du pool racine (2011-01-10) déconseille un mélange de trois choses (pool racine, ZIL et L2ARC) sur un seul disque -

… Ne vaut pas les maux de tête qui peuvent survenir en essayant de gérer les 3 sur le même disque. Par exemple, si vous décidez de réinstaller et d'altérer accidentellement le contenu du ZIL pour votre pool de données. Ne partagez pas les disques pour les composants du pool ou entre les pools pour simplifier la gestion et la récupération. …

- Je suis plus intéressé à savoir s'il est recommandé de ne pas mélanger deux de ces choses sur un seul disque.

/superuser//a/238744/84988 (2011-01-28) mentionne "cache (cache L2ARC) et journal d'écriture (ZIL) sur SSD" ( singulier ). Cependant, en ce qui concerne FUSE et Windows, je ne considère pas cette réponse comme particulièrement pertinente pour les utilisations plus courantes et axées sur les performances de ZFS.

@ChrisS a mentionné ZIL et L2ARC dans The Comms Room le 2011-08-16.

http://forums.macrumors.com/showpost.php?p=14248388 (2012-01-31) traite de plusieurs SSD:

Quelque chose que vous devez comprendre à propos de ZFS: il a deux types différents de cache, en lecture et en écriture (L2ARC et ZIL) qui sont généralement hébergés sur des SSD. Le ZIL est le cache d'écriture. C'est probablement de là que vient cette idée fausse. Le ZIL est martelé (en supposant un système actif) à chaque écriture qui se produit dans le zpool. Le problème est que l'utilisation d'un SSD basé sur mlc en tant que ZIL les fait s'user et échouer assez rapidement. Vous avez besoin d'un SSD basé sur slc (beaucoup plus cher) pour être utilisé comme un lecteur ZIL.

Avoir un zpool entièrement composé de SSD n'est pas seulement possible, mais cela fonctionne très bien. Il élimine également la nécessité de disques séparés pour le ZIL et le L2ARC. Oui, vous ne disposez pas du support TRIM, mais basé sur la nature de copie sur écriture de ZFS, c'est probablement une bonne chose.

Cela dit, ZFS ne fonctionne PAS bien avec des zpools presque complets (disons, 85% ou plus). Les performances commencent à chuter de manière significative, que vous utilisiez des supports magnétiques rotatifs ou à semi-conducteurs. Le manque de support TRIM aggraverait probablement ce problème, mais c'est déjà un problème.

/server//a/397431/91969 (2012-06-11) recommande:

  • SSD de type SLC (spécifiquement pas MLC) pour ZIL
  • SSD de type MLC pour L2ARC.

/superuser//a/451145/84988 (2012-07-19) mentionne un singulier "SSD pour ZIL et L2ARC pour accélérer ZFS".

zevo.getgreenbytes.com • Afficher le sujet - Problème de performances avec l'ordre de connexion du FW800? (2012-09-24) s'intéresse à l'ordre des choses sur un bus FireWire avec un seul SSD pour ZIL et L2ARC

  • mise à part la commande de bus, ce sujet ZEVO m'a amené à me demander si des SSD séparés pourraient être préférables.

Plus précisément: je me suis interrogé sur les interprétations de la ligne blanche dans le schéma ci-dessus…

Graham Perrin
la source
2
Il semble que ce soit davantage une question de panne de serveur. Mais vous devez prendre en compte la charge de lecture / écriture sur votre pool de stockage. Il y a des recherches qui montrent comment le raid SSD en général peut avoir des performances d'écriture considérablement inférieures à la configuration à un seul lecteur. xbitlabs.com/articles/storage/display/…
2
Ceux qui sont les plus susceptibles d'être intimement familiers avec ZFS sont plus susceptibles d'être en panne de serveur que SuperUser. Voter pour bouger, mais une excellente question.
afrazier
Je vois deux votes en cours pour clore. Pouvons-nous simplement déplacer la question? Merci @afrazier
Graham Perrin
1
Bienvenue dans Server Fault. Comme l'indique la FAQ, nous préférons des questions pratiques et fiables basées sur des problèmes spécifiques auxquels vous êtes confronté . Cela dit, vous avez passé en revue de nombreuses théories et discussions ici, mais ce qui semble manquer, c'est le problème que vous essayez de résoudre. Ajoutez les détails pratiques, et cela a l'étoffe d'une grande question.
Michael Hampton
1
Juste pour noter, les VTC sont un moyen de déplacer les réponses. Si la majorité des VTC doivent migrer vers un site, il sera déplacé. Et oui, des détails pratiques, s'il vous plaît, cela semble vraiment bien écrit et détaillé, mais sans connaître la situation dans laquelle vous vous trouvez, il est difficile d'obtenir une réponse spécifique. Vous construisez évidemment une configuration kickass ZFS, et les détails seraient utiles pour trouver la réponse.
Journeyman Geek

Réponses:

14

Réponse courte, car je ne vois pas quel problème vous cherchez à résoudre ...

Si vous le pouvez, utilisez des appareils distincts. Cela dépend de l'échelle de votre environnement ... S'il s'agit d'un simple système domestique ou d'une solution ZFS virtualisée ou tout-en-un , vous pouvez utiliser un seul appareil.

Dans les solutions ZFS plus grandes ou hautes performances, j'utilise des appareils adaptés spécifiquement à leurs rôles ZIL ou L2ARC ... Par exemple STEC ZeusRAM ou DDRDrive pour ZIL et tout SSD d'entreprise SLC ou MLC SAS pour L2ARC.

  • Les périphériques ZIL doivent être des périphériques à faible capacité et à faible latence capables de hautes IOPS. Ils sont généralement en miroir.
  • Les périphériques L2ARC doivent être à haute capacité (dans la mesure du possible: vous devez ajouter de la RAM à mesure que la taille L2ARC augmente). Ils évoluent par rayures.

Que faites-vous?

ewwhite
la source
J'ai ajouté un peu de contexte à la question. Cette réponse semble idéale - merci - je vais laisser les choses ouvertes pendant quelques jours avant d'accepter.
Graham Perrin
À des fins de liaison: une question de 2011 de @ewwhite ZFS - comment partitionner un SSD pour ZIL ou L2ARC? et dans la réponse acceptée , "... des périphériques ZIL et L2ARC dédiés par pool est la voie à suivre".
Graham Perrin
6

Il y a quelques idées fausses fondamentales sur le ZIL qui doivent être corrigées avant de continuer.

Comprenez ceci: dans des circonstances "normales", ZIL / SLOG n'est pas touché.

Il n'est écrit que lorsque des écritures synchrones sont commandées ou si sync = toujours est activé sur un pool / ensemble de données particulier ("zfs get sync pool / dataset")

ZIL n'est jamais lu dans des circonstances normales. C'est une fonction de reprise après sinistre.

IE: Le ZIL n'est là que lorsque l'alimentation est coupée. Il est utilisé pour rejouer les données qui avaient été acquittées sur le système d'exploitation avant que ces données ne soient validées dans le pool. Toutes les écritures ZFS dans le pool (synchronisation ou async) proviennent de tampons de mémoire.

Dans des circonstances normales, une fois que les données atteignent le pool, l'entrée de slog peut s'évaporer - c'est juste un gros tampon d'écriture circulaire et il n'a pas besoin d'être très grand (même 1 Go est excessif dans la plupart des circonstances)

Les écritures non synchrones sont mises en mémoire tampon dans la mémoire RAM, rassemblées et écrites sur le disque à un moment opportun. si l'alimentation est coupée, ces données sont perdues mais l'intégrité FS est maintenue (c'est pourquoi vous voudrez peut-être définir sync = toujours)

D'un autre côté, L2ARC est fortement martelé au niveau de la lecture et de l'écriture.

Il y a une telle chose comme «trop de l2arc», car les métadonnées de ce qui est dans l2arc sort de votre RAM ARC (c.-à-d., Si vous augmentez la taille de l2arc, vous devez augmenter la RAM en fonction. Si vous ne le faites pas, cela peut entraîner une grave dégradation des performances et finalement l'utilisation de l2arc se stabilisera à un certain niveau bien en dessous de "tout l'espace disponible")

Malgré les protestations de certains fabricants, vous ne pouvez pas combler un manque de mémoire en augmentant les tailles de l2arc (plusieurs fabricants de matrices de raid matériel qui se sont branchés sur des appliances ZFS ont fait cette hypothèse)

tl; dr: Si votre charge d'E / S est une activité de base de données, alors ZIL est susceptible d'être critiqué violemment. Si c'est autre chose, il est probable qu'il ne sera que légèrement touché. Il est très probable que dans 99,9% de l'activité, les fonctions ZIL ne se déclenchent jamais.

Sachant cela, vous pourrez décider si vous avez besoin d'une partition SLOG pour ZIL, si elle peut cohabiter avec la partition l2arc ou si elle a besoin d'un lecteur autonome (et quel niveau de performances ce lecteur autonome devrait être).

hermine
la source