ctuffli / smart

Application to output the SMART values of disks (mirror)
ISC License
12 stars 1 forks source link

dbg: SMART is not supported when works with smartctl #8

Open risner opened 3 years ago

risner commented 3 years ago

root@core:/home/risner # smart -i -d da3 ... dbg: protocol SCSI (specified auto) Vendor SEAGATE Device ST33000650SS ... dbg: SMART is not supported

But it works:

smartctl -d scsi -a da3

=== START OF INFORMATION SECTION === Vendor: SEAGATE Product: ST33000650SS ... Transport protocol: SAS (SPL-3) ... SMART support is: Available - device has SMART capability. SMART support is: Enabled ...

Ideas?

ctuffli commented 3 years ago

I agree, it should be supported. Can you attach the full debug output from the smart command as well as the full output from smartctl -a?

risner commented 3 years ago
# smart -d -i da3
dbg: Looking for page 0x89 (total = 16):
dbg:    [0] = 0
dbg:    [1] = 0x80
dbg:    [2] = 0x82
dbg:    [3] = 0x83
dbg:    [4] = 0x86
dbg:    [5] = 0x87
dbg:    [6] = 0x88
dbg:    [7] = 0x8a
dbg:    [8] = 0x90
dbg:    [9] = 0xb1
dbg:    [10] = 0xc0
dbg:    [11] = 0xc1
dbg:    [12] = 0xc2
dbg:    [13] = 0xc3
dbg:    [14] = 0xd1
dbg:    [15] = 0xd2
dbg: protocol SCSI (specified auto)
Vendor SEAGATE
Device ST33000650SS
Revision 0003
Serial Z295J46D00009318K2E1
dbg: SMART is not supported

# smartctl -a -d scsi da3
smartctl 7.2 2020-12-30 r5155 [FreeBSD 13.0-RELEASE-p3 amd64] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               SEAGATE
Product:              ST33000650SS
Revision:             0003
Compliance:           SPC-4
User Capacity:        3,000,592,982,016 bytes [3.00 TB]
Logical block size:   512 bytes
Rotation Rate:        7200 rpm
Form Factor:          3.5 inches
Logical Unit id:      0x5000c50055d0634f
Serial number:        Z295J46D00009318K2E1
Device type:          disk
Transport protocol:   SAS (SPL-3)
Local Time is:        Sun Aug  1 15:53:23 2021 EDT
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Enabled

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

Current Drive Temperature:     45 C
Drive Trip Temperature:        68 C

Accumulated power on time, hours:minutes 58338:19
Manufactured in week 52 of year 2012
Specified cycle count over device lifetime:  10000
Accumulated start-stop cycles:  191
Specified load-unload count over device lifetime:  300000
Accumulated load-unload cycles:  191
Elements in grown defect list: 0

Vendor (Seagate Cache) information
  Blocks sent to initiator = 62997878
  Blocks received from initiator = 1360580178
  Blocks read from cache and sent to initiator = 772659
  Number of read and write commands whose size <= segment size = 3454087
  Number of read and write commands whose size > segment size = 0

Vendor (Seagate/Hitachi) factory information
  number of hours powered up = 58338.32
  number of minutes until next internal SMART test = 40

Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:   250083426        0         0  250083426          0         32.251           0
write:         0        0         0         0          0       5097.072           0

Non-medium error count:       27

[GLTSD (Global Logging Target Save Disable) set. Enable Save with '-S on']
SMART Self-test log
Num  Test              Status                 segment  LifeTime  LBA_first_err [SK ASC ASQ]
     Description                              number   (hours)
# 1  Background short  Completed                   -   57721                 - [-   -    -]

Long (extended) Self-test duration: 27600 seconds [460.0 minutes]
risner commented 3 years ago

I agree, it should be supported. Can you attach the full debug output from the smart command as well as the full output from smartctl -a?

Anything else you need?

ctuffli commented 3 years ago

