RAID 10 Disk remove failing.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I am experiencing an intermittent issue on RAID 10 which causes a component from an active RAID 10 to refuse being --remove by mdadm after the component was hot unplugged.

The test was as follow:

First of all, some configuration information:

Platform: PPC
Kernel: 2.6.26.3
mdadm: ./mdadm --version
mdadm - v2.6.7 - 6th June 2008

Disks are all 10* Fujitsu SAS 36Gb in a SAS enclosure connected to the system using a 1068e LSI HBA.

The test details are below:

* create a RAID 10 array as follow:

./mdadm --create -vvv --force --run --metadata=1.2 /dev/md/d0 --level=10 --size=9413632 --chunk=64 --name=1561369 -n5 --bitmap=internal --bitmap-chunk=4096 /dev/sde2 /dev/sdc2 /dev/sdh2 /dev/sda2 /dev/sdd2

* Run read/write IOs on the array, whichever IO size or type (read/write) does not seem to matter.

* Pull a disk from the enclosure where the disks are residing.

* The disk is offlined in linux (DID_NO_CONNECT):

(dmesg trace)
"[ 2617.988807] ioc0: Event = f, IOCLogInfo = 31120101
[ 2617.993598] ioc0 Event: 0xf
[ 2618.777669] ioc0 Event: SAS_DISCOVERY
[ 2618.783977] ioc0: Phy 4 Handle a is now offline
[ 2619.482674] ioc0 Event: SAS_DISCOVERY
[ 2623.110586] ioc0 Event: 0xf
[ 2623.121965] sd 0:0:0:0: [sda] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK
[ 2623.130519] end_request: I/O error, dev sda, sector 36297553
[ 2623.136169] raid10: sda2: rescheduling sector 145126912"

* After 14 of these DID_NO_CONNECT messages from the sd layer, the HBA driver (LSI MPT Fusion in this case) deletes the device's port in the driver and cleans it up, at which point the sd layer initiates a "synchronize cache" command:

(dmesg trace)
"sd 0:0:0:0: [sda] Synchronizing SCSI cache"

immediately followed by a:

(dmesg trace)
"raid10: Disk failure on sda2, disabling device.
raid10: Operation continuing on 7 devices."

This is where it is odd. When I get the above message, any:

mdadm --remove -vvv /dev/md/d0 /dev/sda2 command I issue fails with the following message in dmesg:

(dmesg trace)
"md: cannot remove active disk sda2 from md_d0 ..."

After which I get a Call Trace letting me know that something hung in MD layer:

(dmesg trace)
"[ 2754.151343] INFO: task md_d0_raid10:1006 blocked for more than 120 seconds. [ 2754.158305] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 2754.166108] md_d0_raid10  D 00000000     0  1006      2
[ 2754.171350] Call Trace:
[ 2754.173792] [e9645dc0] [00000010] 0x10 (unreliable)
[ 2754.178699] [e9645e80] [b0008758] __switch_to+0x40/0x60
[ 2754.183953] [e9645ea0] [b02eb57c] schedule+0x180/0x37c
[ 2754.189110] [e9645ef0] [b023b424] raid10d+0x9bc/0xb48
[ 2754.194182] [e9645f90] [b024ae00] md_thread+0x58/0x120
[ 2754.199343] [e9645fd0] [b00319e8] kthread+0x84/0x8c
[ 2754.204248] [e9645ff0] [b0003ab8] kernel_thread+0x44/0x60"

However, when the process is working fine (and the disk can be hotRemoved from the md layer), I get the following trace:

(dmesg trace)
"
[61268.363295] sd 0:0:17:0: [sdd] Synchronizing SCSI cache
[61269.155285] RAID10 conf printout:
[61269.158613]  --- wd:4 rd:5
[61269.161316]  disk 0, wo:0, o:1, dev:sdm2
[61269.165227]  disk 1, wo:0, o:1, dev:sdj2
[61269.169141]  disk 2, wo:0, o:1, dev:sdi2
[61269.173054]  disk 3, wo:0, o:1, dev:sdn2
[61269.176968]  disk 4, wo:1, o:0, dev:sdd2
[61269.192699] RAID10 conf printout:
[61269.196007]  --- wd:4 rd:5
[61269.198710]  disk 0, wo:0, o:1, dev:sdm2
[61269.202621]  disk 1, wo:0, o:1, dev:sdj2
[61269.206534]  disk 2, wo:0, o:1, dev:sdi2
[61269.210448]  disk 3, wo:0, o:1, dev:sdn2
[61269.271745] md: unbind<sdd2>
[61269.276962] md: export_rdev(sdd2)
[61269.282844] target0:0:17: mptsas: ioc0: delete device: fw_channel 0, fw_id 1
3, phy 8, sas_addr 0x500000e012b089c2"

and it carries on fine, and the disk can then be removed from the array using m,dadm:

mdadm --remove -vvv /dev/md/d0 /dev/sdd2"

I only experience this with RAID level 10, never with any other RAID levels I would frequently use (0, 5, 6).

I understand that the RAID level 10 is still marked as experimental and I am absolutely not complaining or demanding for a fix, but would rather be interested if anyone else had experienced the same issue, and knew or had an opinion on where this issue originates, and so that I can try to fix it in the MD layer and post it if successful.

Many thanks in advance for any reply or experiences that anybody would have.

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

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux