xfsdump:跨越多个驱动器

xfsdump:跨越多个驱动器

我正在尝试为 3 个 2TB 外部驱动器创建 5.5TB 数据的一次性快照。数据位于 XFS 分区上,因此逻辑选项似乎是 xfsdump,因为它可以跨多个设备。作为测试,我在其中一个驱动器上创建了一些较小的分区,这样我就可以强制它在几分钟内(而不是几小时)到达驱动器的末尾。外部驱动器包含两个分区,/dev/sde1/dev/sde2,大小均为 256MB。

这是我正在使用的命令:

xfsdump -o -l0 -s daily.0/jones -f /dev/sde2 -p 10 /snaps

系统提示我输入转储和介质标签,然后开始备份。大约 30 秒后,我收到以下消息:

xfsdump:结束媒体文件
xfsdump:媒体文件大小750000128字节
xfsdump:转储大小(非目录文件):728189552 字节
xfsdump:注意:转储中断:已过 27 秒:可以稍后使用 -R 选项恢复
xfsdump:转储状态:中断

这几乎就是我希望看到的,因为它触及了可用空间的末尾/dev/sde2

跑步xfsdump -I看起来也不错:

# xfsdump -I
文件系统 0:
        文件系统编号:767465ce-3031-4672-8341-dfb135d8a463
        会话 0:
                挂载点:broze:/snaps
                设备:broze:/dev/mapper/vg0-snaps
                时间:2009 年 11 月 3 日星期二 14:23:57
                会话标签:“dump1”
                会话 ID:531a3622-84af-4767-a54b-a1b11a962dcb
                等级:0
                恢复:否
                子树:是
                流:1
                流 0:
                        路径名:/dev/sde2
                        开始:ino 535 偏移量 0
                        结束:ino 1260 偏移量 0
                        打断:是的
                        媒体文件:1
                        媒体文件 0:
                                mfile 索引:0
                                mfile 类型:数据
                                文件大小:750000128
                                mfile 开始:ino 535 偏移量 0
                                mfile 结束:ino 1260 偏移量 0
                                媒体标签:“drive1”
                                媒体 ID:721c35ba-e844-47f8-8692-0d3122d88093
xfsdump:转储状态:成功

似乎表明我应该能够恢复备份。但是,如果我使用标志运行 xfsdump-R并指定要备份到的新设备,我得到的结果是:

# xfsdump -R -o -l0 -s daily.0/jones -f /dev/sde1 -p 10 /snaps
xfsdump:使用文件转储(drive_simple)策略
xfsdump:版本 2.2.45(转储格式 3.0)- 运行单线程

 ============================== 转储标签对话框 ===============================

请输入此转储会话的标签(300 秒内超时)
 -> 转储1.contd
输入的会话标签:“dump1.contd”

 --------------------------------- 结束对话 ---------------------------------

xfsdump:错误:恢复(-R)选项不合适:没有中断的 0 级转储可以恢复
xfsdump:转储状态:错误

/dev/sde2分区确实似乎包含有效(如果不完整)的备份,因为我可以使用 xfsrestore 命令从中恢复。

知道如何让 xfsdump 跨越多个设备吗?有没有更好的方法来实现这一点,而无需手动尝试将数据划分为 2TB 块?

谢谢!

答案1

这很棘手。首先,如果可能的话,我不建议这样做。其次,最好只备份分块的数据,而不是备份文件系统。但是,如果您必须将其备份为一个连续的文件系统,我想您可以创建一个跨越三个驱动器的 lvm2 卷作为某种虚拟容器,然后将整个东西 dd/xfsdump 到其中。不确定这是否是一种合理的方法,但它应该有效。:)

祝你好运

答案2

经过一番争论,我还是无法让 xfsdump 解决方案发挥作用。所以我做了我本应该做的事情:tar。

tar-cvM-L 1953383400-f /mnt/backup1.tar.

文件系统备份到 中安装的驱动器上的 tarball 中/mnt/。添加-M标志会告诉 tar 它将创建一个多卷存档。该-L标志会告诉它每个卷的大小。当备份达到该大小时,tar 会暂停并礼貌地请求新的卷:

为“backup1.tar”准备卷#2并按回车键:

点击后?会出现一个选项菜单:

为“backup1.tar”准备卷#2并按回车键:?
 n name 为下一个(及后续)卷指定一个新文件名
 q 中止 tar
 y 或换行符 继续操作
 ! 生成一个子 shell
 ? 打印此列表
为“backup1.tar”准备卷#2并按回车键:

因此我卸载外部驱动器,连接下一个驱动器,安装它,n backup2.tar在提示符下输入,然后备份继续。

好老焦油。

答案3

我测试了与您在此处使用的用例基本相同的用例,除了转储到文件之外,它没有任何问题。我怀疑您的使用没有问题,但还有其他问题。这可能不是最好的论坛,但我发现 XFS 邮件列表和 Freenode 网络上的 #xfs IRC 频道上的开发人员非常有帮助。

相关内容