Linux RAID subsystem development
 help / color / mirror / Atom feed
* Re: mdadm failed to remove internal bitmap
From: gary @ 2015-02-16  6:42 UTC (permalink / raw)
  To: NeilBrown; +Cc: linux-raid
In-Reply-To: <20150216143419.553cf93e@notabene.brown>

Hi Neil,

Please check the followings.
> What kernel are you running?
linux48:~ # uname -r
3.12.32-33-default

And 3.12.28-4-default kernel is ok.
> Please use "strace" on mdadm in a case where it fails, and post the result.
linux48:~ # strace mdadm --grow --bitmap=none /dev/md127
execve("/sbin/mdadm", ["mdadm", "--grow", "--bitmap=none", 
"/dev/md127"], [/* 58 vars */]) = 0
brk(0)                                  = 0xfe8000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fcab07ad000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or 
directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=93919, ...}) = 0
mmap(NULL, 93919, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fcab0796000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\34\2\0\0\0\0\0"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1978611, ...}) = 0
mmap(NULL, 3832352, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 
0) = 0x7fcab01e6000
mprotect(0x7fcab0384000, 2097152, PROT_NONE) = 0
mmap(0x7fcab0584000, 24576, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19e000) = 0x7fcab0584000
mmap(0x7fcab058a000, 14880, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fcab058a000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fcab0795000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fcab0794000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fcab0793000
arch_prctl(ARCH_SET_FS, 0x7fcab0794700) = 0
mprotect(0x7fcab0584000, 16384, PROT_READ) = 0
mprotect(0x677000, 4096, PROT_READ)     = 0
mprotect(0x7fcab07ae000, 4096, PROT_READ) = 0
munmap(0x7fcab0796000, 93919)           = 0
getpid()                                = 6000
brk(0)                                  = 0xfe8000
brk(0x1009000)                          = 0x1009000
open("/dev/md127", O_RDWR)              = 3
fstat(3, {st_mode=S_IFBLK|0660, st_rdev=makedev(9, 127), ...}) = 0
ioctl(3, RAID_VERSION, 0x7fff2e10d160)  = 0
open("/etc/mdadm.conf", O_RDONLY)       = -1 ENOENT (No such file or 
directory)
open("/etc/mdadm/mdadm.conf", O_RDONLY) = -1 ENOENT (No such file or 
directory)
open("/etc/mdadm.conf.d", O_RDONLY)     = -1 ENOENT (No such file or 
directory)
uname({sys="Linux", node="linux48", ...}) = 0
geteuid()                               = 0
fstat(3, {st_mode=S_IFBLK|0660, st_rdev=makedev(9, 127), ...}) = 0
ioctl(3, RAID_VERSION, 0x7fff2e10c060)  = 0
ioctl(3, GET_BITMAP_FILE, 0x7fff2e10c1f0) = 0
ioctl(3, GET_ARRAY_INFO, 0x7fff2e10c1a0) = 0
ioctl(3, SET_ARRAY_INFO, 0x7fff2e10c1a0) = -1 EINVAL (Invalid argument)
write(2, "mdadm: failed to remove internal"..., 41mdadm: failed to 
remove internal bitmap.
) = 41
exit_group(1)                           = ?
+++ exited with 1 +++

Thanks,
gary


^ permalink raw reply

* Re: mdadm failed to remove internal bitmap
From: NeilBrown @ 2015-02-16  6:48 UTC (permalink / raw)
  To: gary; +Cc: linux-raid
In-Reply-To: <54E1914C.9030000@gmail.com>

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

On Mon, 16 Feb 2015 14:42:20 +0800 gary <gary.mdjiang@gmail.com> wrote:

> Hi Neil,
> 
> Please check the followings.
> > What kernel are you running?
> linux48:~ # uname -r
> 3.12.32-33-default

Does this have any patches on top of 3.12.32 that touch md.c ?


> 
> And 3.12.28-4-default kernel is ok.

There are no differences between 3.12.28 and 3.12.32 that could affect this.


> ioctl(3, RAID_VERSION, 0x7fff2e10c060)  = 0
> ioctl(3, GET_BITMAP_FILE, 0x7fff2e10c1f0) = 0
> ioctl(3, GET_ARRAY_INFO, 0x7fff2e10c1a0) = 0
> ioctl(3, SET_ARRAY_INFO, 0x7fff2e10c1a0) = -1 EINVAL (Invalid argument)
> write(2, "mdadm: failed to remove internal"..., 41mdadm: failed to 
> remove internal bitmap.


EINVAL from SET_ARRAY_INFO almost certainly comes from update_array_info().
It can happen if:
 - more than 1 thing needs to be updated - seems unlikely
 - pers->quiesce is NULL - not possible for raid1.
 - mddev->bitmap->storage.file is not NULL.  Seems unlikely.

I suggest you look at the code you are actually running, and possible add
some printks to tell you where it is failing.

NeilBrown

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]

^ permalink raw reply

* RE: RAID 1 metadata - keep separate from mirror disks ?
From: Suresh Babu Kandukuru @ 2015-02-16 11:37 UTC (permalink / raw)
  To: Phil Turmel, linux-raid; +Cc: Ankur Bose
In-Reply-To: <54DB6BF0.3040309@turmel.org>

Yeh . Thank Phil . it is quite useful .  Now we see there are two options . 1) without metadata 2) externally managed metadata . But we would like to keep the metadata external to mirror leg ( like on host local drive )  for the reasons mentioned below , not the externally managed metadata , just by keeping metadata on mirror legs
 . Do we have any option with md driver ?

/Suresh
Principal developer | Hyderabad Team Lead
Phone: +914067246370 | Mobile: +919701451727 
Oracle Maxrep development

ORACLE India Hyderabad 
Oracle is committed to developing practices and products that help protect the environment 

-----Original Message-----
From: Phil Turmel [mailto:philip@turmel.org] 
Sent: Wednesday, February 11, 2015 8:19 PM
To: Suresh Babu Kandukuru; linux-raid@vger.kernel.org
Subject: Re: RAID 1 metadata - keep separate from mirror disks ?

Good morning Suresh,

On 02/11/2015 07:14 AM, Suresh Babu Kandukuru wrote:
> Hi There,
> 
> On the RAID 1  metadata: is there  any way to keep the metadata 
> separate from the mirror disks?  Could you  guide us on this ?, 
> please. In general, we need to keep all metadata off the device 
> itself, leaving all the device available for user data. This is 
> particularly important in the migration case, where we want to take an 
> existing LUN and add a second leg to it to create the mirror device 
> without changing any of the data or metadata on the LUN.

If you look at "man 4 md" you'll see some options.  If a legacy array type meets your needs, you can operate without metadata at all.  Use "mdadm --build" to assemble your raid at each boot.

Or, if your storage server can insert a leg ahead of you current LUN, you can then create the array with an explicit data offset matching the size of the inserted leg.  Create it degraded with the existing LUN, then add (a) LUN(s) to start mirroring.  This process will leave you the option to resize with more legs later.

Or you can add a leg to the end and create your array with version 1.0 metadata, which is placed at the end of the device.

Finally, you could write your own metadata container service for use with mdmon.  (That's a bit beyond my ability, sorry.)

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

* Re: re-add POLICY
From: Chris @ 2015-02-16 12:23 UTC (permalink / raw)
  To: linux-raid
In-Reply-To: <20150216142845.0d50207c@notabene.brown>

NeilBrown <neilb <at> suse.de> writes:
 
> Does your array have a write-intent bitmap configured?
> If it does, then "POLICY action=re-add" really should work.

Thank you for your insight. You are correct, the array has no write-intent
bitmap.

 
> If it doesn't, then maybe you need "POLICY action=spare".

OK, I will test this when the notebook is back in the house.



Actually, the man page had kind of kept me from trying this, because it
mentions the condition "if the device is bare", and I didn't want arbitrary
bare disk, partition, or free space to be automatically added, but just to
trigger an automatic try with raid members that got pulled and are save to
re-sync. (e.g. after the occasional bad block error that gets remapped by
the hardrives firmware)

[man page: spare works] "as  above  and  additionally:  if  the device is
bare it can become a spare if there is any array that it is a candidate for
based on domains and metadata."

Also, I wouldn't want a temporarily removed raid member to be added as spare
to some other array. Only have them added (re-synced even if no bitmap
re-add is possible) to the array they belong according to their superblock.

 
> This isn't the default, because depending on exactly how/why the device
> failed, it may not be safe to treat it as a spare.

OK, I can imagine detecting the corner cases may require some inteligent
error logging.

What I am looking for is a safe re-sync configuration option between
bitmap-based re-add, and treating a device as arbitrary spare drive.


Practically, this could be something like an additional action=re-sync
option in between re-add/spare, or having the "re-add" action also do
(non-bitmap) full re-syncs, if the device is in a clean state.


May recording the fail event count in the remaining superblocks help, as
described in
http://permalink.gmane.org/gmane.linux.raid/48077
help to detect the clean state?

Kind Regards,
Chris








^ permalink raw reply

* Re: RAID 1 metadata - keep separate from mirror disks ?
From: Phil Turmel @ 2015-02-16 13:02 UTC (permalink / raw)
  To: Suresh Babu Kandukuru, linux-raid; +Cc: Ankur Bose
In-Reply-To: <17135927-75bb-499a-8f43-6748c872feb0@default>

Hi Suresh,

On 02/16/2015 06:37 AM, Suresh Babu Kandukuru wrote:
> Yeh . Thank Phil . it is quite useful .  Now we see there are two
> options . 1) without metadata 2) externally managed metadata . But we
> would like to keep the metadata external to mirror leg ( like on host
> local drive )  for the reasons mentioned below , not the externally
> managed metadata , just by keeping metadata on mirror legs . Do we
> have any option with md driver ?

I'm not sure I understand your follow-up question.  You've restated my
answer, and re-iterated your preference to not have metadata on the
member devices.

So you need to write a service to handle metadata the way you want.  Or
write scripts that will do --build operations at appropriate times
without metadata.

I'm not entirely clear why the on-member metadata is unacceptable, but
as such, either remaining option needs some code of your own.

Phil

^ permalink raw reply

* Re: re-add POLICY
From: Phil Turmel @ 2015-02-16 13:17 UTC (permalink / raw)
  To: Chris, linux-raid
In-Reply-To: <loom.20150216T124230-883@post.gmane.org>

Hi Chris,

On 02/16/2015 07:23 AM, Chris wrote:
> .... with raid members that got pulled and are save to
> re-sync. (e.g. after the occasional bad block error that gets remapped by
> the hardrives firmware)

This should not be part of your concern here, as MD will handle
occassional UREs by reconstructing them and rewriting them on the fly,
-- without failing the device.  If devices are failing after read
errors, you have a different problem.  (Hint:  look at recent threads
for "timeout mismatch".)

Phil


^ permalink raw reply

* desktop disk's error recovery timouts (was: re-add POLICY)
From: Chris @ 2015-02-16 16:15 UTC (permalink / raw)
  To: linux-raid
In-Reply-To: <54E1EDEA.1030503@turmel.org>

Phil Turmel <philip <at> turmel.org> writes:

> On 02/16/2015 07:23 AM, Chris wrote:
> > .... with raid members that got pulled and are save to
> > re-sync. (e.g. after the occasional bad block error that gets remapped by
> > the hardrives firmware)
> 
> This should not be part of your concern here, as MD will handle
> occassional UREs by reconstructing them and rewriting them on the fly,


Phil, thank you for dropping in with this hint. It very likly applies to
the disks in the docking station. I searched the mailing list, most hits
said to search for the keywords, though. ;-) 

To understand the issue, I think
https://en.wikipedia.org/wiki/Error_recovery_control
was good.

It would be good if this configuration information could be available there
or at https://raid.wiki.kernel.org

Cheers,
Chris

----

I compiled some snippets from your messages, that could serve as a basis to
correction/completion by someone knowledgeable:



The default linux controller timeout is 30 seconds.  Drives
that spend longer than the timeout in recovery will be reset.  If they
don't respond to the reset (because they're busy in recovery) when the
raid tries to write the correct data back to them, they will be kicked
out of the array.

