Restic: SSHFS 文件系统的备份速度非常慢——需要能够跳过基于 inode 的比较

创建于 2018-02-19  ·  4评论  ·  资料来源: restic/restic

restic version

休息 0.8.2

你是如何运行restic的?

% restic -r /tmp/restictest backup $SSHFSMOUNT/directory

备份目录是一个 sshfs 挂载的文件系统。
该命令运行多次以执行多个快照。
在大多数情况下,远程目录中有大量数据 (1TB+)。

您使用什么后端/服务器/服务来存储存储库?

本地 ext4 文件系统。

预期行为

我预计第一次备份会很慢并且通过 LAN 传输大量数据,而下一次备份应该会很快并且不应该使用太多带宽。

实际行为

即使没有文件更改,所有备份也需要数小时(如果不是数天)。

重现行为的步骤

  • 运行备份
  • 卸载 sshfs 文件系统
  • 重新挂载 sshfs 文件系统
  • 运行新备份

它不是 100% 可重现的,但即使使用少量数据我也可以重现它。

SFTP 服务器日志显示即使文件没有更改,文件也已完全检索。

你知道是什么原因造成的吗?

是:restic 比较 inode 以仔细检查文件是否已被修改(调试消息“时间戳、大小或 inode 已更改”, restic/node.go:551restic.(*Node).IsNewer11node )。

但是,inode 可能会在使用 sshfs(可能还有其他一些文件系统)的文件系统挂载之间发生变化。

你知道如何解决这个问题吗?

注释掉 inode 检查为我解决了这个问题。

我想有办法禁用此检查; 也许是命令行标志?

restic 是否以任何方式帮助了您或让您感到高兴?

当然,这是一款不错的软件! 自从我找到了解决方法后,我就更加高兴了...
保持良好的工作!

feature enhancement

最有用的评论

感谢您的报告,这确实是由于基于 inode 检测到文件已更改而导致的。 对于基于熔断器的文件系统,这种检查不是很好,我们应该只检查时间戳和文件大小。

原则上,这也可以自动检测到(通过查看文件系统名称,并保留已知 inode 不稳定文件系统的黑名单),因此我们甚至可能不需要命令行标志。

所有4条评论

感谢您的报告,这确实是由于基于 inode 检测到文件已更改而导致的。 对于基于熔断器的文件系统,这种检查不是很好,我们应该只检查时间戳和文件大小。

原则上,这也可以自动检测到(通过查看文件系统名称,并保留已知 inode 不稳定文件系统的黑名单),因此我们甚至可能不需要命令行标志。

原则上,这也可以自动检测到(通过查看文件系统名称,并保留已知 inode 不稳定文件系统的黑名单),因此我们甚至可能不需要命令行标志。

你如何设想这一点? 我可以试一试...

2205 已合并并在0.9.5 ,这应该关闭。 :眨眼:

你说得对,谢谢指点!

此页面是否有帮助?
0 / 5 - 0 等级