This is the old XigmaNAS forum in read only mode,
it will taken offline by the end of march 2021!



I like to aks Users and Admins to rewrite/take over important post from here into the new fresh main forum!
Its not possible for us to export from here and import it to the main forum!

SMART with 3Ware controller

Hard disks, HDD, RAID Hardware, disk controllers, SATA, PATA, SCSI, IDE, On Board, USB, Firewire, CF (Compact Flash)
Forum rules
Set-Up GuideFAQsForum Rules
Post Reply
waldo22
Starter
Starter
Posts: 29
Joined: 27 Nov 2012 16:20
Status: Offline

SMART with 3Ware controller

Post by waldo22 »

I am trying to solve the same problem described here (in German):
http://www.forums.nas4free.org/viewtopi ... =29&t=1835

Trying to get SMART to work with my 3Ware 9650se controller.

In the web GUI under Diagnostics, S.M.A.R.T. information says:

Code: Select all

Smartctl open device: /dev/da1 failed: AMCC/3ware controller, please try adding '-d 3ware,N',
you may need to replace /dev/da1 with /dev/twaN or /dev/tweN
...for each disk on my vdev.

The following command works from the command line and produces correct SMART output:

Code: Select all

smartctl -a -d 3ware,0 /dev/twa0
where 3ware,0 means the drive attached to port 0 on the 3ware card, and /dev/twa0 is the card itself. Each drive is set up as "Single" in the 3Ware BIOS, so ZFS is handling all the data and redundancy features. The 3ware card is being used as a "dumb" SATA controller.

So the error message is perfectly correct that I need to add -d 3ware,N and replace "/dev/daN" with /dev/twa0, but it doesn't say where to add/replace these values.

I'm happy to use the command line to make this work (although a GUI solution would be nice!).

Does anyone know the proper place to edit this information?

Thanks!

-Wes

PS. Here's a topic on the FreeNas forums about this exact thing:
http://forums.freenas.org/showthread.ph ... controller

Can't tell if it was resolved or not...
Last edited by waldo22 on 20 Dec 2012 14:00, edited 1 time in total.

waldo22
Starter
Starter
Posts: 29
Joined: 27 Nov 2012 16:20
Status: Offline

Re: SMART with 3Ware controller

Post by waldo22 »

Here's the patch to ix-smartd that was posted on FreeNAS:

Code: Select all

19c19
< 			DRV=$(expr "$LINE" : '.*on \(.*\)[0-9][0-9]* bus')
---
> 			DRV=$(expr "$LINE" : '.*on \(.*\)[0-9]*[0-9]* bus')
34c34
< 			echo "$DRV|$(($CID+1))|$(($TGT+1))|$DEV"
---
> 			echo "$DRV|${CID}|${TGT}|$DEV"
48a49,50
> 			CONTROLLER_ID=$((CONTROLLER_ID + 1))
>                         CHANNEL_NO=$((CHANNEL_NO + 1))
58a61,62
> 			CONTROLLER_ID=$((CONTROLLER_ID + 1))
>                         CHANNEL_NO=$((CHANNEL_NO + 1))
61a66,70
> 		# 3ware controller
>                 ${disk}:twa*)
>                         echo -n "/dev/${DRIVER} -d 3ware,${CHANNEL_NO}"
>                         break
>                         ;;
Any ideas which file should be patched in NAS4Free?

Where does smartd.conf live?

-Wes

rocket
Starter
Starter
Posts: 52
Joined: 25 Jun 2012 00:48
Location: california
Status: Offline

Re: SMART with 3Ware controller

Post by rocket »

Hey there, I just got a 3Ware controller and put in a few RED drives.

Can't get the regular smart tools to recognize it.

even tried modifying /var/etc/smartd.conf to include:

Code: Select all

/dev/twa0 -a -d scsi -T permissive -W 0,0,0 -n standby,q -d 3ware,0
/dev/twa0 -a -d scsi -T permissive -W 0,0,0 -n standby,q -d 3ware,1
instead of

Code: Select all

/dev/da0 -a -d scsi -T permissive -W 0,0,0 -n standby,q -d 3ware,0
/dev/da1 -a -d scsi -T permissive -W 0,0,0 -n standby,q -d 3ware,1
and even chmodded it to take away all damn write permissions, but it still re-wrote the file :)



however, running it command line works fine:

Code: Select all

