Probleme mit SSD an Onboard SATA (SB600)

Dalai

Grand Admiral Special
Mitglied seit
14.06.2004
Beiträge
7.420
Renomée
262
Standort
Meiningen, Thüringen
Hallo Leute :).

Wir hätten da gern mal wieder ein Problem. Beim Booten und im Betrieb erscheinen auf dem Bildschirm sowie im kern.log diverse Fehler beim Zugriff auf eine der SATA-SSDs. Wir hatten gestern auch 2x eine Kernel Panic, aber leider hat keiner darauf geachtet, ob die entsprechende Meldung auf dem Bildschirm sagt, ob das mit den SSDs in Verbindung stehen könnte.

Hardware:
Gigabyte GA-MA69G-S3H (AMD 690G mit SB600), Athlon II X4 635
4x4 GB Samsung RAM (DDR2-800 auf aktuell DDR2-667)
1x Intel SSDSC2CW120A3, 120 GB, SATA 6Gb/s
1x Samsung 860 Pro, 1TB, SATA 6Gb/s

Problematisch ist vor allem die Samsung SSD (/dev/sdb), wie die folgende Ausgabe des kern.log zeigt.

Code:
Aug 12 23:14:57 servername kernel: [   15.682720] ata3: log page 10h reported inactive tag 17
Aug 12 23:14:57 servername kernel: [   15.683597] ata3.00: exception Emask 0x1 SAct 0x7ffc0001 SErr 0x0 action 0x0
Aug 12 23:14:57 servername kernel: [   15.684463] ata3.00: irq_stat 0x40000009
Aug 12 23:14:57 servername kernel: [   15.685327] ata3.00: failed command: READ FPDMA QUEUED
Aug 12 23:14:57 servername kernel: [   15.686235] ata3.00: cmd 60/08:00:98:3b:cc/00:00:2a:00:00/40 tag 0 ncq 4096 in
Aug 12 23:14:57 servername kernel: [   15.686235]          res 40/00:00:98:3b:cc/00:00:2a:00:00/40 Emask 0x1 (device error)
Aug 12 23:14:57 servername kernel: [   15.688019] ata3.00: status: { DRDY }
[...]
Aug 12 23:14:57 servername kernel: [   15.742338] ata3.00: failed command: READ FPDMA QUEUED
Aug 12 23:14:57 servername kernel: [   15.743581] ata3.00: cmd 60/08:f0:18:1a:00/00:00:0e:00:00/40 tag 30 ncq 4096 in
Aug 12 23:14:57 servername kernel: [   15.743581]          res 40/00:00:98:3b:cc/00:00:2a:00:00/40 Emask 0x1 (device error)
Aug 12 23:14:57 servername kernel: [   15.746129] ata3.00: status: { DRDY }
Aug 12 23:14:57 servername kernel: [   15.747695] ata3.00: supports DRM functions and may not be fully accessible
Aug 12 23:14:57 servername kernel: [   15.748620] ata3.00: SB600 AHCI: limiting to 255 sectors per cmd
Aug 12 23:14:57 servername kernel: [   15.749012] ata3.00: supports DRM functions and may not be fully accessible
Aug 12 23:14:57 servername kernel: [   15.749920] ata3.00: SB600 AHCI: limiting to 255 sectors per cmd
Aug 12 23:14:57 servername kernel: [   15.749927] ata3.00: configured for UDMA/133
Aug 12 23:14:57 servername kernel: [   15.749970] sd 2:0:0:0: [sdb] tag#18 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Aug 12 23:14:57 servername kernel: [   15.749974] sd 2:0:0:0: [sdb] tag#18 Sense Key : Illegal Request [current] [descriptor]
Aug 12 23:14:57 servername kernel: [   15.749978] sd 2:0:0:0: [sdb] tag#18 Add. Sense: Unaligned write command
Aug 12 23:14:57 servername kernel: [   15.749982] sd 2:0:0:0: [sdb] tag#18 CDB: Read(10) 28 00 0e 00 1a a0 00 00 08 00
Aug 12 23:14:57 servername kernel: [   15.749984] blk_update_request: I/O error, dev sdb, sector 234887840
[...]
Aug 12 23:14:57 servername kernel: [   15.760527] sd 2:0:0:0: [sdb] tag#27 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Aug 12 23:14:57 servername kernel: [   15.760529] sd 2:0:0:0: [sdb] tag#27 Sense Key : Illegal Request [current] [descriptor]
Aug 12 23:14:57 servername kernel: [   15.760531] sd 2:0:0:0: [sdb] tag#27 Add. Sense: Unaligned write command
Aug 12 23:14:57 servername kernel: [   15.760533] sd 2:0:0:0: [sdb] tag#27 CDB: Read(10) 28 00 0e 00 1a e8 00 00 08 00
Aug 12 23:14:57 servername kernel: [   15.760534] blk_update_request: I/O error, dev sdb, sector 234887912
Aug 12 23:14:57 servername kernel: [   15.761609] ata3: EH complete
Aug 12 23:14:57 servername kernel: [   15.761660] ata3.00: Enabling discard_zeroes_data
Aug 12 23:15:03 servername kernel: [   21.260254] ata3.00: exception Emask 0x0 SAct 0x7f000 SErr 0x0 action 0x6
Aug 12 23:15:03 servername kernel: [   21.261267] ata3.00: irq_stat 0x40000008
Aug 12 23:15:03 servername kernel: [   21.262251] ata3.00: failed command: READ FPDMA QUEUED
Aug 12 23:15:03 servername kernel: [   21.263225] ata3.00: cmd 60/08:60:c8:13:80/00:00:0b:00:00/40 tag 12 ncq 4096 in
Aug 12 23:15:03 servername kernel: [   21.263225]          res 41/84:08:c8:13:80/00:00:0b:00:00/00 Emask 0x410 (ATA bus error) <F>
Aug 12 23:15:03 servername kernel: [   21.265258] ata3.00: status: { DRDY ERR }
Aug 12 23:15:03 servername kernel: [   21.266259] ata3.00: error: { ICRC ABRT }
Aug 12 23:15:03 servername kernel: [   21.267236] ata3: hard resetting link
Aug 12 23:15:03 servername kernel: [   21.755609] ata3: softreset failed (device not ready)
Aug 12 23:15:03 servername kernel: [   21.756608] ata3: applying PMP SRST workaround and retrying
Aug 12 23:15:04 servername kernel: [   21.927664] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
Aug 12 23:15:04 servername kernel: [   21.929517] ata3.00: supports DRM functions and may not be fully accessible
Aug 12 23:15:04 servername kernel: [   21.930468] ata3.00: SB600 AHCI: limiting to 255 sectors per cmd
Aug 12 23:15:04 servername kernel: [   21.930854] ata3.00: supports DRM functions and may not be fully accessible
Aug 12 23:15:04 servername kernel: [   21.931731] ata3.00: SB600 AHCI: limiting to 255 sectors per cmd
Aug 12 23:15:04 servername kernel: [   21.931740] ata3.00: configured for UDMA/133
Aug 12 23:15:04 servername kernel: [   21.931761] scsi_io_completion: 2 callbacks suppressed
Aug 12 23:15:04 servername kernel: [   21.931768] sd 2:0:0:0: [sdb] tag#12 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Aug 12 23:15:04 servername kernel: [   21.931772] sd 2:0:0:0: [sdb] tag#12 Sense Key : Aborted Command [current] [descriptor]
Aug 12 23:15:04 servername kernel: [   21.931776] sd 2:0:0:0: [sdb] tag#12 Add. Sense: Scsi parity error
Aug 12 23:15:04 servername kernel: [   21.931779] sd 2:0:0:0: [sdb] tag#12 CDB: Read(10) 28 00 0b 80 13 c8 00 00 08 00
Aug 12 23:15:04 servername kernel: [   21.931781] blk_update_request: 2 callbacks suppressed
Aug 12 23:15:04 servername kernel: [   21.931783] blk_update_request: I/O error, dev sdb, sector 192943048
Aug 12 23:15:04 servername kernel: [   21.932815] ata3: EH complete
Aug 12 23:15:04 servername kernel: [   21.932908] ata3.00: Enabling discard_zeroes_data
Aug 12 23:15:04 servername kernel: [   22.338984] ip_tables: (C) 2000-2006 Netfilter Core Team
Aug 12 23:27:53 servername kernel: [  790.945903] ata3.00: exception Emask 0x0 SAct 0x1fc SErr 0x0 action 0x6
Aug 12 23:27:53 servername kernel: [  790.946944] ata3.00: irq_stat 0x40000008
Aug 12 23:27:53 servername kernel: [  790.947960] ata3.00: failed command: WRITE FPDMA QUEUED
Aug 12 23:27:53 servername kernel: [  790.949009] ata3.00: cmd 61/60:10:00:24:d2/00:00:2a:00:00/40 tag 2 ncq 49152 out
Aug 12 23:27:53 servername kernel: [  790.949009]          res 41/84:60:00:24:d2/00:00:2a:00:00/00 Emask 0x410 (ATA bus error) <F>
Aug 12 23:27:53 servername kernel: [  790.951054] ata3.00: status: { DRDY ERR }
Aug 12 23:27:53 servername kernel: [  790.952074] ata3.00: error: { ICRC ABRT }
Aug 12 23:27:53 servername kernel: [  790.953095] ata3: hard resetting link
Aug 12 23:27:54 servername kernel: [  791.445189] ata3: softreset failed (device not ready)
Aug 12 23:27:54 servername kernel: [  791.446596] ata3: applying PMP SRST workaround and retrying
Aug 12 23:27:54 servername kernel: [  791.617253] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
Aug 12 23:27:54 servername kernel: [  791.619138] ata3.00: supports DRM functions and may not be fully accessible
Aug 12 23:27:54 servername kernel: [  791.620197] ata3.00: SB600 AHCI: limiting to 255 sectors per cmd
Aug 12 23:27:54 servername kernel: [  791.620666] ata3.00: supports DRM functions and may not be fully accessible
Aug 12 23:27:54 servername kernel: [  791.621681] ata3.00: SB600 AHCI: limiting to 255 sectors per cmd
Aug 12 23:27:54 servername kernel: [  791.621695] ata3.00: configured for UDMA/133
Aug 12 23:27:54 servername kernel: [  791.621755] ata3: EH complete
Aug 12 23:27:54 servername kernel: [  791.621896] ata3.00: Enabling discard_zeroes_data
Aug 12 23:51:08 servername kernel: [ 2186.855086] ata3.00: exception Emask 0x0 SAct 0x7fffffff SErr 0x0 action 0x6
Aug 12 23:51:08 servername kernel: [ 2186.856510] ata3.00: irq_stat 0x40000008
Aug 12 23:51:08 servername kernel: [ 2186.857923] ata3.00: failed command: WRITE FPDMA QUEUED
Aug 12 23:51:08 servername kernel: [ 2186.859363] ata3.00: cmd 61/08:a8:a0:98:cb/00:00:2a:00:00/40 tag 21 ncq 4096 out
Aug 12 23:51:08 servername kernel: [ 2186.859363]          res 41/84:08:a0:98:cb/00:00:2a:00:00/00 Emask 0x410 (ATA bus error) <F>
Aug 12 23:51:08 servername kernel: [ 2186.862180] ata3.00: status: { DRDY ERR }
Aug 12 23:51:08 servername kernel: [ 2186.863587] ata3.00: error: { ICRC ABRT }
Aug 12 23:51:08 servername kernel: [ 2186.865008] ata3: hard resetting link
Aug 12 23:51:09 servername kernel: [ 2187.354337] ata3: softreset failed (device not ready)
Aug 12 23:51:09 servername kernel: [ 2187.355788] ata3: applying PMP SRST workaround and retrying
Aug 12 23:51:09 servername kernel: [ 2187.526383] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
Aug 12 23:51:09 servername kernel: [ 2187.528282] ata3.00: supports DRM functions and may not be fully accessible
Aug 12 23:51:09 servername kernel: [ 2187.529342] ata3.00: SB600 AHCI: limiting to 255 sectors per cmd
Aug 12 23:51:09 servername kernel: [ 2187.529862] ata3.00: supports DRM functions and may not be fully accessible
Aug 12 23:51:09 servername kernel: [ 2187.530962] ata3.00: SB600 AHCI: limiting to 255 sectors per cmd
Aug 12 23:51:09 servername kernel: [ 2187.530976] ata3.00: configured for UDMA/133
Aug 12 23:51:09 servername kernel: [ 2187.531101] ata3: EH complete
Aug 12 23:51:09 servername kernel: [ 2187.531486] ata3.00: Enabling discard_zeroes_data
Die Auslassungen enthalten jeweils mehr der entsprechenden vorherigen Warnungen/Fehler.

