Linux RAID subsystem development
 help / color / mirror / Atom feed
* Possible HDD error, how do I find which HDD it is?
@ 2011-02-19 11:52 Mathias Burén
  2011-02-19 14:09 ` Simon McNair
  2011-02-19 15:37 ` John Robinson
  0 siblings, 2 replies; 15+ messages in thread
From: Mathias Burén @ 2011-02-19 11:52 UTC (permalink / raw)
  To: Linux-RAID

Hi, apologies in advance for the long email due to the log below. This
is the second time I've run a consistency check on the RAID (6 HDDs,
RAID5) that this error has occured. If you look on the ata3 entries in
the log below:

dmesg:

ata1: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76100 irq 40
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: ATA-8: Corsair CSSD-F60GB2, 1.1, max UDMA/133
ata1.00: 117231408 sectors, multi 1: LBA48 NCQ (depth 31/32)
ata1.00: configured for UDMA/133

ata2: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76180 irq 40
ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata2.00: ATA-8: WDC WD20EARS-00MVWB0, 51.0AB51, max UDMA/133
ata2.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata2.00: configured for UDMA/133

ata3: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76200 irq 40
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata3.00: ATA-8: WDC WD20EARS-00MVWB0, 50.0AB50, max UDMA/133
ata3.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata3.00: configured for UDMA/133
ata3.00: exception Emask 0x0 SAct 0x800801 SErr 0x0 action 0x6 frozen
ata3.00: failed command: READ FPDMA QUEUED
ata3.00: cmd 60/b0:00:50:31:7b/02:00:8b:00:00/40 tag 0 ncq 352256 in
ata3.00: status: { DRDY }
ata3.00: failed command: READ FPDMA QUEUED
ata3.00: cmd 60/00:58:50:29:7b/04:00:8b:00:00/40 tag 11 ncq 524288 in
ata3.00: status: { DRDY }
ata3.00: failed command: READ FPDMA QUEUED
ata3.00: cmd 60/00:b8:50:2d:7b/04:00:8b:00:00/40 tag 23 ncq 524288 in
ata3.00: status: { DRDY }
ata3: hard resetting link
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata3.00: configured for UDMA/133
ata3.00: device reported invalid CHS sector 0
ata3.00: device reported invalid CHS sector 0
ata3.00: device reported invalid CHS sector 0
ata3: EH complete

ata4: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76280 irq 40
ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata4.00: ATA-8: WDC WD20EARS-00MVWB0, 50.0AB50, max UDMA/133
ata4.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata4.00: configured for UDMA/133

ata5: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76300 irq 40
ata5: SATA link down (SStatus 0 SControl 300)

ata6: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76380 irq 40
ata6: SATA link down (SStatus 0 SControl 300)

ata7: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb22000 irq 19
ata7: SATA link down (SStatus 0 SControl 300)

ata8: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb24000 irq 19
ata8: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata8.00: ATA-8: SAMSUNG HD204UI, 1AQ10003, max UDMA/133
ata8.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata8.00: configured for UDMA/133

ata9: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb26000 irq 19
ata9: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata9.00: ATA-8: WDC WD20EARS-00MVWB0, 51.0AB51, max UDMA/133
ata9.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata9.00: configured for UDMA/133

ata10: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb28000 irq 19
ata10: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata10.00: ATA-8: SAMSUNG HD204UI, 1AQ10003, max UDMA/133
ata10.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata10.00: configured for UDMA/133

hdparm -I /dev/sdc:

ATA device, with non-removable media
        Model Number:       WDC WD20EARS-00MVWB0
        Serial Number:      WD-WMAZ20152590
        Firmware Revision:  50.0AB50

What I wonder is, how do I know what device is ata3? I do have 4
devices of that model (WD20EARS). I've tried searching in /sys but
there's nothing of value there (or I've missed it). If dmesg only
showed the S/N...
I posted the smartctl --all output of all devices here in case someone
has time to take a look:
http://stuff.dyndns.org/logs/smart-sd[a,b,c,d,e,f,g].log

Thanks,
// Mathias

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 11:52 Possible HDD error, how do I find which HDD it is? Mathias Burén
@ 2011-02-19 14:09 ` Simon McNair
  2011-02-19 15:37 ` John Robinson
  1 sibling, 0 replies; 15+ messages in thread
From: Simon McNair @ 2011-02-19 14:09 UTC (permalink / raw)
  To: Mathias Burén; +Cc: Linux-RAID

does this help:
http://www.linux-archive.org/centos/316405-how-map-ata-numbers-dev-sd-numbers.html

?
Simon