sancheznas:/# smartctl -a -d 3ware,0 /dev/twa0
smartctl 5.42 2011-10-20 r3458 [FreeBSD 9.0-RELEASE-p3 amd64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     WDC WD20EFRX-68AX9N0
Serial Number:    WD-WMC300497140
LU WWN Device Id: 5 0014ee 058c63c57
Firmware Version: 80.00A80
User Capacity:    2,000,398,934,016 bytes [2.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ACS-2 (revision not indicated)
Local Time is:    Wed Jan 30 00:29:05 2013 PST
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

...truncated...
anyone have any ideas? ta!



system info:

NAS4Free 9.0.0.1 (revision 139) x64-full
031810 XSDT1647 AMD Phenom(tm) II X2 555 Processor 4608MiB RAM

OHCI (generic) USB controller bus=2 hubaddr=1 port=0 devaddr=3
interface=0 PLIP network interface RTL8169S/8110S/8211 1000BASE-T
media interface EHCI (generic) USB 2.0 controller bus=1 hubaddr=2
port=0 devaddr=2 interface=0
older system:
Platform x64-full on AMD Phenom(tm) II X2 555 Processor
System ASUSTeK Computer INC. M4A785T-M Bios: 2002 03/18/2010
10tb pool

shiny new system:
Platform x64-embedded on Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
System ASUSTeK Computer INC. P7P55D-E LX
12gb RAM
running 11.20.4 - Omnius (revision 6766)

60tb, 15tb, and 10tb pools

rocketgirls know how to have fun

fsbruva
Advanced User
Advanced User
Posts: 378
Joined: 21 Sep 2012 14:50
Status: Offline

Re: SMART with 3Ware controller

Post by fsbruva »

You need to do a little bit more digging. Everything in var gets created at boot time, or at daemon start time. The real place to look is inside /etc/rc.d/smard, which is the startup script. I am pretty certain that the kernel runs the startup script, which populates the smartd.conf file, then starts the daemon every time the daemon asked to start. This is because the webgui configuration controls what values are used in smartd.conf, and the .conf file gets deleted on reboot.

rocket
Starter
Starter
Posts: 52
Joined: 25 Jun 2012 00:48
Location: california
Status: Offline

Re: SMART with 3Ware controller

Post by rocket »

Well, I see where in /etc/rc/d/smartd it is building the lines:

Code: Select all

        # Create configuration file
        /usr/local/bin/xml sel -t -m "//disks/disk/smart[enable]" \
                -v "concat(../devicespecialfile,' ',../type,' ',extraoptions)" \
                -i "position() != last()" -n -b \
                ${configxml_file} | /usr/local/bin/xml unesc | \
                while read _devicespecialfile _type _smartextraoptions; do
                        _param="-a"

                        # Specify the type of the device.
                        case ${_type} in
                                IDE)
                                        _param="${_param} -d ata";;
                                SCSI)
                                        case ${_devicespecialfile} in
                                                /dev/ada*|ada*)
                                                        _param="${_param} -d atacam";;
                                                *)
                                                        _param="${_param} -d scsi";;
                                        esac
                        esac

...truncated

Code: Select all

                       echo "${_devicespecialfile} ${_param}" >> ${smartd_conf}
                done


but I don't know how to modify the device list from /dev/da0 to /dev/twa0

I'm also not familiar with rc.d scripts at all :/
older system:
Platform x64-full on AMD Phenom(tm) II X2 555 Processor
System ASUSTeK Computer INC. M4A785T-M Bios: 2002 03/18/2010
10tb pool

shiny new system:
Platform x64-embedded on Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
System ASUSTeK Computer INC. P7P55D-E LX
12gb RAM
running 11.20.4 - Omnius (revision 6766)

60tb, 15tb, and 10tb pools

rocketgirls know how to have fun

fsbruva
Advanced User
Advanced User
Posts: 378
Joined: 21 Sep 2012 14:50
Status: Offline

Re: SMART with 3Ware controller

Post by fsbruva »

I'll take a look at it on my lunch break today. Are you running a full or a embedded install? Can you also post a copy of your current smartd.conf?

rocket
Starter
Starter
Posts: 52
Joined: 25 Jun 2012 00:48
Location: california
Status: Offline

Re: SMART with 3Ware controller

Post by rocket »

Full install.

Don't have access to my conf file from work, but I can post it later when I get home.

I also noticed last big that the 3ware drives are being falsely identified as SCSI by smartd.conf instead of the -d 3ware

I'll also post the relevant info from my settings XML file where devicespecialfile is defined from
older system:
Platform x64-full on AMD Phenom(tm) II X2 555 Processor
System ASUSTeK Computer INC. M4A785T-M Bios: 2002 03/18/2010
10tb pool

shiny new system:
Platform x64-embedded on Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
System ASUSTeK Computer INC. P7P55D-E LX
12gb RAM
running 11.20.4 - Omnius (revision 6766)

60tb, 15tb, and 10tb pools

rocketgirls know how to have fun

