Ich möchte einen Storage Server (basierend auf GNU / Linux oder FreeBSD) bauen, der die ganze Zeit läuft. Um eine Beschädigung der Daten zu verhindern (was unwahrscheinlich ist, da ich noch nie ein derartiges Problem hatte, aber besser auf Nummer sicher gehen kann), möchte ich ECC-RAM verwenden.
Obwohl nicht so gut wie EDD (?) (Was viel teurer ist) und bietet zusätzlichen Schutz. ECC scheint nur Einzelbitfehler zu korrigieren.
ECC-registrierter RAM kann nur mit Workstation- / Server-Boards wie Intel Xeon oder AMD Interlagos / Magny-Cours / Valencia G34 oder C32 verwendet werden.
ECC ungepuffert ist auf Intel Xeon LGA1155 oder AMD AM3 + auf Asus-Boards verwendbar.
Die zweite Option wird auf der Prozessor- und Motherboard-Seite viel billiger sein, und ich bezweifle, dass ich mehr als 16 GB RAM benötige (4x4 GB ECC ungepuffert sind die größten erschwinglichen Sticks).
Der Zweifel, den ich habe, ist (hauptsächlich in Bezug auf Asus am3 + Board): Ist ECC-ungepuffertes RAM so gut wie ECC-registriertes RAM (aus Sicht der Sicherheit und Zuverlässigkeit)? Oder ist es eine schlechtere Wahl. Die Geschwindigkeit ist mir egal.
Weitere Details: Der Server verwendet ein Servergehäuse mit bis zu 24 x 3,5-Zoll-Laufwerken und sollte so wenig wie möglich verbrauchen. LGA1155 scheint in diesem Sinne eine bessere Wahl zu sein (TDP ~ 20-95W) als die anderen (> 80W) für den doppelten Preis. Jeder Vorschlag ist willkommen. Sagen wir weniger als 120 W im Leerlauf (~ mit 10 von 24 Festplatten).
quelle
Antworten:
Nun, wenn Sie nur 16 GB RAM verwenden - was kein Server-RAM-Bereich ist - werden Sie mit ziemlich jedem Standard-Desktop-RAM / System zurechtkommen.
Wenn es sich nur um einen Speicherserver handelt, benötigen Sie nicht einmal so viel CPU-Leistung.
Wenn Sie sich für Sandy Bridge entscheiden, erhalten Sie ein cooles, performantes und zuverlässiges System.
Apropos 16 GB RAM-Bereich, Sie müssen sich keine Gedanken über ECC-Inhalte machen.
quelle
Richtig. Um mehr Fehler zu korrigieren, wären mehr Bits erforderlich. So wie es ist, verwenden Sie bereits 10 Bits zum Speichern von 8 Bits an Informationen und verschwenden 20% der Speicherchips, um eine Einzelbitkorrektur und bis zu zwei Bits an Fehlererkennung zu ermöglichen.
Es funktioniert wie folgt. Stellen Sie sich ein
0
oder ein1
. Wenn ich auch lese, muss ich nur hoffen, dass ich das Richtige lese. Wenn eine 0 durch eine kosmische Strahlung oder durch einen schlechten Chip auf eine 1 gedreht wurde, werde ich es nie erfahren.In der Vergangenheit haben wir versucht, das mit Parität zu lösen. Die Parität fügte ein neuntes Bit pro 8 gespeicherten Bits hinzu. Wir haben überprüft, wie viele Nullen und wie viele 1 im Byte sind. Die neunte sollte eine gerade Zahl ergeben. (für gerade Parität) Wenn Sie jemals ein Byte gelesen haben und die Nummer falsch war, dann wussten Sie, dass etwas falsch war. Sie wissen jedoch nicht, welches Bit falsch war.
Das ECC hat das erweitert. Es verwendet 10 Bits und einen komplexen Algorithmus, um festzustellen, wann ein einzelnes Bit umgedreht wurde. Es weiß auch, was der ursprüngliche Wert war. Ein sehr einfacher Weg, um zu erklären, wie es funktioniert, wäre dieser:
Ersetzen Sie alle
0
s durch000
. Ersetzen Sie alle1
s durch111
.Jetzt können Sie sechs Kombinationen lesen:
000
001
010
100
101
111
Wir sind uns nie zu 100% sicher, was ursprünglich gelagert wurde. Wenn wir
000
dann lesen , könnte das genau das gewesen sein,000
was wir erwartet hatten, oder alle drei Bits könnten sich umgedreht haben. Letzteres ist sehr unwahrscheinlich. Bits kippen nicht zufällig, obwohl es passiert. Nehmen wir an, das passiert für einfache Berechnungen eins zu zehn Mal (die Realität ist viel weniger). Das ergibt folgende Chancen, den richtigen Wert zu lesen:000
-> Entweder000
(99,9% sicher) oder ein Triple Flip (1/1000 Chance)001
-> Wir wissen, dass etwas schief gelaufen ist. Aber es war auch so000
und ein Bit ist umgedreht (Chance 1:10), oder es war111
und zwei Bits sind umgedreht (Chance 1: 100). Behandeln wir es also so, als würden wir000
den Fehler lesen, aber protokollieren.010
-> wie oben100
-> wie oben011
-> Wie oben, jedoch unter der Annahme, dass es sich um eine111
101
-> Wie oben, jedoch unter der Annahme, dass es sich um eine111
110
-> Wie oben, jedoch unter der Annahme, dass es sich um eine111
111
-> Entweder111
(99,9% sicher) oder ein Triple Flip (1/1000 Chance)111
-> Entweder000
(99,9% sicher) oder ein Triple Flip (1/1000 Chance)ECCs machen ähnliche Tricks, aber effizienter. Für 8 Bits (ein Byte) werden nur 10 Bits zum Erkennen und Korrigieren verwendet.
Ich habe bereits erwähnt, was der ECC-Teil ist, jetzt der registrierte vs ungepufferte Teil.
In modernen CPUs befindet sich der Speichercontroller auf dem CPU-Chip, angefangen bei AMD Opteron-Chips und bei der Core i-Serie für Intel. Die meisten Desktop-CPUs kommunizieren dann direkt mit den DIMM-Sockeln, in denen sich der RAM befindet. Es funktioniert und es wird keine zusätzliche Logik benötigt. Das ist billig zu bauen und die Geschwindigkeit ist hoch, weil es keine Verzögerung vom Speichercontroller zum RAM gibt.
Ein Speichercontroller kann jedoch nur einen begrenzten Strom mit hohen Geschwindigkeiten treiben. Dies bedeutet, dass die Anzahl der Speichersockel, die einem Motherboard hinzugefügt werden können, begrenzt ist. (Und um es komplexer zu machen, wie viel die DIMMs verwenden können, was zu Speicherreihen führt. Ich werde das überspringen, da dies bereits lang ist).
Auf Server-Boards möchten Sie häufig mehr Speicher als auf einem Desktop-System verwenden. Daher wird dem Speicher ein "Register" -Puffer hinzugefügt. Lesevorgänge von den Chips auf dem DIMM werden zuerst in diesen Puffer kopiert. Ein Taktzyklus später verbindet sich dieser Puffer mit der Speichersteuerung, um die Daten zu übertragen.
Dieser Puffer / dieses Register verzögert Dinge und verlangsamt den Speicher. Das ist unerwünscht und wird daher nur auf Karten mit vielen Speicherbänken benötigt. Die meisten Consumer-Boards benötigen dies nicht und die meisten Consumer-CPUs unterstützen dies nicht.
Direkt verbundener, ungepufferter RAM vs. gepufferter / registrierter RAM ist kein Fall, in dem einer besser oder schlechter ist als der andere. Sie haben nur unterschiedliche Kompromisse in Bezug auf die Anzahl der Speichersteckplätze, die Sie haben können. Registrierter RAM ermöglicht mehr RAM auf Kosten einer gewissen Geschwindigkeit (und möglicherweise Kosten). In den meisten Fällen, in denen Sie so viel Speicher wie möglich benötigen, wird durch diesen zusätzlichen Speicher mehr als ausgeglichen, dass der Arbeitsspeicher etwas langsamer ausgeführt wird.
Im Hinblick auf Sicherheit und Stabilität sind ECC-ungepuffert und ECC-registriert gleich.
24 Laufwerke werden viel Strom verbrauchen. Wie viel hängt von den Laufwerken ab. Mein 140-GB-SAS-Laufwerk mit 15.000 U / min verbraucht im Leerlauf nur 10 Watt, genau wie die 1-TB-SATA-7-k2-Festplatte. Bei Benutzung ziehen beide mehr.
Multiplizieren Sie das mit 24. 24x10 Watt im Leerlauf bedeutet 240 Watt, damit die Platten nicht durchdrehen und der Luftwiderstand überwunden wird. Das ist doppelt so wichtig.
Intel ist besser bei Low-Power-CPUs, zum Zeitpunkt des Schreibens und für die von Ihnen erwähnten CPUs.
Wenn Sie sich für FreeBSD entscheiden, schauen Sie sich ZFS genau an. Es kann großartig sein. Viele seiner erweiterten Funktionen (z. B. Deduplizierung und / oder Komprimierung) verbrauchen viel CPU-Leistung und benötigen viel Arbeitsspeicher. ZFS für die grundlegende Verwendung mit ZRAID funktioniert auf beiden von Ihnen erwähnten CPU-Sätzen und mit 16 GB. Wenn Sie jedoch Funktionen wie die Deduplizierung aktivieren, sollten Sie den für Ihre Festplattenkapazität empfohlenen Speicher sorgfältig prüfen. Einige Anleitungen empfehlen bis zu 5 GB Speicherplatz pro TB .
Zwei weitere Dinge:
quelle
Zwei getrennte Fragen.
ECC gegen Nicht-ECC
Registrierte Vs ungepuffert:
quelle