inotifyを使用する実用的なLinuxバックアップソリューションはありますか?


17

バックアップには永遠に時間がかかります。btrfsまたはZFSを信頼して増分スナップショットをバックアップする前に、inotifyを使用して実際に変更されたファイルを追跡し、バックアップをより速く実行するデーモンがあると便利ではないでしょうか?このプログラムはどこにありますか?

毎回ファイルシステム全体をクロールせずにLinuxボックスをバックアップするにはどうすればよいですか?新規または変更された写真、ソースコードなどを検出し、NASにコピーするためにそれらをキューに入れるプログラムが必要です。


ここでは、特に現在バックアップに使用しているもの、どのタイプのデータについて、あまり情報を提供していません。ジャーナルを使用してファイルシステムへの変更を追跡し、バックアップ中にそのジャーナルを参照するバックアップソフトウェアがいくつかあります。どのようなデバイス/アプリケーションに正確にバックアップしようとしていますか、データの性質は何ですか?また、現在のバックアップ方法は何ですか?
WerkkreW

@WerkkreW、彼がバックアップしようとしていることはそれほど重要ではないと思います。イベントベースのバックアップを可能にするものは、学ぶのが面白いと思います。要求は珍しいことではなく、OSXにはイベントベースのタイムマシンがあります。
ゾレダチェ2009年

質問に答える前に、もう少し明確にする必要があると感じています。
WerkkreW

1
@Zoredache、もちろん私がバックアップしているものは重要です!それが重要でなかった場合...ああ待ってください;-)唯一の新しいものがセットである場合、rsyncがすべてをクロールするのにかかるn時間、使用できないマシンを持たずにホームディレクトリをバックアップしたい私の生まれたばかりの赤ちゃんの写真の。
joeforker

3
質問は私には完全に明確に思えます:Mac OS XのTime Machineバックアップはfseventsを監視するので高速で、バックアップを実行するときにどこを見ればよいかがわかります。Linuxにはfseventsと同様の機能であるinotifyがありますが、Time Machine(例:dirvish)を概算しようとするLinuxバックアップソリューションは、inotifyを利用しないため、非常に遅くなります。何かありますか?
ベンディン2009

回答:


11

「yum search inotify」で自分の質問に答えました。これはlsyncdと呼ばれ、Googleコードでホストされています。

残念なことに、最初に常に完全なrsyncを最初に実行するように見えるため、一度に14時間以上コンピューターの電源を入れなかったとしても、まだ役に立ちません。

Lsyncdはrsyncを使用して、ローカルディレクトリをrsyncdを実行しているリモートマシンと同期します。Lsyncdは、inotifyを介して複数のディレクトリツリーを監視します。ウォッチを追加した後の最初のステップは、すべてのディレクトリをリモートホストとrsyncし、inotifyイベントを収集して単一のファイルを同期することです。したがって、lsyncdは軽量のライブミラーソリューションであり、インストールと使用が簡単でありながら、システムとうまく調和する必要があります。詳細なコマンドラインオプションについては、lsyncd --helpを参照してください。


それは興味深いリンクです。私はそれを自分で実装することさえ考えていました。しかし、ページごとに変更ごとに大きなファイルを再転送すると言うのはなぜですか?rsync自体は既にそれを避けていると思いましたか?
飯能フィッツ

rsyncは、できる限り効率的にファイルを転送するために、両端でファイル全体を再読み取りする必要があります。lsyncdのドキュメントは、これが大きなファイルに対して効率的ではないかもしれないと言うつもりです。大きなファイルの場合、ブロックレベルの複製スキームがより適切です。
joeforker 09

3

の問題を解決するために導入されfsnotifyた欠陥を解決するために設計されたと呼ばれる新しいシステムがあります。大騒ぎせずにファイルシステム全体を見ることができます。将来のすべてのLinuxバックアップ問題の解決に役立てば幸いです。inotifydnotifyfsnotifyfsnotify


2

incronで何かをハックできます。

 / path1 IN_CLOSE_WRITE rsync -au $ @ / $#backuphhost:/ path


incronがディレクトリを再帰的に見ることができない
joeforker

まあ、当たり前!非常に便利なように見えた:-S
hayalci 09年

2

(テストではなく)調査によれば、inotifyはほとんどのシステムで非常に多数のファイルを処理できないか、処理が非常に遅いようです。http://www.pubbs.net/kernel/200905/109416/のスレッドが最も有用でした。これは、Linux 2.6.31のメインラインであるfsnotifyにあるか、それに向かっていると思われる新しいLinux機能を指していました。以降。


2

Lsyncdは、起動時に監視対象ツリー全体を同期します。99%の場合、これは賢明なことだからです。ローカルホストにあるターゲットホストにディレクトリが必要です。そうしないと、同期が失敗し、オフにしたときに見逃したものを同期したい場合があります。ただし、実行内容がわかっている場合は、Lsyncd構成ファイルでsync {...、startup = false}を設定するだけで、スタートアップの同期をオフにできます。

inotifyについては、ファイルの数ではなく、リソースを食い尽くすディレクトリの数です。1つのディレクトリは、含まれるファイルの数に関係なく、1つの監視です。

inotifyのようなfsnotifyで構築されたfanotifyは、大量のディレクトリを見る人にとって非常に有望に見えましたが、現在Linux 2.6.37の時点では、fanotifyは名前変更(移動)イベントをまったく報告せず、このような仕事には使用できません:-(


削除の後に作成が続くのではないでしょうか?
joeforker

1
私のテストでは、ハズレ:-( fanotify念頭に置いてウイルスシールドで設計された、と私見を正確に最小に今調整されていないことが必要です。
axkibe

1

私はあなたがしようとしていることを実行するための最良のソリューションを探して6ヶ月を費やしました。NASへの効率的なバックアップ。最初の同期の後、他のすべてはバターのように滑らかです。Lsyncdの最新バージョンは非常にうまく機能します。私がしたことを以下のリンクに文書化しました。フォルダーの値を置き換えるだけです。お役に立てれば:

https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit


0

inotify-tool + rsync resolution http://code.google.com/p/sersync/の代わりにsersyncと呼ばれる、アジアで使用されている新しいシステム が非常に使いやすいです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.