简洁版本:send
我正在 Btrfs和命令的帮助下进行定期备份receive
。包含要备份的数据的快照 ( SOURCE
) 是只读快照。使用 Btrfs 创建此快照是原子的。然后使用 Btrfssend
和命令的组合进行备份receive
。我的问题是:Btrfsreceive
命令是否还会在目标卷上自动创建备份快照?
长版:对于我的日常备份策略,我使用 Btrfs 将源子卷的更改发送到备份驱动器。我要备份的子卷位于 中SOURCE
,而备份本身将存储在 中DEST
。
在进行备份之前,我需要一个只读快照,SOURCE
我将其存储SOURCE
在名为 的子目录中.snapshots
。这是通过命令完成的
btrfs subvolume snapshot -r SOURCE SOURCE/.snapshots/current_backup
sync
sync
根据 Btrfs-wiki,需要上面的命令才能工作btrfs send
。现在我想将调用的快照发送到不同驱动器上的current_backup
备份卷。DEST
我用命令来做到这一点
btrfs send SOURCE/.snapshots/current_backup | btrfs receive DEST
我的问题是关于btrfs receive
此备份过程的部分:这是自动发生的吗?换句话说:卷上的备份是否DEST
只有在完全接收和写入后才可用?
答案1
不,它不是原子的。 Btrfs receive 确实创建了一个子卷,因此这是原子的,但最初子卷是空的。然后,btrfs receive 用传入的数据填充子卷。
您可以通过在执行备份时 cd'ing 到 DEST 并重复执行 ls 或 find 来测试这一点。