我办公室里有一台机器,它具有双重角色,并且有两个 zfs 池来实现这一点。第一个池用于运行本地网络服务(dhcp、dns 等)的本地容器。我们将其称为“容器”。另一个池用于保存从位于数据中心的生产系统接收到的快照。我们将其称为“备份”。
我想在此主机上运行 zfs-auto-snapshot,但只让其快照包含容器的 zpool 上的数据集。备份池中每天已有一次数据集快照,由于与这些数据集没有实际交互,因此无需再创建快照,而且我不能百分之百确定这些快照不会造成空间问题或与从生产中收到的增量快照相关的问题。
现在我知道“//”在 zfs-auto-snapshot 命令行中指的是所有数据集。我想知道我是否可以将池(容器)的名称替换为“//”,以及它是否会自动获取该池及其所有数据集。文档并未明确说明是否可以将池的名称作为快照目标,并让池下的所有数据集也进行快照。
我还注意到至少有一篇帖子表明,由于我在 ubuntu 服务器 18.04 上,zfs-auto-snapshot 包可能已被另一种自动创建快照的机制所取代...所以如果有人知道有关这方面的任何信息,我很乐意听到它。
谢谢!
答案1
您应该能够使用命令行执行此操作:
zfs-auto-snapshot --recursive containers
这将对池中顶级池数据集下的所有子数据集进行快照containers
。
或者,查看--default-exclude
描述:
默认情况下
zfs-auto-snapshot
将快照除用户属性com.sun:auto-snapshot
设置为 的数据集之外的所有数据集false
。此选项反转行为并需要com.sun:auto-snapshot
设置为true
。
因此,您也可以在顶层文件系统上将com.sun:auto-snapshot
属性设置为,然后继续使用(可能还需要,我不确定)。false
backup
//
--recursive