同期ソフト テスト中

FullSync ( windows mac linux)

freeFileSync

unison (linux)

SyncToy(Microsoft)

xcopy

robocopy

 DFSレプリケーション

rsync (GB単位では遅い)

BitTorrent Sync

Resilio Sync

コントロールパネル 全てのコントロールパネル項目 同期センター

OpenCloud (Drop box 風)

NextCloud(Drop box 風)

差分検知は遅い

dsync: Efficient Block-wise Synchronization of Multi-Gigabyte Binary Data – https://www.usenix.org/conference/lisa13/technical-sessions/presentation/knauth – Thomas Knauth and Christof Fetzer, Technische Universität Dresden – In Proceedings of the 27th Large Installation System Administration Conference (LISA ’13)

GB単位のデータだと、rsyncがとにかく遅い。 rsync はブロック分割されたデータのハッシュ値の比較により差分検知して、ネットワーク転送するデータ量をとにかく減らそうとしている。 その反面、同期させたいデータサイズに対してハッシュ値計算のCPU時間は線形に増加する。 さらに、ハッシュ値計算のために全データブロックを読み出す必要があり、I/Oコストも高い。 バックアップ時に、差分を事後計算しようとすると、どうしてもこうなる。 そこで発想を変えて、カーネルのブロックデバイスレベルで、更新のあったブロックを常に記録(トラッキング)しておき、バックアップ時にフラグのあったブロックだけを転送することにする。

発想自体はシンプルだけど、既存の device mapper の Snapshot 機能だけでは実現できなくて、パッチをあてる必要があったのがやや難点。 カーネルのメインラインに取り込まれてほしい。

実装はこちら。 https://bitbucket.org/tknauth/devicemapper/ Linuxカーネル 3.2 の device mapper モジュールにパッチを当てるような感じになってそう。

ブロック単位レプリケーション

さすがはZFSもうある。

zfs snapshot
zfs send
zfs recive

Linux DRDB

ネットワーク越しにRAID1

ネットワーク構成が複雑になりやすい。
障害発生時のメタデータの消失の可能性。
データ多重化に伴う必要容量の増加。

実際の使用

FullSync

ファイル作成、名前の変更、同期でファイルが増えないかどうか。ファイル名の変更への追随。

ファイル名のフィルタリングで正規表現が使えるのは利点だが、ディレクトリ名は正規表現を使えない。

1秒ごとに同期できるが、ネットワークなどに接続されているかどうかを確認して同期させることができない。

FreeFileSync

GUIでやりたいことが出来る。

一括ジョブで一気に出来る。

いくつかのファイルは複数の基準フォルダの一部として同期されます。競合回避のために、更新された各ファイルがひとつの基本フォルダのみに含まれるように除外設定をします。

\\192.168.1.10\dirA
\\192.168.1.10\dirA\dirA-a

色々なディレクトリを一気に進められるわけではない。

SMB1.5 NASとローカルファイルで同期させたとき、だらだらファイル比較が始まる。

googledriveとのファイル比較は早い。

バージョン管理された古いファイルはコピー元とコピー先フォルダ以外のフォルダに指定。元ファイルに並べるのは不可。

フォルダ指定で %USERPROFILE% は使えるが shell:sendto は u:\shell:sendto と解釈されて使えない。頭にドライブが指定されていないとなんでもカレントドライブをつける傾向に。

以下に例を示す。

条件

Symリンクを含める ×
同期 両方向
バージョン管理 タイムスタンプ[ファイル]

Target folderBackup folderVersion 管理directory

Target folderBackup folderVersion 管理directory

Target folderBackup folderVersion 管理directory

Target folderBackup folderVersion 管理directory

3か所での同期テストもしたい。

2in1のTX300CAのE:ドライブは接触不良でついたり消えたりする。それに合わせてがっちり同期出来たら素晴らしかな。

TX300CA

E:_FreeFileSync
|
+OtherLocal (上げられなかったとき)
|
+ SakuraInternet
|  +Sync (さくらインターネットと同期させる)

SakuraInternet rental server

/home/********
|
+bin
+cookies.txt
+cshrc2021-06-08
+db
+FreeFileSync
|  +sync (同期フォルダ)
|  +backup  (バージョン管理ファイルもバックアップもサーバーに)
|  +TX300CA
|  +T3500
|  +T451
+htpasswd
+include
+*********.org
+lib
+local
+log
+MailBox
+perl5
+ports
+sakura_pocket
+sblo_files
+share
;+mp
+www