cd /mnt/btr_pool

cd /mnt/btr_pool

我在从本地到远程机器进行 btrfs 增量发送和接收时遇到了问题。

我的主机 Lxd 是 Ubuntu 16.04.3 LTS,带有 lxd 2.0.10 和 btrfs-progs v4.4

我的 2 个容器是 centos7(CentOS Linux 版本 7.3.1611(核心))

btrfs-progs-devel-4.4.1-1.el7.x86_64

btrfs-progs-4.4.1-1.el7.x86_64

mariadb-libs-5.5.52-1.el7.x86_64

mariadb-5.5.52-1.el7.x86_64

mariadb-服务器-5.5.52-1.el7.x86_64

第一个 mariadb centos7 容器。(本地 btrfs)

我创建了 btrfs 子卷 /var/lib/mariadb/mysql 来保存 mariadb 数据库,并每天制作快照

第一个 mariadb centos7 容器上的结果 btrfs 快照示例

ID 281 gen 195 顶级 5 路径 mysql_201707210830

ID 288 gen 186 顶级 5 路径 mysql_201707220830

ID 290 gen 191 顶级 5 路径 mysql_201707230830

ID 292 gen 217 顶级 5 路径 mysql

第二个 mariadb centos7 容器。(远程 btrfs)

我创建了 btrfs 子卷 /var/lib/mariadb

并从第一个 mariadb centos7 容器发送 btrfs 子卷快照,从 mysql_201707210830 开始,在 mysql_201707210830 和 mysql_201707220830 之间增量,在 mysql_201707220830 和 mysql_201707230830 之间增量

第二个 mariadb centos7 容器上的结果 btrfs 快照示例

ID 270 gen 68 顶级 5 路径 mysql_201707210830

ID 274 gen 66 顶级 5 路径 mysql_201707220830

ID 276 gen 71 顶级 5 路径 mysql_201707230830

我开始按照以下步骤在第二个 mariadb centos7 容器上测试结果(首先“cd /var/lib/mariadb”)。

  1. 使用命令“btrfs sub snap mysql_201707210830 mysql”然后“systemctl start mariadb”结果很好,mariadb 按预期工作。(在此之后“systemctl stop mariadb”,“btrfs sub del mysql”和“btrfs sub sync”。)

    1. 使用命令“btrfs sub snap mysql_201707220830 mysql”然后“systemctl start mariadb”结果很好mariadb按预期工作。(在此之后“systemctl stop mariadb”,“btrfs sub del mysql”和“btrfs sub sync”。)

    2. 使用命令“btrfs sub snap mysql_201707230830 mysql”然后“systemctl start mariadb”结果不如预期!!!!mariadb无法启动。

谁能帮我一下我在哪一步犯了错误?

此致,

西拉妮·贾拉斯瓦奇拉库尔。

答案1

在 btrfs 支持团队的帮助下。非常感谢“Chris Murphy”和“A L”的建议。

最后我找到了导致结果不正确的错误步骤。用于验证源和目标快照发送/接收是否相同的工具是“rsync -avnc /var/lib/mariadb/mysql_yyyymmddhhmm/ user@ip_destination:/var/lib/mariadb/mysql_yyyymmddhhmm/”

2017 年 8 月 12 日(星期六)晚上 8:20,写道:

[root@backuplogC7 ~]# rsync -avnc /var/lib/mariadb/mysql_201708090830 [电子邮件保护]://var/lib/mariadb/mysql_201708090830

您需要使用 -a 选项在第一个目录后面加上 /。

rsync -a 目录 目录

与以下命令不同

rsync -a 目录/ 目录

这很令人困惑,但您的命令试图在源上创建 mysql_201708090830 目录,在目标上的 mysql_201708090830 中。这就是一切都不匹配的原因。要使其表示“内容”,您至少需要在原点上添加斜杠。

— 克里斯·墨菲

我不记得我犯了哪些步骤错误并导致mysql收到了UUID。