In diesem Zusammenhang fiel auch auf, dass die SSDs teilweise mit SATA 1,5 Gb/s angesprochen werden. Manchmal betrifft das beide SSDs, aber primär wieder die Samsung:
Code:
root@servername:/# smartctl -i /dev/sda
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-4.4.0-148-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Intel 520 Series SSDs
Device Model:     INTEL SSDSC2CW120A3
[...]
Firmware Version: 400i
User Capacity:    120.033.041.920 bytes [120 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2 T13/2015-D revision 3
SATA Version is:  SATA 3.0, 3.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Fri Aug 13 16:27:18 2021 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

root@servername:/# smartctl -i /dev/sdb
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-4.4.0-148-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     Samsung SSD 860 PRO 1TB
[...]
Firmware Version: RVM02B6Q
User Capacity:    1.024.209.543.168 bytes [1,02 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   Unknown(0x09fc) (unknown minor revision code: 0x005e)
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is:    Fri Aug 13 16:27:21 2021 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Nun haben wir im Netz ermitteln können, dass die SB600 wohl einige Probleme mit SATA 3.x Geräten hat.

Fragen:
  • Kann man das irgendwie lösen bzw. umgehen, z.B. mit Bootparametern? Probiert haben wir bereits libata.force=1.5, aber die Resets tauchen dennoch auf.
  • Braucht es einen separaten SATA-Controller? Wenn ja, welche Chips sind gut geeignet für und zuverlässig beim Betrieb unter Linux: Marvel, JMicron oder ASMedia?

Grüße
Dalai
 
Zuletzt bearbeitet:
Hast mal andere Kabel genommen?
Ansonsten gibt es da wohl nicht viel was man machen kann außer nen anderen Controller kaufen.
Evtl. kann man im BIOS noch den Modus für den SATA Controller umstellen von AHCI auf was anderes. Das könnte evtl. funktionieren, muss aber nicht.

bzgl. Controller: eigentlich sollte jeder moderne Controller funktionieren der AHCI unterstützt.
Dass es welche gibt die unter Linux schlecht funktionieren ist mir nicht bekannt, aber kann man natürlich auch nie ganz ausschließen.
 
Andere Kabel haben wir noch nicht getestet, aber eines der aktuell benutzten lag die ganzen Jahre unbenutzt im Karton des eingesetzten Mainboards, insofern sollte das in Ordnung sein. Obwohl ich nicht glaube, dass es etwas ändert, werden wir das trotzdem testweise mal tauschen. Den Modus des Controllers umzustellen hatte ich verworfen, weil ich mir dachte, dass SSDs AHCI brauchen, um alle Features zur Verfügung zu haben.

Grüße
Dalai
 
Da bin ich mir nicht sicher, könnte sein, dass sowas wie TRIM dann nicht geht. Würde es einfach mal ausprobieren.
 
Ein anderes Kabel hat an dem Problem nichts geändert, auch in Kombination mit Native IDE beim SATA-Controller blieben die Resets beim Booten und im Betrieb. Seit gestern testen wir den Kernel-Parameter libata.force=noncq der die Resets bisher verschwinden ließ, und gleichzeitig ermöglicht, dass die SSDs beide auf SATA 3 Gb/s laufen (bislang) statt wie vorher immer mal wieder auf 1,5 Gb/s runtergedreht zu werden.

Leider hatten wir gestern nach ein paar Stunden Laufzeit mehrere Kernel-Oops mit Bezug zu Problemen beim Paging, und wir wissen nicht, ob das mit SATA oder dem im gleichen Atemzug auf DDR2-800 umgestellten Speicher zusammenhängt. Da Fehler beim Paging unserer Ansicht nach eher weniger im abgeschalteten NCQ sondern eher im Speicher begründet sein dürften, wurde der Speicher heute wieder zurückgestellt auf 667 und wir werden das weiter beobachten.

Wie kann man denn prüfen, ob TRIM noch zur Verfügung steht bzw. funktioniert? Einfach fstrim -v laufen lassen? (Einen fstrim-Timer von Systemd gibt's aktuell auf dem System noch nicht, ein Upgrade erfolgt, sobald die Kiste stabil ist.)

Grüße
Dalai
 
Genau, einfach fstrim ausführen. Falls es nicht geht sollte es eine Fehlermeldung geben.
Wenn fstrim nicht geht kann das aber auch an anderen Stellen liegen.
Man kann z.B. in den Mount Optionen trim Support ein- bzw. ausschalten. Ich bin mir gerade nicht sicher, ob das für ext4 oder btrfs standardmäßig gemacht wird sobald eine SSD detektiert wird. Evtl. muss man es separat deaktivieren.
Wenn verschlüsselte Partitionen oder Laufwerke zum Einsatz kommen muss man da auch explizit Trim Support aktivieren, da es dort aus Sicherheitsgründen standardmäßig aus ist (Option dafür ist "allow-discard").
 
Seit einer Woche ist das System stabil und komplett ohne Reset-Meldungen im kern.log oder andere Auffälligkeiten, und wir hoffen, dass das so bleibt. Sieht danach aus, dass das Deaktivieren von NCQ tatsächlich hilft. TRIM wurde bisher noch nicht ausgeführt, das kommt als nächstes an die Reihe.

Grüße
Dalai
 
Abschließende Rückmeldung: das Abschalten von NCQ half wirklich, TRIM funktioniert dennoch seit Monaten einwandfrei. Danke für den Beistand :).

Grüße
Dalai
 
Zurück
Oben Unten