Mémoire non ECC avec ZFS: une idée stupide?

16

J'ai un nouveau serveur et je prévois de mettre à niveau les maigres 2 Go de mémoire au maximum de 16 Go. (Théoriquement, 8 Go est la limite, mais empiriquement, 16 Go ont fonctionné.) Certains guides conseillent que la mémoire ECC n'est pas si importante, mais je ne suis pas sûr de le croire.

J'ai installé FreeNAS et je prévois d'ajouter des volumes ZFS dès que mes nouveaux disques durs arriveront. Serait-il stupide de lésiner et d'obtenir de la mémoire non ECC pour un NAS basé sur ZFS? Si c'est nécessaire, je vais mordre la balle, mais si c'est juste de la paranoïa, alors je vais probablement la sauter.

Y a-t-il une raison pour laquelle ZFS ou FeeeNAS aurait spécifiquement besoin de mémoire ECC, ou souffrirait particulièrement lors de l'exécution sur un système utilisant une mémoire non ECC?

iconoclaste
la source
11
D'une manière générale, pour tout type d'application de production / serveur que vous souhaitez payer pour la RAM ECC. Les guides qui suggèrent que la mémoire ECC n'est "pas si importante" sont au mieux suspects - j'oserais dire qu'ils ont été écrits par quelqu'un qui n'a jamais eu d'erreur sur un seul bit dans un système de production.
voretaq7
1
Que feriez-vous avec un microserveur nécessitant 16 Go de RAM?
tombull89
ZFS est gourmand en RAM pour commencer, et je prévois d'installer ESXi et d'exécuter FreeNas en plus de cela. De cette façon, lorsque j'ai besoin d'un autre serveur, je crée simplement une nouvelle machine virtuelle, en évitant l'étalement des boîtes et des cordons. (S'il y a une solution domotique qui ne craint pas comme X-10, j'ai une boîte pour ça. Si je veux utiliser Git Lab pour les dépôts privés, j'ai une boîte pour ça. Etc.)
iconoclast
2
Je pense que s'il a supprimé le contexte de sa plate-forme mini-tour qui pourrait être un peu une construction folle en production, la question de savoir si ou non d'utiliser la mémoire ECC pour une installation ZFS est vraiment la partie importante.
Kent Fredric
1
Matt Ahrens, qui a cofondé ZFS en 2001, déclare :There's nothing special about ZFS that requires/encourages the use of ECC RAM more so than any other filesystem.
Janus Troelsen

Réponses:

7

Je dirais que l'exécution de FreeNAS avec de la RAM non-ECC est une idée stupide, tout comme son exécution en tant qu'invité virtualisé, lorsque les données stockées sur le volume ZFS sont importantes.

Joshua Paetzel, l'un des développeurs de FreeNAS, a un bon article sur ce sujet: http://www.freenas.org/whats-new/2015/02/a-complete-guide-to-freenas-hardware-design -part-i-purpose-and-best-practices.html .

TL; DR

ZFS fait quelque chose qu'aucun autre système de fichiers dont vous aurez à votre disposition ne fait: il additionne vos données, et il additionne les métadonnées utilisées par ZFS, et il additionne les sommes de contrôle. Si vos données sont corrompues en mémoire avant d'être écrites, ZFS se fera un plaisir d'écrire (et de vérifier la somme) les données corrompues. De plus, ZFS n'a pas de vérificateur de cohérence ou d'outil de pré-montage qui peut réparer les dommages du système de fichiers. [...] Si un module de mémoire non ECC se détraque, il peut causer des dommages irréparables à votre pool ZFS qui peuvent entraîner une perte complète du stockage.

Ronald
la source
Merci. Je suis convaincu. C'est exactement ce que je devais savoir.
iconoclaste
@iconoclast J'espère que vous n'avez pas attendu 2 ans pour cette réponse.
ewwhite
13

ZFS protège uniquement votre investissement dans les données sur le disque. Si le serveur doit être en production, vous voulez la disponibilité la plus élevée possible et ECC y contribue en permettant au serveur de tolérer une erreur ONE BIT dans la mémoire défaillante. Cela peut vous donner le temps de planifier et de remplacer la mémoire défaillante sans panique.

