I had a drive fail in my home fileserver - I''ve replaced the drive,
but I can''t make the system see it properly. I''m running
nevada B85,
with 5 750GB drives in a raidz1 pool named "tank" and booting off a
separate 80 GB SATA drive I had laying around.
Without the new drive attached, I simply get the expected "UNAVAIL"
message for the drive in zpool status and the pool imports just fine.
However, with the new drive attached (to the same controller port, as
I''m using all 6 of my ports) I get either "invalid vdev
specification"
or the pool shows up as "UNAVAIL" (but c2d1 shows up just fine), and I
can''t import the pool to run a "zpool replace -f tank c2d1".
Without drive attached:
bash-3.2# zpool status
pool: tank
state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas
exist for
the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using ''zpool
online''.
see: http://www.sun.com/msg/ZFS-8000-2Q
scrub: resilver completed after 0h0m with 0 errors on Sat Jul 26
21:18:07 2008
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
c1d1 ONLINE 0 0 0
c2d0 ONLINE 0 0 0
c2d1 UNAVAIL 0 0 0 cannot open
c3d0 ONLINE 0 0 0
c4d0 ONLINE 0 0 0
With drive attached:
bash-3.2# zpool import
pool: tank
id: 3049365411720608557
state: UNAVAIL
action: The pool cannot be imported due to damaged devices or data.
config:
tank UNAVAIL insufficient replicas
raidz1 UNAVAIL corrupted data
c1d1 ONLINE
c2d0 ONLINE
c2d1 ONLINE
c3d0 ONLINE
c4d0 ONLINE
Suggestions? Do I need to upgrade to a newer release of Nevada? Do I
need to pre-format the new drive in a fancy way? I''ve got the system
powered off for the time being, as I''m uncomfortable running without
parity in place.
thanks,
Breandan Dezendorf
------------------------------
Network Systems Engineer
American University of Sharjah
bdezendorf at aus.edu
------------------------------
It looks like you *think* you are trying to add the new drive, when you are in fact re-adding the old (failing) one. A new drive should never show up as ONLINE in a pool with no action from your part, if only because it contains no partition and no vdev label with the right pool GUID. If I am right, try to add the other drive. If I am wrong, you somehow managed to confuse ZFS.. You can prevent ZFS from thinking c2d1 is already part of the pool by deleting the partition table on it: $ dd if=/dev/zero of=/dev/rdsk/c2d1p0 bs=512 count=1 $ zpool import (it should show you the pool is now ready to be imported) $ zpool import tank $ zpool replace tank c2d1 At this point it should be resilvering... -marc
Marc, Thanks - you were right - I had two identical drives and I mixed them up. It''s going through the resilver process now... I expect it will run all night. Breandan On Jul 27, 2008, at 11:20 PM, Marc Bevand wrote:> It looks like you *think* you are trying to add the new drive, when > you are in > fact re-adding the old (failing) one. A new drive should never show > up as > ONLINE in a pool with no action from your part, if only because it > contains no > partition and no vdev label with the right pool GUID. > > If I am right, try to add the other drive. > > If I am wrong, you somehow managed to confuse ZFS.. You can prevent > ZFS from > thinking c2d1 is already part of the pool by deleting the partition > table on > it: > $ dd if=/dev/zero of=/dev/rdsk/c2d1p0 bs=512 count=1 > $ zpool import > (it should show you the pool is now ready to be imported) > $ zpool import tank > $ zpool replace tank c2d1 > > At this point it should be resilvering... > > -marc > > _______________________________________________ > zfs-discuss mailing list > zfs-discuss at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/zfs-discuss