3

假设名为“child-subvol”的 btrfs 子卷位于另一个子卷中,例如“root-subvol”,如果我们拍摄“root-subvol”的快照,那么“child-subvol”也应该被拍摄快照。

由于 btrfs 文件系统中还没有递归快照支持,如何实现呢?

4

3 回答 3

1

第 1 步:获取所有驻留的 btrfs 子卷。最好按照以下命令实现的排序顺序。

$ btrfs 子卷列表--sort=-path < top_subvol >

步骤2:按照获得的优先顺序,执行删除/快照操作。

$ btrfs subvolume delete < subvol-name >

于 2014-10-06T10:45:56.220 回答
0

我也一直想知道这一点,并且无法在网上找到任何推荐的最佳实践。应该可以编写脚本来创建处理递归的快照。

于 2014-09-30T07:52:05.310 回答
0

正如 Peter R 建议的那样,您可以编写一个脚本。但是,如果要发送子卷,则必须将其标记为只读,并且不能递归地快照到只读卷中。

为了解决这个问题,您可以在处理递归的脚本中使用btrfs-property(通过这个 answear找到),使其(在拍摄所有快照之后)将快照标记为只读,以便您可以发送它们。

或者,你可以做

cp -a --reflink=always /path/to/root_subvol/ /path/to/child_subvol/

--reflink=auto以前从未为我工作过,也可以帮助您发现错误)

它应该很快,并且具有与快照相同的优势,尽管您不保留旧的子卷结构。

于 2015-10-28T17:13:40.030 回答