Hi Brian,
Brian Gao wrote:> ZFS claims that it can recover user error such as accidentally
> deleting of files.
Can you show us where you read that ? At the moment, the only way this
is possible, is by taking regular snapshots of your ZFS filesystems,
allowing users to go back to a previous snapshot in order to recover
their deleted files.
Have a look at the section about snapshots in the zfs(1M) man page at:
http://www.opensolaris.org/os/community/zfs/docs
to learn more about snapshots.
> How does it work?
If a user takes a snapshot, a data on that filesystem is frozen
at that point in time, allowing a user to read that copy at any time.
Subsequent changes filesystem are done to copies of any changed blocks.
You might be interested in reading Matt''s blog post at:
http://blogs.sun.com/ahrens/entry/is_it_magic
> Does it only work for mirrored or RAID-Z pool?
Nope snapshots happen at the filesystem level - not the pool level, so
all ZFS filesystems can use snapshots. Think of ZFS pools as ways to
configure the physical storage on your system in terms of
performance/redundancy, and ZFS filesystems as ways of managing or
organising your data.
> What is the command to perform the task?
"zfs snapshot mypool/myfilesystem at snapshotname"
Some folks (me included) have written scripts to take snapshots at
regular intervals, so that older user data is always available.
> Also for COW, I understand that during the transaction (while data is been
undated)
>, ZFS keeps a copy of the previous data. However, once the transaction is
> successfully completed, isn''t it the case that the previous data
blocks are
> unreferenced and can be used by future writes? So there should be no
guarantee
> that the previous data can be recovered.
Right - but only in the case where those blocks aren''t referenced by a
previous snapshot, in which case the data isn''t unreferenced.
hope this helps,
cheers,
tim
--
Tim Foster, Sun Microsystems Inc, Solaris Engineering Ops
http://blogs.sun.com/timf