rocket
Starter
Starter
Posts: 52
Joined: 25 Jun 2012 00:48
Location: california
Status: Offline

Re: SMART with 3Ware controller

Post by rocket »

current /var/etc/smartd.conf:

Code: Select all

/dev/ada0 -a -d atacam -T permissive -W 0,0,0 -n standby,q
/dev/ada1 -a -d atacam -T permissive -W 0,0,0 -n standby,q
/dev/ada2 -a -d atacam -T permissive -W 0,0,0 -n standby,q
/dev/ada3 -a -d atacam -T permissive -W 0,0,0 -n standby,q
/dev/ada4 -a -d atacam -T permissive -W 0,0,0 -n standby,q
/dev/ada5 -a -d atacam -T permissive -W 0,0,0 -n standby,q
what gets added if I turn on smart for the new drives:

Code: Select all

/dev/da0 -a -d scsi -T permissive -W 0,0,0 -n standby,q -d 3ware,0
/dev/da1 -a -d scsi -T permissive -W 0,0,0 -n standby,q -d 3ware,1
/dev/da2 -a -d scsi -T permissive -W 0,0,0 -n standby,q -d 3ware,2
/dev/da3 -a -d scsi -T permissive -W 0,0,0 -n standby,q -d 3ware,3
/dev/da4 -a -d scsi -T permissive -W 0,0,0 -n standby,q -d 3ware,4
what I would like to see added:

Code: Select all

/dev/twa0 -a -d 3ware,0 -T permissive -W 0,0,0 -n standby,q
/dev/twa0 -a -d 3ware,1 -T permissive -W 0,0,0 -n standby,q 
/dev/twa0 -a -d 3ware,2 -T permissive -W 0,0,0 -n standby,q
/dev/twa0 -a -d 3ware,3 -T permissive -W 0,0,0 -n standby,q
/dev/twa0 -a -d 3ware,4 -T permissive -W 0,0,0 -n standby,q







here are two of the disk definitions in my /conf/config.xml, that /etc/rc.d/smartd bulds from. the first is ada5, the last of my five running off themain mobo sata ports. the second is the first of my 3ware drives:

Code: Select all

               <disk>
                        <uuid>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</uuid>
                        <name>ada5</name>
                        <devicespecialfile>/dev/ada5</devicespecialfile>
                        <harddiskstandby>5</harddiskstandby>
                        <acoustic>0</acoustic>
                        <fstype>zfs</fstype>
                        <apm>64</apm>
                        <transfermode>auto</transfermode>
                        <type>SCSI</type>
                        <desc>pool 5</desc>
                        <size>1907730MB</size>
                        <serial>WD-WCAVY0000000</serial>
                        <smart>
                                <enable/>
                                <extraoptions/>
                        </smart>
                </disk>
                <disk>
                        <uuid>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</uuid>
                        <name>da0</name>
                        <devicespecialfile>/dev/da0</devicespecialfile>
                        <harddiskstandby>5</harddiskstandby>
                        <acoustic>0</acoustic>
                        <apm>1</apm>
                        <transfermode>auto</transfermode>
                        <type>SCSI</type>
                        <desc>12-0</desc>
                        <size>1907338MB</size>
                        <serial/>
                        <smart>
                                <extraoptions>-d 3ware,0</extraoptions>
                        </smart>
                </disk>

last night I tried mucking about with string substitution in the rc.d script, but only managed to bork things, so I had to revert.

I was trying something along the lines of:

Code: Select all

_devicespecialfile=${_devicespecialfile/da*/twa0}
but I get

Code: Select all

eval: ${_devicespecialfile/...}: Bad substitution
as I said, I've never tried modifying rc.d scripts before, and my experience is in perl, not bash/sh
older system:
Platform x64-full on AMD Phenom(tm) II X2 555 Processor
System ASUSTeK Computer INC. M4A785T-M Bios: 2002 03/18/2010
10tb pool

shiny new system:
Platform x64-embedded on Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
System ASUSTeK Computer INC. P7P55D-E LX
12gb RAM
running 11.20.4 - Omnius (revision 6766)

60tb, 15tb, and 10tb pools

rocketgirls know how to have fun

rocket
Starter
Starter
Posts: 52
Joined: 25 Jun 2012 00:48
Location: california
Status: Offline

Re: SMART with 3Ware controller

Post by rocket »

Ha! I figured it out.

clunky, probably not very good, and could use improvement, BUT:

I added two sections, one in the device type section to remove the -d scsi from anything on /dev/da*
and used sed to strip the devicespecialfile path.

Caveats:
- you must include the -d 3ware,0 for each drive in the 3ware array in the S.M.A.R.T. special options field for the drive.
- what I did might break a system with other types of drive devices
- doesn't work with emailed reports from the Status -> Email Report. I need to find out where that is.

