Andreas,

I think you can still offline the faulted disk, c1t6d0.

The difference between these two replacements:

zpool replace tank c1t6d0 c1t15d0
zpool replace tank c1t6d0

Is that in the second case, you are telling ZFS that c1t6d0
has been physically replaced in the same location. This would
be equivalent but unnecessary syntax:

zpool replace tank c1t6d0 c1t6d0

Another option is to set the autoreplace pool property to on,
which will do the replacement steps (zpool replace) after
you physically replace the disk in the same physical location
as the faulted disk. This is also described in Example 11-1,
here:

http://docs.sun.com/app/docs/doc/819-5461/gbbvf?a=view

After you physically replace c1t6d0, then you might have
to detach the spare, c1t15d0, back to the spare pool,
like this:

# zpool detach tank c1t15d0

I'm not sure this step is always necessary...

cs

On 08/06/09 15:05, Andreas Höschler wrote:
Hi all,

    zpool add tank spare c1t15d0
? After doing that c1t6d0 is offline and ready to be physically replaced?


Yes, that is correct.

Then you could physically replace c1t6d0 and add it back to the pool as
a spare, like this:

# zpool add tank spare c1t6d0

For a production system, the steps above might be the most efficient.
Get the faulted disk replaced with a known good disk so the pool is
no longer degraded, then physically replace the bad disk when you have
the time and add it back to the pool as a spare.

It is also good practice to run a zpool scrub to ensure the
replacement is operational

That would be
    zpool scrub tank
in my case!?


Yes.

and use zpool clear to clear the previous
errors on the pool.

I assume teh complete comamnd fo rmy case is
    zpool clear tank
Why d we have to do that. Couldb't zfs realize that everything is fine again after executing "zpool replace tank c1t6d0 c1t15d0"?


Yes, sometimes the clear is not necessary but it will also clear the error counts if need be.


I have done

    zpool add tank spare c1t15d0
    zpool replace tank c1t6d0 c1t15d0

now and waited for the completion of the resilvering process. "zpool status" now gives me

scrub: resilver completed after 0h22m with 0 errors on Thu Aug 6 22:55:37 2009
config:

         NAME           STATE     READ WRITE CKSUM
         tank           DEGRADED     0     0     0
           mirror       ONLINE       0     0     0
             c1t2d0     ONLINE       0     0     0
             c1t3d0     ONLINE       0     0     0
           mirror       ONLINE       0     0     0
             c1t5d0     ONLINE       0     0     0
             c1t4d0     ONLINE       0     0     0
           mirror       DEGRADED     0     0     0
             spare      DEGRADED     0     0     0
               c1t6d0   FAULTED      0    19     0  too many errors
               c1t15d0  ONLINE       0     0     0
             c1t7d0     ONLINE       0     0     0
         spares
           c1t15d0      INUSE     currently in use

errors: No known data errors

This does look like a final step is missing. Can I simply physically replace c1t6d0 now or do I have to do

    zpool offline tank c1t6d0

first? Moreover it seems I have to run a

    zpool clear

in my case to get rid of the DEGRADED message!? What is the missing bit here?

zpool offline tank c1t6d0
<physically replace c1t6d0 with a new one>
zpool replace tank c1t6d0
zpool online tank c1t6d0


Just out of curiosity (since I used the other road this time), how does the replace command know what exactly to do here. In my case I ordered the system specifically to replace c1t6d0 with c1t15d0 by doing "zpool replace tank c1t6d0 c1t15d0" but if I simply issue

    zpool replace tank c1t6d0

it ...!??

Thanks a lot,

   Andreas



_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to