在我的debian系统上,我使用用btrfs格式化的hdds进行备份。大量的数据是我的音乐和照片收集,所以它往往是相对稳定的,只有增长。
我在/media/backup中挂载btrfs卷,然后我有一个子目录备份,并在其中包含了用于进行各种备份的目录。做完夜间备份之后,我就会做一个快照。
DATE=$(日期+"%Y%m%d_%H%M") btrfs子卷快照/媒体/备份/媒体/备份/$DATE
对于第一天,这是预期的,但是第二天,快照也包含第一天的快照,快照的第二天包含第一次快照,等等。
如果我正确地理解了当我做btrfs快照时会发生什么,这没有实际意义,磁盘空间的使用是绝对有限的,但是由于它看起来有点混乱,我想避免它。我的第一个想法是做一个/media/backup/backup的快照以避免这种情况,但是当我试图创建一个目录的快照而不是一个卷时,这当然是行不通的。
是否有任何方法可以使相同卷的快照数量,并避免让更新的快照也指向所有旧的快照?
发布于 2018-02-07 20:22:18
首先,如果您查看最近的快照,您将注意到来自前一个快照的目录不包含新快照中的任何实际数据,因此它不仅仅是边缘磁盘使用,它是零额外的。
现在,要避免它们,唯一的方法是将快照存储在快照进程未涵盖的地方。对于这一点,您实际上有两个选项:
btrfs subvolume create创建子卷并将快照创建脚本指向那里,以便存储快照。就其价值而言,.snapshots似乎是这种方法的一个事实上的标准名称。使用此选项几天后,目录树的外观大致如下: /media/backups /media/backups/. /media/backups /backups/.快照/20180207_1342/media/backups/.快照/20180209_0415/media/backups/.快照/20180312_1754所有非快照数据都在/media/backups/.snapshots中,所有单个快照都存储在D5中。每个快照中都有一个空的.snapshots目录。/media/backups/current中(它需要是一个BTRFS子卷,就像.snapshots对第一个方法所做的那样),并且您的快照位于/media/backups下面。只需删除current子卷并创建要还原的快照的可写快照current,就可以轻松地还原整个快照。现在,对于你所说的不是你问题的直接部分,我还想提出另外两点:
-r,使快照成为只读的。在需要修改一个文件的情况下(例如,如果需要从集合中彻底清除一个文件),仍然可以使用btrfs property set命令在快照上切换只读标志。https://unix.stackexchange.com/questions/422635
复制相似问题