首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >btrfs增量快照同步:带rsync的引导

btrfs增量快照同步:带rsync的引导
EN

Unix & Linux用户
提问于 2018-01-17 09:37:45
回答 1查看 476关注 0票数 3

在web上有几个文章和工具,用于与btrfs进行快照的差异同步。

这里我的问题涉及到增量过程的引导

当我设置备份目录时,我可以启动快照的增量备份。

代码语言:javascript
复制
(src)$ sudo btrfs send initial_snapshot -f somedir/initial_snapshot.data"
(dst)$ sudo btrfs receive initial_snapshot -f somedir/initial_snapshot.data"

(假设srcdst在不同的块设备上,甚至在不同的机器上)。

有什么方法可以从与rsync同步的子卷开始吗?也就是说,我可以用这种方式引导微分同步吗?

如果我以一种天真的方式(让srcdstrsync同步,并为每个快照创建只读快照)这样做,我会得到以下错误:

代码语言:javascript
复制
btrfs error: can not find parent snapshot

是的,这是可以理解的。

但是,是否有一种方法可以“说服”btrfs,即srcdst包含相同的数据,并且initial_snapshot可以用作增量快照的父级?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-01-17 19:36:04

不幸的是,除了发送/接收操作之外,您什么都不能引导。发送/接收的增量传输取决于两件事:

  1. 相关子卷子的“接收的UUID”属性目标卷必须正确匹配源上相应子卷的“UUID”属性。您可以使用btrfs subvolume show命令轻松地检查这些值,但是除了直接修改这些值之外,没有任何方法可以设置这些值。
  2. 用于增量发送的父卷中的块必须在源和目标之间匹配。换句话说,如果要发送文件X中有更改的增量更新,则目标卷上的以前版本的文件X的副本必须与源卷上的文件X的原始副本相同。严格地说,如果除了跨快照的反射(也就是说,在源快照的父卷内的任何内容上都没有使用CLONE_RANGE或EXTENT_SAME ioctls ),那么从技术上讲,CLONE_RANGE应该满足这一要求。

从理论上讲,实际上可以解决这两种限制,但是这样做需要付出很大的努力,并且需要非常低层次的BTRFS知识(而且非常危险)。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/417728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档