导致 btrfs 发送/接收增量不正确的主要原因是当前子卷“mysql”具有“已接收 UUID”,这应该在目标站点(远程)接收时发生,但在我的例子中,它出现在源站点(本地)。

2017 年 8 月 13 日下午 12:52,[电子邮件保护]写道:

你好“A L”,

[root@backuplogC7 ~]# btrfs sub show /var/lib/mariadb/mysql /var/lib/mariadb/mysql 名称:mysql UUID:92f319c5-e132-3249-9b13-d39ee77a2b44 父 UUID:- 收到的 UUID:3ad0334a-4063-654c-add6-b1cbcdeaa639 创建时间:2017-06-21 13:27:41 +0700 子卷 ID:257 代:539 创建时的代:9 父 ID:5 顶级 ID:5 标志:- 快照:mysql_201708060830 mysql_201708070830 mysql_201708080830 mysql_201708090830 mysql_201708100830 mysql_201708110830 mysql_201708120830 mysql_201708130830

是的,我认为它已经收到 UUID,因为我从快照 mysql_201708040830 恢复了源,以证明本地快照可以正常工作。

如何清除已接收的 UUID?下一步做什么?您需要创建 /var/lib/mariadb/mysql 的读写快照,然后删除旧子卷及其所有快照。

示例来自https://github.com/digint/btrbk/blob/master/doc/FAQ.md

cd /mnt/btr_pool

mv mysubvolume mysubvolume.broken

btrfs 子卷快照 mysubvolume.broken mysubvolume

您也可以对每个快照执行相同操作,并将它们作为完整快照发送(不带 -p)。

~A

-- 按照建议https://github.com/digint/btrbk/blob/master/doc/FAQ.md--

“我收到错误:已中止:已设置“已接收 UUID”

您可能使用发送-接收恢复了备份,并使用 btrfs 属性集使其可读/写。这很糟糕,因为所有快照和备份都将继承相同的“接收的 UUID”,这会导致所有这些子卷将被视为“包含相同数据”。

为了解决这个问题,创建一个“适当的”快照:

  • 这是您对子卷“mysql”的建议

cd /mnt/btr_pool

mv mysubvolume mysubvolume.broken

btrfs 子卷快照 mysubvolume.broken mysubvolume

现在,mysubvolume 应该有一个空的“已接收 UUID”。请注意,为了拥有一个干净的环境,您还需要修复使用损坏的子卷创建的所有子卷(快照以及备份)。

检查是否还有更多损坏的子卷:

btrfs 子卷显示 mysubvolume.broken

btrfs 子卷列表 -a -R /mnt/btr_pool | grep <从上面收到的“UUID”>

