Linux Kernel und Samsnug SSDs = kaputt?

Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Die Blacklist im dem Sourcecode von Linux ist uralt. Der Bug mit Queued TRIM bei den Crucial wurde auch schon mit der MU02 FW behoben: "Corrected error handling NCQ Trim Commands". Von so einem Bug bei Samsung hatte ich noch nichts gehört, aber möglich wäre es natürlich. Außerdem sollte man für Server keine Consumer-SSDs wie die Samsung 840 und 850 nehmen, denen fehlt neben den Stützkondenstoren auch der interne Schutz der Datenpfade vor Datenkorruption.
 
Also, die ersten 3 Samsung SSDs sind spezielle Data Center Modelle, die anderen 840PRO und 850PRO - sind das Beste, was Samsung für client PC anbietet.
In jedem Fall dürfen die nicht einfach Datenblöcke mit Nullen füllen wenn die noch genutzt werden. Der Nachtrag vom 16.Juni weist auch darauf hin, dass queued TRIM nicht zum Einsatz kam, also nicht das Problem sein kann.
Ich bin jedenfalls sehr gespannt, was da raus kommt. Samsung hat sich wohl gemeldet und auch der Linux Dateisystem-Experte Theodore Ts’o hat sich in den Kommentaren gemeldet. Die kriegen das Problem hoffentlich gelöst.
 
Das Problem tritt wohl mit der neusten Firmwareversion von Samsung auf, die erklärt, queued trim zu unterstützen.

Nun rufen Linuxer: funktioniert nicht nach Standard, wird geblacklistet. Kauft niemals nicht etwas nicht-standardkonformes!
Und der Samsung-Support: funktioniert mit Windows einwandfrei, Linux wird nicht supported. Mal gucken, ob wir trotzdem was machen können...

Und potentielle Käufer sind ratlos.

@mibo:
das widerspricht aber dem Statement des Samsung Support:
"All we can say to users at this moment is that Linux is the only operating system that has this issue with the Queued TRIM. Linux is open source and can be modified by anyone, as such we do not support the OS."
https://bugs.launchpad.net/ubuntu/+source/fstrim/+bug/1449005

Jetzt weiss ich auch nicht, welche Consumer-SSD man heute noch kaufen kann. Alle sind entweder veraltet (Sandforce), überteuert, problembelastet (trim, powermanagement, kompatibilität) oder unterstützen wichtige Features nicht (Hardwareverschlüsselung via ATA-Security).

Universell am ehesten vielleicht noch die SanDisk X300s...?

Und nun soll mit NVMe alles noch viel komplizierter werden...
 
Zuletzt bearbeitet:
Wenn Du aufgrund der Sache eine zuverlässige Consumer SSD auch für Linux willst, nimm die Intel 730, das ist im Grunde die Endkundenversion der dort verwendeten Intel SSDs der DC S3000 Reihe. Es ist ja nicht so, dass Intel nur Sandforce SSDs für Endkunden anbietet. Aber wie der Linux Sourcecodes zeigt, gab es auch bei der Intel 510 Probleme, es gibt eben keinen Anbieter bei den alle Produkte zu 100% fehlerfrei arbeiten. Nutzt Du kein Linux, kann Dir das Thema hier sowieso egal sein. Übrigens: Lies mal die ganzen Errata der Intel CPUs, Chipsätze und Treiber, dann wunderst Du Dich auch, dass überhaupt etwas funktioniert und andere Hersteller sind da auch nicht besser, dokumentieren die Fehler nur nicht so offen. Intel hat damit auch erst nach dem FDIV Bug im Pentium angefangen.
 
Leider eignet sich die Intel 730 aber schlecht für Laptops, da ist sie im Idle zu stromdurstig.

Ein guter Idle Verbrauch, Problemlosigkeit und Hardware-Verschlüsselung liessen die Samsung 850er Serie bisher als gute Wahl für Business-Laptops erscheinen - woanders können die ihren Preis auch nur schwer rechtfertigen, denn die gute Schreibbelastbarkeit ist eher im Enterprise-segment wichtig. Ein Privatnutzer nutzt die schlicht nicht lang genug dafür...
 
@mibo:
das widerspricht aber dem Statement des Samsung Support:
"All we can say to users at this moment is that Linux is the only operating system that has this issue with the Queued TRIM. Linux is open source and can be modified by anyone, as such we do not support the OS."
https://bugs.launchpad.net/ubuntu/+source/fstrim/+bug/1449005

Ich bezog mich nur auf das verlinkte Blog. Und dort kommen "alte" kernel zum Einsatz, die noch gar kein queued TRIM können. Der Typ weist auch nochmal darauf hin, dass sie queued TRIM NICHT benutzen.