here is a resultant smartd.conf:

Code: Select all

/dev/ada0 -a -d atacam -T permissive -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh
/dev/ada1 -a -d atacam -T permissive -s (S/../.././03|C/../../0/05) -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh
/dev/ada2 -a -d atacam -T permissive -s (S/../.././03|C/../../0/05) -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh
/dev/ada3 -a -d atacam -T permissive -s (S/../.././03|C/../../0/05) -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh
/dev/ada4 -a -d atacam -T permissive -s (S/../.././03|C/../../0/05) -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh
/dev/ada5 -a -d atacam -T permissive -s (S/../.././03|C/../../0/05) -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh
/dev/twa0 -a -T permissive -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh -d 3ware,0
/dev/twa0 -a -T permissive -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh -d 3ware,1
/dev/twa0 -a -T permissive -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh -d 3ware,2
/dev/twa0 -a -T permissive -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh -d 3ware,3
/dev/twa0 -a -T permissive -W 5,0,0 -n standby,q -m nobody@nowhere.com -M exec /etc/mail/smartdreport.sh -d 3ware,4
the changes were
in the drive type area, adding :

Code: Select all

						/dev/da*)
							_param="${_param}";;	
at the end, changing:

Code: Select all

			#original:
			#echo "${_devicespecialfile} ${_param}" >> ${smartd_conf}

			foo=`echo "${_devicespecialfile}" | sed 's/\/da.*/\/twa0/'`
			echo "${foo} ${_param}" >> ${smartd_conf}


and here is the whole file with changes:

Code: Select all

#!/bin/sh
# Part of NAS4Free (http://www.nas4free.org).
# Copyright (C) 2012 NAS4Free Team <info@nas4free.org>.
# All rights reserved.
#
# Portions of freenas (http://www.freenas.org).
# Copyright (C) 2005-2011 Olivier Cochard-Labbe <olivier@freenas.org>.
# Copyright (c) 2007-2009 Volker Theile <votdev@gmx.de>.
# All rights reserved.
#

# PROVIDE: smartd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
# XQUERY: -i "count(//smartd/enable) > 0 and count(//disks/disk/smart[enable]) > 0" -o "0" -b
# RCVAR: smartd

. /etc/rc.subr
. /etc/configxml.subr

name="smartd"
rcvar=`set_rcvar`

load_rc_config "${name}"

# Custom commands
start_precmd="smartd_mkconf"
mkconf_cmd="smartd_mkconf"
extra_commands="mkconf"

# Defaults
smartd_enable=${smartd_enable:-"NO"}
smartd_conf=${smartd_conf:-"/var/etc/${name}.conf"}
pidfile="/var/run/${name}.pid"
command="/usr/local/sbin/smartd"
command_args="--configfile=${smartd_conf} --pidfile=${pidfile} --logfacility=local5"

# Set check interval
_interval=`configxml_get "//smartd/interval"`
if [ -n "${_interval}" ]; then
	command_args="${command_args} --interval=${_interval}"
fi