You *must* set ERC shorter than the
timeout, or set the driver timeout longer than the drive's worst-case
recovery time.  The defaults for desktop drives are *not* suitable for
linux software raid.

I strongly encourage you to run "smartctl -l scterc /dev/sdX" for each
of your drives.  For any drive that warns that it doesn't support SCT
ERC, set the controller device timeout to 180 like so:

echo 180 >/sys/block/sdX/device/timeout

If the report says read or write ERC is disabled, run "smartctl -l
scterc,70,70 /dev/sdX" to set it to 7.0 seconds.

You then set up a boot-time script to do these adjustments at every restart,
and make sure you performing regular scrub runs to ...?


You might not want that kind of long device timeout, but then you shouldn't
use desktop drives in md RAID.

Anyone using desktop drives which don't support SCT ERC in md RAID is 
liable to see long timeouts on the simplest bad sector, and they 
probably prefer to keep the drive in the array AND have the sector 
rewritten after reconstruction than have the drive failed out of the array.





^ permalink raw reply

* Re: desktop disk's error recovery timouts
From: Phil Turmel @ 2015-02-16 17:19 UTC (permalink / raw)
  To: Chris, linux-raid
In-Reply-To: <loom.20150216T165111-551@post.gmane.org>

On 02/16/2015 11:15 AM, Chris wrote:

> Phil, thank you for dropping in with this hint. It very likly applies to
> the disks in the docking station. I searched the mailing list, most hits
> said to search for the keywords, though. ;-) 

I don't always have time to explain. :-(

> To understand the issue, I think
> https://en.wikipedia.org/wiki/Error_recovery_control
> was good.

Good starting points in the archives:

http://marc.info/?l=linux-raid&m=135811522817345&w=1
http://marc.info/?l=linux-raid&m=133761065622164&w=2
http://marc.info/?l=linux-raid&m=135863964624202&w=2
http://marc.info/?l=linux-raid&m=139050322510249&w=2

There's useful info in each entire thread, though.

Phil

^ permalink raw reply

