rsync nas smb の組合せで差分コピーができるでしょうか
rsync ネットワークHD(NAS) smb でのマウントで、全ファイルのrsyncは成功しますが、差分のrsyncがうまくいかないようです。常に全ファイル転送しているようです。
rsync NAS smb の組合せで、差分のみの転送は可能なのでしょうか?
以上よろしくお願いします。
iMac, Mac OS X (10.6.6)
rsync ネットワークHD(NAS) smb でのマウントで、全ファイルのrsyncは成功しますが、差分のrsyncがうまくいかないようです。常に全ファイル転送しているようです。
rsync NAS smb の組合せで、差分のみの転送は可能なのでしょうか?
以上よろしくお願いします。
iMac, Mac OS X (10.6.6)
何か勘違いされているのでしょうか? (^_^)
rsyncの良いところは、二つのコンピュータ間(送信側と受信側)で直接データを交換する前に、それぞれのファイルの異なるかどうかをチェックサムで確認して、違いがある分だけ(差分)だけネットワークを介して転送するってにが、良いところです。それに、ネットワーク中に流れるデータをsshなどをかぶせて暗号化できたりするで、合わせ技的にセキュアなバックアップ環境を構築できるようになることですね。
ネットワーク越しにマウントされているということは、自分のマシンにあたかもディスクがあるように動作しますので、差分があるかどうかを確認するために結局は全部データを見ていることになります。
つまり、マウントしているフォルダを送信側と受信側でそれぞれチェックサムを計算するのにネットワークを介してデータをすべて転送してきて計算し、その後にまた転送。なんてことをやっているので非効率になります。
一般的には、ネットワーク越しにマウントされた物にrsyncを使ってのバックアップはネットワーク負荷がかかるので、あまり一般的ではないです。
どうしてもrsyncを使いたいならば、マウント越しに行わずに、ネットワーク越しの一般的な方法にすべきですね。
回答ありがとうございました。
rsync は linux server のディレクトリの同期に利用しています。
同一パーテーションのフォルダー間の同期でも、nfs でmount した別マシンの場合でも、
2度目以降は、パスしてくれているように見えていたのであまり考えずに利用していました。
同一パーテーションのフォルダー間
1回目
$rsync -av hoge1 hoge2
building file list ... done
hoge1/
hoge1/file1
sent 145 bytes received 48 bytes 386.00 bytes/sec
total size is 0 speedup is 0.00
2回目
$ rsync -av hoge1 hoge2
building file list ... done
sent 97 bytes received 20 bytes 234.00 bytes/sec
total size is 0 speedup is 0.00
nfs mount した別マシンの場合
1回目
$ rsync -av hoge1 /mnt/smbhome/
building file list ... done
hoge1/
hoge1/file1
sent 145 bytes received 48 bytes 128.67 bytes/sec
total size is 0 speedup is 0.00
2回目
$ rsync -av hoge1 /mnt/smbhome/
building file list ... done
sent 97 bytes received 20 bytes 234.00 bytes/sec
total size is 0 speedup is 0.00
チェックサムに関するご指摘は勉強になりました。
NAS(buffalo製品)がnfs とか rsync に対応していればいいのですが、smb やafp 接続しか対応していないので、smbでローカルのディレクトリにマウントしました。それで、上記の状態と同じ結果になると思っていたのですが、そうならないのは何故なのでしょうか?
smbで同じ結果にならないのは、そのように見えているだけで、nfsとほぼ同じ結果になっていると思います。
ここに表示されている、
building file list ... done
これは、それぞれのファイルの中身を見て転送対象のファイルのリストを作り終えた。というメッセージなのですが、この時点でマウントされているファイルを全部読み込んでいますので、ネットワーク越しに全ファイルを見たことになります。(もちろん、smbでもそのような動きになってます)
sent 97 bytes received 20 bytes 234.00 bytes/sec
total size is 0 speedup is 0.00
これは、送り手と送り先双方で転送された情報量です。つまり、先ほどのファイルリストの差異の部分のデータの転送量です。(2回目なので差異部分は0ですね)
このとき、smbでは異なって見えるのだと思います。これは、smbのファイルの扱い方による違いで、上のファイルリストの差異のときに違うように見えてしまうので(チェックサム的に)、データが異なっていると判断して異なって見えたデータを転送しているのだと思います。
難しい話をすると、smbはファイル名を非正規化Preomposed UTF-8が前提でお話をします。rsyncはMacやHFS、NFSとおなじUTF8-MACですから、このコードの違いにより特定ファイル名の時にはコード変換を行っても違いが生じてしまうのです。「が」と「か」+「"」の違いです。
rsyncは非常に良くできた道具です。それと、smbも。
それぞれの特徴を生かして使うのは難しいですが、インターネット上にいろいろ情報があるので調べてみるのも楽しいかと思います。
rsync nas smb の組合せで差分コピーができるでしょうか