BorgBackup重复备份未变更qcow2仍标记A且耗时不变问题咨询
问题成因
这个现象并非程序bug,和BorgBackup的文件变更判定逻辑、大文件元数据意外变动直接相关,具体原因如下:
- BorgBackup默认通过文件大小、ctime(元数据变更时间)、inode编号三个属性判断文件是否发生变更,三个属性任意一个发生变化,Borg就会判定文件为新增,需要完整读取文件内容进行分片校验。
- 你场景中的xml、.bimg文件体积小、元数据没有发生变动,因此第二次备份被标记为U(未变更)直接复用;而14GB的qcow2文件虽然内容没有修改,但元数据(比如权限、扩展属性、ACL、硬链接数,甚至libvirt后台的资源扫描操作都可能触发ctime更新)或inode编号发生了变化,触发了Borg的重新读取逻辑。
- 虽然qcow2被标记为A(新增归档),但Borg的全局去重机制会识别出所有分片和上一次备份完全一致,不会额外占用仓库存储空间,只是完整读取14GB文件的耗时和第一次备份完全相同,符合你观测到的耗时一致的现象。
验证方法
你可以执行以下命令查看文件的ctime、inode编号,确认两次备份之间这两个值是否发生变动:
stat /var/lib/libvirt/backups/onlyoffice/onlyoffice.qcow2
修复方案
如果确认该类qcow2文件内容不会随意变更,可以调整Borg的文件缓存判定规则,忽略ctime和inode的变化,避免大文件无意义的重读:
borg create --list --files-cache mtime,size /var/lib/libvirt/borgbackup/kvm610::trial6 /var/lib/libvirt/backups/onlyoffice
该参数会让Borg仅通过文件大小和mtime(内容修改时间)判定文件是否变更,大幅降低重复备份大文件的耗时。
内容的提问来源于stack exchange,提问作者MaxiReglisse
相关产品推荐
相关产品推荐

