父文件系统快照是否引用其子数据集数据或仅引用它们自己的数据?

父文件系统快照是否引用其子数据集数据或仅引用它们自己的数据?

您拍摄的许多快照都会引用数据,并且只有删除引用所述数据的所有快照以及正在运行的卷中的数据时,数据才会从磁盘中删除,这对于 btrfs 和 ZFS 均适用。

例如,在 btrfs 中,如果我创建~/mifyle.txt并拍摄的快照@home,则除非我删除此快照,否则我的文件将不会被从磁盘中删除~/myfile.txt,ZFS 也会发生同样的情况。

@但是如果我从和拍摄快照怎么办@home?将~/myfile.txt@@家快照或只是@家快照?

ZFS 的行为是否不同?如果我创建一个文件rpool/home/myfile.txt,其中rpool是父级,是子级数据集,然后为和rpool/home拍摄快照,将rpoolrpool/home我的文件.txt在两个数据集快照中都被引用还是仅在子数据集快照中被引用?

答案1

每个数据集,无论是子数据集还是父数据集,都是其自己的文件系统。文件系统是引用和保存文件和目录的地方。

快照已完成仅影响数据集. 快照已保存至 rpool/仅影响数据集

记住不是只是一个目录,它是一个恰好是安装在路径 /mnt/rpool/home 中。

如果您在数据集,然后销毁数据集,主数据集内的所有文件和文件夹都消失了:包括其快照中保存的文件和文件夹!此类文件从未被保存在期间的数据集安装在/mnt/rpool/home。

快照也是如此。为 rpool/ 创建快照不会创建快照; 仅有的已制作快照。

你可能感兴趣的唯一原因是影响 rpool/是当你使用递归行动,其中任何此类递归行动将影响 以及它的所有孩子,包括 rpool/

如果你做了递归快照,它不会创建一个单身的快照。它创建多种的快照,一个用于每个数据集。

此命令将产生以下快照。-r 是“递归”:

zfs snap -r rpool@important
  1. rpool@important
  2. rpool/home@important
  3. rpool/media@important
  4. rpool/isos@important
  5. rpool/isos/stable@important
  6. rpool/isos/测试@important

您可以选择使用以下命令销毁所有快照。请注意 -r 选项:

zfs destroy -r rpool@important

如果您希望有选择性,您可以只销毁特定快照,而不会损害其他快照。请注意,没有使用 -r 选项:

zfs destroy rpool@important
zfs destroy rpool/media@important

现在您将只剩下您保存的快照:

  1. rpool/home@important
  2. rpool/isos@important
  3. rpool/isos/stable@important
  4. rpool/isos/测试@important

相关内容