On 19/02/2011 11:52, Mathias Burén wrote:
> Hi, apologies in advance for the long email due to the log below. This
> is the second time I've run a consistency check on the RAID (6 HDDs,
> RAID5) that this error has occured. If you look on the ata3 entries in
> the log below:
>
> dmesg:
>
> ata1: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76100 irq 40
> ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> ata1.00: ATA-8: Corsair CSSD-F60GB2, 1.1, max UDMA/133
> ata1.00: 117231408 sectors, multi 1: LBA48 NCQ (depth 31/32)
> ata1.00: configured for UDMA/133
>
> ata2: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76180 irq 40
> ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> ata2.00: ATA-8: WDC WD20EARS-00MVWB0, 51.0AB51, max UDMA/133
> ata2.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
> ata2.00: configured for UDMA/133
>
> ata3: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76200 irq 40
> ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> ata3.00: ATA-8: WDC WD20EARS-00MVWB0, 50.0AB50, max UDMA/133
> ata3.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
> ata3.00: configured for UDMA/133
> ata3.00: exception Emask 0x0 SAct 0x800801 SErr 0x0 action 0x6 frozen
> ata3.00: failed command: READ FPDMA QUEUED
> ata3.00: cmd 60/b0:00:50:31:7b/02:00:8b:00:00/40 tag 0 ncq 352256 in
> ata3.00: status: { DRDY }
> ata3.00: failed command: READ FPDMA QUEUED
> ata3.00: cmd 60/00:58:50:29:7b/04:00:8b:00:00/40 tag 11 ncq 524288 in
> ata3.00: status: { DRDY }
> ata3.00: failed command: READ FPDMA QUEUED
> ata3.00: cmd 60/00:b8:50:2d:7b/04:00:8b:00:00/40 tag 23 ncq 524288 in
> ata3.00: status: { DRDY }
> ata3: hard resetting link
> ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> ata3.00: configured for UDMA/133
> ata3.00: device reported invalid CHS sector 0
> ata3.00: device reported invalid CHS sector 0
> ata3.00: device reported invalid CHS sector 0
> ata3: EH complete
>
> ata4: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76280 irq 40
> ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> ata4.00: ATA-8: WDC WD20EARS-00MVWB0, 50.0AB50, max UDMA/133
> ata4.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
> ata4.00: configured for UDMA/133
>
> ata5: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76300 irq 40
> ata5: SATA link down (SStatus 0 SControl 300)
>
> ata6: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76380 irq 40
> ata6: SATA link down (SStatus 0 SControl 300)
>
> ata7: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb22000 irq 19
> ata7: SATA link down (SStatus 0 SControl 300)
>
> ata8: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb24000 irq 19
> ata8: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> ata8.00: ATA-8: SAMSUNG HD204UI, 1AQ10003, max UDMA/133
> ata8.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
> ata8.00: configured for UDMA/133
>
> ata9: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb26000 irq 19
> ata9: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> ata9.00: ATA-8: WDC WD20EARS-00MVWB0, 51.0AB51, max UDMA/133
> ata9.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
> ata9.00: configured for UDMA/133
>
> ata10: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb28000 irq 19
> ata10: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> ata10.00: ATA-8: SAMSUNG HD204UI, 1AQ10003, max UDMA/133
> ata10.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
> ata10.00: configured for UDMA/133
>
> hdparm -I /dev/sdc:
>
> ATA device, with non-removable media
>          Model Number:       WDC WD20EARS-00MVWB0
>          Serial Number:      WD-WMAZ20152590
>          Firmware Revision:  50.0AB50
>
> What I wonder is, how do I know what device is ata3? I do have 4
> devices of that model (WD20EARS). I've tried searching in /sys but
> there's nothing of value there (or I've missed it). If dmesg only
> showed the S/N...
> I posted the smartctl --all output of all devices here in case someone
> has time to take a look:
> http://stuff.dyndns.org/logs/smart-sd[a,b,c,d,e,f,g].log
>
> Thanks,
> // Mathias
> --
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 11:52 Possible HDD error, how do I find which HDD it is? Mathias Burén
  2011-02-19 14:09 ` Simon McNair
@ 2011-02-19 15:37 ` John Robinson
  2011-02-19 16:44   ` Phil Turmel
  1 sibling, 1 reply; 15+ messages in thread
From: John Robinson @ 2011-02-19 15:37 UTC (permalink / raw)
  To: Mathias Burén; +Cc: Linux-RAID

[-- Attachment #1: Type: text/plain, Size: 827 bytes --]

On 19/02/2011 11:52, Mathias Burén wrote:
[...]
> What I wonder is, how do I know what device is ata3? I do have 4
> devices of that model (WD20EARS). I've tried searching in /sys but
> there's nothing of value there (or I've missed it). If dmesg only
> showed the S/N...
> I posted the smartctl --all output of all devices here in case someone
> has time to take a look:
> http://stuff.dyndns.org/logs/smart-sd[a,b,c,d,e,f,g].log

Try using Phil Turmel's excellent lsdrv script; I've attached the 
version I use on EL5, but I hacked it about to work on such an old 
distro so I wouldn't swear it will work on more recent distros; Phil's 
original that does work on more recent distros can be found in the list 
archives around 6 November last year in the thread "Determining which 
spindle is out of order".

Cheers,

John.


[-- Attachment #2: lsdrv --]
[-- Type: text/plain, Size: 1890 bytes --]

#! /bin/bash
#
# Examine specific system host devices to identify the drives attached
#

function describe_controller () {
	local device driver modprefix serial slotname
	driver="`readlink -f \"$1/driver\"`"
	driver="`basename $driver`"
	modprefix="`cut -d: -f1 <\"$1/modalias\"`"
	echo "Controller device @ ${1##/sys/devices/} [$driver]"
	if [[ "$modprefix" == "pci" ]] ; then
		slotname="`basename \"$1\"`"
		echo "  `lspci -s $slotname |cut -d\  -f2-`"
		return
	fi
	if [[ "$modprefix" == "usb" ]] ; then
		if [[ -f "$1/busnum" ]] ; then
			device="`cat \"$1/busnum\"`:`cat \"$1/devnum\"`"
			serial="`cat \"$1/serial\"`"
		else
			device="`cat \"$1/../busnum\"`:`cat \"$1/../devnum\"`"
			serial="`cat \"$1/../serial\"`"
		fi
		echo "  `lsusb -s $device` {SN: $serial}"
		return
	fi
	echo -e "  `cat \"$1/modalias\"`"
}

function describe_device () {
	local empty=1
	while read device ; do
		empty=0
		if [[ "$device" =~ ^(.+)/block[/:](.+)$ ]] ; then
			targ="${BASH_REMATCH[1]}"
			bdev="${BASH_REMATCH[2]}"
			vnd="$(< $targ/vendor)"
			mdl="$(< $targ/model)"
			sn="`sginfo -s /dev/$bdev 2>/dev/null | \
				sed -rn -e \"/Serial Number/{s%^.+' *(.+) *'.*\\\$%\\\\1%;p;q}\"`" &>/dev/null
			if [[ -n "$sn" ]] ; then
				echo -e "    $1: `echo /dev/$bdev $vnd $mdl {SN: $sn}`"
			else
				echo -e "    $1: `echo /dev/$bdev $vnd $mdl`"
			fi
		else
			echo -e "    $1: Unknown $device"
		fi
	done
	[[ $empty -eq 1 ]] && echo -e "    $1: [Empty]"
}

function check_host () {
	local found=0
	local pController=
	while read shost ; do
		host=`dirname "$shost"`
		controller=`dirname "$host"`
		bhost=`basename "$host"`
		if [[ "$controller" != "$pController" ]] ; then
			pController="$controller"
			describe_controller "$controller"
		fi
		find $host -regex '.+/target[0-9:]+/[0-9:]+/block[:/][^/]+' |describe_device "$bhost"
	done
}

find /sys/devices/ -name 'scsi_host*' |check_host


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 15:37 ` John Robinson
@ 2011-02-19 16:44   ` Phil Turmel
  2011-02-19 17:25     ` John Robinson
                       ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Phil Turmel @ 2011-02-19 16:44 UTC (permalink / raw)
  To: John Robinson; +Cc: Mathias Burén, Linux-RAID

[-- Attachment #1: Type: text/plain, Size: 1022 bytes --]

On 02/19/2011 10:37 AM, John Robinson wrote:
> On 19/02/2011 11:52, Mathias Burén wrote:
> [...]
>> What I wonder is, how do I know what device is ata3? I do have 4
>> devices of that model (WD20EARS). I've tried searching in /sys but
>> there's nothing of value there (or I've missed it). If dmesg only
>> showed the S/N...
>> I posted the smartctl --all output of all devices here in case someone
>> has time to take a look:
>> http://stuff.dyndns.org/logs/smart-sd[a,b,c,d,e,f,g].log
> 
> Try using Phil Turmel's excellent lsdrv script; I've attached the version I use on EL5, but I hacked it about to work on such an old distro so I wouldn't swear it will work on more recent distros; Phil's original that does work on more recent distros can be found in the list archives around 6 November last year in the thread "Determining which spindle is out of order".

I've attached the latest version.  It falls back to smartctl if it can't find the sginfo utility.  It should work on both old and new sysfs layouts.

Phil


[-- Attachment #2: lsdrv --]
[-- Type: text/plain, Size: 2140 bytes --]

#! /bin/bash
#
# Examine specific system host devices to identify the drives attached
#

function describe_controller () {
	local device driver modprefix serial slotname
	driver="`readlink -f \"$1/driver\"`"
	driver="`basename $driver`"
	modprefix="`cut -d: -f1 <\"$1/modalias\"`"
	echo "Controller device @ ${1##/sys/devices/} [$driver]"
	if [[ "$modprefix" == "pci" ]] ; then
		slotname="`basename \"$1\"`"
		echo "  `lspci -s $slotname |cut -d\  -f2-`"
		return
	fi
	if [[ "$modprefix" == "usb" ]] ; then
		if [[ -f "$1/busnum" ]] ; then
			device="`cat \"$1/busnum\"`:`cat \"$1/devnum\"`"
			serial="`cat \"$1/serial\"`"
		else
			device="`cat \"$1/../busnum\"`:`cat \"$1/../devnum\"`"
			serial="`cat \"$1/../serial\"`"
		fi
		echo "  `lsusb -s $device` {SN: $serial}"
		return
	fi
	echo -e "  `cat \"$1/modalias\"`"
}

function describe_device () {
	local empty=1
	while read device ; do
		empty=0
		if [[ "$device" =~ ^(.+)/block[/:](.+)$ ]] ; then
			targ="${BASH_REMATCH[1]}"
			bdev="${BASH_REMATCH[2]}"
			vnd="$(< $targ/vendor)"
			mdl="$(< $targ/model)"
			sn="`sginfo -s /dev/$bdev 2>/dev/null | \
				sed -rn -e \"/Serial Number/{s%^.+' *(.+) *'.*\\\$%\\\\1%;p;q}\"`" &>/dev/null
			if [[ -n "$sn" ]] ; then
				echo -e "    $1: `echo /dev/$bdev $vnd $mdl {SN: $sn}`"
			else
				sn="`smartctl -i /dev/$bdev 2>/dev/null | \
					sed -rn -e \"/Serial Number:/{s%^.+: *(.+) *.*\$%\\\\1%;p;q}\"`" &>/dev/null
				if [[ -n "$sn" ]] ; then
					echo -e "    $1: `echo /dev/$bdev $vnd $mdl {SN: $sn}`"
				else
					echo -e "    $1: `echo /dev/$bdev $vnd $mdl`"
				fi
			fi
		else
			echo -e "    $1: Unknown $device"
		fi
	done
	[[ $empty -eq 1 ]] && echo -e "    $1: [Empty]"
}

function check_host () {
	local found=0
	local pController=
	while read shost ; do
		host=`dirname "$shost"`
		controller=`dirname "$host"`
		bhost=`basename "$host"`
		if [[ "$controller" != "$pController" ]] ; then
			pController="$controller"
			describe_controller "$controller"
		fi
		find $host -regex '.+/target[0-9:]+/[0-9:]+/block[:/][^/]+' |describe_device "$bhost"
	done
}

find /sys/devices/ -regex '.+/scsi_host\(:block\)?' |check_host

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 16:44   ` Phil Turmel
@ 2011-02-19 17:25     ` John Robinson
       [not found]     ` <4D5FFCEC.9040207@anonymous.org.uk>
  2011-02-19 20:09     ` Mathias Burén
  2 siblings, 0 replies; 15+ messages in thread
From: John Robinson @ 2011-02-19 17:25 UTC (permalink / raw)
  To: Linux RAID

On 19/02/2011 16:44, Phil Turmel wrote:
> On 02/19/2011 10:37 AM, John Robinson wrote:
>> On 19/02/2011 11:52, Mathias Burén wrote:
>> [...]
>>> What I wonder is, how do I know what device is ata3? I do have 4
>>> devices of that model (WD20EARS). I've tried searching in /sys but
>>> there's nothing of value there (or I've missed it). If dmesg only
>>> showed the S/N...
>>> I posted the smartctl --all output of all devices here in case someone
>>> has time to take a look:
>>> http://stuff.dyndns.org/logs/smart-sd[a,b,c,d,e,f,g].log
>>
>> Try using Phil Turmel's excellent lsdrv script; I've attached the version I use on EL5, but I hacked it about to work on such an old distro so I wouldn't swear it will work on more recent distros; Phil's original that does work on more recent distros can be found in the list archives around 6 November last year in the thread "Determining which spindle is out of order".
>
> I've attached the latest version.  It falls back to smartctl if it can't find the sginfo utility.  It should work on both old and new sysfs layouts.

It still lists nothing on EL5. My SCSI hosts appear in /sys/devices/ as 
follows:

/sys/devices/pci0000:00/0000:00:1f.2/host7/scsi_host:host7
/sys/devices/pci0000:00/0000:00:1f.2/host6/scsi_host:host6
/sys/devices/pci0000:00/0000:00:1f.2/host5/scsi_host:host5
/sys/devices/pci0000:00/0000:00:1f.2/host4/scsi_host:host4
/sys/devices/pci0000:00/0000:00:1f.2/host3/scsi_host:host3
/sys/devices/pci0000:00/0000:00:1f.2/host2/scsi_host:host2
/sys/devices/pci0000:00/0000:00:1e.0/0000:05:01.1/host9/scsi_host:host9
/sys/devices/pci0000:00/0000:00:1e.0/0000:05:01.0/host8/scsi_host:host8
/sys/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/host1/scsi_host:host1
/sys/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/host0/scsi_host:host0

So I changed the find regex as follows:

find /sys/devices/ -regex '.+/scsi_host\(:block\|:host[0-9]+\)?'

though I'd be interested to know why the simpler:

find /sys/devices/ -name 'scsi_host*'

isn't sufficient?

Cheers,

John.
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
       [not found]     ` <4D5FFCEC.9040207@anonymous.org.uk>
@ 2011-02-19 18:02       ` Phil Turmel
  2011-02-19 18:18         ` John Robinson
  0 siblings, 1 reply; 15+ messages in thread
From: Phil Turmel @ 2011-02-19 18:02 UTC (permalink / raw)
  To: John Robinson, linux-raid@vger.kernel.org

(whoops, dropped the list.  Sorry about the dupe, John)

On 02/19/2011 12:25 PM, John Robinson wrote:
[trim /]
> So I changed the find regex as follows:
> 
> find /sys/devices/ -regex '.+/scsi_host\(:block\|:host[0-9]+\)?'
> 
> though I'd be interested to know why the simpler:
> 
> find /sys/devices/ -name 'scsi_host*'
> 
> isn't sufficient?

It probably is fine, and does work on all my machines close at hand.  I did a fair amount of rework after the last public discussion, and I try to be conservative with wildcard matches.  I'll use it for a while, and see if it bites.

Phil

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 18:02       ` Phil Turmel
@ 2011-02-19 18:18         ` John Robinson
  0 siblings, 0 replies; 15+ messages in thread
From: John Robinson @ 2011-02-19 18:18 UTC (permalink / raw)
  To: Phil Turmel; +Cc: Linux RAID

On 19/02/2011 18:02, Phil Turmel wrote:
> (whoops, dropped the list.  Sorry about the dupe, John)

It was me who dropped the list in the first place, but I just resent to 
the list without mentioning it :-)

Cheers,

John.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 16:44   ` Phil Turmel
  2011-02-19 17:25     ` John Robinson
       [not found]     ` <4D5FFCEC.9040207@anonymous.org.uk>
@ 2011-02-19 20:09     ` Mathias Burén
  2011-02-19 22:22       ` Phil Turmel
  2 siblings, 1 reply; 15+ messages in thread
From: Mathias Burén @ 2011-02-19 20:09 UTC (permalink / raw)
  To: Phil Turmel; +Cc: John Robinson, Linux-RAID

On 19 February 2011 16:44, Phil Turmel <philip@turmel.org> wrote:
> On 02/19/2011 10:37 AM, John Robinson wrote:
>> On 19/02/2011 11:52, Mathias Burén wrote:
>> [...]
>>> What I wonder is, how do I know what device is ata3? I do have 4
>>> devices of that model (WD20EARS). I've tried searching in /sys but
>>> there's nothing of value there (or I've missed it). If dmesg only
>>> showed the S/N...
>>> I posted the smartctl --all output of all devices here in case someone
>>> has time to take a look:
>>> http://stuff.dyndns.org/logs/smart-sd[a,b,c,d,e,f,g].log
>>
>> Try using Phil Turmel's excellent lsdrv script; I've attached the version I use on EL5, but I hacked it about to work on such an old distro so I wouldn't swear it will work on more recent distros; Phil's original that does work on more recent distros can be found in the list archives around 6 November last year in the thread "Determining which spindle is out of order".
>
> I've attached the latest version.  It falls back to smartctl if it can't find the sginfo utility.  It should work on both old and new sysfs layouts.
>
> Phil
>
>

Hi,

The script works for me:


 $ sudo ./lsdrv.sh
Password:
Controller device @ pci0000:00/0000:00:0b.0 [ahci]
  SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
    host0: /dev/sda ATA Corsair CSSD-F60 {SN: 10326505580009990027}
    host1: /dev/sdb ATA WDC WD20EARS-00M {SN: WD-WCAZA1022443}
    host2: /dev/sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}
    host3: /dev/sdd ATA WDC WD20EARS-00M {SN: WD-WMAZ20188479}
    host4: [Empty]
    host5: [Empty]
Controller device @ pci0000:00/0000:00:16.0/0000:05:00.0 [sata_mv]
  SCSI storage controller: HighPoint Technologies, Inc. RocketRAID
230x 4 Port SATA-II Controller (rev 02)
    host6: [Empty]
    host7: /dev/sde ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800964 }
    host8: /dev/sdf ATA WDC WD20EARS-00M {SN: WD-WCAZA1000331}
    host9: /dev/sdg ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800850 }

So ata3 is the same as host3 then? How come no errors are logged on the drive:


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   163   162   021    Pre-fail
Always       -       6808
  4 Start_Stop_Count        0x0032   100   100   000    Old_age
Always       -       53
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail
Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age
Always       -       0
  9 Power_On_Hours          0x0032   093   093   000    Old_age
Always       -       5169
 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       -       48
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age
Always       -       30
193 Load_Cycle_Count        0x0032   172   172   000    Old_age
Always       -       85965
194 Temperature_Celsius     0x0022   120   102   000    Old_age
Always       -       30
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   200   200   000    Old_age
Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age
Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age
Offline      -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining
LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%      4761         -
# 2  Short offline       Completed without error       00%      2285         -
# 3  Extended offline    Completed without error       00%      1514         -

Cheers,
// Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 20:09     ` Mathias Burén
@ 2011-02-19 22:22       ` Phil Turmel
  2011-02-19 22:30         ` Mathias Burén
  2011-02-20  9:52         ` Simon Mcnair
  0 siblings, 2 replies; 15+ messages in thread
From: Phil Turmel @ 2011-02-19 22:22 UTC (permalink / raw)
  To: Mathias Burén; +Cc: John Robinson, Linux-RAID, Simon Mcnair

[-- Attachment #1: Type: text/plain, Size: 1550 bytes --]

On 02/19/2011 03:09 PM, Mathias Burén wrote:
> The script works for me:
> 
>  $ sudo ./lsdrv.sh
> Password:
> Controller device @ pci0000:00/0000:00:0b.0 [ahci]
>   SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
>     host0: /dev/sda ATA Corsair CSSD-F60 {SN: 10326505580009990027}
>     host1: /dev/sdb ATA WDC WD20EARS-00M {SN: WD-WCAZA1022443}
>     host2: /dev/sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}
>     host3: /dev/sdd ATA WDC WD20EARS-00M {SN: WD-WMAZ20188479}
>     host4: [Empty]
>     host5: [Empty]
> Controller device @ pci0000:00/0000:00:16.0/0000:05:00.0 [sata_mv]
>   SCSI storage controller: HighPoint Technologies, Inc. RocketRAID
> 230x 4 Port SATA-II Controller (rev 02)
>     host6: [Empty]
>     host7: /dev/sde ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800964 }
>     host8: /dev/sdf ATA WDC WD20EARS-00M {SN: WD-WCAZA1000331}
>     host9: /dev/sdg ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800850 }
> 
> So ata3 is the same as host3 then? How come no errors are logged on the drive:

No, generally not.  ATA numbering starts from #1.  Host numbering starts from #0, but includes non-ATA SCSI devices.

I've attached a version of the script that shows the LUN in addition to the host number, and includes John's adjustment.  It might be useful to people with port multipliers, and controllers that show all ports under a single host.

Simon, I'm very curious what this latest script shows for the Supermicro when one or more ports are empty, and whether those LUNs are consistently assigned to specific ports.

Phil

[-- Attachment #2: lsdrv --]
[-- Type: text/plain, Size: 1947 bytes --]

#! /bin/bash
#
# Examine specific system host devices to identify the drives attached
#

function describe_controller () {
	local device driver modprefix serial slotname
	driver="`readlink -f \"$1/driver\"`"
	driver="`basename $driver`"
	modprefix="`cut -d: -f1 <\"$1/modalias\"`"
	echo "Controller device @ ${1##/sys/devices/} [$driver]"
	if [[ "$modprefix" == "pci" ]] ; then
		slotname="`basename \"$1\"`"
		echo "  `lspci -s $slotname |cut -d\  -f2-`"
		return
	fi
	if [[ "$modprefix" == "usb" ]] ; then
		if [[ -f "$1/busnum" ]] ; then
			device="`cat \"$1/busnum\"`:`cat \"$1/devnum\"`"
			serial="`cat \"$1/serial\"`"
		else
			device="`cat \"$1/../busnum\"`:`cat \"$1/../devnum\"`"
			serial="`cat \"$1/../serial\"`"
		fi
		echo "  `lsusb -s $device` {SN: $serial}"
		return
	fi
	echo -e "  `cat \"$1/modalias\"`"
}

function describe_device () {
	local empty=1
	while read device ; do
		empty=0
		if [[ "$device" =~ ^(.+/[0-9]+:)([0-9]+:[0-9]+:[0-9]+)/block[/:](.+)$ ]] ; then
			base="${BASH_REMATCH[1]}"
			lun="${BASH_REMATCH[2]}"
			bdev="${BASH_REMATCH[3]}"
			vnd="$(< ${base}${lun}/vendor)"
			mdl="$(< ${base}${lun}/model)"
			sn="`sginfo -s /dev/$bdev | \
				sed -rn -e \"/Serial Number/{s%^.+' *(.+) *'.*\\\$%\\\\1%;p;q}\"`" &>/dev/null
			if [[ -n "$sn" ]] ; then
				echo -e "    $1 `echo $lun $bdev $vnd $mdl {SN: $sn}`"
			else
				echo -e "    $1 `echo $lun $bdev $vnd $mdl`"
			fi
		else
			echo -e "    $1 Unknown $device"
		fi
	done
	[[ $empty -eq 1 ]] && echo -e "    $1 [Empty]"
}

function check_host () {
	local found=0
	local pController=
	while read shost ; do
		host=`dirname "$shost"`
		controller=`dirname "$host"`
		bhost=`basename "$host"`
		if [[ "$controller" != "$pController" ]] ; then
			pController="$controller"
			describe_controller "$controller"
		fi
		find $host -regex '.+/target[0-9:]+/[0-9:]+/block[:/][^/]+' |describe_device "$bhost"
	done
}

find /sys/devices/ -name 'scsi_host*' |check_host

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 22:22       ` Phil Turmel
@ 2011-02-19 22:30         ` Mathias Burén
  2011-02-19 22:40           ` Phil Turmel
  2011-02-20  9:52         ` Simon Mcnair
  1 sibling, 1 reply; 15+ messages in thread
From: Mathias Burén @ 2011-02-19 22:30 UTC (permalink / raw)
  To: Phil Turmel; +Cc: John Robinson, Linux-RAID, Simon Mcnair

On 19 February 2011 22:22, Phil Turmel <philip@turmel.org> wrote:
> On 02/19/2011 03:09 PM, Mathias Burén wrote:
>> The script works for me:
>>
>>  $ sudo ./lsdrv.sh
>> Password:
>> Controller device @ pci0000:00/0000:00:0b.0 [ahci]
>>   SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
>>     host0: /dev/sda ATA Corsair CSSD-F60 {SN: 10326505580009990027}
>>     host1: /dev/sdb ATA WDC WD20EARS-00M {SN: WD-WCAZA1022443}
>>     host2: /dev/sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}
>>     host3: /dev/sdd ATA WDC WD20EARS-00M {SN: WD-WMAZ20188479}
>>     host4: [Empty]
>>     host5: [Empty]
>> Controller device @ pci0000:00/0000:00:16.0/0000:05:00.0 [sata_mv]
>>   SCSI storage controller: HighPoint Technologies, Inc. RocketRAID
>> 230x 4 Port SATA-II Controller (rev 02)
>>     host6: [Empty]
>>     host7: /dev/sde ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800964 }
>>     host8: /dev/sdf ATA WDC WD20EARS-00M {SN: WD-WCAZA1000331}
>>     host9: /dev/sdg ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800850 }
>>
>> So ata3 is the same as host3 then? How come no errors are logged on the drive:
>
> No, generally not.  ATA numbering starts from #1.  Host numbering starts from #0, but includes non-ATA SCSI devices.
>
> I've attached a version of the script that shows the LUN in addition to the host number, and includes John's adjustment.  It might be useful to people with port multipliers, and controllers that show all ports under a single host.
>
> Simon, I'm very curious what this latest script shows for the Supermicro when one or more ports are empty, and whether those LUNs are consistently assigned to specific ports.
>
> Phil
>

$ sudo ./lsdrv-2.sh
Controller device @ pci0000:00/0000:00:0b.0 [ahci]
  SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
    host0 0:0:0 sda ATA Corsair CSSD-F60 {SN: 10326505580009990027}
    host1 0:0:0 sdb ATA WDC WD20EARS-00M {SN: WD-WCAZA1022443}
    host2 0:0:0 sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}
    host3 0:0:0 sdd ATA WDC WD20EARS-00M {SN: WD-WMAZ20188479}
    host4 [Empty]
    host5 [Empty]
Controller device @ pci0000:00/0000:00:16.0/0000:05:00.0 [sata_mv]
  SCSI storage controller: HighPoint Technologies, Inc. RocketRAID
230x 4 Port SATA-II Controller (rev 02)
    host6 [Empty]
    host7 0:0:0 sde ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800964 }
    host8 0:0:0 sdf ATA WDC WD20EARS-00M {SN: WD-WCAZA1000331}
    host9 0:0:0 sdg ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800850 }

This is the output of your latest script on my machine. The "0:0:0" is
supposed to be the LUN, which would be ata[1, 2, 3..], no?

// Mahtias
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 22:30         ` Mathias Burén
@ 2011-02-19 22:40           ` Phil Turmel
  2011-02-19 23:26             ` Mathias Burén
  2011-02-20  3:11             ` John Robinson
  0 siblings, 2 replies; 15+ messages in thread
From: Phil Turmel @ 2011-02-19 22:40 UTC (permalink / raw)
  To: Mathias Burén; +Cc: John Robinson, Linux-RAID, Simon Mcnair

On 02/19/2011 05:30 PM, Mathias Burén wrote:
> On 19 February 2011 22:22, Phil Turmel <philip@turmel.org> wrote:
>> On 02/19/2011 03:09 PM, Mathias Burén wrote:
>>> The script works for me:
>>>
>>>  $ sudo ./lsdrv.sh
>>> Password:
>>> Controller device @ pci0000:00/0000:00:0b.0 [ahci]
>>>   SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
>>>     host0: /dev/sda ATA Corsair CSSD-F60 {SN: 10326505580009990027}
>>>     host1: /dev/sdb ATA WDC WD20EARS-00M {SN: WD-WCAZA1022443}
>>>     host2: /dev/sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}
>>>     host3: /dev/sdd ATA WDC WD20EARS-00M {SN: WD-WMAZ20188479}
>>>     host4: [Empty]
>>>     host5: [Empty]
>>> Controller device @ pci0000:00/0000:00:16.0/0000:05:00.0 [sata_mv]
>>>   SCSI storage controller: HighPoint Technologies, Inc. RocketRAID
>>> 230x 4 Port SATA-II Controller (rev 02)
>>>     host6: [Empty]
>>>     host7: /dev/sde ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800964 }
>>>     host8: /dev/sdf ATA WDC WD20EARS-00M {SN: WD-WCAZA1000331}
>>>     host9: /dev/sdg ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800850 }
>>>
>>> So ata3 is the same as host3 then? How come no errors are logged on the drive:
>>
>> No, generally not.  ATA numbering starts from #1.  Host numbering starts from #0, but includes non-ATA SCSI devices.
>>
>> I've attached a version of the script that shows the LUN in addition to the host number, and includes John's adjustment.  It might be useful to people with port multipliers, and controllers that show all ports under a single host.
>>
>> Simon, I'm very curious what this latest script shows for the Supermicro when one or more ports are empty, and whether those LUNs are consistently assigned to specific ports.
>>
>> Phil
>>
> 
> $ sudo ./lsdrv-2.sh
> Controller device @ pci0000:00/0000:00:0b.0 [ahci]
>   SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
>     host0 0:0:0 sda ATA Corsair CSSD-F60 {SN: 10326505580009990027}
>     host1 0:0:0 sdb ATA WDC WD20EARS-00M {SN: WD-WCAZA1022443}
>     host2 0:0:0 sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}
>     host3 0:0:0 sdd ATA WDC WD20EARS-00M {SN: WD-WMAZ20188479}
>     host4 [Empty]
>     host5 [Empty]
> Controller device @ pci0000:00/0000:00:16.0/0000:05:00.0 [sata_mv]
>   SCSI storage controller: HighPoint Technologies, Inc. RocketRAID
> 230x 4 Port SATA-II Controller (rev 02)
>     host6 [Empty]
>     host7 0:0:0 sde ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800964 }
>     host8 0:0:0 sdf ATA WDC WD20EARS-00M {SN: WD-WCAZA1000331}
>     host9 0:0:0 sdg ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800850 }
> 
> This is the output of your latest script on my machine. The "0:0:0" is
> supposed to be the LUN, which would be ata[1, 2, 3..], no?

No.  You have to look in your dmesg to match the 'ata' initialization reports with the corresponding 'scsi' initialization reports.

dmesg |grep 'ata[0-9]\|scsi[0-9]'

Unless I missed something in sysfs that would make it easy to report it in the script?

Phil
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 22:40           ` Phil Turmel
@ 2011-02-19 23:26             ` Mathias Burén
  2011-02-20  3:11             ` John Robinson
  1 sibling, 0 replies; 15+ messages in thread
From: Mathias Burén @ 2011-02-19 23:26 UTC (permalink / raw)
  To: Phil Turmel; +Cc: John Robinson, Linux-RAID, Simon Mcnair

On 19 February 2011 22:40, Phil Turmel <philip@turmel.org> wrote:
> On 02/19/2011 05:30 PM, Mathias Burén wrote:
>> On 19 February 2011 22:22, Phil Turmel <philip@turmel.org> wrote:
>>> On 02/19/2011 03:09 PM, Mathias Burén wrote:
>>>> The script works for me:
>>>>
>>>>  $ sudo ./lsdrv.sh
>>>> Password:
>>>> Controller device @ pci0000:00/0000:00:0b.0 [ahci]
>>>>   SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
>>>>     host0: /dev/sda ATA Corsair CSSD-F60 {SN: 10326505580009990027}
>>>>     host1: /dev/sdb ATA WDC WD20EARS-00M {SN: WD-WCAZA1022443}
>>>>     host2: /dev/sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}
>>>>     host3: /dev/sdd ATA WDC WD20EARS-00M {SN: WD-WMAZ20188479}
>>>>     host4: [Empty]
>>>>     host5: [Empty]
>>>> Controller device @ pci0000:00/0000:00:16.0/0000:05:00.0 [sata_mv]
>>>>   SCSI storage controller: HighPoint Technologies, Inc. RocketRAID
>>>> 230x 4 Port SATA-II Controller (rev 02)
>>>>     host6: [Empty]
>>>>     host7: /dev/sde ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800964 }
>>>>     host8: /dev/sdf ATA WDC WD20EARS-00M {SN: WD-WCAZA1000331}
>>>>     host9: /dev/sdg ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800850 }
>>>>
>>>> So ata3 is the same as host3 then? How come no errors are logged on the drive:
>>>
>>> No, generally not.  ATA numbering starts from #1.  Host numbering starts from #0, but includes non-ATA SCSI devices.
>>>
>>> I've attached a version of the script that shows the LUN in addition to the host number, and includes John's adjustment.  It might be useful to people with port multipliers, and controllers that show all ports under a single host.
>>>
>>> Simon, I'm very curious what this latest script shows for the Supermicro when one or more ports are empty, and whether those LUNs are consistently assigned to specific ports.
>>>
>>> Phil
>>>
>>
>> $ sudo ./lsdrv-2.sh
>> Controller device @ pci0000:00/0000:00:0b.0 [ahci]
>>   SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
>>     host0 0:0:0 sda ATA Corsair CSSD-F60 {SN: 10326505580009990027}
>>     host1 0:0:0 sdb ATA WDC WD20EARS-00M {SN: WD-WCAZA1022443}
>>     host2 0:0:0 sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}
>>     host3 0:0:0 sdd ATA WDC WD20EARS-00M {SN: WD-WMAZ20188479}
>>     host4 [Empty]
>>     host5 [Empty]
>> Controller device @ pci0000:00/0000:00:16.0/0000:05:00.0 [sata_mv]
>>   SCSI storage controller: HighPoint Technologies, Inc. RocketRAID
>> 230x 4 Port SATA-II Controller (rev 02)
>>     host6 [Empty]
>>     host7 0:0:0 sde ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800964 }
>>     host8 0:0:0 sdf ATA WDC WD20EARS-00M {SN: WD-WCAZA1000331}
>>     host9 0:0:0 sdg ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800850 }
>>
>> This is the output of your latest script on my machine. The "0:0:0" is
>> supposed to be the LUN, which would be ata[1, 2, 3..], no?
>
> No.  You have to look in your dmesg to match the 'ata' initialization reports with the corresponding 'scsi' initialization reports.
>
> dmesg |grep 'ata[0-9]\|scsi[0-9]'
>
> Unless I missed something in sysfs that would make it easy to report it in the script?
>
> Phil
>

$ dmesg |grep 'ata[0-9]\|scsi[0-9]'
scsi0 : ahci
scsi1 : ahci
scsi2 : ahci
scsi3 : ahci
scsi4 : ahci
scsi5 : ahci
ata1: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76100 irq 40
ata2: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76180 irq 40
ata3: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76200 irq 40
ata4: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76280 irq 40
ata5: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76300 irq 40
ata6: SATA max UDMA/133 abar m8192@0xfae76000 port 0xfae76380 irq 40
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata5: SATA link down (SStatus 0 SControl 300)
ata6: SATA link down (SStatus 0 SControl 300)
ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata3.00: ATA-8: WDC WD20EARS-00MVWB0, 50.0AB50, max UDMA/133
ata3.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata2.00: ATA-8: WDC WD20EARS-00MVWB0, 51.0AB51, max UDMA/133
ata2.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata3.00: configured for UDMA/133
ata2.00: configured for UDMA/133
ata1.00: ATA-8: Corsair CSSD-F60GB2, 1.1, max UDMA/133
ata1.00: 117231408 sectors, multi 1: LBA48 NCQ (depth 31/32)
ata1.00: configured for UDMA/133
ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata4.00: ATA-8: WDC WD20EARS-00MVWB0, 50.0AB50, max UDMA/133
ata4.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata4.00: configured for UDMA/133
scsi6 : sata_mv
scsi7 : sata_mv
scsi8 : sata_mv
scsi9 : sata_mv
ata7: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb22000 irq 19
ata8: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb24000 irq 19
ata9: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb26000 irq 19
ata10: SATA max UDMA/133 mmio m1048576@0xfeb00000 port 0xfeb28000 irq 19
ata7: SATA link down (SStatus 0 SControl 300)
ata8: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata8.00: ATA-8: SAMSUNG HD204UI, 1AQ10003, max UDMA/133
ata8.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata8.00: configured for UDMA/133
ata9: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata9.00: ATA-8: WDC WD20EARS-00MVWB0, 51.0AB51, max UDMA/133
ata9.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata9.00: configured for UDMA/133
ata10: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata10.00: ATA-8: SAMSUNG HD204UI, 1AQ10003, max UDMA/133
ata10.00: 3907029168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata10.00: configured for UDMA/133

Like you said before, ATA numbering starts from #1 & host numbering
starts from #0, if I only go by that the numbers match up. (the script
says host 4, 5 and 6 are empty, and according to ATA in dmesg ata 5, 6
& 7 are down.)

This would mean that the drive in question (ata3) is actually "host2
0:0:0 sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}". Yet it doesn't
show and SMART errors:


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   165   163   021    Pre-fail
Always       -       6750
  4 Start_Stop_Count        0x0032   100   100   000    Old_age
Always       -       55
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail
Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age
Always       -       0
  9 Power_On_Hours          0x0032   094   094   000    Old_age
Always       -       5070
 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       -       49
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age
Always       -       31
193 Load_Cycle_Count        0x0032   180   180   000    Old_age
Always       -       60164
194 Temperature_Celsius     0x0022   114   099   000    Old_age
Always       -       36
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   200   200   000    Old_age
Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age
Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age
Offline      -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining
LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%      4660         -
# 2  Short offline       Completed without error       00%      2180         -
# 3  Extended offline    Completed without error       00%      1408         -

I'm beginning to wonder if there's a controller/firmware problem and
not actually a physical HDD problem that causes this error. I've only
seen it happen during consistency checks of the array (and only once
per check, near the 70% mark or so).

Nifty script btw. :-)

Thanks,
// Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 22:40           ` Phil Turmel
  2011-02-19 23:26             ` Mathias Burén
@ 2011-02-20  3:11             ` John Robinson
  2011-02-20  3:44               ` Mathias Burén
  1 sibling, 1 reply; 15+ messages in thread
From: John Robinson @ 2011-02-20  3:11 UTC (permalink / raw)
  To: Phil Turmel; +Cc: Mathias Burén, Linux-RAID, Simon Mcnair

On 19/02/2011 22:40, Phil Turmel wrote:
> On 02/19/2011 05:30 PM, Mathias Burén wrote:
[...]
>> This is the output of your latest script on my machine. The "0:0:0"
>> is supposed to be the LUN, which would be ata[1, 2, 3..], no?
>
> No.  You have to look in your dmesg to match the 'ata' initialization
> reports with the corresponding 'scsi' initialization reports.
>
> dmesg |grep 'ata[0-9]\|scsi[0-9]'
>
> Unless I missed something in sysfs that would make it easy to report
> it in the script?

I don't know about easy, but there is a suggestion in the page Simon
McNair linked to earlier in this thread:
http://www.linux-archive.org/centos/316405-how-map-ata-numbers-dev-sd-numbers.html#post428370

I suspect that at the very least you'd have to check the proc_name to
see if it matched a driver which used libata before you could say the
unique_id matched the kernel's ata:N though, which is why I say it might 
not be easy (well beyond me at any rate)...

Cheers,

John.
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-20  3:11             ` John Robinson
@ 2011-02-20  3:44               ` Mathias Burén
  0 siblings, 0 replies; 15+ messages in thread
From: Mathias Burén @ 2011-02-20  3:44 UTC (permalink / raw)
  To: John Robinson; +Cc: Phil Turmel, Linux-RAID, Simon Mcnair

On 20 February 2011 03:11, John Robinson <john.robinson@anonymous.org.uk> wrote:
> On 19/02/2011 22:40, Phil Turmel wrote:
>>
>> On 02/19/2011 05:30 PM, Mathias Burén wrote:
>
> [...]
>>>
>>> This is the output of your latest script on my machine. The "0:0:0"
>>> is supposed to be the LUN, which would be ata[1, 2, 3..], no?
>>
>> No.  You have to look in your dmesg to match the 'ata' initialization
>> reports with the corresponding 'scsi' initialization reports.
>>
>> dmesg |grep 'ata[0-9]\|scsi[0-9]'
>>
>> Unless I missed something in sysfs that would make it easy to report
>> it in the script?
>
> I don't know about easy, but there is a suggestion in the page Simon
> McNair linked to earlier in this thread:
> http://www.linux-archive.org/centos/316405-how-map-ata-numbers-dev-sd-numbers.html#post428370
>
> I suspect that at the very least you'd have to check the proc_name to
> see if it matched a driver which used libata before you could say the
> unique_id matched the kernel's ata:N though, which is why I say it might not
> be easy (well beyond me at any rate)...
>
> Cheers,
>
> John.
>

Hi,

I think it's safe to assume that in my case, ata3 which showed errors
in dmesg is indeed /dev/sdc based on the following:


$ sudo bin/lsdrv-2.sh
Controller device @ pci0000:00/0000:00:0b.0 [ahci]
  SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
    host0 0:0:0 sda ATA Corsair CSSD-F60 {SN: 10326505580009990027}
    host1 0:0:0 sdb ATA WDC WD20EARS-00M {SN: WD-WCAZA1022443}
    host2 0:0:0 sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}
    host3 0:0:0 sdd ATA WDC WD20EARS-00M {SN: WD-WMAZ20188479}
    host4 [Empty]
    host5 [Empty]
Controller device @ pci0000:00/0000:00:16.0/0000:05:00.0 [sata_mv]
  SCSI storage controller: HighPoint Technologies, Inc. RocketRAID
230x 4 Port SATA-II Controller (rev 02)
    host6 [Empty]
    host7 0:0:0 sde ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800964 }
    host8 0:0:0 sdf ATA WDC WD20EARS-00M {SN: WD-WCAZA1000331}
    host9 0:0:0 sdg ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800850 }

$ sudo lsscsi -d -v -l
[0:0:0:0]    disk    ATA      Corsair CSSD-F60 1.1   /dev/sda [8:0]
  state=running queue_depth=31 scsi_level=6 type=0 device_blocked=0 timeout=30
  dir: /sys/bus/scsi/devices/0:0:0:0
[/sys/devices/pci0000:00/0000:00:0b.0/host0/target0:0:0/0:0:0:0]
[1:0:0:0]    disk    ATA      WDC WD20EARS-00M 51.0  /dev/sdb [8:16]
  state=running queue_depth=31 scsi_level=6 type=0 device_blocked=0 timeout=30
  dir: /sys/bus/scsi/devices/1:0:0:0
[/sys/devices/pci0000:00/0000:00:0b.0/host1/target1:0:0/1:0:0:0]
[2:0:0:0]    disk    ATA      WDC WD20EARS-00M 50.0  /dev/sdc [8:32]
  state=running queue_depth=31 scsi_level=6 type=0 device_blocked=0 timeout=30
  dir: /sys/bus/scsi/devices/2:0:0:0
[/sys/devices/pci0000:00/0000:00:0b.0/host2/target2:0:0/2:0:0:0]
[3:0:0:0]    disk    ATA      WDC WD20EARS-00M 50.0  /dev/sdd [8:48]
  state=running queue_depth=31 scsi_level=6 type=0 device_blocked=0 timeout=30
  dir: /sys/bus/scsi/devices/3:0:0:0
[/sys/devices/pci0000:00/0000:00:0b.0/host3/target3:0:0/3:0:0:0]
[7:0:0:0]    disk    ATA      SAMSUNG HD204UI  1AQ1  /dev/sde [8:64]
  state=running queue_depth=31 scsi_level=6 type=0 device_blocked=0 timeout=30
  dir: /sys/bus/scsi/devices/7:0:0:0
[/sys/devices/pci0000:00/0000:00:16.0/0000:05:00.0/host7/target7:0:0/7:0:0:0]
[8:0:0:0]    disk    ATA      WDC WD20EARS-00M 51.0  /dev/sdf [8:80]
  state=running queue_depth=31 scsi_level=6 type=0 device_blocked=0 timeout=30
  dir: /sys/bus/scsi/devices/8:0:0:0
[/sys/devices/pci0000:00/0000:00:16.0/0000:05:00.0/host8/target8:0:0/8:0:0:0]
[9:0:0:0]    disk    ATA      SAMSUNG HD204UI  1AQ1  /dev/sdg [8:96]
  state=running queue_depth=31 scsi_level=6 type=0 device_blocked=0 timeout=30
  dir: /sys/bus/scsi/devices/9:0:0:0
[/sys/devices/pci0000:00/0000:00:16.0/0000:05:00.0/host9/target9:0:0/9:0:0:0]

$ for d in /sys/class/scsi_host/host*; do  echo "$d $(cat
$d/proc_name) $(cat $d/unique_id)"; done
/sys/class/scsi_host/host0 ahci 1
/sys/class/scsi_host/host1 ahci 2
/sys/class/scsi_host/host2 ahci 3
/sys/class/scsi_host/host3 ahci 4
/sys/class/scsi_host/host4 ahci 5
/sys/class/scsi_host/host5 ahci 6
/sys/class/scsi_host/host6 sata_mv 7
/sys/class/scsi_host/host7 sata_mv 8
/sys/class/scsi_host/host8 sata_mv 9
/sys/class/scsi_host/host9 sata_mv 10

// Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Possible HDD error, how do I find which HDD it is?
  2011-02-19 22:22       ` Phil Turmel
  2011-02-19 22:30         ` Mathias Burén
@ 2011-02-20  9:52         ` Simon Mcnair
  1 sibling, 0 replies; 15+ messages in thread
