如何访问ZFS快照的内容而不影响其当前数据?


10

我有一个ZFS数据集,它每小时获取一次快照。昨天,对一些需要还原的文件进行了更改;但是,数据集具有正在进行的更改,因此不应还原。

在不干扰其当前数据副本的情况下,访问快照有哪些选择?我可以将快照以只读模式安装到新的安装点吗?

Answers:


15

自从我使用zfs以来已经有一段时间了,但是您应该能够zfs list -t snapshot找到可用的快照并访问.zfszfs挂载点下特殊目录下的文件。

[~]# zfs list -t snapshot
NAME                       USED  AVAIL  REFER  MOUNTPOINT
mypool                    1.49G   527M   528M  /mnt/zfspool
mypool@snap1                28K      -   993M  -
mypool@snap2                28K      -   993M  -
mypool@snap3                28K      -   993M  -

[~]# cd /mnt/zfspool/.zfs/snapshot/snap1
[snap1]# ls

IIRC,快照已经是只读的,因此更改快照目录中的数据的尝试将失败。如果数据以实际fs更改,则快照应增长,因为它会复制预先更改的数据以使快照保持一致。

您需要zfs clone将快照移到新位置,以便对快照进行编辑(此时,不再是快照了)。

就像我说的,已经有一段时间了,所以先测试...

参考:http : //www.googlux.com/zfs-snapshot.html


3
是的,ZFS快照绝对是只读的。
jlliagre 2014年

也许是因为我在Linux上使用ZFS,但在泳池的挂载点下看不到.zfs文件夹
STW 2014年

9
@STW-根据groups.google.com/a/zfsonlinux.org/forum/#!topic/zfs-discuss/…,您需要ZoL 0.6.0rc8,内核> 2.6.37。根据lists.freebsd.org/pipermail/freebsd-fs/2008-November/…的说明,您需要zfs set snapdir=visible /mnt/zfspool使其可见,但您无需使用它来访问快照(即,cd /mnt/zfspool/.zfs/snapsot/snap1无论如何您都应该能够执行此操作)。 。
jimbobmcgee

9
@STV您将看不到.zfs,但仍可以将其CD到。快照存储在其父数据集中,因此必须装入父数据集才能访问
.zfs

@mikky,你让我开心
Alessio
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.