* What are mdadm maintainers to do? (was: desktop disk's error recovery timeouts)
From: Chris @ 2015-02-16 17:48 UTC (permalink / raw)
  To: linux-raid
In-Reply-To: <54E226B5.1080500@turmel.org>


Thank you for the additional information, it calls for action.


OK, calling for a solution to stop desktop drives from causing data loss and
affecting the mdadm reputation:


I gather that mdadm could ship with one additional udev rule that calls a
script to check/set scterc, or falls back to increasing the system timout.

Phil, you mentioned having posted such a script, could you prepare it for
addition to the mdadm package?


Would maintainers be ok with adding such a udev rule and script to the package?


Kind Regards,
Chris





^ permalink raw reply

* Re: All drive in Raid 5 are in 'spare' mode
From: Dush @ 2015-02-16 19:38 UTC (permalink / raw)
  To: Phil Turmel; +Cc: linux-raid@vger.kernel.org
In-Reply-To: <54DC04C1.4010107@turmel.org>

Hi Phil,

Thanks for your answer!

Unfortunately, I think I just loosed a disk (sde)... I don't see it
anymore in /dev , I have in dmesg:
d
[   12.280021] ata7: softreset failed (1st FIS failed)
[   22.280019] ata7: softreset failed (1st FIS failed)
[   57.280015] ata7: softreset failed (1st FIS failed)
[   57.280222] ata7: limiting SATA link speed to 1.5 Gbps
[   62.453345] ata7: softreset failed (device not ready)
[   62.453558] ata7: reset failed, giving up

And my reports look like this now:

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md126 : inactive sdb3[3](S) sdd3[1](S) sdc3[0](S)
     1447416000 blocks

md127 : active (auto-read-only) raid5 sdd2[1] sdb2[3] sdc2[0]
     16530624 blocks level 5, 64k chunk, algorithm 2 [4/3] [UU_U]

unused devices: <none>

# mdadm --examine /dev/sd[b-e]3
/dev/sdb3:
         Magic : a92b4efc
       Version : 0.90.00
          UUID : 3327f442:a00b59b2:1397f3c2:236c0edf
 Creation Time : Tue Jan 27 13:03:52 2009
    Raid Level : raid5
 Used Dev Size : 482472000 (460.12 GiB 494.05 GB)
    Array Size : 1447416000 (1380.36 GiB 1482.15 GB)
  Raid Devices : 4
 Total Devices : 4
Preferred Minor : 126

   Update Time : Wed Jan 21 20:55:48 2015
         State : active
Active Devices : 3
Working Devices : 4
Failed Devices : 1
 Spare Devices : 1
      Checksum : 6e656c69 - correct
        Events : 49656

        Layout : left-symmetric
    Chunk Size : 64K

     Number   Major   Minor   RaidDevice State
this     3       8       19        3      active sync   /dev/sdb3

  0     0       8       35        0      active sync   /dev/sdc3
  1     1       8       67        1      active sync
  2     2       0        0        2      faulty removed
  3     3       8       19        3      active sync   /dev/sdb3
  4     4       8       51        4      spare   /dev/sdd3
/dev/sdc3:
         Magic : a92b4efc
       Version : 0.90.00
          UUID : 3327f442:a00b59b2:1397f3c2:236c0edf
 Creation Time : Tue Jan 27 13:03:52 2009
    Raid Level : raid5
 Used Dev Size : 482472000 (460.12 GiB 494.05 GB)
    Array Size : 1447416000 (1380.36 GiB 1482.15 GB)
  Raid Devices : 4
 Total Devices : 4
Preferred Minor : 126

   Update Time : Wed Jan 21 23:34:52 2015
         State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 2
 Spare Devices : 1
      Checksum : 6e6653d5 - correct
        Events : 49666

        Layout : left-symmetric
    Chunk Size : 64K

     Number   Major   Minor   RaidDevice State
this     0       8       35        0      active sync   /dev/sdc3

  0     0       8       35        0      active sync   /dev/sdc3
  1     1       8       67        1      active sync
  2     2       0        0        2      faulty removed
  3     3       0        0        3      faulty removed
  4     4       8       51        4      spare   /dev/sdd3
/dev/sdd3:
         Magic : a92b4efc
       Version : 0.90.00
          UUID : 3327f442:a00b59b2:1397f3c2:236c0edf
 Creation Time : Tue Jan 27 13:03:52 2009
    Raid Level : raid5
 Used Dev Size : 482472000 (460.12 GiB 494.05 GB)
    Array Size : 1447416000 (1380.36 GiB 1482.15 GB)
  Raid Devices : 4
 Total Devices : 4
Preferred Minor : 126

   Update Time : Wed Jan 21 23:34:52 2015
         State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 2
 Spare Devices : 1
      Checksum : 6e6653f7 - correct
        Events : 49666

        Layout : left-symmetric
    Chunk Size : 64K

     Number   Major   Minor   RaidDevice State
this     1       8       67        1      active sync

  0     0       8       35        0      active sync   /dev/sdc3
  1     1       8       67        1      active sync
  2     2       0        0        2      faulty removed
  3     3       0        0        3      faulty removed
  4     4       8       51        4      spare   /dev/sdd3



You was right, I already tried to start the raid and it succeed to do
it with 3 drives: b, c and e. Then I added the d because I thought it
was de-synchronized.
Now I think my drive e was out of this raid for a while and I started
to had trouble because d started to had some issues.

Is it possible to force raid to start with b, c and d (forcing d to be
'normal')? Time for me to copy everything to another drive...


Thanks,
Dush

On 12 February 2015 at 01:41, Phil Turmel <philip@turmel.org> wrote:
> Hi Dush,
>
> On 02/11/2015 02:56 PM, Dush wrote:
>> Hi,
>>
>> I have a RAID 5 composed by 4x 500Go hdd but for some days, it's 'inactive'.
>>
>> I'm not raid expert and I prefer asking before doing an unrecoverable mistake...
>>
>> Is it possible to fix this raid (md126)?
>> Is it possible to recover data on it?
>
> Probably.  Very good report, btw.
>
>> Do I have a disk to change or it's "just" a desynchronization between disks?
>
> One disk is now truly a spare (/dev/sdd3), which suggests you already
> tried to '--add' it and didn't get anywhere.
>
> Step one:  collect some forensics for later.  syslog or dmesg containing
> your failure events.  Can be trimmed to just device and md stuff.
> "smartctl -x /dev/sdX" for each drive involved in the arrays.
>
> Then, we'll try the simple stuff.
>
> Make sure the array is stopped with:
>
> mdadm --stop /dev/md126
>
> Then, force assemble it without sdd:
>
> mdadm --assemble --force --verbose --run /dev/md126 /dev/sd[bce]3
>
> If that works, mount it and catch a backup of critical files.
>
> Then add your /dev/sdd3 back to the array and let it rebuild:
>
> mdadm --add /dev/md126 /dev/sdd3
>
> It may not make it through the rebuild if you have the common timeout
> mismatch problem.[1]  Show the dmesg and smartctl data (pasted inline is
> preferred) and we'll see.
>
> Phil
>
> Recent typical case:
> [1] http://marc.info/?l=linux-raid&m=142353387024935&w=1
>

^ permalink raw reply

* Re: What are mdadm maintainers to do?
From: Phil Turmel @ 2015-02-16 19:44 UTC (permalink / raw)
  To: Chris, linux-raid
In-Reply-To: <loom.20150216T183419-387@post.gmane.org>

On 02/16/2015 12:48 PM, Chris wrote:
> 
> Thank you for the additional information, it calls for action.
> 
> 
> OK, calling for a solution to stop desktop drives from causing data loss and
> affecting the mdadm reputation:
> 
> 
> I gather that mdadm could ship with one additional udev rule that calls a
> script to check/set scterc, or falls back to increasing the system timout.
> 
> Phil, you mentioned having posted such a script, could you prepare it for
> addition to the mdadm package?

No, I've posted snippets for users to customize in their own rc.local or
distro equivalent.  I vaguely recall posting a generic script for some
common cases, but I've personally converted to raid-rated drives
everywhere in the past couple years.

Somebody else will have to tackle this.

> Would maintainers be ok with adding such a udev rule and script to the package?

Not my call, but keep in mind that this will add a dependency on
smartmontools or whatever means is used to access/write to scterc.

Phil

^ permalink raw reply

* Re: All drive in Raid 5 are in 'spare' mode
From: Phil Turmel @ 2015-02-16 20:03 UTC (permalink / raw)
  To: Dush; +Cc: linux-raid@vger.kernel.org
In-Reply-To: <CAL7hTOfhWiCmKVVCtpmHuB-OJkZjQsuaKZMN8oFKAArh=NuSHQ@mail.gmail.com>

Hi Dush,

{Convention on kernel.org is to trim replies and either bottom post or
interleave.  Please don't top-post.}

On 02/16/2015 02:38 PM, Dush wrote:
> Hi Phil,
> 
> Thanks for your answer!
> 
> Unfortunately, I think I just loosed a disk (sde)... I don't see it
> anymore in /dev , I have in dmesg:
> d
> [   12.280021] ata7: softreset failed (1st FIS failed)
> [   22.280019] ata7: softreset failed (1st FIS failed)
> [   57.280015] ata7: softreset failed (1st FIS failed)
> [   57.280222] ata7: limiting SATA link speed to 1.5 Gbps
> [   62.453345] ata7: softreset failed (device not ready)
> [   62.453558] ata7: reset failed, giving up

Where are the forensics I asked for as "Step one"?  Did you read about
and fix any timeout mismatch issue?

[trim /]

> You was right, I already tried to start the raid and it succeed to do
> it with 3 drives: b, c and e. Then I added the d because I thought it
> was de-synchronized.
> Now I think my drive e was out of this raid for a while and I started
> to had trouble because d started to had some issues.
> 
> Is it possible to force raid to start with b, c and d (forcing d to be
> 'normal')? Time for me to copy everything to another drive...

No.  sdd3 was converted to a spare.

Also, your device names have changed.  You *must* keep track of which
one is which "RaidDevice".  Specifically, what was "sde" now appears to
be "sdd".  Did you reboot?  You know that device names are not
guaranteed to be consistent from one boot to the next, I hope.  Show an
excerpt from "ls -l /dev/disk/by-id/" with your next report so we know
which drive serial number has which name.

Phil

^ permalink raw reply

* Re: md_raid5 using 100% CPU and hang with status resync=PENDING, if a drive is removed during initialization
From: Jes Sorensen @ 2015-02-16 20:36 UTC (permalink / raw)
  To: NeilBrown; +Cc: Manibalan P, Pasi Kärkkäinen, linux-raid
In-Reply-To: <20150203093040.569aa5e1@notabene.brown>

NeilBrown <neilb@suse.de> writes:
> On Mon, 2 Feb 2015 07:10:14 +0000 Manibalan P <pmanibalan@amiindia.co.in>
> wrote:
>
>> Dear All,
>> 	Any updates on this issue.
>
> Probably the same as:
>
>   http://marc.info/?l=linux-raid&m=142283560704091&w=2

Hi Neil,

I ran some tests on this one against the latest Linus' tree as of today
(1fa185ebcbcefdc5229c783450c9f0439a69f0c1) which I believe includes all
your pending 3.20 patches.

I am able to reproduce Manibalan's hangs on a system with 4 SSDs if I
run fio on top of a device while it is resyncing and I fail one of the
devices.

I can reproduce the issue for raid4 and raid5, but I don't see it if I
I use a raid6.

The following sequence consistently reproduces the problem for me:

mdadm -C /dev/md111 -f -e 1.2 -l5 -n4 /dev/sd[ghij]3
fio --name=md111 --filename=/dev/md111 --thread --numjobs=10 --direct=1 --group_reporting --unlink=0 --loops=1 --offset=0 --randrepeat=1 --norandommap --scramble_buffers=1 --stonewall --rw=randwrite --bs=8704 --iodepth=4000 --runtime=3000 --blockalign=512
mdadm /dev/md111 -f /dev/sdg3

Cheers,
Jes

^ permalink raw reply

* Re: All drive in Raid 5 are in 'spare' mode
From: Dush @ 2015-02-16 22:24 UTC (permalink / raw)
  To: Phil Turmel; +Cc: linux-raid@vger.kernel.org
In-Reply-To: <54E24D10.7030901@turmel.org>

> {Convention on kernel.org is to trim replies and either bottom post or
> interleave.  Please don't top-post.}

Sorry about that...


> Where are the forensics I asked for as "Step one"?

# dmesg
[   12.273354] ata7: softreset failed (1st FIS failed)
[   22.273352] ata7: softreset failed (1st FIS failed)
[   57.273349] ata7: softreset failed (1st FIS failed)
[   57.273556] ata7: limiting SATA link speed to 1.5 Gbps
[   62.446679] ata7: softreset failed (device not ready)
[   62.446892] ata7: reset failed, giving up
[   62.933371] ata8: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[   62.939016] ata8.00: ATA-8: SAMSUNG HD103SJ, 1AJ10001, max UDMA/133
[   62.939019] ata8.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 31/32), AA
[   62.944696] ata8.00: configured for UDMA/133
[    0.380968] random: systemd-tmpfile urandom read with 1 bits of
entropy available
[    0.411310] ata1: PATA max UDMA/100 cmd 0xdc00 ctl 0xd880 bmdma 0xd400 irq 17
[    0.411312] ata2: PATA max UDMA/100 cmd 0xd800 ctl 0xd480 bmdma 0xd408 irq 17
[   63.473837] systemd[1]: Cannot add dependency job for unit
gssproxy.service, ignoring: Unit gssproxy.service failed to load: No
such file or directory.
[   63.632259] systemd-journald[157]: Received request to flush
runtime journal from PID 1
[   63.884029] md: bind<sdc2>
[   63.895136] md: bind<sdc3>
[   63.910832] md: bind<sdb2>
[   63.926903] md: bind<sdd3>
[   63.937151] md: bind<sdd2>
[   63.940172] md: bind<sdb3>
[   94.538293] md: raid6 personality registered for level 6
[   94.538298] md: raid5 personality registered for level 5
[   94.538300] md: raid4 personality registered for level 4
[   94.538954] md/raid:md127: device sdd2 operational as raid disk 1
[   94.538958] md/raid:md127: device sdb2 operational as raid disk 3
[   94.538960] md/raid:md127: device sdc2 operational as raid disk 0
[   94.539457] md/raid:md127: allocated 0kB
[   94.539493] md/raid:md127: raid level 5 active with 3 out of 4
devices, algorithm 2
[   94.539568] md127: detected capacity change from 0 to 16927358976
[   94.544725]  md127: unknown partition table


# smartctl -x /dev/sdb
smartctl 6.3 2014-07-26 r3976 [x86_64-linux-3.18.6-1-ARCH] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.11
Device Model:     ST3500320AS
Serial Number:    9QM8H48M
LU WWN Device Id: 5 000c50 01099d533
Firmware Version: SD15
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 4
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Feb 16 22:09:04 2015 GMT

==> WARNING: There are known problems with these drives,
THIS DRIVE MAY OR MAY NOT BE AFFECTED,
see the following web pages for details:
http://knowledge.seagate.com/articles/en_US/FAQ/207931en
http://knowledge.seagate.com/articles/en_US/FAQ/207951en
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=632758

SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Unavailable
APM feature is:   Unavailable
Rd look-ahead is: Enabled
Write cache is:   Enabled
ATA Security is:  Disabled, frozen [SEC2]
Wt Cache Reorder: Unknown

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

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

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
 1 Raw_Read_Error_Rate     POSR--   099   088   006    -    160388856
 3 Spin_Up_Time            PO----   094   088   000    -    0
 4 Start_Stop_Count        -O--CK   099   099   020    -    1288
 5 Reallocated_Sector_Ct   PO--CK   100   100   036    -    1290
 7 Seek_Error_Rate         POSR--   069   060   030    -    77467799408
 9 Power_On_Hours          -O--CK   061   061   000    -    34392
10 Spin_Retry_Count        PO--C-   100   100   097    -    0
12 Power_Cycle_Count       -O--CK   100   100   020    -    988
184 End-to-End_Error        -O--CK   100   100   099    -    0
187 Reported_Uncorrect      -O--CK   001   001   000    -    183
188 Command_Timeout         -O--CK   100   096   000    -    4295032839
189 High_Fly_Writes         -O-RCK   100   100   000    -    0
190 Airflow_Temperature_Cel -O---K   067   054   045    -    33 (Min/Max 16/33)
194 Temperature_Celsius     -O---K   033   046   000    -    33 (0 10 0 0 0)
195 Hardware_ECC_Recovered  -O-RC-   024   016   000    -    160388856
197 Current_Pending_Sector  -O--C-   100   100   000    -    757
198 Offline_Uncorrectable   ----C-   100   100   000    -    757
199 UDMA_CRC_Error_Count    -OSRCK   200   200   000    -    0
                           ||||||_ K auto-keep
                           |||||__ C event count
                           ||||___ R error rate
                           |||____ S speed/performance
                           ||_____ O updated online
                           |______ P prefailure warning

General Purpose Log Directory Version 1
SMART           Log Directory Version 1 [multi-sector log support]
Address    Access  R/W   Size  Description
0x00       GPL,SL  R/O      1  Log Directory
0x01       GPL,SL  R/O      1  Summary SMART error log
0x02       GPL,SL  R/O      5  Comprehensive SMART error log
0x03       GPL,SL  R/O      5  Ext. Comprehensive SMART error log
0x06       GPL,SL  R/O      1  SMART self-test log
0x07       GPL,SL  R/O      1  Extended self-test log
0x09       GPL,SL  R/W      1  Selective self-test log
0x10       GPL,SL  R/O      1  NCQ Command Error log
0x11       GPL,SL  R/O      1  SATA Phy Event Counters
0x21       GPL,SL  R/O      1  Write stream error log
0x22       GPL,SL  R/O      1  Read stream error log
0x80-0x9f  GPL,SL  R/W     16  Host vendor specific log
0xa1       GPL,SL  VS      20  Device vendor specific log
0xa2       GPL     VS    2248  Device vendor specific log
0xa8       GPL,SL  VS      20  Device vendor specific log
0xa9       GPL,SL  VS       1  Device vendor specific log
0xb0       GPL     VS    2819  Device vendor specific log
0xbe-0xbf  GPL     VS   65535  Device vendor specific log
0xe0       GPL,SL  R/W      1  SCT Command/Status
0xe1       GPL,SL  R/W      1  SCT Data Transfer

SMART Extended Comprehensive Error Log Version: 1 (5 sectors)
Device Error Count: 261 (device log contains only the most recent 20 errors)
       CR     = Command Register
       FEATR  = Features Register
       COUNT  = Count (was: Sector Count) Register
       LBA_48 = Upper bytes of LBA High/Mid/Low Registers ]  ATA-8
       LH     = LBA High (was: Cylinder High) Register    ]   LBA
       LM     = LBA Mid (was: Cylinder Low) Register      ] Register
       LL     = LBA Low (was: Sector Number) Register     ]
       DV     = Device (was: Device/Head) Register
       DC     = Device Control Register
       ER     = Error register
       ST     = Status register
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 261 [0] occurred at disk power-on lifetime: 34388 hours (1432
days + 20 hours)
 When the command that caused the error occurred, the device was active or idle.

 After command completion occurred, registers were:
 ER -- ST COUNT  LBA_48  LH LM LL DV DC
 -- -- -- == -- == == == -- -- -- -- --
 04 -- 71 00 04 00 00 00 00 32 9d e0 00  Device Fault; Error: ABRT

 Commands leading to the command that caused the error were:
 CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
 -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
 a1 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:14.067  IDENTIFY PACKET DEVICE
 ec 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:14.067  IDENTIFY DEVICE
 00 00 00 00 00 00 00 00 00 00 00 00 04     13:02:13.913  NOP [Abort
queued commands]
 00 00 00 00 00 00 00 00 00 00 00 00 ff     13:02:13.587  NOP [Abort
queued commands]
 a1 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.581  IDENTIFY PACKET DEVICE

Error 260 [19] occurred at disk power-on lifetime: 34388 hours (1432
days + 20 hours)
 When the command that caused the error occurred, the device was active or idle.

 After command completion occurred, registers were:
 ER -- ST COUNT  LBA_48  LH LM LL DV DC
 -- -- -- == -- == == == -- -- -- -- --
 04 -- 71 00 04 00 00 00 00 32 9d e0 00

 Commands leading to the command that caused the error were:
 CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
 -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
 ec 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:14.067  IDENTIFY DEVICE
 00 00 00 00 00 00 00 00 00 00 00 00 04     13:02:13.913  NOP [Abort
queued commands]
 00 00 00 00 00 00 00 00 00 00 00 00 ff     13:02:13.587  NOP [Abort
queued commands]
 a1 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.581  IDENTIFY PACKET DEVICE
 ec 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.580  IDENTIFY DEVICE

Error 259 [18] occurred at disk power-on lifetime: 34388 hours (1432
days + 20 hours)
 When the command that caused the error occurred, the device was active or idle.

 After command completion occurred, registers were:
 ER -- ST COUNT  LBA_48  LH LM LL DV DC
 -- -- -- == -- == == == -- -- -- -- --
 04 -- 71 00 04 00 00 00 00 32 9d e0 00  Device Fault; Error: ABRT

 Commands leading to the command that caused the error were:
 CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
 -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
 a1 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.581  IDENTIFY PACKET DEVICE
 ec 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.580  IDENTIFY DEVICE
 00 00 00 00 00 00 00 00 00 00 00 00 04     13:02:08.427  NOP [Abort
queued commands]
 00 00 00 00 00 00 00 00 00 00 00 00 ff     13:02:08.107  NOP [Abort
queued commands]
 a1 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.086  IDENTIFY PACKET DEVICE