From: Simon Mcnair @ 2011-02-20  9:52 UTC (permalink / raw)
  To: Phil Turmel; +Cc: Mathias Burén, John Robinson, Linux-RAID

Hi Phil,
Results as follows:
proxmox:/home/simon# ./lsdrv2.sh
Controller device @ pci0000:00/0000:00:01.0/0000:01:00.0 [mvsas]
  SCSI storage controller: Marvell Technology Group Ltd.
MV64460/64461/64462 System Controller, Revision B (rev 01)
    host0 0:0:0 sdf ATA Hitachi HDS72101 {SN: GTA000PAGABXRA}
    host0 0:1:0 sdg ATA Hitachi HDS72101 {SN: GTA000PAGAA5DA}
    host0 0:2:0 sdh ATA Hitachi HDS72101 {SN: GTA000PAG9NL9A}
    host0 0:3:0 sdi ATA Hitachi HDS72101 {SN: GTA000PAGA8V4A}
    host0 0:4:0 sdj ATA Hitachi HDS72101 {SN: GTD000PAGMT9GD}
    host0 0:5:0 sdk ATA Hitachi HDS72101 {SN: GTG000PAG18BJC}
    host0 0:6:0 sdl ATA Hitachi HDS72101 {SN: GTG000PAG1DPLC}
    host0 0:7:0 sdm ATA Hitachi HDS72101 {SN: GTA000PAG7WMEA}
Controller device @
pci0000:00/0000:00:1a.7/usb1/1-6/1-6.1/1-6.1.1/1-6.1.1:1.0
[usb-storage]
  Bus 001 Device 095: ID 0424:2228 Standard Microsystems Corp. 9-in-2
Card Reader {SN: 08050920003A}
    host21 0:0:0 sdo Generic Flash HS-CF
    host21 0:0:1 sdp Generic Flash HS-COMBO
Controller device @ pci0000:00/0000:00:1c.4/0000:04:00.0 [ahci]
  SATA controller: JMicron Technology Corp. JMB362/JMB363 Serial ATA
Controller (rev 03)
    host9 [Empty]
    host10 [Empty]
Controller device @ pci0000:00/0000:00:1c.4/0000:04:00.1 [pata_jmicron]
  IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA
Controller (rev 03)
    host1 [Empty]
    host2 [Empty]
Controller device @ pci0000:00/0000:00:1f.2 [ahci]
  SATA controller: Intel Corporation 82801JI (ICH10 Family) SATA AHCI Controller
    host3 0:0:0 sda ATA STM3500418AS {SN: 9VM3QJ5C}
    host4 0:0:0 sr0 Optiarc DVD RW AD-5240S
    host5 0:0:0 sds ATA SAMSUNG HD203WI {SN: S1UYJ1CZ404245 }
    host6 0:0:0 sdr ATA SAMSUNG HD203WI {SN: S1UYJ1CZ404242 }
    host7 0:0:0 sdd ATA Hitachi HDS72101 {SN: GTD000PAGMT8DD}
    host8 0:0:0 sde ATA Hitachi HDS72101 {SN: GTG000PAG04V0C}

I can't test the empty ports and/or specific ports assigned to
specific LUNS until I've done the data recovery task.  Happy to do it
afterwards once I know the state of my data.
cheers
Simon

On 19 February 2011 22:22, Phil Turmel <philip@turmel.org> wrote:
> On 02/19/2011 03:09 PM, Mathias Burén wrote:
>> The script works for me:
>>
>>  $ sudo ./lsdrv.sh
>> Password:
>> Controller device @ pci0000:00/0000:00:0b.0 [ahci]
>>   SATA controller: nVidia Corporation MCP79 AHCI Controller (rev b1)
>>     host0: /dev/sda ATA Corsair CSSD-F60 {SN: 10326505580009990027}
>>     host1: /dev/sdb ATA WDC WD20EARS-00M {SN: WD-WCAZA1022443}
>>     host2: /dev/sdc ATA WDC WD20EARS-00M {SN: WD-WMAZ20152590}
>>     host3: /dev/sdd ATA WDC WD20EARS-00M {SN: WD-WMAZ20188479}
>>     host4: [Empty]
>>     host5: [Empty]
>> Controller device @ pci0000:00/0000:00:16.0/0000:05:00.0 [sata_mv]
>>   SCSI storage controller: HighPoint Technologies, Inc. RocketRAID
>> 230x 4 Port SATA-II Controller (rev 02)
>>     host6: [Empty]
>>     host7: /dev/sde ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800964 }
>>     host8: /dev/sdf ATA WDC WD20EARS-00M {SN: WD-WCAZA1000331}
>>     host9: /dev/sdg ATA SAMSUNG HD204UI {SN: S2HGJ1RZ800850 }
>>
>> So ata3 is the same as host3 then? How come no errors are logged on the drive:
>
> No, generally not.  ATA numbering starts from #1.  Host numbering starts from #0, but includes non-ATA SCSI devices.
>
> I've attached a version of the script that shows the LUN in addition to the host number, and includes John's adjustment.  It might be useful to people with port multipliers, and controllers that show all ports under a single host.
>
> Simon, I'm very curious what this latest script shows for the Supermicro when one or more ports are empty, and whether those LUNs are consistently assigned to specific ports.
>
> Phil
>
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2011-02-20  9:52 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-19 11:52 Possible HDD error, how do I find which HDD it is? Mathias Burén
2011-02-19 14:09 ` Simon McNair
2011-02-19 15:37 ` John Robinson
2011-02-19 16:44   ` Phil Turmel
2011-02-19 17:25     ` John Robinson
     [not found]     ` <4D5FFCEC.9040207@anonymous.org.uk>
2011-02-19 18:02       ` Phil Turmel
2011-02-19 18:18         ` John Robinson
2011-02-19 20:09     ` Mathias Burén
2011-02-19 22:22       ` Phil Turmel
2011-02-19 22:30         ` Mathias Burén
2011-02-19 22:40           ` Phil Turmel
2011-02-19 23:26             ` Mathias Burén
2011-02-20  3:11             ` John Robinson
2011-02-20  3:44               ` Mathias Burén
2011-02-20  9:52         ` Simon Mcnair

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox