Was für ein Haufen an Irrtümern hier, ich versuche mal etwas aufzuklären.
flappes schrieb:
Irgendwelche 0815 Dateiserver brauchen das bestimmt nicht. Durch Prüfsummen können in der Software Fehler abgefangen werden und notfalls eine Datei oder Fragment erneut geladen werden, die durch einen RAM-Fehler etwas falsches übermittelten.
Nein, gerade bei Fileservern bei denen man die Daten vor Korruption schützen will, ist ECC RAM extrem wichtig, wie es auch Matthew Ahrens, Mitentwickler des ZFS-Dateisystems, schreibt:
Man beachte die Reihenfolge, zuerst empfiehlt er ECC RAM und dann erst oben drauf ein Filesystem mit Prüfsummen wie ZFS zu verwenden, wenn man seine Daten liebt und vor Korruption schützen möchte! Gar einfach schon deshalb, weil die Daten erst ins RAM kommen, bevor das Filesystem seine Prüfsummen überhaupt berechnet und dann sind sie ggf. schon korrupt, während man aber glaubt, sie wären korrekt, weil das Filesystem dies ja so sieht, denn es weiß ja nicht, dass sie schon vorher durch einen RAM Fehler korrupt geworden sind. Ebenso können sie korrupt werden, nachdem sie gelesen wurden, aber bevor sie zum Zielrechner gehen.
flappes schrieb:
Das Betriebsysstem sollte zudem vor RAM-Fehlern ausreichend schützen und notfalls Programme beenden und neu starten.
Wie sollte dies denn gehen, wenn es gar nicht weiß was in den RAM Adressen stehen sollte? Da wird A geschrieben und B gelesen, nur weiß dann keiner mehr, dass dort A stehen sollte. Mit ECC RAM und dem entsprechenden System kann ein OS vom RAM Controller erfahren, wo korrigierbare RAM Fehler aufgetreten sind und wann es einen unkorrigierbaren Fehler gibt und darauf reagieren, aber ohne ist dies schlicht und ergreifend unmöglich.
flappes schrieb:
Die Programme müssen natürlich auch so gestaltet sein, dass sie genau das problemlos mitmachen. (auch mit ECC-RAM kann das passieren)
Auch hier, wie soll das gehen? Die könnten allenfalls selbst Prüfsummen über eigene Daten erstellen, aber wenn diese sich dauern ändern, dann wären der Aufwand gewaltig und die Performance grottig und dies nur um ein Problem zu vermeiden, welches im der passenden Hardware ohne Leistungsverlust auch zu verhindern ist. Wenn es also wichtig ist, dann nimmt man die passende Hardware mit ECC RAM und sonst ist es auch egal ob die Daten korrekt sind oder das Programm abstürzt. Consumer Hardware soll billig sein und es wird solange nichts gegen RAM Fehler unternommen werden, wie dies nicht zu oft passiert.
flappes schrieb:
Das erkennen moderne Betriebssysteme automatisch und markieren entsprechende Bereiche, damit diese nicht mehr genutzt werden.
Wie sollte dies ohne die passende Hardware mit ECC RAM denn möglich sein? Es ist ohne ECC RAM nicht möglich RAM Fehler als solche zu erkennen. Die Testprogramme wie Memtest86 können dies nur, weil sie bestimmte Daten ins RAM schreiben und dann beim Auslesen eben wissen, was für Daten sie zu bekommen erwarten, was aber eben bei der normalen Nutzung nicht geht.
Cool Master schrieb:
Gibt es dazu auch ein KB Artikel der das bestätigt? Wäre sehr interessant wenn es tatsächlich so wäre.
So ist es nicht. Es gibt zwar die Möglichkeit z.B. über wmic auch bei Windows auf System ohne ECC RAM auszulesen ob es RAM Fehler gab, aber da können dann ja nie welche drin stehen, wenn keine erkannt werden können, weil es kein ECC RAM gibt und damit von der Hardware gar keine Meldungen über RAM Fehler dort hinterlegt werden können. Dies verleitet dann leider viele zu der Fehlannahme es gäbe keine RAM Fehler auf ihrem System oder man können eben solche Dinge wie die von denen flappes träumt oder irgendwo gelesen hat.
Smartbomb schrieb:
bei schwebenden oder "kaputten" Sektoren einer Festplatte weiß das OS davon ja auch nichts, nur der controller der HDD speichert eben genau dort nichts mehr ab.
Stimmt das so, zB @Holt
Schwebende Sektoren sind einfach nur Sektoren deren Daten nicht mehr zur ECC passen die hinter jedem Sektor steht und die mit deren Hilfe auch nicht mehr korrigiert werden können. Da die korrekten Daten nicht mehr feststellbar sind, gibt die Platte statt falscher Daten einen Lesefehler als Antwort wenn man versucht diese schwebenden Sektoren zu lesen. Von daher weil das Betriebssystem bzw. bei HW RAID Controllern dann der Controller von dem Schwebenden Sektor und HDDs in einem echten RAID, also einem mit Redundanz (also nicht bei einem RAID 0, welches eigentlich ein AID 0 ist) zeigen daher normalerweise keine schwebenden Sektoren, weil die RAID Controller (ggf. RAID SW) bei Lesefehlern die Daten aus den Daten der anderen Platten rekonstruiert und den Sektor überschreibt bei denen der Lesefehler aufgetreten ist. Die Controller merken sich die schwebenden Sektoren und prüfen die Daten nach dem erneuten Schreiben auf diese Sektoren, dann verschwinden diese einfach oder werden eben durch Reservesektoren ersetzt, nur dann wird dort wirklich nichts mehr gespeichert.
Schwebende Sektoren können nämlich auch anderen Gründe als defekte Oberflächen haben, z.B. einen Stromausfall während eines Schreibvorgang der dazu führt, dass eben nicht die ganze Daten plus der neuen ECC geschrieben wurden oder wegen eines Stoßes oder Vibrationen ist der Kopf beim Schreiben aus der Spur gekommen und hat Daten auf der Nachbarspur überschrieben. Auch arbeiten HDDs nicht 100%ig und die Hersteller geben die Fehlerhäufigkeit auch in Form der UBER an, wobei eine UBER von 1:10^14 bedeutet, dass je 10^14 gelesener Bits was etwa 12TB gelesener Daten entspricht, ein Lesefehler und damit schwebender Sektor im Rahmen der Erwartungen liegt.
Smartbomb schrieb:
RAM testet man ja indem man von einem externen Medium zB USB stick, ein Programm startet, welches des RAM überprüft
Eben, damit man wirklich weiß welches RAM man testet, die Betriebssysteme haben nämlich eine eigene Speicherverwaltung und daher weiß der RAM Test nicht welche RAM Bereiche er wirklich testet.
Smartbomb schrieb:
Wird jetzt zB von memtest86+ fehlerhafter RAM entdeckt, was macht man dann? Richtig, gegen neuen RAM tauschen!
Oder man lässt den RAM Bereich ausblenden, nicht nur bei Linux, sondern auch bei Windows mit
bcdedit /set {badmemory} badmemorylist .... Nach dem Reboot nutzt Windows diese künftig nicht mehr und man kann auch mit RAM die defekte Bereiche haben problemlos arbeiten.
user2357 schrieb:
Die Checksumme könnte mehrfach berechnet werden, bevor sie gespeichert wird
Der Aufwand wäre so hoch, dass die Performance grottig wäre und es ist auch sinnlos etwas mit so viel Aufwand beheben zu wollen, was sich mit Hardware für recht kleines Geld auch vermeiden lässt. Kein SW-Entwickler würde sich die Mühe machen seine Software extra gegen RAM Fehler zu sichern, wenn man diese doch einfach mit ECC RAM vermeiden kann. Dies ist bei ZFS nicht anderes, ZFS soll Fehler der Platten, deren Host Controller etc. erkennen und vermeiden, ist aber für Server entwickelt worden und die haben eben ECC RAM und schützen sich mit Hardware vor RAM Fehlern, so dass es gar nicht nötig ist dies mit Software zu versuchen.