smartd_mkconf()
{
	local _devicespecialfile _type _smartextraoptions _param _powermode _email _tmp

	# Clear existing file
	/bin/cat /dev/null > ${smartd_conf}

	# Power mode
	_powermode=`configxml_get "//smartd/powermode"`

	# Email report enabled?
	_email=`/usr/local/bin/xml sel -t -m "//smartd/email" \
		-i "count(enable) > 0" \
			-v "concat('-m ',translate(to,';',','),' -M exec /etc/mail/smartdreport.sh')" \
			-i "count(testemail) > 0" \
				-o " -M test" \
			-b \
		-b \
		${configxml_file} | /usr/local/bin/xml unesc`

	# Create configuration file
	/usr/local/bin/xml sel -t -m "//disks/disk/smart[enable]" \
		-v "concat(../devicespecialfile,' ',../type,' ',extraoptions)" \
		-i "position() != last()" -n -b \
		${configxml_file} | /usr/local/bin/xml unesc | \
		while read _devicespecialfile _type _smartextraoptions; do
			_param="-a"

			# Specify the type of the device.
			# I added /dev/da* to remove scsi call for 3Ware controllers
			case ${_type} in
				IDE)
					_param="${_param} -d ata";;
				SCSI)
					case ${_devicespecialfile} in
						/dev/ada*|ada*)
							_param="${_param} -d atacam";;
						/dev/da*)
							_param="${_param}";;	
						*)
							_param="${_param} -d scsi";;
					esac
			esac

			# Be more tolerant. Try to monitor the disk even if it appears to lack SMART capabilities.
			_param="${_param} -T permissive"

			# Process scheduled self-tests.
			# Example: -s (O/../.././(00|06|12|18)|S/../.././01|L/../../6/03)
			_tmp=`/usr/local/bin/xml sel -t -m "//smartd/selftest[devicespecialfile = '${_devicespecialfile}']" \
				-i "count(//smartd/selftest) > 1 and position() = 1" -o "(" -b \
				-i "position() > 1" -o "|" -b \
				-v "concat(type,'/')" \
				-i "all_months[. = "0"]" \
					-i "count(month) > 1" -o "(" -b \
					-m month \
						-i "position() > 1" -o "|" -b \
						-v "format-number(.,'00')" \
					-b \
					-i "count(month) > 1" -o ")" -b \
				-b \
				-i "all_months[. != "0"]" -o ".." -b \
				-o "/" \
				-i "all_days[. = "0"]" \
					-i "count(day) > 1" -o "(" -b \
					-m day \
						-i "position() > 1" -o "|" -b \
						-v "format-number(.,'00')" \
					-b \
					-i "count(day) > 1" -o ")" -b \
				-b \
				-i "all_days[. != "0"]" -o ".." -b \
				-o "/" \
				-i "all_weekdays[. = "0"]" \
					-i "count(weekday) > 1" -o "(" -b \
					-m weekday \
						-i "position() > 1" -o "|" -b \
						-v "." \
					-b \
					-i "count(weekday) > 1" -o ")" -b \
				-b \
				-i "all_weekdays[. != "0"]" -o "." -b \
				-o "/" \
				-i "all_hours[. = "0"]" \
					-i "count(hour) > 1" -o "(" -b \
					-m hour \
						-i "position() > 1" -o "|" -b \
						-v "format-number(.,'00')" \
					-b \
					-i "count(hour) > 1" -o ")" -b \
				-b \
				-i "all_hours[. != "0"]" -o ".." -b \
				-i "count(//smartd/selftest) > 1 and position() = last()" -o ")" -b \
				${configxml_file} | /usr/local/bin/xml unesc`
			if [ -n "${_tmp}" ]; then
				_param="${_param} -s ${_tmp}";
			fi

			# Temperature monitoring.
			_tmp=`/usr/local/bin/xml sel -t -m "//smartd/temp" \
				-v "concat(diff,',',info,',',crit)" \
				${configxml_file} | /usr/local/bin/xml unesc`
			_param="${_param} -W ${_tmp}";

			# Power mode
			if [ -n "${_powermode}" ]; then
				_param="${_param} -n ${_powermode},q";
			fi

			# Email report enabled?
			if [ -n "${_email}" ]; then
				_param="${_param} ${_email}";
			fi

			# Append extra options
			if [ -n "${_smartextraoptions}" ]; then
				_param="${_param} ${_smartextraoptions}"
			fi
			
			#original:
			#echo "${_devicespecialfile} ${_param}" >> ${smartd_conf}

			foo=`echo "${_devicespecialfile}" | sed 's/\/da.*/\/twa0/'`
			echo "${foo} ${_param}" >> ${smartd_conf}

		done


}

run_rc_command "$1"
older system:
Platform x64-full on AMD Phenom(tm) II X2 555 Processor
System ASUSTeK Computer INC. M4A785T-M Bios: 2002 03/18/2010
10tb pool

shiny new system:
Platform x64-embedded on Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
System ASUSTeK Computer INC. P7P55D-E LX
12gb RAM
running 11.20.4 - Omnius (revision 6766)

60tb, 15tb, and 10tb pools

rocketgirls know how to have fun

User avatar
zoon01
Developer
Developer
Posts: 724
Joined: 20 Jun 2012 21:06
Location: Netherlands
Contact:
Status: Offline

Re: SMART with 3Ware controller

Post by zoon01 »

Please test this build:

64-bits only!

http://www.dutchmans.serverthuis.nl/Lat ... ntrollers/

The changes are :-
1. change IDE (ATA) device type from ata to atacam 2. add device type support for : 3ware RAID controller, Areca SATA RAID controller, HighPoint RocketRAID controller, HP Smart Array controllers (needs more testing)

Please note that we do not have all these controllers for testing, so more extensive testing is required for this patch.


Regards,
zoon01
System specs: XigmaNAS 11.2.0.4 -embedded on Samsung 860 EVO 256GB and Supermicro X10SL7-F w / Bios v3.2, IPMI v.03.86 / CPU E3-1241 v3 @ 3.50GHz - 32GB Crucial DDR3L 1600mhz ECC 1.35v , LSI 2308 on PH20.00.07.00 IT mode, Storage: 5x Western Digital Red (WD30EFRX) raidz

