0

0

Linux btrfs subvolume / snapshot 的 send / receive 增量备份流程

冰川箭仙

冰川箭仙

发布时间:2026-02-19 10:25:02

|

550人浏览过

|

来源于php中文网

原创

btrfs增量备份必须基于有祖先关系的快照,即后者须由前者(或其子快照)通过btrfs subvolume snapshot -r创建;否则send报“cannot find parent”错误。

linux btrfs subvolume / snapshot 的 send / receive 增量备份流程

send/receive 增量备份必须基于两个有祖先关系的快照

不是任意两个快照都能做增量 btrfs send,必须满足「后者是前者的后代」——也就是后者是用 btrfs subvolume snapshot -r 从前者(或其子快照)创建出来的。否则会报错 ERROR: cannot find parent for ...

实操建议:

  • 每次备份前,用 btrfs subvolume list -t 查看快照的 Parent UUID 字段,确认继承链
  • 推荐用命名规范强制可追溯,比如 @snap-2024-06-15-0200@snap-2024-06-16-0200,且后者一定从前者只读快照而来
  • 如果误删了中间快照,btrfs send -p 会直接失败,此时只能退回到全量 btrfs send,或用 btrfs send -c(需接收端已有相同父快照)

接收端 subvolume 必须不存在,且挂载点需支持 btrfs

btrfs receive 不会覆盖、合并或跳过已存在的子卷,只要目标路径下 @backup 已存在,就会卡住并报 ERROR: cannot create subvolume ... File exists。而且接收目录本身必须是 btrfs 文件系统挂载点——哪怕只是挂载了子卷,也不行。

实操建议:

  • 接收前先清理:btrfs subvolume delete /mnt/backup/@backup(如果存在)
  • 确保 /mnt/backup 是 btrfs 挂载点,而不是某个 btrfs 子卷的挂载;可用 findmnt -o SOURCE,TARGET,FSTYPE | grep backup 验证
  • 别把接收目录设成 /home 这类常驻挂载点——万一挂载选项不含 subvol=receive 可能写到根子卷,导致混乱

send 的 -p 和 -c 参数区别直接影响恢复灵活性

btrfs send -p 生成的是「相对父快照的增量流」,依赖发送端和接收端都持有那个父快照;btrfs send -c 则指定一个「已存在于接收端的快照」作为参考,允许你跳过中间快照做差量传输(比如从 v1 直接发 v3,只要 v1 在接收端存在)。

AI抖音
AI抖音

AI抖音,会思考的抖音

下载

实操建议:

  • 日常轮转备份建议统一用 -p:逻辑清晰、校验简单,适合脚本自动化
  • 网络中断后重传或跨节点同步时,用 -c 更省带宽,但得先 rsyncscp 把父快照元数据同步过去(实际只需 subvolume list -t 能识别即可)
  • -c 不等于「任意快照都能当 base」:它要求该快照在接收端的 uuid 和发送端一致,即必须是同一个子卷的原始快照,不能是 clone 或 rename 后的副本

管道传输时务必加 --no-progresspv 控制节奏

默认 btrfs send 会输出进度行(如 At subvol ...),混在二进制流里会导致 btrfs receive 解析失败,报 ERROR: bad magic value。同时,未经节流的 send/receive 在慢速链路上容易因 buffer 满、超时断连。

实操建议:

  • 发送端一定要加 --no-progressbtrfs send --no-progress -p @snap-0615 @snap-0616 | ssh host 'btrfs receive /mnt/backup'
  • pv -s $(stat -c %s /path/to/snap) | 可视化进度,并通过 -L 限速避免打满带宽
  • 别用 gzip 管道压缩 send 流:虽然能减体积,但一旦出错无法定位是哪块数据损坏;如真要压缩,应在 send 前对源文件系统做 chattr +c 启用透明压缩

真正麻烦的不是命令敲错,而是快照之间隐含的父子关系断裂,或者接收端残留了同名但不同源的子卷——这些不会立刻报错,但某天 receive 突然失败,翻日志才发现 UUID 对不上。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

371

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

339

2023.10.25

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

287

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

220

2023.12.29

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1520

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

714

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

300

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

791

2023.07.05

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

660

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.3万人学习

Git 教程
Git 教程

共21课时 | 3.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号