Error 258 [17] occurred at disk power-on lifetime: 34388 hours (1432
days + 20 hours)
 When the command that caused the error occurred, the device was active or idle.

 After command completion occurred, registers were:
 ER -- ST COUNT  LBA_48  LH LM LL DV DC
 -- -- -- == -- == == == -- -- -- -- --
 04 -- 71 00 04 00 00 00 00 32 9d e0 00

 Commands leading to the command that caused the error were:
 CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
 -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
 ec 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.580  IDENTIFY DEVICE
 00 00 00 00 00 00 00 00 00 00 00 00 04     13:02:08.427  NOP [Abort
queued commands]
 00 00 00 00 00 00 00 00 00 00 00 00 ff     13:02:08.107  NOP [Abort
queued commands]
 a1 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.086  IDENTIFY PACKET DEVICE
 ec 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.069  IDENTIFY DEVICE

Error 257 [16] occurred at disk power-on lifetime: 34388 hours (1432
days + 20 hours)
 When the command that caused the error occurred, the device was active or idle.

 After command completion occurred, registers were:
 ER -- ST COUNT  LBA_48  LH LM LL DV DC
 -- -- -- == -- == == == -- -- -- -- --
 04 -- 71 00 04 00 00 00 00 32 9d e0 00  Device Fault; Error: ABRT

 Commands leading to the command that caused the error were:
 CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
 -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
 a1 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.086  IDENTIFY PACKET DEVICE
 ec 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.069  IDENTIFY DEVICE
 2f 00 00 00 01 00 00 00 00 00 10 a0 00     13:02:08.047  READ LOG EXT
 60 00 00 00 10 00 00 81 00 05 ef 40 00     13:02:04.913  READ FPDMA QUEUED
 60 00 00 00 08 00 00 83 00 04 9f 40 00     13:02:04.913  READ FPDMA QUEUED

Error 256 [15] occurred at disk power-on lifetime: 34388 hours (1432
days + 20 hours)
 When the command that caused the error occurred, the device was active or idle.

 After command completion occurred, registers were:
 ER -- ST COUNT  LBA_48  LH LM LL DV DC
 -- -- -- == -- == == == -- -- -- -- --
 04 -- 71 00 04 00 00 00 00 32 9d e0 00

 Commands leading to the command that caused the error were:
 CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
 -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
 ec 00 00 00 00 00 00 00 00 00 00 a0 00     13:02:08.069  IDENTIFY DEVICE
 2f 00 00 00 01 00 00 00 00 00 10 a0 00     13:02:08.047  READ LOG EXT
 60 00 00 00 10 00 00 81 00 05 ef 40 00     13:02:04.913  READ FPDMA QUEUED
 60 00 00 00 08 00 00 83 00 04 9f 40 00     13:02:04.913  READ FPDMA QUEUED
 60 00 00 00 08 00 00 41 00 08 47 40 00     13:02:04.912  READ FPDMA QUEUED

Error 255 [14] occurred at disk power-on lifetime: 34388 hours (1432
days + 20 hours)
 When the command that caused the error occurred, the device was active or idle.

 After command completion occurred, registers were:
 ER -- ST COUNT  LBA_48  LH LM LL DV DC
 -- -- -- == -- == == == -- -- -- -- --
 04 -- 71 00 04 00 00 00 00 32 9d e0 00  Device Fault; Error: ABRT

 Commands leading to the command that caused the error were:
 CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
 -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
 2f 00 00 00 01 00 00 00 00 00 10 a0 00     13:02:08.047  READ LOG EXT
 60 00 00 00 10 00 00 81 00 05 ef 40 00     13:02:04.913  READ FPDMA QUEUED
 60 00 00 00 08 00 00 83 00 04 9f 40 00     13:02:04.913  READ FPDMA QUEUED
 60 00 00 00 08 00 00 41 00 08 47 40 00     13:02:04.912  READ FPDMA QUEUED
 60 00 00 00 08 00 00 70 00 06 b7 40 00     13:02:04.909  READ FPDMA QUEUED

Error 254 [13] occurred at disk power-on lifetime: 34388 hours (1432
days + 20 hours)
 When the command that caused the error occurred, the device was active or idle.

 After command completion occurred, registers were:
 ER -- ST COUNT  LBA_48  LH LM LL DV DC
 -- -- -- == -- == == == -- -- -- -- --
 04 -- 71 00 04 00 00 00 00 32 9d 40 00  Device Fault; Error: ABRT at
LBA = 0x0000329d = 12957

 Commands leading to the command that caused the error were:
 CR FEATR COUNT  LBA_48  LH LM LL DV DC  Powered_Up_Time  Command/Feature_Name
 -- == -- == -- == == == -- -- -- -- --  ---------------  --------------------
 60 00 00 00 10 00 00 81 00 05 ef 40 00     13:02:04.913  READ FPDMA QUEUED
 60 00 00 00 08 00 00 83 00 04 9f 40 00     13:02:04.913  READ FPDMA QUEUED
 60 00 00 00 08 00 00 41 00 08 47 40 00     13:02:04.912  READ FPDMA QUEUED
 60 00 00 00 08 00 00 70 00 06 b7 40 00     13:02:04.909  READ FPDMA QUEUED
 60 00 00 00 08 00 00 7e 00 03 87 40 00     13:02:04.909  READ FPDMA QUEUED

SMART Extended Self-test Log Version: 1 (1 sectors)
Num  Test_Description    Status                  Remaining
LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       90%     34220
      336941
# 2  Extended offline    Completed: read failure       90%     32539
      39315653
# 3  Extended offline    Completed without error       00%     25079         -
# 4  Extended offline    Interrupted (host reset)      00%     24385         -
# 5  Short offline       Completed without error       00%     19163         -
# 6  Short offline       Completed without error       00%     10742         -
# 7  Extended offline    Completed without error       00%        79         -

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

SCT Status Version:                  3
SCT Version (vendor specific):       522 (0x020a)
SCT Support Level:                   1
Device State:                        Active (0)
Current Temperature:                    33 Celsius
Power Cycle Min/Max Temperature:     16/33 Celsius
Lifetime    Min/Max Temperature:     10/46 Celsius
Under/Over Temperature Limit Count:   0/235

SCT Temperature History Version:     2
Temperature Sampling Period:         1 minute
Temperature Logging Interval:        1 minute
Min/Max recommended Temperature:      0/ 0 Celsius
Min/Max Temperature Limit:            0/ 0 Celsius
Temperature History Size (Index):    128 (50)

Index    Estimated Time   Temperature Celsius
 51    2015-02-16 20:02    30  ***********
...    ..( 12 skipped).    ..  ***********
 64    2015-02-16 20:15    30  ***********
 65    2015-02-16 20:16    28  *********
 66    2015-02-16 20:17    28  *********
 67    2015-02-16 20:18    28  *********
 68    2015-02-16 20:19    29  **********
...    ..(  6 skipped).    ..  **********
 75    2015-02-16 20:26    29  **********
 76    2015-02-16 20:27    30  ***********
...    ..(  9 skipped).    ..  ***********
 86    2015-02-16 20:37    30  ***********
 87    2015-02-16 20:38    31  ************
...    ..( 40 skipped).    ..  ************
  0    2015-02-16 21:19    31  ************
  1    2015-02-16 21:20    32  *************
...    ..( 38 skipped).    ..  *************
 40    2015-02-16 21:59    32  *************
 41    2015-02-16 22:00    33  **************
...    ..(  8 skipped).    ..  **************
 50    2015-02-16 22:09    33  **************

SCT Error Recovery Control:
          Read: Disabled
         Write: Disabled

Device Statistics (GP Log 0x04) not supported

SATA Phy Event Counters (GP Log 0x11)
ID      Size     Value  Description
0x000a  2           14  Device-to-host register FISes sent due to a COMRESET
0x0001  2            0  Command failed due to ICRC error
0x0003  2            0  R_ERR response for device-to-host data FIS
0x0004  2            0  R_ERR response for host-to-device data FIS
0x0006  2            0  R_ERR response for device-to-host non-data FIS
0x0007  2            0  R_ERR response for host-to-device non-data FIS

# smartctl -x /dev/sdc
smartctl 6.3 2014-07-26 r3976 [x86_64-linux-3.18.6-1-ARCH] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Black
Device Model:     WDC WD5001AALS-00E3A0
Serial Number:    WD-WCATR3121296
LU WWN Device Id: 5 0014ee 25a457f4e
Firmware Version: 05.01D05
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Feb 16 22:09:29 2015 GMT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Disabled
APM feature is:   Unavailable
Rd look-ahead is: Enabled
Write cache is:   Enabled
ATA Security is:  Disabled, frozen [SEC2]
Wt Cache Reorder: Enabled

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

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

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
 1 Raw_Read_Error_Rate     POSR-K   200   200   051    -    0
 3 Spin_Up_Time            POS--K   179   174   021    -    4050
 4 Start_Stop_Count        -O--CK   100   100   000    -    963
 5 Reallocated_Sector_Ct   PO--CK   200   200   140    -    0
 7 Seek_Error_Rate         -OSR-K   200   200   000    -    0
 9 Power_On_Hours          -O--CK   068   068   000    -    23596
10 Spin_Retry_Count        -O--CK   100   100   000    -    0
11 Calibration_Retry_Count -O--CK   100   100   000    -    0
12 Power_Cycle_Count       -O--CK   100   100   000    -    739
192 Power-Off_Retract_Count -O--CK   200   200   000    -    97
193 Load_Cycle_Count        -O--CK   200   200   000    -    865
194 Temperature_Celsius     -O---K   111   097   000    -    36
196 Reallocated_Event_Count -O--CK   200   200   000    -    0
197 Current_Pending_Sector  -O--CK   200   200   000    -    0
198 Offline_Uncorrectable   ----CK   200   200   000    -    0
199 UDMA_CRC_Error_Count    -O--CK   200   200   000    -    0
200 Multi_Zone_Error_Rate   ---R--   200   200   000    -    0
                           ||||||_ K auto-keep
                           |||||__ C event count
                           ||||___ R error rate
                           |||____ S speed/performance
                           ||_____ O updated online
                           |______ P prefailure warning

General Purpose Log Directory Version 1
SMART           Log Directory Version 1 [multi-sector log support]
Address    Access  R/W   Size  Description
0x00       GPL,SL  R/O      1  Log Directory
0x01           SL  R/O      1  Summary SMART error log
0x02           SL  R/O      5  Comprehensive SMART error log
0x03       GPL     R/O      6  Ext. Comprehensive SMART error log
0x06           SL  R/O      1  SMART self-test log
0x07       GPL     R/O      1  Extended self-test log
0x09           SL  R/W      1  Selective self-test log
0x10       GPL     R/O      1  NCQ Command Error log
0x11       GPL     R/O      1  SATA Phy Event Counters
0x80-0x9f  GPL,SL  R/W     16  Host vendor specific log
0xa0-0xa7  GPL,SL  VS      16  Device vendor specific log
0xa8-0xb5  GPL,SL  VS       1  Device vendor specific log
0xb6       GPL     VS       1  Device vendor specific log
0xb7       GPL,SL  VS       1  Device vendor specific log
0xc0       GPL,SL  VS       1  Device vendor specific log
0xc1       GPL     VS      24  Device vendor specific log
0xe0       GPL,SL  R/W      1  SCT Command/Status
0xe1       GPL,SL  R/W      1  SCT Data Transfer

SMART Extended Comprehensive Error Log Version: 1 (6 sectors)
No Errors Logged

SMART Extended Self-test Log Version: 1 (1 sectors)
Num  Test_Description    Status                  Remaining
LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%     23424         -
# 2  Extended offline    Completed without error       00%     21741         -
# 3  Extended offline    Completed without error       00%     14306         -
# 4  Short offline       Completed without error       00%      8409         -
# 5  Short offline       Completed without error       00%         2         -

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

