You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

轮换命名的btrfs增量快照子卷如何通过send/receive同步到远程服务器

可行方案

核心思路是不依赖子卷的目录名做匹配,而是用子卷唯一不变的UUID做对齐,完美适配快照轮换重命名的场景,哪怕断更多日也能正常同步:

具体操作步骤

  1. 每次本地快照轮换完成后,执行同步逻辑前,先分别拉取本地和远程备份根目录下所有只读子卷的UUID与对应路径映射:
# 本地执行,输出格式为 子卷UUID:子卷相对路径
btrfs subvolume list -u /本地/备份根目录 | awk '{print $9":"$NF}'
# 远程执行,输出格式同上
ssh 远程主机 btrfs subvolume list -u /远程/备份根目录 | awk '{print $9":"$NF}'
  1. 对齐子卷生命周期:
  • 删除远程存在、但本地已经不存在对应UUID的子卷(就是本地已经轮换淘汰的旧快照)
  • 对本地存在、但远程没有对应UUID的子卷,找到两端共有的最新快照作为父快照,执行增量发送:
btrfs send -p /本地/父快照路径 /本地/新快照路径 | ssh 远程主机 btrfs receive /远程/备份根目录
  1. 对齐路径:所有子卷都在两端存在后,按照本地的UUID-路径映射,直接重命名远程对应UUID的子卷路径即可,只读子卷重命名仅修改目录项,不会触碰实际数据,安全性极高。

注意事项

  • 同步操作前可以先给远程备份根目录做一个临时只读快照,万一操作出错可快速回滚,同步验证无问题后再删除临时快照即可
  • 发送快照时可添加校验参数避免传输错误,对可靠性要求高的场景可以加btrfs send --checksum参数
  • 不想自行开发脚本的话,可以直接用成熟的btrfs备份工具btrbk,原生支持快照轮换、跨主机增量同步、UUID自动匹配逻辑,无需自行处理路径对齐问题,适配你当前的使用场景。

内容的提问来源于stack exchange,提问作者mauserrifle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:15:02