0

Background

When I assembled one of my servers with brand new disks WD Red 3TB, I have possibly made grave error in judgement, which was to use one older and one really old SATA (wikipedia) cables. My question is essencially of hardware background with a bit of history in running under Debian 10 Linux system.


Those cables I talk about, there were 2 of them:

  • One 5+ years old, but still SATA III certified, data cable. This one IMHO could go wrong if excessively bended or something, I am not aware of any maltreatment though, so maybe shielding got better in those years(?) I'm thinking, etc.

  • I was surprised to find in the same server maybe 15+ years old SATA cable with only Serial ATA written on it, nothing else, and considering I have had smaller and bigger problems with my mdadm RAID 1 array since I have assembled this server in form of various dmesg disk I/O error messages and degrading the array in the end, I'm thinking if this single cable or possibly both of them could have caused me errors when reading and writing to the array.


Replacing cables

What I did today was to buy 2 German-made (found on stickers), possibly higher quality, SATA III certified new cables, and see what happens.


Testing

  1. I booted the server up, un-mounted the array and stopped it.

  2. Have started running these two separate reading disk commands over night:

    pv < /dev/sdX > /dev/null
    
  3. Have also started monitoring errors in dmesg and speed with nmon. After 1 hour, no single error or slowdown so far...


Question

Supposing, I wake up and there are no errors in dmesg after those HDDs are read in full, may I consider the old cables be the origin of errors, or there are things I have not considered?

I could not decide if to post here or on SuperUser. If more suited elsewhere I will re-post in the morning if a lot of such comments arrive. Thank you for your time in any case.


smartctl

WD-WCC4N6EZXNSD

smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.19.0-9-amd64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Red
Device Model:     WDC WD30EFRX-68EUZN0
Serial Number:    WD-WCC4N6EZXNSD
LU WWN Device Id: 5 0014ee 210a9a0ef
Firmware Version: 82.00A82
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2 (minor revision not indicated)
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sat Jun 20 08:47:05 2020 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (40380) seconds.
Offline data collection
capabilities:            (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    ( 405) minutes.
Conveyance self-test routine
recommended polling time:    (   5) minutes.
SCT capabilities:          (0x703d) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   179   178   021    Pre-fail  Always       -       6050
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       31
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   100   253   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       2443
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       31
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       3
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       2423
194 Temperature_Celsius     0x0022   116   109   000    Old_age   Always       -       34
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

SMART Error Log Version: 1
ATA Error Count: 2033 (device log contains only the most recent five errors)
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 2033 occurred at disk power-on lifetime: 424 hours (17 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 61 02 00 00 00 a0  Device Fault; Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 10 02 00 00 00 a0 00   2d+13:04:28.795  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 00   2d+13:04:28.794  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   2d+13:04:28.794  SET FEATURES [Set transfer mode]
  ef 10 02 00 00 00 a0 00   2d+13:04:28.794  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 00   2d+13:04:28.793  IDENTIFY DEVICE

Error 2032 occurred at disk power-on lifetime: 424 hours (17 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 61 46 00 00 00 a0  Device Fault; Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 03 46 00 00 00 a0 00   2d+13:04:28.794  SET FEATURES [Set transfer mode]
  ef 10 02 00 00 00 a0 00   2d+13:04:28.794  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 00   2d+13:04:28.793  IDENTIFY DEVICE
  c8 00 08 00 00 00 e0 00   2d+13:04:28.779  READ DMA
  ef 10 02 00 00 00 a0 00   2d+13:04:28.779  SET FEATURES [Enable SATA feature]

Error 2031 occurred at disk power-on lifetime: 424 hours (17 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 61 02 00 00 00 a0  Device Fault; Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 10 02 00 00 00 a0 00   2d+13:04:28.794  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 00   2d+13:04:28.793  IDENTIFY DEVICE
  c8 00 08 00 00 00 e0 00   2d+13:04:28.779  READ DMA
  ef 10 02 00 00 00 a0 00   2d+13:04:28.779  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 00   2d+13:04:28.778  IDENTIFY DEVICE

Error 2030 occurred at disk power-on lifetime: 424 hours (17 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 61 08 00 00 00 e0  Device Fault; Error: ABRT 8 sectors at LBA = 0x00000000 = 0

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  c8 00 08 00 00 00 e0 00   2d+13:04:28.779  READ DMA
  ef 10 02 00 00 00 a0 00   2d+13:04:28.779  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 00   2d+13:04:28.778  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   2d+13:04:28.778  SET FEATURES [Set transfer mode]
  ef 10 02 00 00 00 a0 00   2d+13:04:28.778  SET FEATURES [Enable SATA feature]

Error 2029 occurred at disk power-on lifetime: 424 hours (17 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 61 02 00 00 00 a0  Device Fault; Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 10 02 00 00 00 a0 00   2d+13:04:28.779  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 00   2d+13:04:28.778  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   2d+13:04:28.778  SET FEATURES [Set transfer mode]
  ef 10 02 00 00 00 a0 00   2d+13:04:28.778  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 00   2d+13:04:28.777  IDENTIFY DEVICE

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

WD-WCC4N5EKLTNX

smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.19.0-9-amd64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Red
Device Model:     WDC WD30EFRX-68EUZN0
Serial Number:    WD-WCC4N5EKLTNX
LU WWN Device Id: 5 0014ee 2bb548051
Firmware Version: 82.00A82
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2 (minor revision not indicated)
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sat Jun 20 08:50:48 2020 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (39540) seconds.
Offline data collection
capabilities:            (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    ( 397) minutes.
Conveyance self-test routine
recommended polling time:    (   5) minutes.
SCT capabilities:          (0x703d) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   180   179   021    Pre-fail  Always       -       5975
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       32
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   100   253   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       2443
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       31
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       4
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       2443
194 Temperature_Celsius     0x0022   115   107   000    Old_age   Always       -       35
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

SMART Error Log Version: 1
ATA Error Count: 45 (device log contains only the most recent five errors)
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 45 occurred at disk power-on lifetime: 2416 hours (100 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 61 02 00 00 00 a0  Device Fault; Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 10 02 00 00 00 a0 08      04:26:20.066  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 08      04:26:20.066  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 08      04:26:20.066  SET FEATURES [Set transfer mode]
  ef 10 02 00 00 00 a0 08      04:26:20.065  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 08      04:26:20.065  IDENTIFY DEVICE

Error 44 occurred at disk power-on lifetime: 2416 hours (100 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 61 46 00 00 00 a0  Device Fault; Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 03 46 00 00 00 a0 08      04:26:20.066  SET FEATURES [Set transfer mode]
  ef 10 02 00 00 00 a0 08      04:26:20.065  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 08      04:26:20.065  IDENTIFY DEVICE
  ef 10 02 00 00 00 a0 08      04:26:20.046  SET FEATURES [Enable SATA feature]

Error 43 occurred at disk power-on lifetime: 2416 hours (100 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 61 02 00 00 00 a0  Device Fault; Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 10 02 00 00 00 a0 08      04:26:20.065  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 08      04:26:20.065  IDENTIFY DEVICE
  ef 10 02 00 00 00 a0 08      04:26:20.046  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 08      04:26:20.046  IDENTIFY DEVICE

Error 42 occurred at disk power-on lifetime: 2416 hours (100 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 61 02 00 00 00 a0  Device Fault; Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 10 02 00 00 00 a0 08      04:26:20.046  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 08      04:26:20.046  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 08      04:26:20.046  SET FEATURES [Set transfer mode]
  ef 10 02 00 00 00 a0 08      04:26:20.045  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 08      04:26:20.045  IDENTIFY DEVICE

Error 41 occurred at disk power-on lifetime: 2416 hours (100 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  04 61 46 00 00 00 a0  Device Fault; Error: ABRT

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  ef 03 46 00 00 00 a0 08      04:26:20.046  SET FEATURES [Set transfer mode]
  ef 10 02 00 00 00 a0 08      04:26:20.045  SET FEATURES [Enable SATA feature]
  ec 00 00 00 00 00 a0 08      04:26:20.045  IDENTIFY DEVICE
  ef 10 02 00 00 00 a0 08      04:26:20.030  SET FEATURES [Enable SATA feature]

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Warranty

Both of those HDDs are under warranty, so I can get them exchanged if having proof of fault.

1

The relevant SATA versions have been published 2002 (1.5G), 2005 (3.0G), and 2008 (6.0G). So your cable is from the 1.5 or 3.0 age. In theory the old cables should work with the newer, faster devices but problems with such combinations are known.

You can get the current SATA link speed with

smartctl -a /dev/sda | grep SATA

You can force the kernel to configure the links to lower speeds with the kernel parameter libata.force=1.5. If the problem disappears with the old cables and the kernel parameter then I would assume a reasonable certainty that the cable is the problem.

| improve this answer | |
1

After replacing SATA cables (notably, the SATA v1 one)

So, what actually happened after replacing both SATA cables?

  • First, as mentioned in my question, I read both drives, no error there!

  • Second, I had an idea of the errors could have been write-specific, so I made a write test!

The following image has a large resolution, feel free to click to enlarge it:

After replacing SATA cables


You can see for yourself, there are no more errors to be seen in dmesg, which makes me happy and proves my theory. At the time I assembled the server, I did not realize how old that cable was, which makes me sad. Anyhow, problem is gone for now.

| improve this answer | |
1

The only other thing I can think of is using smartctl to check if there are any problems with the hard drive. Run:

smartctl -a -x /dev/sdX

Replacing the last X with the appropriate letter and pay close attention to any unrecoverable sectors or note if the bad sectors keep increasing.

Especially if the hard drive looks like it's not failing according to the SMART report and if you notice an improvement after replacing the cables then I'd believe it's fair to say that the cables were the problem.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.