SCT Status Version:                  2
SCT Version (vendor specific):       258 (0x0102)
SCT Support Level:                   1
Device State:                        Active (0)
Current Temperature:                    36 Celsius
Power Cycle Min/Max Temperature:     18/37 Celsius
Lifetime    Min/Max Temperature:     36/50 Celsius
Under/Over Temperature Limit Count:   0/0

SCT Temperature History Version:     2
Temperature Sampling Period:         1 minute
Temperature Logging Interval:        1 minute
Min/Max recommended Temperature:      0/60 Celsius
Min/Max Temperature Limit:           -41/85 Celsius
Temperature History Size (Index):    478 (252)

Index    Estimated Time   Temperature Celsius
253    2015-02-16 14:12    35  ****************
...    ..(  6 skipped).    ..  ****************
260    2015-02-16 14:19    35  ****************
261    2015-02-16 14:20    36  *****************
...    ..( 16 skipped).    ..  *****************
278    2015-02-16 14:37    36  *****************
279    2015-02-16 14:38    37  ******************
280    2015-02-16 14:39    36  *****************
...    ..(  2 skipped).    ..  *****************
283    2015-02-16 14:42    36  *****************
284    2015-02-16 14:43    37  ******************
285    2015-02-16 14:44    36  *****************
...    ..( 54 skipped).    ..  *****************
340    2015-02-16 15:39    36  *****************
341    2015-02-16 15:40    37  ******************
342    2015-02-16 15:41    36  *****************
...    ..(  3 skipped).    ..  *****************
346    2015-02-16 15:45    36  *****************
347    2015-02-16 15:46    37  ******************
348    2015-02-16 15:47    36  *****************
...    ..(  4 skipped).    ..  *****************
353    2015-02-16 15:52    36  *****************
354    2015-02-16 15:53    37  ******************
355    2015-02-16 15:54    36  *****************
...    ..(  2 skipped).    ..  *****************
358    2015-02-16 15:57    36  *****************
359    2015-02-16 15:58    37  ******************
360    2015-02-16 15:59    36  *****************
...    ..( 10 skipped).    ..  *****************
371    2015-02-16 16:10    36  *****************
372    2015-02-16 16:11    37  ******************
373    2015-02-16 16:12    36  *****************
...    ..( 12 skipped).    ..  *****************
386    2015-02-16 16:25    36  *****************
387    2015-02-16 16:26    37  ******************
388    2015-02-16 16:27    36  *****************
...    ..(145 skipped).    ..  *****************
 56    2015-02-16 18:53    36  *****************
 57    2015-02-16 18:54    35  ****************
...    ..( 46 skipped).    ..  ****************
104    2015-02-16 19:41    35  ****************
105    2015-02-16 19:42     ?  -
106    2015-02-16 19:43    18  -
107    2015-02-16 19:44    19  -
108    2015-02-16 19:45    20  *
109    2015-02-16 19:46    20  *
110    2015-02-16 19:47    21  **
111    2015-02-16 19:48    21  **
112    2015-02-16 19:49    22  ***
113    2015-02-16 19:50    22  ***
114    2015-02-16 19:51    23  ****
115    2015-02-16 19:52    24  *****
116    2015-02-16 19:53    25  ******
117    2015-02-16 19:54    25  ******
118    2015-02-16 19:55    25  ******
119    2015-02-16 19:56    26  *******
...    ..(  3 skipped).    ..  *******
123    2015-02-16 20:00    26  *******
124    2015-02-16 20:01    27  ********
125    2015-02-16 20:02    27  ********
126    2015-02-16 20:03    27  ********
127    2015-02-16 20:04    28  *********
128    2015-02-16 20:05    28  *********
129    2015-02-16 20:06    29  **********
...    ..(  4 skipped).    ..  **********
134    2015-02-16 20:11    29  **********
135    2015-02-16 20:12    30  ***********
...    ..(  4 skipped).    ..  ***********
140    2015-02-16 20:17    30  ***********
141    2015-02-16 20:18    31  ************
142    2015-02-16 20:19    31  ************
143    2015-02-16 20:20    30  ***********
144    2015-02-16 20:21    31  ************
...    ..(  3 skipped).    ..  ************
148    2015-02-16 20:25    31  ************
149    2015-02-16 20:26    32  *************
...    ..( 18 skipped).    ..  *************
168    2015-02-16 20:45    32  *************
169    2015-02-16 20:46    33  **************
...    ..( 16 skipped).    ..  **************
186    2015-02-16 21:03    33  **************
187    2015-02-16 21:04    34  ***************
...    ..(  2 skipped).    ..  ***************
190    2015-02-16 21:07    34  ***************
191    2015-02-16 21:08    35  ****************
192    2015-02-16 21:09    34  ***************
193    2015-02-16 21:10    35  ****************
...    ..( 31 skipped).    ..  ****************
225    2015-02-16 21:42    35  ****************
226    2015-02-16 21:43    36  *****************
227    2015-02-16 21:44    36  *****************
228    2015-02-16 21:45    35  ****************
229    2015-02-16 21:46    34  ***************
230    2015-02-16 21:47    33  **************
231    2015-02-16 21:48    33  **************
232    2015-02-16 21:49     ?  -
233    2015-02-16 21:50    33  **************
234    2015-02-16 21:51    32  *************
235    2015-02-16 21:52    32  *************
236    2015-02-16 21:53    33  **************
...    ..(  8 skipped).    ..  **************
245    2015-02-16 22:02    33  **************
246    2015-02-16 22:03    34  ***************
...    ..(  3 skipped).    ..  ***************
250    2015-02-16 22:07    34  ***************
251    2015-02-16 22:08    35  ****************
252    2015-02-16 22:09    35  ****************

SCT Error Recovery Control command not supported

Device Statistics (GP Log 0x04) not supported

SATA Phy Event Counters (GP Log 0x11)
ID      Size     Value  Description
0x0001  2            0  Command failed due to ICRC error
0x0002  2            0  R_ERR response for data FIS
0x0003  2            0  R_ERR response for device-to-host data FIS
0x0004  2            0  R_ERR response for host-to-device data FIS
0x0005  2            0  R_ERR response for non-data FIS
0x0006  2            0  R_ERR response for device-to-host non-data FIS
0x0007  2            0  R_ERR response for host-to-device non-data FIS
0x000a  2            9  Device-to-host register FISes sent due to a COMRESET
0x000b  2            0  CRC errors within host-to-device FIS
0x8000  4        14489  Vendor specific


# smartctl -x /dev/sdd
smartctl 6.3 2014-07-26 r3976 [x86_64-linux-3.18.6-1-ARCH] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     SAMSUNG SpinPoint F3
Device Model:     SAMSUNG HD103SJ
Serial Number:    S246J9KB924045
LU WWN Device Id: 5 0024e9 2062a5827
Firmware Version: 1AJ10001
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Feb 16 22:10:00 2015 GMT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Disabled
APM feature is:   Disabled
Rd look-ahead is: Enabled
Write cache is:   Enabled
ATA Security is:  Disabled, frozen [SEC2]
Wt Cache Reorder: Enabled

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

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

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
 1 Raw_Read_Error_Rate     POSR-K   100   100   051    -    1
 2 Throughput_Performance  -OS--K   055   050   000    -    8667
 3 Spin_Up_Time            PO---K   069   067   025    -    9424
 4 Start_Stop_Count        -O--CK   100   100   000    -    589
 5 Reallocated_Sector_Ct   PO--CK   252   252   010    -    0
 7 Seek_Error_Rate         -OSR-K   252   252   051    -    0
 8 Seek_Time_Performance   --S--K   252   252   015    -    0
 9 Power_On_Hours          -O--CK   100   100   000    -    15097
10 Spin_Retry_Count        -O--CK   252   252   051    -    0
11 Calibration_Retry_Count -O--CK   252   252   000    -    0
12 Power_Cycle_Count       -O--CK   100   100   000    -    491
191 G-Sense_Error_Rate      -O---K   100   100   000    -    3
192 Power-Off_Retract_Count -O---K   252   252   000    -    0
194 Temperature_Celsius     -O----   064   055   000    -    34 (Min/Max 11/45)
195 Hardware_ECC_Recovered  -O-RCK   100   100   000    -    0
196 Reallocated_Event_Count -O--CK   252   252   000    -    0
197 Current_Pending_Sector  -O--CK   252   252   000    -    0
198 Offline_Uncorrectable   ----CK   252   252   000    -    0
199 UDMA_CRC_Error_Count    -OS-CK   200   200   000    -    0
200 Multi_Zone_Error_Rate   -O-R-K   100   100   000    -    30
223 Load_Retry_Count        -O--CK   252   252   000    -    0
225 Load_Cycle_Count        -O--CK   100   100   000    -    591
                           ||||||_ K auto-keep
                           |||||__ C event count
                           ||||___ R error rate
                           |||____ S speed/performance
                           ||_____ O updated online
                           |______ P prefailure warning

General Purpose Log Directory Version 1
SMART           Log Directory Version 1 [multi-sector log support]
Address    Access  R/W   Size  Description
0x00       GPL,SL  R/O      1  Log Directory
0x01           SL  R/O      1  Summary SMART error log
0x02           SL  R/O      2  Comprehensive SMART error log
0x03       GPL     R/O      2  Ext. Comprehensive SMART error log
0x06           SL  R/O      1  SMART self-test log
0x07       GPL     R/O      2  Extended self-test log
0x08       GPL     R/O      2  Power Conditions log
0x09           SL  R/W      1  Selective self-test log
0x10       GPL     R/O      1  NCQ Command Error log
0x11       GPL     R/O      1  SATA Phy Event Counters
0x80-0x9f  GPL,SL  R/W     16  Host vendor specific log
0xe0       GPL,SL  R/W      1  SCT Command/Status
0xe1       GPL,SL  R/W      1  SCT Data Transfer

SMART Extended Comprehensive Error Log Version: 1 (2 sectors)
No Errors Logged

SMART Extended Self-test Log Version: 1 (2 sectors)
Num  Test_Description    Status                  Remaining
LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%     14928         -
# 2  Extended offline    Completed without error       00%     13234         -
# 3  Extended offline    Completed without error       00%      5808         -
# 4  Extended offline    Interrupted (host reset)      70%      5136         -

SMART Selective self-test log data structure revision number 0
Note: revision number not 1 implies that no selective self-test has
ever been run
SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
   1        0        0  Completed [00% left] (0-65535)
   2        0        0  Not_testing
   3        0        0  Not_testing
   4        0        0  Not_testing
   5        0        0  Not_testing
Selective self-test flags (0x0):
 After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

SCT Status Version:                  2
SCT Version (vendor specific):       256 (0x0100)
SCT Support Level:                   1
Device State:                        Active (0)
Current Temperature:                    34 Celsius
Power Cycle Min/Max Temperature:     19/34 Celsius
Lifetime    Min/Max Temperature:     14/64 Celsius
Under/Over Temperature Limit Count:   0/0

SCT Temperature History Version:     2
Temperature Sampling Period:         5 minutes
Temperature Logging Interval:        5 minutes
Min/Max recommended Temperature:     -5/80 Celsius
Min/Max Temperature Limit:           -10/85 Celsius
Temperature History Size (Index):    128 (7)

Index    Estimated Time   Temperature Celsius
  8    2015-02-16 11:35    35  ****************
  9    2015-02-16 11:40    35  ****************
 10    2015-02-16 11:45    34  ***************
...    ..( 22 skipped).    ..  ***************
 33    2015-02-16 13:40    34  ***************
 34    2015-02-16 13:45    35  ****************
 35    2015-02-16 13:50    34  ***************
...    ..( 22 skipped).    ..  ***************
 58    2015-02-16 15:45    34  ***************
 59    2015-02-16 15:50    33  **************
 60    2015-02-16 15:55    33  **************
 61    2015-02-16 16:00    34  ***************
 62    2015-02-16 16:05    33  **************
 63    2015-02-16 16:10    34  ***************
 64    2015-02-16 16:15    33  **************
...    ..(  6 skipped).    ..  **************
 71    2015-02-16 16:50    33  **************
 72    2015-02-16 16:55    34  ***************
 73    2015-02-16 17:00    33  **************
 74    2015-02-16 17:05    33  **************
 75    2015-02-16 17:10    33  **************
 76    2015-02-16 17:15    34  ***************
 77    2015-02-16 17:20    33  **************
...    ..(  7 skipped).    ..  **************
 85    2015-02-16 18:00    33  **************
 86    2015-02-16 18:05    32  *************
 87    2015-02-16 18:10    33  **************
 88    2015-02-16 18:15    33  **************
 89    2015-02-16 18:20    32  *************
 90    2015-02-16 18:25    19  -
 91    2015-02-16 18:30    22  ***
 92    2015-02-16 18:35    24  *****
 93    2015-02-16 18:40    25  ******
 94    2015-02-16 18:45    26  *******
 95    2015-02-16 18:50    27  ********
 96    2015-02-16 18:55    28  *********
 97    2015-02-16 19:00    28  *********
 98    2015-02-16 19:05    29  **********
 99    2015-02-16 19:10    29  **********
100    2015-02-16 19:15    30  ***********
...    ..(  3 skipped).    ..  ***********
104    2015-02-16 19:35    30  ***********
105    2015-02-16 19:40    31  ************
...    ..(  5 skipped).    ..  ************
111    2015-02-16 20:10    31  ************
112    2015-02-16 20:15    32  *************
113    2015-02-16 20:20    30  ***********
114    2015-02-16 20:25    30  ***********
115    2015-02-16 20:30    31  ************
116    2015-02-16 20:35    31  ************
117    2015-02-16 20:40    32  *************
118    2015-02-16 20:45    32  *************
119    2015-02-16 20:50    32  *************
120    2015-02-16 20:55    33  **************
...    ..(  7 skipped).    ..  **************
  0    2015-02-16 21:35    33  **************
  1    2015-02-16 21:40    34  ***************
...    ..(  5 skipped).    ..  ***************
  7    2015-02-16 22:10    34  ***************

SCT Error Recovery Control:
          Read: Disabled
         Write: Disabled

Device Statistics (GP Log 0x04) not supported

SATA Phy Event Counters (GP Log 0x11)
ID      Size     Value  Description
0x0001  4            0  Command failed due to ICRC error
0x0002  4            0  R_ERR response for data FIS
0x0003  4            0  R_ERR response for device-to-host data FIS
0x0004  4            0  R_ERR response for host-to-device data FIS
0x0005  4            0  R_ERR response for non-data FIS
0x0006  4            0  R_ERR response for device-to-host non-data FIS
0x0007  4            0  R_ERR response for host-to-device non-data FIS
0x0008  4            0  Device-to-host non-data FIS retries
0x0009  4           16  Transition from drive PhyRdy to drive PhyNRdy
0x000a  4           14  Device-to-host register FISes sent due to a COMRESET
0x000b  4            0  CRC errors within host-to-device FIS
0x000d  4            0  Non-CRC errors within host-to-device FIS
0x000f  4            0  R_ERR response for host-to-device data FIS, CRC
0x0010  4            0  R_ERR response for host-to-device data FIS, non-CRC
0x0012  4            0  R_ERR response for host-to-device non-data FIS, CRC
0x0013  4            0  R_ERR response for host-to-device non-data FIS, non-CRC
0x8e00  4            0  Vendor specific
0x8e01  4            0  Vendor specific
0x8e02  4            0  Vendor specific
0x8e03  4            0  Vendor specific
0x8e04  4            0  Vendor specific
0x8e05  4            0  Vendor specific
0x8e06  4            0  Vendor specific
0x8e07  4            0  Vendor specific
0x8e08  4            0  Vendor specific
0x8e09  4            0  Vendor specific
0x8e0a  4            0  Vendor specific
0x8e0b  4            0  Vendor specific
0x8e0c  4            0  Vendor specific
0x8e0d  4            0  Vendor specific
0x8e0e  4            0  Vendor specific
0x8e0f  4            0  Vendor specific
0x8e10  4            0  Vendor specific
0x8e11  4            0  Vendor specific

No /dev/sde anymore...


>  Did you read about and fix any timeout mismatch issue?

I did yes but not sure to understand how to set up 120 second timeout
in sysfs...

The following commands is still valid without 1 of my drives?
mdadm --stop /dev/md126
mdadm --assemble --force --verbose --run /dev/md126 /dev/sd[bcd]3


> Also, your device names have changed.  You *must* keep track of which
> one is which "RaidDevice".  Specifically, what was "sde" now appears to
> be "sdd".  Did you reboot?  You know that device names are not
> guaranteed to be consistent from one boot to the next, I hope.  Show an
> excerpt from "ls -l /dev/disk/by-id/" with your next report so we know
> which drive serial number has which name.

Now you said it, I'm felling stupid... Yes, I reboot every day and I
don't have trace of previous "mapping" (id -> name).

# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root  9 Feb 16 21:16
ata-SAMSUNG_HD103SJ_S246J9KB924045 -> ../../sdd
lrwxrwxrwx 1 root root 10 Feb 16 21:16
ata-SAMSUNG_HD103SJ_S246J9KB924045-part1 -> ../../sdd1
lrwxrwxrwx 1 root root 10 Feb 16 21:16
ata-SAMSUNG_HD103SJ_S246J9KB924045-part2 -> ../../sdd2
lrwxrwxrwx 1 root root 10 Feb 16 21:16
ata-SAMSUNG_HD103SJ_S246J9KB924045-part3 -> ../../sdd3
lrwxrwxrwx 1 root root 10 Feb 16 21:16
ata-SAMSUNG_HD103SJ_S246J9KB924045-part4 -> ../../sdd4
lrwxrwxrwx 1 root root  9 Feb 16 21:16 ata-ST3500320AS_9QM8H48M -> ../../sdb
lrwxrwxrwx 1 root root 10 Feb 16 21:16 ata-ST3500320AS_9QM8H48M-part1
-> ../../sdb1
lrwxrwxrwx 1 root root 10 Feb 16 21:16 ata-ST3500320AS_9QM8H48M-part2
-> ../../sdb2
lrwxrwxrwx 1 root root 10 Feb 16 21:16 ata-ST3500320AS_9QM8H48M-part3
-> ../../sdb3
lrwxrwxrwx 1 root root  9 Feb 16 21:16
ata-WDC_WD5001AALS-00E3A0_WD-WCATR3121296 -> ../../sdc
lrwxrwxrwx 1 root root 10 Feb 16 21:16
ata-WDC_WD5001AALS-00E3A0_WD-WCATR3121296-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Feb 16 21:16
ata-WDC_WD5001AALS-00E3A0_WD-WCATR3121296-part2 -> ../../sdc2
lrwxrwxrwx 1 root root 10 Feb 16 21:16
ata-WDC_WD5001AALS-00E3A0_WD-WCATR3121296-part3 -> ../../sdc3
lrwxrwxrwx 1 root root 11 Feb 16 21:17
md-uuid-6408f077:eefbe269:c173be8e:b17eb4df -> ../../md127
lrwxrwxrwx 1 root root  9 Feb 16 21:16 wwn-0x5000c5001099d533 -> ../../sdb
lrwxrwxrwx 1 root root 10 Feb 16 21:16 wwn-0x5000c5001099d533-part1 ->
../../sdb1
lrwxrwxrwx 1 root root 10 Feb 16 21:16 wwn-0x5000c5001099d533-part2 ->
../../sdb2
lrwxrwxrwx 1 root root 10 Feb 16 21:16 wwn-0x5000c5001099d533-part3 ->
../../sdb3
lrwxrwxrwx 1 root root  9 Feb 16 21:16 wwn-0x50014ee25a457f4e -> ../../sdc
lrwxrwxrwx 1 root root 10 Feb 16 21:16 wwn-0x50014ee25a457f4e-part1 ->
../../sdc1
lrwxrwxrwx 1 root root 10 Feb 16 21:16 wwn-0x50014ee25a457f4e-part2 ->
../../sdc2
lrwxrwxrwx 1 root root 10 Feb 16 21:16 wwn-0x50014ee25a457f4e-part3 ->
../../sdc3
lrwxrwxrwx 1 root root  9 Feb 16 21:16 wwn-0x50024e92062a5827 -> ../../sdd
lrwxrwxrwx 1 root root 10 Feb 16 21:16 wwn-0x50024e92062a5827-part1 ->
../../sdd1
lrwxrwxrwx 1 root root 10 Feb 16 21:16 wwn-0x50024e92062a5827-part2 ->
../../sdd2
lrwxrwxrwx 1 root root 10 Feb 16 21:16 wwn-0x50024e92062a5827-part3 ->
../../sdd3
lrwxrwxrwx 1 root root 10 Feb 16 21:16 wwn-0x50024e92062a5827-part4 ->
../../sdd4


Thanks,
Dush

^ permalink raw reply

* Re: md_raid5 using 100% CPU and hang with status resync=PENDING, if a drive is removed during initialization
From: Jes Sorensen @ 2015-02-16 22:49 UTC (permalink / raw)
  To: NeilBrown; +Cc: Manibalan P, Pasi Kärkkäinen, linux-raid
In-Reply-To: <wrfjpp99pp9d.fsf@redhat.com>

Jes Sorensen <Jes.Sorensen@redhat.com> writes:
> NeilBrown <neilb@suse.de> writes:
>> On Mon, 2 Feb 2015 07:10:14 +0000 Manibalan P <pmanibalan@amiindia.co.in>
>> wrote:
>>
>>> Dear All,
>>> 	Any updates on this issue.
>>
>> Probably the same as:
>>
>>   http://marc.info/?l=linux-raid&m=142283560704091&w=2
>
> Hi Neil,
>
> I ran some tests on this one against the latest Linus' tree as of today
> (1fa185ebcbcefdc5229c783450c9f0439a69f0c1) which I believe includes all
> your pending 3.20 patches.
>
> I am able to reproduce Manibalan's hangs on a system with 4 SSDs if I
> run fio on top of a device while it is resyncing and I fail one of the
> devices.

Since Manibalan mentioned this issue wasn't present in earlier kernels,
I started trying to track down what change caused it.

So far I have been able to reproduce the hang as far back as 3.10.

Cheers,
Jes

^ permalink raw reply

* Re: What are mdadm maintainers to do? (was: desktop disk's error recovery timeouts)
From: NeilBrown @ 2015-02-16 23:49 UTC (permalink / raw)
  To: Chris; +Cc: linux-raid
In-Reply-To: <loom.20150216T183419-387@post.gmane.org>

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

On Mon, 16 Feb 2015 17:48:50 +0000 (UTC) Chris <email.bug@arcor.de> wrote:

> 
> Thank you for the additional information, it calls for action.
> 
> 
> OK, calling for a solution to stop desktop drives from causing data loss and
> affecting the mdadm reputation:
> 
> 
> I gather that mdadm could ship with one additional udev rule that calls a
> script to check/set scterc, or falls back to increasing the system timout.
> 
> Phil, you mentioned having posted such a script, could you prepare it for
> addition to the mdadm package?
> 
> 
> Would maintainers be ok with adding such a udev rule and script to the package?


"maintainers" ? Plural?  That would be nice.
Unfortunately there is just the one singular me....

There are certainly other contributors who 
 - answer questions on the list 
 - provide bug reports
 - provide bits of code

and I am very thankful to them.  But I haven't found a likely co-maintainer
yet :-(


I'm certainly happy to consider and concrete proposal.  The more concrete,
the better.

NeilBrown

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]

^ permalink raw reply

* Re: What are mdadm maintainers to do? (error recovery redundancy/data loss)
From: Chris @ 2015-02-17  7:52 UTC (permalink / raw)
  To: linux-raid
In-Reply-To: <20150217104906.62d36c62@notabene.brown>

NeilBrown <neilb <at> suse.de> writes:

> "maintainers" ? Plural?  That would be nice.
> Unfortunately there is just the one singular me....


Yes, as Weedy said, I also refered to distro package maintainers.

If we can come up here with an udev rule and a script to call, then upstream
(you) could include this, and distro maintainers could make smartctl a
suggested or recommended package of the mdadm package.


I certainly have not understood the whole topic yet,
what I just got is, that the script should do something like
the following, and I found some implementation below.

Evererybody please answer with improved versions if you can.


if smartctl tool is available
  if scterc is disabled
    /usr/sbin/smartctl -l scterc,70,70 ${DEVNAME}
  else
    if screrc is not available
      echo 180 >/sys/block/${DEVNAME}/device/timeout



Found an older implementation that "seems to work fine":

http://article.gmane.org/gmane.linux.raid/44566
>
> contents of udev rule:
> ACTION=="add", SUBSYSTEM=="block", KERNEL=="[sh]d[a-z]",
RUN+="/usr/local/bin/settimeout"
>
>
> contents of /usr/local/bin/settimeout:
> #!/bin/bash
> 
> [ "${ACTION}" == "add" ] && {
>         /usr/sbin/smartctl -l scterc,70,70 ${DEVNAME} || echo 180 >
/sys/${DEVPATH}/device/timeout
> }
> 
> I guess, what is missing, is to connect the HDDs
> with a specific "mdadm" event, instead of running
> for each HDD.
> I'm not sure if this is already possible, since
> some "udev" rules for "md" are already existing.


Let's get this disaster prevention into mdadm, even if just as important
reference experience for solving a more general kernel timeout mismatch
problem "symptom of a more generic issue".
http://article.gmane.org/gmane.linux.raid/44557



^ permalink raw reply

* Re: What are mdadm maintainers to do? (error recovery redundancy/data loss)
From: Mikael Abrahamsson @ 2015-02-17  8:48 UTC (permalink / raw)
  To: Chris; +Cc: linux-raid
In-Reply-To: <loom.20150217T080345-764@post.gmane.org>

On Tue, 17 Feb 2015, Chris wrote:

> Evererybody please answer with improved versions if you can.
>
> if smartctl tool is available
>  if scterc is disabled
>    /usr/sbin/smartctl -l scterc,70,70 ${DEVNAME}
>  else
>    if screrc is not available
>      echo 180 >/sys/block/${DEVNAME}/device/timeout
>
> Found an older implementation that "seems to work fine":

Hi,

Generally I like this idea, and I agree that this would be a good idea, 
but if I was running raid0 or linear, I might not want scterc to be 
enabled.

Also, what would the harm be to always bump the timeout to 180 seconds? 
Yes, drives would take longer to be kicked out in case of errors, but if 
we're confident in scterc working, wouldn't we want to turn down the 
timeout to 10-15 seconds then?

Personally I turn on scterc if available and turn up the timeout to 180 
seconds, always, regardless what drives I'm running. I'd rather wait 
longer for a drive to be considered dead, than to have drives being kicked 
due to some hiccup in the system (controller or drive reset) that might 
rectify itself.

So I would suggest turning on scterc and turning up the timeout to 180 
seconds as soon as mdadm is installed. This is the best tradeoff I can 
come up with between stability and fast drive-dead-detection time.

Here on the list I see people all the time coming in with multiple drives 
kicked due to controller resets and other intermittent flukes, I never see 
people coming in complaining that it took 30 seconds to detect a drive 
error. I doubt there'd be much complaint for 180 seconds. If someone needs 
faster detect times then my opinion is that they are in the category who 
can be expected to tune this value to their application. 180 seconds works 
best for the "larger crowd" using mdadm.

-- 
Mikael Abrahamsson    email: swmike@swm.pp.se

^ permalink raw reply

* Re: What are mdadm maintainers to do? (error recovery redundancy/data loss)
From: Chris @ 2015-02-17 10:37 UTC (permalink / raw)
  To: linux-raid
In-Reply-To: <alpine.DEB.2.02.1502170940010.4007@uplift.swm.pp.se>

Mikael Abrahamsson <swmike <at> swm.pp.se> writes:

> if I was running raid0 or linear, I might not want scterc to be 
> enabled.

Good Point.

> Also, what would the harm be to always bump the timeout to 180 seconds?

I don't know why the driver authors chose that linux default,
but the todo with both your points:


if the appearind device is an md member device (mdadm examine?)

  if smartctl tool is available
    if scterc is disabled in cotaining ${HDD_DEV} AND added device is not
raid0/linear
      /usr/sbin/smartctl -l scterc,70,70 ${HDD_DEV}

  echo 180 >/sys/block/${HDD_DEV}/device/timeout



 




^ permalink raw reply

* Re: re-add POLICY
From: Chris @ 2015-02-17 15:09 UTC (permalink / raw)
  To: linux-raid
In-Reply-To: <loom.20150216T124230-883@post.gmane.org>


> NeilBrown <neilb <at> suse.de> writes:
> 
> > If it doesn't, then maybe you need "POLICY action=spare".
> 
> OK, I will test this when the notebook is back in the house.


I could test it on another system.

Without adding a bitmap, it required configring
  POLICY domain=default action=spare
and calling
  mdadm --udev-rules

but then, after removing and inserting sdc again, only two out of six md
partitions got synced.

To see if there is something wrong, I then added the sdc1 md0 member
manually, and it synced without failure.

So I can't tell why the other partitions did not sync atomatically.
Some of the unsynced partition types are 83 (md0 member), but others
are FD (md7 member) like the automatically synced ones.

linux 3.2.0
mdadm v3.2.5

md7 : active raid1 sdc6[3] sda8[2]
      14327680 blocks super 1.2 [3/2] [UU_]
      bitmap: 1/1 pages [4KB], 65536KB chunk

md3 : active raid1 sdc8[4] sda10[3]
      307011392 blocks super 1.2 [3/2] [UU_]
      bitmap: 3/3 pages [12KB], 65536KB chunk

md6 : active raid1 sda7[2]
      8695680 blocks super 1.2 [3/1] [_U_]
      
md1 : active raid1 sda6[3](W) sdb2[1]
      19513216 blocks super 1.2 [4/2] [_UU_]
      
md2 : active raid1 sda9[3](W) sdb3[0]
      97590144 blocks super 1.2 [4/2] [U_U_]
      
md0 : active raid1 sdc1[4] sda5[2](W) sdb1[1]
      340672 blocks super 1.2 [4/3] [UUU_]




A partition that did not sync automatically:
/dev/sdc7:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 7a5847cd:be0e8510:8e170bf5:5d40143f
           Name : name:2  (local to host name)
  Creation Time : Sun Dec  2 21:40:58 2012
     Raid Level : raid1
   Raid Devices : 4

 Avail Dev Size : 195187135 (93.07 GiB 99.94 GB)
     Array Size : 97590144 (93.07 GiB 99.93 GB)
  Used Dev Size : 195180288 (93.07 GiB 99.93 GB)
    Data Offset : 131072 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : b1a97d12:965e3d08:059acefb:6ac5b7e3

    Update Time : Wed Dec  3 11:23:26 2014
       Checksum : ac0ce511 - correct
         Events : 382479


   Device Role : Active device 1
   Array State : AAA. ('A' == active, '.' == missing)



And a corresponding partition that is part of the running array:
/dev/sda9:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 7a5847cd:be0e8510:8e170bf5:5d40143f
           Name : name:2  (local to host name)
  Creation Time : Sun Dec  2 21:40:58 2012
     Raid Level : raid1
   Raid Devices : 4

 Avail Dev Size : 195182592 (93.07 GiB 99.93 GB)
     Array Size : 97590144 (93.07 GiB 99.93 GB)
  Used Dev Size : 195180288 (93.07 GiB 99.93 GB)
    Data Offset : 131072 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 4c191282:80769896:378abe34:aeb01b8d

          Flags : write-mostly
    Update Time : Mon Feb 16 17:41:54 2015
       Checksum : 8cb4794c - correct
         Events : 384989


   Device Role : Active device 2
   Array State : A.A. ('A' == active, '.' == missing)



BTW looking at this data now, it seems to me the superblocks almost support
the clean re-sync / conflict detection I was trying to explain.

a) The removed device 1 does not claim that a member
   in the running array (0 and 2) has failed (AAA.)

b) The Events count of device 1 is lower than in the running array.

c) The running array/superblock does not seem to keep
   a reference of the Event count when device 1 failed, for additional
   security that it has not ben started separately.

But b) and c) may not even be necessary, as starting device 1 separately
would make device 1 claim that 0 and 2 have failed, right?


Regards,
Chris






^ permalink raw reply

* Re: What are mdadm maintainers to do? (error recovery redundancy/data loss)
From: Chris Murphy @ 2015-02-17 19:33 UTC (permalink / raw)
  To: linux-raid
In-Reply-To: <loom.20150217T080345-764@post.gmane.org>

It's not just mdadm. It likewise affects Btrfs, ZFS, and LVM.

Also, there's a lack of granularity with linux command timer and SCT
ERC applying only to the entire block device, not partitions. So
there's a problem for mixed use cases. For example, two drives, each
with two partitions. sda1 and sdb1 are raid0, and sda2 and sdb2 are
raid1. What's the proper configuration for SCT ERC and the SCSI
command timer?

*shrug* I don't think the automatic udev configuration idea is fail
safe. It sounds too easy for it to automatically cause a
misconfiguration. And it also doesn't at all solve the problem that
there's next to no error reporting to user space. smartd does, but
it's narrow in scope and entirely defers to the hard drive's
self-assessment. There's all sorts of problems that aren't in the
domain of SMART that get reported in dmesg, but there's no method for
gnome-shell or KDE or any DE or even send an email to a sysadmin, as
an early warning. Instead, all too often it's "WTF XFS just corrupted
itself!" meanwhile the real problem has been happening for a week,
dmesg/journal is full of errors indicating the nature of those
problems, but nothing bothered to inform a human being until the file
system face planted.


Chris Murphy

^ permalink raw reply

* Re: What are mdadm maintainers to do? (error recovery redundancy/data loss)
From: Adam Goryachev @ 2015-02-17 22:47 UTC (permalink / raw)
  To: Chris Murphy, linux-raid
In-Reply-To: <CAJCQCtQvoB0yPPc=RXPPyJhpaFwH0pQTRCRaR_ycTbzHrD6rLw@mail.gmail.com>

On 18/02/15 06:33, Chris Murphy wrote:
> It's not just mdadm. It likewise affects Btrfs, ZFS, and LVM.
>
> Also, there's a lack of granularity with linux command timer and SCT
> ERC applying only to the entire block device, not partitions. So
> there's a problem for mixed use cases. For example, two drives, each
> with two partitions. sda1 and sdb1 are raid0, and sda2 and sdb2 are
> raid1. What's the proper configuration for SCT ERC and the SCSI
> command timer?

Umm, actually I don't know enough to disagree, but I'll ask some 
questions which probably shows both the assumptions I've made, and might 
help others understand the issue better.

If we enable SCT ERC on every drive that supports it, and we are using 
the drive (only) in a RAID0/linear array then what is the downside? As I 
understand it, the drive will no longer try for > 120sec to recover the 
data stored in the "bad" sector, and instead return an unreadable error 
message in a short amount of time (well below 30 seconds) which means 
the driver will be able to return a read error to the application (or FS 
or MD) and the system as a whole will carry on. If we didn't enable SCT 
ERC, then the entire drive would vanish, (because the timeout wasn't 
changed for the driver) and the current read and every future read/write 
will all fail, and the system will probably crash (well, depending on 
the application, FS layout, etc).

So, IMHO, it seems that by default, every SCT ERC capable drive should 
have this enabled by default. As a part of error recovery (ie, crap that 
really important data stored on those few unreadable sectors) the user 
could manually disable SCT ERC and re-attempt to request the data from 
the drive (eg, during dd_rescue or similar).


Secondly, changing the timeout for those drives that don't support SCT 
ERC, again, it is fairly similar to above, we get the error from the 
drive before the timeout, except we will avoid the only possible 
downside above (failing to read a very unlikely but possible to read 
sector). Again, we will avoid dropping the entire drive, even if all 
operations on this drive will stop for a longer period of time, it is 
probably better than stopping permanently.

