Opened 10 years ago

Closed 10 years ago

#43 closed defect (fixed)

3ware Support broken since 3ware 9.5.x Release on Windows

Reported by: sonicblue Owned by: Christian Franke
Priority: major Milestone: Release 5.39.1
Component: smartctl Version: 5.39
Keywords: 3ware Windows Cc:

Description

I have been using smartmontools / smartctl.exe since the initial 3ware Driver Release for my 9650SE-8LPML controller. For all 9.4.x Codeset releases this worked fine to fetch S.M.A.R.T. data from the disks attached to the RAID controller and also to perform self-tests.

Now, since the 9.5.x Codesets from 3ware, something seems to have changed there. smartctl.exe now does not seem to be able to fetch data correctly anymore. I have been using the device /dev/tw_cli/c0/px to access the drives, since i do not seem to have /dev/twa0, /dev/twe0 or the "-d 3ware" option on Windows.

Currently I am using Windows XP Professional x64 Edition, but the problem is reproducable in a normal 32-Bit WinXP Pro too.

For instance, when I do a simple "smartctl.exe -i /dev/tw_cli/c0/p0", what I get is this:

smartctl 5.39 2009-12-09 r2995 [i686-pc-mingw32-2003(64)-sp2] (sf-win32-5.39-1)
Copyright (C) 2002-9 by Bruce Allen, http://smartmontools.sourceforge.net

START OF INFORMATION SECTION

Device Model: Hitachi HUA722020ALA330
Serial Number: JK1131YAGBG0WV
Firmware Version: JKAOA20N
User Capacity: 2.000.398.934.016 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 3
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Tue Jan 26 10:28:34 2010 WEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Error SMART Values Read failed: Function not implemented
Smartctl: SMART Read Values failed.

Error SMART Thresholds Read failed: Function not implemented
Smartctl: SMART Read Thresholds failed.

Or, "smartctl.exe -H /dev/tw_cli/c0/p0" gives:

smartctl 5.39 2009-12-09 r2995 [i686-pc-mingw32-2003(64)-sp2] (sf-win32-5.39-1)
Copyright (C) 2002-9 by Bruce Allen, http://smartmontools.sourceforge.net

Error SMART Values Read failed: Function not implemented
Smartctl: SMART Read Values failed.

Error SMART Thresholds Read failed: Function not implemented
Smartctl: SMART Read Thresholds failed.

START OF READ SMART DATA SECTION

SMART overall-health self-assessment test result: PASSED

It seems the way tw_cli reports data has changed or something, I do not know. Also I do not know if it is ok NOT to have "/dev/twex" under Windows, but it is definitely not there. So, "/dev/tw_cli/cx/px" was the only thing that worked for me, but now it seems to be broken.

Since 3ware will probably not care about SmartMonTools? not being able to read their S.M.A.R.T. data, maybe the SmartMonTools? Devs can do something for 5.39.1 or 5.40 there (probably 5.39.1 rather than 5.40, since this is more like a small fix?).

Change History (6)

comment:1 Changed 10 years ago by Christian Franke

To access the native SMART support in the 3ware driver, use device name "/dev/sdX,N" and no "-d" option. The device name "/dev/twex" did never work on Windows. When the name "/dev/tw_cli/cx/px" is used, smartctl runs the tw_cli utility and parses its output. This was intended is a fallback solution if the native Windows driver support does not work. See "WINDOWS NT4/2000/XP/2003/Vista" section on smartctl man page.

Please provide a sample output of new "tw_cli /cx/px show all".

Did you ever test "/dev/sdX,N" ?

comment:2 in reply to:  1 ; Changed 10 years ago by sonicblue

Replying to chrfranke:

To access the native SMART support in the 3ware driver, use device name "/dev/sdX,N" and no "-d" option. The device name "/dev/twex" did never work on Windows. When the name "/dev/tw_cli/cx/px" is used, smartctl runs the tw_cli utility and parses its output. This was intended is a fallback solution if the native Windows driver support does not work. See "WINDOWS NT4/2000/XP/2003/Vista" section on smartctl man page.

Please provide a sample output of new "tw_cli /cx/px show all".

Did you ever test "/dev/sdX,N" ?

Yes, I have tried "/dev/sdX,N", but the behaviour is quite strange. Without any "-d" option it does not seem to even detect the device:

smartctl -i /dev/sdb,2
smartctl 5.39 2009-12-09 r2995 [i686-pc-mingw32-2003(64)-sp2] (sf-win32-5.39-1)
Copyright (C) 2002-9 by Bruce Allen, http://smartmontools.sourceforge.net

/dev/sdb: Unable to detect device type
Smartctl: please specify device type with the -d option.

Use smartctl -h to get a usage summary

Ok, so I do this:

smartctl -i /dev/sdb,2 -d scsi
smartctl 5.39 2009-12-09 r2995 [i686-pc-mingw32-2003(64)-sp2] (sf-win32-5.39-1)
Copyright (C) 2002-9 by Bruce Allen, http://smartmontools.sourceforge.net

Device: AMCC 9650SE-8LPML Version: 4.10
Serial number: YAGBG0WV5AD92D007945
Device type: disk
scsiModePageOffset: response length too short, resp_len=4 offset=4 bd_len=0
Local Time is: Tue Jan 26 22:05:18 2010 WEST
Device supports SMART and is Disabled
Temperature Warning Disabled or Not Supported

Obviously this is still wrong. No matter which drive/port I chose, it always shows the serial number of the drive attached to the first port on the controller (there are 8 drives attached in total).

