A solution to this problem would be my early Christmas present!
Here is how I lost access to an otherwise healthy mirrored pool two months ago:
Box running snv_130 with two disks in a mirror and an iRAM battery-backed
ZIL device was shutdown orderly and powered down normally. While I was away
on travel, the PSU in the PC died while in its lowest-power standby state - this
caused the Li battery in the iRAM to discharge and all of the SLOG contents in
the DRAM went poof.
Powered box back up... zpool import -f tank failed to bring the pool back
online.
After much research, I found the 'logfix' tool, got it compile on another
snv_122 box and followed the directions to synthesize a forged log device
header using the guid of the original device extracted from vdev list. This
failed to work
despite the binary tool running and some inspection of the guids using zdb -l
spoofed_new_logdev.
What's intrigueing is that zpool is not even properly reporting the 'missing
device'. See the output below from zpool, then zdb - notice that zdb shows
the remnants of a vdev for a log device but with guid = 0
# zpool import
pool: tank
id: 6218740473633775200
state: UNAVAIL
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
devices and try again.
see: http://www.sun.com/msg/ZFS-8000-6X
config:
[b]
tank UNAVAIL missing device
mirror-0 ONLINE
c0t1d0 ONLINE
c0t2d0 ONLINE
[/b]
Additional devices are known to be part of this pool, though their
# zdb -e tank
Configuration for import:
vdev_children: 2
version: 22
pool_guid: 6218740473633775200
name: 'tank'
state: 0
hostid: 9271202
hostname: 'eon'
vdev_tree:
type: 'root'
id: 0
guid: 6218740473633775200
children[0]:
type: 'mirror'
id: 0
guid: 5245507142600321917
metaslab_array: 23
metaslab_shift: 33
ashift: 9
asize: 1000188936192
is_log: 0
children[0]:
type: 'disk'
id: 0
guid: 15634594394239615149
phys_path: '/p...@0,0/pci1458,b...@11/d...@2,0:a'
whole_disk: 1
DTL: 55
path: '/dev/dsk/c0t1d0s0'
devid:
'id1,s...@sata_st31000333as9te1jx8c/a'
children[1]:
type: 'disk'
id: 1
guid: 3144903288495510072
phys_path: '/p...@0,0/pci1458,b...@11/d...@1,0:a'
whole_disk: 1
DTL: 54
path: '/dev/dsk/c0t2d0s0'
devid:
'id1,s...@sata_st31000528as9vp2kwam/a'
[b]
children[1]:
type: 'missing'
id: 1
guid: 0
[/b]
--
This message posted from opensolaris.org
___
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss