我在从本地到远程机器进行 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”)。
使用命令“btrfs sub snap mysql_201707210830 mysql”然后“systemctl start mariadb”结果很好,mariadb 按预期工作。(在此之后“systemctl stop mariadb”,“btrfs sub del mysql”和“btrfs sub sync”。)
使用命令“btrfs sub snap mysql_201707220830 mysql”然后“systemctl start mariadb”结果很好mariadb按预期工作。(在此之后“systemctl stop mariadb”,“btrfs sub del mysql”和“btrfs sub sync”。)
使用命令“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]#