Pack of CAM improvements
Steve Polyack
korvus at comcast.net
Fri Jan 22 18:28:37 UTC 2010
On 01/22/10 11:48, Freddie Cash wrote:
> On Fri, Jan 22, 2010 at 2:23 AM, Harald Schmalzbauer<
> h.schmalzbauer at omnilan.de> wrote:
>
>
>> Alexander Motin schrieb am 19.01.2010 17:12 (localtime):
>> ...
>>
>> Patch can be found here:
>>
>>> http://people.freebsd.org/~mav/cam-ata.20100119.patch
>>>
>>> Feedback as always welcome.
>>>
>>>
>> Again, thanks a lot for your ongoing great work!
>> The patch doesn't cleanly apply with vpo, but I don't use vpo so I didn't
>> care.
>> Otherwise I couldn't find any problems.
>> The system detects reinserted SATA drives on ICH9 fine.
>>
>> This was tested on a zfs backup server which went to the backbone
>> yesterday, so I can't physically remove any devices any more for testing...
>>
>> But I had some questions about zfs raidz states. I think that isn't a
>> matter of atacam but if I removed one disk, zpool status still showed me the
>> ada3 device "online".
>> After reinserting (and proper detection/initialisazion with cam, ada3 was
>> present again) and zpool clean, it set the devicea as UNAVAIL sinve I/O
>> errors.
>> I coudn't get the device into the pool again, no matter what I tried.
>> Only rebooting the machine helped. Then I could clean and scrub.
>>
>> What are the needed steps to provide a reinsterted hard disk to geom? With
>> the latest patches I don't need to issue any reset/rescan comman, right?
>> So it's a zfs problem, right? My mistake in understanding?
>>
>> In my testing of pulling drives at random (using a 3Ware 9550SXU or 9650SE
>>
> controller), you have to "zpool offline<pool> <device>" while the drive is
> unplugged, before you can re-insert the same disk or a different disk.
> Without doing that step, it's very hard to re-insert the same disk, or
> replace it with a new one, without rebooting.
>
> Took me a couple of reboots and drive replacements before I figured that one
> out. :)
>
>
I think you can do it without the 'zpool offline <pool> <device>'
command; I may be wrong, but I believe you can use 'zpool replace' to
accomplish what you're trying to do. i.e. if you have a bad drive ada3,
and take it out, then replace it with a new disk, you can issue a 'zpool
replace <pool> /dev/ada3 /dev/ada3' (yes, the same device is specified
twice). ZFS should recognize that its a different disk and/or that it is
lacking ZFS metadata and begin to resilver the pool onto the new
device. If you watch 'zfs status' in the process you'll see something like:
raidz1 DEGRADED 0 0 0
label/ada4 ONLINE 0 0 0 12.4M resilvered
label/ada5 ONLINE 0 0 0 12.4M resilvered
label/ada6 ONLINE 0 0 0 12.3M resilvered
replacing DEGRADED 0 0 0
label/ada3/old UNAVAIL 0 595 0 cannot open
label/ada3 ONLINE 0 0 0 9.74G resilvered
Try it out and let me know if it works for you.
More information about the freebsd-stable
mailing list