On 01/22/10 11:48, Freddie Cash wrote:
On Fri, Jan 22, 2010 at 2:23 AM, Harald Schmalzbauer<
h.schmalzba...@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.



_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to