ECC registriert vs ECC ungepuffert

15

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).

user51166
quelle
1
Wenn Sie bei SuperUser nachfragen, erhalten Sie eine Antwort von SuperUser. Wenn Sie bei ServerFault nachfragen, erhalten Sie eine ServerFault-Antwort. Lass dich treiben?
Chad Harrison
Die FAQ besagt, dass Hardware-Fragen zum Superuser gestellt werden können ...
user51166
@hydroparadise Überprüfen Sie die FAQ - wir erlauben alle Hardware-Fragen.
Simon Sheehan
Sry, ich dachte, das wurde angenommen. Erwähnt wurde nur, dass es auf OS-Seite unterschiedliche Überlegungen geben könnte, wie ECC angesprochen wird, da dies letztendlich zu einer Serveranwendung wird.
Chad Harrison
1
Kaum. In den meisten Fällen übernimmt der Chipsatz die ECC-Korrektur (falls vorhanden). Sie müssen diese überhaupt nicht vom Betriebssystem aus ansprechen. (Sie können jedoch DMI verwenden, um Informationen zu ECC- oder QPI-Fehlern abzurufen.)
Hennes

Antworten:

-2

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.

inf
quelle
Vielen Dank für Ihre schnelle Antwort. Ich denke, über 4 GB RAM bräuchten Sie ECC. Es ist sicher, dass 256 GB RAM oder eine halbe TB RAM ECC ein MUSS sind. Aber ich dachte, 16 GB waren irgendwie das Limit ... Wie auch immer, es ist merkwürdig ... eine Xeon 4C / 8T Sandybridge kostet 100 $ weniger (bei mir) als eine entsprechende Desktop-CPU. Die Gesamtkosten sind ~ gleich. Keine Nachteile für ECC hier. Sind Sie sicher, dass ECC nicht benötigt wird?
user51166
@ user51166 100% sicher. 16 GB sind heutzutage der Standard für Mid- / High-End-Rigs.
Inf
2
Die Tatsache, dass es sich um den Defacto-Standard handelt, bedeutet nicht unbedingt, dass er zuverlässig genug ist. Lesen Sie bereits über Fälle im Internet, in denen alle Daten auf der Festplatte nicht aufgrund des SATA-Controllers, sondern aufgrund des schlechten (nicht-ecc) RAM beschädigt wurden.
user51166
1
@ user51166 Sag dem Typ, der das gesagt hat, dass Nicht-ECC definitiv nicht sein Problem war.
Inf
1
"Registered ECC> Unbuffered ECC" Nein / manchmal. Nicht gepufferter / nicht registrierter ECC ist tatsächlich schneller. Gepufferter / registrierter ECC ist mindestens eine Registeraktion langsamer, aber Sie können einem Speicherkanal weitere DIMMs hinzufügen. (Und mehr Speicher KANN Ihr System schneller machen, auch wenn die Latenz steigt.) Also lieber als ein hartes "Ja / Nein" ist die richtige Antwort "es kommt darauf an".
Hennes
45

ECC scheint nur Einzelbitfehler zu korrigieren.

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 0oder ein 1. 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 0s durch 000. Ersetzen Sie alle 1s durch 111.

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 000dann lesen , könnte das genau das gewesen sein, 000was 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-> Entweder 000(99,9% sicher) oder ein Triple Flip (1/1000 Chance)

001-> Wir wissen, dass etwas schief gelaufen ist. Aber es war auch so 000 und ein Bit ist umgedreht (Chance 1:10), oder es war 111und zwei Bits sind umgedreht (Chance 1: 100). Behandeln wir es also so, als würden wir 000den Fehler lesen, aber protokollieren.

010 -> wie oben

100 -> wie oben

011 -> Wie oben, jedoch unter der Annahme, dass es sich um eine 111

101 -> Wie oben, jedoch unter der Annahme, dass es sich um eine 111

110 -> Wie oben, jedoch unter der Annahme, dass es sich um eine 111

111-> Entweder 111(99,9% sicher) oder ein Triple Flip (1/1000 Chance)

111-> Entweder 000(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.


ECC-registrierter RAM kann nur mit Workstation- / Server-Boards verwendet werden. ECC-ungepuffert ist auf Intel Xeon lga1155 oder AMD AM3 + auf Asus-Boards verwendbar.

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.

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. **

Im Hinblick auf Sicherheit und Stabilität sind ECC-ungepuffert und ECC-registriert gleich.


Weitere Details: Der Server verwendet ein Servergehäuse mit bis zu 24 x 3 ½ Zoll großen Laufwerken und sollte so wenig wie möglich verbrauchen.

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.


LGA1155 scheint in diesem Sinne eine bessere Wahl zu sein (TDP ~ 20-95W) als die anderen (> 80W) für den doppelten Preis.

Intel ist besser bei Low-Power-CPUs, zum Zeitpunkt des Schreibens und für die von Ihnen erwähnten CPUs.

Jeder Vorschlag ist willkommen. Sagen wir weniger als 120 W im Leerlauf (~ mit 10 von 24 Festplatten).

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:

  1. Ich habe nichts über das Anschließen der Laufwerke gesehen. Einige Karten können bis zu 10 SATA-Ports belegen. Aber für alles darüber benötigen Sie Add-In-Karten. Wenn Sie Hardware-RAID in Betracht ziehen, ist es möglicherweise am besten, dies von Anfang an zu planen.
  2. Laufwerksfehler: Wenn Sie SATA-Port-Multiplikatoren verwenden, überprüfen Sie sorgfältig, wie diese bei einem Ausfall eines SATA-Laufwerks funktionieren. Es ist oft nicht schön. Kein großes Problem für ein Heim-Setup, aber sehr viel nicht für Unternehmen. Möglicherweise müssen Sie berücksichtigen, wie einzelne Laufwerke auch mit Fehlern umgehen. Der Grund, warum manche Laufwerke als "NAS" oder "RAID" bezeichnet werden, ist, dass sie anders mit Fehlern umgehen als normale Laufwerke. Wenn kein RAID vorhanden ist, soll das Laufwerk so oft wie möglich erneut versuchen. Mit RAID soll das Laufwerk schnell ausfallen , damit Sie von einer anderen Kopie lesen können.
Hennes
quelle
5
Das Upvoting beantwortet tatsächlich die Frage, während das andere eher ein praktischer / anekdotischer Rat ist. Wir werden ignorieren, dass es ein bisschen schlängelt, bevor wir zum Register vs ungepufferten Teil kommen;)
ernie
1
Ja, es schlängelt sich. Ich habe versucht, gründlich zu sein, aber ich sollte wirklich kein Schriftsteller werden. (entweder von Fiktion oder von Handbüchern).
Hennes
Heh, wir werden auch ignorieren, dass ich ursprünglich aufgehört habe zu lesen, als Sie angefangen haben, Power und andere Probleme anzusprechen. . . ;)
ernie
1
Dies ist eine hervorragende Antwort, die nicht kürzer sein kann und dennoch alle Fragen so gut beantwortet. Ich habe gerade eine moderate Bearbeitung durchgeführt, die Ihren Text bereinigt und hilft, sobald er angewendet wird. Sie haben sogar Ihre Entschuldigung entfernt, zwei Zeilen zu kürzen - die akzeptierte Antwort hier war nicht sehr hilfreich. Ich habe kurz auf ZFS-Deduplizierungsprobleme und die Behandlung von Laufwerksfehlern eingegangen, während ich dort war. Beschlossen, nicht in Vibration zu geraten, obwohl dies auch bei 24 Laufwerken ein Problem sein wird.
Greg Smith
Vielen Dank für die Klärung der Gründe für die Entscheidung für RDIMM.
Mahmoud Al-Qudsi
1

Zwei getrennte Fragen.

ECC gegen Nicht-ECC

  • Verwenden Sie ECC überall dort, wo Betriebszeiten wichtig sind
  • kostet mehr - brauche (ein Vielfaches von) 9 Chips statt 8
  • Motherboard muss es unterstützen, um es zu verwenden

Registrierte Vs ungepuffert:

  • Bei registrierten DIMMs kann (viel) mehr Gesamtspeicher installiert werden
    • Geringere elektrische Belastung der Speichercontrollerschnittstelle
  • Alle installierten DIMMs müssen jedoch registriert sein oder nicht
    • muss ungepufferte DIMMS entfernen, wenn ein Upgrade auf Registered durchgeführt wird
  • Auch ist teurer und ein Zyklus langsamer zu erreichen
    • Unbuffered ist eine etwas geringere Latenz, wenn das wichtig ist
    • Alle zufälligen Zugriffe dauern ohnehin viele Zyklen
    • Beachten Sie, dass sich die absolute Zugriffslatenz (Zeit in Nanosekunden) im Vergleich zur DRAM-Nutzung in PCs nicht wesentlich verbessert hat
      • Stattdessen wurden Kosten, Kapazität und Bandbreite erheblich verbessert
      • Durch Speichercaches wird die Latenz für die meisten Speicherzugriffe ohnehin ausgeblendet
    • Längere Latenzzeiten beeinträchtigen die Leistung eines einzelnen Threads in Echtzeit am meisten
      • Normalerweise hat dies keine großen Auswirkungen auf die Anwendungsfälle von Servern
    • Kein / minimaler Unterschied in Bandbreite und Gesamtleistung
      • sequenzielle Zugriffsbandbreite nicht betroffen
      • L2 / L3-Caches bedeuten, dass die tatsächlichen Zugriffsmuster meistens die einzelnen Zeilen im Cache ersetzen. In der Regel handelt es sich also ohnehin um "Burst" -Zugriffe
RGD2
quelle