ZFS快照如何在实践中使用空间?

时间:2015-08-28 05:28:43

标签: freebsd snapshot zfs

  1. 创建快照
  2. 删除了一个巨大的文件
  3. 对于过去三个快照,<?PHP $file_handle = fopen("dept.csv", "r"); while (!feof($file_handle) ) { $line_of_text = fgetcsv($file_handle, 1024); print ($line_of_text[0]) . " ". ($line_of_text[1]). ($line_of_text[2]) . "<BR>"; } fclose($file_handle); ?> 中的Delta仍为0(快照不再使用空间)
  4. delta或used space是否不是已删除文件的大小。我知道ZFS是COW,但我很困惑为什么我无法回滚zfs list孩子

    /usr/home/xxxx

    我已尝试使用# ls /home/xxxxx/testing12345.txt /home/xxxxx/testing12345.txt # ls -alh /home/xxxxx/testing12345.txt -rw-r--r-- 1 root xxxxx 254M Aug 28 00:06 /home/xxxxx/testing12345.txt # zfs list -rt snapshot tank1/usr/home/xxxxx NAME USED AVAIL REFER MOUNTPOINT tank1/usr/home/xxxxx@myRecursiveSnapshot 291M - 804M - tank1/usr/home/xxxxx@devEnv 71K - 1.39G - tank1/usr/home/xxxxx@xfce 0 - 1.39G - tank1/usr/home/xxxxx@testhome 0 - 1.39G - tank1/usr/home/xxxxx@testagain 1K - 1.39G - tank1/usr/home/xxxxx@27082015 0 - 1.39G - tank1/usr/home/xxxxx@270820150 0 - 1.39G - tank1/usr/home/xxxxx@2708201501 0 - 1.39G - # # # # # zfs snapshot -r tank1@28082015 # zfs list -rt snapshot tank1/usr/home/xxxxx NAME USED AVAIL REFER MOUNTPOINT tank1/usr/home/xxxxx@myRecursiveSnapshot 291M - 804M - tank1/usr/home/xxxxx@devEnv 71K - 1.39G - tank1/usr/home/xxxxx@xfce 0 - 1.39G - tank1/usr/home/xxxxx@testhome 0 - 1.39G - tank1/usr/home/xxxxx@testagain 1K - 1.39G - tank1/usr/home/xxxxx@27082015 0 - 1.39G - tank1/usr/home/xxxxx@270820150 0 - 1.39G - tank1/usr/home/xxxxx@2708201501 0 - 1.39G - tank1/usr/home/xxxxx@28082015 0 - 1.39G - # rm /home/xxxxx/testing12345.txt # zfs list -rt snapshot tank1/usr/home/xxxxx NAME USED AVAIL REFER MOUNTPOINT tank1/usr/home/xxxxx@myRecursiveSnapshot 291M - 804M - tank1/usr/home/xxxxx@devEnv 71K - 1.39G - tank1/usr/home/xxxxx@xfce 0 - 1.39G - tank1/usr/home/xxxxx@testhome 0 - 1.39G - tank1/usr/home/xxxxx@testagain 1K - 1.39G - tank1/usr/home/xxxxx@27082015 0 - 1.39G - tank1/usr/home/xxxxx@270820150 0 - 1.39G - tank1/usr/home/xxxxx@2708201501 0 - 1.39G - tank1/usr/home/xxxxx@28082015 0 - 1.39G - # /usr/usr/home目录的各种快照进行回滚。我已经阅读了FreeBSD论坛和手册,我也尝试回滚/usr/home/xxxx没有效果。 奇怪的是,当我更改隐藏tank1@[snapshot name]--all目录中/usr/home/xxxxx个文件中的文件时也会发生变化。

1 个答案:

答案 0 :(得分:2)

使用此命令查看用于vdev的所有快照的空间 - 您想要的相关属性是usedsnap:

zfs list -o name,used,avail,refer,creation,usedds,usedsnap,origin,compression,compressratio,refcompressratio,mounted,atime,lused

由于我在zfs池上使用压缩,因此我添加了一些属性。

zfs快照目录是可读的。

你说你不能回滚吗?如果是这种情况,请指定-r或-R,如果有克隆则可能指定-f,示例:

zfs rollback -r poolname/dataset@oldersnaphot
zfs rollback -R poolname/dataset@oldersnaphot

在发出zfs rollback之前阅读手册

       -r
           Destroy any snapshots and bookmarks more recent than the one specified.
       -R
           Recursively destroy any more recent snapshots and bookmarks, as well as any clones of those snapshots.
       -f
           Used with the -R option to force an unmount of any clone file systems that are to be destroyed.