mdpc
la source
@iconoclast Dépend du bit retourné. S'il se trouve que ce sont des données chiffrées, ou la clé de chiffrement, alors vous venez de tout perdre ...
Michael Hampton
1
@MichaelHampton: en d'autres termes, le cryptage des données sur mon serveur augmente en fait les chances de les perdre en cas de défaillance de la mémoire.
iconoclaste du
2
@iconoclast Encryption ne remplace pas les sauvegardes. Cependant, si vous cryptez vos disques, vous devez certainement crypter également vos sauvegardes.
Michael Hampton
3
@ewwhite Le fait d'avoir une seule alimentation est un problème de disponibilité. La RAM non ECC peut affecter la disponibilité et l'intégrité . Il n'est pas difficile d'imaginer des scénarios dans lesquels l'intégrité est plus importante que la disponibilité.
Skyhawk
2
Comme je l'ai noté plus tôt. Ce serveur est livré avec la RAM ECC. Cet argument est stupide car il n'y a aucune raison d'utiliser autre chose que les kits RAM bénis par le fabricant .
ewwhite
12

La RAM ECC est une bonne chose, mais regardons le contexte ...

Pour votre utilisation prévue, un microserveur ProLiant est un serveur agréable à faible impact et à faible encombrement. Il manque certains des attributs généralement associés aux systèmes de qualité de production (seulement quatre baies de lecteur, alimentation unique, CPU plus faible). Donc, je pense que vous rencontrerez des problèmes associés à ces déficiences bien plus tôt que les effets de l'absence de RAM de correction d'erreurs. Les guides que vous avez lus sont corrects ... La RAM ECC ne sera pas si importante dans ce système particulier ...

Cela n'est pas vrai pour les systèmes de production de qualité supérieure.

J'ajouterai: Le microserveur est spécifié avec de la RAM ECC . Pourquoi ne l'utiliseriez-vous pas?

ewwhite
la source
1
Je suppose que par «qualité de production», vous entendez la qualité d'entreprise ? J'aurai cela en production (ce n'est pas pour l'AQ, l'UAT ou le développement), juste à très très petite échelle. Mais les données à ce sujet seront réelles , pas des données inutiles générées pour le développement ou clonées à partir d'un serveur de production. Ce seront de vraies données de production . (Au fait, merci pour la réponse très utile pour aider à mettre les choses en contexte!)
iconoclaste
1
@iconoclast non, la qualité de la production est toujours la qualité de la production. Le bloc d'alimentation unique n'est pas adapté à tout type de serveur qui est important à suivre, à moins que vous ne vouliez acheter un bloc d'alimentation de rechange à conserver - ce qui serait stupide car vous pouvez simplement brancher ce bloc d'alimentation de rechange et avoir le bloc d'alimentation double bla bla bla. Rester en sécurité n'est pas une "entreprise"
pauska
3
@iconoclast Les gens pensent généralement qu'un serveur de production est 24/7 et hautement disponible. Ce dernier est certainement une échelle de coûts / avantages allant du simple fait d'avoir deux blocs d'alimentation jusqu'à la redondance de niveau centre de données. Votre configuration, cependant, n'a rien de tout cela
Dan
1
Ce discours PSU est une poubelle, avec tout le respect. Mon réseau est ancré sur deux serveurs qui sont personnalisés. DNS, DHCP, Active Directory. Runnin une carte Micro-ATX dans un boîtier correspondant, 8 disques SAS + 2 SSD, contrôleur Raid, PSU SIMPLE. Vous appelleriez ça non HA? Eh bien, faites-le - j'ai toujours un HPC et une grille de virtualisation accrochés à cela comme points d'ancrage (c'est-à-dire que l'un d'eux DOIT être activé).
TomTom
2
Certaines entreprises ont des serveurs qu'elles éteignent lorsqu'elles rentrent chez elles en fin de journée!. Je ne ferais pas cela sur mon réseau domestique, mais certaines entreprises ne semblent pas vraiment se soucier / que / beaucoup de la disponibilité des ressources internes.
Kent Fredric