ECC enregistré vs ECC sans tampon

15

Je voudrais construire un serveur de stockage (basé sur GNU / Linux ou FreeBSD) qui sera allumé tout le temps. Pour éviter la corruption des données (ce qui est peu probable car je n'ai jamais eu un tel problème, mais mieux vaut prévenir que guérir), je voudrais utiliser la RAM ECC.

Bien qu'il ne soit pas aussi bon que l'EDD (?) (Ce qui est beaucoup plus cher) et offre une protection supplémentaire. ECC semble corriger uniquement les erreurs sur un seul bit.

La RAM enregistrée ECC n'est utilisable qu'avec des cartes de station de travail / serveur telles que Intel Xeon ou AMD interlagos / magny-cours / valence g34 ou c32.

ECC sans tampon est utilisable sur Intel Xeon lga1155 ou AMD AM3 + sur les cartes Asus.

La deuxième option sera beaucoup moins chère du côté du processeur et de la carte mère, et je doute que j'aurai besoin de plus de 16 Go de RAM (4x4 Go ECC sans tampon sont les plus gros bâtons abordables).

Le doute que j'ai est (principalement concernant la carte asus am3 +): la RAM sans tampon ECC est-elle aussi bonne que la RAM enregistrée ECC (du point de vue de la sécurité et de la fiabilité)? Ou est-ce un pire choix. Je ne me soucie pas beaucoup de la vitesse.

Plus de détails: le serveur utilisera un boîtier de serveur avec jusqu'à 24 disques 3,5 '' et devrait consommer le moins possible. Le LGA1155 semble être en ce sens un meilleur pari (TDP ~ 20-95W) par rapport aux autres (> 80W) pour le double du prix. Toute suggestion est la bienvenue. Disons moins de 120W au repos (~ avec 10 disques durs sur 24).

user51166
la source
1
Demander à SuperUser vous donnera une réponse SuperUser. Demandez sur ServerFault vous obtiendrez une réponse ServerFault. Obtenez ma dérive?
Chad Harrison
La FAQ indique que les questions matérielles peuvent être posées sur le superutilisateur ...
user51166
@hydroparadise Consultez la FAQ - nous autorisons toutes les questions sur le matériel.
Simon Sheehan
Sry, je pensais que c'était supposé. Je ne faisais que mentionner que du côté du système d'exploitation, il pourrait y avoir différentes considérations dans la façon dont ECC est traité, car cela deviendra à terme une application serveur.
Chad Harrison
1
À peine. La plupart du temps, le chipset gère la correction ECC (le cas échéant). Vous n'avez pas du tout besoin de puiser dans ceux du système d'exploitation. (Vous pouvez cependant utiliser DMI pour obtenir des informations sur les erreurs ECC ou QPI.)
Hennes

Réponses:

-2

Eh bien, si vous n'utilisez que 16 Go de RAM - ce qui n'est pas une gamme de RAM de serveur - vous serez bien avec un RAM / sys de bureau assez standard.

S'il ne s'agit que d'un serveur de stockage, vous n'aurez même pas besoin de beaucoup de performances CPU.

Comme vous l'avez dit, optez pour le pont Sandy, il vous donnera un système cool, performant et fiable.

En parlant de plages de RAM de 16 Go, vous n'avez pas à vous soucier des trucs ECC.

inf
la source
Merci pour votre réponse rapide. Je pensais qu'au-dessus de 4 Go de RAM, vous auriez besoin d'ECC. Il est sûr que pour 256 Go de RAM ou une demi-To de RAM ECC est un MUST. Mais je pensais que 16 Go était un peu la limite ... Quoi qu'il en soit, c'est étrange ... un Xeon 4C / 8T Sandybridge coûte 100 $ de moins (chez moi) qu'un processeur de bureau équivalent. Le coût total est ~ le même. Aucun inconvénient sur ECC ici. Êtes-vous sûr que l'ECC n'est pas nécessaire ???
user51166
@ user51166 100% sûr. 16 Go est comme la norme de nos jours sur les plates-formes milieu / haut de gamme.
inf
2
Le fait qu'il s'agisse de la norme de facto ne signifie pas nécessairement qu'elle est suffisamment fiable. J'ai déjà lu des cas sur Internet où toutes les données sur le disque étaient corrompues sur le disque dur non pas à cause du contrôleur SATA, mais à cause de la mauvaise RAM (non-ecc).
user51166
1
@ user51166 Dites au gars qui a dit cela, que le non-ECC n'était certainement pas son problème.
inf
1
"ECC enregistré> ECC sans tampon" Non / parfois. L'ECC sans tampon / non enregistré sera en fait plus rapide. L'ECC tamponné / enregistré sera au moins une action de registre plus lente, mais vous pouvez ajouter plus de barrettes DIMM à un canal mémoire. (Et plus de mémoire PEUT rendre votre système plus rapide, même si la latence augmente). Donc plutôt un "oui / non" dur, la bonne réponse est "ça dépend".
Hennes
45

ECC semble corriger uniquement les erreurs sur un seul bit.

Correct. Pour corriger plus d'erreurs, il faudrait plus de bits. En l'état, vous utilisez déjà 10 bits pour stocker 8 bits d'informations, «gaspillant» 20% des puces mémoire pour permettre une correction sur un seul bit et jusqu'à deux bits de détection d'erreur.

Cela fonctionne comme suit. Imaginez un 0ou un 1. Si je lis l'un ou l'autre, je dois simplement espérer avoir lu la bonne chose. Si un 0 est devenu un 1 par un rayonnement cosmique ou par une mauvaise puce, je ne le saurai jamais.

Dans le passé, nous avons essayé de résoudre ce problème avec parité. La parité ajoutait un neuvième bit par 8 bits stockés. Nous avons vérifié le nombre de zéros et le nombre de 1 dans l'octet. Le neuvième devait en faire un nombre pair. (pour une parité égale) Si vous avez déjà lu un octet et que le nombre était faux, alors vous saviez que quelque chose n'allait pas. Cependant, vous ne savez pas quel morceau était faux.

ECC a développé cela. Il utilise 10 bits et un algorithme complexe pour découvrir quand un seul bit a basculé. Il sait également quelle était la valeur d'origine. Un moyen très simple d'expliquer comment cela se fait:

Remplacez tous les 0s par 000. Remplacez tous les 1s par 111.

Vous pouvez maintenant lire six combinaisons:
000
001
010
100
101
111

Nous ne sommes jamais sûrs à 100% de ce qui a été stocké à l'origine. Si nous lisons, 000cela aurait pu être exactement ce à 000quoi nous nous attendions, ou les trois bits auraient pu basculer. Ce dernier est très improbable. Les bits ne retournent pas au hasard, bien que cela se produise. Disons que cela se produit une fois sur dix pour des calculs faciles (la réalité est beaucoup moins). Cela correspond aux chances suivantes de lire la valeur correcte:

000-> Soit 000(sûr à 99,9%), soit un triple flip (1/1000 chance)

001-> Nous savons que quelque chose a mal tourné. Mais c'était le cas 000et un bit a été renversé (1:10 chance), ou c'était le cas 111et deux bits ont été retournés (une chance de 1: 100). Alors, traitons-le comme si nous lisions 000mais enregistrions l'erreur.

010 -> Comme ci-dessus.

100 -> Comme ci-dessus.

011 -> Identique à ci-dessus, mais en supposant qu'il s'agissait d'un 111

101 -> Identique à ci-dessus, mais en supposant qu'il s'agissait d'un 111

110 -> Identique à ci-dessus, mais en supposant qu'il s'agissait d'un 111

111-> Soit 111(sûr à 99,9%), soit un triple flip (1/1000 chance)

111-> Soit 000(sûr à 99,9%), soit un triple flip (1/1000 chance)

Les ECC font des tours similaires mais le font plus efficacement. Pour 8 bits (un octet), ils n'utilisent que 10 bits pour détecter et corriger.


La RAM enregistrée ECC est utilisable uniquement avec les cartes station de travail / serveur. ECC sans tampon est utilisable sur Intel Xeon lga1155 ou AMD AM3 + sur les cartes Asus.

J'ai déjà mentionné ce qu'était la partie ECC, maintenant la partie enregistrée vs non tamponnée.

Dans les processeurs modernes, le contrôleur de mémoire est sur la puce du processeur, depuis longtemps pour les puces AMD Opteron et avec la série Core i pour Intel. La plupart des processeurs de bureau communiquent alors directement avec les sockets DIMM contenant la RAM. Cela fonctionne et aucune logique supplémentaire n'est nécessaire. C'est peu coûteux à construire et la vitesse est élevée car il n'y a pas de retard entre le contrôleur de mémoire et la RAM.

Mais un contrôleur de mémoire ne peut piloter un courant limité qu'à des vitesses élevées. Cela signifie qu'il y a une limite au nombre de sockets mémoire pouvant être ajoutés à une carte mère. (Et pour le rendre plus complexe, à combien les modules DIMM peuvent utiliser, ce qui conduit à des rangs de mémoire. Je vais sauter cela car c'est déjà long).

Sur les cartes serveur, vous souhaitez souvent utiliser plus de mémoire qu'un système de bureau. Par conséquent, un tampon "registre" est ajouté à la mémoire. Les lectures des puces du module DIMM sont d'abord copiées dans ce tampon. Un cycle d'horloge plus tard, ce tampon se connecte au contrôleur de mémoire pour transférer les données.

Ce tampon / registre retarde les choses, rendant la mémoire plus lente. C'est indésirable et donc il n'est utilisé / nécessaire que sur des cartes qui ont beaucoup de banques de mémoire. La plupart des cartes grand public n'en ont pas besoin et la plupart des processeurs grand public ne le prennent pas en charge.

RAM directement connectée et non tamponnée vs RAM tamponnée / enregistrée n'est pas un cas où l'un est meilleur ou pire que l'autre. Ils ont juste des compromis différents en termes de nombre d'emplacements de mémoire que vous pouvez avoir. La RAM enregistrée permet plus de RAM au prix d'une certaine vitesse (et éventuellement de dépenses). Dans la plupart des cas, lorsque vous avez besoin d'autant de mémoire que possible, cette mémoire supplémentaire compense largement la RAM fonctionnant à une vitesse légèrement plus lente.

Le doute que j'ai est (principalement concernant la carte asus am3 +): la RAM sans tampon ECC est-elle aussi bonne que la RAM enregistrée ECC (du point de vue de la sécurité et de la fiabilité)? Ou est-ce un pire choix. Je me fiche de la vitesse. **

Du point de vue de la sécurité et de la stabilité, ECC sans tampon et ECC enregistré sont les mêmes.


Plus de détails: le serveur utilisera un boîtier de serveur avec jusqu'à 24 disques de 3 ½ '' et devrait consommer le moins possible.

24 disques vont consommer beaucoup d'énergie. Combien dépend des lecteurs. Mon disque SAS de 140 Go à 15 000 tr / min consomme à peine 10 watts au ralenti, comme le disque 1 To SATA 7k2. À l'utilisation, les deux dessinent plus.

Multipliez cela par 24. 24 x 10 watts au ralenti signifie 240 watts juste en gardant les disques en rotation, surmontant la résistance à l'air. Doublez-le pour l'utiliser.


Le LGA1155 semble être en ce sens un meilleur pari (TDP ~ 20-95W) par rapport aux autres (> 80W) pour le double du prix.

Intel est meilleur pour les processeurs à faible consommation, au moment de la rédaction et pour les processeurs que vous avez mentionnés.

Toute suggestion est la bienvenue. Disons moins de 120W au repos (~ avec 10 disques durs sur 24).

Si vous optez pour FreeBSD, regardez attentivement ZFS. Ça peut être génial. Beaucoup de ses fonctionnalités plus avancées (par exemple la déduplication et / ou la compression) utilisent une puissance CPU importante et veulent beaucoup de mémoire. ZFS pour une utilisation de base avec ZRAID fera l'affaire sur les deux ensembles de processeurs que vous avez mentionnés et avec 16 Go, mais si vous activez des fonctionnalités telles que la déduplication, vous devez examiner attentivement la mémoire recommandée nécessaire pour la capacité de votre disque; jusqu'à 5 Go par To de stockage est recommandé par certains guides .

Deux autres choses:

  1. Je n'ai rien vu sur la connexion des disques. Certaines cartes peuvent aller jusqu'à 10 ports SATA. Mais pour tout cela, vous aurez besoin de cartes d'extension. Si vous envisagez un RAID matériel, il est préférable de planifier cela dès le début.
  2. Panne de disque : si vous utilisez des multiplicateurs de ports SATA, examinez attentivement leur comportement en cas de panne d'un disque SATA. Ce n'est souvent pas joli. Ce n'est pas un gros problème pour une installation à domicile, mais ce n'est pas du tout une entreprise. Vous devrez peut-être également considérer la façon dont les disques individuels gèrent les erreurs. La raison pour laquelle certains disques sont étiquetés comme étant à usage "NAS" ou "RAID" est qu'ils gèrent les erreurs différemment des disques ordinaires. Sans RAID, vous voulez que le disque réessaye autant de fois que possible. Avec RAID, vous voulez que le disque tombe en panne rapidement , afin que vous puissiez lire à partir d'une autre copie.
Hennes
la source
5
Le vote majoritaire car cela répond en fait à la question, tandis que l'autre est un conseil plus pratique / anecdotique. Nous ignorerons que cela serpente un peu avant d'arriver au registre vs partie non tamponnée;)
ernie
1
Oui, ça fait méandre. J'ai essayé d'être minutieux mais je ne devrais vraiment pas devenir écrivain. (soit de fiction ou de manuels).
Hennes
Hé, nous ignorerons également que j'ai à l'origine arrêté de lire lorsque vous avez commencé à aborder le pouvoir et d'autres préoccupations. . . ;)
ernie
1
C'est une excellente réponse, elle ne peut pas être plus courte et répond toujours aussi bien à toutes les questions. Je viens de faire une modification modérée qui a nettoyé votre texte et qui vous aidera une fois appliqué. Même supprimé vos excuses pour couper deux lignes - la réponse acceptée ici n'était pas très utile. J'ai développé brièvement les problèmes de déduplication ZFS et conduit la gestion des erreurs pendant que j'étais là-dedans. Décidé de ne pas entrer en vibration, même si cela va être un problème avec 24 disques également.
Greg Smith
Merci d'avoir clarifié les données enregistrées par rapport aux données non tamponnées et les raisons de choisir RDIMM.
Mahmoud Al-Qudsi
1

Deux questions distinctes.

ECC contre non ECC

  • utiliser ECC partout où la disponibilité est importante
  • coûte plus cher - besoin (multiples de) de 9 jetons au lieu de 8
  • la carte mère doit la supporter pour l'utiliser

Enregistré vs sans tampon:

  • Peut avoir (beaucoup) plus de RAM totale installée avec des modules DIMM enregistrés
    • Moins de tension électrique sur l'interface du contrôleur de mémoire
  • Mais tous les modules DIMM installés doivent être enregistrés ou non
    • doit supprimer les modules DIMM non tamponnés si la mise à niveau vers Registered
  • Est également plus cher et un cycle d'accès plus lent
    • Sans tampon est une latence légèrement inférieure, si cela compte
    • tous les accès aléatoires prennent de nombreux cycles de toute façon
    • Notez que la latence d'accès absolue (temps en nanosecondes) ne s'est pas beaucoup améliorée au cours de l'histoire de l'utilisation de la DRAM dans les PC
      • le coût, la capacité et la bande passante sont considérablement améliorés
      • les caches de mémoire masquent de toute façon la latence pour la plupart des accès à la mémoire
    • Une latence plus longue nuit le plus aux performances en temps réel d'un seul thread
      • n'affecte généralement pas beaucoup les cas d'utilisation du «serveur»
    • Pas / peu de différence de bande passante et de performances globales
      • bande passante d'accès séquentiel non affectée
      • Les caches L2 / L3 signifient que les modèles d'accès réels remplacent principalement les lignes à la fois dans le cache, donc sont généralement des accès en rafale de toute façon
RGD2
la source