rsync nas smb の組合せで差分コピーができるでしょうか

rsync ネットワークHD(NAS) smb でのマウントで、全ファイルのrsyncは成功しますが、差分のrsyncがうまくいかないようです。常に全ファイル転送しているようです。

rsync NAS smb の組合せで、差分のみの転送は可能なのでしょうか?

以上よろしくお願いします。

iMac, Mac OS X (10.6.6)

投稿日 2011/05/22 19:58

返信
返信: 3

2011/05/23 04:53 boolean への返信

何か勘違いされているのでしょうか? (^_^)


rsyncの良いところは、二つのコンピュータ間(送信側と受信側)で直接データを交換する前に、それぞれのファイルの異なるかどうかをチェックサムで確認して、違いがある分だけ(差分)だけネットワークを介して転送するってにが、良いところです。それに、ネットワーク中に流れるデータをsshなどをかぶせて暗号化できたりするで、合わせ技的にセキュアなバックアップ環境を構築できるようになることですね。


ネットワーク越しにマウントされているということは、自分のマシンにあたかもディスクがあるように動作しますので、差分があるかどうかを確認するために結局は全部データを見ていることになります。

つまり、マウントしているフォルダを送信側と受信側でそれぞれチェックサムを計算するのにネットワークを介してデータをすべて転送してきて計算し、その後にまた転送。なんてことをやっているので非効率になります。


一般的には、ネットワーク越しにマウントされた物にrsyncを使ってのバックアップはネットワーク負荷がかかるので、あまり一般的ではないです。

どうしてもrsyncを使いたいならば、マウント越しに行わずに、ネットワーク越しの一般的な方法にすべきですね。

2011/05/23 07:27 Hiroki への返信

回答ありがとうございました。


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でローカルのディレクトリにマウントしました。それで、上記の状態と同じ結果になると思っていたのですが、そうならないのは何故なのでしょうか?

2011/05/23 17:46 boolean への返信

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も。

それぞれの特徴を生かして使うのは難しいですが、インターネット上にいろいろ情報があるので調べてみるのも楽しいかと思います。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

rsync nas smb の組合せで差分コピーができるでしょうか

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。