For SCSI, smart looks for the Informational Exceptions page (ID of 0x2f) to determine if the device supports SMART. Can you add the output from sg_logs?

risner commented 3 years ago

Sure. However I don’t know how to do that?

ctuffli commented 3 years ago
# pkg install sg3_utils
# sg_logs da3
risner commented 3 years ago
SEAGATE   ST33000650SS      0003

Supported log pages [0x0]: 0x00 Supported log pages [sp] 0x02 Write error [we] 0x03 Read error [re] 0x05 Verify error [ve] 0x06 Non medium [nm] 0x0d Temperature [temp] 0x0e Start-stop cycle counter [sscc] 0x10 Self test results [str] 0x15 Background scan results [bsr] 0x18 Protocol specific port [psp] 0x1a Power condition transitions [pct] 0x37 Cache (seagate) [c_se] 0x38 0x3e Factory (seagate) [f_se]

risner commented 3 years ago

Difference between working disks and non-working disks:

--- /tmp/da2    2021-08-02 19:00:12.380224000 -0400
+++ /tmp/da3    2021-08-02 19:00:08.817748000 -0400
@@ -1,4 +1,4 @@
-    SEAGATE   ST3000NM0023      0004
+    SEAGATE   ST33000650SS      0003
 Supported log pages  [0x0]:
     0x00        Supported log pages [sp]
     0x02        Write error [we]
@@ -7,12 +7,10 @@
     0x06        Non medium [nm]
     0x0d        Temperature [temp]
     0x0e        Start-stop cycle counter [sscc]
-    0x0f        Application client [ac]
     0x10        Self test results [str]
     0x15        Background scan results [bsr]
     0x18        Protocol specific port [psp]
     0x1a        Power condition transitions [pct]
-    0x2f        Informational exceptions [ie]
     0x37        Cache (seagate) [c_se]
     0x38
     0x3e        Factory (seagate) [f_se]
ctuffli commented 3 years ago

OK, so the device supports all the pages smart would read if the Informational Exceptions log page existed. If you execute the command smartctl -s on /dev/da3, does sg_logs list the Informational Exceptions page on the non-working disk?

risner commented 3 years ago

Like this?

smartctl -s on -d scsi da3

smartctl 7.2 2020-12-30 r5155 [FreeBSD 13.0-RELEASE-p3 amd64] (local build) Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF ENABLE/DISABLE COMMANDS SECTION === Informational Exceptions (SMART) enabled Temperature warning enabled

sg_logs /dev/da3

SEAGATE   ST33000650SS      0003

Supported log pages [0x0]: 0x00 Supported log pages [sp] 0x02 Write error [we] 0x03 Read error [re] 0x05 Verify error [ve] 0x06 Non medium [nm] 0x0d Temperature [temp] 0x0e Start-stop cycle counter [sscc] 0x10 Self test results [str] 0x15 Background scan results [bsr] 0x18 Protocol specific port [psp] 0x1a Power condition transitions [pct] 0x37 Cache (seagate) [c_se] 0x38 0x3e Factory (seagate) [f_se]

ctuffli commented 3 years ago

Yes, that is what I wanted you to do, but it didn't add Informational Exceptions to the list of supported log pages. I'm torn here as to how I should fix this. Let me research this a bit and get back to you.

ctuffli commented 3 years ago

I just realized that the sources on github were out of date with the development repo. I just pushed changes to bring the github version up to date. Note that the changes include support for SCSI's Informational Exceptions log page, but given the date you've provided, I don't expect smart to behave differently. That said, it'd be worth verifying this is the case if you have time.

risner commented 3 years ago

I used the one In packages. I’ll check the version tonight.

ctuffli commented 3 years ago

I pushed some experimental changes to the issue-8 branch that report whichever health log pages the device advertises. See if that gets you closer to the result you wanted. Steps would be:

git clone https://github.com/ctuffli/smart.git
cd smart
git switch issue-8
make
sudo ./smart da3