On Jul 28, 2010, at 4:11 PM, Robert Milkowski wrote: > > fyi This covers the case where an exported pool has lost its log. zpool export [log disk or all disks in a mirrored log disappear] zpool import -- currently fails, missing top-level vdev
The following cases are already recoverable: If the pool is not exported and the log disappears, then the pool can import ok if the zpool.cache file is current. *crash* [log disk or all disks in a mirrored log disappear] zpool import -- succeeds, pool state is updated keep on truckin' If the log device fails while the pool is imported, then the pool marks the device as failed. [log disk or all disks in a mirrored log disappear] report error, change pool state to show failed log device keep on truckin' -- richard > > -- > Robert Milkowski > http://milek.blogspot.com > > > -------- Original Message -------- > Subject: zpool import despite missing log [PSARC/2010/292 Self Review] > Date: Mon, 26 Jul 2010 08:38:22 -0600 > From: Tim Haley <tim.ha...@oracle.com> > To: psarc-...@sun.com > CC: zfs-t...@sun.com > > I am sponsoring the following case for George Wilson. Requested binding > is micro/patch. Since this is a straight-forward addition of a command > line option, I think itqualifies for self review. If an ARC member > disagrees, let me know and I'll convert to a fast-track. > > Template Version: @(#)sac_nextcase 1.70 03/30/10 SMI > This information is Copyright (c) 2010, Oracle and/or its affiliates. > All rights reserved. > 1. Introduction > 1.1. Project/Component Working Name: > zpool import despite missing log > 1.2. Name of Document Author/Supplier: > Author: George Wilson > 1.3 Date of This Document: > 26 July, 2010 > > 4. Technical Description > > OVERVIEW: > > ZFS maintains a GUID (global unique identifier) on each device and > the sum of all GUIDs of a pool are stored into the ZFS uberblock. > This sum is used to determine the availability of all vdevs > within a pool when a pool is imported or opened. Pools which > contain a separate intent log device (e.g. a slog) will fail to > import when that device is removed or is otherwise unavailable. > This proposal aims to address this particular issue. > > PROPOSED SOLUTION: > > This fast-track introduce a new command line flag to the > 'zpool import' sub-command. This new option, '-m', allows > pools to import even when a log device is missing. The contents > of that log device are obviously discarded and the pool will > operate as if the log device were offlined. > > MANPAGE DIFFS: > > zpool import [-o mntopts] [-p property=value] ... [-d dir | -c > cachefile] > - [-D] [-f] [-R root] [-n] [-F] -a > + [-D] [-f] [-m] [-R root] [-n] [-F] -a > > > zpool import [-o mntopts] [-o property=value] ... [-d dir | -c > cachefile] > - [-D] [-f] [-R root] [-n] [-F] pool |id [newpool] > + [-D] [-f] [-m] [-R root] [-n] [-F] pool |id [newpool] > > zpool import [-o mntopts] [ -o property=value] ... [-d dir | > - -c cachefile] [-D] [-f] [-n] [-F] [-R root] -a > + -c cachefile] [-D] [-f] [-m] [-n] [-F] [-R root] -a > > Imports all pools found in the search directories. > Identical to the previous command, except that all pools > > + -m > + > + Allows a pool to import when there is a missing log device > > EXAMPLES: > > 1). Configuration with a single intent log device: > > # zpool status tank > pool: tank > state: ONLINE > scan: none requested > config: > > NAME STATE READ WRITE CKSUM > tank ONLINE 0 0 0 > c7t0d0 ONLINE 0 0 0 > logs > c5t0d0 ONLINE 0 0 0 > > errors: No known data errors > > # zpool import tank > The devices below are missing, use '-m' to import the pool anyway: > c5t0d0 [log] > > cannot import 'tank': one or more devices is currently unavailable > > # zpool import -m tank > # zpool status tank > 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 > > scan: none requested > config: > > NAME STATE READ WRITE CKSUM > tank DEGRADED 0 0 0 > c7t0d0 ONLINE 0 0 0 > logs > 1693927398582730352 UNAVAIL 0 0 0 was > /dev/dsk/c5t0d0 > > errors: No known data errors > > 2). Configuration with mirrored intent log device: > > # zpool add tank log mirror c5t0d0 c5t1d0 > zr...@diskmonster:/dev/dsk# zpool status tank > pool: tank > state: ONLINE > scan: none requested > config: > > NAME STATE READ WRITE CKSUM > tank ONLINE 0 0 0 > c7t0d0 ONLINE 0 0 0 > logs > mirror-1 ONLINE 0 0 0 > c5t0d0 ONLINE 0 0 0 > c5t1d0 ONLINE 0 0 0 > > errors: No known data errors > > # zpool import 429789444028972405 > The devices below are missing, use '-m' to import the pool anyway: > mirror-1 [log] > c5t0d0 > c5t1d0 > > # zpool import -m tank > # zpool status tank > 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 > > scan: none requested > config: > > NAME STATE READ WRITE CKSUM > tank DEGRADED 0 0 0 > c7t0d0 ONLINE 0 0 0 > logs > mirror-1 UNAVAIL 0 0 0 > insufficient replicas > 46385995713041169 UNAVAIL 0 0 0 was > /dev/dsk/c5t0d0 > 13821442324672734438 UNAVAIL 0 0 0 was > /dev/dsk/c5t1d0 > > errors: No known data errors > > 6. Resources and Schedule > 6.4. Steering Committee requested information > 6.4.1. Consolidation C-team Name: > ON > 6.5. ARC review type: Automatic > 6.6. ARC Exposure: open > > _______________________________________________ > opensolaris-arc mailing list > > opensolaris-...@opensolaris.org > > > > _______________________________________________ > zfs-discuss mailing list > zfs-discuss@opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/zfs-discuss -- Richard Elling rich...@nexenta.com +1-760-896-4422 Enterprise class storage for everyone www.nexenta.com _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss