Hallo,
Georges Heinesch wrote:
[Datenfehler]
Post by Georges HeineschPost by Marcel Müllerdas kann man nicht sagen. Es könnten sogar die Cache-RAMs der Platten
sein. Nur ist der im PC verbaute Consumer-Ramsch die häufigste
Ursache. Davon sind mittlerweile auch Server zu einem gewissen Grad
betroffen, oder wer hat noch ECC-RAMs?
Also wenn man soweit gehen muss um inkonsistente Daten zu erklären, dann
kann man wohl aufhören nach den Ursachen zu suchen.
jein. Es ist schon besorgniserregend, wenn offenbar gehäuft Datenfehler
auftreten.
Post by Georges HeineschDann kann es ja
alles sein (Kabel, Stromversorgung, RAM, WLAN Störung, ...).
Nicht unbedingt. WLAN arbeitet mit Fehlerkorrektur und -erkennung. Die
Kabel haben eine Parity-Leitung (jedenfalls wenn man von den nicht
ernstzunehmenden IDE-PIO-Modi absieht), PCI ebenfalls. Interne
CPU-Caches haben meist ECC - so kann der Hersteller besser Testen.
Netzteil erzeugt bevor es einzelne Datenfehler gibt, meist gehäuft
unsystematische Abstürze, oft vorrangig im Idle-Betrieb, und
Kaltstartprobleme. Und von dem, was jetzt noch übrig bleibt, ist das RAM
die häufigste Ursache. Wohl dem der ECC-RAMs und einen Chipsatz, der das
beherrscht, hat.
Post by Georges HeineschIch dachte
hisher immer das physikalische Beschreiben sei die Hauptfehlerquelle.
Letztlich schon, aber die wird von der Platte gut kompensiert. (OK, für
WLAN gilt ungefähr dasgleiche)
Post by Georges HeineschPost by Marcel MüllerPost by Georges HeineschPost by Marcel MüllerMan kann es aber anders einstellen (Verify). Das ist natürlich lahm.
Wo einstellen? Im Betriebssystem oder der Firmware der Platte?
Soweit ich weiß geht beides.
<staune!> Ich habe Seagate und WD Platten, jedoch habe ich noch bei
keinem der Tools (aktuel, von den hersteller Websites) eine solche
Funktion entdeckt. Auch im Betriebssystem ist mir so etwas noch nicht
begegnet! Bitte um Angaben wo dies zu finden ist ... ;)
Sorry, ihr habt recht. Mir war als wäre das auf SCSI Mode Page 7. Das
sind aber nur die Parameter für das Verify. Für aktiviertes Verify muss
der Treiber statt dem Kommando WRITE (0x2A) WRITE AND VERIFY (0x2E)
senden. Für ATAPI-Devices gilt üblicherweise ähnliches.
Post by Georges HeineschPost by Marcel Müller...
Sinn ergibt das Verify aber eigentlich nur, wenn nahezu alle
Komponenten einen geeigneten Validierungsschritt durchführen. Also,
Parity bei den Kabeln, ECC beim RAM u.s.w.
Kling logisch. Ist das praktisch durchführbar?
Bei den Wesentlichen Komponenten: ja. Einige haben es ja schon (s.o.).
Der größte Engpass ist i.d.R. das RAM. Und dafür gibt es schon seit
bestimmt 15 Jahren ECC-RAMs und davor gab es schon RAMs mit Parity (im
Prinzip das gleiche, nur anders genutzt). Mein uralt 486-er hat
beispielsweise RAM mit Parity-Check. Das war damals Standard. In Zeiten
von "Geiz ist Geil" wurde das allerdings wegrationalisiert. Das hatte
neben den 10% niedrigeren Kosten den Riesenvorteil, dass nun auch leicht
defekte RAMs nicht gleich wieder zurückkamen, da der Rechner dies oft
gar nicht bemerkte, oder die Symptome derart diffus sind, dass es alles
sein kann. Mit Parity oder ECC kommt die Meldung "Parity-Error, System
halted" o.ä. - eindeutiger geht es nicht.
Wofür es keinen vernünftigen Schutz gibt ist der Chipsatz selbst und die
CPU. Defekte in der CPU äußern sich nur selten als Bitfehler, beim
Chipsatz kommt das allerdings schon vor.
Post by Georges HeineschPost by Marcel MüllerPost by Georges HeineschGenau das ist der Punkt. Wie funktioniert der?
Genau wie ggf. beim RAM: ECC Prüfsummen. Diese können bestimmte Fehler
im Gegensatz zu CRC auch korrigieren.
Hier muss man aber weiter erklären. ECC mit Rückrechnung der Daten ist
schön und gut, aber wie funktioniert das? Wird die ECC vom HDD
Controller berechnet und mitsamt den Daten auf die HDD geschrieben?
Ja.
Post by Georges HeineschIn
dem Fall bestände keine Kontrolle ob die Daten richtig geschrieben sind
da alles in einem Rutsch ohne Kontrolle geschrieben wird, ohne zu lesen.
Ebenfalls ja.
Post by Georges HeineschWenn die HDD jedoch die Daten liest und die ECC neu berechnet und mit
der geschriebenen ECC vergleicht, würde der Kontrollmechanismus greifen.
Ja, alledings hat ECC eine gewisse Redundanz. Ähnlich, wie RAID5.
Dadurch kann eine bestimmte Menge gekippter Bits korrigiert werden. Eine
größere Menge gekippter Bits kann üblicherweise zumindest erkannt
werden. Das gibt dann die berühmten defekten Sektoren.
Post by Georges HeineschWie "merkt" die HDD beim Schreiben also Fehler der Sektoren?
Gar nicht. Sie schreibt ein paar zusätzliche, redundante Informationen,
um ihre Chancen später beim Lesen zu verbessern.
Post by Georges HeineschPost by Marcel MüllerMan sollte sich von der Vorstellung trennen, das irgendein modernes
Medium überhaupt die ihm anvertraute Information mit hinreichend
großer Wahrscheinlichkeit 1:1 hält, als dass man es für irgendetwas
gebrauchen könnte. Die Fehlerkorrekturen werden ständig gebraucht (bei
CD, DVD, HDD etc.). Ohne Korrektur arbeiten Disketten und analoge
Kassetten.
...
Ack! Aber dass Festplatten solche Fehler in dem Maß produzieren ist mir
doch ziemlich neu.
Bezieht sich das jetzt auf die Fehler aus dem OP oder die per ECC
korrigierten Fehler?
Ersteres war m.E. niemals ein Fehler der HDD. Letzteres ist hal so. Es
ist einfach viel einfacher und billiger, die Daten 20% redundant zu
schreiben, als jedes einzelne Bit hinreichend sicher zu machen. 20%
größere Bits wäre dafür nämlich bei Weitem unzureichend.
Marcel