web-dev-qa-db-ja.com

ユニゾンはどのくらい信頼できますか?それはあなたのデータを台無しにしたことがありますか?

Unison( http://www.cis.upenn.edu/~bcpierce/unison/ )を使用すると、データが台無しになったという事実に興味がありますか?その信頼性について知りたい。

17

Unisonの使用をやめた理由は次のとおりです。

  • ファイル名の特殊文字や国際文字を正しく処理できません。これらのファイルはコピーされていないと思います(しかし、それについてはよくわかりません)。
  • Macでは、(オプションの)GUIが頻繁にクラッシュしたため、クラッシュするたびに同期プロセスを再開する必要がありました。
4
Rabarberski

私は2004年のようなものからユニゾンのオンとオフを使用しています。別の質問への回答で、マシン間でデータをバックアップ/同期するためのツールとしてrsyncにうなずきました。

この間ずっと、ユニゾンはファイルの内容を細断するという意味で私のデータを台無しにすることはありませんでした。ただし、使用中のファイル、アクセス許可、クロスプラットフォームの問題など、エッジの状態に対してある程度の感度が表示されました。ファイルをUnisonと同期するときにエラーが発生した場合は、これを注意深く調査する必要があります。ログを保存します。

数週間前、私はUnisonの使用をやめ、rsyncに戻りました。主な理由:

  • Unisonはもはや積極的に開発されていませんが、rsyncは
  • Unisonは、実際の使用ではrsyncよりも低速です。実際の使用では、ホームディレクトリに合計150GBを超える数十万のファイルがあります。 USBドライブへの1日の作業のバックアップには、Unisonでは約10分かかりますが、最新のrsyncでは1〜2分しかかかりません。
  • Unisonのデータベースは、受信ファイルシステムの突然の切断など、前述のEdgeのケースのため、数か月ごとに再構築する必要があります。それらが破損している場合、ファイルは破棄されませんが、同期されていないままで、奇妙なエラーが発生する可能性があります。このデータベースの再構築は、特にリモートボリュームの場合、数時間または数日かかる場合があります。
23
ttarchala

Ttarchalaと同じくらい長い間使用していませんが、小さいファイルセットではうまく機能し、データを失うことはありません。

活発な開発は行っていませんが、ある程度は維持されています。過去数か月間にソースツリーに更新/バグ修正がコミットされており、現在のバイナリを取得できます ここ (たとえば)。

また、ファイル全体をチェックサムするのではなく、サイズと日付でファイルの変更を検出するfastcheck/pretendwinを設定することで、パフォーマンスを向上させることができることにも注意してください。

9
JeffP

私はかなり長い間それを使用しました(デスクトップとラップトップの間で同期するために)。他の人が書いているように、同期中は非常に注意深く、ファイルを失うことはありませんでした。問題が発生した場合は、(時間のかかる)再同期が必要になる場合がありますが、最終的にはすべてが解決されます。

通常の操作では、高速かつ安全です。

8
sleske

私はMacでUnisonを少なくとも8年間使用しています。 Unisonが破損したり、ファイルが失われたりしたことはありません。早い段階で、Unisonがリソースフォークを理解できないという問題が発生し、同期に失敗しました。

Mac B&W G3のFinderが、メガバイトごとに1〜2バイトをランダムに変更することで、コピーされたファイルをサイレントに破損していることがわかった後、Unisonを使い始めました。 (Rev 1ロジックボード上のFirewireのハードウェアの問題が原因です。)その問題以来、私はバックアップコピーの比較について本当に、本当に妄想的でした。Unisonはそれをうまくやってくれます。

7
Pat McGee

これらはユニゾンの失敗です:

Windowsで2つのCygwinディレクトリを同期すると、Cygwinが使用するシンボリックリンクが破損し、コンテンツが破損します。

C:\Program Files\Unison>"Unison-2.40.102 Text.exe"  c:\cygwin socket://xps:4321/c:\cygwin -path bin
UNISON 2.40.102 started propagating changes at 03:32:12.55 on 28 Feb 2013
[BGN] Updating file bin/X from C:/cygwin to //xps/C:/cygwin


$ ls -l /bin/X //xps/c/cygwin/bin/X
-rwxr-xr-x+ 1 Administrators ???????? 19 Feb 28 03:32 //xps/c/cygwin/bin/X
lrwxrwxrwx  1 Chloe          None      8 Jan 28 18:35 /bin/X -> XWin.exe


$ stat /bin/X //xps/c/cygwin/bin/X
  File: `/bin/X' -> `XWin.exe'
  Size: 8               Blocks: 1          IO Block: 65536  symbolic link
Device: f8e5edb8h/4175818168d   Inode: 1125899907027010  Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1006/   Chloe)   Gid: (  513/    None)
Access: 2013-01-28 18:35:38.648870400 -0500
Modify: 2013-01-28 18:35:38.648870400 -0500
Change: 2013-01-28 18:35:38.648870400 -0500
 Birth: 2013-01-28 18:35:38.648870400 -0500
  File: `//xps/c/cygwin/bin/X'
  Size: 19              Blocks: 1          IO Block: 65536  regular file
Device: 808a8f0bh/2156564235d   Inode: 4222124650737757  Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (  544/Administrators)   Gid: (4294967295/????????)
Access: 2013-02-28 03:32:20.619899500 -0500
Modify: 2013-02-28 03:32:20.619899500 -0500
Change: 2013-02-28 03:32:20.629884400 -0500
 Birth: 2013-02-26 13:21:32.963302500 -0500

サイズの変更と権限に注意してください。宛先マシンで、コマンドを実行しようとすると失敗します。

Chloe@xps /usr/bin
$ X
bash: ./X: cannot execute binary file

シンボリックリンクを正しくコピーするには、rsyncを使用する必要があります。

$ rsync -arvz  /cygdrive/c/cygwin/bin/ //xps/c/cygwin/bin
sending incremental file list
./
X -> XWin.exe

もう1つの失敗は、Unisonがデフォルトで変更時刻を保持しないことです(ただし、-timesオプションを使用して、ユニゾン同期ファイルの変更時刻を作成することは可能です)。同期する場合、変更された時間は宛先でのファイル作成時間に設定されます。

$ unison 'c:\Sites' '\\xps\c\Sites'
...
  new file ---->            Ruby-env.sh
...
[BGN] Copying Ruby-env.sh from c:/Sites to //xps/c/Sites
[END] Copying Ruby-env.sh



$ ls -l Ruby-env.sh //xps/c/sites/Ruby-env.sh
----------+ 1 ???????? ???????? 188 Feb 28 02:48 //xps/c/sites/Ruby-env.sh
-rw-r--r--+ 1 Chloe    None     188 Feb 27 03:06 Ruby-env.sh

理論的には、次の場合にデータが失われる可能性があります

  1. 2つの同期ファイルの場所、Location1、Location2、
  2. 2番目の場所にあるファイルの同期コピーを変更します。
  3. 1番目の場所と3番目の場所の間でUnisonと同期し、
  4. ユニゾンのために新しい変更日で3番目の宛先にファイルを作成しました。
  5. rsyncやSyncToyなどの別の同期ツールを使用しました。
  6. 次に、3番目の宛先を2番目の場所と再度同期しました。これは、実際には1番目のソースより後で、3番目の宛先ファイルの作成時間より前に変更されました。
  7. 他の同期ツールは、3番目の場所の時刻が新しいことに気付き、2番目の場所への変更を上書きします。
  8. これにより、データが失われます。
3
Chloe