I had two geli-encrypted partitions on separate disk in a zpool as simple disks (no raid*). I didn't want redundancy for all files, only for some selected datasets (for which I set copies=2).
Now one disk died (controller doesn't respond anymore), and I'd like to get the files back that are on the remaining disk – but it looks like this is impossible.
# zpool import pool: data id: 9847503418894158179 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: data UNAVAIL missing device ada0p3.eli ONLINE Additional devices are known to be part of this pool, though their exact configuration cannot be determined. # zpool import -o readonly=on -R /mnt -f data cannot import 'data': one or more devices is currently unavailable
All operations that in some way try to repair a pool require it to be imported, and I can't get import working.
So, finally, the question: is it possible to get those files back without the second disk?
(running debian/kFreeBSD 9.0, ZFS pool version 28)
Best Answer
The ZFS feature
set copies=2
was not designed to overcome disk failures (see the comments on the following Q&A):The issue here being that as your pool is made of single disks, ALL disks must be healthy for import.
This can only be done in your case by recovering (through backup) the failed disk into a new one.