Restic: SSHFSファイルシステムの非常に遅いバックアップ-iノードベースの比較をスキップする機能が必要

作成日 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 )。

ただし、iノードはsshfs(およびおそらく他のいくつかのファイルシステム)を使用したファイルシステムマウント間で変更される可能性があります。

問題を解決する方法を知っていますか?

iノードチェックをコメントアウトすると、問題が解決しました。

このチェックを無効にする方法が欲しいのですが。 多分コマンドラインフラグ?

Resticはあなたを助けましたか、それともあなたを幸せにしましたか?

確かに、それは素晴らしいソフトウェアです! 回避策を見つけたので、私はさらに満足しています...
良い仕事を続けてください!

feature enhancement

最も参考になるコメント

レポートのおかげで、これは確かに、iノードに基づいてファイルが変更されたことをresticが検出したことが原因です。 ヒューズベースのファイルシステムの場合、このチェックは適切ではありません。代わりに、タイムスタンプとファイルサイズのみをチェックする必要があります。

原則として、これは自動的に検出される可能性もあるため(ファイルシステム名を確認し、know-inode-unstableファイルシステムのブラックリストを保持することにより)、コマンドラインフラグさえ必要ない場合があります。

全てのコメント4件

レポートのおかげで、これは確かに、iノードに基づいてファイルが変更されたことをresticが検出したことが原因です。 ヒューズベースのファイルシステムの場合、このチェックは適切ではありません。代わりに、タイムスタンプとファイルサイズのみをチェックする必要があります。

原則として、これは自動的に検出される可能性もあるため(ファイルシステム名を確認し、know-inode-unstableファイルシステムのブラックリストを保持することにより)、コマンドラインフラグさえ必要ない場合があります。

原則として、これは自動的に検出される可能性もあるため(ファイルシステム名を確認し、know-inode-unstableファイルシステムのブラックリストを保持することにより)、コマンドラインフラグさえ必要ない場合があります。

これをどのように想像しますか? 私はそれにショットを与えることができます...

2205がマージされ、 0.9.5にあります。これは、閉じる必要があります。 :ウィンク:

そうです、ヒントをありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価