Development system is same system in virtualbox.

rocket
Starter
Starter
Posts: 52
Joined: 25 Jun 2012 00:48
Location: california
Status: Offline

Re: SMART with 3Ware controller

Post by rocket »

Thanks! I'll give it a test tomorrow!
older system:
Platform x64-full on AMD Phenom(tm) II X2 555 Processor
System ASUSTeK Computer INC. M4A785T-M Bios: 2002 03/18/2010
10tb pool

shiny new system:
Platform x64-embedded on Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
System ASUSTeK Computer INC. P7P55D-E LX
12gb RAM
running 11.20.4 - Omnius (revision 6766)

60tb, 15tb, and 10tb pools

rocketgirls know how to have fun

User avatar
zoon01
Developer
Developer
Posts: 724
Joined: 20 Jun 2012 21:06
Location: Netherlands
Contact:
Status: Offline

Re: SMART with 3Ware controller

Post by zoon01 »

Please test this build:

64-bits only!

Version 2 released

http://www.dutchmans.serverthuis.nl/Lat ... ntrollers/

Second update for /etc/rc.d/smartd :-
S.M.A.R.T : Auto detect on /dev/da* devices to cater for SATA disks pass through via HBA (non-RAID) (such as LSI SAS2008 RAID controllers (e.g. IBM ServeRAID M1015) flashed to LSI9211-IT firmware)
System specs: XigmaNAS 11.2.0.4 -embedded on Samsung 860 EVO 256GB and Supermicro X10SL7-F w / Bios v3.2, IPMI v.03.86 / CPU E3-1241 v3 @ 3.50GHz - 32GB Crucial DDR3L 1600mhz ECC 1.35v , LSI 2308 on PH20.00.07.00 IT mode, Storage: 5x Western Digital Red (WD30EFRX) raidz

Development system is same system in virtualbox.

waldo22
Starter
Starter
Posts: 29
Joined: 27 Nov 2012 16:20
Status: Offline

Re: SMART with 3Ware controller

Post by waldo22 »

@zoon01,

Thanks for the build. I installed the .639 firmware img and I'm unsure how to proceed.

Do I need to add the -d 3ware,n information somewhere, or add the /dev/twa0 somewhere?

Under diagnostics, SMART still gives the same error it's been giving.

What do I need to change, and what information would be helpful to you?

-Wes

RedAntz
experienced User
experienced User
Posts: 125
Joined: 11 Jul 2012 07:46
Location: Sydney, Australia
Status: Offline

Re: SMART with 3Ware controller

Post by RedAntz »

waldo22 wrote:@zoon01,

Thanks for the build. I installed the .639 firmware img and I'm unsure how to proceed.

Do I need to add the -d 3ware,n information somewhere, or add the /dev/twa0 somewhere?

Under diagnostics, SMART still gives the same error it's been giving.

What do I need to change, and what information would be helpful to you?

-Wes
HI waldo22,

Can you refresh smartd.conf by doing this :-

Code: Select all

/etc/rc.d/smartd onemkconf
Then paste the content in /var/etc/smartd.conf here for further troubleshooting.

waldo22
Starter
Starter
Posts: 29
Joined: 27 Nov 2012 16:20
Status: Offline

Re: SMART with 3Ware controller

Post by waldo22 »

/var/etc/smartd.conf contains:

Code: Select all

/dev/da0 -a -d scsi -T permissive -W 0,0,0 -n sleep,q -d 3ware,0
/dev/da0 should be /dev/twa0, I believe.

Should your patch take care of that, or is that something I should have changed by hand?

-Wes

RedAntz
experienced User
experienced User
Posts: 125
Joined: 11 Jul 2012 07:46
Location: Sydney, Australia
Status: Offline

Re: SMART with 3Ware controller

Post by RedAntz »

I suspect that is because the config.xml is not refreshed for the correct device type. That means S.M.A.R.T. is still using /dev/da0 instead of /dev/twa0 for detection. Can you check your disk configuration in /conf/config.xml to see whether /dev/da0 or /dev/twa0 is stored in <devicespecialfile>,e .g. :-

Code: Select all

                <disk>
                        <uuid>47934ad3-7b3b-4d43-8d9e-e0d46c29159a</uuid>
                        <name>da0</name>
                        <devicespecialfile>/dev/da0</devicespecialfile>
                        <harddiskstandby>0</harddiskstandby>
                        <acoustic>0</acoustic>
                        <fstype>ufs</fstype>
                        <apm>0</apm>
                        <transfermode>auto</transfermode>
                        <type>SCSI</type>
                        <desc>VMware Virtual disk 1.0</desc>
                        <size>8192MB</size>
                        <serial/>
                        <smart>
                                <extraoptions/>
                        </smart>
                </disk>