So, "smartctl.exe -h" tells me to use "/dev/hdb,N" instead for 3ware 9000 series controllers, but no:

smartctl -i /dev/hdb,2
smartctl 5.39 2009-12-09 r2995 [i686-pc-mingw32-2003(64)-sp2] (sf-win32-5.39-1)
Copyright (C) 2002-9 by Bruce Allen, http://smartmontools.sourceforge.net


.\PhysicalDrive1: ATA driver has no SMART support
To continue, add one or more '-T permissive' options.
Smartctl open device: /dev/hdb,2 failed: Function not implemented

"/dev/hdb" seems to be the 3ware controller though, just like "/dev/sdb", see:

smartctl -i /dev/hdb -d ata
smartctl 5.39 2009-12-09 r2995 [i686-pc-mingw32-2003(64)-sp2] (sf-win32-5.39-1)
Copyright (C) 2002-9 by Bruce Allen, http://smartmontools.sourceforge.net

START OF INFORMATION SECTION

Device Model: 9650SE-8LPML
Serial Number: [No Information Found]
Firmware Version: 4.10
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 3
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Tue Jan 26 22:11:47 2010 WEST
SMART support is: Available - device has SMART capability.

Enabled status cached by OS, trying SMART RETURN STATUS cmd.

SMART support is: Enabled

So now I'm a bit lost. Well, here is the tw_cli output, running "tw_cli /c0/p0 show all":

/c0/p0 Status = OK
/c0/p0 Model = Hitachi HUA722020ALA330
/c0/p0 Firmware Version = JKAOA20N
/c0/p0 Serial = JK1131YAGBG0WV
/c0/p0 Capacity = 1.82 TB (3907029168 Blocks)
/c0/p0 Reallocated Sectors = 0
/c0/p0 Power On Hours = 82
/c0/p0 Temperature = 36 deg C
/c0/p0 Spindle Speed = 7200 RPM
/c0/p0 Link Speed Supported = 1.5 Gbps and 3.0 Gbps
/c0/p0 Link Speed = 3.0 Gbps
/c0/p0 NCQ Supported = Yes
/c0/p0 NCQ Enabled = Yes
/c0/p0 Identify Status = N/A
/c0/p0 Belongs to Unit = u0

/c0/p0 Drive SMART Data:
10 00 01 0B 00 64 64 00 00 00 00 00 00 00 02 05
00 84 84 67 00 00 00 00 00 00 03 07 00 64 64 00
00 00 00 04 00 00 04 12 00 64 64 04 00 00 00 00
00 00 05 33 00 64 64 00 00 00 00 00 00 00 07 0B
00 64 64 00 00 00 00 00 00 00 08 05 00 70 70 27
00 00 00 00 00 00 09 12 00 64 64 52 00 00 00 00
00 00 0A 13 00 64 64 00 00 00 00 00 00 00 0C 32
00 64 64 04 00 00 00 00 00 00 C0 32 00 64 64 04
00 00 00 00 00 00 C1 12 00 64 64 04 00 00 00 00
00 00 C2 02 00 A6 A6 24 00 18 00 26 00 00 C4 32
00 64 64 00 00 00 00 00 00 00 C5 22 00 64 64 00
00 00 00 00 00 00 C6 08 00 64 64 00 00 00 00 00
00 00 C7 0A 00 C8 C8 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 84 00 19 5A 01 5B
03 00 01 00 01 FF 00 80 01 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D1

Hope this helps!

comment:3 in reply to:  2 ; Changed 10 years ago by Christian Franke

Owner: changed from somebody to Christian Franke
Status: newaccepted

Replying to sonicblue:

smartctl -i /dev/hdb,2
smartctl 5.39 2009-12-09 r2995 [i686-pc-mingw32-2003(64)-sp2] (sf-win32-5.39-1)
Copyright (C) 2002-9 by Bruce Allen, http://smartmontools.sourceforge.net


.\PhysicalDrive1: ATA driver has no SMART support

When SMART ioctl support was added to the 3ware Windows driver in 2006, this feature was only implemented in the 32-bit version of the driver. This is probably still the case.

...
So now I'm a bit lost. Well, here is the tw_cli output, running "tw_cli /c0/p0 show all":

...
/c0/p0 Drive SMART Data:
...

This string has changed. Will be fixed soon. Thanks for the info.

comment:4 in reply to:  3 ; Changed 10 years ago by sonicblue

Replying to chrfranke:

When SMART ioctl support was added to the 3ware Windows driver in 2006, this feature was only implemented in the 32-bit version of the driver. This is probably still the case.

Ah, I see! Ok.

/c0/p0 Drive SMART Data:

This string has changed. Will be fixed soon. Thanks for the info.

Ok, thank you very much! Could you probably provide the string, that smartctl is expecting in that spot? That way I could filter tw_cli output through a simple PERL script and pipe it to the "/dev/tw_cli/stdin" device as a workaround. Thanks a lot!

comment:5 in reply to:  4 Changed 10 years ago by sonicblue

Replying to sonicblue:

Me again.. Well, I dared to download and look at the sourcecode of SmartMonTools? and found the solution in "os_win32.cpp".

So, smartctl tries to look for the string "Drive Smart Data:" as the header of the Smart Hex Dump. All I have to do is a simple Search & Replace Regex on the tw_cli output to replace "/c0/p0 Drive SMART Data:" with "Drive Smart Data:" and it works! And I always thought I could never read "real" sourcecode. ;) So I can work around the problem for now.

Thanks. :)

comment:6 Changed 10 years ago by Christian Franke

Resolution: fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.