So, IMHO, every non SCT ERC capable drive should have the timeout 
extended to 120s/180s or whatever the appropriate time is that (most) 
drives will respond within. Leaving only the most extremely brain dead 
drives which we simply ridicule on the list and anywhere and everywhere 
possible to ensure nobody will ever buy them (or the manufacturer will 
fix the problems).


Of course, quite possible I've totally over simplified this, and don't 
understand the other repercussions?

> *shrug* I don't think the automatic udev configuration idea is fail
> safe. It sounds too easy for it to automatically cause a
> misconfiguration. And it also doesn't at all solve the problem that
> there's next to no error reporting to user space. smartd does, but
> it's narrow in scope and entirely defers to the hard drive's
> self-assessment. There's all sorts of problems that aren't in the
> domain of SMART that get reported in dmesg, but there's no method for
> gnome-shell or KDE or any DE or even send an email to a sysadmin, as
> an early warning. Instead, all too often it's "WTF XFS just corrupted
> itself!" meanwhile the real problem has been happening for a week,
> dmesg/journal is full of errors indicating the nature of those
> problems, but nothing bothered to inform a human being until the file
> system face planted.

Just because the solution doesn't solve the entire problem, it does 
solve a part of the problem, so IMHO, better to solve this part of the 
problem, and then discuss/try to find a solution to the rest of the 
problem. Unless you have a suggestion which can solve both parts of the 
problem? I suppose that a "good" sysadmin should install some sort of 
log monitoring software which will alert them to issues, whether that is 
via some desktop application/popup or email or something else. The 
problem is that most of these issues come from "home" users who will 
never setup anything like "log file monitoring" or raid scrubs, or 
anything else, so if we do decide upon a generic solution that will work 
for almost everybody, then we will still need to rely on the distro 
maintainers to implement the solution.

PS, I suppose this is one of the "hide the gory details that nobody 
understands" balancing with "provide the information to the user so they 
can do something about it". One more generic consideration would be to 
have the kernel identify which messages are purely informational/debug 
and which are errors. Normal syslog has support for many different 
levels, but AFAIK, all kernel messages end up in the same basket.

eg (plugging in and removing a USB drive generated the following log 
entries as seen from "dmesg":
[614977.802828] usb 3-3: new high-speed USB device number 5 using xhci_hcd
[614977.822724] usb 3-3: New USB device found, idVendor=0951, idProduct=1665
[614977.822729] usb 3-3: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[614977.822732] usb 3-3: Product: DataTraveler 2.0
[614977.822735] usb 3-3: Manufacturer: Kingston
[614977.822737] usb 3-3: SerialNumber: 60A44C413CCBFE40AB4FFB3E
[614977.822899] usb 3-3: ep 0x81 - rounding interval to 128 microframes, 
ep desc says 255 microframes
[614977.822905] usb 3-3: ep 0x2 - rounding interval to 128 microframes, 
ep desc says 255 microframes
[614977.836547] usb-storage 3-3:1.0: USB Mass Storage device detected
[614977.836734] scsi6 : usb-storage 3-3:1.0
[614977.836819] usbcore: registered new interface driver usb-storage
[614978.854080] scsi 6:0:0:0: Direct-Access     Kingston DataTraveler 
2.0 1.00 PQ: 0 ANSI: 4
[614978.854493] sd 6:0:0:0: Attached scsi generic sg2 type 0
[614978.854658] sd 6:0:0:0: [sdb] 15131636 512-byte logical blocks: 
(7.74 GB/7.21 GiB)
[614978.854884] sd 6:0:0:0: [sdb] Write Protect is off
[614978.854888] sd 6:0:0:0: [sdb] Mode Sense: 45 00 00 00
[614978.855085] sd 6:0:0:0: [sdb] Write cache: disabled, read cache: 
enabled, doesn't support DPO or FUA
[614978.860015]  sdb: sdb1
[614978.860864] sd 6:0:0:0: [sdb] Attached SCSI removable disk
[614979.061474] FAT-fs (sdb1): Volume was not properly unmounted. Some 
data may be corrupt. Please run fsck.
[615347.862058] usb 3-3: reset high-speed USB device number 5 using xhci_hcd
[615347.862111] usb 3-3: Device not responding to set address.
[615348.065856] usb 3-3: Device not responding to set address.
[615348.269944] usb 3-3: device not accepting address 5, error -71
[615348.326429] usb 3-3: USB disconnect, device number 5
[615348.334730] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called 
with disabled ep ffff88011b1b2600
[615348.334744] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called 
with disabled ep ffff88011b1b2640


Of the above, I would suggest most of that is "info" while the following 
lines might be warnings:
[614979.061474] FAT-fs (sdb1): Volume was not properly unmounted. Some 
data may be corrupt. Please run fsck.
These might be error or critical:
[615347.862058] usb 3-3: reset high-speed USB device number 5 using xhci_hcd
[615347.862111] usb 3-3: Device not responding to set address.
[615348.065856] usb 3-3: Device not responding to set address.
[615348.269944] usb 3-3: device not accepting address 5, error -71

Of course, this will rely on every driver maintainer to make a decision 
on just how important each line that they log may be.

Just my thoughts, hopefully it will be useful.

Regards,
Adam

-- 
Adam Goryachev Website Managers www.websitemanagers.com.au

^ permalink raw reply

* Re: What are mdadm maintainers to do? (error recovery redundancy/data loss)
From: Chris @ 2015-02-17 23:33 UTC (permalink / raw)
  To: linux-raid
In-Reply-To: <CAJCQCtQvoB0yPPc=RXPPyJhpaFwH0pQTRCRaR_ycTbzHrD6rLw@mail.gmail.com>

Chris Murphy writes:

> 
> It's not just mdadm. It likewise affects Btrfs, ZFS, and LVM.

Do they have own timouts, or rely on the kernel?
Maybe the kernel could read the SCTERT value from the drives (in lieu of
some better retry timout information, and set the controller timout a little
greater than that, or very large if SCTERT is disabled/not available.


> sda1 and sdb1 are raid0, and sda2 and sdb2 are
> raid1. What's the proper configuration for SCT ERC and the SCSI
> command timer?

guessing...

For SCTERT disabled drives:
A compromise may be to stay with the linux default controller timout, it's
30s, and set the drives SCTERT below 30s (maybe 27s), to avoid losing
redundancy and risking data loss *AND* allow more of the available time for ERC.

For longer error correcting attempts (and just as long i/o controller
blocking!) the contoller timout could be set to 180s, and SCTERT to 175s?

BUT: If I chose to use a raid0 alongside a redundant raid I already
explicitly decided to take all data loss the hardware throws at me. So I
don't think it makes much of a difference if ERC times out after <30 secs or
180s, its just more or less errors belonging to me.


For SCTERC enabled drives:
30s and 7s seems ok?



 
> *shrug* I don't think the automatic udev configuration idea is fail
> safe. It sounds too easy for it to automatically cause a
> misconfiguration.


A matching timeout configuration prevents that unavoidable unrecoverable
read error take down the redundancy for sure, and cause high risk of data
loss during rebuild.

It does fix a misconfiguration, however could possibly set SCTERT just below
the (30s) controler timout, to reduce the impact of SCTERT (e.g make use of
the small chance of error correction succceding a couple of seconds later).
Given the longer SCTERT timout does not lead to subseqent read error timouts
piling up.


> And it also doesn't at all solve the problem that
> there's next to no error reporting to user space.

That is correct, but rather not related to the importance to fix the timout
mismatch and reduce the risk, is it? The settings do solve unecessary loss
of redundancy on read errors that are sure to occur, unnecessary resyncing,
and high risk of data loss during all that.




^ permalink raw reply

* Re: md_raid5 using 100% CPU and hang with status resync=PENDING, if a drive is removed during initialization
From: Jes Sorensen @ 2015-02-18  0:03 UTC (permalink / raw)
  To: NeilBrown; +Cc: Manibalan P, Pasi Kärkkäinen, linux-raid
In-Reply-To: <wrfjd259o4iy.fsf@redhat.com>

Jes Sorensen <Jes.Sorensen@redhat.com> writes:
> Jes Sorensen <Jes.Sorensen@redhat.com> writes:
>> NeilBrown <neilb@suse.de> writes:
>>> On Mon, 2 Feb 2015 07:10:14 +0000 Manibalan P <pmanibalan@amiindia.co.in>
>>> wrote:
>>>
>>>> Dear All,
>>>> 	Any updates on this issue.
>>>
>>> Probably the same as:
>>>
>>>   http://marc.info/?l=linux-raid&m=142283560704091&w=2
>>
>> Hi Neil,
>>
>> I ran some tests on this one against the latest Linus' tree as of today
>> (1fa185ebcbcefdc5229c783450c9f0439a69f0c1) which I believe includes all
>> your pending 3.20 patches.
>>
>> I am able to reproduce Manibalan's hangs on a system with 4 SSDs if I
>> run fio on top of a device while it is resyncing and I fail one of the
>> devices.
>
> Since Manibalan mentioned this issue wasn't present in earlier kernels,
> I started trying to track down what change caused it.
>
> So far I have been able to reproduce the hang as far back as 3.10.

After a lot of bisecting I finally traced the issue back to this commit:

a7854487cd7128a30a7f4f5259de9f67d5efb95f is the first bad commit
commit a7854487cd7128a30a7f4f5259de9f67d5efb95f
Author: Alexander Lyakas <alex.bolshoy@gmail.com>
Date:   Thu Oct 11 13:50:12 2012 +1100

    md: When RAID5 is dirty, force reconstruct-write instead of read-modify-write.
    
    Signed-off-by: Alex Lyakas <alex@zadarastorage.com>
    Suggested-by: Yair Hershko <yair@zadarastorage.com>
    Signed-off-by: NeilBrown <neilb@suse.de>

If I revert that one I cannot reproduce the hang, applying it reproduces
the hang consistently.

Cheers,
Jes

^ permalink raw reply

* [PATCH] Revert "md: When RAID5 is dirty, force reconstruct-write instead of read-modify-write."
From: Jes.Sorensen @ 2015-02-18  0:14 UTC (permalink / raw)
  To: neilb; +Cc: linux-raid, Jes Sorensen

From: Jes Sorensen <Jes.Sorensen@redhat.com>

This reverts commit a7854487cd7128a30a7f4f5259de9f67d5efb95f.

The above patch would cause lockups of RAID4/5 arrays if a drive is
going faulty during reconstruction.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
 drivers/md/raid5.c | 19 +++----------------
 1 file changed, 3 insertions(+), 16 deletions(-)

diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index aa76865..bc3a085 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -3159,25 +3159,12 @@ static void handle_stripe_dirtying(struct r5conf *conf,
 				   int disks)
 {
 	int rmw = 0, rcw = 0, i;
-	sector_t recovery_cp = conf->mddev->recovery_cp;
-
-	/* RAID6 requires 'rcw' in current implementation.
-	 * Otherwise, check whether resync is now happening or should start.
-	 * If yes, then the array is dirty (after unclean shutdown or
-	 * initial creation), so parity in some stripes might be inconsistent.
-	 * In this case, we need to always do reconstruct-write, to ensure
-	 * that in case of drive failure or read-error correction, we
-	 * generate correct data from the parity.
-	 */
-	if (conf->max_degraded == 2 ||
-	    (recovery_cp < MaxSector && sh->sector >= recovery_cp)) {
-		/* Calculate the real rcw later - for now make it
+	if (conf->max_degraded == 2) {
+		/* RAID6 requires 'rcw' in current implementation
+		 * Calculate the real rcw later - for now fake it
 		 * look like rcw is cheaper
 		 */
 		rcw = 1; rmw = 2;
-		pr_debug("force RCW max_degraded=%u, recovery_cp=%llu sh->sector=%llu\n",
-			 conf->max_degraded, (unsigned long long)recovery_cp,
-			 (unsigned long long)sh->sector);
 	} else for (i = disks; i--; ) {
 		/* would I have to read this buffer for read_modify_write */
 		struct r5dev *dev = &sh->dev[i];
-- 
1.8.3.1


^ permalink raw reply related


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