At the moment I am feverishly seeking advice for how to fix a broken ZFS
raidz2 I have (using FreeBSD 8.2-STABLE).

This is the current status:

$ zpool status
  pool: tank
 state: FAULTED
status: One or more devices could not be opened.  There are insufficient
        replicas for the pool to continue functioning.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-3C
  scan: scrub repaired 0 in 49h3m with 2 errors on Fri Jan 20 15:10:35 2012
config:

        NAME                     STATE     READ WRITE CKSUM
        tank                     FAULTED      0     0     2
          raidz2-0               DEGRADED     0     0     8
            da0                  ONLINE       0     0     0
            da1                  ONLINE       0     0     0
            da2                  ONLINE       0     0     0
            da3                  ONLINE       0     0     0
            3758301462980058947  UNAVAIL      0     0     0  was /dev/da4
            da5                  ONLINE       0     0     0

The strange thing is that the pool is FAULTED while its part is merely
DEGRADED.

da4 failed reccently and was replaced with a new disk, but no resilvering is
taking place.

I've already tried lots of things with this, including exporting and
then "zpool import -nFX tank". (I only got it back-imported with "zpool
import -V tank). The -nFX ("extreme rewind") option gives no output, but
there is a lot of I/O activity going on, as if it is rewinding forever,
or in a loop, or something like that.

One thing that may, or may not, complicate things is the following.
Already quite a while ago there suddenly was a directory that was so
corrupted that zfs reported I/O errors for various files in it. I could
not even remove them; in the end I moved the other files to a new
directory and put the original directory to the side, and made it mode
000. (If rewinding wants to go back to before this happened, I can
understand that this takes a while, but I left it running overnight and
it didn't make visible progress)

zdb and various other commands complain about the pool not being
available, or I/O errors. For instance:

fourquid.1:~$ sudo zpool clear -nF tank
fourquid.1:~$ sudo zpool clear -F tank
cannot clear errors for tank: I/O error
fourquid.1:~$ sudo zpool clear -nFX tank
(no output, uses some cpu, some I/O)

zdb -v                          ok
zdb -v -c tank                  zdb: can't open 'tank': input/output error
zdb -v -l /dev/da[01235]        ok
zdb -v -u tank                  zdb: can't open 'tank': Input/output error
zdb -v -l -u /dev/da[01235]     ok
zdb -v -m tank                  zdb: can't open 'tank': Input/output error
zdb -v -m -X tank               no output, uses cpu and I/O
zdb -v -i tank                  zdb: can't open 'tank': Input/output error
zdb -v -i -F tank               zdb: can't open 'tank': Input/output error
zdb -v -i -X tank               no output, uses cpu and I/O

Are there any hints you can give me? I have full FreeBSD source online
so I can modify some tools, if needed.

Thanks in advance,
-Olaf.
-- 
Pipe rene = new PipePicture(); assert(Not rene.GetType().Equals(Pipe));
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to