If that's the case, can you clear the config and reimport disk to see if that helps refreshing it to /dev/twa0 ?

If it is, then run /etc/rc.d/smartd onemkconf again to check if smartd.conf is populating correctly.

If you still have issue, can you post the following output from this command :-

Code: Select all

camcontrol devlist -v
and your disk configuration in /conf/config.xml ?

waldo22
Starter
Starter
Posts: 29
Joined: 27 Nov 2012 16:20
Status: Offline

Re: SMART with 3Ware controller

Post by waldo22 »

In config.xml, all disks are listed as /dev/da*, even after clearing and re-importing.

Output of `camcontrol devlist -v` is:

Code: Select all

scbus0 on twa0 bus 0:
<AMCC 9650SE-24M DISK 4.10>        at scbus0 target 0 lun 0 (pass0,da0)
<AMCC 9650SE-24M DISK 4.10>        at scbus0 target 1 lun 0 (pass1,da1)
<AMCC 9650SE-24M DISK 4.10>        at scbus0 target 2 lun 0 (pass2,da2)
<AMCC 9650SE-24M DISK 4.10>        at scbus0 target 3 lun 0 (pass3,da3)
<AMCC 9650SE-24M DISK 4.10>        at scbus0 target 4 lun 0 (pass4,da4)
<AMCC 9650SE-24M DISK 4.10>        at scbus0 target 5 lun 0 (pass5,da5)
<AMCC 9650SE-24M DISK 4.10>        at scbus0 target 6 lun 0 (pass6,da6)
<AMCC 9650SE-24M DISK 4.10>        at scbus0 target 7 lun 0 (pass7,da7)
<>                                 at scbus0 target -1 lun -1 ()
scbus1 on ata0 bus 0:
<>                                 at scbus1 target -1 lun -1 ()
scbus2 on ata1 bus 0:
<>                                 at scbus2 target -1 lun -1 ()
scbus3 on ata2 bus 0:
<>                                 at scbus3 target -1 lun -1 ()
scbus4 on ata3 bus 0:
<>                                 at scbus4 target -1 lun -1 ()
scbus5 on ata4 bus 0:
<>                                 at scbus5 target -1 lun -1 ()
scbus6 on ata5 bus 0:
<>                                 at scbus6 target -1 lun -1 ()
scbus7 on ctl2cam0 bus 0:
<>                                 at scbus7 target -1 lun -1 ()
scbus8 on umass-sim0 bus 0:
<Corsair Flash Voyager 1.00>       at scbus8 target 0 lun 0 (pass8,da8)
scbus-1 on xpt0 bus 0:
<>                                 at scbus-1 target -1 lun -1 (xpt0)
/conf/config.xml contains (for each disk; I replaced da0 with da*, etc):

Code: Select all

		<disk>
			<uuid>c803935f-7dda-4645-b4a8-33346425d7b2</uuid>
			<name>da*</name>
			<devicespecialfile>/dev/da*</devicespecialfile>
			<harddiskstandby>0</harddiskstandby>
			<acoustic>0</acoustic>
			<fstype>zfs</fstype>
			<apm>0</apm>
			<transfermode>auto</transfermode>
			<type>SCSI</type>
			<desc>AMCC 9650SE-24M DISK 4.10</desc>
			<size>2861012MB</size>
			<serial>W1F0G2FBB2868E00AB66</serial>
			<smart>
				<extraoptions/>
			</smart>
		</disk>
	<zfs>
		<vdevices>
			<vdevice>
				<uuid>0977603e-381b-4aad-828d-bea8c1ed9c82</uuid>
				<name>vdev0raidz2</name>
				<type>raidz2</type>
				<device>/dev/da1</device>
				<device>/dev/da2</device>
				<device>/dev/da3</device>
				<device>/dev/da4</device>
				<device>/dev/da5</device>
				<device>/dev/da6</device>
				<device>/dev/da7</device>
				<device>/dev/da8</device>
				<aft4k/>
				<desc>8x 3TB raidZ2 vdev</desc>
			</vdevice>
		</vdevices>
		
		</zfs>

RedAntz
experienced User
experienced User
Posts: 125
Joined: 11 Jul 2012 07:46
Location: Sydney, Australia
Status: Offline

Re: SMART with 3Ware controller

Post by RedAntz »

Bummer.

Looks like these disks are treated as da* instead of twa*

However, in the Version 2 of the patch, I have added additional test to make sure da* devices are detected properly.

Could you please do the following and paste the output here :-

Code: Select all