btrfs 子卷列表 -a -R /mnt/btr_backup | grep <从上面收到的“UUID”>

  • 本指南似乎我只需清除<“已接收的 UUID”>子卷“mysql”,其他(“mysql_201708070830”应该使用 btrfs 子卷快照 -r 而不是 btrfs 子卷快照。这是正确的吗?

现在清理列出的所有子卷(与上面相同,但现在使用 btrfs subvolume snap-r)。然后删除所有损坏的子卷:

btrfs 子卷删除 *.broken

最后,你应该有一个干净的环境,并且btrbk不会再抱怨了。

修复损坏的快照子卷的最后步骤如下。

我已经完成了以下操作并且它现在工作正常。

[root@backuplogC7 mariadb]# btrfs 子卷快照 mbroken_201708070830 rw_201708070830 在'./rw_201708070830' 中创建'mbroken_201708070830' 的快照 [root@backuplogC7 mariadb]# btrfs 子列表。 ID 257 gen 542 顶级 5 路径 mbroken ID 317 gen 576 顶级 5 路径 mbroken_201708070830 ID 318 gen 568 顶级 5 路径 mbroken_201708080830 ID 319 gen 569 顶级 5 路径 mbroken_201708090830 ID 320 gen 570 顶级 5 路径 mbroken_201708100830 ID 321 gen 571 顶级 5 路径 mbroken_201708110830 ID 322 gen 572 顶级 5 路径 mbroken_201708120830 ID 323 gen 573 顶级 5 路径 mbroken_201708130830 ID 324 gen 543 顶级 5 路径 mysql ID 348 gen 576 顶级 5 路径 rw_201708070830 [root@backuplogC7 mariadb]# btrfs 子卷快照 mbroken_201708080830 rw_201708080830 在 './rw_201708080830' 中创建 'mbroken_201708080830' 的快照 [root@backuplogC7 mariadb]# btrfs 子卷快照 mbroken_201708090830 rw_201708090830 在 './rw_201708090830' 中创建 'mbroken_201708090830' 的快照 [root@backuplogC7 mariadb]# btrfs 子卷快照 mbroken_201708100830 rw_201708100830 在 './rw_201708100830' 中创建 'mbroken_201708100830' 的快照 [root@backuplogC7 mariadb]# btrfs 子卷快照 mbroken_201708110830 rw_201708110830 在 './rw_201708110830' 中创建 'mbroken_201708110830' 的快照 [root@backuplogC7 mariadb]# btrfs 子卷快照 mbroken_201708120830 rw_201708120830 './rw_201708120830' 中的 'mbroken_201708120830' [root@backuplogC7 mariadb]# btrfs 子卷快照 mbroken_201708130830 rw_201708130830 在 './rw_201708130830' 中创建 'mbroken_201708130830' 的快照 [root@backuplogC7 mariadb]# btrfs 子列表 . ID 257 gen 542 顶级 5 路径 mbroken ID 317 gen 576 顶级 5 路径 mbroken_201708070830 ID 318 gen 577 顶级 5 路径 mbroken_201708080830 ID 319 gen 578 顶级 5 路径 mbroken_201708090830 ID 320 gen 579 顶级 5 路径 mbroken_201708100830 ID 321 gen 580 顶级 5 路径 mbroken_201708110830 ID 322 gen 581 顶级 5 路径 mbroken_201708120830 ID 323 gen 582 顶级 5 路径 mbroken_201708130830 ID 324 gen 543 顶级 5 路径 mysql ID 348 gen 576 顶级 5 路径 rw_201708070830 ID 349 gen 577 顶级 5 路径 rw_201708080830 ID 350 gen 578 顶级 5 路径 rw_201708090830 ID 351 gen 579 顶级 5 路径 rw_201708100830 ID 352 gen 580 顶级 5 路径 rw_201708110830 ID 353 gen 581 顶级 5 路径 rw_201708120830 ID 354 gen 582 顶级 5 路径 rw_201708130830 [root@backuplogC7 mariadb]# btrfs 子卷列表 -a -R 。| grep “3ad0334a-4063-654c-add6-b1cbcdeaa639” ID 257 gen 542 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken ID 317 gen 576 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708070830 ID 318 gen 577 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708080830 ID 319 gen 578 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708090830 ID 320 gen 579 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708100830 ID 321 gen 580 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708110830 ID 322 gen 581 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径mbroken_201708120830 ID 323 gen 582 top level 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 path mbroken_201708130830 [root@backuplogC7 mariadb]# btrfs sub snap -r rw_201708070830 mysql_201708070830 在 './mysql_201708070830' 中创建 'rw_201708070830' 的只读快照 [root@backuplogC7 mariadb]# btrfs sub snap -r rw_201708080830 mysql_201708080830 创建'./mysql_201708080830' 中的 'rw_201708080830' [root@backuplogC7 mariadb]# btrfs sub snap -r rw_201708090830 mysql_201708090830 在 './mysql_201708090830' 中创建 'rw_201708090830' 的只读快照 [root@backuplogC7 mariadb]# btrfs sub snap -r rw_201708100830 mysql_201708100830 在 './mysql_201708100830' 中创建 'rw_201708100830' 的只读快照 [root@backuplogC7 mariadb]# btrfs sub snap -r rw_201708110830 mysql_201708110830 在 './mysql_201708110830' 中创建 'rw_201708110830' 的只读快照 [root@backuplogC7 mariadb]# btrfs sub snap -r rw_201708120830 mysql_201708120830 在 './mysql_201708120830' 中创建 'rw_201708120830' 的只读快照 [root@backuplogC7 mariadb]# btrfs sub snap -r rw_201708130830 mysql_201708130830 在 './mysql_201708130830' 中创建 'rw_201708130830' 的只读快照'./mysql_201708130830' [root@backuplogC7 mariadb]# btrfs 子列表 .ID 257 gen 542 顶级 5 路径 mbroken ID 317 gen 576 顶级 5 路径 mbroken_201708070830 ID 318 gen 577 顶级 5 路径 mbroken_201708080830 ID 319 gen 578 顶级 5 路径 mbroken_201708090830 ID 320 gen 579 顶级 5 路径 mbroken_201708100830 ID 321 gen 580 顶级 5 路径 mbroken_201708110830 ID 322 gen 581 顶级 5 路径 mbroken_201708120830 ID 323 gen 582 顶级 5 路径 mbroken_201708130830 ID 324 gen 584 顶级 5 路径 mysql ID 348 gen 583 顶级 5 路径 rw_201708070830 ID 349 gen 584 顶级 5 路径 rw_201708080830 ID 350 gen 585 顶级 5 路径 rw_201708090830 ID 351 gen 586 顶级 5 路径 rw_201708100830 ID 352 gen 587 顶级 5 路径 rw_201708110830 ID 353 gen 588 顶级 5 路径 rw_201708120830 ID 354 gen 589 顶级 5 路径 rw_201708130830 ID 355 gen 583 顶级 5 路径mysql_201708070830 ID 356 gen 584 顶级 5 路径 mysql_201708080830 ID 357 gen 585 顶级 5 路径 mysql_201708090830 ID 358 gen 586 顶级 5 路径 mysql_201708100830 ID 359 gen 587 顶级 5 路径 mysql_201708110830 ID 360 gen 588 顶级 5 路径 mysql_201708120830 ID 361 gen 589 顶级 5 路径 mysql_201708130830

[root@backuplogC7 mariadb]# btrfs 子卷列表 -a -R . | grep "3ad0334a-4063-654c-add6-b1cbcdeaa639" ID 257 gen 542 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken ID 317 gen 576 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708070830 ID 318 gen 577 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708080830 ID 319 gen 578 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708090830 ID 320 gen 579 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708100830 ID 321 gen 580 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708110830 ID 322 gen 581 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径mbroken_201708120830 ID 323 gen 582 顶级 5 received_uuid 3ad0334a-4063-654c-add6-b1cbcdeaa639 路径 mbroken_201708130830 [root@backuplogC7 mariadb]# btrfs 发送 /var/lib/mariadb/mysql_201708070830 | ssh 192.168.45.166 btrfs 接收 /var/lib/mariadb 在子卷 /var/lib/mariadb/mysql_201708070830 在子卷 mysql_201708070830 [root@backuplogC7 mariadb]# btrfs sub show mysql_201708070830 /var/lib/mariadb/mysql_201708070830 名称:mysql_201708070830 UUID:70ee3c31-126d-574a-814c-e3b4c81b414e 父 UUID:1d5bb8eb-b0df-2549-8b62-552cfa517609 收到的 UUID:- 创建时间:2017-08-14 07:00:08 +0700 子卷 ID:355 代:583 创建时代:583 父 ID:5 顶级 ID:5 标志:只读 快照:[root@backuplogC7 mariadb]# rsync -avnc /var/lib/mariadb/mysql_201708070830/ [电子邮件保护]:/var/lib/mariadb/mysql_201708070830/ 发送增量文件列表 ./

发送 3773 字节 接收 19 字节 1083.43 字节/秒 总大小为 718361496 加速为 189441.32(试运行) [root@backuplogC7 mariadb]# btrfs send -p /var/lib/mariadb/mysql_201708070830 /var/lib/mariadb/mysql_201708080830 | ssh 192.168.45.166 btrfs accept /var/lib/mariadb At subvol /var/lib/mariadb/mysql_201708080830 At snapping mysql_201708080830 [root@backuplogC7 mariadb]# rsync -avnc /var/lib/mariadb/mysql_201708080830/ [电子邮件保护]:/var/lib/mariadb/mysql_201708080830/ 发送增量文件列表 ./

发送 3769 字节 接收 19 字节 688.73 字节/秒 总大小为 718361496 加速为 189641.37 (空转) [root@backuplogC7 mariadb]# btrfs send -p /var/lib/mariadb/mysql_201708080830 /var/lib/mariadb/mysql_201708090830 | ssh 192.168.45.166 btrfs accept /var/lib/mariadb At subvol /var/lib/mariadb/mysql_201708090830 At snapper mysql_201708090830 [root@backuplogC7 mariadb]# rsync -avnc /var/lib/mariadb/mysql_201708090830/ [电子邮件保护]:/var/lib/mariadb/mysql_201708090830/ 发送增量文件列表 ./

发送 3773 字节 接收 19 字节 583.38 字节/秒 总大小为 718361496 加速为 189441.32 (空转) [root@backuplogC7 mariadb]# btrfs send -p /var/lib/mariadb/mysql_201708090830 /var/lib/mariadb/mysql_201708100830 | ssh 192.168.45.166 btrfs accept /var/lib/mariadb At subvol /var/lib/mariadb/mysql_201708100830 At snapping mysql_201708100830 [root@backuplogC7 mariadb]# rsync -avnc /var/lib/mariadb/mysql_201708100830/ [电子邮件保护]:/var/lib/mariadb/mysql_201708100830/ 发送增量文件列表 ./

发送 3773 字节 接收 19 字节 689.45 字节/秒 总大小为 718361496 加速为 189441.32 (空转) [root@backuplogC7 mariadb]# btrfs send -p /var/lib/mariadb/mysql_201708100830 /var/lib/mariadb/mysql_201708110830 | ssh 192.168.45.166 btrfs accept /var/lib/mariadb At subvol /var/lib/mariadb/mysql_201708110830 At snapping mysql_201708110830 [root@backuplogC7 mariadb]# rsync -avnc /var/lib/mariadb/mysql_201708110830/ [电子邮件保护]:/var/lib/mariadb/mysql_201708110830/ 发送增量文件列表 ./

发送 3773 字节 接收 19 字节 689.45 字节/秒 总大小为 718361496 加速为 189441.32 (空转) [root@backuplogC7 mariadb]# btrfs send -p /var/lib/mariadb/mysql_201708110830 /var/lib/mariadb/mysql_201708120830 | ssh 192.168.45.166 btrfs accept /var/lib/mariadb At subvol /var/lib/mariadb/mysql_201708120830 At snapping mysql_201708120830 [root@backuplogC7 mariadb]# rsync -avnc /var/lib/mariadb/mysql_201708120830/ [电子邮件保护]:/var/lib/mariadb/mysql_201708120830/ 发送增量文件列表 ./

发送 3773 字节 接收 19 字节 689.45 字节/秒 总大小为 718361496 加速为 189441.32 (空转) [root@backuplogC7 mariadb]# btrfs send -p /var/lib/mariadb/mysql_201708120830 /var/lib/mariadb/mysql_201708130830 | ssh 192.168.45.166 btrfs accept /var/lib/mariadb At subvol /var/lib/mariadb/mysql_201708130830 At snapping mysql_201708130830 [root@backuplogC7 mariadb]# rsync -avnc /var/lib/mariadb/mysql_201708130830/ [电子邮件保护]:/var/lib/mariadb/mysql_201708130830/ 发送增量文件列表 ./

发送 3773 字节 接收 19 字节 689.45 字节/秒 总大小为 718361496 加速为 189441.32 (DRY RUN) [root@backuplogC7 mariadb]#

相关内容