4台のPC間でディレクトリの同期を維持できる分散ファイルシステム(または同期ツール)が必要です。
私の要件は次のとおりです。
- オフラインアクセス(データは各PCでオフラインで利用可能である必要があります)
- 実行権を保持する:一部のファイルは、Linuxパーティションで実行可能とマークされています。このフラグは複製する必要があります。
- 効率的な同期戦略:私のファイルのいくつかは20GBで、頻繁に変更されますが、ほとんど部分がありません(Virtualboxイメージ)。デルタ送信は大歓迎です。
- スペースの効率的な処理:ファイルの履歴はありません。「壊れた場合に備えて」ファイルを一時ディレクトリにコピーしないでください。
- ファイルの削除を伝播する必要があります
- 変更は4つのPCのいずれかで発生する可能性があり、他のPCが接続されているときに伝播する必要があります。
- ソリューションはフォールトトレラントである必要があります。ほとんどの場合、4台のPCが切断されているか、同期できません。
私のソリューションの他の仕様は次のとおりです。
- 同期はLANを超えており、同期されるデータの総量は約180GBで、約1万ファイルです。変更は小さいですが、大きなファイルで発生する可能性があります。
- 現時点では、Linuxのみのソリューションに興味があります。
- 単純なマージ戦略:競合が発生しないか、「最後の1つが勝つ」で解決されます
良い解決策は見つかりませんでした。私は試してきました:
- unison:現時点で機能しているのはこれだけですが、多くのカスタム構成(実行をチェーンするcronスクリプト)を実行する必要がありました。変更を検出するためにPCが何分間もハングし、ディスクライトが点灯します。
- Sparkleshareは大きなファイルをうまく処理しません。それは無期限に成長するすべての変更の履歴を保持します。彼らはそれが 次のリリース で修正されることを約束します、しかし現時点ではそれはまだ私のニーズに合いません。
- Owncloudは大きなファイルをうまく処理せず、コピーのパフォーマンスが低く、変更した各ファイルの履歴を保持します(無効にすることができます)。
- コーダ? (助けて!正しく設定できませんでした!)
- git-annex Assistant すべてのファイルをシンボリックリンクに変換し、元のファイルを読み取り専用としてマークします(「変更中に間違えた場合に備えて」!)。ファイルを編集する前に、ファイルのローカルコピーを作成する特別なコマンド「git-annexunlock」を発行する必要があります。同期する場合は、ファイルを再度ロックすることを忘れないでください。 180Gbのファイルを取り戻す前に、マニュアルを勉強する必要がありました。私のPCでは二度と!
次に何を試してみますか?