smartctl -d test /dev/da0
Sorry for the back and forth troubleshooting, I do not have 3ware controllers for further debugging. I have IBM ServeRAID M1015 that behaves the same ( but is catered for in the 2nd patch ).

waldo22
Starter
Starter
Posts: 29
Joined: 27 Nov 2012 16:20
Status: Offline

Re: SMART with 3Ware controller

Post by waldo22 »

Sorry for the back and forth troubleshooting
Seriously? Thank YOU for all the troubleshooting :)

Code: Select all

smartctl -d 3ware,0 /dev/twa0
works. (for /dev/da0)

Code: Select all

smartctl -d test /dev/da0
does not.

Were you expecting BSD to automatically assign the drives as /dev/twa* ?

I have 8 disks, and they show up as /dev/da0 - da7.

The 3ware controller shows up as /dev/twa0, and da0 - da7 can be accessed by smartctl by specifying `3ware,*` where `*` is the device number for `da*`
...so

Code: Select all

smartctl -d 3ware,3 /dev/twa0
works for /dev/da3...

RedAntz
experienced User
experienced User
Posts: 125
Joined: 11 Jul 2012 07:46
Location: Sydney, Australia
Status: Offline

Re: SMART with 3Ware controller

Post by RedAntz »

Ahh, ok, then it is different from how my HBA works. I'll submit a new patch to zoon01 on the weekend to rectify this.

waldo22
Starter
Starter
Posts: 29
Joined: 27 Nov 2012 16:20
Status: Offline

Re: SMART with 3Ware controller

Post by waldo22 »

let me correct myself;

the `*` in `3ware,*` refers to the port on the 3ware controller that the disk is attached to, not the device name enumerated in /dev.

Most of the time, they happen to be the same, but you can't always rely on that...

rocket
Starter
Starter
Posts: 52
Joined: 25 Jun 2012 00:48
Location: california
Status: Offline

Re: SMART with 3Ware controller

Post by rocket »

Ooh, thanks! I've been trying to get time to get the install going, but ran in to problems with my !)($%)*^# CD drive. Have a new CD drive now, and will wait for the new build with the 3ware patch.

thanks again!
older system:
Platform x64-full on AMD Phenom(tm) II X2 555 Processor
System ASUSTeK Computer INC. M4A785T-M Bios: 2002 03/18/2010
10tb pool

shiny new system:
Platform x64-embedded on Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
System ASUSTeK Computer INC. P7P55D-E LX
12gb RAM
running 11.20.4 - Omnius (revision 6766)

60tb, 15tb, and 10tb pools

rocketgirls know how to have fun

goelli
NewUser
NewUser
Posts: 14
Joined: 09 Sep 2012 19:09
Status: Offline

Re: SMART with 3Ware controller

Post by goelli »

Hi,

Sorry for diggng this out, but is there any news to that?

On build 943 it still works in CLI, but the creation of the smartd.conf is still wrong for this type of controller.

It think it would work, if one would change the rc-script as Wes suggested. But I think this would be overwritten with every Firmware-upgrade.

So... Is there something I can help to get this into the next build of nas4free?

Thanks,
goelli

goelli
NewUser
NewUser
Posts: 14
Joined: 09 Sep 2012 19:09
Status: Offline

Re: SMART with 3Ware controller

Post by goelli »

Ok. I searched a little for the progress since last post before mine.

There is a feature request ongoing since 2012-04-25 http://sourceforge.net/p/nas4free/featu ... /2/?page=1

There is a patch for older builds of nas4free http://sourceforge.net/projects/nas4fre ... 1.0.1.804/

This patch is for full version or embedded version with DATA partition. Since I have no DATA Partition, I have to use my ZFS Mount as I do for extensions like jails.

Best regards,
goelli

RedAntz
experienced User
experienced User
Posts: 125
Joined: 11 Jul 2012 07:46
Location: Sydney, Australia
Status: Offline

Re: SMART with 3Ware controller

Post by RedAntz »

Hi goelli,

For S.M.A.R.T., there is a patch that fix this and will be available in the next release http://sourceforge.net/p/nas4free/code/948/

What 3ware card do you have ? There is an ongoing troubleshooting and a fix testing regarding 3ware cards that use 'twe' module ( 3ware 5000/6000/7000/8000 series PATA/SATA RAID adapter) here : viewtopic.php?f=57&t=5976

goelli
NewUser
NewUser
Posts: 14
Joined: 09 Sep 2012 19:09
Status: Offline

Re: SMART with 3Ware controller

Post by goelli »

Thanks for the repley.
This sounds good. I can see there will be a new parameter in the config.xml for this.
I have a 3ware 9650SE-8LPML Controller which uses 'twa'

Post Reply

Return to “Hard disk & controller”