Aber im neusten Update (18.6.)steht, dass Samsung-Ingenieure in deren Datacenter kommen, um das Problem vor Ort zu "besichtigen". Schön, dass sich Samsung kümmert. Selbst wenn das Problem im Linux-Code gefunden wird...

Tja, ich interessiere mich auch für Samsungs NVM M.2 PCIe Modul. Aber, wenn ich von solchen Sachen lese... :-( Und für die M.2 OEM SSD bekäme ich dann nicht einmal nen Firmware-Update...
 
Das ist eben das Problem von OEM Hardware. Es soll aber angeblich dieses Jahr noch eine Retail M.2 PCIe NVMe SSD mit V-NAND kommen. Hoffen wir mal, dass es stimmt.
 
Ich hatte gehofft, das auf der Computex endlich die NVMe SSDs veröffentlicht werden (also von vielen Herstellern)... aber das scheint noch zu dauern :-(
Vielleicht warten die auch alle auf Windows10 weil der Win8 NVMe Treiber nicht so toll ist?
 
Samsung dürfte vermutlich in der Lage sein die Befehle die eine SSD bekommt korrekt zu protokollieren und wenn sie den TRIM Befehl falsch, z.B. erst nach dem Befel der den LBA erneut beschreibt, bekommt, dann liegt der Fehler eben nicht in der FW der SSD, die macht dann das richtige, wenn sie die gerade neu geschriebenen Daten dann auch gleich wieder löscht. Ob die Kernel Hacker diese Möglichkeiten auch haben?
 
Sehe ich das richtig, daß die Samsung 8er SSD's unter Linux wegen der Blacklist im dem Sourcecode von Linux nicht unter Linux funktionieren, oder hab ich das was falsch verstanden ?

MfG
lokal
 
Sehe ich das richtig, daß die Samsung 8er SSD's unter Linux wegen der Blacklist im dem Sourcecode von Linux nicht unter Linux funktionieren, oder hab ich das was falsch verstanden ?

MfG
lokal

Falsch. Bei den ge-blacklisteten SSDs wird queued TRIM automatisch nicht benutzt. Sonst laufen die ganz normal.

Samsung dürfte vermutlich in der Lage sein die Befehle die eine SSD bekommt korrekt zu protokollieren und wenn sie den TRIM Befehl falsch, z.B. erst nach dem Befel der den LBA erneut beschreibt, bekommt, dann liegt der Fehler eben nicht in der FW der SSD, die macht dann das richtige, wenn sie die gerade neu geschriebenen Daten dann auch gleich wieder löscht. Ob die Kernel Hacker diese Möglichkeiten auch haben?

Ich kann mir gut vorstellen, dass TRIM so komplex ist, dass wenn zwei Leute die Spezifikationen lesen, sie Dinge unterschiedlich verstehen. Wenn diese Leute dann Kernel-Entwickler bzw. Entwickler bei Samsung sind... Mal sehen, wanns von den Kernel-Entwicklern ein Statement gibt.
 
Die Frage ist seid wann die Samsungs in der Blcklist stehen und ob die Liste überhaupt korrekt ist! Der Fehler liegt laut Samsung im Code von Linux, nicht in der FW der Samsung SSDs und es soll ein Update von Samsung für Linux geben. Wenn es ganz dumm gelaufen ist, dann war vielleicht gerade der Code buggy, der für die SSD auf der Blacklist durchlaufen wird und es reicht dann eigentlich aus die Samsung 8* SSDs wieder zu entfernen.

Liest man sich die Kommentar in dem Blogeintrag durch, dann berichten da aber mehrere Leute von Problemen mit TRIM und mdadm, der Fehler dürfte also woanders in Linux liege. mdadm hat ja auch erst vor relativ kurzer Zeit überhaupt multithreading gelernt und da ist eben nicht so banal eine komplexes SW zu parallelisieren und vor allem diese dann noch zu testen und debuggen, da dort jederzeit Laufzeitbedingungen auftreten können, die man ermitteln und schon gar nicht mal einfach kaum nachstellen kann. Das fängt damit an, dass bei modernen CPUs mit ihren variablen Taktraten die hochpräzisen Timer zwischen zwei Kernen durchaus größere Abweichungen haben. Was also laut Protokoll scheinbar auf einem Kern passiert nachdem etwas anderes auf einem anderen passiert ist, kann in Wahrheit sogar vorher passiert sein!
 
Super, dass das Problem gefunden und gefixt wurde.
Interessant fände ich noch, warum Intels SSDs angeblich nicht betroffen waren. Hatte Intel einen Firmware-Fix für den Linux-Bug eingebaut???
 
Vielleicht führen die SSDs gar kein TRIM aus? Oder unterlassen TRIM wenn viel I/O stattfindet, dann ist das TRIM ja sowieso meist sinnlos. Es wird auch einen Grund haben, warum es bei Win 8 nun einen Offline TRIM in Form der Optimeirung von SSDs gibt, der genau wie fstrim bei Linux arbeitet. Das wäre bei Windows eigentlich komplett unnötig, weil auch immer Online, also sofort nach dem Löschen von Dateien und beim Formatieren getrimmt wird, da dürfte ja kein als unbelegt erkannter Cluster auch ungetrimmt geblieben sein und vom Offline TRIM wäre kein Vorteil zu erwarten. Win 7 hatte das ja noch nicht, wozu hat MS dann eingebaut?

Schon von Trimcheck habe ich ein eigenes Tool dafür geschrieben und bei einigen SSDs auch komischer Verhalten festgestellt, die haben auch nicht alle LBAs getrimmt denn mein Tool hatte alle getrimmten LBAs überprüft. Da vermute ich, dass es Situationen gibt, in denen die SSD Controller TRIM Befehl einfach mal nicht ausführen, dann wären u.U. vielleicht schon die Intel deswegen nicht betroffen.

Außerdem sind die Intel DC S3500, DC S3600 und DC S3700 nur SATA 3.0 und nicht 3.1 konform, aber die haben laut Datenblatt 0x101F im Word 222 der Identify Device Data und die unteren Bit bedeuten:
6: Supports SATA Rev 3.1
5: Supports SATA Rev 3.0
4: Supports SATA Rev 2.6
3: Supports SATA Rev 2.5
2: Supports SATA II: Extensions
1: Supports SATA 1.0a
0: Supports ATA8-APT ATA8-AST
Intel setzt nur die Bits 0,1,2,3 und 4, nicht einmal Bit 5 welches den Support der SATA 3.0 Norm kennzeichnet, die werden als von Linux nicht wie SATA 3.0 SSDs mit den Features der 3.0er Revision behandelt, auch wenn die physikalisch natürlich diese Geschwindigkeit haben und erreichen.

Also warum hat Intel das macht? Die Datenblatter sagen klar "- SATA Revision 3.0; compatible with SATA 6Gb/s, 3Gb/s and 1.5Gb/s interface rates", wieso geben die Controller aber das Bit 5 beim Wird 222 mit dem sie das auch dem OS mitteilen dann nicht als 1 aus? Das ist bei den Nachfolgern DC S3710 nicht anders. Warum gibt die SSDs sich selbst nicht als SATA 3.0 konform zu erkennen?

Dann hat bei denen Intel das Word 105 "Maximum number of 512-byte blocks of LBA Range Entries per DATA SET MANAGEMENT command" nur den Wert 4, bei Microns M500 dagegen den Wert 8.

Leider gibt es bei Samsung keinen so guten Zugang zu den Datenblättern, aber ich haben eines für die SM843T und demnach sind da die dentify Device Data Word 222: 0x107F, also auch bis 5 und 6 gesetzt für Supports SATA Rev 3.0 und Supports SATA Rev 3.1 und Word 105 ist 8. Der Bug wird durch das Überschreiben eines Pointers ausgelöst, wieso lässt Intel nur 4 blocks of LBA Range Entries pro Befehl zu, womit mehr Befehle nötig sind? Intel kennt mdraids gut, die haben da sogar die Unterstützung für die Verwaltungsdaten ihrer Chipsatz-RAID eingebaut, man kann also ein Windows Intel Chipsatz RAID mit mdraid unter Linux mounten.

Wenn jetzt Intel den Bug kannte und statt ihn zu beheben die Werte der Identify Device Data seiner SSD so gewählt hat, dass er bei ihren SSDs nicht ausgelöst wird? Dann wäre der Blog genau die Werbung die Intel braucht um seine Marktführerschaft im lukrativen Enterprise SSD Segment zu behaupten, denn Broken SSDs: Samsung Working SSDs: Intel, mehr kann sich deren Werbung doch nicht wünschen und wenn es darum geht die eigene Marktstellung zu behaupten und zu stärken, ist für Intel auch noch nie ein Trick zu schmutzig gewesen, frag mal AMD. Außerdem wäre auch ohne den Blog den Leute aufgefallen, dass die Intel SSDs in diesen konfigurationen mit TRIM und mdraid problemloser laufen, sie also besser zu sein scheinen und wer will Intel jemals nachweisen, ob die den Bug kannten? Und selbst wenn, ist es ja nicht ihre Aufgaben einen Bug im Linux Kernel zu fixen und wenn sie daraus Prpfit ziehen indem sie wissen wie ihre SSDs den Bug umgehen, dann wären sie ja auch dumm den zu fixen.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh