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 0
ou 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 0
s par 000
. Remplacez tous les 1
s 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, 000
cela aurait pu être exactement ce à 000
quoi 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
000
et un bit a été renversé (1:10 chance), ou c'était le cas
111
et deux bits ont été retournés (une chance de 1: 100). Alors, traitons-le comme si nous lisions 000
mais 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:
- 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.
- 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.