ZFS recovery after power failure
Sergey Gavrilov
srg.gavrilov at gmail.com
Thu Dec 23 12:03:26 UTC 2010
Hi Michael,
yes I walked the way you describe. I just destroyed whole uberblock, not
only ub_txg. So I think it's not important. And I didn't recalculate
ub_guid_sum. Isn't it similar in all uberblocks?
2010/12/22 Michael DeMan <freebsd at deman.com>
> Hi Sergey,
>
> I am curious on the details of how you did this in case I ever need to do
> it in the future.
>
>
> I presume what you did was...
>
> A) grab the uberblocks off of each disk to text files using dd or
> something?
>
> B) find the most recent uberblocks (they should be round robin, with
> incrementing transaction group numbers so fairly easy to analyze)?
>
> C) you cleared out the most recent two uberblocks on each disk by making
> their transaction group (uint64_t ub_txg) to zero or something, using dd
> again?
>
> D) Did you also have to recalculate the checksum (uint64_t ub_guid_sum), or
> were you able to just leave it as-is and ZFS was okay, and then subsequently
> just wrote out a new/valid uber block to that position in the array as new
> transactions began after you were able to get the pool remounted?
>
> Thanks,
>
> - Mike
>
>
> On Dec 19, 2010, at 7:13 AM, Sergey Gavrilov wrote:
>
> > I've destroyed 2 latest uberblocks and imported pool. It's ok now.
> > Your command don't work for me as is, but all tgx nubmers of all labels
> are
> > the same and equal 666999 now.
> > Think it's already useless information.
> > So I saved those uberblocks. I can provide them if you need.
> >
> > 2010/12/19 Pawel Jakub Dawidek <pjd at freebsd.org>
> >
> >> On Sat, Dec 18, 2010 at 11:21:52AM +0300, Sergey Gavrilov wrote:
> >>> zpool import -F pool2 ok, but
> >>> zpool status -xv
> >>> pool: pool2
> >>> state: FAULTED
> >>> status: The pool metadata is corrupted and the pool cannot be opened.
> >>> action: Destroy and re-create the pool from a backup source.
> >>> see: http://www.sun.com/msg/ZFS-8000-72
> >>> scrub: none requested
> >>> config:
> >>>
> >>> NAME STATE READ WRITE CKSUM
> >>> pool2 FAULTED 0 0 1 corrupted data
> >>> raidz2 ONLINE 0 0 6
> >>> da9 ONLINE 0 0 0
> >>> da10 ONLINE 0 0 0
> >>> da11 ONLINE 0 0 0
> >>> da12 ONLINE 0 0 0
> >>> da13 ONLINE 0 0 0
> >>> da14 ONLINE 0 0 0
> >>> da15 ONLINE 0 0 0
> >>> da16 ONLINE 0 0 0
> >>>
> >>> zpool clear pool2
> >>> cannot clear errors for pool2: I/O error
> >>>
> >>> Is there any way to recovery data or portion of data at least.
> >>
> >> Could you provide output of:
> >>
> >> # apply "zdb -l /dev/da%1 | egrep '(^LABEL|txg=|)'" `jot 8 9`
> >>
> >> --
> >> Pawel Jakub Dawidek http://www.wheelsystems.com
> >> pjd at FreeBSD.org http://www.FreeBSD.org
> >> FreeBSD committer Am I Evil? Yes, I Am!
> >>
> >
> >
> >
> > --
> > Best regards,
> > Sergey Gavrilov
> > _______________________________________________
> > freebsd-fs at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-fs
> > To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"
>
>
--
Best regards,
Sergey Gavrilov
More information about the freebsd-fs
mailing list